ngx-bootstrap 5.6.1 → 5.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/accordion/package.json +1 -1
- package/alert/package.json +1 -1
- package/buttons/package.json +1 -1
- package/carousel/package.json +1 -1
- package/chronos/package.json +1 -1
- package/collapse/package.json +1 -1
- package/component-loader/package.json +1 -1
- package/datepicker/base/bs-datepicker-container.d.ts +2 -0
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +12 -0
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +1 -1
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
- package/datepicker/esm2015/base/bs-datepicker-container.js +9 -1
- package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +1 -1
- package/datepicker/esm5/base/bs-datepicker-container.js +13 -1
- package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +1 -1
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +8 -0
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
- package/datepicker/fesm5/ngx-bootstrap-datepicker.js +12 -0
- package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
- package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
- package/datepicker/package.json +1 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +8 -2
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +1 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
- package/dropdown/esm2015/bs-dropdown.directive.js +8 -3
- package/dropdown/esm5/bs-dropdown.directive.js +9 -3
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +7 -2
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
- package/dropdown/fesm5/ngx-bootstrap-dropdown.js +8 -2
- package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
- package/dropdown/package.json +1 -1
- package/locale/package.json +1 -1
- package/mini-ngrx/package.json +1 -1
- package/modal/package.json +1 -1
- package/package.json +2 -2
- package/pagination/package.json +1 -1
- package/popover/package.json +1 -1
- package/positioning/package.json +1 -1
- package/progressbar/package.json +1 -1
- package/rating/package.json +1 -1
- package/sortable/package.json +1 -1
- package/tabs/package.json +1 -1
- package/timepicker/package.json +1 -1
- package/tooltip/package.json +1 -1
- package/typeahead/package.json +1 -1
- package/utils/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ngx-bootstrap-datepicker.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://ngx-bootstrap/datepicker/bs-datepicker.config.ts","ng://ngx-bootstrap/datepicker/base/bs-datepicker-container.ts","ng://ngx-bootstrap/datepicker/reducer/bs-datepicker.actions.ts","ng://ngx-bootstrap/datepicker/bs-locale.service.ts","ng://ngx-bootstrap/datepicker/reducer/bs-datepicker.effects.ts","ng://ngx-bootstrap/datepicker/reducer/_defaults.ts","ng://ngx-bootstrap/datepicker/reducer/bs-datepicker.state.ts","ng://ngx-bootstrap/datepicker/utils/bs-calendar-utils.ts","ng://ngx-bootstrap/datepicker/utils/matrix-utils.ts","ng://ngx-bootstrap/datepicker/engine/calc-days-calendar.ts","ng://ngx-bootstrap/datepicker/engine/format-days-calendar.ts","ng://ngx-bootstrap/datepicker/engine/flag-days-calendar.ts","ng://ngx-bootstrap/datepicker/engine/view-mode.ts","ng://ngx-bootstrap/datepicker/engine/format-months-calendar.ts","ng://ngx-bootstrap/datepicker/engine/flag-months-calendar.ts","ng://ngx-bootstrap/datepicker/engine/format-years-calendar.ts","ng://ngx-bootstrap/datepicker/engine/flag-years-calendar.ts","ng://ngx-bootstrap/datepicker/reducer/bs-datepicker.reducer.ts","ng://ngx-bootstrap/datepicker/reducer/bs-datepicker.store.ts","ng://ngx-bootstrap/datepicker/datepicker-animations.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-datepicker-container.component.ts","ng://ngx-bootstrap/datepicker/bs-datepicker.component.ts","ng://ngx-bootstrap/datepicker/bs-datepicker-inline.config.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-datepicker-inline-container.component.ts","ng://ngx-bootstrap/datepicker/bs-datepicker-inline.component.ts","ng://ngx-bootstrap/datepicker/bs-daterangepicker-inline.config.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-daterangepicker-container.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-daterangepicker-inline-container.component.ts","ng://ngx-bootstrap/datepicker/bs-daterangepicker-inline.component.ts","ng://ngx-bootstrap/datepicker/bs-datepicker-input.directive.ts","ng://ngx-bootstrap/datepicker/bs-daterangepicker.config.ts","ng://ngx-bootstrap/datepicker/bs-daterangepicker.component.ts","ng://ngx-bootstrap/datepicker/bs-daterangepicker-input.directive.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-calendar-layout.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-current-date-view.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-custom-dates-view.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-datepicker-day-decorator.directive.ts","ng://ngx-bootstrap/datepicker/models/index.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-datepicker-navigation-view.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-days-calendar-view.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-months-calendar-view.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-timepicker-view.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-years-calendar-view.component.ts","ng://ngx-bootstrap/datepicker/bs-datepicker.module.ts","ng://ngx-bootstrap/datepicker/date-formatter.ts","ng://ngx-bootstrap/datepicker/datepicker-inner.component.ts","ng://ngx-bootstrap/datepicker/datepicker.config.ts","ng://ngx-bootstrap/datepicker/datepicker.component.ts","ng://ngx-bootstrap/datepicker/daypicker.component.ts","ng://ngx-bootstrap/datepicker/monthpicker.component.ts","ng://ngx-bootstrap/datepicker/yearpicker.component.ts","ng://ngx-bootstrap/datepicker/datepicker.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar 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\r\nexport function __extends(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\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(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\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Injectable } from '@angular/core';\nimport {\n DatepickerRenderOptions,\n BsDatepickerViewMode,\n DatepickerDateCustomClasses\n} from './models';\nimport { BsCustomDates } from './themes/bs/bs-custom-dates-view.component';\n\n\n/**\n * For date range picker there are `BsDaterangepickerConfig` which inherits all properties,\n * except `displayMonths`, for range picker it default to `2`\n */\n@Injectable()\nexport class BsDatepickerConfig implements DatepickerRenderOptions {\n /** sets use adaptive position */\n adaptivePosition = false;\n /** sets use UTC date time format */\n useUtc = false;\n /** turn on/off animation */\n isAnimated = false;\n value?: Date | Date[];\n isDisabled?: boolean;\n /**\n * Default min date for all date/range pickers\n */\n minDate?: Date;\n /**\n * Default max date for all date/range pickers\n */\n maxDate?: Date;\n /**\n * Default date custom classes for all date/range pickers\n */\n dateCustomClasses: DatepickerDateCustomClasses[];\n /**\n * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays\n */\n daysDisabled?: number[];\n /**\n * Disable specific dates\n */\n datesDisabled?: Date[];\n /**\n * Show one months for special cases (only for dateRangePicker)\n * 1. maxDate is equal to today's date\n * 2. minDate's month is equal to maxDate's month\n */\n displayOneMonthRange?: boolean;\n /**\n * Enable specific dates\n */\n datesEnabled?: Date[];\n /**\n * Makes dates from other months active\n */\n selectFromOtherMonth?: boolean;\n\n /**\n * Allows select first date of the week by click on week number\n */\n selectWeek?: boolean;\n\n /**\n * Allows select daterange as first and last day of week by click on week number (dateRangePicker only)\n */\n selectWeekDateRange?: boolean;\n\n /**\n * Shows previous and current month, instead of current and next (dateRangePicker only)\n */\n showPreviousMonth?: boolean;\n\n /**\n * Add class to current day\n */\n customTodayClass?: string;\n\n /**\n * Default mode for all date pickers\n */\n minMode?: BsDatepickerViewMode;\n\n /**\n * If true, returns focus to the datepicker / daterangepicker input after date selection\n */\n returnFocusToInput = false;\n\n /** CSS class which will be applied to datepicker container,\n * usually used to set color theme\n */\n containerClass = 'theme-green';\n\n // DatepickerRenderOptions\n displayMonths = 1;\n /**\n * Allows to hide week numbers in datepicker\n */\n showWeekNumbers = true;\n\n dateInputFormat = 'L';\n // range picker\n rangeSeparator = ' - ';\n /**\n * Date format for date range input field\n */\n rangeInputFormat = 'L';\n\n /**\n * Predefined ranges\n */\n ranges?: BsCustomDates[];\n\n // DatepickerFormatOptions\n monthTitle = 'MMMM';\n yearTitle = 'YYYY';\n dayLabel = 'D';\n monthLabel = 'MMMM';\n yearLabel = 'YYYY';\n weekNumbers = 'w';\n}\n","// datepicker container component\n/* tslint:disable:no-empty */\nimport { BsCustomDates } from '../themes/bs/bs-custom-dates-view.component';\nimport { BsDatepickerEffects } from '../reducer/bs-datepicker.effects';\nimport { Observable } from 'rxjs';\nimport {\n BsDatepickerViewMode,\n BsNavigationEvent,\n CalendarCellViewModel,\n CellHoverEvent,\n DatepickerRenderOptions,\n DatepickerDateCustomClasses,\n DaysCalendarViewModel,\n DayViewModel,\n MonthsCalendarViewModel,\n WeekViewModel,\n YearsCalendarViewModel\n} from '../models';\n\nexport abstract class BsDatepickerAbstractComponent {\n containerClass: string;\n isOtherMonthsActive: boolean;\n\n _effects: BsDatepickerEffects;\n customRanges: BsCustomDates[] = [];\n\n set minDate(value: Date) {\n this._effects.setMinDate(value);\n }\n\n set maxDate(value: Date) {\n this._effects.setMaxDate(value);\n }\n set daysDisabled(value: number[]) {\n this._effects.setDaysDisabled(value);\n }\n set datesDisabled(value: Date[]) {\n this._effects.setDatesDisabled(value);\n }\n\n set datesEnabled(value: Date[]) {\n this._effects.setDatesEnabled(value);\n }\n\n set isDisabled(value: boolean) {\n this._effects.setDisabled(value);\n }\n\n set dateCustomClasses(value: DatepickerDateCustomClasses[]) {\n this._effects.setDateCustomClasses(value);\n }\n\n viewMode: Observable<BsDatepickerViewMode>;\n daysCalendar: Observable<DaysCalendarViewModel[]>;\n monthsCalendar: Observable<MonthsCalendarViewModel[]>;\n yearsCalendar: Observable<YearsCalendarViewModel[]>;\n options: Observable<DatepickerRenderOptions>;\n\n setViewMode(event: BsDatepickerViewMode): void {}\n\n navigateTo(event: BsNavigationEvent): void {}\n\n dayHoverHandler(event: CellHoverEvent): void {}\n\n weekHoverHandler(event: WeekViewModel): void {}\n\n monthHoverHandler(event: CellHoverEvent): void {}\n\n yearHoverHandler(event: CellHoverEvent): void {}\n\n daySelectHandler(day: DayViewModel): void {}\n\n monthSelectHandler(event: CalendarCellViewModel): void {}\n\n yearSelectHandler(event: CalendarCellViewModel): void {}\n\n /* tslint:disable-next-line: no-any */\n _stopPropagation(event: any): void {\n event.stopPropagation();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TimeUnit } from 'ngx-bootstrap/chronos';\nimport { Action } from 'ngx-bootstrap/mini-ngrx';\nimport {\n BsDatepickerViewMode,\n BsViewNavigationEvent,\n CellHoverEvent,\n DatepickerRenderOptions,\n DatepickerDateCustomClasses\n} from '../models';\n\n@Injectable()\nexport class BsDatepickerActions {\n static readonly CALCULATE = '[datepicker] calculate dates matrix';\n static readonly FORMAT = '[datepicker] format datepicker values';\n static readonly FLAG = '[datepicker] set flags';\n static readonly SELECT = '[datepicker] select date';\n static readonly NAVIGATE_OFFSET = '[datepicker] shift view date';\n static readonly NAVIGATE_TO = '[datepicker] change view date';\n static readonly SET_OPTIONS = '[datepicker] update render options';\n static readonly HOVER = '[datepicker] hover date';\n static readonly CHANGE_VIEWMODE = '[datepicker] switch view mode';\n\n static readonly SET_MIN_DATE = '[datepicker] set min date';\n static readonly SET_MAX_DATE = '[datepicker] set max date';\n static readonly SET_DAYSDISABLED = '[datepicker] set days disabled';\n static readonly SET_DATESDISABLED = '[datepicker] set dates disabled';\n static readonly SET_DATESENABLED = '[datepicker] set dates enabled';\n static readonly SET_IS_DISABLED = '[datepicker] set is disabled';\n static readonly SET_DATE_CUSTOM_CLASSES = '[datepicker] set date custom classes';\n\n static readonly SET_LOCALE = '[datepicker] set datepicker locale';\n\n static readonly SELECT_RANGE = '[daterangepicker] select dates range';\n\n calculate(): Action {\n return { type: BsDatepickerActions.CALCULATE };\n }\n\n format(): Action {\n return { type: BsDatepickerActions.FORMAT };\n }\n\n flag(): Action {\n return { type: BsDatepickerActions.FLAG };\n }\n\n select(date: Date): Action {\n return {\n type: BsDatepickerActions.SELECT,\n payload: date\n };\n }\n\n changeViewMode(event: BsDatepickerViewMode): Action {\n return {\n type: BsDatepickerActions.CHANGE_VIEWMODE,\n payload: event\n };\n }\n\n navigateTo(event: BsViewNavigationEvent): Action {\n return {\n type: BsDatepickerActions.NAVIGATE_TO,\n payload: event\n };\n }\n\n navigateStep(step: TimeUnit): Action {\n return {\n type: BsDatepickerActions.NAVIGATE_OFFSET,\n payload: step\n };\n }\n\n setOptions(options: DatepickerRenderOptions): Action {\n return {\n type: BsDatepickerActions.SET_OPTIONS,\n payload: options\n };\n }\n\n // date range picker\n selectRange(value: Date[]): Action {\n return {\n type: BsDatepickerActions.SELECT_RANGE,\n payload: value\n };\n }\n\n hoverDay(event: CellHoverEvent): Action {\n return {\n type: BsDatepickerActions.HOVER,\n payload: event.isHovered ? event.cell.date : null\n };\n }\n\n minDate(date: Date): Action {\n return {\n type: BsDatepickerActions.SET_MIN_DATE,\n payload: date\n };\n }\n\n maxDate(date: Date): Action {\n return {\n type: BsDatepickerActions.SET_MAX_DATE,\n payload: date\n };\n }\n\n daysDisabled(days: number[]): Action {\n return {\n type: BsDatepickerActions.SET_DAYSDISABLED,\n payload: days\n };\n }\n\n datesDisabled(dates: Date[]): Action {\n return {\n type: BsDatepickerActions.SET_DATESDISABLED,\n payload: dates\n };\n }\n\n datesEnabled(dates: Date[]): Action {\n return {\n type: BsDatepickerActions.SET_DATESENABLED,\n payload: dates\n };\n }\n\n isDisabled(value: boolean): Action {\n return {\n type: BsDatepickerActions.SET_IS_DISABLED,\n payload: value\n };\n }\n\n setDateCustomClasses(value: DatepickerDateCustomClasses[]): Action {\n return {\n type: BsDatepickerActions.SET_DATE_CUSTOM_CLASSES,\n payload: value\n };\n }\n\n setLocale(locale: string): Action {\n return {\n type: BsDatepickerActions.SET_LOCALE,\n payload: locale\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class BsLocaleService {\n private _defaultLocale = 'en';\n private _locale = new BehaviorSubject<string>(this._defaultLocale);\n private _localeChange: Observable<string> = this._locale.asObservable();\n\n get locale(): BehaviorSubject<string> {\n return this._locale;\n }\n\n get localeChange(): Observable<string> {\n return this._localeChange;\n }\n\n get currentLocale(): string {\n return this._locale.getValue();\n }\n\n use(locale: string): void {\n if (locale === this.currentLocale) {\n return;\n }\n\n this._locale.next(locale);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, Subscription } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\nimport { getFullYear, getMonth } from 'ngx-bootstrap/chronos';\n\nimport { BsDatepickerAbstractComponent } from '../base/bs-datepicker-container';\nimport { BsDatepickerActions } from './bs-datepicker.actions';\nimport { BsDatepickerConfig } from '../bs-datepicker.config';\nimport { BsDatepickerStore } from './bs-datepicker.store';\nimport { BsLocaleService } from '../bs-locale.service';\n\nimport {\n BsDatepickerViewMode,\n BsNavigationEvent,\n CalendarCellViewModel,\n CellHoverEvent,\n DatepickerRenderOptions,\n DatepickerDateCustomClasses,\n DaysCalendarViewModel,\n DayViewModel,\n MonthsCalendarViewModel,\n YearsCalendarViewModel\n} from '../models';\n\n\n@Injectable()\nexport class BsDatepickerEffects {\n viewMode: Observable<BsDatepickerViewMode>;\n daysCalendar: Observable<DaysCalendarViewModel[]>;\n monthsCalendar: Observable<MonthsCalendarViewModel[]>;\n yearsCalendar: Observable<YearsCalendarViewModel[]>;\n options: Observable<DatepickerRenderOptions>;\n\n private _store: BsDatepickerStore;\n private _subs: Subscription[] = [];\n\n constructor(private _actions: BsDatepickerActions,\n private _localeService: BsLocaleService) {}\n\n init(_bsDatepickerStore: BsDatepickerStore): BsDatepickerEffects {\n this._store = _bsDatepickerStore;\n\n return this;\n }\n\n /** setters */\n\n setValue(value: Date): void {\n this._store.dispatch(this._actions.select(value));\n }\n\n setRangeValue(value: Date[]): void {\n this._store.dispatch(this._actions.selectRange(value));\n }\n\n setMinDate(value: Date): BsDatepickerEffects {\n this._store.dispatch(this._actions.minDate(value));\n\n return this;\n }\n\n setMaxDate(value: Date): BsDatepickerEffects {\n this._store.dispatch(this._actions.maxDate(value));\n\n return this;\n }\n\n setDaysDisabled(value: number[]): BsDatepickerEffects {\n this._store.dispatch(this._actions.daysDisabled(value));\n\n return this;\n }\n\n setDatesDisabled(value: Date[]): BsDatepickerEffects {\n this._store.dispatch(this._actions.datesDisabled(value));\n\n return this;\n }\n\n setDatesEnabled(value: Date[]): BsDatepickerEffects {\n this._store.dispatch(this._actions.datesEnabled(value));\n\n return this;\n }\n\n setDisabled(value: boolean): BsDatepickerEffects {\n this._store.dispatch(this._actions.isDisabled(value));\n\n return this;\n }\n\n setDateCustomClasses(value: DatepickerDateCustomClasses[]): BsDatepickerEffects {\n this._store.dispatch(this._actions.setDateCustomClasses(value));\n\n return this;\n }\n\n /* Set rendering options */\n setOptions(_config: BsDatepickerConfig): BsDatepickerEffects {\n const _options = Object.assign({locale: this._localeService.currentLocale}, _config);\n this._store.dispatch(this._actions.setOptions(_options));\n\n return this;\n }\n\n /** view to mode bindings */\n setBindings(container: BsDatepickerAbstractComponent): BsDatepickerEffects {\n container.daysCalendar = this._store\n .select(state => state.flaggedMonths)\n .pipe(\n filter(months => !!months)\n );\n\n // month calendar\n container.monthsCalendar = this._store\n .select(state => state.flaggedMonthsCalendar)\n .pipe(\n filter(months => !!months)\n );\n\n // year calendar\n container.yearsCalendar = this._store\n .select(state => state.yearsCalendarFlagged)\n .pipe(\n filter(years => !!years)\n );\n\n container.viewMode = this._store.select(state => state.view.mode);\n\n container.options = this._store\n .select(state => state.showWeekNumbers)\n .pipe(\n map(showWeekNumbers => ({showWeekNumbers}))\n );\n\n return this;\n }\n\n /** event handlers */\n setEventHandlers(container: BsDatepickerAbstractComponent): BsDatepickerEffects {\n container.setViewMode = (event: BsDatepickerViewMode): void => {\n this._store.dispatch(this._actions.changeViewMode(event));\n };\n\n container.navigateTo = (event: BsNavigationEvent): void => {\n this._store.dispatch(this._actions.navigateStep(event.step));\n };\n\n container.dayHoverHandler = (event: CellHoverEvent): void => {\n const _cell = event.cell as DayViewModel;\n if (_cell.isOtherMonth || _cell.isDisabled) {\n return;\n }\n\n this._store.dispatch(this._actions.hoverDay(event));\n _cell.isHovered = event.isHovered;\n };\n\n container.monthHoverHandler = (event: CellHoverEvent): void => {\n event.cell.isHovered = event.isHovered;\n };\n\n container.yearHoverHandler = (event: CellHoverEvent): void => {\n event.cell.isHovered = event.isHovered;\n };\n\n container.monthSelectHandler = (event: CalendarCellViewModel): void => {\n if (event.isDisabled) {\n return;\n }\n this._store.dispatch(\n this._actions.navigateTo({\n unit: {\n month: getMonth(event.date),\n year: getFullYear(event.date)\n },\n viewMode: 'day'\n })\n );\n };\n\n container.yearSelectHandler = (event: CalendarCellViewModel): void => {\n if (event.isDisabled) {\n return;\n }\n this._store.dispatch(\n this._actions.navigateTo({\n unit: {\n year: getFullYear(event.date)\n },\n viewMode: 'month'\n })\n );\n };\n\n return this;\n }\n\n registerDatepickerSideEffects(): BsDatepickerEffects {\n this._subs.push(\n this._store.select(state => state.view).subscribe(view => {\n this._store.dispatch(this._actions.calculate());\n })\n );\n\n // format calendar values on month model change\n this._subs.push(\n this._store\n .select(state => state.monthsModel)\n .pipe(\n filter(monthModel => !!monthModel)\n )\n .subscribe(month => this._store.dispatch(this._actions.format()))\n );\n\n // flag day values\n this._subs.push(\n this._store\n .select(state => state.formattedMonths)\n .pipe(\n filter(month => !!month)\n )\n .subscribe(month => this._store.dispatch(this._actions.flag()))\n );\n\n // flag day values\n this._subs.push(\n this._store\n .select(state => state.selectedDate)\n .pipe(\n filter(selectedDate => !!selectedDate)\n )\n .subscribe(selectedDate => this._store.dispatch(this._actions.flag()))\n );\n\n // flag for date range picker\n this._subs.push(\n this._store\n .select(state => state.selectedRange)\n .pipe(\n filter(selectedRange => !!selectedRange)\n )\n .subscribe(selectedRange => this._store.dispatch(this._actions.flag()))\n );\n\n // monthsCalendar\n this._subs.push(\n this._store\n .select(state => state.monthsCalendar)\n .subscribe(() => this._store.dispatch(this._actions.flag()))\n );\n\n // years calendar\n this._subs.push(\n this._store\n .select(state => state.yearsCalendarModel)\n .pipe(\n filter(state => !!state)\n )\n .subscribe(() => this._store.dispatch(this._actions.flag()))\n );\n\n // on hover\n this._subs.push(\n this._store\n .select(state => state.hoveredDate)\n .pipe(\n filter(hoveredDate => !!hoveredDate)\n )\n .subscribe(hoveredDate => this._store.dispatch(this._actions.flag()))\n );\n\n // date custom classes\n this._subs.push(\n this._store\n .select(state => state.dateCustomClasses)\n .pipe(\n filter(dateCustomClasses => !!dateCustomClasses)\n )\n .subscribe(dateCustomClasses => this._store.dispatch(this._actions.flag()))\n );\n\n // on locale change\n this._subs.push(\n this._localeService.localeChange\n .subscribe(locale => this._store.dispatch(this._actions.setLocale(locale)))\n );\n\n return this;\n }\n\n destroy(): void {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n }\n}\n","import {\n MonthViewOptions\n} from '../models';\n\nexport const defaultMonthOptions: MonthViewOptions = {\n width: 7,\n height: 6\n};\n","import {\n BsDatepickerViewMode,\n DatepickerFormatOptions,\n DatepickerRenderOptions,\n DatepickerDateCustomClasses,\n DaysCalendarModel,\n DaysCalendarViewModel,\n MonthsCalendarViewModel,\n MonthViewOptions,\n YearsCalendarViewModel\n} from '../models';\nimport { defaultMonthOptions } from './_defaults';\nimport { BsDatepickerConfig } from '../bs-datepicker.config';\n\nexport interface BsDatepickerViewState {\n date: Date;\n mode: BsDatepickerViewMode;\n}\n\nexport class BsDatepickerState\n implements DatepickerRenderOptions, DatepickerFormatOptions {\n // date picker\n selectedDate?: Date;\n // daterange picker\n selectedRange?: Date[];\n\n // initial date of calendar, today by default\n view: BsDatepickerViewState;\n\n isDisabled?: boolean;\n // bounds\n minDate?: Date;\n maxDate?: Date;\n daysDisabled?: number[];\n datesDisabled?: Date[];\n datesEnabled?: Date[];\n minMode?: BsDatepickerViewMode;\n dateCustomClasses?: DatepickerDateCustomClasses[];\n\n hoveredDate?: Date;\n hoveredMonth?: Date;\n hoveredYear?: Date;\n\n // days calendar\n monthsModel?: DaysCalendarModel[];\n formattedMonths?: DaysCalendarViewModel[];\n flaggedMonths?: DaysCalendarViewModel[];\n selectFromOtherMonth?: boolean;\n showPreviousMonth?: boolean; // dateRangePicker only;\n displayOneMonthRange?: boolean; // dateRangePicker only;\n\n // months calendar\n monthsCalendar?: MonthsCalendarViewModel[];\n flaggedMonthsCalendar?: MonthsCalendarViewModel[];\n\n // years calendar\n yearsCalendarModel?: YearsCalendarViewModel[];\n yearsCalendarFlagged?: YearsCalendarViewModel[];\n\n // options\n monthViewOptions: MonthViewOptions;\n\n // DatepickerRenderOptions\n showWeekNumbers?: boolean;\n displayMonths?: number;\n\n // DatepickerFormatOptions\n locale: string;\n\n monthTitle: string;\n yearTitle: string;\n\n dayLabel: string;\n monthLabel: string;\n yearLabel: string;\n\n weekNumbers: string;\n}\n\nconst _initialView: BsDatepickerViewState = { date: new Date(), mode: 'day' };\n\nexport const initialDatepickerState: BsDatepickerState = Object.assign(\n new BsDatepickerConfig(),\n {\n locale: 'en',\n view: _initialView,\n selectedRange: [],\n monthViewOptions: defaultMonthOptions\n }\n);\n","import {\n getDay,\n isFirstDayOfWeek,\n isAfter,\n isBefore,\n shiftDate,\n endOf,\n startOf,\n isArray,\n isSame\n} from 'ngx-bootstrap/chronos';\nimport { BsDatepickerState } from '../reducer/bs-datepicker.state';\n\nexport function getStartingDayOfCalendar(date: Date,\n options: { firstDayOfWeek?: number }): Date {\n if (isFirstDayOfWeek(date, options.firstDayOfWeek)) {\n return date;\n }\n\n const weekDay = getDay(date);\n const offset = calculateDateOffset(weekDay, options.firstDayOfWeek);\n\n return shiftDate(date, {day: -offset});\n}\n\nexport function calculateDateOffset(weekday: number, startingDayOffset: number): number {\n if (startingDayOffset === 0) {\n return weekday;\n }\n\n const offset = weekday - startingDayOffset % 7;\n\n return offset < 0 ? offset + 7 : offset;\n}\n\nexport function isMonthDisabled(date: Date, min: Date, max: Date): boolean {\n const minBound = min && isBefore(endOf(date, 'month'), min, 'day');\n const maxBound = max && isAfter(startOf(date, 'month'), max, 'day');\n\n return minBound || maxBound;\n}\n\nexport function isYearDisabled(date: Date, min: Date, max: Date): boolean {\n const minBound = min && isBefore(endOf(date, 'year'), min, 'day');\n const maxBound = max && isAfter(startOf(date, 'year'), max, 'day');\n\n return minBound || maxBound;\n}\n\nexport function isDisabledDate(date: Date, datesDisabled: Date[]): boolean {\n if (!datesDisabled || !isArray(datesDisabled) || !datesDisabled.length) {\n return false;\n }\n\n return datesDisabled.some((dateDisabled: Date) => isSame(date, dateDisabled, 'date'));\n}\n\nexport function isEnabledDate(date: Date, datesEnabled: Date[]): boolean {\n if (!datesEnabled || !isArray(datesEnabled) || !datesEnabled.length) {\n return false;\n }\n\n return !datesEnabled.some((enabledDate: Date) => isSame(date, enabledDate, 'date'));\n}\n\nexport function getYearsCalendarInitialDate(state: BsDatepickerState, calendarIndex = 0): Date {\n const model = state && state.yearsCalendarModel && state.yearsCalendarModel[calendarIndex];\n\n return model && model.years && model.years[0] && model.years[0][0] && model.years[0][0].date;\n}\n","import { TimeUnit, shiftDate } from 'ngx-bootstrap/chronos';\n\nexport type CreateMatrixCb<T> = (date: Date) => T;\n\nexport interface MatrixOptions {\n height: number;\n width: number;\n initialDate: Date;\n shift: TimeUnit;\n}\n\nexport function createMatrix<T>(\n options: MatrixOptions,\n fn: CreateMatrixCb<T>\n): T[][] {\n let prevValue = options.initialDate;\n const matrix: T[][] = new Array(options.height);\n for (let i = 0; i < options.height; i++) {\n matrix[i] = new Array(options.width);\n for (let j = 0; j < options.width; j++) {\n matrix[i][j] = fn(prevValue);\n prevValue = shiftDate(prevValue, options.shift);\n }\n }\n\n return matrix;\n}\n","// user and model input should handle parsing and validating input values\n// should accept some options\n// todo: split out formatting\nimport { DaysCalendarModel, MonthViewOptions } from '../models';\nimport { getFirstDayOfMonth } from 'ngx-bootstrap/chronos';\nimport { getStartingDayOfCalendar } from '../utils/bs-calendar-utils';\nimport { createMatrix } from '../utils/matrix-utils';\n\nexport function calcDaysCalendar(\n startingDate: Date,\n options: MonthViewOptions\n): DaysCalendarModel {\n const firstDay = getFirstDayOfMonth(startingDate);\n const initialDate = getStartingDayOfCalendar(firstDay, options);\n\n const matrixOptions = {\n width: options.width,\n height: options.height,\n initialDate,\n shift: { day: 1 }\n };\n const daysMatrix = createMatrix<Date>(matrixOptions, date => date);\n\n return {\n daysMatrix,\n month: firstDay\n };\n}\n","import {\n DatepickerFormatOptions,\n DaysCalendarModel,\n DaysCalendarViewModel\n} from '../models';\nimport { formatDate, getLocale } from 'ngx-bootstrap/chronos';\n\nexport function formatDaysCalendar(daysCalendar: DaysCalendarModel,\n formatOptions: DatepickerFormatOptions,\n monthIndex: number): DaysCalendarViewModel {\n return {\n month: daysCalendar.month,\n monthTitle: formatDate(\n daysCalendar.month,\n formatOptions.monthTitle,\n formatOptions.locale\n ),\n yearTitle: formatDate(\n daysCalendar.month,\n formatOptions.yearTitle,\n formatOptions.locale\n ),\n weekNumbers: getWeekNumbers(\n daysCalendar.daysMatrix,\n formatOptions.weekNumbers,\n formatOptions.locale\n ),\n weekdays: getShiftedWeekdays(formatOptions.locale),\n weeks: daysCalendar.daysMatrix.map((week: Date[], weekIndex: number) => ({\n days: week.map((date: Date, dayIndex: number) => ({\n date,\n label: formatDate(date, formatOptions.dayLabel, formatOptions.locale),\n monthIndex,\n weekIndex,\n dayIndex\n }))\n }))\n };\n}\n\nexport function getWeekNumbers(daysMatrix: Date[][],\n format: string,\n locale: string): string[] {\n return daysMatrix.map(\n (days: Date[]) => (days[0] ? formatDate(days[0], format, locale) : '')\n );\n}\n\nexport function getShiftedWeekdays(locale: string): string[] {\n const _locale = getLocale(locale);\n const weekdays = _locale.weekdaysShort() as string[];\n const firstDayOfWeek = _locale.firstDayOfWeek();\n\n return [...weekdays.slice(firstDayOfWeek), ...weekdays.slice(0, firstDayOfWeek)];\n}\n","import {\n DaysCalendarViewModel,\n DayViewModel,\n WeekViewModel,\n DatepickerDateCustomClasses\n} from '../models';\n\nimport {\n isAfter,\n isBefore,\n isDisabledDay,\n isSameDay,\n isSameMonth,\n shiftDate\n} from 'ngx-bootstrap/chronos';\n\nimport { isMonthDisabled, isDisabledDate, isEnabledDate } from '../utils/bs-calendar-utils';\n\nexport interface FlagDaysCalendarOptions {\n isDisabled: boolean;\n minDate: Date;\n maxDate: Date;\n daysDisabled: number[];\n datesDisabled: Date[];\n datesEnabled: Date[];\n hoveredDate: Date;\n selectedDate: Date;\n selectedRange: Date[];\n displayMonths: number;\n monthIndex: number;\n dateCustomClasses: DatepickerDateCustomClasses[];\n}\n\nexport function flagDaysCalendar(\n formattedMonth: DaysCalendarViewModel,\n options: FlagDaysCalendarOptions\n): DaysCalendarViewModel {\n formattedMonth.weeks.forEach((week: WeekViewModel) => {\n /* tslint:disable-next-line: cyclomatic-complexity */\n week.days.forEach((day: DayViewModel, dayIndex: number) => {\n // datepicker\n const isOtherMonth = !isSameMonth(day.date, formattedMonth.month);\n\n const isHovered =\n !isOtherMonth && isSameDay(day.date, options.hoveredDate);\n // date range picker\n const isSelectionStart =\n !isOtherMonth &&\n options.selectedRange &&\n isSameDay(day.date, options.selectedRange[0]);\n const isSelectionEnd =\n !isOtherMonth &&\n options.selectedRange &&\n isSameDay(day.date, options.selectedRange[1]);\n\n const isSelected =\n (!isOtherMonth && isSameDay(day.date, options.selectedDate)) ||\n isSelectionStart ||\n isSelectionEnd;\n\n const isInRange =\n !isOtherMonth &&\n options.selectedRange &&\n isDateInRange(day.date, options.selectedRange, options.hoveredDate);\n\n const isDisabled =\n options.isDisabled ||\n isBefore(day.date, options.minDate, 'day') ||\n isAfter(day.date, options.maxDate, 'day') ||\n isDisabledDay(day.date, options.daysDisabled) ||\n isDisabledDate(day.date, options.datesDisabled) ||\n isEnabledDate(day.date, options.datesEnabled);\n\n const currentDate = new Date();\n const isToday = !isOtherMonth && isSameDay(day.date, currentDate);\n\n const customClasses = options.dateCustomClasses && options.dateCustomClasses\n .map(dcc => isSameDay(day.date, dcc.date) ? dcc.classes : [])\n .reduce((previousValue, currentValue) => previousValue.concat(currentValue), [])\n .join(' ')\n || '';\n\n\n // decide update or not\n const newDay = Object.assign({}, day, {\n isOtherMonth,\n isHovered,\n isSelected,\n isSelectionStart,\n isSelectionEnd,\n isInRange,\n isDisabled,\n isToday,\n customClasses\n });\n\n if (\n day.isOtherMonth !== newDay.isOtherMonth ||\n day.isHovered !== newDay.isHovered ||\n day.isSelected !== newDay.isSelected ||\n day.isSelectionStart !== newDay.isSelectionStart ||\n day.isSelectionEnd !== newDay.isSelectionEnd ||\n day.isDisabled !== newDay.isDisabled ||\n day.isInRange !== newDay.isInRange ||\n day.customClasses !== newDay.customClasses\n ) {\n week.days[dayIndex] = newDay;\n }\n });\n });\n\n // todo: add check for linked calendars\n formattedMonth.hideLeftArrow =\n options.isDisabled ||\n (options.monthIndex > 0 && options.monthIndex !== options.displayMonths);\n formattedMonth.hideRightArrow =\n options.isDisabled ||\n (options.monthIndex < options.displayMonths &&\n options.monthIndex + 1 !== options.displayMonths);\n\n formattedMonth.disableLeftArrow = isMonthDisabled(\n shiftDate(formattedMonth.month, { month: -1 }),\n options.minDate,\n options.maxDate\n );\n formattedMonth.disableRightArrow = isMonthDisabled(\n shiftDate(formattedMonth.month, { month: 1 }),\n options.minDate,\n options.maxDate\n );\n\n return formattedMonth;\n}\n\nfunction isDateInRange(\n date: Date,\n selectedRange: Date[],\n hoveredDate: Date\n): boolean {\n if (!date || !selectedRange[0]) {\n return false;\n }\n\n if (selectedRange[1]) {\n return date > selectedRange[0] && date <= selectedRange[1];\n }\n\n if (hoveredDate) {\n return date > selectedRange[0] && date <= hoveredDate;\n }\n\n return false;\n}\n","import { BsDatepickerViewMode } from '../models';\n\nexport function canSwitchMode(mode: BsDatepickerViewMode, minMode?: BsDatepickerViewMode): boolean {\n return minMode ? mode >= minMode : true;\n}\n","import {\n DatepickerFormatOptions,\n MonthsCalendarViewModel,\n CalendarCellViewModel\n} from '../models';\nimport { startOf, formatDate } from 'ngx-bootstrap/chronos';\nimport { createMatrix } from '../utils/matrix-utils';\n\nconst height = 4;\nconst width = 3;\nconst shift = { month: 1 };\n\nexport function formatMonthsCalendar(\n viewDate: Date,\n formatOptions: DatepickerFormatOptions\n): MonthsCalendarViewModel {\n const initialDate = startOf(viewDate, 'year');\n const matrixOptions = { width, height, initialDate, shift };\n const monthMatrix = createMatrix<\n CalendarCellViewModel\n >(matrixOptions, date => ({\n date,\n label: formatDate(date, formatOptions.monthLabel, formatOptions.locale)\n }));\n\n return {\n months: monthMatrix,\n monthTitle: '',\n yearTitle: formatDate(\n viewDate,\n formatOptions.yearTitle,\n formatOptions.locale\n )\n };\n}\n","import { isSameMonth, shiftDate } from 'ngx-bootstrap/chronos';\nimport {\n MonthsCalendarViewModel,\n CalendarCellViewModel\n} from '../models';\nimport { isMonthDisabled, isYearDisabled } from '../utils/bs-calendar-utils';\n\nexport interface FlagMonthCalendarOptions {\n isDisabled: boolean;\n minDate: Date;\n maxDate: Date;\n hoveredMonth: Date;\n selectedDate: Date;\n displayMonths: number;\n monthIndex: number;\n}\n\nexport function flagMonthsCalendar(\n monthCalendar: MonthsCalendarViewModel,\n options: FlagMonthCalendarOptions\n): MonthsCalendarViewModel {\n monthCalendar.months.forEach(\n (months: CalendarCellViewModel[], rowIndex: number) => {\n months.forEach((month: CalendarCellViewModel, monthIndex: number) => {\n const isHovered = isSameMonth(month.date, options.hoveredMonth);\n const isDisabled =\n options.isDisabled ||\n isMonthDisabled(month.date, options.minDate, options.maxDate);\n const isSelected = isSameMonth(month.date, options.selectedDate);\n const newMonth = Object.assign(/*{},*/ month, {\n isHovered,\n isDisabled,\n isSelected\n });\n if (\n month.isHovered !== newMonth.isHovered ||\n month.isDisabled !== newMonth.isDisabled ||\n month.isSelected !== newMonth.isSelected\n ) {\n monthCalendar.months[rowIndex][monthIndex] = newMonth;\n }\n });\n }\n );\n\n // todo: add check for linked calendars\n monthCalendar.hideLeftArrow =\n options.monthIndex > 0 && options.monthIndex !== options.displayMonths;\n monthCalendar.hideRightArrow =\n options.monthIndex < options.displayMonths &&\n options.monthIndex + 1 !== options.displayMonths;\n\n monthCalendar.disableLeftArrow = isYearDisabled(\n shiftDate(monthCalendar.months[0][0].date, { year: -1 }),\n options.minDate,\n options.maxDate\n );\n monthCalendar.disableRightArrow = isYearDisabled(\n shiftDate(monthCalendar.months[0][0].date, { year: 1 }),\n options.minDate,\n options.maxDate\n );\n\n return monthCalendar;\n}\n","import {\n DatepickerFormatOptions,\n YearsCalendarViewModel,\n CalendarCellViewModel\n} from '../models';\nimport { shiftDate, formatDate } from 'ngx-bootstrap/chronos';\nimport { createMatrix } from '../utils/matrix-utils';\n\nconst height = 4;\nconst width = 4;\nexport const yearsPerCalendar = height * width;\nexport const initialYearShift = (Math.floor(yearsPerCalendar / 2) - 1) * -1;\nconst shift = { year: 1 };\n\nexport function formatYearsCalendar(\n viewDate: Date,\n formatOptions: DatepickerFormatOptions,\n previousInitialDate?: Date\n): YearsCalendarViewModel {\n const initialDate = calculateInitialDate(viewDate, previousInitialDate);\n const matrixOptions = { width, height, initialDate, shift };\n const yearsMatrix = createMatrix<\n CalendarCellViewModel\n >(matrixOptions, date => ({\n date,\n label: formatDate(date, formatOptions.yearLabel, formatOptions.locale)\n }));\n const yearTitle = formatYearRangeTitle(yearsMatrix, formatOptions);\n\n return {\n years: yearsMatrix,\n monthTitle: '',\n yearTitle\n };\n}\n\nfunction calculateInitialDate(viewDate: Date, previousInitialDate?: Date): Date {\n if (previousInitialDate\n && viewDate.getFullYear() >= previousInitialDate.getFullYear()\n && viewDate.getFullYear() < previousInitialDate.getFullYear() + yearsPerCalendar) {\n return previousInitialDate;\n }\n\n return shiftDate(viewDate, { year: initialYearShift });\n}\n\nfunction formatYearRangeTitle(\n yearsMatrix: CalendarCellViewModel[][],\n formatOptions: DatepickerFormatOptions\n): string {\n const from = formatDate(\n yearsMatrix[0][0].date,\n formatOptions.yearTitle,\n formatOptions.locale\n );\n const to = formatDate(\n yearsMatrix[height - 1][width - 1].date,\n formatOptions.yearTitle,\n formatOptions.locale\n );\n\n return `${from} - ${to}`;\n}\n","import { isSameYear, shiftDate } from 'ngx-bootstrap/chronos';\nimport { YearsCalendarViewModel, CalendarCellViewModel } from '../models';\nimport { isYearDisabled } from '../utils/bs-calendar-utils';\n\nexport interface FlagYearsCalendarOptions {\n isDisabled: boolean;\n minDate: Date;\n maxDate: Date;\n hoveredYear: Date;\n selectedDate: Date;\n displayMonths: number;\n yearIndex: number;\n}\n\nexport function flagYearsCalendar(\n yearsCalendar: YearsCalendarViewModel,\n options: FlagYearsCalendarOptions\n): YearsCalendarViewModel {\n yearsCalendar.years.forEach(\n (years: CalendarCellViewModel[], rowIndex: number) => {\n years.forEach((year: CalendarCellViewModel, yearIndex: number) => {\n const isHovered = isSameYear(year.date, options.hoveredYear);\n const isDisabled =\n options.isDisabled ||\n isYearDisabled(year.date, options.minDate, options.maxDate);\n const isSelected = isSameYear(year.date, options.selectedDate);\n\n const newMonth = Object.assign(/*{},*/ year, { isHovered, isDisabled, isSelected });\n if (\n year.isHovered !== newMonth.isHovered ||\n year.isDisabled !== newMonth.isDisabled ||\n year.isSelected !== newMonth.isSelected\n ) {\n yearsCalendar.years[rowIndex][yearIndex] = newMonth;\n }\n });\n }\n );\n\n // todo: add check for linked calendars\n yearsCalendar.hideLeftArrow =\n options.yearIndex > 0 && options.yearIndex !== options.displayMonths;\n yearsCalendar.hideRightArrow =\n options.yearIndex < options.displayMonths &&\n options.yearIndex + 1 !== options.displayMonths;\n\n yearsCalendar.disableLeftArrow = isYearDisabled(\n shiftDate(yearsCalendar.years[0][0].date, { year: -1 }),\n options.minDate,\n options.maxDate\n );\n const i = yearsCalendar.years.length - 1;\n const j = yearsCalendar.years[i].length - 1;\n yearsCalendar.disableRightArrow = isYearDisabled(\n shiftDate(yearsCalendar.years[i][j].date, { year: 1 }),\n options.minDate,\n options.maxDate\n );\n\n return yearsCalendar;\n}\n","// tslint:disable:max-file-line-count\nimport { BsDatepickerState, initialDatepickerState } from './bs-datepicker.state';\nimport { Action } from 'ngx-bootstrap/mini-ngrx';\nimport { BsDatepickerActions } from './bs-datepicker.actions';\nimport { calcDaysCalendar } from '../engine/calc-days-calendar';\nimport { formatDaysCalendar } from '../engine/format-days-calendar';\nimport { flagDaysCalendar } from '../engine/flag-days-calendar';\nimport {\n setFullDate,\n shiftDate,\n isArray,\n isDateValid,\n startOf,\n getLocale,\n isAfter,\n isBefore,\n isSame\n} from 'ngx-bootstrap/chronos';\nimport { canSwitchMode } from '../engine/view-mode';\nimport { formatMonthsCalendar } from '../engine/format-months-calendar';\nimport { flagMonthsCalendar } from '../engine/flag-months-calendar';\nimport { formatYearsCalendar, initialYearShift, yearsPerCalendar } from '../engine/format-years-calendar';\nimport { flagYearsCalendar } from '../engine/flag-years-calendar';\nimport { BsViewNavigationEvent, DatepickerFormatOptions, BsDatepickerViewMode } from '../models';\nimport { getYearsCalendarInitialDate } from '../utils/bs-calendar-utils';\n\n\n/* tslint:disable-next-line: cyclomatic-complexity */\nexport function bsDatepickerReducer(state = initialDatepickerState,\n action: Action): BsDatepickerState {\n switch (action.type) {\n case BsDatepickerActions.CALCULATE: {\n return calculateReducer(state);\n }\n\n case BsDatepickerActions.FORMAT: {\n return formatReducer(state, action);\n }\n\n case BsDatepickerActions.FLAG: {\n return flagReducer(state, action);\n }\n\n case BsDatepickerActions.NAVIGATE_OFFSET: {\n return navigateOffsetReducer(state, action);\n }\n\n case BsDatepickerActions.NAVIGATE_TO: {\n const payload: BsViewNavigationEvent = action.payload;\n\n const date = setFullDate(state.view.date, payload.unit);\n let newState;\n let mode: BsDatepickerViewMode;\n if (canSwitchMode(payload.viewMode, state.minMode)) {\n mode = payload.viewMode;\n newState = { view: { date, mode } };\n } else {\n mode = state.view.mode;\n newState = { selectedDate: date, view: { date, mode } };\n }\n\n return Object.assign({}, state, newState);\n }\n\n case BsDatepickerActions.CHANGE_VIEWMODE: {\n if (!canSwitchMode(action.payload, state.minMode)) {\n return state;\n }\n const date = state.view.date;\n const mode = action.payload;\n const newState = { view: { date, mode } };\n\n return Object.assign({}, state, newState);\n }\n\n case BsDatepickerActions.HOVER: {\n return Object.assign({}, state, { hoveredDate: action.payload });\n }\n\n case BsDatepickerActions.SELECT: {\n const newState = {\n selectedDate: action.payload,\n view: state.view\n };\n\n const mode = state.view.mode;\n const _date = action.payload || state.view.date;\n const date = getViewDate(_date, state.minDate, state.maxDate);\n newState.view = { mode, date };\n\n return Object.assign({}, state, newState);\n }\n\n case BsDatepickerActions.SET_OPTIONS: {\n const newState = action.payload;\n // preserve view mode\n const mode = newState.minMode ? newState.minMode : state.view.mode;\n const _viewDate = isDateValid(newState.value) && newState.value\n || isArray(newState.value) && isDateValid(newState.value[0]) && newState.value[0]\n || state.view.date;\n const date = getViewDate(_viewDate, newState.minDate, newState.maxDate);\n newState.view = { mode, date };\n // update selected value\n if (newState.value) {\n // if new value is array we work with date range\n if (isArray(newState.value)) {\n newState.selectedRange = newState.value;\n }\n\n // if new value is a date -> datepicker\n if (newState.value instanceof Date) {\n newState.selectedDate = newState.value;\n }\n\n // provided value is not supported :)\n // need to report it somehow\n }\n\n return Object.assign({}, state, newState);\n }\n\n // date range picker\n case BsDatepickerActions.SELECT_RANGE: {\n const newState = {\n selectedRange: action.payload,\n view: state.view\n };\n\n const mode = state.view.mode;\n const _date = action.payload && action.payload[0] || state.view.date;\n const date = getViewDate(_date, state.minDate, state.maxDate);\n newState.view = { mode, date };\n\n return Object.assign({}, state, newState);\n }\n\n case BsDatepickerActions.SET_MIN_DATE: {\n return Object.assign({}, state, {\n minDate: action.payload\n });\n }\n case BsDatepickerActions.SET_MAX_DATE: {\n return Object.assign({}, state, {\n maxDate: action.payload\n });\n }\n case BsDatepickerActions.SET_IS_DISABLED: {\n return Object.assign({}, state, {\n isDisabled: action.payload\n });\n }\n case BsDatepickerActions.SET_DATE_CUSTOM_CLASSES: {\n return Object.assign({}, state, {\n dateCustomClasses: action.payload\n });\n }\n\n default:\n return state;\n }\n}\n\nfunction calculateReducer(state: BsDatepickerState): BsDatepickerState {\n // how many calendars\n const displayMonths = (state.displayOneMonthRange &&\n isDisplayOneMonth(state.view.date, state.minDate, state.maxDate)) ? 1 : state.displayMonths;\n\n // use selected date on initial rendering if set\n let viewDate = state.view.date;\n\n if (state.view.mode === 'day') {\n if (state.showPreviousMonth && state.selectedRange.length === 0) {\n viewDate = shiftDate(viewDate, { month: -1 });\n }\n\n state.monthViewOptions.firstDayOfWeek = getLocale(state.locale).firstDayOfWeek();\n const monthsModel = new Array(displayMonths);\n for (let monthIndex = 0; monthIndex < displayMonths; monthIndex++) {\n // todo: for unlinked calendars it will be harder\n monthsModel[monthIndex] = calcDaysCalendar(\n viewDate,\n state.monthViewOptions\n );\n viewDate = shiftDate(viewDate, { month: 1 });\n }\n\n return Object.assign({}, state, { monthsModel });\n }\n\n if (state.view.mode === 'month') {\n const monthsCalendar = new Array(displayMonths);\n for (\n let calendarIndex = 0;\n calendarIndex < displayMonths;\n calendarIndex++\n ) {\n // todo: for unlinked calendars it will be harder\n monthsCalendar[calendarIndex] = formatMonthsCalendar(\n viewDate,\n getFormatOptions(state)\n );\n viewDate = shiftDate(viewDate, { year: 1 });\n }\n\n return Object.assign({}, state, { monthsCalendar });\n }\n\n if (state.view.mode === 'year') {\n const yearsCalendarModel = new Array(displayMonths);\n\n for (\n let calendarIndex = 0;\n calendarIndex < displayMonths;\n calendarIndex++\n ) {\n // todo: for unlinked calendars it will be harder\n yearsCalendarModel[calendarIndex] = formatYearsCalendar(\n viewDate,\n getFormatOptions(state),\n state.minMode === 'year' ? getYearsCalendarInitialDate(state, calendarIndex) : undefined\n );\n viewDate = shiftDate(viewDate, { year: yearsPerCalendar });\n }\n\n return Object.assign({}, state, { yearsCalendarModel });\n }\n\n return state;\n}\n\nfunction formatReducer(state: BsDatepickerState,\n action: Action): BsDatepickerState {\n if (state.view.mode === 'day') {\n const formattedMonths = state.monthsModel.map((month, monthIndex) =>\n formatDaysCalendar(month, getFormatOptions(state), monthIndex)\n );\n\n return Object.assign({}, state, { formattedMonths });\n }\n\n // how many calendars\n const displayMonths = state.displayMonths;\n // check initial rendering\n // use selected date on initial rendering if set\n let viewDate = state.view.date;\n\n if (state.view.mode === 'month') {\n const monthsCalendar = new Array(displayMonths);\n for (\n let calendarIndex = 0;\n calendarIndex < displayMonths;\n calendarIndex++\n ) {\n // todo: for unlinked calendars it will be harder\n monthsCalendar[calendarIndex] = formatMonthsCalendar(\n viewDate,\n getFormatOptions(state)\n );\n viewDate = shiftDate(viewDate, { year: 1 });\n }\n\n return Object.assign({}, state, { monthsCalendar });\n }\n\n if (state.view.mode === 'year') {\n const yearsCalendarModel = new Array(displayMonths);\n for (\n let calendarIndex = 0;\n calendarIndex < displayMonths;\n calendarIndex++\n ) {\n // todo: for unlinked calendars it will be harder\n yearsCalendarModel[calendarIndex] = formatYearsCalendar(\n viewDate,\n getFormatOptions(state)\n );\n viewDate = shiftDate(viewDate, { year: 16 });\n }\n\n return Object.assign({}, state, { yearsCalendarModel });\n }\n\n return state;\n}\n\nfunction flagReducer(state: BsDatepickerState,\n action: Action): BsDatepickerState {\n const displayMonths = isDisplayOneMonth(state.view.date, state.minDate, state.maxDate) ? 1 : state.displayMonths;\n if (state.view.mode === 'day') {\n const flaggedMonths = state.formattedMonths.map(\n (formattedMonth, monthIndex) =>\n flagDaysCalendar(formattedMonth, {\n isDisabled: state.isDisabled,\n minDate: state.minDate,\n maxDate: state.maxDate,\n daysDisabled: state.daysDisabled,\n datesDisabled: state.datesDisabled,\n datesEnabled: state.datesEnabled,\n hoveredDate: state.hoveredDate,\n selectedDate: state.selectedDate,\n selectedRange: state.selectedRange,\n displayMonths,\n dateCustomClasses: state.dateCustomClasses,\n monthIndex\n })\n );\n\n return Object.assign({}, state, { flaggedMonths });\n }\n\n if (state.view.mode === 'month') {\n const flaggedMonthsCalendar = state.monthsCalendar.map(\n (formattedMonth, monthIndex) =>\n flagMonthsCalendar(formattedMonth, {\n isDisabled: state.isDisabled,\n minDate: state.minDate,\n maxDate: state.maxDate,\n hoveredMonth: state.hoveredMonth,\n selectedDate: state.selectedDate,\n displayMonths,\n monthIndex\n })\n );\n\n return Object.assign({}, state, { flaggedMonthsCalendar });\n }\n\n if (state.view.mode === 'year') {\n const yearsCalendarFlagged = state.yearsCalendarModel.map(\n (formattedMonth, yearIndex) =>\n flagYearsCalendar(formattedMonth, {\n isDisabled: state.isDisabled,\n minDate: state.minDate,\n maxDate: state.maxDate,\n hoveredYear: state.hoveredYear,\n selectedDate: state.selectedDate,\n displayMonths,\n yearIndex\n })\n );\n\n return Object.assign({}, state, { yearsCalendarFlagged });\n }\n\n return state;\n}\n\nfunction navigateOffsetReducer(state: BsDatepickerState, action: Action): BsDatepickerState {\n const newState = {\n view: {\n mode: state.view.mode,\n date: shiftViewDate(state, action)\n }\n };\n\n return Object.assign({}, state, newState);\n}\n\nfunction shiftViewDate(state: BsDatepickerState, action: Action): Date {\n if (state.view.mode === 'year' && state.minMode === 'year') {\n const initialDate = getYearsCalendarInitialDate(state, 0);\n const middleDate = shiftDate(initialDate, { year: -initialYearShift });\n\n return shiftDate(middleDate, action.payload);\n }\n\n return shiftDate(startOf(state.view.date, 'month'), action.payload);\n}\n\nfunction getFormatOptions(state: BsDatepickerState): DatepickerFormatOptions {\n return {\n locale: state.locale,\n\n monthTitle: state.monthTitle,\n yearTitle: state.yearTitle,\n\n dayLabel: state.dayLabel,\n monthLabel: state.monthLabel,\n yearLabel: state.yearLabel,\n\n weekNumbers: state.weekNumbers\n };\n}\n\n/**\n * if view date is provided (bsValue|ngModel) it should be shown\n * if view date is not provider:\n * if minDate>currentDate (default view value), show minDate\n * if maxDate<currentDate(default view value) show maxDate\n */\nfunction getViewDate(viewDate: Date | Date[], minDate: Date, maxDate: Date) {\n const _date = Array.isArray(viewDate) ? viewDate[0] : viewDate;\n\n if (minDate && isAfter(minDate, _date, 'day')) {\n return minDate;\n }\n\n if (maxDate && isBefore(maxDate, _date, 'day')) {\n return maxDate;\n }\n\n return _date;\n}\n\nfunction isDisplayOneMonth(viewDate: Date, minDate: Date, maxDate: Date) {\n if (maxDate && isSame(maxDate, viewDate, 'day')) {\n return true;\n }\n\n if (minDate && maxDate && minDate.getMonth() === maxDate.getMonth()) {\n return true;\n }\n\n return false;\n}\n","import { Injectable } from '@angular/core';\nimport { MiniStore, Action, MiniState } from 'ngx-bootstrap/mini-ngrx';\nimport { BsDatepickerState, initialDatepickerState } from './bs-datepicker.state';\nimport { BehaviorSubject } from 'rxjs';\nimport { bsDatepickerReducer } from './bs-datepicker.reducer';\n\n@Injectable()\nexport class BsDatepickerStore extends MiniStore<BsDatepickerState> {\n constructor() {\n const _dispatcher = new BehaviorSubject<Action>({\n type: '[datepicker] dispatcher init'\n });\n const state = new MiniState<BsDatepickerState>(\n initialDatepickerState,\n _dispatcher,\n bsDatepickerReducer\n );\n super(_dispatcher, bsDatepickerReducer, state);\n }\n}\n","import {\n animate,\n style,\n AnimationTriggerMetadata,\n state,\n transition,\n trigger\n} from '@angular/animations';\n\nexport const DATEPICKER_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\n\nexport const datepickerAnimation: AnimationTriggerMetadata =\n trigger('datepickerAnimation', [\n state('animated-down', style({ height: '*', overflow: 'hidden'})),\n transition('* => animated-down', [\n style({ height: 0, overflow: 'hidden' }),\n animate(DATEPICKER_ANIMATION_TIMING)\n ]),\n state('animated-up', style({ height: '*', overflow: 'hidden'})),\n transition('* => animated-up', [\n style({ height: '*', overflow: 'hidden' }),\n animate(DATEPICKER_ANIMATION_TIMING)\n ]),\n transition('* => unanimated', animate('0s'))\n ]);\n","import { Component, ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2 } from '@angular/core';\n\nimport { BsDatepickerAbstractComponent } from '../../base/bs-datepicker-container';\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { DayViewModel } from '../../models';\nimport { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';\nimport { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from '../../reducer/bs-datepicker.store';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\nimport { Subscription } from 'rxjs';\nimport { datepickerAnimation } from '../../datepicker-animations';\nimport { take } from 'rxjs/operators';\n\n@Component({\n selector: 'bs-datepicker-container',\n providers: [BsDatepickerStore, BsDatepickerEffects],\n templateUrl: './bs-datepicker-view.html',\n host: {\n class: 'bottom',\n '(click)': '_stopPropagation($event)',\n role: 'dialog',\n 'aria-label': 'calendar'\n },\n animations: [datepickerAnimation]\n})\nexport class BsDatepickerContainerComponent extends BsDatepickerAbstractComponent\n implements OnInit, OnDestroy {\n\n set value(value: Date) {\n this._effects.setValue(value);\n }\n\n valueChange: EventEmitter<Date> = new EventEmitter<Date>();\n animationState = 'void';\n\n _subs: Subscription[] = [];\n constructor(\n _renderer: Renderer2,\n private _config: BsDatepickerConfig,\n private _store: BsDatepickerStore,\n private _element: ElementRef,\n private _actions: BsDatepickerActions,\n _effects: BsDatepickerEffects,\n private _positionService: PositioningService\n ) {\n super();\n this._effects = _effects;\n\n _renderer.setStyle(_element.nativeElement, 'display', 'block');\n _renderer.setStyle(_element.nativeElement, 'position', 'absolute');\n }\n\n ngOnInit(): void {\n this._positionService.setOptions({\n modifiers: { flip: { enabled: this._config.adaptivePosition } },\n allowedPositions: ['top', 'bottom']\n });\n\n this._positionService.event$\n .pipe(\n take(1)\n )\n .subscribe(() => {\n this._positionService.disable();\n\n if (this._config.isAnimated) {\n this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n\n return;\n }\n\n this.animationState = 'unanimated';\n });\n\n this.isOtherMonthsActive = this._config.selectFromOtherMonth;\n this.containerClass = this._config.containerClass;\n this._effects\n .init(this._store)\n // intial state options\n .setOptions(this._config)\n // data binding view --> model\n .setBindings(this)\n // set event handlers\n .setEventHandlers(this)\n .registerDatepickerSideEffects();\n\n // todo: move it somewhere else\n // on selected date change\n this._subs.push(\n this._store\n /* tslint:disable-next-line: no-any */\n .select((state: any) => state.selectedDate)\n /* tslint:disable-next-line: no-any */\n .subscribe((date: any) => this.valueChange.emit(date))\n );\n }\n\n get isTopPosition(): boolean {\n return this._element.nativeElement.classList.contains('top');\n }\n\n positionServiceEnable(): void {\n this._positionService.enable();\n }\n\n daySelectHandler(day: DayViewModel): void {\n if (!day) {\n return;\n }\n\n const isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);\n\n if (isDisabled) {\n return;\n }\n\n this._store.dispatch(this._actions.select(day.date));\n }\n\n ngOnDestroy(): void {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n this._effects.destroy();\n }\n}\n","import {\n ComponentRef, Directive, ElementRef, EventEmitter, Input, OnChanges,\n OnDestroy, OnInit, Output, Renderer2, SimpleChanges, ViewContainerRef, AfterViewInit\n} from '@angular/core';\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { BsDatepickerContainerComponent } from './themes/bs/bs-datepicker-container.component';\nimport { Subscription, Subject, BehaviorSubject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { BsDatepickerViewMode, DatepickerDateCustomClasses } from './models';\n\n@Directive({\n selector: '[bsDatepicker]',\n exportAs: 'bsDatepicker'\n})\nexport class BsDatepickerDirective implements OnInit, OnDestroy, OnChanges, AfterViewInit {\n /**\n * Placement of a datepicker. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n @Input() placement: 'top' | 'bottom' | 'left' | 'right' = 'bottom';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n @Input() triggers = 'click';\n /**\n * Close datepicker on outside click\n */\n @Input() outsideClick = true;\n /**\n * A selector specifying the element the datepicker should be appended to.\n */\n @Input() container = 'body';\n\n @Input() outsideEsc = true;\n\n /**\n * Returns whether or not the datepicker is currently being shown\n */\n @Input()\n get isOpen(): boolean {\n return this._datepicker.isShown;\n }\n\n set isOpen(value: boolean) {\n this.isOpen$.next(value);\n }\n\n /**\n * Emits an event when the datepicker is shown\n */\n /* tslint:disable-next-line: no-any*/\n @Output() onShown: EventEmitter<any>;\n /**\n * Emits an event when the datepicker is hidden\n */\n /* tslint:disable-next-line: no-any*/\n @Output() onHidden: EventEmitter<any>;\n\n _bsValue: Date;\n isOpen$: BehaviorSubject<boolean>;\n isDestroy$: Subject<void>;\n /**\n * Initial value of datepicker\n */\n @Input()\n set bsValue(value: Date) {\n if (this._bsValue && value && this._bsValue.getTime() === value.getTime()) {\n return;\n }\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n\n /**\n * Config object for datepicker\n */\n @Input() bsConfig: Partial<BsDatepickerConfig>;\n /**\n * Indicates whether datepicker's content is enabled or not\n */\n @Input() isDisabled: boolean;\n /**\n * Minimum date which is available for selection\n */\n @Input() minDate: Date;\n /**\n * Maximum date which is available for selection\n */\n @Input() maxDate: Date;\n\n /**\n * Minimum view mode : day, month, or year\n */\n @Input() minMode: BsDatepickerViewMode;\n\n /**\n * Disable Certain days in the week\n */\n @Input() daysDisabled: number[];\n\n /**\n * Disable specific dates\n */\n @Input() datesDisabled: Date[];\n /**\n * Enable specific dates\n */\n @Input() datesEnabled: Date[];\n /**\n * Date custom classes\n */\n @Input() dateCustomClasses: DatepickerDateCustomClasses[];\n /**\n * Emits when datepicker value has been changed\n */\n @Output() bsValueChange: EventEmitter<Date> = new EventEmitter();\n\n protected _subs: Subscription[] = [];\n\n private _datepicker: ComponentLoader<BsDatepickerContainerComponent>;\n private _datepickerRef: ComponentRef<BsDatepickerContainerComponent>;\n\n constructor(public _config: BsDatepickerConfig,\n private _elementRef: ElementRef,\n private _renderer: Renderer2,\n _viewContainerRef: ViewContainerRef,\n cis: ComponentLoaderFactory) {\n // todo: assign only subset of fields\n Object.assign(this, this._config);\n this._datepicker = cis.createLoader<BsDatepickerContainerComponent>(\n _elementRef,\n _viewContainerRef,\n _renderer\n );\n this.onShown = this._datepicker.onShown;\n this.onHidden = this._datepicker.onHidden;\n this.isOpen$ = new BehaviorSubject(this.isOpen);\n }\n\n ngOnInit(): void {\n this.isDestroy$ = new Subject();\n this._datepicker.listen({\n outsideClick: this.outsideClick,\n outsideEsc: this.outsideEsc,\n triggers: this.triggers,\n show: () => this.show()\n });\n this.setConfig();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n\n if (changes.minDate) {\n this._datepickerRef.instance.minDate = this.minDate;\n }\n\n if (changes.maxDate) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n }\n\n if (changes.daysDisabled) {\n this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n }\n\n if (changes.datesDisabled) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n }\n\n if (changes.datesEnabled) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n }\n\n if (changes.isDisabled) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n }\n\n if (changes.dateCustomClasses) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n }\n }\n\n ngAfterViewInit(): void {\n this.isOpen$.pipe(\n filter(isOpen => isOpen !== this.isOpen),\n takeUntil(this.isDestroy$)\n )\n .subscribe(() => this.toggle());\n }\n\n /**\n * Opens an elementâs datepicker. This is considered a âmanualâ triggering of\n * the datepicker.\n */\n show(): void {\n if (this._datepicker.isShown) {\n return;\n }\n\n this.setConfig();\n\n this._datepickerRef = this._datepicker\n .provide({provide: BsDatepickerConfig, useValue: this._config})\n .attach(BsDatepickerContainerComponent)\n .to(this.container)\n .position({attachment: this.placement})\n .show({placement: this.placement});\n\n // if date changes from external source (model -> view)\n this._subs.push(\n this.bsValueChange.subscribe((value: Date) => {\n this._datepickerRef.instance.value = value;\n })\n );\n\n // if date changes from picker (view -> model)\n this._subs.push(\n this._datepickerRef.instance.valueChange.subscribe((value: Date) => {\n this.bsValue = value;\n this.hide();\n })\n );\n }\n\n /**\n * Closes an elementâs datepicker. This is considered a âmanualâ triggering of\n * the datepicker.\n */\n hide(): void {\n if (this.isOpen) {\n this._datepicker.hide();\n }\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n\n if (this._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elementRef.nativeElement).focus();\n }\n }\n\n /**\n * Toggles an elementâs datepicker. This is considered a âmanualâ triggering\n * of the datepicker.\n */\n toggle(): void {\n if (this.isOpen) {\n return this.hide();\n }\n\n this.show();\n }\n\n /**\n * Set config for datepicker\n */\n setConfig(): void {\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: this._bsValue,\n isDisabled: this.isDisabled,\n minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,\n dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n minMode: this.minMode || this.bsConfig && this.bsConfig.minMode\n });\n }\n\n ngOnDestroy(): void {\n this._datepicker.dispose();\n this.isOpen$.next(false);\n if (this.isDestroy$) {\n this.isDestroy$.next();\n this.isDestroy$.complete();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\n\n@Injectable()\nexport class BsDatepickerInlineConfig extends BsDatepickerConfig { }\n","import { Component, ElementRef, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { BsDatepickerContainerComponent } from './bs-datepicker-container.component';\n\nimport { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from '../../reducer/bs-datepicker.store';\n\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { datepickerAnimation } from '../../datepicker-animations';\n\n@Component({\n selector: 'bs-datepicker-inline-container',\n providers: [BsDatepickerStore, BsDatepickerEffects],\n templateUrl: './bs-datepicker-view.html',\n host: {\n '(click)': '_stopPropagation($event)'\n },\n animations: [datepickerAnimation]\n})\nexport class BsDatepickerInlineContainerComponent extends BsDatepickerContainerComponent\n implements OnInit, OnDestroy {\n\n constructor(\n _renderer: Renderer2,\n _config: BsDatepickerConfig,\n _store: BsDatepickerStore,\n _element: ElementRef,\n _actions: BsDatepickerActions,\n _effects: BsDatepickerEffects,\n _positioningService: PositioningService\n ) {\n super(_renderer, _config, _store, _element, _actions, _effects, _positioningService);\n\n _renderer.setStyle(_element.nativeElement, 'display', 'inline-block');\n _renderer.setStyle(_element.nativeElement, 'position', 'static');\n }\n}\n","import {\n ComponentRef, Directive, ElementRef, EventEmitter, Input, OnChanges,\n OnDestroy, OnInit, Output, Renderer2, SimpleChanges, ViewContainerRef\n} from '@angular/core';\n\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\n\nimport { Subscription } from 'rxjs';\n\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { BsDatepickerInlineConfig } from './bs-datepicker-inline.config';\nimport { BsDatepickerInlineContainerComponent } from './themes/bs/bs-datepicker-inline-container.component';\nimport { DatepickerDateCustomClasses } from './models';\n\n@Directive({\n selector: 'bs-datepicker-inline',\n exportAs: 'bsDatepickerInline'\n})\nexport class BsDatepickerInlineDirective implements OnInit, OnDestroy, OnChanges {\n _bsValue: Date;\n /**\n * Initial value of datepicker\n */\n @Input()\n set bsValue(value: Date) {\n if (this._bsValue === value) {\n return;\n }\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n\n /**\n * Config object for datepicker\n */\n @Input() bsConfig: Partial<BsDatepickerInlineConfig>;\n /**\n * Indicates whether datepicker is enabled or not\n */\n @Input() isDisabled: boolean;\n /**\n * Minimum date which is available for selection\n */\n @Input() minDate: Date;\n /**\n * Maximum date which is available for selection\n */\n @Input() maxDate: Date;\n /**\n * Date custom classes\n */\n @Input() dateCustomClasses: DatepickerDateCustomClasses[];\n /**\n * Disable specific dates\n */\n @Input() datesEnabled: Date[];\n /**\n * Enable specific dates\n */\n @Input() datesDisabled: Date[];\n /**\n * Emits when datepicker value has been changed\n */\n @Output() bsValueChange: EventEmitter<Date> = new EventEmitter();\n\n protected _subs: Subscription[] = [];\n\n private _datepicker: ComponentLoader<BsDatepickerInlineContainerComponent>;\n private _datepickerRef: ComponentRef<BsDatepickerInlineContainerComponent>;\n\n constructor(\n public _config: BsDatepickerInlineConfig,\n private _elementRef: ElementRef,\n _renderer: Renderer2,\n _viewContainerRef: ViewContainerRef,\n cis: ComponentLoaderFactory\n ) {\n // todo: assign only subset of fields\n Object.assign(this, this._config);\n this._datepicker = cis.createLoader<BsDatepickerInlineContainerComponent>(\n _elementRef,\n _viewContainerRef,\n _renderer\n );\n }\n\n ngOnInit(): void {\n this.setConfig();\n\n // if date changes from external source (model -> view)\n this._subs.push(\n this.bsValueChange.subscribe((value: Date) => {\n this._datepickerRef.instance.value = value;\n })\n );\n\n // if date changes from picker (view -> model)\n this._subs.push(\n this._datepickerRef.instance.valueChange.subscribe((value: Date) => {\n this.bsValue = value;\n })\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n\n if (changes.minDate) {\n this._datepickerRef.instance.minDate = this.minDate;\n this.setConfig();\n }\n\n if (changes.maxDate) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n this.setConfig();\n }\n\n if (changes.datesDisabled) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n this.setConfig();\n }\n\n if (changes.datesEnabled) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n this._datepickerRef.instance.value = this._bsValue;\n }\n\n if (changes.isDisabled) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n this.setConfig();\n }\n\n if (changes.dateCustomClasses) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n this.setConfig();\n }\n }\n\n /**\n * Set config for datepicker\n */\n setConfig(): void {\n if (this._datepicker) {\n this._datepicker.hide();\n }\n\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: this._bsValue,\n isDisabled: this.isDisabled,\n minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled\n });\n\n\n this._datepickerRef = this._datepicker\n .provide({provide: BsDatepickerConfig, useValue: this._config})\n .attach(BsDatepickerInlineContainerComponent)\n .to(this._elementRef)\n .show();\n }\n\n ngOnDestroy(): any {\n this._datepicker.dispose();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\n\n@Injectable()\nexport class BsDaterangepickerInlineConfig extends BsDatepickerConfig {\n // DatepickerRenderOptions\n displayMonths = 2;\n /** turn on/off animation */\n isAnimated = false;\n}\n","import { Component, ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2 } from '@angular/core';\n\nimport { BsDatepickerAbstractComponent } from '../../base/bs-datepicker-container';\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { DayViewModel } from '../../models';\nimport { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';\nimport { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from '../../reducer/bs-datepicker.store';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\nimport { Subscription } from 'rxjs';\nimport { datepickerAnimation } from '../../datepicker-animations';\nimport { take } from 'rxjs/operators';\nimport { BsCustomDates } from './bs-custom-dates-view.component';\n\n@Component({\n selector: 'bs-daterangepicker-container',\n providers: [BsDatepickerStore, BsDatepickerEffects],\n templateUrl: './bs-datepicker-view.html',\n host: {\n class: 'bottom',\n '(click)': '_stopPropagation($event)',\n role: 'dialog',\n 'aria-label': 'calendar'\n },\n animations: [datepickerAnimation]\n})\nexport class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent\n implements OnInit, OnDestroy {\n set value(value: Date[]) {\n this._effects.setRangeValue(value);\n }\n\n valueChange = new EventEmitter<Date[]>();\n animationState = 'void';\n\n _rangeStack: Date[] = [];\n chosenRange: Date[] = [];\n _subs: Subscription[] = [];\n\n constructor(\n _renderer: Renderer2,\n private _config: BsDatepickerConfig,\n private _store: BsDatepickerStore,\n private _element: ElementRef,\n private _actions: BsDatepickerActions,\n _effects: BsDatepickerEffects,\n private _positionService: PositioningService\n ) {\n super();\n this._effects = _effects;\n\n this.customRanges = this._config.ranges;\n\n _renderer.setStyle(_element.nativeElement, 'display', 'block');\n _renderer.setStyle(_element.nativeElement, 'position', 'absolute');\n }\n\n ngOnInit(): void {\n this._positionService.setOptions({\n modifiers: { flip: { enabled: this._config.adaptivePosition } },\n allowedPositions: ['top', 'bottom']\n });\n\n this._positionService.event$\n .pipe(\n take(1)\n )\n .subscribe(() => {\n this._positionService.disable();\n\n if (this._config.isAnimated) {\n this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n\n return;\n }\n\n this.animationState = 'unanimated';\n });\n this.containerClass = this._config.containerClass;\n this.isOtherMonthsActive = this._config.selectFromOtherMonth;\n this._effects\n .init(this._store)\n // intial state options\n // todo: fix this, split configs\n .setOptions(this._config)\n // data binding view --> model\n .setBindings(this)\n // set event handlers\n .setEventHandlers(this)\n .registerDatepickerSideEffects();\n\n // todo: move it somewhere else\n // on selected date change\n this._subs.push(\n this._store\n .select(state => state.selectedRange)\n .subscribe(date => {\n this.valueChange.emit(date);\n this.chosenRange = date;\n })\n );\n }\n\n get isTopPosition(): boolean {\n return this._element.nativeElement.classList.contains('top');\n }\n\n positionServiceEnable(): void {\n this._positionService.enable();\n }\n\n daySelectHandler(day: DayViewModel): void {\n if (!day) {\n return;\n }\n const isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);\n\n if (isDisabled) {\n return;\n }\n\n // if only one date is already selected\n // and user clicks on previous date\n // start selection from new date\n // but if new date is after initial one\n // than finish selection\n if (this._rangeStack.length === 1) {\n this._rangeStack =\n day.date >= this._rangeStack[0]\n ? [this._rangeStack[0], day.date]\n : [day.date];\n }\n\n if (this._rangeStack.length === 0) {\n this._rangeStack = [day.date];\n }\n\n this._store.dispatch(this._actions.selectRange(this._rangeStack));\n\n if (this._rangeStack.length === 2) {\n this._rangeStack = [];\n }\n }\n\n ngOnDestroy(): void {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n this._effects.destroy();\n }\n\n setRangeOnCalendar(dates: BsCustomDates) {\n this._rangeStack = (dates === null) ? [] : (dates.value instanceof Date ? [dates.value] : dates.value);\n this._store.dispatch(this._actions.selectRange(this._rangeStack));\n }\n\n}\n","import { OnInit, OnDestroy, ElementRef, Component, Renderer2 } from '@angular/core';\nimport { BsDaterangepickerContainerComponent } from './bs-daterangepicker-container.component';\n\nimport { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from '../../reducer/bs-datepicker.store';\n\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { datepickerAnimation } from '../../datepicker-animations';\n\n@Component({\n selector: 'bs-daterangepicker-inline-container',\n providers: [BsDatepickerStore, BsDatepickerEffects],\n templateUrl: './bs-datepicker-view.html',\n host: {\n '(click)': '_stopPropagation($event)'\n },\n animations: [datepickerAnimation]\n})\nexport class BsDaterangepickerInlineContainerComponent extends BsDaterangepickerContainerComponent\n implements OnInit, OnDestroy {\n\n constructor(\n _renderer: Renderer2,\n _config: BsDatepickerConfig,\n _store: BsDatepickerStore,\n _element: ElementRef,\n _actions: BsDatepickerActions,\n _effects: BsDatepickerEffects,\n _positioningService: PositioningService\n ) {\n super(_renderer, _config, _store, _element, _actions, _effects, _positioningService);\n\n _renderer.setStyle(_element.nativeElement, 'display', 'inline-block');\n _renderer.setStyle(_element.nativeElement, 'position', 'static');\n }\n}\n","import {\n ComponentRef, Directive, ElementRef, EventEmitter, Input, OnChanges,\n OnDestroy, OnInit, Output, Renderer2, SimpleChanges, ViewContainerRef\n} from '@angular/core';\n\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\n\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { BsDaterangepickerInlineConfig } from './bs-daterangepicker-inline.config';\nimport { BsDaterangepickerInlineContainerComponent } from './themes/bs/bs-daterangepicker-inline-container.component';\nimport { DatepickerDateCustomClasses } from './models';\n\n@Directive({\n selector: 'bs-daterangepicker-inline',\n exportAs: 'bsDaterangepickerInline'\n})\nexport class BsDaterangepickerInlineDirective implements OnInit, OnDestroy, OnChanges {\n _bsValue: Date[];\n /**\n * Initial value of datepicker\n */\n @Input()\n set bsValue(value: Date[]) {\n if (this._bsValue === value) {\n return;\n }\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n\n /**\n * Config object for datepicker\n */\n @Input() bsConfig: Partial<BsDaterangepickerInlineConfig>;\n /**\n * Indicates whether datepicker is enabled or not\n */\n @Input() isDisabled: boolean;\n /**\n * Minimum date which is available for selection\n */\n @Input() minDate: Date;\n /**\n * Maximum date which is available for selection\n */\n @Input() maxDate: Date;\n /**\n * Date custom classes\n */\n @Input() dateCustomClasses: DatepickerDateCustomClasses[];\n /**\n * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays\n */\n @Input() daysDisabled?: number[];\n /**\n * Disable specific dates\n */\n @Input() datesDisabled: Date[];\n /**\n * Disable specific dates\n */\n @Input() datesEnabled: Date[];\n /**\n * Emits when daterangepicker value has been changed\n */\n @Output() bsValueChange: EventEmitter<Date[]> = new EventEmitter();\n\n protected _subs: Subscription[] = [];\n\n private _datepicker: ComponentLoader<BsDaterangepickerInlineContainerComponent>;\n private _datepickerRef: ComponentRef<BsDaterangepickerInlineContainerComponent>;\n\n constructor(\n public _config: BsDaterangepickerInlineConfig,\n private _elementRef: ElementRef,\n _renderer: Renderer2,\n _viewContainerRef: ViewContainerRef,\n cis: ComponentLoaderFactory\n ) {\n // todo: assign only subset of fields\n Object.assign(this, this._config);\n this._datepicker = cis.createLoader<BsDaterangepickerInlineContainerComponent>(\n _elementRef,\n _viewContainerRef,\n _renderer\n );\n }\n\n ngOnInit(): void {\n this.setConfig();\n\n // if date changes from external source (model -> view)\n this._subs.push(\n this.bsValueChange.subscribe((value: Date[]) => {\n this._datepickerRef.instance.value = value;\n })\n );\n\n // if date changes from picker (view -> model)\n this._subs.push(\n this._datepickerRef.instance.valueChange\n .pipe(\n filter((range: Date[]) => range && range[0] && !!range[1])\n )\n .subscribe((value: Date[]) => {\n this.bsValue = value;\n })\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n\n if (changes.minDate) {\n this._datepickerRef.instance.minDate = this.minDate;\n this.setConfig();\n }\n\n if (changes.maxDate) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n this.setConfig();\n }\n\n if (changes.datesEnabled) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n }\n\n if (changes.datesDisabled) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n this.setConfig();\n }\n\n if (changes.daysDisabled) {\n this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n this.setConfig();\n }\n\n if (changes.isDisabled) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n this.setConfig();\n }\n\n if (changes.dateCustomClasses) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n this.setConfig();\n }\n }\n\n /**\n * Set config for datepicker\n */\n setConfig(): void {\n if (this._datepicker) {\n this._datepicker.hide();\n }\n\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: this._bsValue,\n isDisabled: this.isDisabled,\n minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,\n dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n ranges: this.bsConfig && this.bsConfig.ranges\n });\n\n\n this._datepickerRef = this._datepicker\n .provide({provide: BsDatepickerConfig, useValue: this._config})\n .attach(BsDaterangepickerInlineContainerComponent)\n .to(this._elementRef)\n .show();\n }\n\n ngOnDestroy(): any {\n this._datepicker.dispose();\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n Host,\n Provider,\n Renderer2\n} from '@angular/core';\n\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\n\nimport {\n formatDate,\n getLocale,\n isAfter,\n isBefore,\n isDate,\n isDateValid,\n parseDate,\n utcAsLocal\n} from 'ngx-bootstrap/chronos';\n\nimport { BsDatepickerDirective } from './bs-datepicker.component';\nimport { BsLocaleService } from './bs-locale.service';\n\nconst BS_DATEPICKER_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => BsDatepickerInputDirective),\n multi: true\n};\n\nconst BS_DATEPICKER_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => BsDatepickerInputDirective),\n multi: true\n};\n\n@Directive({\n selector: `input[bsDatepicker]`,\n host: {\n '(change)': 'onChange($event)',\n '(keyup.esc)': 'hide()',\n '(keydown)': 'onKeydownEvent($event)',\n '(blur)': 'onBlur()'\n },\n providers: [BS_DATEPICKER_VALUE_ACCESSOR, BS_DATEPICKER_VALIDATOR]\n})\nexport class BsDatepickerInputDirective\n implements ControlValueAccessor, Validator {\n private _onChange = Function.prototype;\n private _onTouched = Function.prototype;\n /* tslint:disable-next-line: no-unused-variable */\n private _validatorChange = Function.prototype;\n private _value: Date;\n\n constructor(@Host() private _picker: BsDatepickerDirective,\n private _localeService: BsLocaleService,\n private _renderer: Renderer2,\n private _elRef: ElementRef,\n private changeDetection: ChangeDetectorRef) {\n // update input value on datepicker value update\n this._picker.bsValueChange.subscribe((value: Date) => {\n this._setInputValue(value);\n if (this._value !== value) {\n this._value = value;\n this._onChange(value);\n this._onTouched();\n }\n this.changeDetection.markForCheck();\n });\n\n // update input value on locale change\n this._localeService.localeChange.subscribe(() => {\n this._setInputValue(this._value);\n });\n }\n\n onKeydownEvent(event) {\n if (event.keyCode === 13 || event.code === 'Enter') {\n this.hide();\n }\n }\n\n _setInputValue(value: Date): void {\n const initialDate = !value ? ''\n : formatDate(value, this._picker._config.dateInputFormat, this._localeService.currentLocale);\n\n this._renderer.setProperty(this._elRef.nativeElement, 'value', initialDate);\n }\n\n onChange(event: Event) {\n /* tslint:disable-next-line: no-any*/\n this.writeValue((event.target as any).value);\n this._onChange(this._value);\n if (this._picker._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n }\n this._onTouched();\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n const _value: Date | string = c.value;\n\n /* tslint:disable-next-line: prefer-switch */\n if (_value === null || _value === undefined || _value === '') {\n return null;\n }\n\n if (isDate(_value)) {\n const _isDateValid = isDateValid(_value);\n if (!_isDateValid) {\n return { bsDate: { invalid: _value } };\n }\n\n if (this._picker && this._picker.minDate && isBefore(_value, this._picker.minDate, 'date')) {\n this.writeValue(this._picker.minDate);\n\n return { bsDate: { minDate: this._picker.minDate } };\n }\n\n if (this._picker && this._picker.maxDate && isAfter(_value, this._picker.maxDate, 'date')) {\n this.writeValue(this._picker.maxDate);\n\n return { bsDate: { maxDate: this._picker.maxDate } };\n }\n }\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorChange = fn;\n }\n\n writeValue(value: Date | string) {\n if (!value) {\n this._value = null;\n } else {\n const _localeKey = this._localeService.currentLocale;\n const _locale = getLocale(_localeKey);\n if (!_locale) {\n throw new Error(\n `Locale \"${_localeKey}\" is not defined, please add it with \"defineLocale(...)\"`\n );\n }\n\n this._value = parseDate(value, this._picker._config.dateInputFormat, this._localeService.currentLocale);\n\n if (this._picker._config.useUtc) {\n this._value = utcAsLocal(this._value);\n }\n }\n\n this._picker.bsValue = this._value;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._picker.isDisabled = isDisabled;\n if (isDisabled) {\n this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');\n }\n\n registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n onBlur() {\n this._onTouched();\n }\n\n hide() {\n this._picker.hide();\n this._renderer.selectRootElement(this._elRef.nativeElement).blur();\n if (this._picker._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\n\n@Injectable()\nexport class BsDaterangepickerConfig extends BsDatepickerConfig {\n // DatepickerRenderOptions\n displayMonths = 2;\n}\n","import {\n AfterViewInit,\n ComponentRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n ViewContainerRef\n} from '@angular/core';\nimport { BsDaterangepickerConfig } from './bs-daterangepicker.config';\nimport { BsDaterangepickerContainerComponent } from './themes/bs/bs-daterangepicker-container.component';\nimport { Subscription, Subject, BehaviorSubject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { ComponentLoaderFactory, ComponentLoader } from 'ngx-bootstrap/component-loader';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { DatepickerDateCustomClasses } from './models';\n\n@Directive({\n selector: '[bsDaterangepicker]',\n exportAs: 'bsDaterangepicker'\n})\nexport class BsDaterangepickerDirective\n implements OnInit, OnDestroy, OnChanges, AfterViewInit {\n /**\n * Placement of a daterangepicker. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n @Input() placement: 'top' | 'bottom' | 'left' | 'right' = 'bottom';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n @Input() triggers = 'click';\n /**\n * Close daterangepicker on outside click\n */\n @Input() outsideClick = true;\n /**\n * A selector specifying the element the daterangepicker should be appended to.\n */\n @Input() container = 'body';\n\n @Input() outsideEsc = true;\n\n /**\n * Returns whether or not the daterangepicker is currently being shown\n */\n @Input()\n get isOpen(): boolean {\n return this._datepicker.isShown;\n }\n\n set isOpen(value: boolean) {\n this.isOpen$.next(value);\n }\n\n /**\n * Emits an event when the daterangepicker is shown\n */\n /* tslint:disable-next-line: no-any*/\n @Output() onShown: EventEmitter<any>;\n /**\n * Emits an event when the daterangepicker is hidden\n */\n /* tslint:disable-next-line: no-any*/\n @Output() onHidden: EventEmitter<any>;\n\n _bsValue: Date[];\n isOpen$: BehaviorSubject<boolean>;\n isDestroy$: Subject<void>;\n\n /**\n * Initial value of daterangepicker\n */\n @Input()\n set bsValue(value: Date[]) {\n if (this._bsValue === value) {\n return;\n }\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n\n /**\n * Config object for daterangepicker\n */\n @Input() bsConfig: Partial<BsDaterangepickerConfig>;\n /**\n * Indicates whether daterangepicker's content is enabled or not\n */\n @Input() isDisabled: boolean;\n /**\n * Minimum date which is available for selection\n */\n @Input() minDate: Date;\n /**\n * Maximum date which is available for selection\n */\n @Input() maxDate: Date;\n /**\n * Date custom classes\n */\n @Input() dateCustomClasses: DatepickerDateCustomClasses[];\n /**\n * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays\n */\n @Input() daysDisabled?: number[];\n /**\n * Disable specific dates\n */\n @Input() datesDisabled: Date[];\n\n /**\n * Enable specific dates\n */\n @Input() datesEnabled: Date[];\n /**\n * Emits when daterangepicker value has been changed\n */\n @Output() bsValueChange: EventEmitter<Date[]> = new EventEmitter();\n\n protected _subs: Subscription[] = [];\n\n private _datepicker: ComponentLoader<BsDaterangepickerContainerComponent>;\n private _datepickerRef: ComponentRef<BsDaterangepickerContainerComponent>;\n\n constructor(public _config: BsDaterangepickerConfig,\n private _elementRef: ElementRef,\n private _renderer: Renderer2,\n _viewContainerRef: ViewContainerRef,\n cis: ComponentLoaderFactory) {\n this._datepicker = cis.createLoader<BsDaterangepickerContainerComponent>(\n _elementRef,\n _viewContainerRef,\n _renderer\n );\n Object.assign(this, _config);\n this.onShown = this._datepicker.onShown;\n this.onHidden = this._datepicker.onHidden;\n this.isOpen$ = new BehaviorSubject(this.isOpen);\n }\n\n ngOnInit(): void {\n this.isDestroy$ = new Subject();\n this._datepicker.listen({\n outsideClick: this.outsideClick,\n outsideEsc: this.outsideEsc,\n triggers: this.triggers,\n show: () => this.show()\n });\n this.setConfig();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n\n if (changes.minDate) {\n this._datepickerRef.instance.minDate = this.minDate;\n }\n\n if (changes.maxDate) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n }\n\n if (changes.datesDisabled) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n }\n\n if (changes.datesEnabled) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n }\n\n if (changes.daysDisabled) {\n this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n }\n\n if (changes.isDisabled) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n }\n\n if (changes.dateCustomClasses) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n }\n }\n\n ngAfterViewInit(): void {\n this.isOpen$.pipe(\n filter(isOpen => isOpen !== this.isOpen),\n takeUntil(this.isDestroy$)\n )\n .subscribe(() => this.toggle());\n }\n\n /**\n * Opens an elementâs datepicker. This is considered a âmanualâ triggering of\n * the datepicker.\n */\n show(): void {\n if (this._datepicker.isShown) {\n return;\n }\n\n this.setConfig();\n\n this._datepickerRef = this._datepicker\n .provide({ provide: BsDatepickerConfig, useValue: this._config })\n .attach(BsDaterangepickerContainerComponent)\n .to(this.container)\n .position({ attachment: this.placement })\n .show({ placement: this.placement });\n\n // if date changes from external source (model -> view)\n this._subs.push(\n this.bsValueChange.subscribe((value: Date[]) => {\n this._datepickerRef.instance.value = value;\n })\n );\n\n // if date changes from picker (view -> model)\n this._subs.push(\n this._datepickerRef.instance.valueChange\n .pipe(\n filter((range: Date[]) => range && range[0] && !!range[1])\n )\n .subscribe((value: Date[]) => {\n this.bsValue = value;\n this.hide();\n })\n );\n }\n\n /**\n * Set config for daterangepicker\n */\n setConfig() {\n this._config = Object.assign(\n {},\n this._config,\n this.bsConfig,\n {\n value: this._bsValue,\n isDisabled: this.isDisabled,\n minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,\n dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n ranges: this.bsConfig && this.bsConfig.ranges\n }\n );\n }\n\n /**\n * Closes an elementâs datepicker. This is considered a âmanualâ triggering of\n * the datepicker.\n */\n hide(): void {\n if (this.isOpen) {\n this._datepicker.hide();\n }\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n\n if (this._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elementRef.nativeElement).focus();\n }\n }\n\n /**\n * Toggles an elementâs datepicker. This is considered a âmanualâ triggering\n * of the datepicker.\n */\n toggle(): void {\n if (this.isOpen) {\n return this.hide();\n }\n\n this.show();\n }\n\n ngOnDestroy(): void {\n this._datepicker.dispose();\n this.isOpen$.next(false);\n if (this.isDestroy$) {\n this.isDestroy$.next();\n this.isDestroy$.complete();\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n Host,\n Provider,\n Renderer2\n} from '@angular/core';\n\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\n\nimport {\n parseDate,\n formatDate,\n getLocale,\n isAfter,\n isBefore,\n isArray,\n isDateValid,\n utcAsLocal\n} from 'ngx-bootstrap/chronos';\n\nimport { BsDaterangepickerDirective } from './bs-daterangepicker.component';\nimport { BsLocaleService } from './bs-locale.service';\n\nconst BS_DATERANGEPICKER_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => BsDaterangepickerInputDirective),\n multi: true\n};\n\nconst BS_DATERANGEPICKER_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => BsDaterangepickerInputDirective),\n multi: true\n};\n\n\n@Directive({\n selector: `input[bsDaterangepicker]`,\n host: {\n '(change)': 'onChange($event)',\n '(keyup.esc)': 'hide()',\n '(keydown)': 'onKeydownEvent($event)',\n '(blur)': 'onBlur()'\n },\n providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR]\n})\nexport class BsDaterangepickerInputDirective\n implements ControlValueAccessor, Validator {\n private _onChange = Function.prototype;\n private _onTouched = Function.prototype;\n /* tslint:disable-next-line: no-unused-variable */\n private _validatorChange = Function.prototype;\n private _value: Date[];\n\n constructor(@Host() private _picker: BsDaterangepickerDirective,\n private _localeService: BsLocaleService,\n private _renderer: Renderer2,\n private _elRef: ElementRef,\n private changeDetection: ChangeDetectorRef) {\n // update input value on datepicker value update\n this._picker.bsValueChange.subscribe((value: Date[]) => {\n this._setInputValue(value);\n if (this._value !== value) {\n this._value = value;\n this._onChange(value);\n this._onTouched();\n }\n this.changeDetection.markForCheck();\n });\n\n // update input value on locale change\n this._localeService.localeChange.subscribe(() => {\n this._setInputValue(this._value);\n });\n }\n\n onKeydownEvent(event) {\n if (event.keyCode === 13 || event.code === 'Enter') {\n this.hide();\n }\n }\n\n _setInputValue(date: Date[]): void {\n let range = '';\n if (date) {\n const start: string = !date[0] ? ''\n : formatDate(date[0],\n this._picker._config.rangeInputFormat,\n this._localeService.currentLocale\n );\n const end: string = !date[1] ? ''\n : formatDate(\n date[1],\n this._picker._config.rangeInputFormat,\n this._localeService.currentLocale\n );\n range = (start && end) ? start + this._picker._config.rangeSeparator + end : '';\n }\n this._renderer.setProperty(this._elRef.nativeElement, 'value', range);\n }\n\n onChange(event: Event) {\n /* tslint:disable-next-line: no-any*/\n this.writeValue((event.target as any).value);\n this._onChange(this._value);\n if (this._picker._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n }\n this._onTouched();\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n const _value: [Date, Date] = c.value;\n const errors: object[] = [];\n\n if (_value === null || _value === undefined || !isArray(_value)) {\n return null;\n }\n\n // @ts-ignore\n _value.sort((a, b) => a - b);\n\n const _isFirstDateValid = isDateValid(_value[0]);\n const _isSecondDateValid = isDateValid(_value[1]);\n\n if (!_isFirstDateValid) {\n return { bsDate: { invalid: _value[0] } };\n }\n\n if (!_isSecondDateValid) {\n return { bsDate: { invalid: _value[1] } };\n }\n\n if (this._picker && this._picker.minDate && isBefore(_value[0], this._picker.minDate, 'date')) {\n _value[0] = this._picker.minDate;\n errors.push({ bsDate: { minDate: this._picker.minDate } });\n }\n\n if (this._picker && this._picker.maxDate && isAfter(_value[1], this._picker.maxDate, 'date')) {\n _value[1] = this._picker.maxDate;\n errors.push({ bsDate: { maxDate: this._picker.maxDate } });\n }\n if (errors.length > 0) {\n this.writeValue(_value);\n\n return errors;\n }\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorChange = fn;\n }\n\n writeValue(value: Date[] | string) {\n if (!value) {\n this._value = null;\n } else {\n const _localeKey = this._localeService.currentLocale;\n const _locale = getLocale(_localeKey);\n if (!_locale) {\n throw new Error(\n `Locale \"${_localeKey}\" is not defined, please add it with \"defineLocale(...)\"`\n );\n }\n\n let _input: (string[] | Date[]) = [];\n if (typeof value === 'string') {\n _input = value.split(this._picker._config.rangeSeparator);\n }\n\n if (Array.isArray(value)) {\n _input = value;\n }\n\n this._value = (_input as string[])\n .map((_val: string): Date => {\n if (this._picker._config.useUtc) {\n return utcAsLocal(\n parseDate(_val, this._picker._config.dateInputFormat, this._localeService.currentLocale)\n );\n }\n\n return parseDate(_val, this._picker._config.dateInputFormat, this._localeService.currentLocale);\n }\n )\n .map((date: Date) => (isNaN(date.valueOf()) ? null : date));\n }\n\n this._picker.bsValue = this._value;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._picker.isDisabled = isDisabled;\n if (isDisabled) {\n this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');\n }\n\n /* tslint:disable-next-line: no-any*/\n registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n /* tslint:disable-next-line: no-any*/\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n onBlur() {\n this._onTouched();\n }\n\n hide() {\n this._picker.hide();\n this._renderer.selectRootElement(this._elRef.nativeElement).blur();\n\n if (this._picker._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n }\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bs-calendar-layout',\n template: `\n <!-- current date, will be added in nearest releases -->\n <bs-current-date title=\"hey there\" *ngIf=\"false\"></bs-current-date>\n\n <!--navigation-->\n <div class=\"bs-datepicker-head\">\n <ng-content select=\"bs-datepicker-navigation-view\"></ng-content>\n </div>\n\n <div class=\"bs-datepicker-body\">\n <ng-content></ng-content>\n </div>\n\n <!--timepicker-->\n <bs-timepicker *ngIf=\"false\"></bs-timepicker>\n `\n})\nexport class BsCalendarLayoutComponent {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'bs-current-date',\n template: `<div class=\"current-timedate\"><span>{{ title }}</span></div>`\n})\nexport class BsCurrentDateViewComponent {\n @Input() title: string;\n}\n","import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';\n\nexport interface BsCustomDates {\n label: string;\n value: Date | Date[];\n}\n\n@Component({\n selector: 'bs-custom-date-view',\n template: `\n <div class=\"bs-datepicker-predefined-btns\">\n <button *ngFor=\"let range of ranges\"\n type=\"button\"\n class=\"btn\"\n (click)=\"selectFromRanges(range)\"\n [class.selected]=\"range.value === selectedRange\">\n {{ range.label }}\n </button>\n <button\n type=\"button\"\n class=\"btn\"\n (click)=\"selectFromRanges(customRange)\"\n [class.selected]=\"!checkRange()\">\n Custom Range\n </button>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BsCustomDatesViewComponent {\n @Input() ranges: BsCustomDates[];\n @Input() selectedRange: Date[];\n @Output() onSelect = new EventEmitter<BsCustomDates>();\n\n customRange: any = null;\n\n selectFromRanges(range: BsCustomDates) {\n this.onSelect.emit(range);\n }\n\n checkRange() {\n return this.ranges ? this.ranges.filter(range => range.value === this.selectedRange).length > 0 : false;\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnInit,\n Renderer2\n} from '@angular/core';\n\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { DayViewModel } from '../../models';\n\n@Component({\n selector: '[bsDatepickerDayDecorator]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.disabled]': 'day.isDisabled',\n '[class.is-highlighted]': 'day.isHovered',\n '[class.is-other-month]': 'day.isOtherMonth',\n '[class.is-active-other-month]': 'day.isOtherMonthHovered',\n '[class.in-range]': 'day.isInRange',\n '[class.select-start]': 'day.isSelectionStart',\n '[class.select-end]': 'day.isSelectionEnd',\n '[class.selected]': 'day.isSelected'\n },\n template: `{{ day.label }}`\n})\nexport class BsDatepickerDayDecoratorComponent implements OnInit {\n @Input() day: DayViewModel;\n\n constructor(\n private _config: BsDatepickerConfig,\n private _elRef: ElementRef,\n private _renderer: Renderer2\n ) { }\n\n ngOnInit(): void {\n if (this.day.isToday && this._config && this._config.customTodayClass) {\n this._renderer.addClass(this._elRef.nativeElement, this._config.customTodayClass);\n }\n\n if (typeof this.day.customClasses === 'string') {\n this.day.customClasses.split(' ')\n .filter((className: string) => className)\n .forEach((className: string) => {\n this._renderer.addClass(this._elRef.nativeElement, className);\n });\n }\n }\n}\n","import { TimeUnit } from 'ngx-bootstrap/chronos';\n\nexport type BsDatepickerViewMode = 'day' | 'month' | 'year';\n\n/** *************** */\n// navigation bar settings\nexport interface NavigationViewModel {\n monthTitle: string;\n yearTitle: string;\n hideLeftArrow?: boolean;\n hideRightArrow?: boolean;\n disableLeftArrow?: boolean;\n disableRightArrow?: boolean;\n}\n\nexport interface CalendarCellViewModel {\n date: Date;\n label: string;\n isDisabled?: boolean;\n isHovered?: boolean;\n isSelected?: boolean;\n}\n\n/** *************** */\n// days matrix: day cell view model\nexport interface DayViewModel extends CalendarCellViewModel {\n isOtherMonthHovered?: boolean;\n isOtherMonth?: boolean;\n isInRange?: boolean;\n isSelectionStart?: boolean;\n isSelectionEnd?: boolean;\n isToday?: boolean;\n customClasses?: string;\n // day index\n monthIndex?: number;\n weekIndex?: number;\n dayIndex?: number;\n}\n\nexport interface WeekViewModel {\n days: DayViewModel[];\n isHovered?: boolean;\n}\n\n// todo: split navigation settings\nexport interface DaysCalendarViewModel extends NavigationViewModel {\n weeks: WeekViewModel[];\n // additional information\n month: Date;\n weekNumbers: string[];\n weekdays: string[];\n}\n\n/** *************** */\n// months calendar\nexport interface MonthsCalendarViewModel extends NavigationViewModel {\n months: CalendarCellViewModel[][];\n}\n\n/** *************** */\n// years calendar\nexport interface YearsCalendarViewModel extends NavigationViewModel {\n years: CalendarCellViewModel[][];\n}\n\n/** *************** */\n\n// math model\n/** *************** */\n\n// days Date's array\nexport interface DaysCalendarModel {\n daysMatrix: Date[][];\n month: Date;\n}\n\n/** *************** */\n// some func options\nexport interface MonthViewOptions {\n width?: number;\n height?: number;\n firstDayOfWeek?: number;\n}\n\n/** *************** */\n// rendering options\nexport interface DatepickerFormatOptions {\n locale: string;\n\n monthTitle: string;\n yearTitle: string;\n\n dayLabel: string;\n monthLabel: string;\n yearLabel: string;\n\n weekNumbers: string;\n}\n\nexport interface DatepickerRenderOptions {\n showWeekNumbers?: boolean;\n displayMonths?: number;\n}\n\nexport interface DatepickerDateCustomClasses {\n date: Date;\n classes: string[];\n}\n\n/** *************** */\n// events\n/** *************** */\nexport enum BsNavigationDirection {\n UP,\n DOWN\n}\n\n// used for navigation events, to change view date in state\nexport interface BsNavigationEvent {\n direction?: BsNavigationDirection;\n step?: TimeUnit;\n}\n\nexport interface BsViewNavigationEvent {\n unit?: TimeUnit;\n viewMode: BsDatepickerViewMode;\n}\n\nexport interface CellHoverEvent {\n cell: CalendarCellViewModel;\n isHovered: boolean;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\nimport {\n BsDatepickerViewMode,\n BsNavigationDirection,\n DaysCalendarViewModel\n} from '../../models';\n\n@Component({\n selector: 'bs-datepicker-navigation-view',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <button class=\"previous\"\n [disabled]=\"calendar.disableLeftArrow\"\n [style.visibility]=\"calendar.hideLeftArrow ? 'hidden' : 'visible'\"\n type=\"button\"\n (click)=\"navTo(true)\">\n <span>‹</span>\n </button>\n\n <ng-container *ngIf=\"calendar.monthTitle\">\n ​ <!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular -->\n\n <button class=\"current\"\n type=\"button\"\n (click)=\"view('month')\"\n ><span>{{ calendar.monthTitle }}</span>\n </button>\n </ng-container>\n\n ​ <!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular -->\n\n <button class=\"current\" (click)=\"view('year')\" type=\"button\">\n <span>{{ calendar.yearTitle }}</span>\n </button>\n\n ​ <!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular -->\n\n <button class=\"next\"\n [disabled]=\"calendar.disableRightArrow\"\n [style.visibility]=\"calendar.hideRightArrow ? 'hidden' : 'visible'\"\n type=\"button\"\n (click)=\"navTo(false)\"><span>›</span>\n </button>\n `\n})\nexport class BsDatepickerNavigationViewComponent {\n @Input() calendar: DaysCalendarViewModel;\n\n @Output() onNavigate = new EventEmitter<BsNavigationDirection>();\n @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n navTo(down: boolean): void {\n this.onNavigate.emit(\n down ? BsNavigationDirection.DOWN : BsNavigationDirection.UP\n );\n }\n\n view(viewMode: BsDatepickerViewMode): void {\n this.onViewMode.emit(viewMode);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\n\nimport {\n BsDatepickerViewMode,\n BsNavigationDirection,\n BsNavigationEvent,\n CellHoverEvent,\n DatepickerRenderOptions,\n DaysCalendarViewModel,\n DayViewModel, WeekViewModel\n} from '../../models';\n\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\n\n@Component({\n selector: 'bs-days-calendar-view',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"changeViewMode($event)\"\n ></bs-datepicker-navigation-view>\n\n <!--days matrix-->\n <table role=\"grid\" class=\"days weeks\">\n <thead>\n <tr>\n <!--if show weeks-->\n <th *ngIf=\"options.showWeekNumbers\"></th>\n <th *ngFor=\"let weekday of calendar.weekdays; let i = index\"\n aria-label=\"weekday\">{{ calendar.weekdays[i] }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let week of calendar.weeks; let i = index\">\n <td class=\"week\" [class.active-week]=\"isWeekHovered\" *ngIf=\"options.showWeekNumbers\">\n <span\n (click)=\"selectWeek(week)\"\n (mouseenter)=\"weekHoverHandler(week, true)\"\n (mouseleave)=\"weekHoverHandler(week, false)\">{{ calendar.weekNumbers[i] }}</span>\n </td>\n <td *ngFor=\"let day of week.days\" role=\"gridcell\">\n <span bsDatepickerDayDecorator\n [day]=\"day\"\n (click)=\"selectDay(day)\"\n (mouseenter)=\"hoverDay(day, true)\"\n (mouseleave)=\"hoverDay(day, false)\">{{ day.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n\n </bs-calendar-layout>\n `\n})\nexport class BsDaysCalendarViewComponent {\n @Input() calendar: DaysCalendarViewModel;\n @Input() options: DatepickerRenderOptions;\n\n @Output() onNavigate = new EventEmitter<BsNavigationEvent>();\n @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n @Output() onSelect = new EventEmitter<DayViewModel>();\n @Output() onHover = new EventEmitter<CellHoverEvent>();\n @Output() onHoverWeek = new EventEmitter<WeekViewModel>();\n\n isWeekHovered: boolean;\n\n constructor(private _config: BsDatepickerConfig) { }\n\n navigateTo(event: BsNavigationDirection): void {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({ step: { month: step } });\n }\n\n changeViewMode(event: BsDatepickerViewMode): void {\n this.onViewMode.emit(event);\n }\n\n selectDay(event: DayViewModel): void {\n this.onSelect.emit(event);\n }\n\n selectWeek(week: WeekViewModel): void {\n if (!this._config.selectWeek && !this._config.selectWeekDateRange) {\n return;\n }\n\n if (week.days.length === 0) {\n return;\n }\n\n if (this._config.selectWeek && week.days[0]\n && !week.days[0].isDisabled\n && this._config.selectFromOtherMonth) {\n\n this.onSelect.emit(week.days[0]);\n\n return;\n }\n\n const selectedDay = week.days.find((day: DayViewModel) => {\n return this._config.selectFromOtherMonth\n ? !day.isDisabled\n : !day.isOtherMonth && !day.isDisabled;\n });\n\n this.onSelect.emit(selectedDay);\n\n if (this._config.selectWeekDateRange) {\n const days = week.days.slice(0);\n const lastDayOfRange = days.reverse().find((day: DayViewModel) => {\n return this._config.selectFromOtherMonth\n ? !day.isDisabled\n : !day.isOtherMonth && !day.isDisabled;\n });\n\n this.onSelect.emit(lastDayOfRange);\n }\n }\n\n weekHoverHandler(cell: WeekViewModel, isHovered: boolean): void {\n if (!this._config.selectWeek && !this._config.selectWeekDateRange) {\n return;\n }\n\n const hasActiveDays = cell.days.find((day: DayViewModel) => {\n return this._config.selectFromOtherMonth\n ? !day.isDisabled\n : !day.isOtherMonth && !day.isDisabled;\n });\n\n if (hasActiveDays) {\n cell.isHovered = isHovered;\n this.isWeekHovered = isHovered;\n this.onHoverWeek.emit(cell);\n }\n }\n\n hoverDay(cell: DayViewModel, isHovered: boolean): void {\n if (this._config.selectFromOtherMonth && cell.isOtherMonth) {\n cell.isOtherMonthHovered = isHovered;\n }\n\n this.onHover.emit({ cell, isHovered });\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n BsDatepickerViewMode,\n BsNavigationDirection,\n BsNavigationEvent,\n CellHoverEvent,\n MonthsCalendarViewModel,\n CalendarCellViewModel\n} from '../../models';\n\n@Component({\n selector: 'bs-month-calendar-view',\n template: `\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"changeViewMode($event)\"\n ></bs-datepicker-navigation-view>\n\n <table role=\"grid\" class=\"months\">\n <tbody>\n <tr *ngFor=\"let row of calendar.months\">\n <td *ngFor=\"let month of row\" role=\"gridcell\"\n (click)=\"viewMonth(month)\"\n (mouseenter)=\"hoverMonth(month, true)\"\n (mouseleave)=\"hoverMonth(month, false)\"\n [class.disabled]=\"month.isDisabled\"\n [class.is-highlighted]=\"month.isHovered\">\n <span [class.selected]=\"month.isSelected\">{{ month.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n </bs-calendar-layout>\n `\n})\nexport class BsMonthCalendarViewComponent {\n @Input() calendar: MonthsCalendarViewModel;\n\n @Output() onNavigate = new EventEmitter<BsNavigationEvent>();\n @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n @Output() onSelect = new EventEmitter<CalendarCellViewModel>();\n @Output() onHover = new EventEmitter<CellHoverEvent>();\n\n navigateTo(event: BsNavigationDirection): void {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({ step: { year: step } });\n }\n\n viewMonth(month: CalendarCellViewModel) {\n this.onSelect.emit(month);\n }\n\n hoverMonth(cell: CalendarCellViewModel, isHovered: boolean) {\n this.onHover.emit({ cell, isHovered });\n }\n\n changeViewMode(event: BsDatepickerViewMode): void {\n this.onViewMode.emit(event);\n }\n}\n","// tslint:disable:max-line-length\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'bs-timepicker',\n template: `\n <div class=\"bs-timepicker-container\">\n <div class=\"bs-timepicker-controls\">\n <button class=\"bs-decrease\" type=\"button\">-</button>\n <input type=\"text\" [value]=\"hours\" placeholder=\"00\">\n <button class=\"bs-increase\" type=\"button\">+</button>\n </div>\n <div class=\"bs-timepicker-controls\">\n <button class=\"bs-decrease\" type=\"button\">-</button>\n <input type=\"text\" [value]=\"minutes\" placeholder=\"00\">\n <button class=\"bs-increase\" type=\"button\">+</button>\n </div>\n <button class=\"switch-time-format\" type=\"button\">{{ ampm }}\n <img\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAKCAYAAABi8KSDAAABSElEQVQYV3XQPUvDUBQG4HNuagtVqc6KgouCv6GIuIntYBLB9hcIQpLStCAIV7DYmpTcRWcXqZio3Vwc/UCc/QEqfgyKGbr0I7nS1EiHeqYzPO/h5SD0jaxUZjmSLCB+OFb+UFINFwASAEAdpu9gaGXVyAHHFQBkHpKHc6a9dzECvADyY9sqlAMsK9W0jzxDXqeytr3mhQckxSji27TJJ5/rPmIpwJJq3HrtduriYOurv1a4i1p5HnhkG9OFymi0ReoO05cGwb+ayv4dysVygjeFmsP05f8wpZQ8fsdvfmuY9zjWSNqUtgYFVnOVReILYoBFzdQI5/GGFzNHhGbeZnopDGU29sZbscgldmC99w35VOATTycIMMcBXIfpSVGzZhA6C8hh00conln6VQ9TGgV32OEAKQC4DrBq7CJwd0ggR7Vq/rPrfgB+C3sGypY5DAAAAABJRU5ErkJggg==\"\n alt=\"\">\n </button>\n </div>\n `\n})\nexport class BsTimepickerViewComponent {\n ampm = 'ok';\n hours = 0;\n minutes = 0;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { yearsPerCalendar } from '../../engine/format-years-calendar';\nimport {\n BsDatepickerViewMode,\n BsNavigationDirection,\n BsNavigationEvent,\n CalendarCellViewModel,\n CellHoverEvent,\n YearsCalendarViewModel\n} from '../../models';\n\n@Component({\n selector: 'bs-years-calendar-view',\n template: `\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"changeViewMode($event)\"\n ></bs-datepicker-navigation-view>\n\n <table role=\"grid\" class=\"years\">\n <tbody>\n <tr *ngFor=\"let row of calendar.years\">\n <td *ngFor=\"let year of row\" role=\"gridcell\"\n (click)=\"viewYear(year)\"\n (mouseenter)=\"hoverYear(year, true)\"\n (mouseleave)=\"hoverYear(year, false)\"\n [class.disabled]=\"year.isDisabled\"\n [class.is-highlighted]=\"year.isHovered\">\n <span [class.selected]=\"year.isSelected\">{{ year.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n </bs-calendar-layout>\n `\n})\nexport class BsYearsCalendarViewComponent {\n @Input() calendar: YearsCalendarViewModel;\n\n @Output() onNavigate = new EventEmitter<BsNavigationEvent>();\n @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n @Output() onSelect = new EventEmitter<CalendarCellViewModel>();\n @Output() onHover = new EventEmitter<CellHoverEvent>();\n\n navigateTo(event: BsNavigationDirection): void {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({ step: { year: step * yearsPerCalendar } });\n }\n\n viewYear(year: CalendarCellViewModel) {\n this.onSelect.emit(year);\n }\n\n hoverYear(cell: CalendarCellViewModel, isHovered: boolean) {\n this.onHover.emit({ cell, isHovered });\n }\n\n changeViewMode(event: BsDatepickerViewMode): void {\n this.onViewMode.emit(event);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\nimport { BsDatepickerInputDirective } from './bs-datepicker-input.directive';\nimport { BsDatepickerDirective } from './bs-datepicker.component';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { BsDaterangepickerInputDirective } from './bs-daterangepicker-input.directive';\nimport { BsDaterangepickerDirective } from './bs-daterangepicker.component';\nimport { BsDaterangepickerConfig } from './bs-daterangepicker.config';\n\nimport { BsDatepickerInlineDirective } from './bs-datepicker-inline.component';\nimport { BsDatepickerInlineConfig } from './bs-datepicker-inline.config';\n\nimport { BsLocaleService } from './bs-locale.service';\nimport { BsDatepickerActions } from './reducer/bs-datepicker.actions';\nimport { BsDatepickerEffects } from './reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from './reducer/bs-datepicker.store';\nimport { BsDatepickerContainerComponent } from './themes/bs/bs-datepicker-container.component';\nimport { BsDaterangepickerContainerComponent } from './themes/bs/bs-daterangepicker-container.component';\n\nimport { BsDatepickerInlineContainerComponent } from './themes/bs/bs-datepicker-inline-container.component';\nimport { BsDaterangepickerInlineContainerComponent } from './themes/bs/bs-daterangepicker-inline-container.component';\n\nimport { BsDaterangepickerInlineDirective } from './bs-daterangepicker-inline.component';\nimport { BsDaterangepickerInlineConfig } from './bs-daterangepicker-inline.config';\n\nimport { BsCalendarLayoutComponent } from './themes/bs/bs-calendar-layout.component';\nimport { BsCurrentDateViewComponent } from './themes/bs/bs-current-date-view.component';\nimport { BsCustomDatesViewComponent } from './themes/bs/bs-custom-dates-view.component';\nimport { BsDatepickerDayDecoratorComponent } from './themes/bs/bs-datepicker-day-decorator.directive';\nimport { BsDatepickerNavigationViewComponent } from './themes/bs/bs-datepicker-navigation-view.component';\nimport { BsDaysCalendarViewComponent } from './themes/bs/bs-days-calendar-view.component';\nimport { BsMonthCalendarViewComponent } from './themes/bs/bs-months-calendar-view.component';\nimport { BsTimepickerViewComponent } from './themes/bs/bs-timepicker-view.component';\nimport { BsYearsCalendarViewComponent } from './themes/bs/bs-years-calendar-view.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n BsCalendarLayoutComponent,\n BsCurrentDateViewComponent,\n BsCustomDatesViewComponent,\n BsDatepickerDayDecoratorComponent,\n BsDatepickerNavigationViewComponent,\n BsDaysCalendarViewComponent,\n BsMonthCalendarViewComponent,\n BsTimepickerViewComponent,\n BsYearsCalendarViewComponent,\n BsDatepickerContainerComponent,\n BsDatepickerDirective,\n BsDatepickerInlineContainerComponent,\n BsDatepickerInlineDirective,\n BsDatepickerInputDirective,\n BsDaterangepickerContainerComponent,\n BsDaterangepickerDirective,\n BsDaterangepickerInlineContainerComponent,\n BsDaterangepickerInlineDirective,\n BsDaterangepickerInputDirective\n ],\n entryComponents: [\n BsDatepickerContainerComponent,\n BsDaterangepickerContainerComponent,\n BsDatepickerInlineContainerComponent,\n BsDaterangepickerInlineContainerComponent\n ],\n exports: [\n BsDatepickerContainerComponent,\n BsDatepickerDirective,\n BsDatepickerInlineContainerComponent,\n BsDatepickerInlineDirective,\n BsDatepickerInputDirective,\n BsDaterangepickerContainerComponent,\n BsDaterangepickerDirective,\n BsDaterangepickerInlineContainerComponent,\n BsDaterangepickerInlineDirective,\n BsDaterangepickerInputDirective\n ]\n})\nexport class BsDatepickerModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: BsDatepickerModule,\n providers: [\n ComponentLoaderFactory,\n PositioningService,\n BsDatepickerStore,\n BsDatepickerActions,\n BsDatepickerConfig,\n BsDaterangepickerConfig,\n BsDatepickerInlineConfig,\n BsDaterangepickerInlineConfig,\n BsDatepickerEffects,\n BsLocaleService\n ]\n };\n }\n}\n","import { formatDate } from 'ngx-bootstrap/chronos';\n\nexport class DateFormatter {\n format(date: Date, format: string, locale: string): string {\n return formatDate(date, format, locale);\n }\n}\n","/* tslint:disable: max-file-line-count */\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\n\nimport { DateFormatter } from './date-formatter';\n\n\n@Component({\n selector: 'datepicker-inner',\n template: `\n <!--<!–ng-keydown=\"keydown($event)\"–>-->\n <div *ngIf=\"datepickerMode\" class=\"well well-sm bg-faded p-a card\" role=\"application\" >\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DatePickerInnerComponent implements OnInit, OnChanges {\n @Input() locale: string;\n @Input() datepickerMode: string;\n @Input() startingDay: number;\n @Input() yearRange: number;\n\n @Input() minDate: Date;\n @Input() maxDate: Date;\n @Input() minMode: string;\n @Input() maxMode: string;\n @Input() showWeeks: boolean;\n @Input() formatDay: string;\n @Input() formatMonth: string;\n @Input() formatYear: string;\n @Input() formatDayHeader: string;\n @Input() formatDayTitle: string;\n @Input() formatMonthTitle: string;\n @Input() onlyCurrentMonth: boolean;\n @Input() shortcutPropagation: boolean;\n @Input() customClass: { date: Date; mode: string; clazz: string }[];\n @Input() monthColLimit: number;\n @Input() yearColLimit: number;\n @Input() dateDisabled: { date: Date; mode: string }[];\n @Input() dayDisabled: number[];\n @Input() initDate: Date;\n\n @Output() selectionDone: EventEmitter<Date> = new EventEmitter<Date>(undefined);\n @Output() update: EventEmitter<Date> = new EventEmitter<Date>(false);\n @Output() activeDateChange: EventEmitter<Date> = new EventEmitter<Date>(undefined);\n\n /* tslint:disable-next-line: no-any*/\n stepDay: any = {};\n /* tslint:disable-next-line: no-any*/\n stepMonth: any = {};\n /* tslint:disable-next-line: no-any*/\n stepYear: any = {};\n\n uniqueId: string;\n\n protected modes: string[] = ['day', 'month', 'year'];\n protected dateFormatter: DateFormatter = new DateFormatter();\n protected _activeDate: Date;\n protected selectedDate: Date;\n protected activeDateId: string;\n\n protected refreshViewHandlerDay: Function;\n protected compareHandlerDay: Function;\n protected refreshViewHandlerMonth: Function;\n protected compareHandlerMonth: Function;\n protected refreshViewHandlerYear: Function;\n protected compareHandlerYear: Function;\n\n @Input()\n get activeDate(): Date {\n return this._activeDate;\n }\n\n set activeDate(value: Date) {\n this._activeDate = value;\n }\n\n // todo: add formatter value to Date object\n ngOnInit(): void {\n // todo: use date for unique value\n this.uniqueId = `datepicker--${Math.floor(Math.random() * 10000)}`;\n\n if (this.initDate) {\n this.activeDate = this.initDate;\n this.selectedDate = new Date(this.activeDate.valueOf());\n this.update.emit(this.activeDate);\n } else if (this.activeDate === undefined) {\n this.activeDate = new Date();\n }\n }\n\n // this.refreshView should be called here to reflect the changes on the fly\n // tslint:disable-next-line:no-unused-variable\n ngOnChanges(changes: SimpleChanges): void {\n this.refreshView();\n this.checkIfActiveDateGotUpdated(changes.activeDate);\n }\n\n // Check if activeDate has been update and then emit the activeDateChange with the new date\n /* tslint:disable-next-line: no-any */\n checkIfActiveDateGotUpdated(activeDate: any): void {\n if (activeDate && !activeDate.firstChange) {\n const previousValue = activeDate.previousValue;\n if (\n previousValue &&\n previousValue instanceof Date &&\n previousValue.getTime() !== activeDate.currentValue.getTime()\n ) {\n this.activeDateChange.emit(this.activeDate);\n }\n }\n }\n\n setCompareHandler(handler: Function, type: string): void {\n if (type === 'day') {\n this.compareHandlerDay = handler;\n }\n\n if (type === 'month') {\n this.compareHandlerMonth = handler;\n }\n\n if (type === 'year') {\n this.compareHandlerYear = handler;\n }\n }\n\n compare(date1: Date, date2: Date): number | undefined {\n if (date1 === undefined || date2 === undefined) {\n return undefined;\n }\n\n if (this.datepickerMode === 'day' && this.compareHandlerDay) {\n return this.compareHandlerDay(date1, date2);\n }\n\n if (this.datepickerMode === 'month' && this.compareHandlerMonth) {\n return this.compareHandlerMonth(date1, date2);\n }\n\n if (this.datepickerMode === 'year' && this.compareHandlerYear) {\n return this.compareHandlerYear(date1, date2);\n }\n\n return void 0;\n }\n\n setRefreshViewHandler(handler: Function, type: string): void {\n if (type === 'day') {\n this.refreshViewHandlerDay = handler;\n }\n\n if (type === 'month') {\n this.refreshViewHandlerMonth = handler;\n }\n\n if (type === 'year') {\n this.refreshViewHandlerYear = handler;\n }\n }\n\n refreshView(): void {\n if (this.datepickerMode === 'day' && this.refreshViewHandlerDay) {\n this.refreshViewHandlerDay();\n }\n\n if (this.datepickerMode === 'month' && this.refreshViewHandlerMonth) {\n this.refreshViewHandlerMonth();\n }\n\n if (this.datepickerMode === 'year' && this.refreshViewHandlerYear) {\n this.refreshViewHandlerYear();\n }\n }\n\n dateFilter(date: Date, format: string): string {\n return this.dateFormatter.format(date, format, this.locale);\n }\n\n /* tslint:disable-next-line: no-any*/\n isActive(dateObject: any): boolean {\n if (this.compare(dateObject.date, this.activeDate) === 0) {\n this.activeDateId = dateObject.uid;\n\n return true;\n }\n\n return false;\n }\n\n /* tslint:disable-next-line: no-any*/\n createDateObject(date: Date, format: string): any {\n /* tslint:disable-next-line: no-any*/\n const dateObject: any = {};\n dateObject.date = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n );\n dateObject.date = this.fixTimeZone(dateObject.date);\n dateObject.label = this.dateFilter(date, format);\n dateObject.selected = this.compare(date, this.selectedDate) === 0;\n dateObject.disabled = this.isDisabled(date);\n dateObject.current = this.compare(date, new Date()) === 0;\n dateObject.customClass = this.getCustomClassForDate(dateObject.date);\n\n return dateObject;\n }\n\n /* tslint:disable-next-line: no-any*/\n split(arr: any[], size: number): any[] {\n /* tslint:disable-next-line: no-any*/\n const arrays: any[] = [];\n while (arr.length > 0) {\n arrays.push(arr.splice(0, size));\n }\n\n return arrays;\n }\n\n // Fix a hard-reproducible bug with timezones\n // The bug depends on OS, browser, current timezone and current date\n // i.e.\n // var date = new Date(2014, 0, 1);\n // console.log(date.getFullYear(), date.getMonth(), date.getDate(),\n // date.getHours()); can result in \"2013 11 31 23\" because of the bug.\n fixTimeZone(date: Date): Date {\n const hours = date.getHours();\n\n return new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n hours === 23 ? hours + 2 : 0\n );\n }\n\n select(date: Date, isManual = true): void {\n if (this.datepickerMode === this.minMode) {\n if (!this.activeDate) {\n this.activeDate = new Date(0, 0, 0, 0, 0, 0, 0);\n }\n\n this.activeDate = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n );\n this.activeDate = this.fixTimeZone(this.activeDate);\n if (isManual) {\n this.selectionDone.emit(this.activeDate);\n }\n } else {\n this.activeDate = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n );\n this.activeDate = this.fixTimeZone(this.activeDate);\n if (isManual) {\n this.datepickerMode = this.modes[\n this.modes.indexOf(this.datepickerMode) - 1\n ];\n }\n }\n\n this.selectedDate = new Date(this.activeDate.valueOf());\n this.update.emit(this.activeDate);\n this.refreshView();\n }\n\n move(direction: number): void {\n /* tslint:disable-next-line: no-any*/\n let expectedStep: any;\n if (this.datepickerMode === 'day') {\n expectedStep = this.stepDay;\n }\n\n if (this.datepickerMode === 'month') {\n expectedStep = this.stepMonth;\n }\n\n if (this.datepickerMode === 'year') {\n expectedStep = this.stepYear;\n }\n\n if (expectedStep) {\n const year =\n this.activeDate.getFullYear() + direction * (expectedStep.years || 0);\n const month =\n this.activeDate.getMonth() + direction * (expectedStep.months || 0);\n this.activeDate = new Date(year, month, 1);\n\n this.refreshView();\n this.activeDateChange.emit(this.activeDate);\n }\n }\n\n toggleMode(_direction: number): void {\n const direction = _direction || 1;\n\n if (\n (this.datepickerMode === this.maxMode && direction === 1) ||\n (this.datepickerMode === this.minMode && direction === -1)\n ) {\n return;\n }\n\n this.datepickerMode = this.modes[\n this.modes.indexOf(this.datepickerMode) + direction\n ];\n this.refreshView();\n }\n\n protected getCustomClassForDate(date: Date): string {\n if (!this.customClass) {\n return '';\n }\n // todo: build a hash of custom classes, it will work faster\n const customClassObject: {\n date: Date;\n mode: string;\n clazz: string;\n /* tslint:disable-next-line: no-any */\n } = this.customClass.find((customClass: any) => {\n return (\n customClass.date.valueOf() === date.valueOf() &&\n customClass.mode === this.datepickerMode\n );\n }, this);\n\n return customClassObject === undefined ? '' : customClassObject.clazz;\n }\n\n protected compareDateDisabled(\n date1Disabled: { date: Date; mode: string },\n date2: Date\n ): number {\n if (date1Disabled === undefined || date2 === undefined) {\n return undefined;\n }\n\n if (date1Disabled.mode === 'day' && this.compareHandlerDay) {\n return this.compareHandlerDay(date1Disabled.date, date2);\n }\n\n if (date1Disabled.mode === 'month' && this.compareHandlerMonth) {\n return this.compareHandlerMonth(date1Disabled.date, date2);\n }\n\n if (date1Disabled.mode === 'year' && this.compareHandlerYear) {\n return this.compareHandlerYear(date1Disabled.date, date2);\n }\n\n return undefined;\n }\n\n protected isDisabled(date: Date): boolean {\n let isDateDisabled = false;\n if (this.dateDisabled) {\n this.dateDisabled.forEach(\n (disabledDate: { date: Date; mode: string }) => {\n if (this.compareDateDisabled(disabledDate, date) === 0) {\n isDateDisabled = true;\n }\n }\n );\n }\n\n if (this.dayDisabled) {\n isDateDisabled =\n isDateDisabled ||\n this.dayDisabled.indexOf(date.getDay()) > -1;\n }\n\n return (\n isDateDisabled ||\n (this.minDate && this.compare(date, this.minDate) < 0) ||\n (this.maxDate && this.compare(date, this.maxDate) > 0)\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class DatepickerConfig {\n locale = 'en';\n datepickerMode = 'day';\n startingDay = 0;\n yearRange = 20;\n minMode = 'day';\n maxMode = 'year';\n showWeeks = true;\n formatDay = 'DD';\n formatMonth = 'MMMM';\n formatYear = 'YYYY';\n formatDayHeader = 'dd';\n formatDayTitle = 'MMMM YYYY';\n formatMonthTitle = 'YYYY';\n onlyCurrentMonth = false;\n monthColLimit = 3;\n yearColLimit = 5;\n shortcutPropagation = false;\n}\n","import {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n Provider,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\nimport { DatepickerConfig } from './datepicker.config';\n\nexport const DATEPICKER_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true\n};\n\n/* tslint:disable:component-selector-name component-selector-type */\n@Component({\n selector: 'datepicker',\n template: `\n <datepicker-inner [activeDate]=\"activeDate\"\n (update)=\"onUpdate($event)\"\n [locale]=\"config.locale\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n [dayDisabled]=\"dayDisabled\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [monthColLimit]=\"monthColLimit\"\n [yearColLimit]=\"yearColLimit\"\n (selectionDone)=\"onSelectionDone($event)\"\n (activeDateChange)=\"onActiveDateChange($event)\">\n <daypicker tabindex=\"0\"></daypicker>\n <monthpicker tabindex=\"0\"></monthpicker>\n <yearpicker tabindex=\"0\"></yearpicker>\n </datepicker-inner>\n `,\n providers: [DATEPICKER_CONTROL_VALUE_ACCESSOR]\n})\n/* tslint:enable:component-selector-name component-selector-type */\nexport class DatePickerComponent implements ControlValueAccessor {\n /** sets datepicker mode, supports: `day`, `month`, `year` */\n @Input() datepickerMode = 'day';\n /** default date to show if `ng-model` value is not specified */\n @Input() initDate: Date;\n /** oldest selectable date */\n @Input() minDate: Date;\n /** latest selectable date */\n @Input() maxDate: Date;\n /** set lower datepicker mode, supports: `day`, `month`, `year` */\n @Input() minMode: string;\n /** sets upper datepicker mode, supports: `day`, `month`, `year` */\n @Input() maxMode: string;\n /** if false week numbers will be hidden */\n @Input() showWeeks = true;\n /** format of day in month */\n @Input() formatDay: string;\n /** format of month in year */\n @Input() formatMonth: string;\n /** format of year in year range */\n @Input() formatYear: string;\n /** format of day in week header */\n @Input() formatDayHeader: string;\n /** format of title when selecting day */\n @Input() formatDayTitle: string;\n /** format of title when selecting month */\n @Input() formatMonthTitle: string;\n /** starting day of the week from 0-6 (0=Sunday, ..., 6=Saturday) */\n @Input() startingDay: number;\n /** number of years displayed in year selection */\n @Input() yearRange: number;\n /** if true only dates from the currently displayed month will be shown */\n @Input() onlyCurrentMonth: boolean;\n /** if true shortcut`s event propagation will be disabled */\n @Input() shortcutPropagation: boolean;\n /** number of months displayed in a single row of month picker */\n @Input() monthColLimit: number;\n /** number of years displayed in a single row of year picker */\n @Input() yearColLimit: number;\n /** array of custom css classes to be applied to targeted dates */\n @Input() customClass: { date: Date; mode: string; clazz: string }[];\n /** array of disabled dates */\n @Input() dateDisabled: { date: Date; mode: string }[];\n /** disabled days of the week from 0-6 (0=Sunday, ..., 6=Saturday) */\n @Input() dayDisabled: number[];\n\n /** currently active date */\n @Input()\n get activeDate(): Date {\n return this._activeDate || this._now;\n }\n\n set activeDate(value: Date) {\n this._activeDate = value;\n }\n\n @Output()\n selectionDone: EventEmitter<Date> = new EventEmitter<Date>(undefined);\n\n /** callback to invoke when the activeDate is changed. */\n @Output()\n activeDateChange: EventEmitter<Date> = new EventEmitter<Date>(\n undefined\n );\n\n @ViewChild(DatePickerInnerComponent, { static: true })\n _datePicker: DatePickerInnerComponent;\n\n /* tslint:disable-next-line: no-any*/\n onChange: any = Function.prototype;\n /* tslint:disable-next-line: no-any*/\n onTouched: any = Function.prototype;\n\n config: DatepickerConfig;\n\n protected _now: Date = new Date();\n protected _activeDate: Date;\n\n constructor(config: DatepickerConfig) {\n this.config = config;\n this.configureOptions();\n }\n\n configureOptions(): void {\n Object.assign(this, this.config);\n }\n\n onUpdate(event: Date): void {\n this.activeDate = event;\n this.onChange(event);\n }\n\n onSelectionDone(event: Date): void {\n this.selectionDone.emit(event);\n }\n\n onActiveDateChange(event: Date): void {\n this.activeDateChange.emit(event);\n }\n // todo: support null value\n /* tslint:disable-next-line: no-any*/\n writeValue(value: any): void {\n if (this._datePicker.compare(value, this._activeDate) === 0) {\n return;\n }\n if (value && value instanceof Date) {\n this.activeDate = value;\n this._datePicker.select(value, false);\n\n return;\n }\n\n this.activeDate = value ? new Date(value) : void 0;\n }\n\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","// @deprecated\n// tslint:disable\nimport { Component, OnInit } from '@angular/core';\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\n\n@Component({\n selector: 'daypicker',\n template: `\n<table *ngIf=\"datePicker.datepickerMode === 'day'\" role=\"grid\" [attr.aria-labelledby]=\"datePicker.uniqueId + '-title'\" aria-activedescendant=\"activeDateId\">\n <thead>\n <tr>\n <th>\n <button *ngIf=\"!isBs4\"\n type=\"button\"\n class=\"btn btn-default btn-secondary btn-sm pull-left float-left\"\n (click)=\"datePicker.move(-1)\"\n tabindex=\"-1\">â¹</button>\n <button *ngIf=\"isBs4\"\n type=\"button\"\n class=\"btn btn-default btn-secondary btn-sm pull-left float-left\"\n (click)=\"datePicker.move(-1)\"\n tabindex=\"-1\"><</button>\n </th>\n <th [attr.colspan]=\"5 + (datePicker.showWeeks ? 1 : 0)\">\n <button [id]=\"datePicker.uniqueId + '-title'\"\n type=\"button\" class=\"btn btn-default btn-secondary btn-sm\"\n (click)=\"datePicker.toggleMode(0)\"\n [disabled]=\"datePicker.datepickerMode === datePicker.maxMode\"\n [ngClass]=\"{disabled: datePicker.datepickerMode === datePicker.maxMode}\" tabindex=\"-1\" style=\"width:100%;\">\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th>\n <button *ngIf=\"!isBs4\"\n type=\"button\"\n class=\"btn btn-default btn-secondary btn-sm pull-right float-right\"\n (click)=\"datePicker.move(1)\"\n tabindex=\"-1\">âº</button>\n <button *ngIf=\"isBs4\"\n type=\"button\"\n class=\"btn btn-default btn-secondary btn-sm pull-right float-right\"\n (click)=\"datePicker.move(1)\"\n tabindex=\"-1\">>\n </button>\n </th>\n </tr>\n <tr>\n <th *ngIf=\"datePicker.showWeeks\"></th>\n <th *ngFor=\"let labelz of labels\" class=\"text-center\">\n <small aria-label=\"labelz.full\"><b>{{ labelz.abbr }}</b></small>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-template ngFor [ngForOf]=\"rows\" let-rowz=\"$implicit\" let-index=\"index\">\n <tr *ngIf=\"!(datePicker.onlyCurrentMonth && rowz[0].secondary && rowz[6].secondary)\">\n <td *ngIf=\"datePicker.showWeeks\" class=\"h6\" class=\"text-center\">\n <em>{{ weekNumbers[index] }}</em>\n </td>\n <td *ngFor=\"let dtz of rowz\" class=\"text-center\" role=\"gridcell\" [id]=\"dtz.uid\">\n <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-sm {{dtz.customClass}}\"\n *ngIf=\"!(datePicker.onlyCurrentMonth && dtz.secondary)\"\n [ngClass]=\"{'btn-secondary': isBs4 && !dtz.selected && !datePicker.isActive(dtz), 'btn-info': dtz.selected, disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz), 'btn-default': !isBs4}\"\n [disabled]=\"dtz.disabled\"\n (click)=\"datePicker.select(dtz.date)\" tabindex=\"-1\">\n <span [ngClass]=\"{'text-muted': dtz.secondary || dtz.current, 'text-info': !isBs4 && dtz.current}\">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </ng-template>\n </tbody>\n</table>\n `,\n styles: [\n `\n :host .btn-secondary {\n color: #292b2c;\n background-color: #fff;\n border-color: #ccc;\n }\n :host .btn-info .text-muted {\n color: #292b2c !important;\n }\n `\n ]\n})\nexport class DayPickerComponent implements OnInit {\n labels: any[] = [];\n title: string;\n rows: any[] = [];\n weekNumbers: number[] = [];\n datePicker: DatePickerInnerComponent;\n\n constructor(datePicker: DatePickerInnerComponent) {\n this.datePicker = datePicker;\n }\n\n get isBs4(): boolean {\n return !isBs3();\n }\n\n /*protected getDaysInMonth(year:number, month:number) {\n return ((month === 1) && (year % 4 === 0) &&\n ((year % 100 !== 0) || (year % 400 === 0))) ? 29 : DAYS_IN_MONTH[month];\n }*/\n ngOnInit(): void {\n const self = this;\n\n this.datePicker.stepDay = { months: 1 };\n\n this.datePicker.setRefreshViewHandler(function(): void {\n const year = this.activeDate.getFullYear();\n const month = this.activeDate.getMonth();\n const firstDayOfMonth = new Date(year, month, 1);\n const difference = this.startingDay - firstDayOfMonth.getDay();\n const numDisplayedFromPreviousMonth =\n difference > 0 ? 7 - difference : -difference;\n const firstDate = new Date(firstDayOfMonth.getTime());\n\n if (numDisplayedFromPreviousMonth > 0) {\n firstDate.setDate(-numDisplayedFromPreviousMonth + 1);\n }\n\n // 42 is the number of days on a six-week calendar\n const _days: Date[] = self.getDates(firstDate, 42);\n const days: any[] = [];\n for (let i = 0; i < 42; i++) {\n const _dateObject = this.createDateObject(_days[i], this.formatDay);\n _dateObject.secondary = _days[i].getMonth() !== month;\n _dateObject.uid = this.uniqueId + '-' + i;\n days[i] = _dateObject;\n }\n\n self.labels = [];\n for (let j = 0; j < 7; j++) {\n self.labels[j] = {};\n self.labels[j].abbr = this.dateFilter(\n days[j].date,\n this.formatDayHeader\n );\n self.labels[j].full = this.dateFilter(days[j].date, 'EEEE');\n }\n\n self.title = this.dateFilter(this.activeDate, this.formatDayTitle);\n self.rows = this.split(days, 7);\n\n if (this.showWeeks) {\n self.weekNumbers = [];\n const thursdayIndex = (4 + 7 - this.startingDay) % 7;\n const numWeeks = self.rows.length;\n for (let curWeek = 0; curWeek < numWeeks; curWeek++) {\n self.weekNumbers.push(\n self.getISO8601WeekNumber(self.rows[curWeek][thursdayIndex].date)\n );\n }\n }\n }, 'day');\n\n this.datePicker.setCompareHandler(function(\n date1: Date,\n date2: Date\n ): number {\n const d1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());\n const d2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());\n return d1.getTime() - d2.getTime();\n }, 'day');\n\n this.datePicker.refreshView();\n }\n\n protected getDates(startDate: Date, n: number): Date[] {\n const dates: Date[] = new Array(n);\n let current = new Date(startDate.getTime());\n let i = 0;\n let date: Date;\n while (i < n) {\n date = new Date(current.getTime());\n date = this.datePicker.fixTimeZone(date);\n dates[i++] = date;\n current = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate() + 1\n );\n }\n return dates;\n }\n\n protected getISO8601WeekNumber(date: Date): number {\n const checkDate = new Date(date.getTime());\n // Thursday\n checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));\n const time = checkDate.getTime();\n // Compare with Jan 1\n checkDate.setMonth(0);\n checkDate.setDate(1);\n return (\n Math.floor(Math.round((time - checkDate.getTime()) / 86400000) / 7) + 1\n );\n }\n\n // todo: key events implementation\n}\n","// @deprecated\n// tslint:disable\nimport { Component, OnInit } from '@angular/core';\n\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\n\n@Component({\n selector: 'monthpicker',\n template: `\n<table *ngIf=\"datePicker.datepickerMode==='month'\" role=\"grid\">\n <thead>\n <tr>\n <th>\n <button type=\"button\" class=\"btn btn-default btn-sm pull-left float-left\"\n (click)=\"datePicker.move(-1)\" tabindex=\"-1\">â¹</button></th>\n <th [attr.colspan]=\"((datePicker.monthColLimit - 2) <= 0) ? 1 : datePicker.monthColLimit - 2\">\n <button [id]=\"datePicker.uniqueId + '-title'\"\n type=\"button\" class=\"btn btn-default btn-sm\"\n (click)=\"datePicker.toggleMode(0)\"\n [disabled]=\"datePicker.datepickerMode === maxMode\"\n [ngClass]=\"{disabled: datePicker.datepickerMode === maxMode}\" tabindex=\"-1\" style=\"width:100%;\">\n <strong>{{ title }}</strong> \n </button>\n </th>\n <th>\n <button type=\"button\" class=\"btn btn-default btn-sm pull-right float-right\"\n (click)=\"datePicker.move(1)\" tabindex=\"-1\">âº</button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let rowz of rows\">\n <td *ngFor=\"let dtz of rowz\" class=\"text-center\" role=\"gridcell\" [attr.id]=\"dtz.uid\" [ngClass]=\"dtz.customClass\">\n <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default\"\n [ngClass]=\"{'btn-link': isBs4 && !dtz.selected && !datePicker.isActive(dtz), 'btn-info': dtz.selected || (isBs4 && !dtz.selected && datePicker.isActive(dtz)), disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz)}\"\n [disabled]=\"dtz.disabled\"\n (click)=\"datePicker.select(dtz.date)\" tabindex=\"-1\">\n <span [ngClass]=\"{'text-success': isBs4 && dtz.current, 'text-info': !isBs4 && dtz.current}\">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n `,\n styles: [\n `\n :host .btn-info .text-success {\n color: #fff !important;\n }\n `\n ]\n})\nexport class MonthPickerComponent implements OnInit {\n title: string;\n rows: any[] = [];\n datePicker: DatePickerInnerComponent;\n maxMode: string;\n\n constructor(datePicker: DatePickerInnerComponent) {\n this.datePicker = datePicker;\n }\n\n get isBs4(): boolean {\n return !isBs3();\n }\n\n ngOnInit(): void {\n const self = this;\n\n this.datePicker.stepMonth = { years: 1 };\n\n this.datePicker.setRefreshViewHandler(function(): void {\n const months: any[] = new Array(12);\n const year: number = this.activeDate.getFullYear();\n let date: Date;\n\n for (let i = 0; i < 12; i++) {\n date = new Date(year, i, 1);\n date = this.fixTimeZone(date);\n months[i] = this.createDateObject(date, this.formatMonth);\n months[i].uid = this.uniqueId + '-' + i;\n }\n\n self.title = this.dateFilter(this.activeDate, this.formatMonthTitle);\n self.rows = this.split(months, self.datePicker.monthColLimit);\n }, 'month');\n\n this.datePicker.setCompareHandler(function(\n date1: Date,\n date2: Date\n ): number {\n const d1 = new Date(date1.getFullYear(), date1.getMonth());\n const d2 = new Date(date2.getFullYear(), date2.getMonth());\n return d1.getTime() - d2.getTime();\n }, 'month');\n\n this.datePicker.refreshView();\n }\n\n // todo: key events implementation\n}\n","// @deprecated\n// tslint:disable\nimport { Component, OnInit } from '@angular/core';\n\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\n\n@Component({\n selector: 'yearpicker',\n template: `\n<table *ngIf=\"datePicker.datepickerMode==='year'\" role=\"grid\">\n <thead>\n <tr>\n <th>\n <button type=\"button\" class=\"btn btn-default btn-sm pull-left float-left\"\n (click)=\"datePicker.move(-1)\" tabindex=\"-1\">â¹</button>\n </th>\n <th [attr.colspan]=\"((datePicker.yearColLimit - 2) <= 0) ? 1 : datePicker.yearColLimit - 2\">\n <button [id]=\"datePicker.uniqueId + '-title'\" role=\"heading\"\n type=\"button\" class=\"btn btn-default btn-sm\"\n (click)=\"datePicker.toggleMode(0)\"\n [disabled]=\"datePicker.datepickerMode === datePicker.maxMode\"\n [ngClass]=\"{disabled: datePicker.datepickerMode === datePicker.maxMode}\" tabindex=\"-1\" style=\"width:100%;\">\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th>\n <button type=\"button\" class=\"btn btn-default btn-sm pull-right float-right\"\n (click)=\"datePicker.move(1)\" tabindex=\"-1\">âº</button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let rowz of rows\">\n <td *ngFor=\"let dtz of rowz\" class=\"text-center\" role=\"gridcell\" [attr.id]=\"dtz.uid\">\n <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default\"\n [ngClass]=\"{'btn-link': isBs4 && !dtz.selected && !datePicker.isActive(dtz), 'btn-info': dtz.selected || (isBs4 && !dtz.selected && datePicker.isActive(dtz)), disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz)}\"\n [disabled]=\"dtz.disabled\"\n (click)=\"datePicker.select(dtz.date)\" tabindex=\"-1\">\n <span [ngClass]=\"{'text-success': isBs4 && dtz.current, 'text-info': !isBs4 && dtz.current}\">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n `,\n styles: [\n `\n :host .btn-info .text-success {\n color: #fff !important;\n }\n `\n ]\n})\nexport class YearPickerComponent implements OnInit {\n datePicker: DatePickerInnerComponent;\n title: string;\n rows: any[] = [];\n\n constructor(datePicker: DatePickerInnerComponent) {\n this.datePicker = datePicker;\n }\n\n get isBs4(): boolean {\n return !isBs3();\n }\n\n ngOnInit(): void {\n const self = this;\n\n this.datePicker.stepYear = { years: this.datePicker.yearRange };\n\n this.datePicker.setRefreshViewHandler(function(): void {\n const years: any[] = new Array(this.yearRange);\n let date: Date;\n const start = self.getStartingYear(this.activeDate.getFullYear());\n\n for (let i = 0; i < this.yearRange; i++) {\n date = new Date(start + i, 0, 1);\n date = this.fixTimeZone(date);\n years[i] = this.createDateObject(date, this.formatYear);\n years[i].uid = this.uniqueId + '-' + i;\n }\n\n self.title = [years[0].label, years[this.yearRange - 1].label].join(\n ' - '\n );\n self.rows = this.split(years, self.datePicker.yearColLimit);\n }, 'year');\n\n this.datePicker.setCompareHandler(function(\n date1: Date,\n date2: Date\n ): number {\n return date1.getFullYear() - date2.getFullYear();\n }, 'year');\n\n this.datePicker.refreshView();\n }\n\n protected getStartingYear(year: number): number {\n // todo: parseInt\n return (\n (year - 1) / this.datePicker.yearRange * this.datePicker.yearRange + 1\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\nimport { DatePickerComponent } from './datepicker.component';\nimport { DatepickerConfig } from './datepicker.config';\nimport { DayPickerComponent } from './daypicker.component';\nimport { MonthPickerComponent } from './monthpicker.component';\nimport { YearPickerComponent } from './yearpicker.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [\n DatePickerComponent,\n DatePickerInnerComponent,\n DayPickerComponent,\n MonthPickerComponent,\n YearPickerComponent\n ],\n exports: [\n DatePickerComponent,\n DatePickerInnerComponent,\n DayPickerComponent,\n MonthPickerComponent,\n YearPickerComponent\n ],\n entryComponents: [DatePickerComponent]\n})\nexport class DatepickerModule {\n static forRoot(): ModuleWithProviders {\n return { ngModule: DatepickerModule, providers: [DatepickerConfig] };\n }\n}\n"],"names":["Injectable","BehaviorSubject","filter","map","getMonth","getFullYear","tslib_1.__values","isFirstDayOfWeek","getDay","shiftDate","isBefore","endOf","isAfter","startOf","isArray","isSame","getFirstDayOfMonth","formatDate","getLocale","isSameMonth","isSameDay","isDisabledDay","height","width","shift","isSameYear","setFullDate","isDateValid","tslib_1.__extends","MiniState","MiniStore","trigger","state","style","transition","animate","EventEmitter","take","Component","Renderer2","ElementRef","PositioningService","Subject","takeUntil","Directive","ViewContainerRef","ComponentLoaderFactory","Input","Output","NG_VALUE_ACCESSOR","forwardRef","NG_VALIDATORS","isDate","parseDate","utcAsLocal","Host","ChangeDetectorRef","ChangeDetectionStrategy","NgModule","CommonModule","ViewChild","isBs3","FormsModule"],"mappings":";;;;;;IAAA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;AACA;IACA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;IACnC,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc;IACzC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;IACpF,QAAQ,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,IAAI,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;AACF;IACO,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;IAChC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,IAAI,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IAC3C,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;AACD;IACO,IAAI,QAAQ,GAAG,WAAW;IACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,MAAK;IACL,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,EAAC;AACD;IACO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;IACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACvG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,OAAO,CAAC,CAAC;IACb,CAAC;AACD;IACO,SAAS,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IAC1D,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACtJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;AACD;IACO,SAAS,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE;IAC/C,IAAI,OAAO,UAAU,MAAM,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE;IACzE,CAAC;AACD;IACO,SAAS,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE;IACvD,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;AACD;IACO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;IAC7D,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;IAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;IACvJ,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,CAAC;IACP,CAAC;AACD;IACO,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;IAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrH,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7J,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;IACtE,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE;IACtB,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACtE,QAAQ,OAAO,CAAC,EAAE,IAAI;IACtB,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzK,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzB,gBAAgB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM;IAC9C,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxE,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IACjE,gBAAgB,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IACjE,gBAAgB;IAChB,oBAAoB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;IAChI,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;IAC1G,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACzF,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;IACvF,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC1C,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IAC3C,aAAa;IACb,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IAClE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzF,KAAK;IACL,CAAC;AACD;IACO,SAAS,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE;IACzC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;AACD;IACO,SAAS,QAAQ,CAAC,CAAC,EAAE;IAC5B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,OAAO;IACX,QAAQ,IAAI,EAAE,YAAY;IAC1B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/C,YAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IACpD,SAAS;IACT,KAAK,CAAC;IACN,CAAC;AACD;IACO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,IAAI;IACR,QAAQ,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnF,KAAK;IACL,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;IAC3C,YAAY;IACZ,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,SAAS;IACT,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;IACzC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;AACD;IACO,SAAS,QAAQ,GAAG;IAC3B,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IACtD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;AACD;IACO,SAAS,OAAO,CAAC,CAAC,EAAE;IAC3B,IAAI,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;AACD;IACO,SAAS,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;IACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAClE,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1H,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAC9I,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IACtF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IAC5H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;AACD;IACO,SAAS,gBAAgB,CAAC,CAAC,EAAE;IACpC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAChJ,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;AACD;IACO,SAAS,aAAa,CAAC,CAAC,EAAE;IACjC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IACpK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;AACD;IACO,SAAS,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE;IAClD,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE;IACnH,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACF;IACO,SAAS,YAAY,CAAC,GAAG,EAAE;IAClC,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnG,IAAI,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;IACzB,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;AACD;IACO,SAAS,eAAe,CAAC,GAAG,EAAE;IACrC,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D;;;;;;;;;;;QC5KA;;;;YAGE,qBAAgB,GAAG,KAAK,CAAC;;;;YAEzB,WAAM,GAAG,KAAK,CAAC;;;;YAEf,eAAU,GAAG,KAAK,CAAC;;;;YAkEnB,uBAAkB,GAAG,KAAK,CAAC;;;;;YAK3B,mBAAc,GAAG,aAAa,CAAC;;YAG/B,kBAAa,GAAG,CAAC,CAAC;;;;YAIlB,oBAAe,GAAG,IAAI,CAAC;YAEvB,oBAAe,GAAG,GAAG,CAAC;;YAEtB,mBAAc,GAAG,KAAK,CAAC;;;;YAIvB,qBAAgB,GAAG,GAAG,CAAC;;YAQvB,eAAU,GAAG,MAAM,CAAC;YACpB,cAAS,GAAG,MAAM,CAAC;YACnB,aAAQ,GAAG,GAAG,CAAC;YACf,eAAU,GAAG,MAAM,CAAC;YACpB,cAAS,GAAG,MAAM,CAAC;YACnB,gBAAW,GAAG,GAAG,CAAC;SACnB;;oBA3GAA,eAAU;;QA2GX,yBAAC;KA3GD,IA2GC;;;;;;QAxGC,8CAAyB;;;;;QAEzB,oCAAe;;;;;QAEf,wCAAmB;;QACnB,mCAAsB;;QACtB,wCAAqB;;;;;QAIrB,qCAAe;;;;;QAIf,qCAAe;;;;;QAIf,+CAAiD;;;;;QAIjD,0CAAwB;;;;;QAIxB,2CAAuB;;;;;;;QAMvB,kDAA+B;;;;;QAI/B,0CAAsB;;;;;QAItB,kDAA+B;;;;;QAK/B,wCAAqB;;;;;QAKrB,iDAA8B;;;;;QAK9B,+CAA4B;;;;;QAK5B,8CAA0B;;;;;QAK1B,qCAA+B;;;;;QAK/B,gDAA2B;;;;;;QAK3B,4CAA+B;;QAG/B,2CAAkB;;;;;QAIlB,6CAAuB;;QAEvB,6CAAsB;;QAEtB,4CAAuB;;;;;QAIvB,8CAAuB;;;;;QAKvB,oCAAyB;;QAGzB,wCAAoB;;QACpB,uCAAmB;;QACnB,sCAAe;;QACf,wCAAoB;;QACpB,uCAAmB;;QACnB,yCAAkB;;;;;;;;;;ACpGpB;;;;QAAA;YAKE,iBAAY,GAAoB,EAAE,CAAC;SAwDpC;QAtDC,sBAAI,kDAAO;;;;;YAAX,UAAY,KAAW;gBACrB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aACjC;;;WAAA;QAED,sBAAI,kDAAO;;;;;YAAX,UAAY,KAAW;gBACrB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aACjC;;;WAAA;QACD,sBAAI,uDAAY;;;;;YAAhB,UAAiB,KAAe;gBAC9B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aACtC;;;WAAA;QACD,sBAAI,wDAAa;;;;;YAAjB,UAAkB,KAAa;gBAC7B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aACvC;;;WAAA;QAED,sBAAI,uDAAY;;;;;YAAhB,UAAiB,KAAa;gBAC5B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aACtC;;;WAAA;QAED,sBAAI,qDAAU;;;;;YAAd,UAAe,KAAc;gBAC3B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aAClC;;;WAAA;QAED,sBAAI,4DAAiB;;;;;YAArB,UAAsB,KAAoC;gBACxD,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;aAC3C;;;WAAA;;;;;QAQD,mDAAW;;;;QAAX,UAAY,KAA2B,KAAU;;;;;QAEjD,kDAAU;;;;QAAV,UAAW,KAAwB,KAAU;;;;;QAE7C,uDAAe;;;;QAAf,UAAgB,KAAqB,KAAU;;;;;QAE/C,wDAAgB;;;;QAAhB,UAAiB,KAAoB,KAAU;;;;;QAE/C,yDAAiB;;;;QAAjB,UAAkB,KAAqB,KAAU;;;;;QAEjD,wDAAgB;;;;QAAhB,UAAiB,KAAqB,KAAU;;;;;QAEhD,wDAAgB;;;;QAAhB,UAAiB,GAAiB,KAAU;;;;;QAE5C,0DAAkB;;;;QAAlB,UAAmB,KAA4B,KAAU;;;;;QAEzD,yDAAiB;;;;QAAjB,UAAkB,KAA4B,KAAU;;;;;;;QAGxD,wDAAgB;;;;;QAAhB,UAAiB,KAAU;YACzB,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;QACH,oCAAC;IAAD,CAAC,IAAA;;;QA5DC,uDAAuB;;QACvB,4DAA6B;;QAE7B,iDAA8B;;QAC9B,qDAAmC;;QA4BnC,iDAA2C;;QAC3C,qDAAkD;;QAClD,uDAAsD;;QACtD,sDAAoD;;QACpD,gDAA6C;;;;;;;ACxD/C;QAWA;SA6IC;;;;QArHC,uCAAS;;;QAAT;YACE,OAAO,EAAE,IAAI,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC;SAChD;;;;QAED,oCAAM;;;QAAN;YACE,OAAO,EAAE,IAAI,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC;SAC7C;;;;QAED,kCAAI;;;QAAJ;YACE,OAAO,EAAE,IAAI,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC;SAC3C;;;;;QAED,oCAAM;;;;QAAN,UAAO,IAAU;YACf,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,MAAM;gBAChC,OAAO,EAAE,IAAI;aACd,CAAC;SACH;;;;;QAED,4CAAc;;;;QAAd,UAAe,KAA2B;YACxC,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,eAAe;gBACzC,OAAO,EAAE,KAAK;aACf,CAAC;SACH;;;;;QAED,wCAAU;;;;QAAV,UAAW,KAA4B;YACrC,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,WAAW;gBACrC,OAAO,EAAE,KAAK;aACf,CAAC;SACH;;;;;QAED,0CAAY;;;;QAAZ,UAAa,IAAc;YACzB,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,eAAe;gBACzC,OAAO,EAAE,IAAI;aACd,CAAC;SACH;;;;;QAED,wCAAU;;;;QAAV,UAAW,OAAgC;YACzC,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,WAAW;gBACrC,OAAO,EAAE,OAAO;aACjB,CAAC;SACH;;;;;;;QAGD,yCAAW;;;;;;QAAX,UAAY,KAAa;YACvB,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,YAAY;gBACtC,OAAO,EAAE,KAAK;aACf,CAAC;SACH;;;;;QAED,sCAAQ;;;;QAAR,UAAS,KAAqB;YAC5B,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,KAAK;gBAC/B,OAAO,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI;aAClD,CAAC;SACH;;;;;QAED,qCAAO;;;;QAAP,UAAQ,IAAU;YAChB,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,YAAY;gBACtC,OAAO,EAAE,IAAI;aACd,CAAC;SACH;;;;;QAED,qCAAO;;;;QAAP,UAAQ,IAAU;YAChB,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,YAAY;gBACtC,OAAO,EAAE,IAAI;aACd,CAAC;SACH;;;;;QAED,0CAAY;;;;QAAZ,UAAa,IAAc;YACzB,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,gBAAgB;gBAC1C,OAAO,EAAE,IAAI;aACd,CAAC;SACH;;;;;QAED,2CAAa;;;;QAAb,UAAc,KAAa;YACzB,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,iBAAiB;gBAC3C,OAAO,EAAE,KAAK;aACf,CAAC;SACH;;;;;QAED,0CAAY;;;;QAAZ,UAAa,KAAa;YACxB,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,gBAAgB;gBAC1C,OAAO,EAAE,KAAK;aACf,CAAC;SACH;;;;;QAED,wCAAU;;;;QAAV,UAAW,KAAc;YACvB,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,eAAe;gBACzC,OAAO,EAAE,KAAK;aACf,CAAC;SACH;;;;;QAED,kDAAoB;;;;QAApB,UAAqB,KAAoC;YACvD,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,uBAAuB;gBACjD,OAAO,EAAE,KAAK;aACf,CAAC;SACH;;;;;QAED,uCAAS;;;;QAAT,UAAU,MAAc;YACtB,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,UAAU;gBACpC,OAAO,EAAE,MAAM;aAChB,CAAC;SACH;QA1Ie,6BAAS,GAAG,qCAAqC,CAAC;QAClD,0BAAM,GAAG,uCAAuC,CAAC;QACjD,wBAAI,GAAG,wBAAwB,CAAC;QAChC,0BAAM,GAAG,0BAA0B,CAAC;QACpC,mCAAe,GAAG,8BAA8B,CAAC;QACjD,+BAAW,GAAG,+BAA+B,CAAC;QAC9C,+BAAW,GAAG,oCAAoC,CAAC;QACnD,yBAAK,GAAG,yBAAyB,CAAC;QAClC,mCAAe,GAAG,+BAA+B,CAAC;QAElD,gCAAY,GAAG,2BAA2B,CAAC;QAC3C,gCAAY,GAAG,2BAA2B,CAAC;QAC3C,oCAAgB,GAAG,gCAAgC,CAAC;QACpD,qCAAiB,GAAG,iCAAiC,CAAC;QACtD,oCAAgB,GAAG,gCAAgC,CAAC;QACpD,mCAAe,GAAG,8BAA8B,CAAC;QACjD,2CAAuB,GAAG,sCAAsC,CAAC;QAEjE,8BAAU,GAAG,oCAAoC,CAAC;QAElD,gCAAY,GAAG,sCAAsC,CAAC;;oBAtBvEA,eAAU;;QA6IX,0BAAC;KA7ID,IA6IC;;;QA3IC,8BAAkE;;QAClE,2BAAiE;;QACjE,yBAAgD;;QAChD,2BAAoD;;QACpD,oCAAiE;;QACjE,gCAA8D;;QAC9D,gCAAmE;;QACnE,0BAAkD;;QAClD,oCAAkE;;QAElE,iCAA2D;;QAC3D,iCAA2D;;QAC3D,qCAAoE;;QACpE,sCAAsE;;QACtE,qCAAoE;;QACpE,oCAAiE;;QACjE,4CAAiF;;QAEjF,+BAAkE;;QAElE,iCAAsE;;;;;;;ACjCxE;QAGA;YAEU,mBAAc,GAAG,IAAI,CAAC;YACtB,YAAO,GAAG,IAAIC,oBAAe,CAAS,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3D,kBAAa,GAAuB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;SAqBzE;QAnBC,sBAAI,mCAAM;;;;YAAV;gBACE,OAAO,IAAI,CAAC,OAAO,CAAC;aACrB;;;WAAA;QAED,sBAAI,yCAAY;;;;YAAhB;gBACE,OAAO,IAAI,CAAC,aAAa,CAAC;aAC3B;;;WAAA;QAED,sBAAI,0CAAa;;;;YAAjB;gBACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;aAChC;;;WAAA;;;;;QAED,6BAAG;;;;QAAH,UAAI,MAAc;YAChB,IAAI,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE;gBACjC,OAAO;aACR;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3B;;oBAxBFD,eAAU;;QAyBX,sBAAC;KAzBD,IAyBC;;;;;;QAvBC,yCAA8B;;;;;QAC9B,kCAAmE;;;;;QACnE,wCAAwE;;;;;;;;QC+BxE,6BAAoB,QAA6B,EAC7B,cAA+B;YAD/B,aAAQ,GAAR,QAAQ,CAAqB;YAC7B,mBAAc,GAAd,cAAc,CAAiB;YAH3C,UAAK,GAAmB,EAAE,CAAC;SAGoB;;;;;QAEvD,kCAAI;;;;QAAJ,UAAK,kBAAqC;YACxC,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC;YAEjC,OAAO,IAAI,CAAC;SACb;;;;;;;QAID,sCAAQ;;;;;QAAR,UAAS,KAAW;YAClB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACnD;;;;;QAED,2CAAa;;;;QAAb,UAAc,KAAa;YACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;SACxD;;;;;QAED,wCAAU;;;;QAAV,UAAW,KAAW;YACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAEnD,OAAO,IAAI,CAAC;SACb;;;;;QAED,wCAAU;;;;QAAV,UAAW,KAAW;YACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAEnD,OAAO,IAAI,CAAC;SACb;;;;;QAED,6CAAe;;;;QAAf,UAAgB,KAAe;YAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAExD,OAAO,IAAI,CAAC;SACb;;;;;QAED,8CAAgB;;;;QAAhB,UAAiB,KAAa;YAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YAEzD,OAAO,IAAI,CAAC;SACb;;;;;QAED,6CAAe;;;;QAAf,UAAgB,KAAa;YAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAExD,OAAO,IAAI,CAAC;SACb;;;;;QAED,yCAAW;;;;QAAX,UAAY,KAAc;YACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAEtD,OAAO,IAAI,CAAC;SACb;;;;;QAED,kDAAoB;;;;QAApB,UAAqB,KAAoC;YACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;YAEhE,OAAO,IAAI,CAAC;SACb;;;;;;;QAGD,wCAAU;;;;;QAAV,UAAW,OAA2B;;gBAC9B,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa,EAAC,EAAE,OAAO,CAAC;YACpF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEzD,OAAO,IAAI,CAAC;SACb;;;;;;;QAGD,yCAAW;;;;;QAAX,UAAY,SAAwC;YAClD,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM;iBACjC,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,aAAa,GAAA,EAAC;iBACpC,IAAI,CACHE,gBAAM;;;;YAAC,UAAA,MAAM,IAAI,OAAA,CAAC,CAAC,MAAM,GAAA,EAAC,CAC3B,CAAC;;YAGJ,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM;iBACnC,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,qBAAqB,GAAA,EAAC;iBAC5C,IAAI,CACHA,gBAAM;;;;YAAC,UAAA,MAAM,IAAI,OAAA,CAAC,CAAC,MAAM,GAAA,EAAC,CAC3B,CAAC;;YAGJ,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM;iBAClC,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,oBAAoB,GAAA,EAAC;iBAC3C,IAAI,CACHA,gBAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,CAAC,CAAC,KAAK,GAAA,EAAC,CACzB,CAAC;YAEJ,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,IAAI,CAAC,IAAI,GAAA,EAAC,CAAC;YAElE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM;iBAC5B,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,eAAe,GAAA,EAAC;iBACtC,IAAI,CACHC,aAAG;;;;YAAC,UAAA,eAAe,IAAI,QAAC,EAAC,eAAe,iBAAA,EAAC,IAAC,EAAC,CAC5C,CAAC;YAEJ,OAAO,IAAI,CAAC;SACb;;;;;;;QAGD,8CAAgB;;;;;QAAhB,UAAiB,SAAwC;YAAzD,iBAyDC;YAxDC,SAAS,CAAC,WAAW;;;;YAAG,UAAC,KAA2B;gBAClD,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;aAC3D,CAAA,CAAC;YAEF,SAAS,CAAC,UAAU;;;;YAAG,UAAC,KAAwB;gBAC9C,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;aAC9D,CAAA,CAAC;YAEF,SAAS,CAAC,eAAe;;;;YAAG,UAAC,KAAqB;;oBAC1C,KAAK,sBAAG,KAAK,CAAC,IAAI,EAAgB;gBACxC,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,UAAU,EAAE;oBAC1C,OAAO;iBACR;gBAED,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpD,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;aACnC,CAAA,CAAC;YAEF,SAAS,CAAC,iBAAiB;;;;YAAG,UAAC,KAAqB;gBAClD,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;aACxC,CAAA,CAAC;YAEF,SAAS,CAAC,gBAAgB;;;;YAAG,UAAC,KAAqB;gBACjD,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;aACxC,CAAA,CAAC;YAEF,SAAS,CAAC,kBAAkB;;;;YAAG,UAAC,KAA4B;gBAC1D,IAAI,KAAK,CAAC,UAAU,EAAE;oBACpB,OAAO;iBACR;gBACD,KAAI,CAAC,MAAM,CAAC,QAAQ,CAClB,KAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACvB,IAAI,EAAE;wBACJ,KAAK,EAAEC,gBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;wBAC3B,IAAI,EAAEC,mBAAW,CAAC,KAAK,CAAC,IAAI,CAAC;qBAC9B;oBACD,QAAQ,EAAE,KAAK;iBAChB,CAAC,CACH,CAAC;aACH,CAAA,CAAC;YAEF,SAAS,CAAC,iBAAiB;;;;YAAG,UAAC,KAA4B;gBACzD,IAAI,KAAK,CAAC,UAAU,EAAE;oBACpB,OAAO;iBACR;gBACD,KAAI,CAAC,MAAM,CAAC,QAAQ,CAClB,KAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACvB,IAAI,EAAE;wBACJ,IAAI,EAAEA,mBAAW,CAAC,KAAK,CAAC,IAAI,CAAC;qBAC9B;oBACD,QAAQ,EAAE,OAAO;iBAClB,CAAC,CACH,CAAC;aACH,CAAA,CAAC;YAEF,OAAO,IAAI,CAAC;SACb;;;;QAED,2DAA6B;;;QAA7B;YAAA,iBA2FC;YA1FC,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,MAAM,CAAC,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,IAAI,GAAA,EAAC,CAAC,SAAS;;;;YAAC,UAAA,IAAI;gBACpD,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;aACjD,EAAC,CACH,CAAC;;YAGF,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,MAAM;iBACR,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,WAAW,GAAA,EAAC;iBAClC,IAAI,CACHH,gBAAM;;;;YAAC,UAAA,UAAU,IAAI,OAAA,CAAC,CAAC,UAAU,GAAA,EAAC,CACnC;iBACA,SAAS;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAA,EAAC,CACpE,CAAC;;YAGF,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,MAAM;iBACR,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,eAAe,GAAA,EAAC;iBACtC,IAAI,CACHA,gBAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,CAAC,CAAC,KAAK,GAAA,EAAC,CACzB;iBACA,SAAS;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAA,EAAC,CAClE,CAAC;;YAGF,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,MAAM;iBACR,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,YAAY,GAAA,EAAC;iBACnC,IAAI,CACHA,gBAAM;;;;YAAC,UAAA,YAAY,IAAI,OAAA,CAAC,CAAC,YAAY,GAAA,EAAC,CACvC;iBACA,SAAS;;;;YAAC,UAAA,YAAY,IAAI,OAAA,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAA,EAAC,CACzE,CAAC;;YAGF,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,MAAM;iBACR,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,aAAa,GAAA,EAAC;iBACpC,IAAI,CACHA,gBAAM;;;;YAAC,UAAA,aAAa,IAAI,OAAA,CAAC,CAAC,aAAa,GAAA,EAAC,CACzC;iBACA,SAAS;;;;YAAC,UAAA,aAAa,IAAI,OAAA,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAA,EAAC,CAC1E,CAAC;;YAGF,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,MAAM;iBACR,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,cAAc,GAAA,EAAC;iBACrC,SAAS;;;YAAC,cAAM,OAAA,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAA,EAAC,CAC/D,CAAC;;YAGF,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,MAAM;iBACR,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,kBAAkB,GAAA,EAAC;iBACzC,IAAI,CACHA,gBAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,CAAC,CAAC,KAAK,GAAA,EAAC,CACzB;iBACA,SAAS;;;YAAC,cAAM,OAAA,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAA,EAAC,CAC/D,CAAC;;YAGF,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,MAAM;iBACR,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,WAAW,GAAA,EAAC;iBAClC,IAAI,CACHA,gBAAM;;;;YAAC,UAAA,WAAW,IAAI,OAAA,CAAC,CAAC,WAAW,GAAA,EAAC,CACrC;iBACA,SAAS;;;;YAAC,UAAA,WAAW,IAAI,OAAA,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAA,EAAC,CACxE,CAAC;;YAGF,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,MAAM;iBACR,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,iBAAiB,GAAA,EAAC;iBACxC,IAAI,CACHA,gBAAM;;;;YAAC,UAAA,iBAAiB,IAAI,OAAA,CAAC,CAAC,iBAAiB,GAAA,EAAC,CACjD;iBACA,SAAS;;;;YAAC,UAAA,iBAAiB,IAAI,OAAA,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAA,EAAC,CAC9E,CAAC;;YAGF,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,cAAc,CAAC,YAAY;iBAC7B,SAAS;;;;YAAC,UAAA,MAAM,IAAI,OAAA,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAA,EAAC,CAC9E,CAAC;YAEF,OAAO,IAAI,CAAC;SACb;;;;QAED,qCAAO;;;QAAP;;;gBACE,KAAkB,IAAA,KAAAI,SAAA,IAAI,CAAC,KAAK,CAAA,gBAAA,4BAAE;oBAAzB,IAAM,GAAG,WAAA;oBACZ,GAAG,CAAC,WAAW,EAAE,CAAC;iBACnB;;;;;;;;;SACF;;oBA9QFN,eAAU;;;;oBAnBF,mBAAmB;oBAGnB,eAAe;;QA+RxB,0BAAC;KA/QD,IA+QC;;;QA7QC,uCAA2C;;QAC3C,2CAAkD;;QAClD,6CAAsD;;QACtD,4CAAoD;;QACpD,sCAA6C;;;;;QAE7C,qCAAkC;;;;;QAClC,oCAAmC;;;;;QAEvB,uCAAqC;;;;;QACrC,6CAAuC;;;;;;;;ICnCrD,IAAa,mBAAmB,GAAqB;QACnD,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;KACV;;;;;;ICID;;;IAGA,oCAGC;;;QAFC,qCAAW;;QACX,qCAA2B;;IAG7B;QAAA;SA0DC;QAAD,wBAAC;IAAD,CAAC,IAAA;;;QAvDC,yCAAoB;;QAEpB,0CAAuB;;QAGvB,iCAA4B;;QAE5B,uCAAqB;;QAErB,oCAAe;;QACf,oCAAe;;QACf,yCAAwB;;QACxB,0CAAuB;;QACvB,yCAAsB;;QACtB,oCAA+B;;QAC/B,8CAAkD;;QAElD,wCAAmB;;QACnB,yCAAoB;;QACpB,wCAAmB;;QAGnB,wCAAkC;;QAClC,4CAA0C;;QAC1C,0CAAwC;;QACxC,iDAA+B;;QAC/B,8CAA4B;;QAC5B,iDAA+B;;QAG/B,2CAA2C;;QAC3C,kDAAkD;;QAGlD,+CAA8C;;QAC9C,iDAAgD;;QAGhD,6CAAmC;;QAGnC,4CAA0B;;QAC1B,0CAAuB;;QAGvB,mCAAe;;QAEf,uCAAmB;;QACnB,sCAAkB;;QAElB,qCAAiB;;QACjB,uCAAmB;;QACnB,sCAAkB;;QAElB,wCAAoB;;;QAGhB,YAAY,GAA0B,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;;IAE7E,IAAa,sBAAsB,GAAsB,MAAM,CAAC,MAAM,CACpE,IAAI,kBAAkB,EAAE,EACxB;QACE,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,YAAY;QAClB,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,mBAAmB;KACtC,CACF;;;;;;ICzFD;;;;;IAaA,SAAgB,wBAAwB,CAAC,IAAU,EACV,OAAoC;QAC3E,IAAIO,wBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE;YAClD,OAAO,IAAI,CAAC;SACb;;YAEK,OAAO,GAAGC,cAAM,CAAC,IAAI,CAAC;;YACtB,MAAM,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC;QAEnE,OAAOC,iBAAS,CAAC,IAAI,EAAE,EAAC,GAAG,EAAE,CAAC,MAAM,EAAC,CAAC,CAAC;IACzC,CAAC;;;;;;IAED,SAAgB,mBAAmB,CAAC,OAAe,EAAE,iBAAyB;QAC5E,IAAI,iBAAiB,KAAK,CAAC,EAAE;YAC3B,OAAO,OAAO,CAAC;SAChB;;YAEK,MAAM,GAAG,OAAO,GAAG,iBAAiB,GAAG,CAAC;QAE9C,OAAO,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;IAC1C,CAAC;;;;;;;IAED,SAAgB,eAAe,CAAC,IAAU,EAAE,GAAS,EAAE,GAAS;;YACxD,QAAQ,GAAG,GAAG,IAAIC,gBAAQ,CAACC,aAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC;;YAC5D,QAAQ,GAAG,GAAG,IAAIC,eAAO,CAACC,eAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC;QAEnE,OAAO,QAAQ,IAAI,QAAQ,CAAC;IAC9B,CAAC;;;;;;;IAED,SAAgB,cAAc,CAAC,IAAU,EAAE,GAAS,EAAE,GAAS;;YACvD,QAAQ,GAAG,GAAG,IAAIH,gBAAQ,CAACC,aAAK,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC;;YAC3D,QAAQ,GAAG,GAAG,IAAIC,eAAO,CAACC,eAAO,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC;QAElE,OAAO,QAAQ,IAAI,QAAQ,CAAC;IAC9B,CAAC;;;;;;IAED,SAAgB,cAAc,CAAC,IAAU,EAAE,aAAqB;QAC9D,IAAI,CAAC,aAAa,IAAK,CAACC,eAAO,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YACvE,OAAO,KAAK,CAAC;SACd;QAED,OAAO,aAAa,CAAC,IAAI;;;;QAAC,UAAC,YAAkB,IAAK,OAAAC,cAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,GAAA,EAAC,CAAC;IACxF,CAAC;;;;;;IAED,SAAgB,aAAa,CAAC,IAAU,EAAE,YAAoB;QAC5D,IAAI,CAAC,YAAY,IAAI,CAACD,eAAO,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YACnE,OAAO,KAAK,CAAC;SACd;QAED,OAAO,CAAC,YAAY,CAAC,IAAI;;;;QAAC,UAAC,WAAiB,IAAK,OAAAC,cAAM,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,GAAA,EAAC,CAAC;IACtF,CAAC;;;;;;IAED,SAAgB,2BAA2B,CAAC,KAAwB,EAAE,aAAiB;QAAjB,8BAAA,EAAA,iBAAiB;;YAC/E,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC,aAAa,CAAC;QAE1F,OAAO,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/F,CAAC;;;;;;ICrED;;;IAIA,4BAKC;;;QAJC,+BAAe;;QACf,8BAAc;;QACd,oCAAkB;;QAClB,8BAAgB;;;;;;;;IAGlB,SAAgB,YAAY,CAC1B,OAAsB,EACtB,EAAqB;;YAEjB,SAAS,GAAG,OAAO,CAAC,WAAW;;YAC7B,MAAM,GAAU,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBACtC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC7B,SAAS,GAAGN,iBAAS,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;aACjD;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;;;;;;ICtBD;;;;;IAIA,SAAgB,gBAAgB,CAC9B,YAAkB,EAClB,OAAyB;;YAEnB,QAAQ,GAAGO,0BAAkB,CAAC,YAAY,CAAC;;YAC3C,WAAW,GAAG,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAAC;;YAEzD,aAAa,GAAG;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,WAAW,aAAA;YACX,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;SAClB;;YACK,UAAU,GAAG,YAAY,CAAO,aAAa;;;;QAAE,UAAA,IAAI,IAAI,OAAA,IAAI,GAAA,EAAC;QAElE,OAAO;YACL,UAAU,YAAA;YACV,KAAK,EAAE,QAAQ;SAChB,CAAC;IACJ,CAAC;;;;;;;;;;;;ICpBD,SAAgB,kBAAkB,CAAC,YAA+B,EAC/B,aAAsC,EACtC,UAAkB;QACnD,OAAO;YACL,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,UAAU,EAAEC,kBAAU,CACpB,YAAY,CAAC,KAAK,EAClB,aAAa,CAAC,UAAU,EACxB,aAAa,CAAC,MAAM,CACrB;YACD,SAAS,EAAEA,kBAAU,CACnB,YAAY,CAAC,KAAK,EAClB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,MAAM,CACrB;YACD,WAAW,EAAE,cAAc,CACzB,YAAY,CAAC,UAAU,EACvB,aAAa,CAAC,WAAW,EACzB,aAAa,CAAC,MAAM,CACrB;YACD,QAAQ,EAAE,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC;YAClD,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG;;;;;YAAC,UAAC,IAAY,EAAE,SAAiB,IAAK,QAAC;gBACvE,IAAI,EAAE,IAAI,CAAC,GAAG;;;;;gBAAC,UAAC,IAAU,EAAE,QAAgB,IAAK,QAAC;oBAChD,IAAI,MAAA;oBACJ,KAAK,EAAEA,kBAAU,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC;oBACrE,UAAU,YAAA;oBACV,SAAS,WAAA;oBACT,QAAQ,UAAA;iBACT,IAAC,EAAC;aACJ,IAAC,EAAC;SACJ,CAAC;IACJ,CAAC;;;;;;;IAED,SAAgB,cAAc,CAAC,UAAoB,EACpB,MAAc,EACd,MAAc;QAC3C,OAAO,UAAU,CAAC,GAAG;;;;QACnB,UAAC,IAAY,IAAK,QAAC,IAAI,CAAC,CAAC,CAAC,GAAGA,kBAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,IAAC,EACvE,CAAC;IACJ,CAAC;;;;;IAED,SAAgB,kBAAkB,CAAC,MAAc;;YACzC,OAAO,GAAGC,iBAAS,CAAC,MAAM,CAAC;;YAC3B,QAAQ,sBAAG,OAAO,CAAC,aAAa,EAAE,EAAY;;YAC9C,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE;QAE/C,gBAAW,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,EAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE;IACnF,CAAC;;;;;;IC/CD;;;IAWA,sCAaC;;;QAZC,6CAAoB;;QACpB,0CAAc;;QACd,0CAAc;;QACd,+CAAuB;;QACvB,gDAAsB;;QACtB,+CAAqB;;QACrB,8CAAkB;;QAClB,+CAAmB;;QACnB,gDAAsB;;QACtB,gDAAsB;;QACtB,6CAAmB;;QACnB,oDAAiD;;;;;;;IAGnD,SAAgB,gBAAgB,CAC9B,cAAqC,EACrC,OAAgC;QAEhC,cAAc,CAAC,KAAK,CAAC,OAAO;;;;QAAC,UAAC,IAAmB;;YAE/C,IAAI,CAAC,IAAI,CAAC,OAAO;;;;;YAAC,UAAC,GAAiB,EAAE,QAAgB;;;oBAE9C,YAAY,GAAG,CAACC,mBAAW,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;;oBAE3D,SAAS,GACb,CAAC,YAAY,IAAIC,iBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC;;;oBAErD,gBAAgB,GACpB,CAAC,YAAY;oBACb,OAAO,CAAC,aAAa;oBACrBA,iBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;;oBACzC,cAAc,GAClB,CAAC,YAAY;oBACb,OAAO,CAAC,aAAa;oBACrBA,iBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;;oBAEzC,UAAU,GACd,CAAC,CAAC,YAAY,IAAIA,iBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;oBAC3D,gBAAgB;oBAChB,cAAc;;oBAEV,SAAS,GACb,CAAC,YAAY;oBACb,OAAO,CAAC,aAAa;oBACrB,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC;;oBAE/D,UAAU,GACd,OAAO,CAAC,UAAU;oBAClBV,gBAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;oBAC1CE,eAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;oBACzCS,qBAAa,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;oBAC7C,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC;oBAC/C,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;;oBAEzC,WAAW,GAAG,IAAI,IAAI,EAAE;;oBACxB,OAAO,GAAG,CAAC,YAAY,IAAID,iBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC;;oBAE3D,aAAa,GAAG,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB;qBACzE,GAAG;;;;gBAAC,UAAA,GAAG,IAAI,OAAAA,iBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,EAAE,GAAA,EAAC;qBAC5D,MAAM;;;;;gBAAC,UAAC,aAAa,EAAE,YAAY,IAAK,OAAA,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,GAAA,GAAE,EAAE,CAAC;qBAC/E,IAAI,CAAC,GAAG,CAAC;uBACP,EAAE;;;oBAID,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE;oBACpC,YAAY,cAAA;oBACZ,SAAS,WAAA;oBACT,UAAU,YAAA;oBACV,gBAAgB,kBAAA;oBAChB,cAAc,gBAAA;oBACd,SAAS,WAAA;oBACT,UAAU,YAAA;oBACV,OAAO,SAAA;oBACP,aAAa,eAAA;iBACd,CAAC;gBAEF,IACE,GAAG,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY;oBACxC,GAAG,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;oBAClC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;oBACpC,GAAG,CAAC,gBAAgB,KAAK,MAAM,CAAC,gBAAgB;oBAChD,GAAG,CAAC,cAAc,KAAK,MAAM,CAAC,cAAc;oBAC5C,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;oBACpC,GAAG,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;oBAClC,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,EAC1C;oBACA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;iBAC9B;aACF,EAAC,CAAC;SACJ,EAAC,CAAC;;QAGH,cAAc,CAAC,aAAa;YAC1B,OAAO,CAAC,UAAU;iBACjB,OAAO,CAAC,UAAU,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;QAC3E,cAAc,CAAC,cAAc;YAC3B,OAAO,CAAC,UAAU;iBACjB,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,aAAa;oBACzC,OAAO,CAAC,UAAU,GAAG,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;QAEtD,cAAc,CAAC,gBAAgB,GAAG,eAAe,CAC/CX,iBAAS,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAC9C,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;QACF,cAAc,CAAC,iBAAiB,GAAG,eAAe,CAChDA,iBAAS,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAC7C,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;QAEF,OAAO,cAAc,CAAC;IACxB,CAAC;;;;;;;IAED,SAAS,aAAa,CACpB,IAAU,EACV,aAAqB,EACrB,WAAiB;QAEjB,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;YAC9B,OAAO,KAAK,CAAC;SACd;QAED,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE;YACpB,OAAO,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;SAC5D;QAED,IAAI,WAAW,EAAE;YACf,OAAO,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,WAAW,CAAC;SACvD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;;;;;;;;;;;ICtJD,SAAgB,aAAa,CAAC,IAA0B,EAAE,OAA8B;QACtF,OAAO,OAAO,GAAG,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC;IAC1C,CAAC;;;;;;ICCD;QAGM,MAAM,GAAG,CAAC;;QACV,KAAK,GAAG,CAAC;;QACT,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;;;;;;IAE1B,SAAgB,oBAAoB,CAClC,QAAc,EACd,aAAsC;;YAEhC,WAAW,GAAGI,eAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;;YACvC,aAAa,GAAG,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,WAAW,aAAA,EAAE,KAAK,OAAA,EAAE;;YACrD,WAAW,GAAG,YAAY,CAE9B,aAAa;;;;QAAE,UAAA,IAAI,IAAI,QAAC;YACxB,IAAI,MAAA;YACJ,KAAK,EAAEI,kBAAU,CAAC,IAAI,EAAE,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC;SACxE,IAAC,EAAC;QAEH,OAAO;YACL,MAAM,EAAE,WAAW;YACnB,UAAU,EAAE,EAAE;YACd,SAAS,EAAEA,kBAAU,CACnB,QAAQ,EACR,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,MAAM,CACrB;SACF,CAAC;IACJ,CAAC;;;;;;IClCD;;;IAOA,uCAQC;;;QAPC,8CAAoB;;QACpB,2CAAc;;QACd,2CAAc;;QACd,gDAAmB;;QACnB,gDAAmB;;QACnB,iDAAsB;;QACtB,8CAAmB;;;;;;;IAGrB,SAAgB,kBAAkB,CAChC,aAAsC,EACtC,OAAiC;QAEjC,aAAa,CAAC,MAAM,CAAC,OAAO;;;;;QAC1B,UAAC,MAA+B,EAAE,QAAgB;YAChD,MAAM,CAAC,OAAO;;;;;YAAC,UAAC,KAA4B,EAAE,UAAkB;;oBACxD,SAAS,GAAGE,mBAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;;oBACzD,UAAU,GACd,OAAO,CAAC,UAAU;oBAClB,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;;oBACzD,UAAU,GAAGA,mBAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;;oBAC1D,QAAQ,GAAG,MAAM,CAAC,MAAM,SAAS,KAAK,EAAE;oBAC5C,SAAS,WAAA;oBACT,UAAU,YAAA;oBACV,UAAU,YAAA;iBACX,CAAC;gBACF,IACE,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;oBACtC,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU;oBACxC,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,EACxC;oBACA,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;iBACvD;aACF,EAAC,CAAC;SACJ,EACF,CAAC;;QAGF,aAAa,CAAC,aAAa;YACzB,OAAO,CAAC,UAAU,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,aAAa,CAAC;QACzE,aAAa,CAAC,cAAc;YAC1B,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,aAAa;gBAC1C,OAAO,CAAC,UAAU,GAAG,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC;QAEnD,aAAa,CAAC,gBAAgB,GAAG,cAAc,CAC7CV,iBAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EACxD,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;QACF,aAAa,CAAC,iBAAiB,GAAG,cAAc,CAC9CA,iBAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EACvD,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;QAEF,OAAO,aAAa,CAAC;IACvB,CAAC;;;;;;IC3DD;QAGMa,QAAM,GAAG,CAAC;;QACVC,OAAK,GAAG,CAAC;;IACf,IAAa,gBAAgB,GAAGD,QAAM,GAAGC,OAAK;;IAC9C,IAAa,gBAAgB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;QACrEC,OAAK,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE;;;;;;;IAEzB,SAAgB,mBAAmB,CACjC,QAAc,EACd,aAAsC,EACtC,mBAA0B;;YAEpB,WAAW,GAAG,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,CAAC;;YACjE,aAAa,GAAG,EAAE,KAAK,SAAA,EAAE,MAAM,UAAA,EAAE,WAAW,aAAA,EAAE,KAAK,SAAA,EAAE;;YACrD,WAAW,GAAG,YAAY,CAE9B,aAAa;;;;QAAE,UAAA,IAAI,IAAI,QAAC;YACxB,IAAI,MAAA;YACJ,KAAK,EAAEP,kBAAU,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC;SACvE,IAAC,EAAC;;YACG,SAAS,GAAG,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC;QAElE,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,UAAU,EAAE,EAAE;YACd,SAAS,WAAA;SACV,CAAC;IACJ,CAAC;;;;;;IAED,SAAS,oBAAoB,CAAC,QAAc,EAAE,mBAA0B;QACtE,IAAI,mBAAmB;eAClB,QAAQ,CAAC,WAAW,EAAE,IAAI,mBAAmB,CAAC,WAAW,EAAE;eAC3D,QAAQ,CAAC,WAAW,EAAE,GAAG,mBAAmB,CAAC,WAAW,EAAE,GAAG,gBAAgB,EAAE;YAClF,OAAO,mBAAmB,CAAC;SAC5B;QAED,OAAOR,iBAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACzD,CAAC;;;;;;IAED,SAAS,oBAAoB,CAC3B,WAAsC,EACtC,aAAsC;;YAEhC,IAAI,GAAGQ,kBAAU,CACrB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EACtB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,MAAM,CACrB;;YACK,EAAE,GAAGA,kBAAU,CACnB,WAAW,CAACK,QAAM,GAAG,CAAC,CAAC,CAACC,OAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EACvC,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,MAAM,CACrB;QAED,OAAU,IAAI,WAAM,EAAI,CAAC;IAC3B,CAAC;;;;;;IC9DD;;;IAIA,uCAQC;;;QAPC,8CAAoB;;QACpB,2CAAc;;QACd,2CAAc;;QACd,+CAAkB;;QAClB,gDAAmB;;QACnB,iDAAsB;;QACtB,6CAAkB;;;;;;;IAGpB,SAAgB,iBAAiB,CAC/B,aAAqC,EACrC,OAAiC;QAEjC,aAAa,CAAC,KAAK,CAAC,OAAO;;;;;QACzB,UAAC,KAA8B,EAAE,QAAgB;YAC/C,KAAK,CAAC,OAAO;;;;;YAAC,UAAC,IAA2B,EAAE,SAAiB;;oBACrD,SAAS,GAAGE,kBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC;;oBACtD,UAAU,GACd,OAAO,CAAC,UAAU;oBAClB,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;;oBACvD,UAAU,GAAGA,kBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;;oBAExD,QAAQ,GAAG,MAAM,CAAC,MAAM,SAAS,IAAI,EAAE,EAAE,SAAS,WAAA,EAAE,UAAU,YAAA,EAAE,UAAU,YAAA,EAAE,CAAC;gBACnF,IACE,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;oBACrC,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU;oBACvC,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,EACvC;oBACA,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;iBACrD;aACF,EAAC,CAAC;SACJ,EACF,CAAC;;QAGF,aAAa,CAAC,aAAa;YACzB,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,aAAa,CAAC;QACvE,aAAa,CAAC,cAAc;YAC1B,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,aAAa;gBACzC,OAAO,CAAC,SAAS,GAAG,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC;QAElD,aAAa,CAAC,gBAAgB,GAAG,cAAc,CAC7ChB,iBAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EACvD,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;;YACI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;;YAClC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;QAC3C,aAAa,CAAC,iBAAiB,GAAG,cAAc,CAC9CA,iBAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EACtD,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;QAEF,OAAO,aAAa,CAAC;IACvB,CAAC;;;;;;;;;;;;IChCD,SAAgB,mBAAmB,CAAC,KAA8B,EAC9B,MAAc;QADd,sBAAA,EAAA,8BAA8B;QAEhE,QAAQ,MAAM,CAAC,IAAI;YACjB,KAAK,mBAAmB,CAAC,SAAS,EAAE;gBAClC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAChC;YAED,KAAK,mBAAmB,CAAC,MAAM,EAAE;gBAC/B,OAAO,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aACrC;YAED,KAAK,mBAAmB,CAAC,IAAI,EAAE;gBAC7B,OAAO,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aACnC;YAED,KAAK,mBAAmB,CAAC,eAAe,EAAE;gBACxC,OAAO,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aAC7C;YAED,KAAK,mBAAmB,CAAC,WAAW,EAAE;;oBAC9B,OAAO,GAA0B,MAAM,CAAC,OAAO;;oBAE/C,IAAI,GAAGiB,mBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;;oBACnD,QAAQ,SAAA;;oBACR,IAAI,SAAsB;gBAC9B,IAAI,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;oBAClD,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;oBACxB,QAAQ,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,EAAE,CAAC;iBACrC;qBAAM;oBACL,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;oBACvB,QAAQ,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,EAAE,CAAC;iBACzD;gBAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC3C;YAED,KAAK,mBAAmB,CAAC,eAAe,EAAE;gBACxC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;oBACjD,OAAO,KAAK,CAAC;iBACd;;oBACK,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;;oBACtB,IAAI,GAAG,MAAM,CAAC,OAAO;;oBACrB,QAAQ,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,EAAE;gBAEzC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC3C;YAED,KAAK,mBAAmB,CAAC,KAAK,EAAE;gBAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;aAClE;YAED,KAAK,mBAAmB,CAAC,MAAM,EAAE;;oBACzB,QAAQ,GAAG;oBACf,YAAY,EAAE,MAAM,CAAC,OAAO;oBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB;;oBAEK,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;;oBACtB,KAAK,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI;;oBACzC,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC7D,QAAQ,CAAC,IAAI,GAAG,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,CAAC;gBAE/B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC3C;YAED,KAAK,mBAAmB,CAAC,WAAW,EAAE;;oBAC9B,QAAQ,GAAG,MAAM,CAAC,OAAO;;;oBAEzB,IAAI,GAAG,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;;oBAC5D,SAAS,GAAGC,mBAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK;uBAC1Db,eAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAIa,mBAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;uBAC9E,KAAK,CAAC,IAAI,CAAC,IAAI;;oBACd,IAAI,GAAG,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;gBACvE,QAAQ,CAAC,IAAI,GAAG,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,CAAC;;gBAE/B,IAAI,QAAQ,CAAC,KAAK,EAAE;;oBAElB,IAAIb,eAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;wBAC3B,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;qBACzC;;oBAGD,IAAI,QAAQ,CAAC,KAAK,YAAY,IAAI,EAAE;wBAClC,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC;qBACxC;;;iBAIF;gBAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC3C;;YAGD,KAAK,mBAAmB,CAAC,YAAY,EAAE;;oBAC/B,QAAQ,GAAG;oBACf,aAAa,EAAE,MAAM,CAAC,OAAO;oBAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB;;oBAEK,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;;oBACtB,KAAK,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI;;oBAC9D,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;gBAC7D,QAAQ,CAAC,IAAI,GAAG,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,CAAC;gBAE/B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC3C;YAED,KAAK,mBAAmB,CAAC,YAAY,EAAE;gBACrC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE;oBAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;iBACxB,CAAC,CAAC;aACJ;YACD,KAAK,mBAAmB,CAAC,YAAY,EAAE;gBACrC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE;oBAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;iBACxB,CAAC,CAAC;aACJ;YACD,KAAK,mBAAmB,CAAC,eAAe,EAAE;gBACxC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE;oBAC9B,UAAU,EAAE,MAAM,CAAC,OAAO;iBAC3B,CAAC,CAAC;aACJ;YACD,KAAK,mBAAmB,CAAC,uBAAuB,EAAE;gBAChD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE;oBAC9B,iBAAiB,EAAE,MAAM,CAAC,OAAO;iBAClC,CAAC,CAAC;aACJ;YAED;gBACE,OAAO,KAAK,CAAC;SAChB;IACH,CAAC;;;;;IAED,SAAS,gBAAgB,CAAC,KAAwB;;;YAE1C,aAAa,GAAG,CAAC,KAAK,CAAC,oBAAoB;YAC/C,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,aAAa;;;YAGzF,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;QAE9B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YAC7B,IAAI,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/D,QAAQ,GAAGL,iBAAS,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aAC/C;YAED,KAAK,CAAC,gBAAgB,CAAC,cAAc,GAAGS,iBAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,CAAC;;gBAC3E,WAAW,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC;YAC5C,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,aAAa,EAAE,UAAU,EAAE,EAAE;;gBAEjE,WAAW,CAAC,UAAU,CAAC,GAAG,gBAAgB,CACxC,QAAQ,EACR,KAAK,CAAC,gBAAgB,CACvB,CAAC;gBACF,QAAQ,GAAGT,iBAAS,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;aAC9C;YAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC;SAClD;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;;gBACzB,cAAc,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC;YAC/C,KACE,IAAI,aAAa,GAAG,CAAC,EACrB,aAAa,GAAG,aAAa,EAC7B,aAAa,EAAE,EACf;;gBAEA,cAAc,CAAC,aAAa,CAAC,GAAG,oBAAoB,CAClD,QAAQ,EACR,gBAAgB,CAAC,KAAK,CAAC,CACxB,CAAC;gBACF,QAAQ,GAAGA,iBAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;aAC7C;YAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,cAAc,gBAAA,EAAE,CAAC,CAAC;SACrD;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;;gBACxB,kBAAkB,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC;YAEnD,KACE,IAAI,aAAa,GAAG,CAAC,EACrB,aAAa,GAAG,aAAa,EAC7B,aAAa,EAAE,EACf;;gBAEA,kBAAkB,CAAC,aAAa,CAAC,GAAG,mBAAmB,CACrD,QAAQ,EACR,gBAAgB,CAAC,KAAK,CAAC,EACvB,KAAK,CAAC,OAAO,KAAK,MAAM,GAAG,2BAA2B,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,SAAS,CACzF,CAAC;gBACF,QAAQ,GAAGA,iBAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;aAC5D;YAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,kBAAkB,oBAAA,EAAE,CAAC,CAAC;SACzD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;;;;;;IAED,SAAS,aAAa,CAAC,KAAwB,EACxB,MAAc;QACnC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;;gBACvB,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG;;;;;YAAC,UAAC,KAAK,EAAE,UAAU;gBAC9D,OAAA,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;aAAA,EAC/D;YAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,eAAe,iBAAA,EAAE,CAAC,CAAC;SACtD;;;YAGK,aAAa,GAAG,KAAK,CAAC,aAAa;;;;YAGrC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;QAE9B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;;gBACzB,cAAc,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC;YAC/C,KACE,IAAI,aAAa,GAAG,CAAC,EACrB,aAAa,GAAG,aAAa,EAC7B,aAAa,EAAE,EACf;;gBAEA,cAAc,CAAC,aAAa,CAAC,GAAG,oBAAoB,CAClD,QAAQ,EACR,gBAAgB,CAAC,KAAK,CAAC,CACxB,CAAC;gBACF,QAAQ,GAAGA,iBAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;aAC7C;YAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,cAAc,gBAAA,EAAE,CAAC,CAAC;SACrD;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;;gBACxB,kBAAkB,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC;YACnD,KACE,IAAI,aAAa,GAAG,CAAC,EACrB,aAAa,GAAG,aAAa,EAC7B,aAAa,EAAE,EACf;;gBAEA,kBAAkB,CAAC,aAAa,CAAC,GAAG,mBAAmB,CACrD,QAAQ,EACR,gBAAgB,CAAC,KAAK,CAAC,CACxB,CAAC;gBACF,QAAQ,GAAGA,iBAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;aAC9C;YAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,kBAAkB,oBAAA,EAAE,CAAC,CAAC;SACzD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;;;;;;IAED,SAAS,WAAW,CAAC,KAAwB,EACxB,MAAc;;YAC3B,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,aAAa;QAChH,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;;gBACvB,aAAa,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG;;;;;YAC7C,UAAC,cAAc,EAAE,UAAU;gBACzB,OAAA,gBAAgB,CAAC,cAAc,EAAE;oBAC/B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,aAAa,eAAA;oBACb,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;oBAC1C,UAAU,YAAA;iBACX,CAAC;aAAA,EACL;YAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,eAAA,EAAE,CAAC,CAAC;SACpD;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;;gBACzB,qBAAqB,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG;;;;;YACpD,UAAC,cAAc,EAAE,UAAU;gBACzB,OAAA,kBAAkB,CAAC,cAAc,EAAE;oBACjC,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,aAAa,eAAA;oBACb,UAAU,YAAA;iBACX,CAAC;aAAA,EACL;YAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,qBAAqB,uBAAA,EAAE,CAAC,CAAC;SAC5D;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;;gBACxB,oBAAoB,GAAG,KAAK,CAAC,kBAAkB,CAAC,GAAG;;;;;YACvD,UAAC,cAAc,EAAE,SAAS;gBACxB,OAAA,iBAAiB,CAAC,cAAc,EAAE;oBAChC,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,aAAa,eAAA;oBACb,SAAS,WAAA;iBACV,CAAC;aAAA,EACL;YAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,oBAAoB,sBAAA,EAAE,CAAC,CAAC;SAC3D;QAED,OAAO,KAAK,CAAC;IACf,CAAC;;;;;;IAED,SAAS,qBAAqB,CAAC,KAAwB,EAAE,MAAc;;YAC/D,QAAQ,GAAG;YACf,IAAI,EAAE;gBACJ,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;gBACrB,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC;aACnC;SACF;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;;;;;;IAED,SAAS,aAAa,CAAC,KAAwB,EAAE,MAAc;QAC7D,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;;gBACpD,WAAW,GAAG,2BAA2B,CAAC,KAAK,EAAE,CAAC,CAAC;;gBACnD,UAAU,GAAGA,iBAAS,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,gBAAgB,EAAE,CAAC;YAEtE,OAAOA,iBAAS,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;SAC9C;QAED,OAAOA,iBAAS,CAACI,eAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACtE,CAAC;;;;;IAED,SAAS,gBAAgB,CAAC,KAAwB;QAChD,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,MAAM;YAEpB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAE1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAE1B,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC;IACJ,CAAC;;;;;;;;;;;IAQD,SAAS,WAAW,CAAC,QAAuB,EAAE,OAAa,EAAE,OAAa;;YAClE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ;QAE9D,IAAI,OAAO,IAAID,eAAO,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;YAC7C,OAAO,OAAO,CAAC;SAChB;QAED,IAAI,OAAO,IAAIF,gBAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;YAC9C,OAAO,OAAO,CAAC;SAChB;QAED,OAAO,KAAK,CAAC;IACf,CAAC;;;;;;;IAED,SAAS,iBAAiB,CAAC,QAAc,EAAE,OAAa,EAAE,OAAa;QACrE,IAAI,OAAO,IAAIK,cAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE;YAC/C,OAAO,IAAI,CAAC;SACb;QAED,IAAI,OAAO,IAAI,OAAO,IAAK,OAAO,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,EAAE;YACpE,OAAO,IAAI,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACf,CAAC;;;;;;;QCvZsCa,qCAA4B;QACjE;YAAA,iBAUC;;gBATO,WAAW,GAAG,IAAI3B,oBAAe,CAAS;gBAC9C,IAAI,EAAE,8BAA8B;aACrC,CAAC;;gBACI,KAAK,GAAG,IAAI4B,kBAAS,CACzB,sBAAsB,EACtB,WAAW,EACX,mBAAmB,CACpB;YACD,QAAA,kBAAM,WAAW,EAAE,mBAAmB,EAAE,KAAK,CAAC,SAAC;;SAChD;;oBAZF7B,eAAU;;;;QAaX,wBAAC;KAAA,CAZsC8B,kBAAS;;;;;;ICPhD;IASA,IAAa,2BAA2B,GAAG,kCAAkC;;AAE7E,QAAa,mBAAmB,GAC9BC,kBAAO,CAAC,qBAAqB,EAAE;QAC7BC,gBAAK,CAAC,eAAe,EAAEC,gBAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;QACjEC,qBAAU,CAAC,oBAAoB,EAAE;YAC/BD,gBAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YACxCE,kBAAO,CAAC,2BAA2B,CAAC;SACrC,CAAC;QACFH,gBAAK,CAAC,aAAa,EAAEC,gBAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;QAC/DC,qBAAU,CAAC,kBAAkB,EAAE;YAC7BD,gBAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YAC1CE,kBAAO,CAAC,2BAA2B,CAAC;SACrC,CAAC;QACFD,qBAAU,CAAC,iBAAiB,EAAEC,kBAAO,CAAC,IAAI,CAAC,CAAC;KAC7C,CAAC;;;;;;;QCEgDP,kDAA6B;QAW/E,wCACE,SAAoB,EACZ,OAA2B,EAC3B,MAAyB,EACzB,QAAoB,EACpB,QAA6B,EACrC,QAA6B,EACrB,gBAAoC;YAP9C,YASE,iBAAO,SAKR;YAZS,aAAO,GAAP,OAAO,CAAoB;YAC3B,YAAM,GAAN,MAAM,CAAmB;YACzB,cAAQ,GAAR,QAAQ,CAAY;YACpB,cAAQ,GAAR,QAAQ,CAAqB;YAE7B,sBAAgB,GAAhB,gBAAgB,CAAoB;YAX9C,iBAAW,GAAuB,IAAIQ,iBAAY,EAAQ,CAAC;YAC3D,oBAAc,GAAG,MAAM,CAAC;YAExB,WAAK,GAAmB,EAAE,CAAC;YAWzB,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAEzB,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/D,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;;SACpE;QAtBD,sBAAI,iDAAK;;;;;YAAT,UAAU,KAAW;gBACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC/B;;;WAAA;;;;QAsBD,iDAAQ;;;QAAR;YAAA,iBA2CC;YA1CC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;gBAC/B,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE;gBAC/D,gBAAgB,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;aACpC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,CAAC,MAAM;iBACzB,IAAI,CACHC,cAAI,CAAC,CAAC,CAAC,CACR;iBACA,SAAS;;;YAAC;gBACT,KAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAEhC,IAAI,KAAI,CAAC,OAAO,CAAC,UAAU,EAAE;oBAC3B,KAAI,CAAC,cAAc,GAAG,KAAI,CAAC,aAAa,GAAG,aAAa,GAAG,eAAe,CAAC;oBAE3E,OAAO;iBACR;gBAED,KAAI,CAAC,cAAc,GAAG,YAAY,CAAC;aACpC,EAAC,CAAC;YAEL,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAC7D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;YAClD,IAAI,CAAC,QAAQ;iBACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;iBAEjB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;;iBAExB,WAAW,CAAC,IAAI,CAAC;;iBAEjB,gBAAgB,CAAC,IAAI,CAAC;iBACtB,6BAA6B,EAAE,CAAC;;;YAInC,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,MAAM;;iBAER,MAAM;;;;YAAC,UAAC,KAAU,IAAK,OAAA,KAAK,CAAC,YAAY,GAAA,EAAC;;iBAE1C,SAAS;;;;YAAC,UAAC,IAAS,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAA,EAAC,CACzD,CAAC;SACH;QAED,sBAAI,yDAAa;;;;YAAjB;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC9D;;;WAAA;;;;QAED,8DAAqB;;;QAArB;YACE,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;SAChC;;;;;QAED,yDAAgB;;;;QAAhB,UAAiB,GAAiB;YAChC,IAAI,CAAC,GAAG,EAAE;gBACT,OAAO;aACP;;gBAEK,UAAU,GAAG,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,UAAU,CAAC;YAEnG,IAAI,UAAU,EAAE;gBACd,OAAO;aACR;YAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;SACtD;;;;QAED,oDAAW;;;QAAX;;;gBACE,KAAkB,IAAA,KAAA/B,SAAA,IAAI,CAAC,KAAK,CAAA,gBAAA,4BAAE;oBAAzB,IAAM,GAAG,WAAA;oBACZ,GAAG,CAAC,WAAW,EAAE,CAAC;iBACnB;;;;;;;;;YACD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SACzB;;oBA/GFgC,cAAS,SAAC;wBACT,QAAQ,EAAE,yBAAyB;wBACnC,SAAS,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;wBACnD,+rFAAwC;wBACxC,IAAI,EAAE;4BACJ,KAAK,EAAE,QAAQ;4BACf,SAAS,EAAE,0BAA0B;4BACrC,IAAI,EAAE,QAAQ;4BACd,YAAY,EAAE,UAAU;yBACzB;wBACD,UAAU,EAAE,CAAC,mBAAmB,CAAC;qBAClC;;;;oBAzBgEC,cAAS;oBAGjE,kBAAkB;oBAIlB,iBAAiB;oBAPNC,eAAU;oBAKrB,mBAAmB;oBACnB,mBAAmB;oBAEnBC,8BAAkB;;QAsH3B,qCAAC;KAAA,CApGmD,6BAA6B,GAoGhF;;;QA7FC,qDAA2D;;QAC3D,wDAAwB;;QAExB,+CAA2B;;;;;QAGzB,iDAAmC;;;;;QACnC,gDAAiC;;;;;QACjC,kDAA4B;;;;;QAC5B,kDAAqC;;;;;QAErC,0DAA4C;;;;;;;;QC+E9C,+BAAmB,OAA2B,EACzB,WAAuB,EACvB,SAAoB,EAC7B,iBAAmC,EACnC,GAA2B;YAJpB,YAAO,GAAP,OAAO,CAAoB;YACzB,gBAAW,GAAX,WAAW,CAAY;YACvB,cAAS,GAAT,SAAS,CAAW;;;;YA1GhC,cAAS,GAAwC,QAAQ,CAAC;;;;;YAK1D,aAAQ,GAAG,OAAO,CAAC;;;;YAInB,iBAAY,GAAG,IAAI,CAAC;;;;YAIpB,cAAS,GAAG,MAAM,CAAC;YAEnB,eAAU,GAAG,IAAI,CAAC;;;;YAkFjB,kBAAa,GAAuB,IAAIL,iBAAY,EAAE,CAAC;YAEvD,UAAK,GAAmB,EAAE,CAAC;;YAWnC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,YAAY,CACjC,WAAW,EACX,iBAAiB,EACjB,SAAS,CACV,CAAC;YACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YAC1C,IAAI,CAAC,OAAO,GAAG,IAAInC,oBAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACjD;QAnGD,sBACI,yCAAM;;;;;;;;YADV;gBAEE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;aACjC;;;;;YAED,UAAW,KAAc;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1B;;;WAJA;QAuBD,sBACI,0CAAO;;;;;;;;;YADX,UACY,KAAW;gBACrB,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE;oBACzE,OAAO;iBACR;gBACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChC;;;WAAA;;;;QAoED,wCAAQ;;;QAAR;YAAA,iBASC;YARC,IAAI,CAAC,UAAU,GAAG,IAAIyC,YAAO,EAAE,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACtB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI;;;gBAAE,cAAM,OAAA,KAAI,CAAC,IAAI,EAAE,GAAA,CAAA;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;;;;;QAED,2CAAW;;;;QAAX,UAAY,OAAsB;YAChC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;gBACzD,OAAO;aACR;YAED,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;aACrD;YAED,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;aACrD;YAED,IAAI,OAAO,CAAC,YAAY,EAAE;gBACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;aAC/D;YAED,IAAI,OAAO,CAAC,aAAa,EAAE;gBACzB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;aACjE;YAED,IAAI,OAAO,CAAC,YAAY,EAAE;gBACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;aAC/D;YAED,IAAI,OAAO,CAAC,UAAU,EAAE;gBACtB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;aAC3D;YAED,IAAI,OAAO,CAAC,iBAAiB,EAAE;gBAC7B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;aACzE;SACF;;;;QAED,+CAAe;;;QAAf;YAAA,iBAMC;YALC,IAAI,CAAC,OAAO,CAAC,IAAI,CACfxC,gBAAM;;;;YAAC,UAAA,MAAM,IAAI,OAAA,MAAM,KAAK,KAAI,CAAC,MAAM,GAAA,EAAC,EACxCyC,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B;iBACA,SAAS;;;YAAC,cAAM,OAAA,KAAI,CAAC,MAAM,EAAE,GAAA,EAAC,CAAC;SACjC;;;;;;;;;;QAMD,oCAAI;;;;;QAAJ;YAAA,iBA4BC;YA3BC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC5B,OAAO;aACR;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;YAEjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW;iBACnC,OAAO,CAAC,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAC,CAAC;iBAC9D,MAAM,CAAC,8BAA8B,CAAC;iBACtC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;iBAClB,QAAQ,CAAC,EAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC;iBACtC,IAAI,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC,CAAC;;YAGrC,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,aAAa,CAAC,SAAS;;;;YAAC,UAAC,KAAW;gBACvC,KAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;aAC5C,EAAC,CACH,CAAC;;YAGF,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS;;;;YAAC,UAAC,KAAW;gBAC7D,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,KAAI,CAAC,IAAI,EAAE,CAAC;aACb,EAAC,CACH,CAAC;SACH;;;;;;;;;;QAMD,oCAAI;;;;;QAAJ;;YACE,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;aACzB;;gBACD,KAAkB,IAAA,KAAArC,SAAA,IAAI,CAAC,KAAK,CAAA,gBAAA,4BAAE;oBAAzB,IAAM,GAAG,WAAA;oBACZ,GAAG,CAAC,WAAW,EAAE,CAAC;iBACnB;;;;;;;;;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBACnC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;aAC1E;SACF;;;;;;;;;;QAMD,sCAAM;;;;;QAAN;YACE,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;aACpB;YAED,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;;;;;;;;QAKD,yCAAS;;;;QAAT;YACE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;gBAC5D,KAAK,EAAE,IAAI,CAAC,QAAQ;gBACpB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;gBAC/D,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;gBAC/D,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY;gBAC9E,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB;gBAC7F,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa;gBACjF,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY;gBAC9E,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;aAChE,CAAC,CAAC;SACJ;;;;QAED,2CAAW;;;QAAX;YACE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;aAC5B;SACF;;oBA7QFsC,cAAS,SAAC;wBACT,QAAQ,EAAE,gBAAgB;wBAC1B,QAAQ,EAAE,cAAc;qBACzB;;;;oBANQ,kBAAkB;oBAPAJ,eAAU;oBACRD,cAAS;oBAAiBM,qBAAgB;oBAE7CC,sCAAsB;;;gCAe7CC,UAAK;+BAKLA,UAAK;mCAILA,UAAK;gCAILA,UAAK;iCAELA,UAAK;6BAKLA,UAAK;8BAaLC,WAAM;+BAKNA,WAAM;8BAQND,UAAK;+BAYLA,UAAK;iCAILA,UAAK;8BAILA,UAAK;8BAILA,UAAK;8BAKLA,UAAK;mCAKLA,UAAK;oCAKLA,UAAK;mCAILA,UAAK;wCAILA,UAAK;oCAILC,WAAM;;QAqKT,4BAAC;KA9QD,IA8QC;;;;;;QAtQC,0CAAmE;;;;;;QAKnE,yCAA4B;;;;;QAI5B,6CAA6B;;;;;QAI7B,0CAA4B;;QAE5B,2CAA2B;;;;;QAkB3B,wCAAqC;;;;;QAKrC,yCAAsC;;QAEtC,yCAAe;;QACf,wCAAkC;;QAClC,2CAA0B;;;;;QAgB1B,yCAA+C;;;;;QAI/C,2CAA6B;;;;;QAI7B,wCAAuB;;;;;QAIvB,wCAAuB;;;;;QAKvB,wCAAuC;;;;;QAKvC,6CAAgC;;;;;QAKhC,8CAA+B;;;;;QAI/B,6CAA8B;;;;;QAI9B,kDAA0D;;;;;QAI1D,8CAAiE;;;;;QAEjE,sCAAqC;;;;;QAErC,4CAAqE;;;;;QACrE,+CAAqE;;QAEzD,wCAAkC;;;;;QAClC,4CAAgC;;;;;QAChC,0CAA6B;;;;;;;;QCzHGpB,4CAAkB;QADhE;;SACoE;;oBADnE5B,eAAU;;QACwD,+BAAC;KAAA,CAAtB,kBAAkB;;;;;;;QCgBN4B,wDAA8B;QAGtF,8CACE,SAAoB,EACpB,OAA2B,EAC3B,MAAyB,EACzB,QAAoB,EACpB,QAA6B,EAC7B,QAA6B,EAC7B,mBAAuC;YAPzC,YASE,kBAAM,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,CAAC,SAIrF;YAFC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YACtE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;;SAClE;;oBAzBFU,cAAS,SAAC;wBACT,QAAQ,EAAE,gCAAgC;wBAC1C,SAAS,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;wBACnD,+rFAAwC;wBACxC,IAAI,EAAE;4BACJ,SAAS,EAAE,0BAA0B;yBACtC;wBACD,UAAU,EAAE,CAAC,mBAAmB,CAAC;qBAClC;;;;oBAnBkDC,cAAS;oBAInD,kBAAkB;oBAElB,iBAAiB;oBANNC,eAAU;oBAGrB,mBAAmB;oBAEnB,mBAAmB;oBAGnBC,8BAAkB;;QA6B3B,2CAAC;KAAA,CAjByD,8BAA8B;;;;;;ACpBxF;QAsEE,qCACS,OAAiC,EAChC,WAAuB,EAC/B,SAAoB,EACpB,iBAAmC,EACnC,GAA2B;YAJpB,YAAO,GAAP,OAAO,CAA0B;YAChC,gBAAW,GAAX,WAAW,CAAY;;;;YATvB,kBAAa,GAAuB,IAAIL,iBAAY,EAAE,CAAC;YAEvD,UAAK,GAAmB,EAAE,CAAC;;YAanC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,YAAY,CACjC,WAAW,EACX,iBAAiB,EACjB,SAAS,CACV,CAAC;SACH;QA7DD,sBACI,gDAAO;;;;;;;;;YADX,UACY,KAAW;gBACrB,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;oBAC3B,OAAO;iBACR;gBACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChC;;;WAAA;;;;QAwDD,8CAAQ;;;QAAR;YAAA,iBAgBC;YAfC,IAAI,CAAC,SAAS,EAAE,CAAC;;YAGjB,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,aAAa,CAAC,SAAS;;;;YAAC,UAAC,KAAW;gBACvC,KAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;aAC5C,EAAC,CACH,CAAC;;YAGF,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS;;;;YAAC,UAAC,KAAW;gBAC7D,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB,EAAC,CACH,CAAC;SACH;;;;;QAED,iDAAW;;;;QAAX,UAAY,OAAsB;YAChC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;gBACzD,OAAO;aACR;YAED,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBACpD,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;YAED,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBACpD,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;YAED,IAAI,OAAO,CAAC,aAAa,EAAE;gBACzB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;gBAChE,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;YAED,IAAI,OAAO,CAAC,YAAY,EAAE;gBACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC9D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;aACpD;YAED,IAAI,OAAO,CAAC,UAAU,EAAE;gBACtB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;YAED,IAAI,OAAO,CAAC,iBAAiB,EAAE;gBAC7B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBACxE,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;SACF;;;;;;;;QAKD,+CAAS;;;;QAAT;YACE,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;aACzB;YAED,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;gBAC5D,KAAK,EAAE,IAAI,CAAC,QAAQ;gBACpB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;gBAC/D,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;gBAC/D,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB;gBAC7F,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa;gBACjF,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY;aAC/E,CAAC,CAAC;YAGH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW;iBACnC,OAAO,CAAC,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAC,CAAC;iBAC9D,MAAM,CAAC,oCAAoC,CAAC;iBAC5C,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;iBACpB,IAAI,EAAE,CAAC;SACX;;;;QAED,iDAAW;;;QAAX;YACE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC5B;;oBA1JFQ,cAAS,SAAC;wBACT,QAAQ,EAAE,sBAAsB;wBAChC,QAAQ,EAAE,oBAAoB;qBAC/B;;;;oBAPQ,wBAAwB;oBATNJ,eAAU;oBACRD,cAAS;oBAAiBM,qBAAgB;oBAG7CC,sCAAsB;;;8BAkB7CC,UAAK;+BAYLA,UAAK;iCAILA,UAAK;8BAILA,UAAK;8BAILA,UAAK;wCAILA,UAAK;mCAILA,UAAK;oCAILA,UAAK;oCAILC,WAAM;;QA0GT,kCAAC;KA3JD,IA2JC;;;QAtJC,+CAAe;;;;;QAgBf,+CAAqD;;;;;QAIrD,iDAA6B;;;;;QAI7B,8CAAuB;;;;;QAIvB,8CAAuB;;;;;QAIvB,wDAA0D;;;;;QAI1D,mDAA8B;;;;;QAI9B,oDAA+B;;;;;QAI/B,oDAAiE;;;;;QAEjE,4CAAqC;;;;;QAErC,kDAA2E;;;;;QAC3E,qDAA2E;;QAGzE,8CAAwC;;;;;QACxC,kDAA+B;;;;;;;;QCpEgBpB,iDAAkB;QADrE;YAAA,qEAMC;;YAHG,mBAAa,GAAG,CAAC,CAAC;;;;YAElB,gBAAU,GAAG,KAAK,CAAC;;SACtB;;oBANA5B,eAAU;;QAMX,oCAAC;KAAA,CALkD,kBAAkB,GAKpE;;;QAHG,sDAAkB;;;;;QAElB,mDAAmB;;;;;;;;QCmBkC4B,uDAA6B;QAapF,6CACE,SAAoB,EACZ,OAA2B,EAC3B,MAAyB,EACzB,QAAoB,EACpB,QAA6B,EACrC,QAA6B,EACrB,gBAAoC;YAP9C,YASE,iBAAO,SAOR;YAdS,aAAO,GAAP,OAAO,CAAoB;YAC3B,YAAM,GAAN,MAAM,CAAmB;YACzB,cAAQ,GAAR,QAAQ,CAAY;YACpB,cAAQ,GAAR,QAAQ,CAAqB;YAE7B,sBAAgB,GAAhB,gBAAgB,CAAoB;YAd9C,iBAAW,GAAG,IAAIQ,iBAAY,EAAU,CAAC;YACzC,oBAAc,GAAG,MAAM,CAAC;YAExB,iBAAW,GAAW,EAAE,CAAC;YACzB,iBAAW,GAAW,EAAE,CAAC;YACzB,WAAK,GAAmB,EAAE,CAAC;YAYzB,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAEzB,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAExC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/D,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;;SACpE;QA3BD,sBAAI,sDAAK;;;;;YAAT,UAAU,KAAa;gBACrB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACpC;;;WAAA;;;;QA2BD,sDAAQ;;;QAAR;YAAA,iBA4CC;YA3CC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;gBAC/B,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE;gBAC/D,gBAAgB,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;aACpC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,CAAC,MAAM;iBACzB,IAAI,CACHC,cAAI,CAAC,CAAC,CAAC,CACR;iBACA,SAAS;;;YAAC;gBACT,KAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAEhC,IAAI,KAAI,CAAC,OAAO,CAAC,UAAU,EAAE;oBAC3B,KAAI,CAAC,cAAc,GAAG,KAAI,CAAC,aAAa,GAAG,aAAa,GAAG,eAAe,CAAC;oBAE3E,OAAO;iBACR;gBAED,KAAI,CAAC,cAAc,GAAG,YAAY,CAAC;aACpC,EAAC,CAAC;YACL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;YAClD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAC7D,IAAI,CAAC,QAAQ;iBACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;;iBAGjB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;;iBAExB,WAAW,CAAC,IAAI,CAAC;;iBAEjB,gBAAgB,CAAC,IAAI,CAAC;iBACtB,6BAA6B,EAAE,CAAC;;;YAInC,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,MAAM;iBACR,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,aAAa,GAAA,EAAC;iBACpC,SAAS;;;;YAAC,UAAA,IAAI;gBACb,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB,EAAC,CACL,CAAC;SACH;QAED,sBAAI,8DAAa;;;;YAAjB;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC9D;;;WAAA;;;;QAED,mEAAqB;;;QAArB;YACE,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;SAChC;;;;;QAED,8DAAgB;;;;QAAhB,UAAiB,GAAiB;YAChC,IAAI,CAAC,GAAG,EAAE;gBACR,OAAO;aACR;;gBACK,UAAU,GAAG,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,UAAU,CAAC;YAEnG,IAAI,UAAU,EAAE;gBACd,OAAO;aACR;;;;;;YAOD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,IAAI,CAAC,WAAW;oBACd,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;0BAC3B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;0BAC/B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAClB;YAED,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC/B;YAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAElE,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aACvB;SACF;;;;QAED,yDAAW;;;QAAX;;;gBACE,KAAkB,IAAA,KAAA/B,SAAA,IAAI,CAAC,KAAK,CAAA,gBAAA,4BAAE;oBAAzB,IAAM,GAAG,WAAA;oBACZ,GAAG,CAAC,WAAW,EAAE,CAAC;iBACnB;;;;;;;;;YACD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SACzB;;;;;QAED,gEAAkB;;;;QAAlB,UAAmB,KAAoB;YACrC,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,YAAY,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACvG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;SACnE;;oBA5IFgC,cAAS,SAAC;wBACT,QAAQ,EAAE,8BAA8B;wBACxC,SAAS,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;wBACnD,+rFAAwC;wBACxC,IAAI,EAAE;4BACJ,KAAK,EAAE,QAAQ;4BACf,SAAS,EAAE,0BAA0B;4BACrC,IAAI,EAAE,QAAQ;4BACd,YAAY,EAAE,UAAU;yBACzB;wBACD,UAAU,EAAE,CAAC,mBAAmB,CAAC;qBAClC;;;;oBA1BgEC,cAAS;oBAGjE,kBAAkB;oBAIlB,iBAAiB;oBAPNC,eAAU;oBAKrB,mBAAmB;oBACnB,mBAAmB;oBAEnBC,8BAAkB;;QAqJ3B,0CAAC;KAAA,CAlIwD,6BAA6B,GAkIrF;;;QA5HC,0DAAyC;;QACzC,6DAAwB;;QAExB,0DAAyB;;QACzB,0DAAyB;;QACzB,oDAA2B;;;;;QAIzB,sDAAmC;;;;;QACnC,qDAAiC;;;;;QACjC,uDAA4B;;;;;QAC5B,uDAAqC;;;;;QAErC,+DAA4C;;;;;;;;QC3Beb,6DAAmC;QAGhG,mDACE,SAAoB,EACpB,OAA2B,EAC3B,MAAyB,EACzB,QAAoB,EACpB,QAA6B,EAC7B,QAA6B,EAC7B,mBAAuC;YAPzC,YASE,kBAAM,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,CAAC,SAIrF;YAFC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YACtE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;;SAClE;;oBAzBFU,cAAS,SAAC;wBACT,QAAQ,EAAE,qCAAqC;wBAC/C,SAAS,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;wBACnD,+rFAAwC;wBACxC,IAAI,EAAE;4BACJ,SAAS,EAAE,0BAA0B;yBACtC;wBACD,UAAU,EAAE,CAAC,mBAAmB,CAAC;qBAClC;;;;oBAnBkDC,cAAS;oBAInD,kBAAkB;oBAElB,iBAAiB;oBANEC,eAAU;oBAG7B,mBAAmB;oBAEnB,mBAAmB;oBAGnBC,8BAAkB;;QA6B3B,gDAAC;KAAA,CAjB8D,mCAAmC;;;;;;ACpBlG;QA2EI,0CACS,OAAsC,EACrC,WAAuB,EAC/B,SAAoB,EACpB,iBAAmC,EACnC,GAA2B;YAJpB,YAAO,GAAP,OAAO,CAA+B;YACrC,gBAAW,GAAX,WAAW,CAAY;;;;YATvB,kBAAa,GAAyB,IAAIL,iBAAY,EAAE,CAAC;YAEzD,UAAK,GAAmB,EAAE,CAAC;;YAanC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,YAAY,CACjC,WAAW,EACX,iBAAiB,EACjB,SAAS,CACV,CAAC;SACH;QAjED,sBACI,qDAAO;;;;;;;;;YADX,UACY,KAAa;gBACvB,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;oBAC3B,OAAO;iBACR;gBACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChC;;;WAAA;;;;QA4DD,mDAAQ;;;QAAR;YAAA,iBAoBC;YAnBG,IAAI,CAAC,SAAS,EAAE,CAAC;;YAGjB,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,aAAa,CAAC,SAAS;;;;YAAC,UAAC,KAAa;gBACzC,KAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;aAC5C,EAAC,CACH,CAAC;;YAGF,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW;iBACrC,IAAI,CACDlC,gBAAM;;;;YAAC,UAAC,KAAa,IAAK,OAAA,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAA,EAAC,CAC7D;iBACA,SAAS;;;;YAAC,UAAC,KAAa;gBACvB,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB,EAAC,CACL,CAAC;SACL;;;;;QAED,sDAAW;;;;QAAX,UAAY,OAAsB;YAC9B,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;gBACzD,OAAO;aACR;YAED,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBACpD,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;YAED,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBACpD,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;YAED,IAAI,OAAO,CAAC,YAAY,EAAE;gBACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;aAC/D;YAED,IAAI,OAAO,CAAC,aAAa,EAAE;gBACzB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;gBAChE,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;YAED,IAAI,OAAO,CAAC,YAAY,EAAE;gBACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC9D,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;YAED,IAAI,OAAO,CAAC,UAAU,EAAE;gBACtB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;YAED,IAAI,OAAO,CAAC,iBAAiB,EAAE;gBAC7B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBACxE,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;SACJ;;;;;;;;QAKD,oDAAS;;;;QAAT;YACE,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;aACzB;YAED,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;gBAC5D,KAAK,EAAE,IAAI,CAAC,QAAQ;gBACpB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;gBAC/D,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;gBAC/D,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY;gBAC9E,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB;gBAC7F,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa;gBACjF,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY;gBAC9E,MAAM,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;aAC9C,CAAC,CAAC;YAGH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW;iBACnC,OAAO,CAAC,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAC,CAAC;iBAC9D,MAAM,CAAC,yCAAyC,CAAC;iBACjD,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;iBACpB,IAAI,EAAE,CAAC;SACX;;;;QAED,sDAAW;;;QAAX;YACE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC5B;;oBAxKJ0C,cAAS,SAAC;wBACP,QAAQ,EAAE,2BAA2B;wBACrC,QAAQ,EAAE,yBAAyB;qBACtC;;;;oBAPQ,6BAA6B;oBAVXJ,eAAU;oBACRD,cAAS;oBAAiBM,qBAAgB;oBAG7CC,sCAAsB;;;8BAmB3CC,UAAK;+BAYLA,UAAK;iCAILA,UAAK;8BAILA,UAAK;8BAILA,UAAK;wCAILA,UAAK;mCAILA,UAAK;oCAILA,UAAK;mCAILA,UAAK;oCAILC,WAAM;;QAoHX,uCAAC;KAzKD,IAyKC;;;QApKG,oDAAiB;;;;;QAgBjB,oDAA0D;;;;;QAI1D,sDAA6B;;;;;QAI7B,mDAAuB;;;;;QAIvB,mDAAuB;;;;;QAIvB,6DAA0D;;;;;QAI1D,wDAAiC;;;;;QAIjC,yDAA+B;;;;;QAI/B,wDAA8B;;;;;QAI9B,yDAAmE;;;;;QAEnE,iDAAqC;;;;;QAErC,uDAAgF;;;;;QAChF,0DAAgF;;QAG9E,mDAA6C;;;;;QAC7C,uDAA+B;;;;;;;IC7ErC;QAiCM,4BAA4B,GAAa;QAC7C,OAAO,EAAEC,uBAAiB;;QAE1B,WAAW,EAAEC,eAAU;;;QAAC,cAAM,OAAA,0BAA0B,GAAA,EAAC;QACzD,KAAK,EAAE,IAAI;KACZ;;QAEK,uBAAuB,GAAa;QACxC,OAAO,EAAEC,mBAAa;;QAEtB,WAAW,EAAED,eAAU;;;QAAC,cAAM,OAAA,0BAA0B,GAAA,EAAC;QACzD,KAAK,EAAE,IAAI;KACZ;AAED;QAkBE,oCAA4B,OAA8B,EACtC,cAA+B,EAC/B,SAAoB,EACpB,MAAkB,EAClB,eAAkC;YAJtD,iBAoBC;YApB2B,YAAO,GAAP,OAAO,CAAuB;YACtC,mBAAc,GAAd,cAAc,CAAiB;YAC/B,cAAS,GAAT,SAAS,CAAW;YACpB,WAAM,GAAN,MAAM,CAAY;YAClB,oBAAe,GAAf,eAAe,CAAmB;YAV9C,cAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;YAC/B,eAAU,GAAG,QAAQ,CAAC,SAAS,CAAC;;YAEhC,qBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC;;YAS5C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS;;;;YAAC,UAAC,KAAW;gBAC/C,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,KAAI,CAAC,MAAM,KAAK,KAAK,EAAE;oBACzB,KAAI,CAAC,MAAM,GAAG,KAAK,CAAC;oBACpB,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACtB,KAAI,CAAC,UAAU,EAAE,CAAC;iBACnB;gBACD,KAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;aACrC,EAAC,CAAC;;YAGH,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS;;;YAAC;gBACzC,KAAI,CAAC,cAAc,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;aAClC,EAAC,CAAC;SACJ;;;;;QAED,mDAAc;;;;QAAd,UAAe,KAAK;YAClB,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;gBAClD,IAAI,CAAC,IAAI,EAAE,CAAC;aACb;SACF;;;;;QAED,mDAAc;;;;QAAd,UAAe,KAAW;;gBAClB,WAAW,GAAG,CAAC,KAAK,GAAG,EAAE;kBAC3BjC,kBAAU,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;YAE9F,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;SAC7E;;;;;QAED,6CAAQ;;;;QAAR,UAAS,KAAY;;YAEnB,IAAI,CAAC,UAAU,CAAC,oBAAC,KAAK,CAAC,MAAM,IAAS,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBAC3C,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;aACrE;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;;;;;QAED,6CAAQ;;;;QAAR,UAAS,CAAkB;;gBACnB,MAAM,GAAkB,CAAC,CAAC,KAAK;;YAGrC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE;gBAC5D,OAAO,IAAI,CAAC;aACb;YAED,IAAImC,cAAM,CAAC,MAAM,CAAC,EAAE;;oBACZ,YAAY,GAAGzB,mBAAW,CAAC,MAAM,CAAC;gBACxC,IAAI,CAAC,YAAY,EAAE;oBACjB,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;iBACxC;gBAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAIjB,gBAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;oBAC1F,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAEtC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;iBACtD;gBAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAIE,eAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;oBACzF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAEtC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;iBACtD;aACF;SACF;;;;;QAED,8DAAyB;;;;QAAzB,UAA0B,EAAc;YACtC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC5B;;;;;QAED,+CAAU;;;;QAAV,UAAW,KAAoB;YAC7B,IAAI,CAAC,KAAK,EAAE;gBACV,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACpB;iBAAM;;oBACC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa;;oBAC9C,OAAO,GAAGM,iBAAS,CAAC,UAAU,CAAC;gBACrC,IAAI,CAAC,OAAO,EAAE;oBACZ,MAAM,IAAI,KAAK,CACb,cAAW,UAAU,gEAA0D,CAChF,CAAC;iBACH;gBAED,IAAI,CAAC,MAAM,GAAGmC,iBAAS,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBAExG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE;oBAC/B,IAAI,CAAC,MAAM,GAAGC,kBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACvC;aACF;YAED,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;SACpC;;;;;QAED,qDAAgB;;;;QAAhB,UAAiB,UAAmB;YAClC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;YACrC,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;gBAE/E,OAAO;aACR;YACD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;SACvE;;;;;QAED,qDAAgB;;;;QAAhB,UAAiB,EAAc;YAC7B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACrB;;;;;QAED,sDAAiB;;;;QAAjB,UAAkB,EAAc;YAC9B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACtB;;;;QAED,2CAAM;;;QAAN;YACE,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;;;;QAED,yCAAI;;;QAAJ;YACE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;YACnE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBAC3C,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;aACrE;SACF;;oBAjJFV,cAAS,SAAC;wBACT,QAAQ,EAAE,qBAAqB;wBAC/B,IAAI,EAAE;4BACJ,UAAU,EAAE,kBAAkB;4BAC9B,aAAa,EAAE,QAAQ;4BACvB,WAAW,EAAE,wBAAwB;4BACrC,QAAQ,EAAE,UAAU;yBACrB;wBACD,SAAS,EAAE,CAAC,4BAA4B,EAAE,uBAAuB,CAAC;qBACnE;;;;oBA1BQ,qBAAqB,uBAmCfW,SAAI;oBAlCV,eAAe;oBAxBtBhB,cAAS;oBAJTC,eAAU;oBAFVgB,sBAAiB;;QAgMnB,iCAAC;KAlJD,IAkJC;;;;;;QAtIC,+CAAuC;;;;;QACvC,gDAAwC;;;;;QAExC,sDAA8C;;;;;QAC9C,4CAAqB;;;;;QAET,6CAA8C;;;;;QAC9C,oDAAuC;;;;;QACvC,+CAA4B;;;;;QAC5B,4CAA0B;;;;;QAC1B,qDAA0C;;;;;;;;QCjEX5B,2CAAkB;QAD/D;YAAA,qEAIC;;YADC,mBAAa,GAAG,CAAC,CAAC;;SACnB;;oBAJA5B,eAAU;;QAIX,8BAAC;KAAA,CAH4C,kBAAkB,GAG9D;;;QADC,gDAAkB;;;;;;;;QC6HlB,oCAAmB,OAAgC,EAC9B,WAAuB,EACvB,SAAoB,EAC7B,iBAAmC,EACnC,GAA2B;YAJpB,YAAO,GAAP,OAAO,CAAyB;YAC9B,gBAAW,GAAX,WAAW,CAAY;YACvB,cAAS,GAAT,SAAS,CAAW;;;;YArGhC,cAAS,GAAwC,QAAQ,CAAC;;;;;YAK1D,aAAQ,GAAG,OAAO,CAAC;;;;YAInB,iBAAY,GAAG,IAAI,CAAC;;;;YAIpB,cAAS,GAAG,MAAM,CAAC;YAEnB,eAAU,GAAG,IAAI,CAAC;;;;YA6EjB,kBAAa,GAAyB,IAAIoC,iBAAY,EAAE,CAAC;YAEzD,UAAK,GAAmB,EAAE,CAAC;YAUnC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,YAAY,CACjC,WAAW,EACX,iBAAiB,EACjB,SAAS,CACV,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YAC1C,IAAI,CAAC,OAAO,GAAG,IAAInC,oBAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACjD;QA7FD,sBACI,8CAAM;;;;;;;;YADV;gBAEE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;aACjC;;;;;YAED,UAAW,KAAc;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1B;;;WAJA;QAwBD,sBACI,+CAAO;;;;;;;;;YADX,UACY,KAAa;gBACvB,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;oBAC3B,OAAO;iBACR;gBACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChC;;;WAAA;;;;QA6DD,6CAAQ;;;QAAR;YAAA,iBASC;YARC,IAAI,CAAC,UAAU,GAAG,IAAIyC,YAAO,EAAE,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACtB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI;;;gBAAE,cAAM,OAAA,KAAI,CAAC,IAAI,EAAE,GAAA,CAAA;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;;;;;QAED,gDAAW;;;;QAAX,UAAY,OAAsB;YAChC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;gBACzD,OAAO;aACR;YAED,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;aACrD;YAED,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;aACrD;YAED,IAAI,OAAO,CAAC,aAAa,EAAE;gBACzB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;aACjE;YAED,IAAI,OAAO,CAAC,YAAY,EAAE;gBACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;aAC/D;YAED,IAAI,OAAO,CAAC,YAAY,EAAE;gBACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;aAC/D;YAED,IAAI,OAAO,CAAC,UAAU,EAAE;gBACtB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;aAC3D;YAED,IAAI,OAAO,CAAC,iBAAiB,EAAE;gBAC7B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;aACzE;SACF;;;;QAED,oDAAe;;;QAAf;YAAA,iBAMC;YALC,IAAI,CAAC,OAAO,CAAC,IAAI,CACfxC,gBAAM;;;;YAAC,UAAA,MAAM,IAAI,OAAA,MAAM,KAAK,KAAI,CAAC,MAAM,GAAA,EAAC,EACxCyC,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B;iBACE,SAAS;;;YAAC,cAAM,OAAA,KAAI,CAAC,MAAM,EAAE,GAAA,EAAC,CAAC;SACnC;;;;;;;;;;QAMD,yCAAI;;;;;QAAJ;YAAA,iBAgCC;YA/BC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC5B,OAAO;aACR;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;YAEjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW;iBACnC,OAAO,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;iBAChE,MAAM,CAAC,mCAAmC,CAAC;iBAC3C,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;iBAClB,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;iBACxC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;;YAGvC,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,aAAa,CAAC,SAAS;;;;YAAC,UAAC,KAAa;gBACzC,KAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;aAC5C,EAAC,CACH,CAAC;;YAGF,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW;iBACrC,IAAI,CACHzC,gBAAM;;;;YAAC,UAAC,KAAa,IAAK,OAAA,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAA,EAAC,CAC3D;iBACA,SAAS;;;;YAAC,UAAC,KAAa;gBACvB,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,KAAI,CAAC,IAAI,EAAE,CAAC;aACb,EAAC,CACL,CAAC;SACH;;;;;;;;QAKD,8CAAS;;;;QAAT;YACE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAC1B,EAAE,EACF,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,EACb;gBACE,KAAK,EAAE,IAAI,CAAC,QAAQ;gBACpB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;gBAC/D,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;gBAC/D,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY;gBAC9E,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB;gBAC7F,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa;gBACjF,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY;gBAC9E,MAAM,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;aAC9C,CACF,CAAC;SACH;;;;;;;;;;QAMD,yCAAI;;;;;QAAJ;;YACE,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;aACzB;;gBACD,KAAkB,IAAA,KAAAI,SAAA,IAAI,CAAC,KAAK,CAAA,gBAAA,4BAAE;oBAAzB,IAAM,GAAG,WAAA;oBACZ,GAAG,CAAC,WAAW,EAAE,CAAC;iBACnB;;;;;;;;;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBACnC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;aAC1E;SACF;;;;;;;;;;QAMD,2CAAM;;;;;QAAN;YACE,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;aACpB;YAED,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;;;;QAED,gDAAW;;;QAAX;YACE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;aAC5B;SACF;;oBAjRFsC,cAAS,SAAC;wBACT,QAAQ,EAAE,qBAAqB;wBAC/B,QAAQ,EAAE,mBAAmB;qBAC9B;;;;oBAXQ,uBAAuB;oBAX9BJ,eAAU;oBAOVD,cAAS;oBAETM,qBAAgB;oBAMTC,sCAAsB;;;gCAa5BC,UAAK;+BAKLA,UAAK;mCAILA,UAAK;gCAILA,UAAK;iCAELA,UAAK;6BAKLA,UAAK;8BAaLC,WAAM;+BAKNA,WAAM;8BASND,UAAK;+BAYLA,UAAK;iCAILA,UAAK;8BAILA,UAAK;8BAILA,UAAK;wCAILA,UAAK;mCAILA,UAAK;oCAILA,UAAK;mCAKLA,UAAK;oCAILC,WAAM;;QA6KT,iCAAC;KAlRD,IAkRC;;;;;;QAzQC,+CAAmE;;;;;;QAKnE,8CAA4B;;;;;QAI5B,kDAA6B;;;;;QAI7B,+CAA4B;;QAE5B,gDAA2B;;;;;QAkB3B,6CAAqC;;;;;QAKrC,8CAAsC;;QAEtC,8CAAiB;;QACjB,6CAAkC;;QAClC,gDAA0B;;;;;QAiB1B,8CAAoD;;;;;QAIpD,gDAA6B;;;;;QAI7B,6CAAuB;;;;;QAIvB,6CAAuB;;;;;QAIvB,uDAA0D;;;;;QAI1D,kDAAiC;;;;;QAIjC,mDAA+B;;;;;QAK/B,kDAA8B;;;;;QAI9B,mDAAmE;;;;;QAEnE,2CAAqC;;;;;QAErC,iDAA0E;;;;;QAC1E,oDAA0E;;QAE9D,6CAAuC;;;;;QACvC,iDAAgC;;;;;QAChC,+CAA6B;;;;;;;ICrI3C;QAiCM,iCAAiC,GAAa;QAClD,OAAO,EAAEC,uBAAiB;;QAE1B,WAAW,EAAEC,eAAU;;;QAAC,cAAM,OAAA,+BAA+B,GAAA,EAAC;QAC9D,KAAK,EAAE,IAAI;KACZ;;QAEK,4BAA4B,GAAa;QAC7C,OAAO,EAAEC,mBAAa;;QAEtB,WAAW,EAAED,eAAU;;;QAAC,cAAM,OAAA,+BAA+B,GAAA,EAAC;QAC9D,KAAK,EAAE,IAAI;KACZ;AAGD;QAkBE,yCAA4B,OAAmC,EAC3C,cAA+B,EAC/B,SAAoB,EACpB,MAAkB,EAClB,eAAkC;YAJtD,iBAoBC;YApB2B,YAAO,GAAP,OAAO,CAA4B;YAC3C,mBAAc,GAAd,cAAc,CAAiB;YAC/B,cAAS,GAAT,SAAS,CAAW;YACpB,WAAM,GAAN,MAAM,CAAY;YAClB,oBAAe,GAAf,eAAe,CAAmB;YAV9C,cAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;YAC/B,eAAU,GAAG,QAAQ,CAAC,SAAS,CAAC;;YAEhC,qBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC;;YAS5C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS;;;;YAAC,UAAC,KAAa;gBACjD,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,KAAI,CAAC,MAAM,KAAK,KAAK,EAAE;oBACzB,KAAI,CAAC,MAAM,GAAG,KAAK,CAAC;oBACpB,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACtB,KAAI,CAAC,UAAU,EAAE,CAAC;iBACnB;gBACD,KAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;aACrC,EAAC,CAAC;;YAGH,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS;;;YAAC;gBACzC,KAAI,CAAC,cAAc,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;aAClC,EAAC,CAAC;SACJ;;;;;QAED,wDAAc;;;;QAAd,UAAe,KAAK;YAClB,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;gBAClD,IAAI,CAAC,IAAI,EAAE,CAAC;aACb;SACF;;;;;QAED,wDAAc;;;;QAAd,UAAe,IAAY;;gBACrB,KAAK,GAAG,EAAE;YACd,IAAI,IAAI,EAAE;;oBACF,KAAK,GAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;sBAC/BjC,kBAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAClB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EACrC,IAAI,CAAC,cAAc,CAAC,aAAa,CAClC;;oBACG,GAAG,GAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;sBAC7BA,kBAAU,CACV,IAAI,CAAC,CAAC,CAAC,EACP,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EACrC,IAAI,CAAC,cAAc,CAAC,aAAa,CAClC;gBACH,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;aACjF;YACD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;SACvE;;;;;QAED,kDAAQ;;;;QAAR,UAAS,KAAY;;YAEnB,IAAI,CAAC,UAAU,CAAC,oBAAC,KAAK,CAAC,MAAM,IAAS,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBAC3C,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;aACrE;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;;;;;QAED,kDAAQ;;;;QAAR,UAAS,CAAkB;;gBACnB,MAAM,GAAiB,CAAC,CAAC,KAAK;;gBAC9B,MAAM,GAAa,EAAE;YAE3B,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,CAACH,eAAO,CAAC,MAAM,CAAC,EAAE;gBAC/D,OAAO,IAAI,CAAC;aACb;;YAGD,MAAM,CAAC,IAAI;;;;;YAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,GAAA,EAAC,CAAC;;gBAEvB,iBAAiB,GAAGa,mBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;;gBAC1C,kBAAkB,GAAGA,mBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEjD,IAAI,CAAC,iBAAiB,EAAE;gBACtB,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aAC3C;YAED,IAAI,CAAC,kBAAkB,EAAE;gBACvB,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAIjB,gBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;gBAC7F,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;aAC5D;YAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAIE,eAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;gBAC5F,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;aAC5D;YACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAExB,OAAO,MAAM,CAAC;aACf;SACF;;;;;QAED,mEAAyB;;;;QAAzB,UAA0B,EAAc;YACtC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC5B;;;;;QAED,oDAAU;;;;QAAV,UAAW,KAAsB;YAAjC,iBAoCC;YAnCC,IAAI,CAAC,KAAK,EAAE;gBACV,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACpB;iBAAM;;oBACC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa;;oBAC9C,OAAO,GAAGM,iBAAS,CAAC,UAAU,CAAC;gBACrC,IAAI,CAAC,OAAO,EAAE;oBACZ,MAAM,IAAI,KAAK,CACb,cAAW,UAAU,gEAA0D,CAChF,CAAC;iBACH;;oBAEG,MAAM,GAAwB,EAAE;gBACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBAC7B,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;iBAC3D;gBAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACxB,MAAM,GAAG,KAAK,CAAC;iBAChB;gBAED,IAAI,CAAC,MAAM,GAAG,oBAAC,MAAM;qBAClB,GAAG;;;;gBAAC,UAAC,IAAY;oBACd,IAAI,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE;wBAC/B,OAAOoC,kBAAU,CACfD,iBAAS,CAAC,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,KAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CACzF,CAAC;qBACH;oBAED,OAAOA,iBAAS,CAAC,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,KAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;iBACjG,EACF;qBACA,GAAG;;;;gBAAC,UAAC,IAAU,IAAK,QAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,IAAC,EAAC,CAAC;aAC/D;YAED,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;SACpC;;;;;QAED,0DAAgB;;;;QAAhB,UAAiB,UAAmB;YAClC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;YACrC,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;gBAE/E,OAAO;aACR;YACD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;SACvE;;;;;;;QAGD,0DAAgB;;;;;QAAhB,UAAiB,EAAc;YAC7B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACrB;;;;;;;QAGD,2DAAiB;;;;;QAAjB,UAAkB,EAAc;YAC9B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACtB;;;;QAED,gDAAM;;;QAAN;YACE,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;;;;QAED,8CAAI;;;QAAJ;YACE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;YAEnE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBAC3C,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;aACrE;SACF;;oBA1LFT,cAAS,SAAC;wBACT,QAAQ,EAAE,0BAA0B;wBACpC,IAAI,EAAE;4BACJ,UAAU,EAAE,kBAAkB;4BAC9B,aAAa,EAAE,QAAQ;4BACvB,WAAW,EAAE,wBAAwB;4BACrC,QAAQ,EAAE,UAAU;yBACrB;wBACD,SAAS,EAAE,CAAC,iCAAiC,EAAE,4BAA4B,CAAC;qBAC7E;;;;oBA3BQ,0BAA0B,uBAoCpBW,SAAI;oBAnCV,eAAe;oBAxBtBhB,cAAS;oBAJTC,eAAU;oBAFVgB,sBAAiB;;QA0OnB,sCAAC;KA3LD,IA2LC;;;;;;QA/KC,oDAAuC;;;;;QACvC,qDAAwC;;;;;QAExC,2DAA8C;;;;;QAC9C,iDAAuB;;;;;QAEX,kDAAmD;;;;;QACnD,yDAAuC;;;;;QACvC,oDAA4B;;;;;QAC5B,iDAA0B;;;;;QAC1B,0DAA0C;;;;;;;ACtExD;QAEA;SAmByC;;oBAnBxClB,cAAS,SAAC;wBACT,QAAQ,EAAE,oBAAoB;wBAC9B,QAAQ,EAAE,6cAeT;qBACF;;QACuC,gCAAC;KAnBzC;;;;;;ACFA;QAEA;SAMC;;oBANAA,cAAS,SAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,QAAQ,EAAE,gEAA8D;qBACzE;;;4BAEES,UAAK;;QACR,iCAAC;KAND,IAMC;;;QADC,2CAAuB;;;;;;;ICPzB;;;IAEA,4BAGC;;;QAFC,8BAAc;;QACd,8BAAqB;;AAGvB;QAAA;YAyBY,aAAQ,GAAG,IAAIX,iBAAY,EAAiB,CAAC;YAEvD,gBAAW,GAAQ,IAAI,CAAC;SAUzB;;;;;QARC,qDAAgB;;;;QAAhB,UAAiB,KAAoB;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;;;;QAED,+CAAU;;;QAAV;YAAA,iBAEC;YADC,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,KAAK,KAAK,KAAI,CAAC,aAAa,GAAA,EAAC,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;SACzG;;oBAnCFE,cAAS,SAAC;wBACT,QAAQ,EAAE,qBAAqB;wBAC/B,QAAQ,EAAE,+fAiBT;wBACD,eAAe,EAAEmB,4BAAuB,CAAC,MAAM;qBAChD;;;6BAEEV,UAAK;oCACLA,UAAK;+BACLC,WAAM;;QAYT,iCAAC;KArCD,IAqCC;;;QAdC,4CAAiC;;QACjC,mDAA+B;;QAC/B,8CAAuD;;QAEvD,iDAAwB;;;;;;;AClC1B;QA8BE,2CACU,OAA2B,EAC3B,MAAkB,EAClB,SAAoB;YAFpB,YAAO,GAAP,OAAO,CAAoB;YAC3B,WAAM,GAAN,MAAM,CAAY;YAClB,cAAS,GAAT,SAAS,CAAW;SACzB;;;;QAEL,oDAAQ;;;QAAR;YAAA,iBAYC;YAXC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBACrE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aACnF;YAED,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,KAAK,QAAQ,EAAE;gBAC9C,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC;qBAC9B,MAAM;;;;gBAAC,UAAC,SAAiB,IAAK,OAAA,SAAS,GAAA,EAAC;qBACxC,OAAO;;;;gBAAC,UAAC,SAAiB;oBACzB,KAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAI,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;iBAC/D,EAAC,CAAC;aACN;SACF;;oBApCFV,cAAS,SAAC;wBACT,QAAQ,EAAE,4BAA4B;wBACtC,eAAe,EAAEmB,4BAAuB,CAAC,MAAM;wBAC/C,IAAI,EAAE;4BACJ,kBAAkB,EAAE,gBAAgB;4BACpC,wBAAwB,EAAE,eAAe;4BACzC,wBAAwB,EAAE,kBAAkB;4BAC5C,+BAA+B,EAAE,yBAAyB;4BAC1D,kBAAkB,EAAE,eAAe;4BACnC,sBAAsB,EAAE,sBAAsB;4BAC9C,oBAAoB,EAAE,oBAAoB;4BAC1C,kBAAkB,EAAE,gBAAgB;yBACrC;wBACD,QAAQ,EAAE,iBAAiB;qBAC5B;;;;oBAjBQ,kBAAkB;oBANzBjB,eAAU;oBAGVD,cAAS;;;0BAsBRQ,UAAK;;QAqBR,wCAAC;KArCD,IAqCC;;;QArBC,gDAA2B;;;;;QAGzB,oDAAmC;;;;;QACnC,mDAA0B;;;;;QAC1B,sDAA4B;;;;;;;;;;;IC3BhC,kCAOC;;;QANC,yCAAmB;;QACnB,wCAAkB;;QAClB,4CAAwB;;QACxB,6CAAyB;;QACzB,+CAA2B;;QAC3B,gDAA4B;;;;;IAG9B,oCAMC;;;QALC,qCAAW;;QACX,sCAAc;;QACd,2CAAqB;;QACrB,0CAAoB;;QACpB,2CAAqB;;;;;;IAKvB,2BAYC;;;QAXC,2CAA8B;;QAC9B,oCAAuB;;QACvB,iCAAoB;;QACpB,wCAA2B;;QAC3B,sCAAyB;;QACzB,+BAAkB;;QAClB,qCAAuB;;QAEvB,kCAAoB;;QACpB,iCAAmB;;QACnB,gCAAkB;;;;;IAGpB,4BAGC;;;QAFC,6BAAqB;;QACrB,kCAAoB;;;;;IAItB,oCAMC;;;QALC,sCAAuB;;QAEvB,sCAAY;;QACZ,4CAAsB;;QACtB,yCAAmB;;;;;;IAKrB,sCAEC;;;QADC,yCAAkC;;;;;;IAKpC,qCAEC;;;QADC,uCAAiC;;;;;;IASnC,gCAGC;;;QAFC,uCAAqB;;QACrB,kCAAY;;;;;;IAKd,+BAIC;;;QAHC,iCAAe;;QACf,kCAAgB;;QAChB,0CAAwB;;;;;;IAK1B,sCAWC;;;QAVC,yCAAe;;QAEf,6CAAmB;;QACnB,4CAAkB;;QAElB,2CAAiB;;QACjB,6CAAmB;;QACnB,4CAAkB;;QAElB,8CAAoB;;;;;IAGtB,sCAGC;;;QAFC,kDAA0B;;QAC1B,gDAAuB;;;;;IAGzB,0CAGC;;;QAFC,2CAAW;;QACX,8CAAkB;;;;QAOlB,KAAE;QACF,OAAI;;;;;;;IAIN,gCAGC;;;QAFC,sCAAkC;;QAClC,iCAAgB;;;;;IAGlB,oCAGC;;;QAFC,qCAAgB;;QAChB,yCAA+B;;;;;IAGjC,6BAGC;;;QAFC,8BAA4B;;QAC5B,mCAAmB;;;;;;;AClIrB;QAaA;YA4CY,eAAU,GAAG,IAAIX,iBAAY,EAAyB,CAAC;YACvD,eAAU,GAAG,IAAIA,iBAAY,EAAwB,CAAC;SAWjE;;;;;QATC,mDAAK;;;;QAAL,UAAM,IAAa;YACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,GAAG,qBAAqB,CAAC,IAAI,GAAG,qBAAqB,CAAC,EAAE,CAC7D,CAAC;SACH;;;;;QAED,kDAAI;;;;QAAJ,UAAK,QAA8B;YACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAChC;;oBAvDFE,cAAS,SAAC;wBACT,QAAQ,EAAE,+BAA+B;wBACzC,eAAe,EAAEmB,4BAAuB,CAAC,MAAM;wBAC/C,QAAQ,EAAE,szCAoCT;qBACF;;;+BAEEV,UAAK;iCAELC,WAAM;iCACNA,WAAM;;QAWT,0CAAC;KAxDD,IAwDC;;;QAdC,uDAAyC;;QAEzC,yDAAiE;;QACjE,yDAAgE;;;;;;;AC1DlE;QA4EE,qCAAoB,OAA2B;YAA3B,YAAO,GAAP,OAAO,CAAoB;YATrC,eAAU,GAAG,IAAIZ,iBAAY,EAAqB,CAAC;YACnD,eAAU,GAAG,IAAIA,iBAAY,EAAwB,CAAC;YAEtD,aAAQ,GAAG,IAAIA,iBAAY,EAAgB,CAAC;YAC5C,YAAO,GAAG,IAAIA,iBAAY,EAAkB,CAAC;YAC7C,gBAAW,GAAG,IAAIA,iBAAY,EAAiB,CAAC;SAIN;;;;;QAEpD,gDAAU;;;;QAAV,UAAW,KAA4B;;gBAC/B,IAAI,GAAG,qBAAqB,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;SACjD;;;;;QAED,oDAAc;;;;QAAd,UAAe,KAA2B;YACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B;;;;;QAED,+CAAS;;;;QAAT,UAAU,KAAmB;YAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;;;;;QAED,gDAAU;;;;QAAV,UAAW,IAAmB;YAA9B,iBAoCC;YAnCC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;gBACjE,OAAO;aACR;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1B,OAAO;aACR;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;mBACpC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU;mBACxB,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;gBAEtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEjC,OAAO;aACV;;gBAEK,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;;;;YAAC,UAAC,GAAiB;gBACnD,OAAO,KAAI,CAAC,OAAO,CAAC,oBAAoB;sBACpC,CAAC,GAAG,CAAC,UAAU;sBACf,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;aAC1C,EAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEhC,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;;oBAC9B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;;oBACzB,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI;;;;gBAAC,UAAC,GAAiB;oBAC3D,OAAO,KAAI,CAAC,OAAO,CAAC,oBAAoB;0BACpC,CAAC,GAAG,CAAC,UAAU;0BACf,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;iBAC1C,EAAC;gBAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACpC;SACF;;;;;;QAED,sDAAgB;;;;;QAAhB,UAAiB,IAAmB,EAAE,SAAkB;YAAxD,iBAgBC;YAfC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;gBACjE,OAAO;aACR;;gBAEK,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;;;;YAAC,UAAC,GAAiB;gBACrD,OAAO,KAAI,CAAC,OAAO,CAAC,oBAAoB;sBACpC,CAAC,GAAG,CAAC,UAAU;sBACf,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;aAC1C,EAAC;YAEF,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC3B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;gBAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC7B;SACF;;;;;;QAED,8CAAQ;;;;;QAAR,UAAS,IAAkB,EAAE,SAAkB;YAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,IAAI,IAAI,CAAC,YAAY,EAAE;gBAC1D,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;aACtC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,MAAA,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;SACxC;;oBAtIFE,cAAS,SAAC;wBACT,QAAQ,EAAE,uBAAuB;;wBAEjC,QAAQ,EAAE,27CAuCT;qBACF;;;;oBA7CQ,kBAAkB;;;+BA+CxBS,UAAK;8BACLA,UAAK;iCAELC,WAAM;iCACNA,WAAM;+BAENA,WAAM;8BACNA,WAAM;kCACNA,WAAM;;QAkFT,kCAAC;KAvID,IAuIC;;;QA1FC,+CAAyC;;QACzC,8CAA0C;;QAE1C,iDAA6D;;QAC7D,iDAAgE;;QAEhE,+CAAsD;;QACtD,8CAAuD;;QACvD,kDAA0D;;QAE1D,oDAAuB;;;;;QAEX,8CAAmC;;;;;;;AC5EjD;QAUA;YA8BY,eAAU,GAAG,IAAIZ,iBAAY,EAAqB,CAAC;YACnD,eAAU,GAAG,IAAIA,iBAAY,EAAwB,CAAC;YAEtD,aAAQ,GAAG,IAAIA,iBAAY,EAAyB,CAAC;YACrD,YAAO,GAAG,IAAIA,iBAAY,EAAkB,CAAC;SAkBxD;;;;;QAhBC,iDAAU;;;;QAAV,UAAW,KAA4B;;gBAC/B,IAAI,GAAG,qBAAqB,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;SAChD;;;;;QAED,gDAAS;;;;QAAT,UAAU,KAA4B;YACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;;;;;;QAED,iDAAU;;;;;QAAV,UAAW,IAA2B,EAAE,SAAkB;YACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,MAAA,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;SACxC;;;;;QAED,qDAAc;;;;QAAd,UAAe,KAA2B;YACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B;;oBAnDFE,cAAS,SAAC;wBACT,QAAQ,EAAE,wBAAwB;wBAClC,QAAQ,EAAE,41BAuBT;qBACF;;;+BAEES,UAAK;iCAELC,WAAM;iCACNA,WAAM;+BAENA,WAAM;8BACNA,WAAM;;QAkBT,mCAAC;KApDD,IAoDC;;;QAxBC,gDAA2C;;QAE3C,kDAA6D;;QAC7D,kDAAgE;;QAEhE,gDAA+D;;QAC/D,+CAAuD;;;;;;;;QCzCzD;YAuBE,SAAI,GAAG,IAAI,CAAC;YACZ,UAAK,GAAG,CAAC,CAAC;YACV,YAAO,GAAG,CAAC,CAAC;SACb;;oBA1BAV,cAAS,SAAC;wBACT,QAAQ,EAAE,eAAe;wBACzB,QAAQ,EAAE,kvCAkBT;qBACF;;QAKD,gCAAC;KA1BD,IA0BC;;;QAHC,yCAAY;;QACZ,0CAAU;;QACV,4CAAY;;;;;;;AC5Bd;QAWA;YA8BY,eAAU,GAAG,IAAIF,iBAAY,EAAqB,CAAC;YACnD,eAAU,GAAG,IAAIA,iBAAY,EAAwB,CAAC;YAEtD,aAAQ,GAAG,IAAIA,iBAAY,EAAyB,CAAC;YACrD,YAAO,GAAG,IAAIA,iBAAY,EAAkB,CAAC;SAkBxD;;;;;QAhBC,iDAAU;;;;QAAV,UAAW,KAA4B;;gBAC/B,IAAI,GAAG,qBAAqB,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,gBAAgB,EAAE,EAAE,CAAC,CAAC;SACnE;;;;;QAED,+CAAQ;;;;QAAR,UAAS,IAA2B;YAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1B;;;;;;QAED,gDAAS;;;;;QAAT,UAAU,IAA2B,EAAE,SAAkB;YACvD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,MAAA,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;SACxC;;;;;QAED,qDAAc;;;;QAAd,UAAe,KAA2B;YACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B;;oBAnDFE,cAAS,SAAC;wBACT,QAAQ,EAAE,wBAAwB;wBAClC,QAAQ,EAAE,+0BAuBT;qBACF;;;+BAEES,UAAK;iCAELC,WAAM;iCACNA,WAAM;+BAENA,WAAM;8BACNA,WAAM;;QAkBT,mCAAC;KApDD,IAoDC;;;QAxBC,gDAA0C;;QAE1C,kDAA6D;;QAC7D,kDAAgE;;QAEhE,gDAA+D;;QAC/D,+CAAuD;;;;;;;AC7CzD;QAsCA;SA4DC;;;;QAjBQ,0BAAO;;;QAAd;YACE,OAAO;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,SAAS,EAAE;oBACTF,sCAAsB;oBACtBL,8BAAkB;oBAClB,iBAAiB;oBACjB,mBAAmB;oBACnB,kBAAkB;oBAClB,uBAAuB;oBACvB,wBAAwB;oBACxB,6BAA6B;oBAC7B,mBAAmB;oBACnB,eAAe;iBAChB;aACF,CAAC;SACH;;oBA3DFiB,aAAQ,SAAC;wBACR,OAAO,EAAE,CAACC,mBAAY,CAAC;wBACvB,YAAY,EAAE;4BACZ,yBAAyB;4BACzB,0BAA0B;4BAC1B,0BAA0B;4BAC1B,iCAAiC;4BACjC,mCAAmC;4BACnC,2BAA2B;4BAC3B,4BAA4B;4BAC5B,yBAAyB;4BACzB,4BAA4B;4BAC5B,8BAA8B;4BAC9B,qBAAqB;4BACrB,oCAAoC;4BACpC,2BAA2B;4BAC3B,0BAA0B;4BAC1B,mCAAmC;4BACnC,0BAA0B;4BAC1B,yCAAyC;4BACzC,gCAAgC;4BAChC,+BAA+B;yBAChC;wBACD,eAAe,EAAE;4BACf,8BAA8B;4BAC9B,mCAAmC;4BACnC,oCAAoC;4BACpC,yCAAyC;yBAC1C;wBACD,OAAO,EAAE;4BACP,8BAA8B;4BAC9B,qBAAqB;4BACrB,oCAAoC;4BACpC,2BAA2B;4BAC3B,0BAA0B;4BAC1B,mCAAmC;4BACnC,0BAA0B;4BAC1B,yCAAyC;4BACzC,gCAAgC;4BAChC,+BAA+B;yBAChC;qBACF;;QAmBD,yBAAC;KA5DD;;;;;;ACtCA;QAEA;SAIC;;;;;;;QAHC,8BAAM;;;;;;QAAN,UAAO,IAAU,EAAE,MAAc,EAAE,MAAc;YAC/C,OAAO1C,kBAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;SACzC;QACH,oBAAC;IAAD,CAAC;;;;;;;QCQD;YAmCY,kBAAa,GAAuB,IAAImB,iBAAY,CAAO,SAAS,CAAC,CAAC;YACtE,WAAM,GAAuB,IAAIA,iBAAY,CAAO,KAAK,CAAC,CAAC;YAC3D,qBAAgB,GAAuB,IAAIA,iBAAY,CAAO,SAAS,CAAC,CAAC;;YAGnF,YAAO,GAAQ,EAAE,CAAC;;YAElB,cAAS,GAAQ,EAAE,CAAC;;YAEpB,aAAQ,GAAQ,EAAE,CAAC;YAIT,UAAK,GAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC3C,kBAAa,GAAkB,IAAI,aAAa,EAAE,CAAC;SAqU9D;QAzTC,sBACI,gDAAU;;;;YADd;gBAEE,OAAO,IAAI,CAAC,WAAW,CAAC;aACzB;;;;;YAED,UAAe,KAAW;gBACxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;;;WAJA;;;;;;QAOD,2CAAQ;;;;;QAAR;;YAEE,IAAI,CAAC,QAAQ,GAAI,iBAAe,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAG,CAAC;YAEpE,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAChC,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;gBACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACnC;iBAAM,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBACxC,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;aAC9B;SACF;;;;;;;;;QAID,8CAAW;;;;;;;QAAX,UAAY,OAAsB;YAChC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACtD;;;;;;;;;QAID,8DAA2B;;;;;;;QAA3B,UAA4B,UAAe;YACzC,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;;oBACnC,aAAa,GAAG,UAAU,CAAC,aAAa;gBAC9C,IACE,aAAa;oBACb,aAAa,YAAY,IAAI;oBAC7B,aAAa,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,EAC7D;oBACA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAC7C;aACF;SACF;;;;;;QAED,oDAAiB;;;;;QAAjB,UAAkB,OAAiB,EAAE,IAAY;YAC/C,IAAI,IAAI,KAAK,KAAK,EAAE;gBAClB,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;aAClC;YAED,IAAI,IAAI,KAAK,OAAO,EAAE;gBACpB,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;aACpC;YAED,IAAI,IAAI,KAAK,MAAM,EAAE;gBACnB,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;aACnC;SACF;;;;;;QAED,0CAAO;;;;;QAAP,UAAQ,KAAW,EAAE,KAAW;YAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE;gBAC9C,OAAO,SAAS,CAAC;aAClB;YAED,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC3D,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aAC7C;YAED,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC/D,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aAC/C;YAED,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC7D,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aAC9C;YAED,OAAO,KAAK,CAAC,CAAC;SACf;;;;;;QAED,wDAAqB;;;;;QAArB,UAAsB,OAAiB,EAAE,IAAY;YACnD,IAAI,IAAI,KAAK,KAAK,EAAE;gBAClB,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC;aACtC;YAED,IAAI,IAAI,KAAK,OAAO,EAAE;gBACpB,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC;aACxC;YAED,IAAI,IAAI,KAAK,MAAM,EAAE;gBACnB,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC;aACvC;SACF;;;;QAED,8CAAW;;;QAAX;YACE,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC/D,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC9B;YAED,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,IAAI,IAAI,CAAC,uBAAuB,EAAE;gBACnE,IAAI,CAAC,uBAAuB,EAAE,CAAC;aAChC;YAED,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBACjE,IAAI,CAAC,sBAAsB,EAAE,CAAC;aAC/B;SACF;;;;;;QAED,6CAAU;;;;;QAAV,UAAW,IAAU,EAAE,MAAc;YACnC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7D;;;;;;;QAGD,2CAAQ;;;;;QAAR,UAAS,UAAe;YACtB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBACxD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC;gBAEnC,OAAO,IAAI,CAAC;aACb;YAED,OAAO,KAAK,CAAC;SACd;;;;;;;;QAGD,mDAAgB;;;;;;QAAhB,UAAiB,IAAU,EAAE,MAAc;;;gBAEnC,UAAU,GAAQ,EAAE;YAC1B,UAAU,CAAC,IAAI,GAAG,IAAI,IAAI,CACxB,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,OAAO,EAAE,CACf,CAAC;YACF,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACpD,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACjD,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAClE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC5C,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;YAC1D,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAErE,OAAO,UAAU,CAAC;SACnB;;;;;;;;QAGD,wCAAK;;;;;;QAAL,UAAM,GAAU,EAAE,IAAY;;;gBAEtB,MAAM,GAAU,EAAE;YACxB,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;aAClC;YAED,OAAO,MAAM,CAAC;SACf;;;;;;;;;;;;;;;;;QAQD,8CAAW;;;;;;;;;;;QAAX,UAAY,IAAU;;gBACd,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;YAE7B,OAAO,IAAI,IAAI,CACb,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,OAAO,EAAE,EACd,KAAK,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAC7B,CAAC;SACH;;;;;;QAED,yCAAM;;;;;QAAN,UAAO,IAAU,EAAE,QAAe;YAAf,yBAAA,EAAA,eAAe;YAChC,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,EAAE;gBACxC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;oBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBACjD;gBAED,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CACxB,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,OAAO,EAAE,CACf,CAAC;gBACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACpD,IAAI,QAAQ,EAAE;oBACZ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAC1C;aACF;iBAAM;gBACL,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CACxB,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,OAAO,EAAE,CACf,CAAC;gBACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACpD,IAAI,QAAQ,EAAE;oBACZ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAC5C,CAAC;iBACH;aACF;YAED,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;;;;;QAED,uCAAI;;;;QAAJ,UAAK,SAAiB;;;gBAEhB,YAAiB;YACrB,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE;gBACjC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;aAC7B;YAED,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE;gBACnC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;aAC/B;YAED,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,EAAE;gBAClC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;aAC9B;YAED,IAAI,YAAY,EAAE;;oBACV,IAAI,GACR,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,SAAS,IAAI,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC;;oBACjE,KAAK,GACT,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,SAAS,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;gBACrE,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAE3C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC7C;SACF;;;;;QAED,6CAAU;;;;QAAV,UAAW,UAAkB;;gBACrB,SAAS,GAAG,UAAU,IAAI,CAAC;YAEjC,IACE,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,IAAI,SAAS,KAAK,CAAC;iBACvD,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,EAC1D;gBACA,OAAO;aACR;YAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,SAAS,CACpD,CAAC;YACF,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;;;;;;QAES,wDAAqB;;;;;QAA/B,UAAgC,IAAU;YAA1C,iBAkBC;YAjBC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACrB,OAAO,EAAE,CAAC;aACX;;;gBAEK,iBAAiB,GAKnB,IAAI,CAAC,WAAW,CAAC,IAAI;;;;YAAC,UAAC,WAAgB;gBACzC,QACE,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE;oBAC7C,WAAW,CAAC,IAAI,KAAK,KAAI,CAAC,cAAc,EACxC;aACH,GAAE,IAAI,CAAC;YAER,OAAO,iBAAiB,KAAK,SAAS,GAAG,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC;SACvE;;;;;;;QAES,sDAAmB;;;;;;QAA7B,UACE,aAA2C,EAC3C,KAAW;YAEX,IAAI,aAAa,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE;gBACtD,OAAO,SAAS,CAAC;aAClB;YAED,IAAI,aAAa,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1D,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aAC1D;YAED,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC9D,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aAC5D;YAED,IAAI,aAAa,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC5D,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aAC3D;YAED,OAAO,SAAS,CAAC;SAClB;;;;;;QAES,6CAAU;;;;;QAApB,UAAqB,IAAU;YAA/B,iBAuBC;;gBAtBK,cAAc,GAAG,KAAK;YAC1B,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,YAAY,CAAC,OAAO;;;;gBACvB,UAAC,YAA0C;oBACzC,IAAI,KAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;wBACtD,cAAc,GAAG,IAAI,CAAC;qBACvB;iBACF,EACF,CAAC;aACH;YAED,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,cAAc;oBACZ,cAAc;wBACd,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;aAChD;YAED,QACE,cAAc;iBACb,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;iBACrD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EACtD;SACH;;oBArXFE,cAAS,SAAC;wBACT,QAAQ,EAAE,kBAAkB;wBAC5B,QAAQ,EAAE,wNAKT;qBACF;;;6BAEES,UAAK;qCACLA,UAAK;kCACLA,UAAK;gCACLA,UAAK;8BAELA,UAAK;8BACLA,UAAK;8BACLA,UAAK;8BACLA,UAAK;gCACLA,UAAK;gCACLA,UAAK;kCACLA,UAAK;iCACLA,UAAK;sCACLA,UAAK;qCACLA,UAAK;uCACLA,UAAK;uCACLA,UAAK;0CACLA,UAAK;kCACLA,UAAK;oCACLA,UAAK;mCACLA,UAAK;mCACLA,UAAK;kCACLA,UAAK;+BACLA,UAAK;oCAELC,WAAM;6BACNA,WAAM;uCACNA,WAAM;iCAwBND,UAAK;;QAyTR,+BAAC;KAtXD,IAsXC;;;QA5WC,0CAAwB;;QACxB,kDAAgC;;QAChC,+CAA6B;;QAC7B,6CAA2B;;QAE3B,2CAAuB;;QACvB,2CAAuB;;QACvB,2CAAyB;;QACzB,2CAAyB;;QACzB,6CAA4B;;QAC5B,6CAA2B;;QAC3B,+CAA6B;;QAC7B,8CAA4B;;QAC5B,mDAAiC;;QACjC,kDAAgC;;QAChC,oDAAkC;;QAClC,oDAAmC;;QACnC,uDAAsC;;QACtC,+CAAoE;;QACpE,iDAA+B;;QAC/B,gDAA8B;;QAC9B,gDAAsD;;QACtD,+CAA+B;;QAC/B,4CAAwB;;QAExB,iDAAgF;;QAChF,0CAAqE;;QACrE,oDAAmF;;QAGnF,2CAAkB;;QAElB,6CAAoB;;QAEpB,4CAAmB;;QAEnB,4CAAiB;;;;;QAEjB,yCAAqD;;;;;QACrD,iDAA6D;;;;;QAC7D,+CAA4B;;;;;QAC5B,gDAA6B;;;;;QAC7B,gDAA+B;;;;;QAE/B,yDAA0C;;;;;QAC1C,qDAAsC;;;;;QACtC,2DAA4C;;;;;QAC5C,uDAAwC;;;;;QACxC,0DAA2C;;;;;QAC3C,sDAAuC;;;;;;;ACzEzC;QAEA;YAEE,WAAM,GAAG,IAAI,CAAC;YACd,mBAAc,GAAG,KAAK,CAAC;YACvB,gBAAW,GAAG,CAAC,CAAC;YAChB,cAAS,GAAG,EAAE,CAAC;YACf,YAAO,GAAG,KAAK,CAAC;YAChB,YAAO,GAAG,MAAM,CAAC;YACjB,cAAS,GAAG,IAAI,CAAC;YACjB,cAAS,GAAG,IAAI,CAAC;YACjB,gBAAW,GAAG,MAAM,CAAC;YACrB,eAAU,GAAG,MAAM,CAAC;YACpB,oBAAe,GAAG,IAAI,CAAC;YACvB,mBAAc,GAAG,WAAW,CAAC;YAC7B,qBAAgB,GAAG,MAAM,CAAC;YAC1B,qBAAgB,GAAG,KAAK,CAAC;YACzB,kBAAa,GAAG,CAAC,CAAC;YAClB,iBAAY,GAAG,CAAC,CAAC;YACjB,wBAAmB,GAAG,KAAK,CAAC;SAC7B;;oBAnBA/C,eAAU;;QAmBX,uBAAC;KAnBD,IAmBC;;;QAjBC,kCAAc;;QACd,0CAAuB;;QACvB,uCAAgB;;QAChB,qCAAe;;QACf,mCAAgB;;QAChB,mCAAiB;;QACjB,qCAAiB;;QACjB,qCAAiB;;QACjB,uCAAqB;;QACrB,sCAAoB;;QACpB,2CAAuB;;QACvB,0CAA6B;;QAC7B,4CAA0B;;QAC1B,4CAAyB;;QACzB,yCAAkB;;QAClB,wCAAiB;;QACjB,+CAA4B;;;;;;;ICpB9B;AAaA,QAAa,iCAAiC,GAAa;QACzD,OAAO,EAAEiD,uBAAiB;;QAE1B,WAAW,EAAEC,eAAU;;;QAAC,cAAM,OAAA,mBAAmB,GAAA,EAAC;QAClD,KAAK,EAAE,IAAI;KACZ;;AAGD;QAoHE,6BAAY,MAAwB;;;;YA5E3B,mBAAc,GAAG,KAAK,CAAC;;;;YAYvB,cAAS,GAAG,IAAI,CAAC;YA2C1B,kBAAa,GAAuB,IAAId,iBAAY,CAAO,SAAS,CAAC,CAAC;;;;YAItE,qBAAgB,GAAuB,IAAIA,iBAAY,CACrD,SAAS,CACV,CAAC;;YAMF,aAAQ,GAAQ,QAAQ,CAAC,SAAS,CAAC;;YAEnC,cAAS,GAAQ,QAAQ,CAAC,SAAS,CAAC;YAI1B,SAAI,GAAS,IAAI,IAAI,EAAE,CAAC;YAIhC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QAlCD,sBACI,2CAAU;;;;;;YADd;gBAEE,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC;aACtC;;;;;YAED,UAAe,KAAW;gBACxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;;;WAJA;;;;QAiCD,8CAAgB;;;QAAhB;YACE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;;;;;QAED,sCAAQ;;;;QAAR,UAAS,KAAW;YAClB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtB;;;;;QAED,6CAAe;;;;QAAf,UAAgB,KAAW;YACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChC;;;;;QAED,gDAAkB;;;;QAAlB,UAAmB,KAAW;YAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC;;;;;;;;;QAGD,wCAAU;;;;;;;QAAV,UAAW,KAAU;YACnB,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;gBAC3D,OAAO;aACR;YACD,IAAI,KAAK,IAAI,KAAK,YAAY,IAAI,EAAE;gBAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAEtC,OAAO;aACR;YAED,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;SACpD;;;;;QAED,8CAAgB;;;;QAAhB,UAAiB,EAAc;YAC7B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;;;;;QAED,+CAAiB;;;;QAAjB,UAAkB,EAAc;YAC9B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACrB;;oBA/JFE,cAAS,SAAC;wBACT,QAAQ,EAAE,YAAY;wBACtB,QAAQ,EAAE,knDAgCP;wBACH,SAAS,EAAE,CAAC,iCAAiC,CAAC;qBAC/C;;;;oBA9CQ,gBAAgB;;;qCAkDtBS,UAAK;+BAELA,UAAK;8BAELA,UAAK;8BAELA,UAAK;8BAELA,UAAK;8BAELA,UAAK;gCAELA,UAAK;gCAELA,UAAK;kCAELA,UAAK;iCAELA,UAAK;sCAELA,UAAK;qCAELA,UAAK;uCAELA,UAAK;kCAELA,UAAK;gCAELA,UAAK;uCAELA,UAAK;0CAELA,UAAK;oCAELA,UAAK;mCAELA,UAAK;kCAELA,UAAK;mCAELA,UAAK;kCAELA,UAAK;iCAGLA,UAAK;oCASLC,WAAM;uCAINA,WAAM;kCAKNY,cAAS,SAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;QAyDvD,0BAAC;KAhKD,IAgKC;;;;;;QAxHC,6CAAgC;;;;;QAEhC,uCAAwB;;;;;QAExB,sCAAuB;;;;;QAEvB,sCAAuB;;;;;QAEvB,sCAAyB;;;;;QAEzB,sCAAyB;;;;;QAEzB,wCAA0B;;;;;QAE1B,wCAA2B;;;;;QAE3B,0CAA6B;;;;;QAE7B,yCAA4B;;;;;QAE5B,8CAAiC;;;;;QAEjC,6CAAgC;;;;;QAEhC,+CAAkC;;;;;QAElC,0CAA6B;;;;;QAE7B,wCAA2B;;;;;QAE3B,+CAAmC;;;;;QAEnC,kDAAsC;;;;;QAEtC,4CAA+B;;;;;QAE/B,2CAA8B;;;;;QAE9B,0CAAoE;;;;;QAEpE,2CAAsD;;;;;QAEtD,0CAA+B;;QAY/B,4CACsE;;;;;QAGtE,+CAGE;;QAEF,0CACsC;;QAGtC,uCAAmC;;QAEnC,wCAAoC;;QAEpC,qCAAyB;;;;;QAEzB,mCAAkC;;;;;QAClC,0CAA4B;;;;;;;;QCzC5B,4BAAY,UAAoC;YANhD,WAAM,GAAU,EAAE,CAAC;YAEnB,SAAI,GAAU,EAAE,CAAC;YACjB,gBAAW,GAAa,EAAE,CAAC;YAIzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC9B;QAED,sBAAI,qCAAK;;;;YAAT;gBACE,OAAO,CAACC,WAAK,EAAE,CAAC;aACjB;;;WAAA;;;;;;;;;;;;QAMD,qCAAQ;;;;;;;QAAR;;gBACQ,IAAI,GAAG,IAAI;YAEjB,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAExC,IAAI,CAAC,UAAU,CAAC,qBAAqB;;;YAAC;;oBAC9B,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;;oBACpC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;;oBAClC,eAAe,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;;oBAC1C,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE;;oBACxD,6BAA6B,GACjC,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,UAAU;;oBACzC,SAAS,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;gBAErD,IAAI,6BAA6B,GAAG,CAAC,EAAE;oBACrC,SAAS,CAAC,OAAO,CAAC,CAAC,6BAA6B,GAAG,CAAC,CAAC,CAAC;iBACvD;;;oBAGK,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;;oBAC5C,IAAI,GAAU,EAAE;gBACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;;wBACrB,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnE,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC;oBACtD,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC1C,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;iBACvB;gBAED,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC1B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACpB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CACnC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EACZ,IAAI,CAAC,eAAe,CACrB,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;iBAC7D;gBAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBACnE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAEhC,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;;wBAChB,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC;;wBAC9C,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;oBACjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE;wBACnD,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAClE,CAAC;qBACH;iBACF;aACF,GAAE,KAAK,CAAC,CAAC;YAEV,IAAI,CAAC,UAAU,CAAC,iBAAiB;;;;;YAAC,UAChC,KAAW,EACX,KAAW;;oBAEL,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;;oBACrE,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC3E,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;aACpC,GAAE,KAAK,CAAC,CAAC;YAEV,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;SAC/B;;;;;;;QAES,qCAAQ;;;;;;QAAlB,UAAmB,SAAe,EAAE,CAAS;;gBACrC,KAAK,GAAW,IAAI,KAAK,CAAC,CAAC,CAAC;;gBAC9B,OAAO,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;;gBACvC,CAAC,GAAG,CAAC;;gBACL,IAAU;YACd,OAAO,CAAC,GAAG,CAAC,EAAE;gBACZ,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACzC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;gBAClB,OAAO,GAAG,IAAI,IAAI,CAChB,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CACnB,CAAC;aACH;YACD,OAAO,KAAK,CAAC;SACd;;;;;;QAES,iDAAoB;;;;;QAA9B,UAA+B,IAAU;;gBACjC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;YAE1C,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;;gBACjE,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE;;YAEhC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,QACE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EACvE;SACH;;oBAlMFvB,cAAS,SAAC;wBACT,QAAQ,EAAE,WAAW;wBACrB,QAAQ,EAAE,mpGAiET;iCAEC,sMASD;qBAEF;;;;oBAlFQ,wBAAwB;;QAuMjC,yBAAC;KArMD,IAqMC;;;QAnHC,oCAAmB;;QACnB,mCAAc;;QACd,kCAAiB;;QACjB,yCAA2B;;QAC3B,wCAAqC;;;;;;;;QCjCrC,8BAAY,UAAoC;YAJhD,SAAI,GAAU,EAAE,CAAC;YAKf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC9B;QAED,sBAAI,uCAAK;;;;YAAT;gBACE,OAAO,CAACuB,WAAK,EAAE,CAAC;aACjB;;;WAAA;;;;QAED,uCAAQ;;;QAAR;;gBACQ,IAAI,GAAG,IAAI;YAEjB,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAEzC,IAAI,CAAC,UAAU,CAAC,qBAAqB;;;YAAC;;oBAC9B,MAAM,GAAU,IAAI,KAAK,CAAC,EAAE,CAAC;;oBAC7B,IAAI,GAAW,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;;oBAC9C,IAAU;gBAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;oBAC3B,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC5B,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC9B,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1D,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;iBACzC;gBAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACrE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;aAC/D,GAAE,OAAO,CAAC,CAAC;YAEZ,IAAI,CAAC,UAAU,CAAC,iBAAiB;;;;;YAAC,UAChC,KAAW,EACX,KAAW;;oBAEL,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;;oBACpD,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC1D,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;aACpC,GAAE,OAAO,CAAC,CAAC;YAEZ,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;SAC/B;;oBA3FFvB,cAAS,SAAC;wBACT,QAAQ,EAAE,aAAa;wBACvB,QAAQ,EAAE,20DAmCT;iCAEC,iFAID;qBAEF;;;;oBA/CQ,wBAAwB;;QAgGjC,2BAAC;KA9FD,IA8FC;;;QA/CC,qCAAc;;QACd,oCAAiB;;QACjB,0CAAqC;;QACrC,uCAAgB;;;;;;;;QCEhB,6BAAY,UAAoC;YAFhD,SAAI,GAAU,EAAE,CAAC;YAGf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC9B;QAED,sBAAI,sCAAK;;;;YAAT;gBACE,OAAO,CAACuB,WAAK,EAAE,CAAC;aACjB;;;WAAA;;;;QAED,sCAAQ;;;QAAR;;gBACQ,IAAI,GAAG,IAAI;YAEjB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAEhE,IAAI,CAAC,UAAU,CAAC,qBAAqB;;;YAAC;;oBAC9B,KAAK,GAAU,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;;oBAC1C,IAAU;;oBACR,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;gBAEjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;oBACvC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC9B,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBACxD,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;iBACxC;gBAED,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CACjE,KAAK,CACN,CAAC;gBACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;aAC7D,GAAE,MAAM,CAAC,CAAC;YAEX,IAAI,CAAC,UAAU,CAAC,iBAAiB;;;;;YAAC,UAChC,KAAW,EACX,KAAW;gBAEX,OAAO,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;aAClD,GAAE,MAAM,CAAC,CAAC;YAEX,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;SAC/B;;;;;;QAES,6CAAe;;;;;QAAzB,UAA0B,IAAY;;YAEpC,QACE,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,EACtE;SACH;;oBAlGFvB,cAAS,SAAC;wBACT,QAAQ,EAAE,YAAY;wBACtB,QAAQ,EAAE,w1DAoCT;iCAEC,iFAID;qBAEF;;;;oBAhDQ,wBAAwB;;QAqGjC,0BAAC;KAnGD,IAmGC;;;QAnDC,yCAAqC;;QACrC,oCAAc;;QACd,mCAAiB;;;;;;;ACzDnB;QAWA;SAsBC;;;;QAHQ,wBAAO;;;QAAd;YACE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;SACtE;;oBArBFoB,aAAQ,SAAC;wBACR,OAAO,EAAE,CAACC,mBAAY,EAAEG,iBAAW,CAAC;wBACpC,YAAY,EAAE;4BACZ,mBAAmB;4BACnB,wBAAwB;4BACxB,kBAAkB;4BAClB,oBAAoB;4BACpB,mBAAmB;yBACpB;wBACD,OAAO,EAAE;4BACP,mBAAmB;4BACnB,wBAAwB;4BACxB,kBAAkB;4BAClB,oBAAoB;4BACpB,mBAAmB;yBACpB;wBACD,eAAe,EAAE,CAAC,mBAAmB,CAAC;qBACvC;;QAKD,uBAAC;KAtBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
1
|
+
{"version":3,"file":"ngx-bootstrap-datepicker.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://ngx-bootstrap/datepicker/bs-datepicker.config.ts","ng://ngx-bootstrap/datepicker/base/bs-datepicker-container.ts","ng://ngx-bootstrap/datepicker/reducer/bs-datepicker.actions.ts","ng://ngx-bootstrap/datepicker/bs-locale.service.ts","ng://ngx-bootstrap/datepicker/reducer/bs-datepicker.effects.ts","ng://ngx-bootstrap/datepicker/reducer/_defaults.ts","ng://ngx-bootstrap/datepicker/reducer/bs-datepicker.state.ts","ng://ngx-bootstrap/datepicker/utils/bs-calendar-utils.ts","ng://ngx-bootstrap/datepicker/utils/matrix-utils.ts","ng://ngx-bootstrap/datepicker/engine/calc-days-calendar.ts","ng://ngx-bootstrap/datepicker/engine/format-days-calendar.ts","ng://ngx-bootstrap/datepicker/engine/flag-days-calendar.ts","ng://ngx-bootstrap/datepicker/engine/view-mode.ts","ng://ngx-bootstrap/datepicker/engine/format-months-calendar.ts","ng://ngx-bootstrap/datepicker/engine/flag-months-calendar.ts","ng://ngx-bootstrap/datepicker/engine/format-years-calendar.ts","ng://ngx-bootstrap/datepicker/engine/flag-years-calendar.ts","ng://ngx-bootstrap/datepicker/reducer/bs-datepicker.reducer.ts","ng://ngx-bootstrap/datepicker/reducer/bs-datepicker.store.ts","ng://ngx-bootstrap/datepicker/datepicker-animations.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-datepicker-container.component.ts","ng://ngx-bootstrap/datepicker/bs-datepicker.component.ts","ng://ngx-bootstrap/datepicker/bs-datepicker-inline.config.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-datepicker-inline-container.component.ts","ng://ngx-bootstrap/datepicker/bs-datepicker-inline.component.ts","ng://ngx-bootstrap/datepicker/bs-daterangepicker-inline.config.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-daterangepicker-container.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-daterangepicker-inline-container.component.ts","ng://ngx-bootstrap/datepicker/bs-daterangepicker-inline.component.ts","ng://ngx-bootstrap/datepicker/bs-datepicker-input.directive.ts","ng://ngx-bootstrap/datepicker/bs-daterangepicker.config.ts","ng://ngx-bootstrap/datepicker/bs-daterangepicker.component.ts","ng://ngx-bootstrap/datepicker/bs-daterangepicker-input.directive.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-calendar-layout.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-current-date-view.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-custom-dates-view.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-datepicker-day-decorator.directive.ts","ng://ngx-bootstrap/datepicker/models/index.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-datepicker-navigation-view.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-days-calendar-view.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-months-calendar-view.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-timepicker-view.component.ts","ng://ngx-bootstrap/datepicker/themes/bs/bs-years-calendar-view.component.ts","ng://ngx-bootstrap/datepicker/bs-datepicker.module.ts","ng://ngx-bootstrap/datepicker/date-formatter.ts","ng://ngx-bootstrap/datepicker/datepicker-inner.component.ts","ng://ngx-bootstrap/datepicker/datepicker.config.ts","ng://ngx-bootstrap/datepicker/datepicker.component.ts","ng://ngx-bootstrap/datepicker/daypicker.component.ts","ng://ngx-bootstrap/datepicker/monthpicker.component.ts","ng://ngx-bootstrap/datepicker/yearpicker.component.ts","ng://ngx-bootstrap/datepicker/datepicker.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar 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\r\nexport function __extends(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\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(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\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Injectable } from '@angular/core';\nimport {\n DatepickerRenderOptions,\n BsDatepickerViewMode,\n DatepickerDateCustomClasses\n} from './models';\nimport { BsCustomDates } from './themes/bs/bs-custom-dates-view.component';\n\n\n/**\n * For date range picker there are `BsDaterangepickerConfig` which inherits all properties,\n * except `displayMonths`, for range picker it default to `2`\n */\n@Injectable()\nexport class BsDatepickerConfig implements DatepickerRenderOptions {\n /** sets use adaptive position */\n adaptivePosition = false;\n /** sets use UTC date time format */\n useUtc = false;\n /** turn on/off animation */\n isAnimated = false;\n value?: Date | Date[];\n isDisabled?: boolean;\n /**\n * Default min date for all date/range pickers\n */\n minDate?: Date;\n /**\n * Default max date for all date/range pickers\n */\n maxDate?: Date;\n /**\n * Default date custom classes for all date/range pickers\n */\n dateCustomClasses: DatepickerDateCustomClasses[];\n /**\n * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays\n */\n daysDisabled?: number[];\n /**\n * Disable specific dates\n */\n datesDisabled?: Date[];\n /**\n * Show one months for special cases (only for dateRangePicker)\n * 1. maxDate is equal to today's date\n * 2. minDate's month is equal to maxDate's month\n */\n displayOneMonthRange?: boolean;\n /**\n * Enable specific dates\n */\n datesEnabled?: Date[];\n /**\n * Makes dates from other months active\n */\n selectFromOtherMonth?: boolean;\n\n /**\n * Allows select first date of the week by click on week number\n */\n selectWeek?: boolean;\n\n /**\n * Allows select daterange as first and last day of week by click on week number (dateRangePicker only)\n */\n selectWeekDateRange?: boolean;\n\n /**\n * Shows previous and current month, instead of current and next (dateRangePicker only)\n */\n showPreviousMonth?: boolean;\n\n /**\n * Add class to current day\n */\n customTodayClass?: string;\n\n /**\n * Default mode for all date pickers\n */\n minMode?: BsDatepickerViewMode;\n\n /**\n * If true, returns focus to the datepicker / daterangepicker input after date selection\n */\n returnFocusToInput = false;\n\n /** CSS class which will be applied to datepicker container,\n * usually used to set color theme\n */\n containerClass = 'theme-green';\n\n // DatepickerRenderOptions\n displayMonths = 1;\n /**\n * Allows to hide week numbers in datepicker\n */\n showWeekNumbers = true;\n\n dateInputFormat = 'L';\n // range picker\n rangeSeparator = ' - ';\n /**\n * Date format for date range input field\n */\n rangeInputFormat = 'L';\n\n /**\n * Predefined ranges\n */\n ranges?: BsCustomDates[];\n\n // DatepickerFormatOptions\n monthTitle = 'MMMM';\n yearTitle = 'YYYY';\n dayLabel = 'D';\n monthLabel = 'MMMM';\n yearLabel = 'YYYY';\n weekNumbers = 'w';\n}\n","// datepicker container component\n/* tslint:disable:no-empty */\nimport { BsCustomDates } from '../themes/bs/bs-custom-dates-view.component';\nimport { BsDatepickerEffects } from '../reducer/bs-datepicker.effects';\nimport { Observable } from 'rxjs';\nimport {\n BsDatepickerViewMode,\n BsNavigationEvent,\n CalendarCellViewModel,\n CellHoverEvent,\n DatepickerRenderOptions,\n DatepickerDateCustomClasses,\n DaysCalendarViewModel,\n DayViewModel,\n MonthsCalendarViewModel,\n WeekViewModel,\n YearsCalendarViewModel\n} from '../models';\n\nexport abstract class BsDatepickerAbstractComponent {\n containerClass: string;\n isOtherMonthsActive: boolean;\n\n _effects: BsDatepickerEffects;\n customRanges: BsCustomDates[] = [];\n chosenRange: Date[] = [];\n\n set minDate(value: Date) {\n this._effects.setMinDate(value);\n }\n\n set maxDate(value: Date) {\n this._effects.setMaxDate(value);\n }\n set daysDisabled(value: number[]) {\n this._effects.setDaysDisabled(value);\n }\n set datesDisabled(value: Date[]) {\n this._effects.setDatesDisabled(value);\n }\n\n set datesEnabled(value: Date[]) {\n this._effects.setDatesEnabled(value);\n }\n\n set isDisabled(value: boolean) {\n this._effects.setDisabled(value);\n }\n\n set dateCustomClasses(value: DatepickerDateCustomClasses[]) {\n this._effects.setDateCustomClasses(value);\n }\n\n viewMode: Observable<BsDatepickerViewMode>;\n daysCalendar: Observable<DaysCalendarViewModel[]>;\n monthsCalendar: Observable<MonthsCalendarViewModel[]>;\n yearsCalendar: Observable<YearsCalendarViewModel[]>;\n options: Observable<DatepickerRenderOptions>;\n\n setViewMode(event: BsDatepickerViewMode): void {}\n\n navigateTo(event: BsNavigationEvent): void {}\n\n dayHoverHandler(event: CellHoverEvent): void {}\n\n weekHoverHandler(event: WeekViewModel): void {}\n\n monthHoverHandler(event: CellHoverEvent): void {}\n\n yearHoverHandler(event: CellHoverEvent): void {}\n\n daySelectHandler(day: DayViewModel): void {}\n\n monthSelectHandler(event: CalendarCellViewModel): void {}\n\n yearSelectHandler(event: CalendarCellViewModel): void {}\n\n setRangeOnCalendar(dates: BsCustomDates): void {}\n\n /* tslint:disable-next-line: no-any */\n _stopPropagation(event: any): void {\n event.stopPropagation();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TimeUnit } from 'ngx-bootstrap/chronos';\nimport { Action } from 'ngx-bootstrap/mini-ngrx';\nimport {\n BsDatepickerViewMode,\n BsViewNavigationEvent,\n CellHoverEvent,\n DatepickerRenderOptions,\n DatepickerDateCustomClasses\n} from '../models';\n\n@Injectable()\nexport class BsDatepickerActions {\n static readonly CALCULATE = '[datepicker] calculate dates matrix';\n static readonly FORMAT = '[datepicker] format datepicker values';\n static readonly FLAG = '[datepicker] set flags';\n static readonly SELECT = '[datepicker] select date';\n static readonly NAVIGATE_OFFSET = '[datepicker] shift view date';\n static readonly NAVIGATE_TO = '[datepicker] change view date';\n static readonly SET_OPTIONS = '[datepicker] update render options';\n static readonly HOVER = '[datepicker] hover date';\n static readonly CHANGE_VIEWMODE = '[datepicker] switch view mode';\n\n static readonly SET_MIN_DATE = '[datepicker] set min date';\n static readonly SET_MAX_DATE = '[datepicker] set max date';\n static readonly SET_DAYSDISABLED = '[datepicker] set days disabled';\n static readonly SET_DATESDISABLED = '[datepicker] set dates disabled';\n static readonly SET_DATESENABLED = '[datepicker] set dates enabled';\n static readonly SET_IS_DISABLED = '[datepicker] set is disabled';\n static readonly SET_DATE_CUSTOM_CLASSES = '[datepicker] set date custom classes';\n\n static readonly SET_LOCALE = '[datepicker] set datepicker locale';\n\n static readonly SELECT_RANGE = '[daterangepicker] select dates range';\n\n calculate(): Action {\n return { type: BsDatepickerActions.CALCULATE };\n }\n\n format(): Action {\n return { type: BsDatepickerActions.FORMAT };\n }\n\n flag(): Action {\n return { type: BsDatepickerActions.FLAG };\n }\n\n select(date: Date): Action {\n return {\n type: BsDatepickerActions.SELECT,\n payload: date\n };\n }\n\n changeViewMode(event: BsDatepickerViewMode): Action {\n return {\n type: BsDatepickerActions.CHANGE_VIEWMODE,\n payload: event\n };\n }\n\n navigateTo(event: BsViewNavigationEvent): Action {\n return {\n type: BsDatepickerActions.NAVIGATE_TO,\n payload: event\n };\n }\n\n navigateStep(step: TimeUnit): Action {\n return {\n type: BsDatepickerActions.NAVIGATE_OFFSET,\n payload: step\n };\n }\n\n setOptions(options: DatepickerRenderOptions): Action {\n return {\n type: BsDatepickerActions.SET_OPTIONS,\n payload: options\n };\n }\n\n // date range picker\n selectRange(value: Date[]): Action {\n return {\n type: BsDatepickerActions.SELECT_RANGE,\n payload: value\n };\n }\n\n hoverDay(event: CellHoverEvent): Action {\n return {\n type: BsDatepickerActions.HOVER,\n payload: event.isHovered ? event.cell.date : null\n };\n }\n\n minDate(date: Date): Action {\n return {\n type: BsDatepickerActions.SET_MIN_DATE,\n payload: date\n };\n }\n\n maxDate(date: Date): Action {\n return {\n type: BsDatepickerActions.SET_MAX_DATE,\n payload: date\n };\n }\n\n daysDisabled(days: number[]): Action {\n return {\n type: BsDatepickerActions.SET_DAYSDISABLED,\n payload: days\n };\n }\n\n datesDisabled(dates: Date[]): Action {\n return {\n type: BsDatepickerActions.SET_DATESDISABLED,\n payload: dates\n };\n }\n\n datesEnabled(dates: Date[]): Action {\n return {\n type: BsDatepickerActions.SET_DATESENABLED,\n payload: dates\n };\n }\n\n isDisabled(value: boolean): Action {\n return {\n type: BsDatepickerActions.SET_IS_DISABLED,\n payload: value\n };\n }\n\n setDateCustomClasses(value: DatepickerDateCustomClasses[]): Action {\n return {\n type: BsDatepickerActions.SET_DATE_CUSTOM_CLASSES,\n payload: value\n };\n }\n\n setLocale(locale: string): Action {\n return {\n type: BsDatepickerActions.SET_LOCALE,\n payload: locale\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class BsLocaleService {\n private _defaultLocale = 'en';\n private _locale = new BehaviorSubject<string>(this._defaultLocale);\n private _localeChange: Observable<string> = this._locale.asObservable();\n\n get locale(): BehaviorSubject<string> {\n return this._locale;\n }\n\n get localeChange(): Observable<string> {\n return this._localeChange;\n }\n\n get currentLocale(): string {\n return this._locale.getValue();\n }\n\n use(locale: string): void {\n if (locale === this.currentLocale) {\n return;\n }\n\n this._locale.next(locale);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, Subscription } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\nimport { getFullYear, getMonth } from 'ngx-bootstrap/chronos';\n\nimport { BsDatepickerAbstractComponent } from '../base/bs-datepicker-container';\nimport { BsDatepickerActions } from './bs-datepicker.actions';\nimport { BsDatepickerConfig } from '../bs-datepicker.config';\nimport { BsDatepickerStore } from './bs-datepicker.store';\nimport { BsLocaleService } from '../bs-locale.service';\n\nimport {\n BsDatepickerViewMode,\n BsNavigationEvent,\n CalendarCellViewModel,\n CellHoverEvent,\n DatepickerRenderOptions,\n DatepickerDateCustomClasses,\n DaysCalendarViewModel,\n DayViewModel,\n MonthsCalendarViewModel,\n YearsCalendarViewModel\n} from '../models';\n\n\n@Injectable()\nexport class BsDatepickerEffects {\n viewMode: Observable<BsDatepickerViewMode>;\n daysCalendar: Observable<DaysCalendarViewModel[]>;\n monthsCalendar: Observable<MonthsCalendarViewModel[]>;\n yearsCalendar: Observable<YearsCalendarViewModel[]>;\n options: Observable<DatepickerRenderOptions>;\n\n private _store: BsDatepickerStore;\n private _subs: Subscription[] = [];\n\n constructor(private _actions: BsDatepickerActions,\n private _localeService: BsLocaleService) {}\n\n init(_bsDatepickerStore: BsDatepickerStore): BsDatepickerEffects {\n this._store = _bsDatepickerStore;\n\n return this;\n }\n\n /** setters */\n\n setValue(value: Date): void {\n this._store.dispatch(this._actions.select(value));\n }\n\n setRangeValue(value: Date[]): void {\n this._store.dispatch(this._actions.selectRange(value));\n }\n\n setMinDate(value: Date): BsDatepickerEffects {\n this._store.dispatch(this._actions.minDate(value));\n\n return this;\n }\n\n setMaxDate(value: Date): BsDatepickerEffects {\n this._store.dispatch(this._actions.maxDate(value));\n\n return this;\n }\n\n setDaysDisabled(value: number[]): BsDatepickerEffects {\n this._store.dispatch(this._actions.daysDisabled(value));\n\n return this;\n }\n\n setDatesDisabled(value: Date[]): BsDatepickerEffects {\n this._store.dispatch(this._actions.datesDisabled(value));\n\n return this;\n }\n\n setDatesEnabled(value: Date[]): BsDatepickerEffects {\n this._store.dispatch(this._actions.datesEnabled(value));\n\n return this;\n }\n\n setDisabled(value: boolean): BsDatepickerEffects {\n this._store.dispatch(this._actions.isDisabled(value));\n\n return this;\n }\n\n setDateCustomClasses(value: DatepickerDateCustomClasses[]): BsDatepickerEffects {\n this._store.dispatch(this._actions.setDateCustomClasses(value));\n\n return this;\n }\n\n /* Set rendering options */\n setOptions(_config: BsDatepickerConfig): BsDatepickerEffects {\n const _options = Object.assign({locale: this._localeService.currentLocale}, _config);\n this._store.dispatch(this._actions.setOptions(_options));\n\n return this;\n }\n\n /** view to mode bindings */\n setBindings(container: BsDatepickerAbstractComponent): BsDatepickerEffects {\n container.daysCalendar = this._store\n .select(state => state.flaggedMonths)\n .pipe(\n filter(months => !!months)\n );\n\n // month calendar\n container.monthsCalendar = this._store\n .select(state => state.flaggedMonthsCalendar)\n .pipe(\n filter(months => !!months)\n );\n\n // year calendar\n container.yearsCalendar = this._store\n .select(state => state.yearsCalendarFlagged)\n .pipe(\n filter(years => !!years)\n );\n\n container.viewMode = this._store.select(state => state.view.mode);\n\n container.options = this._store\n .select(state => state.showWeekNumbers)\n .pipe(\n map(showWeekNumbers => ({showWeekNumbers}))\n );\n\n return this;\n }\n\n /** event handlers */\n setEventHandlers(container: BsDatepickerAbstractComponent): BsDatepickerEffects {\n container.setViewMode = (event: BsDatepickerViewMode): void => {\n this._store.dispatch(this._actions.changeViewMode(event));\n };\n\n container.navigateTo = (event: BsNavigationEvent): void => {\n this._store.dispatch(this._actions.navigateStep(event.step));\n };\n\n container.dayHoverHandler = (event: CellHoverEvent): void => {\n const _cell = event.cell as DayViewModel;\n if (_cell.isOtherMonth || _cell.isDisabled) {\n return;\n }\n\n this._store.dispatch(this._actions.hoverDay(event));\n _cell.isHovered = event.isHovered;\n };\n\n container.monthHoverHandler = (event: CellHoverEvent): void => {\n event.cell.isHovered = event.isHovered;\n };\n\n container.yearHoverHandler = (event: CellHoverEvent): void => {\n event.cell.isHovered = event.isHovered;\n };\n\n container.monthSelectHandler = (event: CalendarCellViewModel): void => {\n if (event.isDisabled) {\n return;\n }\n this._store.dispatch(\n this._actions.navigateTo({\n unit: {\n month: getMonth(event.date),\n year: getFullYear(event.date)\n },\n viewMode: 'day'\n })\n );\n };\n\n container.yearSelectHandler = (event: CalendarCellViewModel): void => {\n if (event.isDisabled) {\n return;\n }\n this._store.dispatch(\n this._actions.navigateTo({\n unit: {\n year: getFullYear(event.date)\n },\n viewMode: 'month'\n })\n );\n };\n\n return this;\n }\n\n registerDatepickerSideEffects(): BsDatepickerEffects {\n this._subs.push(\n this._store.select(state => state.view).subscribe(view => {\n this._store.dispatch(this._actions.calculate());\n })\n );\n\n // format calendar values on month model change\n this._subs.push(\n this._store\n .select(state => state.monthsModel)\n .pipe(\n filter(monthModel => !!monthModel)\n )\n .subscribe(month => this._store.dispatch(this._actions.format()))\n );\n\n // flag day values\n this._subs.push(\n this._store\n .select(state => state.formattedMonths)\n .pipe(\n filter(month => !!month)\n )\n .subscribe(month => this._store.dispatch(this._actions.flag()))\n );\n\n // flag day values\n this._subs.push(\n this._store\n .select(state => state.selectedDate)\n .pipe(\n filter(selectedDate => !!selectedDate)\n )\n .subscribe(selectedDate => this._store.dispatch(this._actions.flag()))\n );\n\n // flag for date range picker\n this._subs.push(\n this._store\n .select(state => state.selectedRange)\n .pipe(\n filter(selectedRange => !!selectedRange)\n )\n .subscribe(selectedRange => this._store.dispatch(this._actions.flag()))\n );\n\n // monthsCalendar\n this._subs.push(\n this._store\n .select(state => state.monthsCalendar)\n .subscribe(() => this._store.dispatch(this._actions.flag()))\n );\n\n // years calendar\n this._subs.push(\n this._store\n .select(state => state.yearsCalendarModel)\n .pipe(\n filter(state => !!state)\n )\n .subscribe(() => this._store.dispatch(this._actions.flag()))\n );\n\n // on hover\n this._subs.push(\n this._store\n .select(state => state.hoveredDate)\n .pipe(\n filter(hoveredDate => !!hoveredDate)\n )\n .subscribe(hoveredDate => this._store.dispatch(this._actions.flag()))\n );\n\n // date custom classes\n this._subs.push(\n this._store\n .select(state => state.dateCustomClasses)\n .pipe(\n filter(dateCustomClasses => !!dateCustomClasses)\n )\n .subscribe(dateCustomClasses => this._store.dispatch(this._actions.flag()))\n );\n\n // on locale change\n this._subs.push(\n this._localeService.localeChange\n .subscribe(locale => this._store.dispatch(this._actions.setLocale(locale)))\n );\n\n return this;\n }\n\n destroy(): void {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n }\n}\n","import {\n MonthViewOptions\n} from '../models';\n\nexport const defaultMonthOptions: MonthViewOptions = {\n width: 7,\n height: 6\n};\n","import {\n BsDatepickerViewMode,\n DatepickerFormatOptions,\n DatepickerRenderOptions,\n DatepickerDateCustomClasses,\n DaysCalendarModel,\n DaysCalendarViewModel,\n MonthsCalendarViewModel,\n MonthViewOptions,\n YearsCalendarViewModel\n} from '../models';\nimport { defaultMonthOptions } from './_defaults';\nimport { BsDatepickerConfig } from '../bs-datepicker.config';\n\nexport interface BsDatepickerViewState {\n date: Date;\n mode: BsDatepickerViewMode;\n}\n\nexport class BsDatepickerState\n implements DatepickerRenderOptions, DatepickerFormatOptions {\n // date picker\n selectedDate?: Date;\n // daterange picker\n selectedRange?: Date[];\n\n // initial date of calendar, today by default\n view: BsDatepickerViewState;\n\n isDisabled?: boolean;\n // bounds\n minDate?: Date;\n maxDate?: Date;\n daysDisabled?: number[];\n datesDisabled?: Date[];\n datesEnabled?: Date[];\n minMode?: BsDatepickerViewMode;\n dateCustomClasses?: DatepickerDateCustomClasses[];\n\n hoveredDate?: Date;\n hoveredMonth?: Date;\n hoveredYear?: Date;\n\n // days calendar\n monthsModel?: DaysCalendarModel[];\n formattedMonths?: DaysCalendarViewModel[];\n flaggedMonths?: DaysCalendarViewModel[];\n selectFromOtherMonth?: boolean;\n showPreviousMonth?: boolean; // dateRangePicker only;\n displayOneMonthRange?: boolean; // dateRangePicker only;\n\n // months calendar\n monthsCalendar?: MonthsCalendarViewModel[];\n flaggedMonthsCalendar?: MonthsCalendarViewModel[];\n\n // years calendar\n yearsCalendarModel?: YearsCalendarViewModel[];\n yearsCalendarFlagged?: YearsCalendarViewModel[];\n\n // options\n monthViewOptions: MonthViewOptions;\n\n // DatepickerRenderOptions\n showWeekNumbers?: boolean;\n displayMonths?: number;\n\n // DatepickerFormatOptions\n locale: string;\n\n monthTitle: string;\n yearTitle: string;\n\n dayLabel: string;\n monthLabel: string;\n yearLabel: string;\n\n weekNumbers: string;\n}\n\nconst _initialView: BsDatepickerViewState = { date: new Date(), mode: 'day' };\n\nexport const initialDatepickerState: BsDatepickerState = Object.assign(\n new BsDatepickerConfig(),\n {\n locale: 'en',\n view: _initialView,\n selectedRange: [],\n monthViewOptions: defaultMonthOptions\n }\n);\n","import {\n getDay,\n isFirstDayOfWeek,\n isAfter,\n isBefore,\n shiftDate,\n endOf,\n startOf,\n isArray,\n isSame\n} from 'ngx-bootstrap/chronos';\nimport { BsDatepickerState } from '../reducer/bs-datepicker.state';\n\nexport function getStartingDayOfCalendar(date: Date,\n options: { firstDayOfWeek?: number }): Date {\n if (isFirstDayOfWeek(date, options.firstDayOfWeek)) {\n return date;\n }\n\n const weekDay = getDay(date);\n const offset = calculateDateOffset(weekDay, options.firstDayOfWeek);\n\n return shiftDate(date, {day: -offset});\n}\n\nexport function calculateDateOffset(weekday: number, startingDayOffset: number): number {\n if (startingDayOffset === 0) {\n return weekday;\n }\n\n const offset = weekday - startingDayOffset % 7;\n\n return offset < 0 ? offset + 7 : offset;\n}\n\nexport function isMonthDisabled(date: Date, min: Date, max: Date): boolean {\n const minBound = min && isBefore(endOf(date, 'month'), min, 'day');\n const maxBound = max && isAfter(startOf(date, 'month'), max, 'day');\n\n return minBound || maxBound;\n}\n\nexport function isYearDisabled(date: Date, min: Date, max: Date): boolean {\n const minBound = min && isBefore(endOf(date, 'year'), min, 'day');\n const maxBound = max && isAfter(startOf(date, 'year'), max, 'day');\n\n return minBound || maxBound;\n}\n\nexport function isDisabledDate(date: Date, datesDisabled: Date[]): boolean {\n if (!datesDisabled || !isArray(datesDisabled) || !datesDisabled.length) {\n return false;\n }\n\n return datesDisabled.some((dateDisabled: Date) => isSame(date, dateDisabled, 'date'));\n}\n\nexport function isEnabledDate(date: Date, datesEnabled: Date[]): boolean {\n if (!datesEnabled || !isArray(datesEnabled) || !datesEnabled.length) {\n return false;\n }\n\n return !datesEnabled.some((enabledDate: Date) => isSame(date, enabledDate, 'date'));\n}\n\nexport function getYearsCalendarInitialDate(state: BsDatepickerState, calendarIndex = 0): Date {\n const model = state && state.yearsCalendarModel && state.yearsCalendarModel[calendarIndex];\n\n return model && model.years && model.years[0] && model.years[0][0] && model.years[0][0].date;\n}\n","import { TimeUnit, shiftDate } from 'ngx-bootstrap/chronos';\n\nexport type CreateMatrixCb<T> = (date: Date) => T;\n\nexport interface MatrixOptions {\n height: number;\n width: number;\n initialDate: Date;\n shift: TimeUnit;\n}\n\nexport function createMatrix<T>(\n options: MatrixOptions,\n fn: CreateMatrixCb<T>\n): T[][] {\n let prevValue = options.initialDate;\n const matrix: T[][] = new Array(options.height);\n for (let i = 0; i < options.height; i++) {\n matrix[i] = new Array(options.width);\n for (let j = 0; j < options.width; j++) {\n matrix[i][j] = fn(prevValue);\n prevValue = shiftDate(prevValue, options.shift);\n }\n }\n\n return matrix;\n}\n","// user and model input should handle parsing and validating input values\n// should accept some options\n// todo: split out formatting\nimport { DaysCalendarModel, MonthViewOptions } from '../models';\nimport { getFirstDayOfMonth } from 'ngx-bootstrap/chronos';\nimport { getStartingDayOfCalendar } from '../utils/bs-calendar-utils';\nimport { createMatrix } from '../utils/matrix-utils';\n\nexport function calcDaysCalendar(\n startingDate: Date,\n options: MonthViewOptions\n): DaysCalendarModel {\n const firstDay = getFirstDayOfMonth(startingDate);\n const initialDate = getStartingDayOfCalendar(firstDay, options);\n\n const matrixOptions = {\n width: options.width,\n height: options.height,\n initialDate,\n shift: { day: 1 }\n };\n const daysMatrix = createMatrix<Date>(matrixOptions, date => date);\n\n return {\n daysMatrix,\n month: firstDay\n };\n}\n","import {\n DatepickerFormatOptions,\n DaysCalendarModel,\n DaysCalendarViewModel\n} from '../models';\nimport { formatDate, getLocale } from 'ngx-bootstrap/chronos';\n\nexport function formatDaysCalendar(daysCalendar: DaysCalendarModel,\n formatOptions: DatepickerFormatOptions,\n monthIndex: number): DaysCalendarViewModel {\n return {\n month: daysCalendar.month,\n monthTitle: formatDate(\n daysCalendar.month,\n formatOptions.monthTitle,\n formatOptions.locale\n ),\n yearTitle: formatDate(\n daysCalendar.month,\n formatOptions.yearTitle,\n formatOptions.locale\n ),\n weekNumbers: getWeekNumbers(\n daysCalendar.daysMatrix,\n formatOptions.weekNumbers,\n formatOptions.locale\n ),\n weekdays: getShiftedWeekdays(formatOptions.locale),\n weeks: daysCalendar.daysMatrix.map((week: Date[], weekIndex: number) => ({\n days: week.map((date: Date, dayIndex: number) => ({\n date,\n label: formatDate(date, formatOptions.dayLabel, formatOptions.locale),\n monthIndex,\n weekIndex,\n dayIndex\n }))\n }))\n };\n}\n\nexport function getWeekNumbers(daysMatrix: Date[][],\n format: string,\n locale: string): string[] {\n return daysMatrix.map(\n (days: Date[]) => (days[0] ? formatDate(days[0], format, locale) : '')\n );\n}\n\nexport function getShiftedWeekdays(locale: string): string[] {\n const _locale = getLocale(locale);\n const weekdays = _locale.weekdaysShort() as string[];\n const firstDayOfWeek = _locale.firstDayOfWeek();\n\n return [...weekdays.slice(firstDayOfWeek), ...weekdays.slice(0, firstDayOfWeek)];\n}\n","import {\n DaysCalendarViewModel,\n DayViewModel,\n WeekViewModel,\n DatepickerDateCustomClasses\n} from '../models';\n\nimport {\n isAfter,\n isBefore,\n isDisabledDay,\n isSameDay,\n isSameMonth,\n shiftDate\n} from 'ngx-bootstrap/chronos';\n\nimport { isMonthDisabled, isDisabledDate, isEnabledDate } from '../utils/bs-calendar-utils';\n\nexport interface FlagDaysCalendarOptions {\n isDisabled: boolean;\n minDate: Date;\n maxDate: Date;\n daysDisabled: number[];\n datesDisabled: Date[];\n datesEnabled: Date[];\n hoveredDate: Date;\n selectedDate: Date;\n selectedRange: Date[];\n displayMonths: number;\n monthIndex: number;\n dateCustomClasses: DatepickerDateCustomClasses[];\n}\n\nexport function flagDaysCalendar(\n formattedMonth: DaysCalendarViewModel,\n options: FlagDaysCalendarOptions\n): DaysCalendarViewModel {\n formattedMonth.weeks.forEach((week: WeekViewModel) => {\n /* tslint:disable-next-line: cyclomatic-complexity */\n week.days.forEach((day: DayViewModel, dayIndex: number) => {\n // datepicker\n const isOtherMonth = !isSameMonth(day.date, formattedMonth.month);\n\n const isHovered =\n !isOtherMonth && isSameDay(day.date, options.hoveredDate);\n // date range picker\n const isSelectionStart =\n !isOtherMonth &&\n options.selectedRange &&\n isSameDay(day.date, options.selectedRange[0]);\n const isSelectionEnd =\n !isOtherMonth &&\n options.selectedRange &&\n isSameDay(day.date, options.selectedRange[1]);\n\n const isSelected =\n (!isOtherMonth && isSameDay(day.date, options.selectedDate)) ||\n isSelectionStart ||\n isSelectionEnd;\n\n const isInRange =\n !isOtherMonth &&\n options.selectedRange &&\n isDateInRange(day.date, options.selectedRange, options.hoveredDate);\n\n const isDisabled =\n options.isDisabled ||\n isBefore(day.date, options.minDate, 'day') ||\n isAfter(day.date, options.maxDate, 'day') ||\n isDisabledDay(day.date, options.daysDisabled) ||\n isDisabledDate(day.date, options.datesDisabled) ||\n isEnabledDate(day.date, options.datesEnabled);\n\n const currentDate = new Date();\n const isToday = !isOtherMonth && isSameDay(day.date, currentDate);\n\n const customClasses = options.dateCustomClasses && options.dateCustomClasses\n .map(dcc => isSameDay(day.date, dcc.date) ? dcc.classes : [])\n .reduce((previousValue, currentValue) => previousValue.concat(currentValue), [])\n .join(' ')\n || '';\n\n\n // decide update or not\n const newDay = Object.assign({}, day, {\n isOtherMonth,\n isHovered,\n isSelected,\n isSelectionStart,\n isSelectionEnd,\n isInRange,\n isDisabled,\n isToday,\n customClasses\n });\n\n if (\n day.isOtherMonth !== newDay.isOtherMonth ||\n day.isHovered !== newDay.isHovered ||\n day.isSelected !== newDay.isSelected ||\n day.isSelectionStart !== newDay.isSelectionStart ||\n day.isSelectionEnd !== newDay.isSelectionEnd ||\n day.isDisabled !== newDay.isDisabled ||\n day.isInRange !== newDay.isInRange ||\n day.customClasses !== newDay.customClasses\n ) {\n week.days[dayIndex] = newDay;\n }\n });\n });\n\n // todo: add check for linked calendars\n formattedMonth.hideLeftArrow =\n options.isDisabled ||\n (options.monthIndex > 0 && options.monthIndex !== options.displayMonths);\n formattedMonth.hideRightArrow =\n options.isDisabled ||\n (options.monthIndex < options.displayMonths &&\n options.monthIndex + 1 !== options.displayMonths);\n\n formattedMonth.disableLeftArrow = isMonthDisabled(\n shiftDate(formattedMonth.month, { month: -1 }),\n options.minDate,\n options.maxDate\n );\n formattedMonth.disableRightArrow = isMonthDisabled(\n shiftDate(formattedMonth.month, { month: 1 }),\n options.minDate,\n options.maxDate\n );\n\n return formattedMonth;\n}\n\nfunction isDateInRange(\n date: Date,\n selectedRange: Date[],\n hoveredDate: Date\n): boolean {\n if (!date || !selectedRange[0]) {\n return false;\n }\n\n if (selectedRange[1]) {\n return date > selectedRange[0] && date <= selectedRange[1];\n }\n\n if (hoveredDate) {\n return date > selectedRange[0] && date <= hoveredDate;\n }\n\n return false;\n}\n","import { BsDatepickerViewMode } from '../models';\n\nexport function canSwitchMode(mode: BsDatepickerViewMode, minMode?: BsDatepickerViewMode): boolean {\n return minMode ? mode >= minMode : true;\n}\n","import {\n DatepickerFormatOptions,\n MonthsCalendarViewModel,\n CalendarCellViewModel\n} from '../models';\nimport { startOf, formatDate } from 'ngx-bootstrap/chronos';\nimport { createMatrix } from '../utils/matrix-utils';\n\nconst height = 4;\nconst width = 3;\nconst shift = { month: 1 };\n\nexport function formatMonthsCalendar(\n viewDate: Date,\n formatOptions: DatepickerFormatOptions\n): MonthsCalendarViewModel {\n const initialDate = startOf(viewDate, 'year');\n const matrixOptions = { width, height, initialDate, shift };\n const monthMatrix = createMatrix<\n CalendarCellViewModel\n >(matrixOptions, date => ({\n date,\n label: formatDate(date, formatOptions.monthLabel, formatOptions.locale)\n }));\n\n return {\n months: monthMatrix,\n monthTitle: '',\n yearTitle: formatDate(\n viewDate,\n formatOptions.yearTitle,\n formatOptions.locale\n )\n };\n}\n","import { isSameMonth, shiftDate } from 'ngx-bootstrap/chronos';\nimport {\n MonthsCalendarViewModel,\n CalendarCellViewModel\n} from '../models';\nimport { isMonthDisabled, isYearDisabled } from '../utils/bs-calendar-utils';\n\nexport interface FlagMonthCalendarOptions {\n isDisabled: boolean;\n minDate: Date;\n maxDate: Date;\n hoveredMonth: Date;\n selectedDate: Date;\n displayMonths: number;\n monthIndex: number;\n}\n\nexport function flagMonthsCalendar(\n monthCalendar: MonthsCalendarViewModel,\n options: FlagMonthCalendarOptions\n): MonthsCalendarViewModel {\n monthCalendar.months.forEach(\n (months: CalendarCellViewModel[], rowIndex: number) => {\n months.forEach((month: CalendarCellViewModel, monthIndex: number) => {\n const isHovered = isSameMonth(month.date, options.hoveredMonth);\n const isDisabled =\n options.isDisabled ||\n isMonthDisabled(month.date, options.minDate, options.maxDate);\n const isSelected = isSameMonth(month.date, options.selectedDate);\n const newMonth = Object.assign(/*{},*/ month, {\n isHovered,\n isDisabled,\n isSelected\n });\n if (\n month.isHovered !== newMonth.isHovered ||\n month.isDisabled !== newMonth.isDisabled ||\n month.isSelected !== newMonth.isSelected\n ) {\n monthCalendar.months[rowIndex][monthIndex] = newMonth;\n }\n });\n }\n );\n\n // todo: add check for linked calendars\n monthCalendar.hideLeftArrow =\n options.monthIndex > 0 && options.monthIndex !== options.displayMonths;\n monthCalendar.hideRightArrow =\n options.monthIndex < options.displayMonths &&\n options.monthIndex + 1 !== options.displayMonths;\n\n monthCalendar.disableLeftArrow = isYearDisabled(\n shiftDate(monthCalendar.months[0][0].date, { year: -1 }),\n options.minDate,\n options.maxDate\n );\n monthCalendar.disableRightArrow = isYearDisabled(\n shiftDate(monthCalendar.months[0][0].date, { year: 1 }),\n options.minDate,\n options.maxDate\n );\n\n return monthCalendar;\n}\n","import {\n DatepickerFormatOptions,\n YearsCalendarViewModel,\n CalendarCellViewModel\n} from '../models';\nimport { shiftDate, formatDate } from 'ngx-bootstrap/chronos';\nimport { createMatrix } from '../utils/matrix-utils';\n\nconst height = 4;\nconst width = 4;\nexport const yearsPerCalendar = height * width;\nexport const initialYearShift = (Math.floor(yearsPerCalendar / 2) - 1) * -1;\nconst shift = { year: 1 };\n\nexport function formatYearsCalendar(\n viewDate: Date,\n formatOptions: DatepickerFormatOptions,\n previousInitialDate?: Date\n): YearsCalendarViewModel {\n const initialDate = calculateInitialDate(viewDate, previousInitialDate);\n const matrixOptions = { width, height, initialDate, shift };\n const yearsMatrix = createMatrix<\n CalendarCellViewModel\n >(matrixOptions, date => ({\n date,\n label: formatDate(date, formatOptions.yearLabel, formatOptions.locale)\n }));\n const yearTitle = formatYearRangeTitle(yearsMatrix, formatOptions);\n\n return {\n years: yearsMatrix,\n monthTitle: '',\n yearTitle\n };\n}\n\nfunction calculateInitialDate(viewDate: Date, previousInitialDate?: Date): Date {\n if (previousInitialDate\n && viewDate.getFullYear() >= previousInitialDate.getFullYear()\n && viewDate.getFullYear() < previousInitialDate.getFullYear() + yearsPerCalendar) {\n return previousInitialDate;\n }\n\n return shiftDate(viewDate, { year: initialYearShift });\n}\n\nfunction formatYearRangeTitle(\n yearsMatrix: CalendarCellViewModel[][],\n formatOptions: DatepickerFormatOptions\n): string {\n const from = formatDate(\n yearsMatrix[0][0].date,\n formatOptions.yearTitle,\n formatOptions.locale\n );\n const to = formatDate(\n yearsMatrix[height - 1][width - 1].date,\n formatOptions.yearTitle,\n formatOptions.locale\n );\n\n return `${from} - ${to}`;\n}\n","import { isSameYear, shiftDate } from 'ngx-bootstrap/chronos';\nimport { YearsCalendarViewModel, CalendarCellViewModel } from '../models';\nimport { isYearDisabled } from '../utils/bs-calendar-utils';\n\nexport interface FlagYearsCalendarOptions {\n isDisabled: boolean;\n minDate: Date;\n maxDate: Date;\n hoveredYear: Date;\n selectedDate: Date;\n displayMonths: number;\n yearIndex: number;\n}\n\nexport function flagYearsCalendar(\n yearsCalendar: YearsCalendarViewModel,\n options: FlagYearsCalendarOptions\n): YearsCalendarViewModel {\n yearsCalendar.years.forEach(\n (years: CalendarCellViewModel[], rowIndex: number) => {\n years.forEach((year: CalendarCellViewModel, yearIndex: number) => {\n const isHovered = isSameYear(year.date, options.hoveredYear);\n const isDisabled =\n options.isDisabled ||\n isYearDisabled(year.date, options.minDate, options.maxDate);\n const isSelected = isSameYear(year.date, options.selectedDate);\n\n const newMonth = Object.assign(/*{},*/ year, { isHovered, isDisabled, isSelected });\n if (\n year.isHovered !== newMonth.isHovered ||\n year.isDisabled !== newMonth.isDisabled ||\n year.isSelected !== newMonth.isSelected\n ) {\n yearsCalendar.years[rowIndex][yearIndex] = newMonth;\n }\n });\n }\n );\n\n // todo: add check for linked calendars\n yearsCalendar.hideLeftArrow =\n options.yearIndex > 0 && options.yearIndex !== options.displayMonths;\n yearsCalendar.hideRightArrow =\n options.yearIndex < options.displayMonths &&\n options.yearIndex + 1 !== options.displayMonths;\n\n yearsCalendar.disableLeftArrow = isYearDisabled(\n shiftDate(yearsCalendar.years[0][0].date, { year: -1 }),\n options.minDate,\n options.maxDate\n );\n const i = yearsCalendar.years.length - 1;\n const j = yearsCalendar.years[i].length - 1;\n yearsCalendar.disableRightArrow = isYearDisabled(\n shiftDate(yearsCalendar.years[i][j].date, { year: 1 }),\n options.minDate,\n options.maxDate\n );\n\n return yearsCalendar;\n}\n","// tslint:disable:max-file-line-count\nimport { BsDatepickerState, initialDatepickerState } from './bs-datepicker.state';\nimport { Action } from 'ngx-bootstrap/mini-ngrx';\nimport { BsDatepickerActions } from './bs-datepicker.actions';\nimport { calcDaysCalendar } from '../engine/calc-days-calendar';\nimport { formatDaysCalendar } from '../engine/format-days-calendar';\nimport { flagDaysCalendar } from '../engine/flag-days-calendar';\nimport {\n setFullDate,\n shiftDate,\n isArray,\n isDateValid,\n startOf,\n getLocale,\n isAfter,\n isBefore,\n isSame\n} from 'ngx-bootstrap/chronos';\nimport { canSwitchMode } from '../engine/view-mode';\nimport { formatMonthsCalendar } from '../engine/format-months-calendar';\nimport { flagMonthsCalendar } from '../engine/flag-months-calendar';\nimport { formatYearsCalendar, initialYearShift, yearsPerCalendar } from '../engine/format-years-calendar';\nimport { flagYearsCalendar } from '../engine/flag-years-calendar';\nimport { BsViewNavigationEvent, DatepickerFormatOptions, BsDatepickerViewMode } from '../models';\nimport { getYearsCalendarInitialDate } from '../utils/bs-calendar-utils';\n\n\n/* tslint:disable-next-line: cyclomatic-complexity */\nexport function bsDatepickerReducer(state = initialDatepickerState,\n action: Action): BsDatepickerState {\n switch (action.type) {\n case BsDatepickerActions.CALCULATE: {\n return calculateReducer(state);\n }\n\n case BsDatepickerActions.FORMAT: {\n return formatReducer(state, action);\n }\n\n case BsDatepickerActions.FLAG: {\n return flagReducer(state, action);\n }\n\n case BsDatepickerActions.NAVIGATE_OFFSET: {\n return navigateOffsetReducer(state, action);\n }\n\n case BsDatepickerActions.NAVIGATE_TO: {\n const payload: BsViewNavigationEvent = action.payload;\n\n const date = setFullDate(state.view.date, payload.unit);\n let newState;\n let mode: BsDatepickerViewMode;\n if (canSwitchMode(payload.viewMode, state.minMode)) {\n mode = payload.viewMode;\n newState = { view: { date, mode } };\n } else {\n mode = state.view.mode;\n newState = { selectedDate: date, view: { date, mode } };\n }\n\n return Object.assign({}, state, newState);\n }\n\n case BsDatepickerActions.CHANGE_VIEWMODE: {\n if (!canSwitchMode(action.payload, state.minMode)) {\n return state;\n }\n const date = state.view.date;\n const mode = action.payload;\n const newState = { view: { date, mode } };\n\n return Object.assign({}, state, newState);\n }\n\n case BsDatepickerActions.HOVER: {\n return Object.assign({}, state, { hoveredDate: action.payload });\n }\n\n case BsDatepickerActions.SELECT: {\n const newState = {\n selectedDate: action.payload,\n view: state.view\n };\n\n const mode = state.view.mode;\n const _date = action.payload || state.view.date;\n const date = getViewDate(_date, state.minDate, state.maxDate);\n newState.view = { mode, date };\n\n return Object.assign({}, state, newState);\n }\n\n case BsDatepickerActions.SET_OPTIONS: {\n const newState = action.payload;\n // preserve view mode\n const mode = newState.minMode ? newState.minMode : state.view.mode;\n const _viewDate = isDateValid(newState.value) && newState.value\n || isArray(newState.value) && isDateValid(newState.value[0]) && newState.value[0]\n || state.view.date;\n const date = getViewDate(_viewDate, newState.minDate, newState.maxDate);\n newState.view = { mode, date };\n // update selected value\n if (newState.value) {\n // if new value is array we work with date range\n if (isArray(newState.value)) {\n newState.selectedRange = newState.value;\n }\n\n // if new value is a date -> datepicker\n if (newState.value instanceof Date) {\n newState.selectedDate = newState.value;\n }\n\n // provided value is not supported :)\n // need to report it somehow\n }\n\n return Object.assign({}, state, newState);\n }\n\n // date range picker\n case BsDatepickerActions.SELECT_RANGE: {\n const newState = {\n selectedRange: action.payload,\n view: state.view\n };\n\n const mode = state.view.mode;\n const _date = action.payload && action.payload[0] || state.view.date;\n const date = getViewDate(_date, state.minDate, state.maxDate);\n newState.view = { mode, date };\n\n return Object.assign({}, state, newState);\n }\n\n case BsDatepickerActions.SET_MIN_DATE: {\n return Object.assign({}, state, {\n minDate: action.payload\n });\n }\n case BsDatepickerActions.SET_MAX_DATE: {\n return Object.assign({}, state, {\n maxDate: action.payload\n });\n }\n case BsDatepickerActions.SET_IS_DISABLED: {\n return Object.assign({}, state, {\n isDisabled: action.payload\n });\n }\n case BsDatepickerActions.SET_DATE_CUSTOM_CLASSES: {\n return Object.assign({}, state, {\n dateCustomClasses: action.payload\n });\n }\n\n default:\n return state;\n }\n}\n\nfunction calculateReducer(state: BsDatepickerState): BsDatepickerState {\n // how many calendars\n const displayMonths = (state.displayOneMonthRange &&\n isDisplayOneMonth(state.view.date, state.minDate, state.maxDate)) ? 1 : state.displayMonths;\n\n // use selected date on initial rendering if set\n let viewDate = state.view.date;\n\n if (state.view.mode === 'day') {\n if (state.showPreviousMonth && state.selectedRange.length === 0) {\n viewDate = shiftDate(viewDate, { month: -1 });\n }\n\n state.monthViewOptions.firstDayOfWeek = getLocale(state.locale).firstDayOfWeek();\n const monthsModel = new Array(displayMonths);\n for (let monthIndex = 0; monthIndex < displayMonths; monthIndex++) {\n // todo: for unlinked calendars it will be harder\n monthsModel[monthIndex] = calcDaysCalendar(\n viewDate,\n state.monthViewOptions\n );\n viewDate = shiftDate(viewDate, { month: 1 });\n }\n\n return Object.assign({}, state, { monthsModel });\n }\n\n if (state.view.mode === 'month') {\n const monthsCalendar = new Array(displayMonths);\n for (\n let calendarIndex = 0;\n calendarIndex < displayMonths;\n calendarIndex++\n ) {\n // todo: for unlinked calendars it will be harder\n monthsCalendar[calendarIndex] = formatMonthsCalendar(\n viewDate,\n getFormatOptions(state)\n );\n viewDate = shiftDate(viewDate, { year: 1 });\n }\n\n return Object.assign({}, state, { monthsCalendar });\n }\n\n if (state.view.mode === 'year') {\n const yearsCalendarModel = new Array(displayMonths);\n\n for (\n let calendarIndex = 0;\n calendarIndex < displayMonths;\n calendarIndex++\n ) {\n // todo: for unlinked calendars it will be harder\n yearsCalendarModel[calendarIndex] = formatYearsCalendar(\n viewDate,\n getFormatOptions(state),\n state.minMode === 'year' ? getYearsCalendarInitialDate(state, calendarIndex) : undefined\n );\n viewDate = shiftDate(viewDate, { year: yearsPerCalendar });\n }\n\n return Object.assign({}, state, { yearsCalendarModel });\n }\n\n return state;\n}\n\nfunction formatReducer(state: BsDatepickerState,\n action: Action): BsDatepickerState {\n if (state.view.mode === 'day') {\n const formattedMonths = state.monthsModel.map((month, monthIndex) =>\n formatDaysCalendar(month, getFormatOptions(state), monthIndex)\n );\n\n return Object.assign({}, state, { formattedMonths });\n }\n\n // how many calendars\n const displayMonths = state.displayMonths;\n // check initial rendering\n // use selected date on initial rendering if set\n let viewDate = state.view.date;\n\n if (state.view.mode === 'month') {\n const monthsCalendar = new Array(displayMonths);\n for (\n let calendarIndex = 0;\n calendarIndex < displayMonths;\n calendarIndex++\n ) {\n // todo: for unlinked calendars it will be harder\n monthsCalendar[calendarIndex] = formatMonthsCalendar(\n viewDate,\n getFormatOptions(state)\n );\n viewDate = shiftDate(viewDate, { year: 1 });\n }\n\n return Object.assign({}, state, { monthsCalendar });\n }\n\n if (state.view.mode === 'year') {\n const yearsCalendarModel = new Array(displayMonths);\n for (\n let calendarIndex = 0;\n calendarIndex < displayMonths;\n calendarIndex++\n ) {\n // todo: for unlinked calendars it will be harder\n yearsCalendarModel[calendarIndex] = formatYearsCalendar(\n viewDate,\n getFormatOptions(state)\n );\n viewDate = shiftDate(viewDate, { year: 16 });\n }\n\n return Object.assign({}, state, { yearsCalendarModel });\n }\n\n return state;\n}\n\nfunction flagReducer(state: BsDatepickerState,\n action: Action): BsDatepickerState {\n const displayMonths = isDisplayOneMonth(state.view.date, state.minDate, state.maxDate) ? 1 : state.displayMonths;\n if (state.view.mode === 'day') {\n const flaggedMonths = state.formattedMonths.map(\n (formattedMonth, monthIndex) =>\n flagDaysCalendar(formattedMonth, {\n isDisabled: state.isDisabled,\n minDate: state.minDate,\n maxDate: state.maxDate,\n daysDisabled: state.daysDisabled,\n datesDisabled: state.datesDisabled,\n datesEnabled: state.datesEnabled,\n hoveredDate: state.hoveredDate,\n selectedDate: state.selectedDate,\n selectedRange: state.selectedRange,\n displayMonths,\n dateCustomClasses: state.dateCustomClasses,\n monthIndex\n })\n );\n\n return Object.assign({}, state, { flaggedMonths });\n }\n\n if (state.view.mode === 'month') {\n const flaggedMonthsCalendar = state.monthsCalendar.map(\n (formattedMonth, monthIndex) =>\n flagMonthsCalendar(formattedMonth, {\n isDisabled: state.isDisabled,\n minDate: state.minDate,\n maxDate: state.maxDate,\n hoveredMonth: state.hoveredMonth,\n selectedDate: state.selectedDate,\n displayMonths,\n monthIndex\n })\n );\n\n return Object.assign({}, state, { flaggedMonthsCalendar });\n }\n\n if (state.view.mode === 'year') {\n const yearsCalendarFlagged = state.yearsCalendarModel.map(\n (formattedMonth, yearIndex) =>\n flagYearsCalendar(formattedMonth, {\n isDisabled: state.isDisabled,\n minDate: state.minDate,\n maxDate: state.maxDate,\n hoveredYear: state.hoveredYear,\n selectedDate: state.selectedDate,\n displayMonths,\n yearIndex\n })\n );\n\n return Object.assign({}, state, { yearsCalendarFlagged });\n }\n\n return state;\n}\n\nfunction navigateOffsetReducer(state: BsDatepickerState, action: Action): BsDatepickerState {\n const newState = {\n view: {\n mode: state.view.mode,\n date: shiftViewDate(state, action)\n }\n };\n\n return Object.assign({}, state, newState);\n}\n\nfunction shiftViewDate(state: BsDatepickerState, action: Action): Date {\n if (state.view.mode === 'year' && state.minMode === 'year') {\n const initialDate = getYearsCalendarInitialDate(state, 0);\n const middleDate = shiftDate(initialDate, { year: -initialYearShift });\n\n return shiftDate(middleDate, action.payload);\n }\n\n return shiftDate(startOf(state.view.date, 'month'), action.payload);\n}\n\nfunction getFormatOptions(state: BsDatepickerState): DatepickerFormatOptions {\n return {\n locale: state.locale,\n\n monthTitle: state.monthTitle,\n yearTitle: state.yearTitle,\n\n dayLabel: state.dayLabel,\n monthLabel: state.monthLabel,\n yearLabel: state.yearLabel,\n\n weekNumbers: state.weekNumbers\n };\n}\n\n/**\n * if view date is provided (bsValue|ngModel) it should be shown\n * if view date is not provider:\n * if minDate>currentDate (default view value), show minDate\n * if maxDate<currentDate(default view value) show maxDate\n */\nfunction getViewDate(viewDate: Date | Date[], minDate: Date, maxDate: Date) {\n const _date = Array.isArray(viewDate) ? viewDate[0] : viewDate;\n\n if (minDate && isAfter(minDate, _date, 'day')) {\n return minDate;\n }\n\n if (maxDate && isBefore(maxDate, _date, 'day')) {\n return maxDate;\n }\n\n return _date;\n}\n\nfunction isDisplayOneMonth(viewDate: Date, minDate: Date, maxDate: Date) {\n if (maxDate && isSame(maxDate, viewDate, 'day')) {\n return true;\n }\n\n if (minDate && maxDate && minDate.getMonth() === maxDate.getMonth()) {\n return true;\n }\n\n return false;\n}\n","import { Injectable } from '@angular/core';\nimport { MiniStore, Action, MiniState } from 'ngx-bootstrap/mini-ngrx';\nimport { BsDatepickerState, initialDatepickerState } from './bs-datepicker.state';\nimport { BehaviorSubject } from 'rxjs';\nimport { bsDatepickerReducer } from './bs-datepicker.reducer';\n\n@Injectable()\nexport class BsDatepickerStore extends MiniStore<BsDatepickerState> {\n constructor() {\n const _dispatcher = new BehaviorSubject<Action>({\n type: '[datepicker] dispatcher init'\n });\n const state = new MiniState<BsDatepickerState>(\n initialDatepickerState,\n _dispatcher,\n bsDatepickerReducer\n );\n super(_dispatcher, bsDatepickerReducer, state);\n }\n}\n","import {\n animate,\n style,\n AnimationTriggerMetadata,\n state,\n transition,\n trigger\n} from '@angular/animations';\n\nexport const DATEPICKER_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\n\nexport const datepickerAnimation: AnimationTriggerMetadata =\n trigger('datepickerAnimation', [\n state('animated-down', style({ height: '*', overflow: 'hidden'})),\n transition('* => animated-down', [\n style({ height: 0, overflow: 'hidden' }),\n animate(DATEPICKER_ANIMATION_TIMING)\n ]),\n state('animated-up', style({ height: '*', overflow: 'hidden'})),\n transition('* => animated-up', [\n style({ height: '*', overflow: 'hidden' }),\n animate(DATEPICKER_ANIMATION_TIMING)\n ]),\n transition('* => unanimated', animate('0s'))\n ]);\n","import { Component, ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2 } from '@angular/core';\n\nimport { BsDatepickerAbstractComponent } from '../../base/bs-datepicker-container';\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { DayViewModel } from '../../models';\nimport { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';\nimport { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from '../../reducer/bs-datepicker.store';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\nimport { Subscription } from 'rxjs';\nimport { datepickerAnimation } from '../../datepicker-animations';\nimport { take } from 'rxjs/operators';\n\n@Component({\n selector: 'bs-datepicker-container',\n providers: [BsDatepickerStore, BsDatepickerEffects],\n templateUrl: './bs-datepicker-view.html',\n host: {\n class: 'bottom',\n '(click)': '_stopPropagation($event)',\n role: 'dialog',\n 'aria-label': 'calendar'\n },\n animations: [datepickerAnimation]\n})\nexport class BsDatepickerContainerComponent extends BsDatepickerAbstractComponent\n implements OnInit, OnDestroy {\n\n set value(value: Date) {\n this._effects.setValue(value);\n }\n\n valueChange: EventEmitter<Date> = new EventEmitter<Date>();\n animationState = 'void';\n\n _subs: Subscription[] = [];\n constructor(\n _renderer: Renderer2,\n private _config: BsDatepickerConfig,\n private _store: BsDatepickerStore,\n private _element: ElementRef,\n private _actions: BsDatepickerActions,\n _effects: BsDatepickerEffects,\n private _positionService: PositioningService\n ) {\n super();\n this._effects = _effects;\n\n _renderer.setStyle(_element.nativeElement, 'display', 'block');\n _renderer.setStyle(_element.nativeElement, 'position', 'absolute');\n }\n\n ngOnInit(): void {\n this._positionService.setOptions({\n modifiers: { flip: { enabled: this._config.adaptivePosition } },\n allowedPositions: ['top', 'bottom']\n });\n\n this._positionService.event$\n .pipe(\n take(1)\n )\n .subscribe(() => {\n this._positionService.disable();\n\n if (this._config.isAnimated) {\n this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n\n return;\n }\n\n this.animationState = 'unanimated';\n });\n\n this.isOtherMonthsActive = this._config.selectFromOtherMonth;\n this.containerClass = this._config.containerClass;\n this._effects\n .init(this._store)\n // intial state options\n .setOptions(this._config)\n // data binding view --> model\n .setBindings(this)\n // set event handlers\n .setEventHandlers(this)\n .registerDatepickerSideEffects();\n\n // todo: move it somewhere else\n // on selected date change\n this._subs.push(\n this._store\n /* tslint:disable-next-line: no-any */\n .select((state: any) => state.selectedDate)\n /* tslint:disable-next-line: no-any */\n .subscribe((date: any) => this.valueChange.emit(date))\n );\n }\n\n get isTopPosition(): boolean {\n return this._element.nativeElement.classList.contains('top');\n }\n\n positionServiceEnable(): void {\n this._positionService.enable();\n }\n\n daySelectHandler(day: DayViewModel): void {\n if (!day) {\n return;\n }\n\n const isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);\n\n if (isDisabled) {\n return;\n }\n\n this._store.dispatch(this._actions.select(day.date));\n }\n\n ngOnDestroy(): void {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n this._effects.destroy();\n }\n}\n","import {\n ComponentRef, Directive, ElementRef, EventEmitter, Input, OnChanges,\n OnDestroy, OnInit, Output, Renderer2, SimpleChanges, ViewContainerRef, AfterViewInit\n} from '@angular/core';\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { BsDatepickerContainerComponent } from './themes/bs/bs-datepicker-container.component';\nimport { Subscription, Subject, BehaviorSubject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { BsDatepickerViewMode, DatepickerDateCustomClasses } from './models';\n\n@Directive({\n selector: '[bsDatepicker]',\n exportAs: 'bsDatepicker'\n})\nexport class BsDatepickerDirective implements OnInit, OnDestroy, OnChanges, AfterViewInit {\n /**\n * Placement of a datepicker. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n @Input() placement: 'top' | 'bottom' | 'left' | 'right' = 'bottom';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n @Input() triggers = 'click';\n /**\n * Close datepicker on outside click\n */\n @Input() outsideClick = true;\n /**\n * A selector specifying the element the datepicker should be appended to.\n */\n @Input() container = 'body';\n\n @Input() outsideEsc = true;\n\n /**\n * Returns whether or not the datepicker is currently being shown\n */\n @Input()\n get isOpen(): boolean {\n return this._datepicker.isShown;\n }\n\n set isOpen(value: boolean) {\n this.isOpen$.next(value);\n }\n\n /**\n * Emits an event when the datepicker is shown\n */\n /* tslint:disable-next-line: no-any*/\n @Output() onShown: EventEmitter<any>;\n /**\n * Emits an event when the datepicker is hidden\n */\n /* tslint:disable-next-line: no-any*/\n @Output() onHidden: EventEmitter<any>;\n\n _bsValue: Date;\n isOpen$: BehaviorSubject<boolean>;\n isDestroy$: Subject<void>;\n /**\n * Initial value of datepicker\n */\n @Input()\n set bsValue(value: Date) {\n if (this._bsValue && value && this._bsValue.getTime() === value.getTime()) {\n return;\n }\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n\n /**\n * Config object for datepicker\n */\n @Input() bsConfig: Partial<BsDatepickerConfig>;\n /**\n * Indicates whether datepicker's content is enabled or not\n */\n @Input() isDisabled: boolean;\n /**\n * Minimum date which is available for selection\n */\n @Input() minDate: Date;\n /**\n * Maximum date which is available for selection\n */\n @Input() maxDate: Date;\n\n /**\n * Minimum view mode : day, month, or year\n */\n @Input() minMode: BsDatepickerViewMode;\n\n /**\n * Disable Certain days in the week\n */\n @Input() daysDisabled: number[];\n\n /**\n * Disable specific dates\n */\n @Input() datesDisabled: Date[];\n /**\n * Enable specific dates\n */\n @Input() datesEnabled: Date[];\n /**\n * Date custom classes\n */\n @Input() dateCustomClasses: DatepickerDateCustomClasses[];\n /**\n * Emits when datepicker value has been changed\n */\n @Output() bsValueChange: EventEmitter<Date> = new EventEmitter();\n\n protected _subs: Subscription[] = [];\n\n private _datepicker: ComponentLoader<BsDatepickerContainerComponent>;\n private _datepickerRef: ComponentRef<BsDatepickerContainerComponent>;\n\n constructor(public _config: BsDatepickerConfig,\n private _elementRef: ElementRef,\n private _renderer: Renderer2,\n _viewContainerRef: ViewContainerRef,\n cis: ComponentLoaderFactory) {\n // todo: assign only subset of fields\n Object.assign(this, this._config);\n this._datepicker = cis.createLoader<BsDatepickerContainerComponent>(\n _elementRef,\n _viewContainerRef,\n _renderer\n );\n this.onShown = this._datepicker.onShown;\n this.onHidden = this._datepicker.onHidden;\n this.isOpen$ = new BehaviorSubject(this.isOpen);\n }\n\n ngOnInit(): void {\n this.isDestroy$ = new Subject();\n this._datepicker.listen({\n outsideClick: this.outsideClick,\n outsideEsc: this.outsideEsc,\n triggers: this.triggers,\n show: () => this.show()\n });\n this.setConfig();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n\n if (changes.minDate) {\n this._datepickerRef.instance.minDate = this.minDate;\n }\n\n if (changes.maxDate) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n }\n\n if (changes.daysDisabled) {\n this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n }\n\n if (changes.datesDisabled) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n }\n\n if (changes.datesEnabled) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n }\n\n if (changes.isDisabled) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n }\n\n if (changes.dateCustomClasses) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n }\n }\n\n ngAfterViewInit(): void {\n this.isOpen$.pipe(\n filter(isOpen => isOpen !== this.isOpen),\n takeUntil(this.isDestroy$)\n )\n .subscribe(() => this.toggle());\n }\n\n /**\n * Opens an elementâs datepicker. This is considered a âmanualâ triggering of\n * the datepicker.\n */\n show(): void {\n if (this._datepicker.isShown) {\n return;\n }\n\n this.setConfig();\n\n this._datepickerRef = this._datepicker\n .provide({provide: BsDatepickerConfig, useValue: this._config})\n .attach(BsDatepickerContainerComponent)\n .to(this.container)\n .position({attachment: this.placement})\n .show({placement: this.placement});\n\n // if date changes from external source (model -> view)\n this._subs.push(\n this.bsValueChange.subscribe((value: Date) => {\n this._datepickerRef.instance.value = value;\n })\n );\n\n // if date changes from picker (view -> model)\n this._subs.push(\n this._datepickerRef.instance.valueChange.subscribe((value: Date) => {\n this.bsValue = value;\n this.hide();\n })\n );\n }\n\n /**\n * Closes an elementâs datepicker. This is considered a âmanualâ triggering of\n * the datepicker.\n */\n hide(): void {\n if (this.isOpen) {\n this._datepicker.hide();\n }\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n\n if (this._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elementRef.nativeElement).focus();\n }\n }\n\n /**\n * Toggles an elementâs datepicker. This is considered a âmanualâ triggering\n * of the datepicker.\n */\n toggle(): void {\n if (this.isOpen) {\n return this.hide();\n }\n\n this.show();\n }\n\n /**\n * Set config for datepicker\n */\n setConfig(): void {\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: this._bsValue,\n isDisabled: this.isDisabled,\n minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,\n dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n minMode: this.minMode || this.bsConfig && this.bsConfig.minMode\n });\n }\n\n ngOnDestroy(): void {\n this._datepicker.dispose();\n this.isOpen$.next(false);\n if (this.isDestroy$) {\n this.isDestroy$.next();\n this.isDestroy$.complete();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\n\n@Injectable()\nexport class BsDatepickerInlineConfig extends BsDatepickerConfig { }\n","import { Component, ElementRef, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { BsDatepickerContainerComponent } from './bs-datepicker-container.component';\n\nimport { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from '../../reducer/bs-datepicker.store';\n\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { datepickerAnimation } from '../../datepicker-animations';\n\n@Component({\n selector: 'bs-datepicker-inline-container',\n providers: [BsDatepickerStore, BsDatepickerEffects],\n templateUrl: './bs-datepicker-view.html',\n host: {\n '(click)': '_stopPropagation($event)'\n },\n animations: [datepickerAnimation]\n})\nexport class BsDatepickerInlineContainerComponent extends BsDatepickerContainerComponent\n implements OnInit, OnDestroy {\n\n constructor(\n _renderer: Renderer2,\n _config: BsDatepickerConfig,\n _store: BsDatepickerStore,\n _element: ElementRef,\n _actions: BsDatepickerActions,\n _effects: BsDatepickerEffects,\n _positioningService: PositioningService\n ) {\n super(_renderer, _config, _store, _element, _actions, _effects, _positioningService);\n\n _renderer.setStyle(_element.nativeElement, 'display', 'inline-block');\n _renderer.setStyle(_element.nativeElement, 'position', 'static');\n }\n}\n","import {\n ComponentRef, Directive, ElementRef, EventEmitter, Input, OnChanges,\n OnDestroy, OnInit, Output, Renderer2, SimpleChanges, ViewContainerRef\n} from '@angular/core';\n\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\n\nimport { Subscription } from 'rxjs';\n\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { BsDatepickerInlineConfig } from './bs-datepicker-inline.config';\nimport { BsDatepickerInlineContainerComponent } from './themes/bs/bs-datepicker-inline-container.component';\nimport { DatepickerDateCustomClasses } from './models';\n\n@Directive({\n selector: 'bs-datepicker-inline',\n exportAs: 'bsDatepickerInline'\n})\nexport class BsDatepickerInlineDirective implements OnInit, OnDestroy, OnChanges {\n _bsValue: Date;\n /**\n * Initial value of datepicker\n */\n @Input()\n set bsValue(value: Date) {\n if (this._bsValue === value) {\n return;\n }\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n\n /**\n * Config object for datepicker\n */\n @Input() bsConfig: Partial<BsDatepickerInlineConfig>;\n /**\n * Indicates whether datepicker is enabled or not\n */\n @Input() isDisabled: boolean;\n /**\n * Minimum date which is available for selection\n */\n @Input() minDate: Date;\n /**\n * Maximum date which is available for selection\n */\n @Input() maxDate: Date;\n /**\n * Date custom classes\n */\n @Input() dateCustomClasses: DatepickerDateCustomClasses[];\n /**\n * Disable specific dates\n */\n @Input() datesEnabled: Date[];\n /**\n * Enable specific dates\n */\n @Input() datesDisabled: Date[];\n /**\n * Emits when datepicker value has been changed\n */\n @Output() bsValueChange: EventEmitter<Date> = new EventEmitter();\n\n protected _subs: Subscription[] = [];\n\n private _datepicker: ComponentLoader<BsDatepickerInlineContainerComponent>;\n private _datepickerRef: ComponentRef<BsDatepickerInlineContainerComponent>;\n\n constructor(\n public _config: BsDatepickerInlineConfig,\n private _elementRef: ElementRef,\n _renderer: Renderer2,\n _viewContainerRef: ViewContainerRef,\n cis: ComponentLoaderFactory\n ) {\n // todo: assign only subset of fields\n Object.assign(this, this._config);\n this._datepicker = cis.createLoader<BsDatepickerInlineContainerComponent>(\n _elementRef,\n _viewContainerRef,\n _renderer\n );\n }\n\n ngOnInit(): void {\n this.setConfig();\n\n // if date changes from external source (model -> view)\n this._subs.push(\n this.bsValueChange.subscribe((value: Date) => {\n this._datepickerRef.instance.value = value;\n })\n );\n\n // if date changes from picker (view -> model)\n this._subs.push(\n this._datepickerRef.instance.valueChange.subscribe((value: Date) => {\n this.bsValue = value;\n })\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n\n if (changes.minDate) {\n this._datepickerRef.instance.minDate = this.minDate;\n this.setConfig();\n }\n\n if (changes.maxDate) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n this.setConfig();\n }\n\n if (changes.datesDisabled) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n this.setConfig();\n }\n\n if (changes.datesEnabled) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n this._datepickerRef.instance.value = this._bsValue;\n }\n\n if (changes.isDisabled) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n this.setConfig();\n }\n\n if (changes.dateCustomClasses) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n this.setConfig();\n }\n }\n\n /**\n * Set config for datepicker\n */\n setConfig(): void {\n if (this._datepicker) {\n this._datepicker.hide();\n }\n\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: this._bsValue,\n isDisabled: this.isDisabled,\n minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled\n });\n\n\n this._datepickerRef = this._datepicker\n .provide({provide: BsDatepickerConfig, useValue: this._config})\n .attach(BsDatepickerInlineContainerComponent)\n .to(this._elementRef)\n .show();\n }\n\n ngOnDestroy(): any {\n this._datepicker.dispose();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\n\n@Injectable()\nexport class BsDaterangepickerInlineConfig extends BsDatepickerConfig {\n // DatepickerRenderOptions\n displayMonths = 2;\n /** turn on/off animation */\n isAnimated = false;\n}\n","import { Component, ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2 } from '@angular/core';\n\nimport { BsDatepickerAbstractComponent } from '../../base/bs-datepicker-container';\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { DayViewModel } from '../../models';\nimport { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';\nimport { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from '../../reducer/bs-datepicker.store';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\nimport { Subscription } from 'rxjs';\nimport { datepickerAnimation } from '../../datepicker-animations';\nimport { take } from 'rxjs/operators';\nimport { BsCustomDates } from './bs-custom-dates-view.component';\n\n@Component({\n selector: 'bs-daterangepicker-container',\n providers: [BsDatepickerStore, BsDatepickerEffects],\n templateUrl: './bs-datepicker-view.html',\n host: {\n class: 'bottom',\n '(click)': '_stopPropagation($event)',\n role: 'dialog',\n 'aria-label': 'calendar'\n },\n animations: [datepickerAnimation]\n})\nexport class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent\n implements OnInit, OnDestroy {\n set value(value: Date[]) {\n this._effects.setRangeValue(value);\n }\n\n valueChange = new EventEmitter<Date[]>();\n animationState = 'void';\n\n _rangeStack: Date[] = [];\n chosenRange: Date[] = [];\n _subs: Subscription[] = [];\n\n constructor(\n _renderer: Renderer2,\n private _config: BsDatepickerConfig,\n private _store: BsDatepickerStore,\n private _element: ElementRef,\n private _actions: BsDatepickerActions,\n _effects: BsDatepickerEffects,\n private _positionService: PositioningService\n ) {\n super();\n this._effects = _effects;\n\n this.customRanges = this._config.ranges;\n\n _renderer.setStyle(_element.nativeElement, 'display', 'block');\n _renderer.setStyle(_element.nativeElement, 'position', 'absolute');\n }\n\n ngOnInit(): void {\n this._positionService.setOptions({\n modifiers: { flip: { enabled: this._config.adaptivePosition } },\n allowedPositions: ['top', 'bottom']\n });\n\n this._positionService.event$\n .pipe(\n take(1)\n )\n .subscribe(() => {\n this._positionService.disable();\n\n if (this._config.isAnimated) {\n this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n\n return;\n }\n\n this.animationState = 'unanimated';\n });\n this.containerClass = this._config.containerClass;\n this.isOtherMonthsActive = this._config.selectFromOtherMonth;\n this._effects\n .init(this._store)\n // intial state options\n // todo: fix this, split configs\n .setOptions(this._config)\n // data binding view --> model\n .setBindings(this)\n // set event handlers\n .setEventHandlers(this)\n .registerDatepickerSideEffects();\n\n // todo: move it somewhere else\n // on selected date change\n this._subs.push(\n this._store\n .select(state => state.selectedRange)\n .subscribe(date => {\n this.valueChange.emit(date);\n this.chosenRange = date;\n })\n );\n }\n\n get isTopPosition(): boolean {\n return this._element.nativeElement.classList.contains('top');\n }\n\n positionServiceEnable(): void {\n this._positionService.enable();\n }\n\n daySelectHandler(day: DayViewModel): void {\n if (!day) {\n return;\n }\n const isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);\n\n if (isDisabled) {\n return;\n }\n\n // if only one date is already selected\n // and user clicks on previous date\n // start selection from new date\n // but if new date is after initial one\n // than finish selection\n if (this._rangeStack.length === 1) {\n this._rangeStack =\n day.date >= this._rangeStack[0]\n ? [this._rangeStack[0], day.date]\n : [day.date];\n }\n\n if (this._rangeStack.length === 0) {\n this._rangeStack = [day.date];\n }\n\n this._store.dispatch(this._actions.selectRange(this._rangeStack));\n\n if (this._rangeStack.length === 2) {\n this._rangeStack = [];\n }\n }\n\n ngOnDestroy(): void {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n this._effects.destroy();\n }\n\n setRangeOnCalendar(dates: BsCustomDates): void {\n this._rangeStack = (dates === null) ? [] : (dates.value instanceof Date ? [dates.value] : dates.value);\n this._store.dispatch(this._actions.selectRange(this._rangeStack));\n }\n\n}\n","import { OnInit, OnDestroy, ElementRef, Component, Renderer2 } from '@angular/core';\nimport { BsDaterangepickerContainerComponent } from './bs-daterangepicker-container.component';\n\nimport { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from '../../reducer/bs-datepicker.store';\n\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { datepickerAnimation } from '../../datepicker-animations';\n\n@Component({\n selector: 'bs-daterangepicker-inline-container',\n providers: [BsDatepickerStore, BsDatepickerEffects],\n templateUrl: './bs-datepicker-view.html',\n host: {\n '(click)': '_stopPropagation($event)'\n },\n animations: [datepickerAnimation]\n})\nexport class BsDaterangepickerInlineContainerComponent extends BsDaterangepickerContainerComponent\n implements OnInit, OnDestroy {\n\n constructor(\n _renderer: Renderer2,\n _config: BsDatepickerConfig,\n _store: BsDatepickerStore,\n _element: ElementRef,\n _actions: BsDatepickerActions,\n _effects: BsDatepickerEffects,\n _positioningService: PositioningService\n ) {\n super(_renderer, _config, _store, _element, _actions, _effects, _positioningService);\n\n _renderer.setStyle(_element.nativeElement, 'display', 'inline-block');\n _renderer.setStyle(_element.nativeElement, 'position', 'static');\n }\n}\n","import {\n ComponentRef, Directive, ElementRef, EventEmitter, Input, OnChanges,\n OnDestroy, OnInit, Output, Renderer2, SimpleChanges, ViewContainerRef\n} from '@angular/core';\n\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\n\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { BsDaterangepickerInlineConfig } from './bs-daterangepicker-inline.config';\nimport { BsDaterangepickerInlineContainerComponent } from './themes/bs/bs-daterangepicker-inline-container.component';\nimport { DatepickerDateCustomClasses } from './models';\n\n@Directive({\n selector: 'bs-daterangepicker-inline',\n exportAs: 'bsDaterangepickerInline'\n})\nexport class BsDaterangepickerInlineDirective implements OnInit, OnDestroy, OnChanges {\n _bsValue: Date[];\n /**\n * Initial value of datepicker\n */\n @Input()\n set bsValue(value: Date[]) {\n if (this._bsValue === value) {\n return;\n }\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n\n /**\n * Config object for datepicker\n */\n @Input() bsConfig: Partial<BsDaterangepickerInlineConfig>;\n /**\n * Indicates whether datepicker is enabled or not\n */\n @Input() isDisabled: boolean;\n /**\n * Minimum date which is available for selection\n */\n @Input() minDate: Date;\n /**\n * Maximum date which is available for selection\n */\n @Input() maxDate: Date;\n /**\n * Date custom classes\n */\n @Input() dateCustomClasses: DatepickerDateCustomClasses[];\n /**\n * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays\n */\n @Input() daysDisabled?: number[];\n /**\n * Disable specific dates\n */\n @Input() datesDisabled: Date[];\n /**\n * Disable specific dates\n */\n @Input() datesEnabled: Date[];\n /**\n * Emits when daterangepicker value has been changed\n */\n @Output() bsValueChange: EventEmitter<Date[]> = new EventEmitter();\n\n protected _subs: Subscription[] = [];\n\n private _datepicker: ComponentLoader<BsDaterangepickerInlineContainerComponent>;\n private _datepickerRef: ComponentRef<BsDaterangepickerInlineContainerComponent>;\n\n constructor(\n public _config: BsDaterangepickerInlineConfig,\n private _elementRef: ElementRef,\n _renderer: Renderer2,\n _viewContainerRef: ViewContainerRef,\n cis: ComponentLoaderFactory\n ) {\n // todo: assign only subset of fields\n Object.assign(this, this._config);\n this._datepicker = cis.createLoader<BsDaterangepickerInlineContainerComponent>(\n _elementRef,\n _viewContainerRef,\n _renderer\n );\n }\n\n ngOnInit(): void {\n this.setConfig();\n\n // if date changes from external source (model -> view)\n this._subs.push(\n this.bsValueChange.subscribe((value: Date[]) => {\n this._datepickerRef.instance.value = value;\n })\n );\n\n // if date changes from picker (view -> model)\n this._subs.push(\n this._datepickerRef.instance.valueChange\n .pipe(\n filter((range: Date[]) => range && range[0] && !!range[1])\n )\n .subscribe((value: Date[]) => {\n this.bsValue = value;\n })\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n\n if (changes.minDate) {\n this._datepickerRef.instance.minDate = this.minDate;\n this.setConfig();\n }\n\n if (changes.maxDate) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n this.setConfig();\n }\n\n if (changes.datesEnabled) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n }\n\n if (changes.datesDisabled) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n this.setConfig();\n }\n\n if (changes.daysDisabled) {\n this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n this.setConfig();\n }\n\n if (changes.isDisabled) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n this.setConfig();\n }\n\n if (changes.dateCustomClasses) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n this.setConfig();\n }\n }\n\n /**\n * Set config for datepicker\n */\n setConfig(): void {\n if (this._datepicker) {\n this._datepicker.hide();\n }\n\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: this._bsValue,\n isDisabled: this.isDisabled,\n minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,\n dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n ranges: this.bsConfig && this.bsConfig.ranges\n });\n\n\n this._datepickerRef = this._datepicker\n .provide({provide: BsDatepickerConfig, useValue: this._config})\n .attach(BsDaterangepickerInlineContainerComponent)\n .to(this._elementRef)\n .show();\n }\n\n ngOnDestroy(): any {\n this._datepicker.dispose();\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n Host,\n Provider,\n Renderer2\n} from '@angular/core';\n\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\n\nimport {\n formatDate,\n getLocale,\n isAfter,\n isBefore,\n isDate,\n isDateValid,\n parseDate,\n utcAsLocal\n} from 'ngx-bootstrap/chronos';\n\nimport { BsDatepickerDirective } from './bs-datepicker.component';\nimport { BsLocaleService } from './bs-locale.service';\n\nconst BS_DATEPICKER_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => BsDatepickerInputDirective),\n multi: true\n};\n\nconst BS_DATEPICKER_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => BsDatepickerInputDirective),\n multi: true\n};\n\n@Directive({\n selector: `input[bsDatepicker]`,\n host: {\n '(change)': 'onChange($event)',\n '(keyup.esc)': 'hide()',\n '(keydown)': 'onKeydownEvent($event)',\n '(blur)': 'onBlur()'\n },\n providers: [BS_DATEPICKER_VALUE_ACCESSOR, BS_DATEPICKER_VALIDATOR]\n})\nexport class BsDatepickerInputDirective\n implements ControlValueAccessor, Validator {\n private _onChange = Function.prototype;\n private _onTouched = Function.prototype;\n /* tslint:disable-next-line: no-unused-variable */\n private _validatorChange = Function.prototype;\n private _value: Date;\n\n constructor(@Host() private _picker: BsDatepickerDirective,\n private _localeService: BsLocaleService,\n private _renderer: Renderer2,\n private _elRef: ElementRef,\n private changeDetection: ChangeDetectorRef) {\n // update input value on datepicker value update\n this._picker.bsValueChange.subscribe((value: Date) => {\n this._setInputValue(value);\n if (this._value !== value) {\n this._value = value;\n this._onChange(value);\n this._onTouched();\n }\n this.changeDetection.markForCheck();\n });\n\n // update input value on locale change\n this._localeService.localeChange.subscribe(() => {\n this._setInputValue(this._value);\n });\n }\n\n onKeydownEvent(event) {\n if (event.keyCode === 13 || event.code === 'Enter') {\n this.hide();\n }\n }\n\n _setInputValue(value: Date): void {\n const initialDate = !value ? ''\n : formatDate(value, this._picker._config.dateInputFormat, this._localeService.currentLocale);\n\n this._renderer.setProperty(this._elRef.nativeElement, 'value', initialDate);\n }\n\n onChange(event: Event) {\n /* tslint:disable-next-line: no-any*/\n this.writeValue((event.target as any).value);\n this._onChange(this._value);\n if (this._picker._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n }\n this._onTouched();\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n const _value: Date | string = c.value;\n\n /* tslint:disable-next-line: prefer-switch */\n if (_value === null || _value === undefined || _value === '') {\n return null;\n }\n\n if (isDate(_value)) {\n const _isDateValid = isDateValid(_value);\n if (!_isDateValid) {\n return { bsDate: { invalid: _value } };\n }\n\n if (this._picker && this._picker.minDate && isBefore(_value, this._picker.minDate, 'date')) {\n this.writeValue(this._picker.minDate);\n\n return { bsDate: { minDate: this._picker.minDate } };\n }\n\n if (this._picker && this._picker.maxDate && isAfter(_value, this._picker.maxDate, 'date')) {\n this.writeValue(this._picker.maxDate);\n\n return { bsDate: { maxDate: this._picker.maxDate } };\n }\n }\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorChange = fn;\n }\n\n writeValue(value: Date | string) {\n if (!value) {\n this._value = null;\n } else {\n const _localeKey = this._localeService.currentLocale;\n const _locale = getLocale(_localeKey);\n if (!_locale) {\n throw new Error(\n `Locale \"${_localeKey}\" is not defined, please add it with \"defineLocale(...)\"`\n );\n }\n\n this._value = parseDate(value, this._picker._config.dateInputFormat, this._localeService.currentLocale);\n\n if (this._picker._config.useUtc) {\n this._value = utcAsLocal(this._value);\n }\n }\n\n this._picker.bsValue = this._value;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._picker.isDisabled = isDisabled;\n if (isDisabled) {\n this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');\n }\n\n registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n onBlur() {\n this._onTouched();\n }\n\n hide() {\n this._picker.hide();\n this._renderer.selectRootElement(this._elRef.nativeElement).blur();\n if (this._picker._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\n\n@Injectable()\nexport class BsDaterangepickerConfig extends BsDatepickerConfig {\n // DatepickerRenderOptions\n displayMonths = 2;\n}\n","import {\n AfterViewInit,\n ComponentRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n ViewContainerRef\n} from '@angular/core';\nimport { BsDaterangepickerConfig } from './bs-daterangepicker.config';\nimport { BsDaterangepickerContainerComponent } from './themes/bs/bs-daterangepicker-container.component';\nimport { Subscription, Subject, BehaviorSubject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { ComponentLoaderFactory, ComponentLoader } from 'ngx-bootstrap/component-loader';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { DatepickerDateCustomClasses } from './models';\n\n@Directive({\n selector: '[bsDaterangepicker]',\n exportAs: 'bsDaterangepicker'\n})\nexport class BsDaterangepickerDirective\n implements OnInit, OnDestroy, OnChanges, AfterViewInit {\n /**\n * Placement of a daterangepicker. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n @Input() placement: 'top' | 'bottom' | 'left' | 'right' = 'bottom';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n @Input() triggers = 'click';\n /**\n * Close daterangepicker on outside click\n */\n @Input() outsideClick = true;\n /**\n * A selector specifying the element the daterangepicker should be appended to.\n */\n @Input() container = 'body';\n\n @Input() outsideEsc = true;\n\n /**\n * Returns whether or not the daterangepicker is currently being shown\n */\n @Input()\n get isOpen(): boolean {\n return this._datepicker.isShown;\n }\n\n set isOpen(value: boolean) {\n this.isOpen$.next(value);\n }\n\n /**\n * Emits an event when the daterangepicker is shown\n */\n /* tslint:disable-next-line: no-any*/\n @Output() onShown: EventEmitter<any>;\n /**\n * Emits an event when the daterangepicker is hidden\n */\n /* tslint:disable-next-line: no-any*/\n @Output() onHidden: EventEmitter<any>;\n\n _bsValue: Date[];\n isOpen$: BehaviorSubject<boolean>;\n isDestroy$: Subject<void>;\n\n /**\n * Initial value of daterangepicker\n */\n @Input()\n set bsValue(value: Date[]) {\n if (this._bsValue === value) {\n return;\n }\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n\n /**\n * Config object for daterangepicker\n */\n @Input() bsConfig: Partial<BsDaterangepickerConfig>;\n /**\n * Indicates whether daterangepicker's content is enabled or not\n */\n @Input() isDisabled: boolean;\n /**\n * Minimum date which is available for selection\n */\n @Input() minDate: Date;\n /**\n * Maximum date which is available for selection\n */\n @Input() maxDate: Date;\n /**\n * Date custom classes\n */\n @Input() dateCustomClasses: DatepickerDateCustomClasses[];\n /**\n * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays\n */\n @Input() daysDisabled?: number[];\n /**\n * Disable specific dates\n */\n @Input() datesDisabled: Date[];\n\n /**\n * Enable specific dates\n */\n @Input() datesEnabled: Date[];\n /**\n * Emits when daterangepicker value has been changed\n */\n @Output() bsValueChange: EventEmitter<Date[]> = new EventEmitter();\n\n protected _subs: Subscription[] = [];\n\n private _datepicker: ComponentLoader<BsDaterangepickerContainerComponent>;\n private _datepickerRef: ComponentRef<BsDaterangepickerContainerComponent>;\n\n constructor(public _config: BsDaterangepickerConfig,\n private _elementRef: ElementRef,\n private _renderer: Renderer2,\n _viewContainerRef: ViewContainerRef,\n cis: ComponentLoaderFactory) {\n this._datepicker = cis.createLoader<BsDaterangepickerContainerComponent>(\n _elementRef,\n _viewContainerRef,\n _renderer\n );\n Object.assign(this, _config);\n this.onShown = this._datepicker.onShown;\n this.onHidden = this._datepicker.onHidden;\n this.isOpen$ = new BehaviorSubject(this.isOpen);\n }\n\n ngOnInit(): void {\n this.isDestroy$ = new Subject();\n this._datepicker.listen({\n outsideClick: this.outsideClick,\n outsideEsc: this.outsideEsc,\n triggers: this.triggers,\n show: () => this.show()\n });\n this.setConfig();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n\n if (changes.minDate) {\n this._datepickerRef.instance.minDate = this.minDate;\n }\n\n if (changes.maxDate) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n }\n\n if (changes.datesDisabled) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n }\n\n if (changes.datesEnabled) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n }\n\n if (changes.daysDisabled) {\n this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n }\n\n if (changes.isDisabled) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n }\n\n if (changes.dateCustomClasses) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n }\n }\n\n ngAfterViewInit(): void {\n this.isOpen$.pipe(\n filter(isOpen => isOpen !== this.isOpen),\n takeUntil(this.isDestroy$)\n )\n .subscribe(() => this.toggle());\n }\n\n /**\n * Opens an elementâs datepicker. This is considered a âmanualâ triggering of\n * the datepicker.\n */\n show(): void {\n if (this._datepicker.isShown) {\n return;\n }\n\n this.setConfig();\n\n this._datepickerRef = this._datepicker\n .provide({ provide: BsDatepickerConfig, useValue: this._config })\n .attach(BsDaterangepickerContainerComponent)\n .to(this.container)\n .position({ attachment: this.placement })\n .show({ placement: this.placement });\n\n // if date changes from external source (model -> view)\n this._subs.push(\n this.bsValueChange.subscribe((value: Date[]) => {\n this._datepickerRef.instance.value = value;\n })\n );\n\n // if date changes from picker (view -> model)\n this._subs.push(\n this._datepickerRef.instance.valueChange\n .pipe(\n filter((range: Date[]) => range && range[0] && !!range[1])\n )\n .subscribe((value: Date[]) => {\n this.bsValue = value;\n this.hide();\n })\n );\n }\n\n /**\n * Set config for daterangepicker\n */\n setConfig() {\n this._config = Object.assign(\n {},\n this._config,\n this.bsConfig,\n {\n value: this._bsValue,\n isDisabled: this.isDisabled,\n minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,\n dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n ranges: this.bsConfig && this.bsConfig.ranges\n }\n );\n }\n\n /**\n * Closes an elementâs datepicker. This is considered a âmanualâ triggering of\n * the datepicker.\n */\n hide(): void {\n if (this.isOpen) {\n this._datepicker.hide();\n }\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n\n if (this._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elementRef.nativeElement).focus();\n }\n }\n\n /**\n * Toggles an elementâs datepicker. This is considered a âmanualâ triggering\n * of the datepicker.\n */\n toggle(): void {\n if (this.isOpen) {\n return this.hide();\n }\n\n this.show();\n }\n\n ngOnDestroy(): void {\n this._datepicker.dispose();\n this.isOpen$.next(false);\n if (this.isDestroy$) {\n this.isDestroy$.next();\n this.isDestroy$.complete();\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n Host,\n Provider,\n Renderer2\n} from '@angular/core';\n\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\n\nimport {\n parseDate,\n formatDate,\n getLocale,\n isAfter,\n isBefore,\n isArray,\n isDateValid,\n utcAsLocal\n} from 'ngx-bootstrap/chronos';\n\nimport { BsDaterangepickerDirective } from './bs-daterangepicker.component';\nimport { BsLocaleService } from './bs-locale.service';\n\nconst BS_DATERANGEPICKER_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => BsDaterangepickerInputDirective),\n multi: true\n};\n\nconst BS_DATERANGEPICKER_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => BsDaterangepickerInputDirective),\n multi: true\n};\n\n\n@Directive({\n selector: `input[bsDaterangepicker]`,\n host: {\n '(change)': 'onChange($event)',\n '(keyup.esc)': 'hide()',\n '(keydown)': 'onKeydownEvent($event)',\n '(blur)': 'onBlur()'\n },\n providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR]\n})\nexport class BsDaterangepickerInputDirective\n implements ControlValueAccessor, Validator {\n private _onChange = Function.prototype;\n private _onTouched = Function.prototype;\n /* tslint:disable-next-line: no-unused-variable */\n private _validatorChange = Function.prototype;\n private _value: Date[];\n\n constructor(@Host() private _picker: BsDaterangepickerDirective,\n private _localeService: BsLocaleService,\n private _renderer: Renderer2,\n private _elRef: ElementRef,\n private changeDetection: ChangeDetectorRef) {\n // update input value on datepicker value update\n this._picker.bsValueChange.subscribe((value: Date[]) => {\n this._setInputValue(value);\n if (this._value !== value) {\n this._value = value;\n this._onChange(value);\n this._onTouched();\n }\n this.changeDetection.markForCheck();\n });\n\n // update input value on locale change\n this._localeService.localeChange.subscribe(() => {\n this._setInputValue(this._value);\n });\n }\n\n onKeydownEvent(event) {\n if (event.keyCode === 13 || event.code === 'Enter') {\n this.hide();\n }\n }\n\n _setInputValue(date: Date[]): void {\n let range = '';\n if (date) {\n const start: string = !date[0] ? ''\n : formatDate(date[0],\n this._picker._config.rangeInputFormat,\n this._localeService.currentLocale\n );\n const end: string = !date[1] ? ''\n : formatDate(\n date[1],\n this._picker._config.rangeInputFormat,\n this._localeService.currentLocale\n );\n range = (start && end) ? start + this._picker._config.rangeSeparator + end : '';\n }\n this._renderer.setProperty(this._elRef.nativeElement, 'value', range);\n }\n\n onChange(event: Event) {\n /* tslint:disable-next-line: no-any*/\n this.writeValue((event.target as any).value);\n this._onChange(this._value);\n if (this._picker._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n }\n this._onTouched();\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n const _value: [Date, Date] = c.value;\n const errors: object[] = [];\n\n if (_value === null || _value === undefined || !isArray(_value)) {\n return null;\n }\n\n // @ts-ignore\n _value.sort((a, b) => a - b);\n\n const _isFirstDateValid = isDateValid(_value[0]);\n const _isSecondDateValid = isDateValid(_value[1]);\n\n if (!_isFirstDateValid) {\n return { bsDate: { invalid: _value[0] } };\n }\n\n if (!_isSecondDateValid) {\n return { bsDate: { invalid: _value[1] } };\n }\n\n if (this._picker && this._picker.minDate && isBefore(_value[0], this._picker.minDate, 'date')) {\n _value[0] = this._picker.minDate;\n errors.push({ bsDate: { minDate: this._picker.minDate } });\n }\n\n if (this._picker && this._picker.maxDate && isAfter(_value[1], this._picker.maxDate, 'date')) {\n _value[1] = this._picker.maxDate;\n errors.push({ bsDate: { maxDate: this._picker.maxDate } });\n }\n if (errors.length > 0) {\n this.writeValue(_value);\n\n return errors;\n }\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorChange = fn;\n }\n\n writeValue(value: Date[] | string) {\n if (!value) {\n this._value = null;\n } else {\n const _localeKey = this._localeService.currentLocale;\n const _locale = getLocale(_localeKey);\n if (!_locale) {\n throw new Error(\n `Locale \"${_localeKey}\" is not defined, please add it with \"defineLocale(...)\"`\n );\n }\n\n let _input: (string[] | Date[]) = [];\n if (typeof value === 'string') {\n _input = value.split(this._picker._config.rangeSeparator);\n }\n\n if (Array.isArray(value)) {\n _input = value;\n }\n\n this._value = (_input as string[])\n .map((_val: string): Date => {\n if (this._picker._config.useUtc) {\n return utcAsLocal(\n parseDate(_val, this._picker._config.dateInputFormat, this._localeService.currentLocale)\n );\n }\n\n return parseDate(_val, this._picker._config.dateInputFormat, this._localeService.currentLocale);\n }\n )\n .map((date: Date) => (isNaN(date.valueOf()) ? null : date));\n }\n\n this._picker.bsValue = this._value;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._picker.isDisabled = isDisabled;\n if (isDisabled) {\n this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');\n }\n\n /* tslint:disable-next-line: no-any*/\n registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n /* tslint:disable-next-line: no-any*/\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n onBlur() {\n this._onTouched();\n }\n\n hide() {\n this._picker.hide();\n this._renderer.selectRootElement(this._elRef.nativeElement).blur();\n\n if (this._picker._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n }\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bs-calendar-layout',\n template: `\n <!-- current date, will be added in nearest releases -->\n <bs-current-date title=\"hey there\" *ngIf=\"false\"></bs-current-date>\n\n <!--navigation-->\n <div class=\"bs-datepicker-head\">\n <ng-content select=\"bs-datepicker-navigation-view\"></ng-content>\n </div>\n\n <div class=\"bs-datepicker-body\">\n <ng-content></ng-content>\n </div>\n\n <!--timepicker-->\n <bs-timepicker *ngIf=\"false\"></bs-timepicker>\n `\n})\nexport class BsCalendarLayoutComponent {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'bs-current-date',\n template: `<div class=\"current-timedate\"><span>{{ title }}</span></div>`\n})\nexport class BsCurrentDateViewComponent {\n @Input() title: string;\n}\n","import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';\n\nexport interface BsCustomDates {\n label: string;\n value: Date | Date[];\n}\n\n@Component({\n selector: 'bs-custom-date-view',\n template: `\n <div class=\"bs-datepicker-predefined-btns\">\n <button *ngFor=\"let range of ranges\"\n type=\"button\"\n class=\"btn\"\n (click)=\"selectFromRanges(range)\"\n [class.selected]=\"range.value === selectedRange\">\n {{ range.label }}\n </button>\n <button\n type=\"button\"\n class=\"btn\"\n (click)=\"selectFromRanges(customRange)\"\n [class.selected]=\"!checkRange()\">\n Custom Range\n </button>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BsCustomDatesViewComponent {\n @Input() ranges: BsCustomDates[];\n @Input() selectedRange: Date[];\n @Output() onSelect = new EventEmitter<BsCustomDates>();\n\n customRange: any = null;\n\n selectFromRanges(range: BsCustomDates) {\n this.onSelect.emit(range);\n }\n\n checkRange() {\n return this.ranges ? this.ranges.filter(range => range.value === this.selectedRange).length > 0 : false;\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnInit,\n Renderer2\n} from '@angular/core';\n\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { DayViewModel } from '../../models';\n\n@Component({\n selector: '[bsDatepickerDayDecorator]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.disabled]': 'day.isDisabled',\n '[class.is-highlighted]': 'day.isHovered',\n '[class.is-other-month]': 'day.isOtherMonth',\n '[class.is-active-other-month]': 'day.isOtherMonthHovered',\n '[class.in-range]': 'day.isInRange',\n '[class.select-start]': 'day.isSelectionStart',\n '[class.select-end]': 'day.isSelectionEnd',\n '[class.selected]': 'day.isSelected'\n },\n template: `{{ day.label }}`\n})\nexport class BsDatepickerDayDecoratorComponent implements OnInit {\n @Input() day: DayViewModel;\n\n constructor(\n private _config: BsDatepickerConfig,\n private _elRef: ElementRef,\n private _renderer: Renderer2\n ) { }\n\n ngOnInit(): void {\n if (this.day.isToday && this._config && this._config.customTodayClass) {\n this._renderer.addClass(this._elRef.nativeElement, this._config.customTodayClass);\n }\n\n if (typeof this.day.customClasses === 'string') {\n this.day.customClasses.split(' ')\n .filter((className: string) => className)\n .forEach((className: string) => {\n this._renderer.addClass(this._elRef.nativeElement, className);\n });\n }\n }\n}\n","import { TimeUnit } from 'ngx-bootstrap/chronos';\n\nexport type BsDatepickerViewMode = 'day' | 'month' | 'year';\n\n/** *************** */\n// navigation bar settings\nexport interface NavigationViewModel {\n monthTitle: string;\n yearTitle: string;\n hideLeftArrow?: boolean;\n hideRightArrow?: boolean;\n disableLeftArrow?: boolean;\n disableRightArrow?: boolean;\n}\n\nexport interface CalendarCellViewModel {\n date: Date;\n label: string;\n isDisabled?: boolean;\n isHovered?: boolean;\n isSelected?: boolean;\n}\n\n/** *************** */\n// days matrix: day cell view model\nexport interface DayViewModel extends CalendarCellViewModel {\n isOtherMonthHovered?: boolean;\n isOtherMonth?: boolean;\n isInRange?: boolean;\n isSelectionStart?: boolean;\n isSelectionEnd?: boolean;\n isToday?: boolean;\n customClasses?: string;\n // day index\n monthIndex?: number;\n weekIndex?: number;\n dayIndex?: number;\n}\n\nexport interface WeekViewModel {\n days: DayViewModel[];\n isHovered?: boolean;\n}\n\n// todo: split navigation settings\nexport interface DaysCalendarViewModel extends NavigationViewModel {\n weeks: WeekViewModel[];\n // additional information\n month: Date;\n weekNumbers: string[];\n weekdays: string[];\n}\n\n/** *************** */\n// months calendar\nexport interface MonthsCalendarViewModel extends NavigationViewModel {\n months: CalendarCellViewModel[][];\n}\n\n/** *************** */\n// years calendar\nexport interface YearsCalendarViewModel extends NavigationViewModel {\n years: CalendarCellViewModel[][];\n}\n\n/** *************** */\n\n// math model\n/** *************** */\n\n// days Date's array\nexport interface DaysCalendarModel {\n daysMatrix: Date[][];\n month: Date;\n}\n\n/** *************** */\n// some func options\nexport interface MonthViewOptions {\n width?: number;\n height?: number;\n firstDayOfWeek?: number;\n}\n\n/** *************** */\n// rendering options\nexport interface DatepickerFormatOptions {\n locale: string;\n\n monthTitle: string;\n yearTitle: string;\n\n dayLabel: string;\n monthLabel: string;\n yearLabel: string;\n\n weekNumbers: string;\n}\n\nexport interface DatepickerRenderOptions {\n showWeekNumbers?: boolean;\n displayMonths?: number;\n}\n\nexport interface DatepickerDateCustomClasses {\n date: Date;\n classes: string[];\n}\n\n/** *************** */\n// events\n/** *************** */\nexport enum BsNavigationDirection {\n UP,\n DOWN\n}\n\n// used for navigation events, to change view date in state\nexport interface BsNavigationEvent {\n direction?: BsNavigationDirection;\n step?: TimeUnit;\n}\n\nexport interface BsViewNavigationEvent {\n unit?: TimeUnit;\n viewMode: BsDatepickerViewMode;\n}\n\nexport interface CellHoverEvent {\n cell: CalendarCellViewModel;\n isHovered: boolean;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\nimport {\n BsDatepickerViewMode,\n BsNavigationDirection,\n DaysCalendarViewModel\n} from '../../models';\n\n@Component({\n selector: 'bs-datepicker-navigation-view',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <button class=\"previous\"\n [disabled]=\"calendar.disableLeftArrow\"\n [style.visibility]=\"calendar.hideLeftArrow ? 'hidden' : 'visible'\"\n type=\"button\"\n (click)=\"navTo(true)\">\n <span>‹</span>\n </button>\n\n <ng-container *ngIf=\"calendar.monthTitle\">\n ​ <!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular -->\n\n <button class=\"current\"\n type=\"button\"\n (click)=\"view('month')\"\n ><span>{{ calendar.monthTitle }}</span>\n </button>\n </ng-container>\n\n ​ <!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular -->\n\n <button class=\"current\" (click)=\"view('year')\" type=\"button\">\n <span>{{ calendar.yearTitle }}</span>\n </button>\n\n ​ <!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular -->\n\n <button class=\"next\"\n [disabled]=\"calendar.disableRightArrow\"\n [style.visibility]=\"calendar.hideRightArrow ? 'hidden' : 'visible'\"\n type=\"button\"\n (click)=\"navTo(false)\"><span>›</span>\n </button>\n `\n})\nexport class BsDatepickerNavigationViewComponent {\n @Input() calendar: DaysCalendarViewModel;\n\n @Output() onNavigate = new EventEmitter<BsNavigationDirection>();\n @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n navTo(down: boolean): void {\n this.onNavigate.emit(\n down ? BsNavigationDirection.DOWN : BsNavigationDirection.UP\n );\n }\n\n view(viewMode: BsDatepickerViewMode): void {\n this.onViewMode.emit(viewMode);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\n\nimport {\n BsDatepickerViewMode,\n BsNavigationDirection,\n BsNavigationEvent,\n CellHoverEvent,\n DatepickerRenderOptions,\n DaysCalendarViewModel,\n DayViewModel, WeekViewModel\n} from '../../models';\n\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\n\n@Component({\n selector: 'bs-days-calendar-view',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"changeViewMode($event)\"\n ></bs-datepicker-navigation-view>\n\n <!--days matrix-->\n <table role=\"grid\" class=\"days weeks\">\n <thead>\n <tr>\n <!--if show weeks-->\n <th *ngIf=\"options.showWeekNumbers\"></th>\n <th *ngFor=\"let weekday of calendar.weekdays; let i = index\"\n aria-label=\"weekday\">{{ calendar.weekdays[i] }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let week of calendar.weeks; let i = index\">\n <td class=\"week\" [class.active-week]=\"isWeekHovered\" *ngIf=\"options.showWeekNumbers\">\n <span\n (click)=\"selectWeek(week)\"\n (mouseenter)=\"weekHoverHandler(week, true)\"\n (mouseleave)=\"weekHoverHandler(week, false)\">{{ calendar.weekNumbers[i] }}</span>\n </td>\n <td *ngFor=\"let day of week.days\" role=\"gridcell\">\n <span bsDatepickerDayDecorator\n [day]=\"day\"\n (click)=\"selectDay(day)\"\n (mouseenter)=\"hoverDay(day, true)\"\n (mouseleave)=\"hoverDay(day, false)\">{{ day.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n\n </bs-calendar-layout>\n `\n})\nexport class BsDaysCalendarViewComponent {\n @Input() calendar: DaysCalendarViewModel;\n @Input() options: DatepickerRenderOptions;\n\n @Output() onNavigate = new EventEmitter<BsNavigationEvent>();\n @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n @Output() onSelect = new EventEmitter<DayViewModel>();\n @Output() onHover = new EventEmitter<CellHoverEvent>();\n @Output() onHoverWeek = new EventEmitter<WeekViewModel>();\n\n isWeekHovered: boolean;\n\n constructor(private _config: BsDatepickerConfig) { }\n\n navigateTo(event: BsNavigationDirection): void {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({ step: { month: step } });\n }\n\n changeViewMode(event: BsDatepickerViewMode): void {\n this.onViewMode.emit(event);\n }\n\n selectDay(event: DayViewModel): void {\n this.onSelect.emit(event);\n }\n\n selectWeek(week: WeekViewModel): void {\n if (!this._config.selectWeek && !this._config.selectWeekDateRange) {\n return;\n }\n\n if (week.days.length === 0) {\n return;\n }\n\n if (this._config.selectWeek && week.days[0]\n && !week.days[0].isDisabled\n && this._config.selectFromOtherMonth) {\n\n this.onSelect.emit(week.days[0]);\n\n return;\n }\n\n const selectedDay = week.days.find((day: DayViewModel) => {\n return this._config.selectFromOtherMonth\n ? !day.isDisabled\n : !day.isOtherMonth && !day.isDisabled;\n });\n\n this.onSelect.emit(selectedDay);\n\n if (this._config.selectWeekDateRange) {\n const days = week.days.slice(0);\n const lastDayOfRange = days.reverse().find((day: DayViewModel) => {\n return this._config.selectFromOtherMonth\n ? !day.isDisabled\n : !day.isOtherMonth && !day.isDisabled;\n });\n\n this.onSelect.emit(lastDayOfRange);\n }\n }\n\n weekHoverHandler(cell: WeekViewModel, isHovered: boolean): void {\n if (!this._config.selectWeek && !this._config.selectWeekDateRange) {\n return;\n }\n\n const hasActiveDays = cell.days.find((day: DayViewModel) => {\n return this._config.selectFromOtherMonth\n ? !day.isDisabled\n : !day.isOtherMonth && !day.isDisabled;\n });\n\n if (hasActiveDays) {\n cell.isHovered = isHovered;\n this.isWeekHovered = isHovered;\n this.onHoverWeek.emit(cell);\n }\n }\n\n hoverDay(cell: DayViewModel, isHovered: boolean): void {\n if (this._config.selectFromOtherMonth && cell.isOtherMonth) {\n cell.isOtherMonthHovered = isHovered;\n }\n\n this.onHover.emit({ cell, isHovered });\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n BsDatepickerViewMode,\n BsNavigationDirection,\n BsNavigationEvent,\n CellHoverEvent,\n MonthsCalendarViewModel,\n CalendarCellViewModel\n} from '../../models';\n\n@Component({\n selector: 'bs-month-calendar-view',\n template: `\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"changeViewMode($event)\"\n ></bs-datepicker-navigation-view>\n\n <table role=\"grid\" class=\"months\">\n <tbody>\n <tr *ngFor=\"let row of calendar.months\">\n <td *ngFor=\"let month of row\" role=\"gridcell\"\n (click)=\"viewMonth(month)\"\n (mouseenter)=\"hoverMonth(month, true)\"\n (mouseleave)=\"hoverMonth(month, false)\"\n [class.disabled]=\"month.isDisabled\"\n [class.is-highlighted]=\"month.isHovered\">\n <span [class.selected]=\"month.isSelected\">{{ month.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n </bs-calendar-layout>\n `\n})\nexport class BsMonthCalendarViewComponent {\n @Input() calendar: MonthsCalendarViewModel;\n\n @Output() onNavigate = new EventEmitter<BsNavigationEvent>();\n @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n @Output() onSelect = new EventEmitter<CalendarCellViewModel>();\n @Output() onHover = new EventEmitter<CellHoverEvent>();\n\n navigateTo(event: BsNavigationDirection): void {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({ step: { year: step } });\n }\n\n viewMonth(month: CalendarCellViewModel) {\n this.onSelect.emit(month);\n }\n\n hoverMonth(cell: CalendarCellViewModel, isHovered: boolean) {\n this.onHover.emit({ cell, isHovered });\n }\n\n changeViewMode(event: BsDatepickerViewMode): void {\n this.onViewMode.emit(event);\n }\n}\n","// tslint:disable:max-line-length\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'bs-timepicker',\n template: `\n <div class=\"bs-timepicker-container\">\n <div class=\"bs-timepicker-controls\">\n <button class=\"bs-decrease\" type=\"button\">-</button>\n <input type=\"text\" [value]=\"hours\" placeholder=\"00\">\n <button class=\"bs-increase\" type=\"button\">+</button>\n </div>\n <div class=\"bs-timepicker-controls\">\n <button class=\"bs-decrease\" type=\"button\">-</button>\n <input type=\"text\" [value]=\"minutes\" placeholder=\"00\">\n <button class=\"bs-increase\" type=\"button\">+</button>\n </div>\n <button class=\"switch-time-format\" type=\"button\">{{ ampm }}\n <img\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAKCAYAAABi8KSDAAABSElEQVQYV3XQPUvDUBQG4HNuagtVqc6KgouCv6GIuIntYBLB9hcIQpLStCAIV7DYmpTcRWcXqZio3Vwc/UCc/QEqfgyKGbr0I7nS1EiHeqYzPO/h5SD0jaxUZjmSLCB+OFb+UFINFwASAEAdpu9gaGXVyAHHFQBkHpKHc6a9dzECvADyY9sqlAMsK9W0jzxDXqeytr3mhQckxSji27TJJ5/rPmIpwJJq3HrtduriYOurv1a4i1p5HnhkG9OFymi0ReoO05cGwb+ayv4dysVygjeFmsP05f8wpZQ8fsdvfmuY9zjWSNqUtgYFVnOVReILYoBFzdQI5/GGFzNHhGbeZnopDGU29sZbscgldmC99w35VOATTycIMMcBXIfpSVGzZhA6C8hh00conln6VQ9TGgV32OEAKQC4DrBq7CJwd0ggR7Vq/rPrfgB+C3sGypY5DAAAAABJRU5ErkJggg==\"\n alt=\"\">\n </button>\n </div>\n `\n})\nexport class BsTimepickerViewComponent {\n ampm = 'ok';\n hours = 0;\n minutes = 0;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { yearsPerCalendar } from '../../engine/format-years-calendar';\nimport {\n BsDatepickerViewMode,\n BsNavigationDirection,\n BsNavigationEvent,\n CalendarCellViewModel,\n CellHoverEvent,\n YearsCalendarViewModel\n} from '../../models';\n\n@Component({\n selector: 'bs-years-calendar-view',\n template: `\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"changeViewMode($event)\"\n ></bs-datepicker-navigation-view>\n\n <table role=\"grid\" class=\"years\">\n <tbody>\n <tr *ngFor=\"let row of calendar.years\">\n <td *ngFor=\"let year of row\" role=\"gridcell\"\n (click)=\"viewYear(year)\"\n (mouseenter)=\"hoverYear(year, true)\"\n (mouseleave)=\"hoverYear(year, false)\"\n [class.disabled]=\"year.isDisabled\"\n [class.is-highlighted]=\"year.isHovered\">\n <span [class.selected]=\"year.isSelected\">{{ year.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n </bs-calendar-layout>\n `\n})\nexport class BsYearsCalendarViewComponent {\n @Input() calendar: YearsCalendarViewModel;\n\n @Output() onNavigate = new EventEmitter<BsNavigationEvent>();\n @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n @Output() onSelect = new EventEmitter<CalendarCellViewModel>();\n @Output() onHover = new EventEmitter<CellHoverEvent>();\n\n navigateTo(event: BsNavigationDirection): void {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({ step: { year: step * yearsPerCalendar } });\n }\n\n viewYear(year: CalendarCellViewModel) {\n this.onSelect.emit(year);\n }\n\n hoverYear(cell: CalendarCellViewModel, isHovered: boolean) {\n this.onHover.emit({ cell, isHovered });\n }\n\n changeViewMode(event: BsDatepickerViewMode): void {\n this.onViewMode.emit(event);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\nimport { BsDatepickerInputDirective } from './bs-datepicker-input.directive';\nimport { BsDatepickerDirective } from './bs-datepicker.component';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { BsDaterangepickerInputDirective } from './bs-daterangepicker-input.directive';\nimport { BsDaterangepickerDirective } from './bs-daterangepicker.component';\nimport { BsDaterangepickerConfig } from './bs-daterangepicker.config';\n\nimport { BsDatepickerInlineDirective } from './bs-datepicker-inline.component';\nimport { BsDatepickerInlineConfig } from './bs-datepicker-inline.config';\n\nimport { BsLocaleService } from './bs-locale.service';\nimport { BsDatepickerActions } from './reducer/bs-datepicker.actions';\nimport { BsDatepickerEffects } from './reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from './reducer/bs-datepicker.store';\nimport { BsDatepickerContainerComponent } from './themes/bs/bs-datepicker-container.component';\nimport { BsDaterangepickerContainerComponent } from './themes/bs/bs-daterangepicker-container.component';\n\nimport { BsDatepickerInlineContainerComponent } from './themes/bs/bs-datepicker-inline-container.component';\nimport { BsDaterangepickerInlineContainerComponent } from './themes/bs/bs-daterangepicker-inline-container.component';\n\nimport { BsDaterangepickerInlineDirective } from './bs-daterangepicker-inline.component';\nimport { BsDaterangepickerInlineConfig } from './bs-daterangepicker-inline.config';\n\nimport { BsCalendarLayoutComponent } from './themes/bs/bs-calendar-layout.component';\nimport { BsCurrentDateViewComponent } from './themes/bs/bs-current-date-view.component';\nimport { BsCustomDatesViewComponent } from './themes/bs/bs-custom-dates-view.component';\nimport { BsDatepickerDayDecoratorComponent } from './themes/bs/bs-datepicker-day-decorator.directive';\nimport { BsDatepickerNavigationViewComponent } from './themes/bs/bs-datepicker-navigation-view.component';\nimport { BsDaysCalendarViewComponent } from './themes/bs/bs-days-calendar-view.component';\nimport { BsMonthCalendarViewComponent } from './themes/bs/bs-months-calendar-view.component';\nimport { BsTimepickerViewComponent } from './themes/bs/bs-timepicker-view.component';\nimport { BsYearsCalendarViewComponent } from './themes/bs/bs-years-calendar-view.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n BsCalendarLayoutComponent,\n BsCurrentDateViewComponent,\n BsCustomDatesViewComponent,\n BsDatepickerDayDecoratorComponent,\n BsDatepickerNavigationViewComponent,\n BsDaysCalendarViewComponent,\n BsMonthCalendarViewComponent,\n BsTimepickerViewComponent,\n BsYearsCalendarViewComponent,\n BsDatepickerContainerComponent,\n BsDatepickerDirective,\n BsDatepickerInlineContainerComponent,\n BsDatepickerInlineDirective,\n BsDatepickerInputDirective,\n BsDaterangepickerContainerComponent,\n BsDaterangepickerDirective,\n BsDaterangepickerInlineContainerComponent,\n BsDaterangepickerInlineDirective,\n BsDaterangepickerInputDirective\n ],\n entryComponents: [\n BsDatepickerContainerComponent,\n BsDaterangepickerContainerComponent,\n BsDatepickerInlineContainerComponent,\n BsDaterangepickerInlineContainerComponent\n ],\n exports: [\n BsDatepickerContainerComponent,\n BsDatepickerDirective,\n BsDatepickerInlineContainerComponent,\n BsDatepickerInlineDirective,\n BsDatepickerInputDirective,\n BsDaterangepickerContainerComponent,\n BsDaterangepickerDirective,\n BsDaterangepickerInlineContainerComponent,\n BsDaterangepickerInlineDirective,\n BsDaterangepickerInputDirective\n ]\n})\nexport class BsDatepickerModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: BsDatepickerModule,\n providers: [\n ComponentLoaderFactory,\n PositioningService,\n BsDatepickerStore,\n BsDatepickerActions,\n BsDatepickerConfig,\n BsDaterangepickerConfig,\n BsDatepickerInlineConfig,\n BsDaterangepickerInlineConfig,\n BsDatepickerEffects,\n BsLocaleService\n ]\n };\n }\n}\n","import { formatDate } from 'ngx-bootstrap/chronos';\n\nexport class DateFormatter {\n format(date: Date, format: string, locale: string): string {\n return formatDate(date, format, locale);\n }\n}\n","/* tslint:disable: max-file-line-count */\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\n\nimport { DateFormatter } from './date-formatter';\n\n\n@Component({\n selector: 'datepicker-inner',\n template: `\n <!--<!–ng-keydown=\"keydown($event)\"–>-->\n <div *ngIf=\"datepickerMode\" class=\"well well-sm bg-faded p-a card\" role=\"application\" >\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DatePickerInnerComponent implements OnInit, OnChanges {\n @Input() locale: string;\n @Input() datepickerMode: string;\n @Input() startingDay: number;\n @Input() yearRange: number;\n\n @Input() minDate: Date;\n @Input() maxDate: Date;\n @Input() minMode: string;\n @Input() maxMode: string;\n @Input() showWeeks: boolean;\n @Input() formatDay: string;\n @Input() formatMonth: string;\n @Input() formatYear: string;\n @Input() formatDayHeader: string;\n @Input() formatDayTitle: string;\n @Input() formatMonthTitle: string;\n @Input() onlyCurrentMonth: boolean;\n @Input() shortcutPropagation: boolean;\n @Input() customClass: { date: Date; mode: string; clazz: string }[];\n @Input() monthColLimit: number;\n @Input() yearColLimit: number;\n @Input() dateDisabled: { date: Date; mode: string }[];\n @Input() dayDisabled: number[];\n @Input() initDate: Date;\n\n @Output() selectionDone: EventEmitter<Date> = new EventEmitter<Date>(undefined);\n @Output() update: EventEmitter<Date> = new EventEmitter<Date>(false);\n @Output() activeDateChange: EventEmitter<Date> = new EventEmitter<Date>(undefined);\n\n /* tslint:disable-next-line: no-any*/\n stepDay: any = {};\n /* tslint:disable-next-line: no-any*/\n stepMonth: any = {};\n /* tslint:disable-next-line: no-any*/\n stepYear: any = {};\n\n uniqueId: string;\n\n protected modes: string[] = ['day', 'month', 'year'];\n protected dateFormatter: DateFormatter = new DateFormatter();\n protected _activeDate: Date;\n protected selectedDate: Date;\n protected activeDateId: string;\n\n protected refreshViewHandlerDay: Function;\n protected compareHandlerDay: Function;\n protected refreshViewHandlerMonth: Function;\n protected compareHandlerMonth: Function;\n protected refreshViewHandlerYear: Function;\n protected compareHandlerYear: Function;\n\n @Input()\n get activeDate(): Date {\n return this._activeDate;\n }\n\n set activeDate(value: Date) {\n this._activeDate = value;\n }\n\n // todo: add formatter value to Date object\n ngOnInit(): void {\n // todo: use date for unique value\n this.uniqueId = `datepicker--${Math.floor(Math.random() * 10000)}`;\n\n if (this.initDate) {\n this.activeDate = this.initDate;\n this.selectedDate = new Date(this.activeDate.valueOf());\n this.update.emit(this.activeDate);\n } else if (this.activeDate === undefined) {\n this.activeDate = new Date();\n }\n }\n\n // this.refreshView should be called here to reflect the changes on the fly\n // tslint:disable-next-line:no-unused-variable\n ngOnChanges(changes: SimpleChanges): void {\n this.refreshView();\n this.checkIfActiveDateGotUpdated(changes.activeDate);\n }\n\n // Check if activeDate has been update and then emit the activeDateChange with the new date\n /* tslint:disable-next-line: no-any */\n checkIfActiveDateGotUpdated(activeDate: any): void {\n if (activeDate && !activeDate.firstChange) {\n const previousValue = activeDate.previousValue;\n if (\n previousValue &&\n previousValue instanceof Date &&\n previousValue.getTime() !== activeDate.currentValue.getTime()\n ) {\n this.activeDateChange.emit(this.activeDate);\n }\n }\n }\n\n setCompareHandler(handler: Function, type: string): void {\n if (type === 'day') {\n this.compareHandlerDay = handler;\n }\n\n if (type === 'month') {\n this.compareHandlerMonth = handler;\n }\n\n if (type === 'year') {\n this.compareHandlerYear = handler;\n }\n }\n\n compare(date1: Date, date2: Date): number | undefined {\n if (date1 === undefined || date2 === undefined) {\n return undefined;\n }\n\n if (this.datepickerMode === 'day' && this.compareHandlerDay) {\n return this.compareHandlerDay(date1, date2);\n }\n\n if (this.datepickerMode === 'month' && this.compareHandlerMonth) {\n return this.compareHandlerMonth(date1, date2);\n }\n\n if (this.datepickerMode === 'year' && this.compareHandlerYear) {\n return this.compareHandlerYear(date1, date2);\n }\n\n return void 0;\n }\n\n setRefreshViewHandler(handler: Function, type: string): void {\n if (type === 'day') {\n this.refreshViewHandlerDay = handler;\n }\n\n if (type === 'month') {\n this.refreshViewHandlerMonth = handler;\n }\n\n if (type === 'year') {\n this.refreshViewHandlerYear = handler;\n }\n }\n\n refreshView(): void {\n if (this.datepickerMode === 'day' && this.refreshViewHandlerDay) {\n this.refreshViewHandlerDay();\n }\n\n if (this.datepickerMode === 'month' && this.refreshViewHandlerMonth) {\n this.refreshViewHandlerMonth();\n }\n\n if (this.datepickerMode === 'year' && this.refreshViewHandlerYear) {\n this.refreshViewHandlerYear();\n }\n }\n\n dateFilter(date: Date, format: string): string {\n return this.dateFormatter.format(date, format, this.locale);\n }\n\n /* tslint:disable-next-line: no-any*/\n isActive(dateObject: any): boolean {\n if (this.compare(dateObject.date, this.activeDate) === 0) {\n this.activeDateId = dateObject.uid;\n\n return true;\n }\n\n return false;\n }\n\n /* tslint:disable-next-line: no-any*/\n createDateObject(date: Date, format: string): any {\n /* tslint:disable-next-line: no-any*/\n const dateObject: any = {};\n dateObject.date = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n );\n dateObject.date = this.fixTimeZone(dateObject.date);\n dateObject.label = this.dateFilter(date, format);\n dateObject.selected = this.compare(date, this.selectedDate) === 0;\n dateObject.disabled = this.isDisabled(date);\n dateObject.current = this.compare(date, new Date()) === 0;\n dateObject.customClass = this.getCustomClassForDate(dateObject.date);\n\n return dateObject;\n }\n\n /* tslint:disable-next-line: no-any*/\n split(arr: any[], size: number): any[] {\n /* tslint:disable-next-line: no-any*/\n const arrays: any[] = [];\n while (arr.length > 0) {\n arrays.push(arr.splice(0, size));\n }\n\n return arrays;\n }\n\n // Fix a hard-reproducible bug with timezones\n // The bug depends on OS, browser, current timezone and current date\n // i.e.\n // var date = new Date(2014, 0, 1);\n // console.log(date.getFullYear(), date.getMonth(), date.getDate(),\n // date.getHours()); can result in \"2013 11 31 23\" because of the bug.\n fixTimeZone(date: Date): Date {\n const hours = date.getHours();\n\n return new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n hours === 23 ? hours + 2 : 0\n );\n }\n\n select(date: Date, isManual = true): void {\n if (this.datepickerMode === this.minMode) {\n if (!this.activeDate) {\n this.activeDate = new Date(0, 0, 0, 0, 0, 0, 0);\n }\n\n this.activeDate = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n );\n this.activeDate = this.fixTimeZone(this.activeDate);\n if (isManual) {\n this.selectionDone.emit(this.activeDate);\n }\n } else {\n this.activeDate = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n );\n this.activeDate = this.fixTimeZone(this.activeDate);\n if (isManual) {\n this.datepickerMode = this.modes[\n this.modes.indexOf(this.datepickerMode) - 1\n ];\n }\n }\n\n this.selectedDate = new Date(this.activeDate.valueOf());\n this.update.emit(this.activeDate);\n this.refreshView();\n }\n\n move(direction: number): void {\n /* tslint:disable-next-line: no-any*/\n let expectedStep: any;\n if (this.datepickerMode === 'day') {\n expectedStep = this.stepDay;\n }\n\n if (this.datepickerMode === 'month') {\n expectedStep = this.stepMonth;\n }\n\n if (this.datepickerMode === 'year') {\n expectedStep = this.stepYear;\n }\n\n if (expectedStep) {\n const year =\n this.activeDate.getFullYear() + direction * (expectedStep.years || 0);\n const month =\n this.activeDate.getMonth() + direction * (expectedStep.months || 0);\n this.activeDate = new Date(year, month, 1);\n\n this.refreshView();\n this.activeDateChange.emit(this.activeDate);\n }\n }\n\n toggleMode(_direction: number): void {\n const direction = _direction || 1;\n\n if (\n (this.datepickerMode === this.maxMode && direction === 1) ||\n (this.datepickerMode === this.minMode && direction === -1)\n ) {\n return;\n }\n\n this.datepickerMode = this.modes[\n this.modes.indexOf(this.datepickerMode) + direction\n ];\n this.refreshView();\n }\n\n protected getCustomClassForDate(date: Date): string {\n if (!this.customClass) {\n return '';\n }\n // todo: build a hash of custom classes, it will work faster\n const customClassObject: {\n date: Date;\n mode: string;\n clazz: string;\n /* tslint:disable-next-line: no-any */\n } = this.customClass.find((customClass: any) => {\n return (\n customClass.date.valueOf() === date.valueOf() &&\n customClass.mode === this.datepickerMode\n );\n }, this);\n\n return customClassObject === undefined ? '' : customClassObject.clazz;\n }\n\n protected compareDateDisabled(\n date1Disabled: { date: Date; mode: string },\n date2: Date\n ): number {\n if (date1Disabled === undefined || date2 === undefined) {\n return undefined;\n }\n\n if (date1Disabled.mode === 'day' && this.compareHandlerDay) {\n return this.compareHandlerDay(date1Disabled.date, date2);\n }\n\n if (date1Disabled.mode === 'month' && this.compareHandlerMonth) {\n return this.compareHandlerMonth(date1Disabled.date, date2);\n }\n\n if (date1Disabled.mode === 'year' && this.compareHandlerYear) {\n return this.compareHandlerYear(date1Disabled.date, date2);\n }\n\n return undefined;\n }\n\n protected isDisabled(date: Date): boolean {\n let isDateDisabled = false;\n if (this.dateDisabled) {\n this.dateDisabled.forEach(\n (disabledDate: { date: Date; mode: string }) => {\n if (this.compareDateDisabled(disabledDate, date) === 0) {\n isDateDisabled = true;\n }\n }\n );\n }\n\n if (this.dayDisabled) {\n isDateDisabled =\n isDateDisabled ||\n this.dayDisabled.indexOf(date.getDay()) > -1;\n }\n\n return (\n isDateDisabled ||\n (this.minDate && this.compare(date, this.minDate) < 0) ||\n (this.maxDate && this.compare(date, this.maxDate) > 0)\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class DatepickerConfig {\n locale = 'en';\n datepickerMode = 'day';\n startingDay = 0;\n yearRange = 20;\n minMode = 'day';\n maxMode = 'year';\n showWeeks = true;\n formatDay = 'DD';\n formatMonth = 'MMMM';\n formatYear = 'YYYY';\n formatDayHeader = 'dd';\n formatDayTitle = 'MMMM YYYY';\n formatMonthTitle = 'YYYY';\n onlyCurrentMonth = false;\n monthColLimit = 3;\n yearColLimit = 5;\n shortcutPropagation = false;\n}\n","import {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n Provider,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\nimport { DatepickerConfig } from './datepicker.config';\n\nexport const DATEPICKER_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true\n};\n\n/* tslint:disable:component-selector-name component-selector-type */\n@Component({\n selector: 'datepicker',\n template: `\n <datepicker-inner [activeDate]=\"activeDate\"\n (update)=\"onUpdate($event)\"\n [locale]=\"config.locale\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n [dayDisabled]=\"dayDisabled\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [monthColLimit]=\"monthColLimit\"\n [yearColLimit]=\"yearColLimit\"\n (selectionDone)=\"onSelectionDone($event)\"\n (activeDateChange)=\"onActiveDateChange($event)\">\n <daypicker tabindex=\"0\"></daypicker>\n <monthpicker tabindex=\"0\"></monthpicker>\n <yearpicker tabindex=\"0\"></yearpicker>\n </datepicker-inner>\n `,\n providers: [DATEPICKER_CONTROL_VALUE_ACCESSOR]\n})\n/* tslint:enable:component-selector-name component-selector-type */\nexport class DatePickerComponent implements ControlValueAccessor {\n /** sets datepicker mode, supports: `day`, `month`, `year` */\n @Input() datepickerMode = 'day';\n /** default date to show if `ng-model` value is not specified */\n @Input() initDate: Date;\n /** oldest selectable date */\n @Input() minDate: Date;\n /** latest selectable date */\n @Input() maxDate: Date;\n /** set lower datepicker mode, supports: `day`, `month`, `year` */\n @Input() minMode: string;\n /** sets upper datepicker mode, supports: `day`, `month`, `year` */\n @Input() maxMode: string;\n /** if false week numbers will be hidden */\n @Input() showWeeks = true;\n /** format of day in month */\n @Input() formatDay: string;\n /** format of month in year */\n @Input() formatMonth: string;\n /** format of year in year range */\n @Input() formatYear: string;\n /** format of day in week header */\n @Input() formatDayHeader: string;\n /** format of title when selecting day */\n @Input() formatDayTitle: string;\n /** format of title when selecting month */\n @Input() formatMonthTitle: string;\n /** starting day of the week from 0-6 (0=Sunday, ..., 6=Saturday) */\n @Input() startingDay: number;\n /** number of years displayed in year selection */\n @Input() yearRange: number;\n /** if true only dates from the currently displayed month will be shown */\n @Input() onlyCurrentMonth: boolean;\n /** if true shortcut`s event propagation will be disabled */\n @Input() shortcutPropagation: boolean;\n /** number of months displayed in a single row of month picker */\n @Input() monthColLimit: number;\n /** number of years displayed in a single row of year picker */\n @Input() yearColLimit: number;\n /** array of custom css classes to be applied to targeted dates */\n @Input() customClass: { date: Date; mode: string; clazz: string }[];\n /** array of disabled dates */\n @Input() dateDisabled: { date: Date; mode: string }[];\n /** disabled days of the week from 0-6 (0=Sunday, ..., 6=Saturday) */\n @Input() dayDisabled: number[];\n\n /** currently active date */\n @Input()\n get activeDate(): Date {\n return this._activeDate || this._now;\n }\n\n set activeDate(value: Date) {\n this._activeDate = value;\n }\n\n @Output()\n selectionDone: EventEmitter<Date> = new EventEmitter<Date>(undefined);\n\n /** callback to invoke when the activeDate is changed. */\n @Output()\n activeDateChange: EventEmitter<Date> = new EventEmitter<Date>(\n undefined\n );\n\n @ViewChild(DatePickerInnerComponent, { static: true })\n _datePicker: DatePickerInnerComponent;\n\n /* tslint:disable-next-line: no-any*/\n onChange: any = Function.prototype;\n /* tslint:disable-next-line: no-any*/\n onTouched: any = Function.prototype;\n\n config: DatepickerConfig;\n\n protected _now: Date = new Date();\n protected _activeDate: Date;\n\n constructor(config: DatepickerConfig) {\n this.config = config;\n this.configureOptions();\n }\n\n configureOptions(): void {\n Object.assign(this, this.config);\n }\n\n onUpdate(event: Date): void {\n this.activeDate = event;\n this.onChange(event);\n }\n\n onSelectionDone(event: Date): void {\n this.selectionDone.emit(event);\n }\n\n onActiveDateChange(event: Date): void {\n this.activeDateChange.emit(event);\n }\n // todo: support null value\n /* tslint:disable-next-line: no-any*/\n writeValue(value: any): void {\n if (this._datePicker.compare(value, this._activeDate) === 0) {\n return;\n }\n if (value && value instanceof Date) {\n this.activeDate = value;\n this._datePicker.select(value, false);\n\n return;\n }\n\n this.activeDate = value ? new Date(value) : void 0;\n }\n\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","// @deprecated\n// tslint:disable\nimport { Component, OnInit } from '@angular/core';\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\n\n@Component({\n selector: 'daypicker',\n template: `\n<table *ngIf=\"datePicker.datepickerMode === 'day'\" role=\"grid\" [attr.aria-labelledby]=\"datePicker.uniqueId + '-title'\" aria-activedescendant=\"activeDateId\">\n <thead>\n <tr>\n <th>\n <button *ngIf=\"!isBs4\"\n type=\"button\"\n class=\"btn btn-default btn-secondary btn-sm pull-left float-left\"\n (click)=\"datePicker.move(-1)\"\n tabindex=\"-1\">â¹</button>\n <button *ngIf=\"isBs4\"\n type=\"button\"\n class=\"btn btn-default btn-secondary btn-sm pull-left float-left\"\n (click)=\"datePicker.move(-1)\"\n tabindex=\"-1\"><</button>\n </th>\n <th [attr.colspan]=\"5 + (datePicker.showWeeks ? 1 : 0)\">\n <button [id]=\"datePicker.uniqueId + '-title'\"\n type=\"button\" class=\"btn btn-default btn-secondary btn-sm\"\n (click)=\"datePicker.toggleMode(0)\"\n [disabled]=\"datePicker.datepickerMode === datePicker.maxMode\"\n [ngClass]=\"{disabled: datePicker.datepickerMode === datePicker.maxMode}\" tabindex=\"-1\" style=\"width:100%;\">\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th>\n <button *ngIf=\"!isBs4\"\n type=\"button\"\n class=\"btn btn-default btn-secondary btn-sm pull-right float-right\"\n (click)=\"datePicker.move(1)\"\n tabindex=\"-1\">âº</button>\n <button *ngIf=\"isBs4\"\n type=\"button\"\n class=\"btn btn-default btn-secondary btn-sm pull-right float-right\"\n (click)=\"datePicker.move(1)\"\n tabindex=\"-1\">>\n </button>\n </th>\n </tr>\n <tr>\n <th *ngIf=\"datePicker.showWeeks\"></th>\n <th *ngFor=\"let labelz of labels\" class=\"text-center\">\n <small aria-label=\"labelz.full\"><b>{{ labelz.abbr }}</b></small>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-template ngFor [ngForOf]=\"rows\" let-rowz=\"$implicit\" let-index=\"index\">\n <tr *ngIf=\"!(datePicker.onlyCurrentMonth && rowz[0].secondary && rowz[6].secondary)\">\n <td *ngIf=\"datePicker.showWeeks\" class=\"h6\" class=\"text-center\">\n <em>{{ weekNumbers[index] }}</em>\n </td>\n <td *ngFor=\"let dtz of rowz\" class=\"text-center\" role=\"gridcell\" [id]=\"dtz.uid\">\n <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-sm {{dtz.customClass}}\"\n *ngIf=\"!(datePicker.onlyCurrentMonth && dtz.secondary)\"\n [ngClass]=\"{'btn-secondary': isBs4 && !dtz.selected && !datePicker.isActive(dtz), 'btn-info': dtz.selected, disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz), 'btn-default': !isBs4}\"\n [disabled]=\"dtz.disabled\"\n (click)=\"datePicker.select(dtz.date)\" tabindex=\"-1\">\n <span [ngClass]=\"{'text-muted': dtz.secondary || dtz.current, 'text-info': !isBs4 && dtz.current}\">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </ng-template>\n </tbody>\n</table>\n `,\n styles: [\n `\n :host .btn-secondary {\n color: #292b2c;\n background-color: #fff;\n border-color: #ccc;\n }\n :host .btn-info .text-muted {\n color: #292b2c !important;\n }\n `\n ]\n})\nexport class DayPickerComponent implements OnInit {\n labels: any[] = [];\n title: string;\n rows: any[] = [];\n weekNumbers: number[] = [];\n datePicker: DatePickerInnerComponent;\n\n constructor(datePicker: DatePickerInnerComponent) {\n this.datePicker = datePicker;\n }\n\n get isBs4(): boolean {\n return !isBs3();\n }\n\n /*protected getDaysInMonth(year:number, month:number) {\n return ((month === 1) && (year % 4 === 0) &&\n ((year % 100 !== 0) || (year % 400 === 0))) ? 29 : DAYS_IN_MONTH[month];\n }*/\n ngOnInit(): void {\n const self = this;\n\n this.datePicker.stepDay = { months: 1 };\n\n this.datePicker.setRefreshViewHandler(function(): void {\n const year = this.activeDate.getFullYear();\n const month = this.activeDate.getMonth();\n const firstDayOfMonth = new Date(year, month, 1);\n const difference = this.startingDay - firstDayOfMonth.getDay();\n const numDisplayedFromPreviousMonth =\n difference > 0 ? 7 - difference : -difference;\n const firstDate = new Date(firstDayOfMonth.getTime());\n\n if (numDisplayedFromPreviousMonth > 0) {\n firstDate.setDate(-numDisplayedFromPreviousMonth + 1);\n }\n\n // 42 is the number of days on a six-week calendar\n const _days: Date[] = self.getDates(firstDate, 42);\n const days: any[] = [];\n for (let i = 0; i < 42; i++) {\n const _dateObject = this.createDateObject(_days[i], this.formatDay);\n _dateObject.secondary = _days[i].getMonth() !== month;\n _dateObject.uid = this.uniqueId + '-' + i;\n days[i] = _dateObject;\n }\n\n self.labels = [];\n for (let j = 0; j < 7; j++) {\n self.labels[j] = {};\n self.labels[j].abbr = this.dateFilter(\n days[j].date,\n this.formatDayHeader\n );\n self.labels[j].full = this.dateFilter(days[j].date, 'EEEE');\n }\n\n self.title = this.dateFilter(this.activeDate, this.formatDayTitle);\n self.rows = this.split(days, 7);\n\n if (this.showWeeks) {\n self.weekNumbers = [];\n const thursdayIndex = (4 + 7 - this.startingDay) % 7;\n const numWeeks = self.rows.length;\n for (let curWeek = 0; curWeek < numWeeks; curWeek++) {\n self.weekNumbers.push(\n self.getISO8601WeekNumber(self.rows[curWeek][thursdayIndex].date)\n );\n }\n }\n }, 'day');\n\n this.datePicker.setCompareHandler(function(\n date1: Date,\n date2: Date\n ): number {\n const d1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());\n const d2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());\n return d1.getTime() - d2.getTime();\n }, 'day');\n\n this.datePicker.refreshView();\n }\n\n protected getDates(startDate: Date, n: number): Date[] {\n const dates: Date[] = new Array(n);\n let current = new Date(startDate.getTime());\n let i = 0;\n let date: Date;\n while (i < n) {\n date = new Date(current.getTime());\n date = this.datePicker.fixTimeZone(date);\n dates[i++] = date;\n current = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate() + 1\n );\n }\n return dates;\n }\n\n protected getISO8601WeekNumber(date: Date): number {\n const checkDate = new Date(date.getTime());\n // Thursday\n checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));\n const time = checkDate.getTime();\n // Compare with Jan 1\n checkDate.setMonth(0);\n checkDate.setDate(1);\n return (\n Math.floor(Math.round((time - checkDate.getTime()) / 86400000) / 7) + 1\n );\n }\n\n // todo: key events implementation\n}\n","// @deprecated\n// tslint:disable\nimport { Component, OnInit } from '@angular/core';\n\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\n\n@Component({\n selector: 'monthpicker',\n template: `\n<table *ngIf=\"datePicker.datepickerMode==='month'\" role=\"grid\">\n <thead>\n <tr>\n <th>\n <button type=\"button\" class=\"btn btn-default btn-sm pull-left float-left\"\n (click)=\"datePicker.move(-1)\" tabindex=\"-1\">â¹</button></th>\n <th [attr.colspan]=\"((datePicker.monthColLimit - 2) <= 0) ? 1 : datePicker.monthColLimit - 2\">\n <button [id]=\"datePicker.uniqueId + '-title'\"\n type=\"button\" class=\"btn btn-default btn-sm\"\n (click)=\"datePicker.toggleMode(0)\"\n [disabled]=\"datePicker.datepickerMode === maxMode\"\n [ngClass]=\"{disabled: datePicker.datepickerMode === maxMode}\" tabindex=\"-1\" style=\"width:100%;\">\n <strong>{{ title }}</strong> \n </button>\n </th>\n <th>\n <button type=\"button\" class=\"btn btn-default btn-sm pull-right float-right\"\n (click)=\"datePicker.move(1)\" tabindex=\"-1\">âº</button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let rowz of rows\">\n <td *ngFor=\"let dtz of rowz\" class=\"text-center\" role=\"gridcell\" [attr.id]=\"dtz.uid\" [ngClass]=\"dtz.customClass\">\n <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default\"\n [ngClass]=\"{'btn-link': isBs4 && !dtz.selected && !datePicker.isActive(dtz), 'btn-info': dtz.selected || (isBs4 && !dtz.selected && datePicker.isActive(dtz)), disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz)}\"\n [disabled]=\"dtz.disabled\"\n (click)=\"datePicker.select(dtz.date)\" tabindex=\"-1\">\n <span [ngClass]=\"{'text-success': isBs4 && dtz.current, 'text-info': !isBs4 && dtz.current}\">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n `,\n styles: [\n `\n :host .btn-info .text-success {\n color: #fff !important;\n }\n `\n ]\n})\nexport class MonthPickerComponent implements OnInit {\n title: string;\n rows: any[] = [];\n datePicker: DatePickerInnerComponent;\n maxMode: string;\n\n constructor(datePicker: DatePickerInnerComponent) {\n this.datePicker = datePicker;\n }\n\n get isBs4(): boolean {\n return !isBs3();\n }\n\n ngOnInit(): void {\n const self = this;\n\n this.datePicker.stepMonth = { years: 1 };\n\n this.datePicker.setRefreshViewHandler(function(): void {\n const months: any[] = new Array(12);\n const year: number = this.activeDate.getFullYear();\n let date: Date;\n\n for (let i = 0; i < 12; i++) {\n date = new Date(year, i, 1);\n date = this.fixTimeZone(date);\n months[i] = this.createDateObject(date, this.formatMonth);\n months[i].uid = this.uniqueId + '-' + i;\n }\n\n self.title = this.dateFilter(this.activeDate, this.formatMonthTitle);\n self.rows = this.split(months, self.datePicker.monthColLimit);\n }, 'month');\n\n this.datePicker.setCompareHandler(function(\n date1: Date,\n date2: Date\n ): number {\n const d1 = new Date(date1.getFullYear(), date1.getMonth());\n const d2 = new Date(date2.getFullYear(), date2.getMonth());\n return d1.getTime() - d2.getTime();\n }, 'month');\n\n this.datePicker.refreshView();\n }\n\n // todo: key events implementation\n}\n","// @deprecated\n// tslint:disable\nimport { Component, OnInit } from '@angular/core';\n\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\n\n@Component({\n selector: 'yearpicker',\n template: `\n<table *ngIf=\"datePicker.datepickerMode==='year'\" role=\"grid\">\n <thead>\n <tr>\n <th>\n <button type=\"button\" class=\"btn btn-default btn-sm pull-left float-left\"\n (click)=\"datePicker.move(-1)\" tabindex=\"-1\">â¹</button>\n </th>\n <th [attr.colspan]=\"((datePicker.yearColLimit - 2) <= 0) ? 1 : datePicker.yearColLimit - 2\">\n <button [id]=\"datePicker.uniqueId + '-title'\" role=\"heading\"\n type=\"button\" class=\"btn btn-default btn-sm\"\n (click)=\"datePicker.toggleMode(0)\"\n [disabled]=\"datePicker.datepickerMode === datePicker.maxMode\"\n [ngClass]=\"{disabled: datePicker.datepickerMode === datePicker.maxMode}\" tabindex=\"-1\" style=\"width:100%;\">\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th>\n <button type=\"button\" class=\"btn btn-default btn-sm pull-right float-right\"\n (click)=\"datePicker.move(1)\" tabindex=\"-1\">âº</button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let rowz of rows\">\n <td *ngFor=\"let dtz of rowz\" class=\"text-center\" role=\"gridcell\" [attr.id]=\"dtz.uid\">\n <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default\"\n [ngClass]=\"{'btn-link': isBs4 && !dtz.selected && !datePicker.isActive(dtz), 'btn-info': dtz.selected || (isBs4 && !dtz.selected && datePicker.isActive(dtz)), disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz)}\"\n [disabled]=\"dtz.disabled\"\n (click)=\"datePicker.select(dtz.date)\" tabindex=\"-1\">\n <span [ngClass]=\"{'text-success': isBs4 && dtz.current, 'text-info': !isBs4 && dtz.current}\">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n `,\n styles: [\n `\n :host .btn-info .text-success {\n color: #fff !important;\n }\n `\n ]\n})\nexport class YearPickerComponent implements OnInit {\n datePicker: DatePickerInnerComponent;\n title: string;\n rows: any[] = [];\n\n constructor(datePicker: DatePickerInnerComponent) {\n this.datePicker = datePicker;\n }\n\n get isBs4(): boolean {\n return !isBs3();\n }\n\n ngOnInit(): void {\n const self = this;\n\n this.datePicker.stepYear = { years: this.datePicker.yearRange };\n\n this.datePicker.setRefreshViewHandler(function(): void {\n const years: any[] = new Array(this.yearRange);\n let date: Date;\n const start = self.getStartingYear(this.activeDate.getFullYear());\n\n for (let i = 0; i < this.yearRange; i++) {\n date = new Date(start + i, 0, 1);\n date = this.fixTimeZone(date);\n years[i] = this.createDateObject(date, this.formatYear);\n years[i].uid = this.uniqueId + '-' + i;\n }\n\n self.title = [years[0].label, years[this.yearRange - 1].label].join(\n ' - '\n );\n self.rows = this.split(years, self.datePicker.yearColLimit);\n }, 'year');\n\n this.datePicker.setCompareHandler(function(\n date1: Date,\n date2: Date\n ): number {\n return date1.getFullYear() - date2.getFullYear();\n }, 'year');\n\n this.datePicker.refreshView();\n }\n\n protected getStartingYear(year: number): number {\n // todo: parseInt\n return (\n (year - 1) / this.datePicker.yearRange * this.datePicker.yearRange + 1\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\nimport { DatePickerComponent } from './datepicker.component';\nimport { DatepickerConfig } from './datepicker.config';\nimport { DayPickerComponent } from './daypicker.component';\nimport { MonthPickerComponent } from './monthpicker.component';\nimport { YearPickerComponent } from './yearpicker.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [\n DatePickerComponent,\n DatePickerInnerComponent,\n DayPickerComponent,\n MonthPickerComponent,\n YearPickerComponent\n ],\n exports: [\n DatePickerComponent,\n DatePickerInnerComponent,\n DayPickerComponent,\n MonthPickerComponent,\n YearPickerComponent\n ],\n entryComponents: [DatePickerComponent]\n})\nexport class DatepickerModule {\n static forRoot(): ModuleWithProviders {\n return { ngModule: DatepickerModule, providers: [DatepickerConfig] };\n }\n}\n"],"names":["Injectable","BehaviorSubject","filter","map","getMonth","getFullYear","tslib_1.__values","isFirstDayOfWeek","getDay","shiftDate","isBefore","endOf","isAfter","startOf","isArray","isSame","getFirstDayOfMonth","formatDate","getLocale","isSameMonth","isSameDay","isDisabledDay","height","width","shift","isSameYear","setFullDate","isDateValid","tslib_1.__extends","MiniState","MiniStore","trigger","state","style","transition","animate","EventEmitter","take","Component","Renderer2","ElementRef","PositioningService","Subject","takeUntil","Directive","ViewContainerRef","ComponentLoaderFactory","Input","Output","NG_VALUE_ACCESSOR","forwardRef","NG_VALIDATORS","isDate","parseDate","utcAsLocal","Host","ChangeDetectorRef","ChangeDetectionStrategy","NgModule","CommonModule","ViewChild","isBs3","FormsModule"],"mappings":"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"}
|