{"version":3,"sources":["node_modules/@progress/telerik-angular-report-viewer/dist/dependencies/telerikReportViewer.kendo.min.js","node_modules/@progress/telerik-angular-report-viewer/dist/dependencies/telerikReportViewer.js","node_modules/@tweenjs/tween.js/src/Tween.js","node_modules/hammerjs/hammer.js","node_modules/zone.js/fesm2015/zone.js","node_modules/@angular/animations/fesm2022/browser.mjs","node_modules/@angular/platform-browser/fesm2022/animations.mjs","projects/desktop/src/environments/environment.test.ts","projects/desktop/src/environments/environment.beta.ts","projects/desktop/src/environments/environment.prod.ts","node_modules/linq-to-typescript/esm/shared/ArgumentOutOfRangeException.js","node_modules/linq-to-typescript/esm/shared/ErrorString.js","node_modules/linq-to-typescript/esm/shared/InvalidOperationException.js","node_modules/linq-to-typescript/esm/shared/StrictEqualityComparer.js","node_modules/linq-to-typescript/esm/sync/ArrayEnumerable.js","node_modules/linq-to-typescript/esm/async/BasicAsyncEnumerable.js","node_modules/linq-to-typescript/esm/parallel/BasicParallelEnumerable.js","node_modules/linq-to-typescript/esm/sync/BasicEnumerable.js","node_modules/linq-to-typescript/esm/initializer/bindArray.js","node_modules/linq-to-typescript/esm/initializer/bindArrayEnumerable.js","node_modules/linq-to-typescript/esm/sync/_private/aggregate.js","node_modules/linq-to-typescript/esm/sync/_private/all.js","node_modules/linq-to-typescript/esm/sync/_private/allAsync.js","node_modules/linq-to-typescript/esm/sync/_private/any.js","node_modules/linq-to-typescript/esm/sync/_private/anyAsync.js","node_modules/linq-to-typescript/esm/async/static/fromAsync.js","node_modules/linq-to-typescript/esm/sync/_private/asAsync.js","node_modules/linq-to-typescript/esm/parallel/static/fromParallel.js","node_modules/linq-to-typescript/esm/sync/_private/asParallel.js","node_modules/linq-to-typescript/esm/sync/_private/average.js","node_modules/linq-to-typescript/esm/sync/_private/averageAsync.js","node_modules/linq-to-typescript/esm/sync/_private/concatenate.js","node_modules/linq-to-typescript/esm/sync/_private/contains.js","node_modules/linq-to-typescript/esm/sync/_private/containsAsync.js","node_modules/linq-to-typescript/esm/sync/_private/count.js","node_modules/linq-to-typescript/esm/sync/_private/countAsync.js","node_modules/linq-to-typescript/esm/sync/_private/distinct.js","node_modules/linq-to-typescript/esm/sync/_private/distinctAsync.js","node_modules/linq-to-typescript/esm/sync/_private/each.js","node_modules/linq-to-typescript/esm/sync/_private/eachAsync.js","node_modules/linq-to-typescript/esm/sync/_private/elementAt.js","node_modules/linq-to-typescript/esm/sync/_private/elementAtOrDefault.js","node_modules/linq-to-typescript/esm/sync/_private/except.js","node_modules/linq-to-typescript/esm/sync/_private/exceptAsync.js","node_modules/linq-to-typescript/esm/sync/_private/first.js","node_modules/linq-to-typescript/esm/sync/_private/firstAsync.js","node_modules/linq-to-typescript/esm/sync/_private/firstOrDefault.js","node_modules/linq-to-typescript/esm/sync/_private/firstOrDefaultAsync.js","node_modules/linq-to-typescript/esm/sync/Grouping.js","node_modules/linq-to-typescript/esm/sync/_private/groupByShared.js","node_modules/linq-to-typescript/esm/sync/_private/groupBy.js","node_modules/linq-to-typescript/esm/sync/_private/groupByAsync.js","node_modules/linq-to-typescript/esm/sync/_private/groupByWithSel.js","node_modules/linq-to-typescript/esm/sync/_private/intersect.js","node_modules/linq-to-typescript/esm/sync/_private/intersectAsync.js","node_modules/linq-to-typescript/esm/sync/_private/join.js","node_modules/linq-to-typescript/esm/sync/_private/last.js","node_modules/linq-to-typescript/esm/sync/_private/lastAsync.js","node_modules/linq-to-typescript/esm/sync/_private/lastOrDefault.js","node_modules/linq-to-typescript/esm/sync/_private/lastOrDefaultAsync.js","node_modules/linq-to-typescript/esm/sync/_private/max.js","node_modules/linq-to-typescript/esm/sync/_private/maxAsync.js","node_modules/linq-to-typescript/esm/sync/_private/min.js","node_modules/linq-to-typescript/esm/sync/_private/minAsync.js","node_modules/linq-to-typescript/esm/sync/_private/ofType.js","node_modules/linq-to-typescript/esm/async/_ordered/asAsyncKeyMap.js","node_modules/linq-to-typescript/esm/async/_ordered/asAsyncSortedKeyValues.js","node_modules/linq-to-typescript/esm/async/_ordered/asAsyncKeyMapSync.js","node_modules/linq-to-typescript/esm/async/_ordered/asAsyncSortedKeyValuesSync.js","node_modules/linq-to-typescript/esm/async/_ordered/asKeyMap.js","node_modules/linq-to-typescript/esm/async/_ordered/asSortedKeyValues.js","node_modules/linq-to-typescript/esm/async/_ordered/asKeyMapSync.js","node_modules/linq-to-typescript/esm/async/_ordered/asSortedKeyValuesSync.js","node_modules/linq-to-typescript/esm/async/OrderedAsyncEnumerable.js","node_modules/linq-to-typescript/esm/sync/_ordered/asKeyMap.js","node_modules/linq-to-typescript/esm/sync/_ordered/asSortedKeyValues.js","node_modules/linq-to-typescript/esm/sync/_ordered/asKeyMapAsync.js","node_modules/linq-to-typescript/esm/sync/_ordered/asSortedKeyValuesAsync.js","node_modules/linq-to-typescript/esm/sync/OrderedEnumerable.js","node_modules/linq-to-typescript/esm/sync/_private/orderBy.js","node_modules/linq-to-typescript/esm/sync/_private/orderByAsync.js","node_modules/linq-to-typescript/esm/sync/_private/orderByDescending.js","node_modules/linq-to-typescript/esm/sync/_private/orderByDescendingAsync.js","node_modules/linq-to-typescript/esm/sync/_private/partition.js","node_modules/linq-to-typescript/esm/sync/_private/partitionAsync.js","node_modules/linq-to-typescript/esm/sync/_private/reverse.js","node_modules/linq-to-typescript/esm/sync/_private/select.js","node_modules/linq-to-typescript/esm/sync/_private/selectAsync.js","node_modules/linq-to-typescript/esm/sync/_private/selectMany.js","node_modules/linq-to-typescript/esm/sync/_private/selectManyAsync.js","node_modules/linq-to-typescript/esm/sync/_private/sequenceEquals.js","node_modules/linq-to-typescript/esm/sync/_private/sequenceEqualsAsync.js","node_modules/linq-to-typescript/esm/sync/_private/single.js","node_modules/linq-to-typescript/esm/sync/_private/singleAsync.js","node_modules/linq-to-typescript/esm/sync/_private/singleOrDefault.js","node_modules/linq-to-typescript/esm/sync/_private/singleOrDefaultAsync.js","node_modules/linq-to-typescript/esm/sync/_private/skip.js","node_modules/linq-to-typescript/esm/sync/_private/skipWhile.js","node_modules/linq-to-typescript/esm/sync/_private/skipWhileAsync.js","node_modules/linq-to-typescript/esm/sync/_private/sum.js","node_modules/linq-to-typescript/esm/sync/_private/sumAsync.js","node_modules/linq-to-typescript/esm/sync/_private/take.js","node_modules/linq-to-typescript/esm/sync/_private/takeWhile.js","node_modules/linq-to-typescript/esm/sync/_private/takeWhileAsync.js","node_modules/linq-to-typescript/esm/sync/_private/toArray.js","node_modules/linq-to-typescript/esm/sync/_private/toMap.js","node_modules/linq-to-typescript/esm/sync/_private/toMapAsync.js","node_modules/linq-to-typescript/esm/sync/_private/toObject.js","node_modules/linq-to-typescript/esm/sync/_private/toObjectAsync.js","node_modules/linq-to-typescript/esm/sync/_private/toSet.js","node_modules/linq-to-typescript/esm/sync/_private/union.js","node_modules/linq-to-typescript/esm/sync/_private/unionAsync.js","node_modules/linq-to-typescript/esm/sync/_private/where.js","node_modules/linq-to-typescript/esm/sync/_private/whereAsync.js","node_modules/linq-to-typescript/esm/sync/_private/zip.js","node_modules/linq-to-typescript/esm/sync/_private/zipAsync.js","node_modules/linq-to-typescript/esm/initializer/bindLinq.js","node_modules/linq-to-typescript/esm/async/_private/aggregate.js","node_modules/linq-to-typescript/esm/async/_private/all.js","node_modules/linq-to-typescript/esm/async/_private/allAsync.js","node_modules/linq-to-typescript/esm/async/_private/any.js","node_modules/linq-to-typescript/esm/async/_private/anyAsync.js","node_modules/linq-to-typescript/esm/async/_private/asParallel.js","node_modules/linq-to-typescript/esm/async/_private/average.js","node_modules/linq-to-typescript/esm/async/_private/averageAsync.js","node_modules/linq-to-typescript/esm/async/_private/concatenate.js","node_modules/linq-to-typescript/esm/async/_private/contains.js","node_modules/linq-to-typescript/esm/async/_private/containsAsync.js","node_modules/linq-to-typescript/esm/async/_private/count.js","node_modules/linq-to-typescript/esm/async/_private/countAsync.js","node_modules/linq-to-typescript/esm/async/_private/distinct.js","node_modules/linq-to-typescript/esm/async/_private/distinctAsync.js","node_modules/linq-to-typescript/esm/async/_private/each.js","node_modules/linq-to-typescript/esm/async/_private/eachAsync.js","node_modules/linq-to-typescript/esm/async/_private/elementAt.js","node_modules/linq-to-typescript/esm/async/_private/elementAtOrDefault.js","node_modules/linq-to-typescript/esm/async/_private/except.js","node_modules/linq-to-typescript/esm/async/_private/exceptAsync.js","node_modules/linq-to-typescript/esm/async/_private/first.js","node_modules/linq-to-typescript/esm/async/_private/firstAsync.js","node_modules/linq-to-typescript/esm/async/_private/firstOrDefault.js","node_modules/linq-to-typescript/esm/async/_private/firstOrDefaultAsync.js","node_modules/linq-to-typescript/esm/async/_private/groupBy.js","node_modules/linq-to-typescript/esm/async/_private/groupByAsync.js","node_modules/linq-to-typescript/esm/async/_private/groupByWithSel.js","node_modules/linq-to-typescript/esm/async/_private/intersect.js","node_modules/linq-to-typescript/esm/async/_private/intersectAsync.js","node_modules/linq-to-typescript/esm/async/_private/join.js","node_modules/linq-to-typescript/esm/async/_private/last.js","node_modules/linq-to-typescript/esm/async/_private/lastAsync.js","node_modules/linq-to-typescript/esm/async/_private/lastOrDefault.js","node_modules/linq-to-typescript/esm/async/_private/lastOrDefaultAsync.js","node_modules/linq-to-typescript/esm/async/_private/max.js","node_modules/linq-to-typescript/esm/async/_private/maxAsync.js","node_modules/linq-to-typescript/esm/async/_private/min.js","node_modules/linq-to-typescript/esm/async/_private/minAsync.js","node_modules/linq-to-typescript/esm/async/_private/ofType.js","node_modules/linq-to-typescript/esm/async/_private/orderBy.js","node_modules/linq-to-typescript/esm/async/_private/orderByAsync.js","node_modules/linq-to-typescript/esm/async/_private/orderByDescending.js","node_modules/linq-to-typescript/esm/async/_private/orderByDescendingAsync.js","node_modules/linq-to-typescript/esm/async/_private/partition.js","node_modules/linq-to-typescript/esm/async/_private/partitionAsync.js","node_modules/linq-to-typescript/esm/async/_private/reverse.js","node_modules/linq-to-typescript/esm/async/_private/select.js","node_modules/linq-to-typescript/esm/async/_private/selectAsync.js","node_modules/linq-to-typescript/esm/async/_private/selectMany.js","node_modules/linq-to-typescript/esm/async/_private/selectManyAsync.js","node_modules/linq-to-typescript/esm/async/_private/sequenceEquals.js","node_modules/linq-to-typescript/esm/async/_private/sequenceEqualsAsync.js","node_modules/linq-to-typescript/esm/async/_private/single.js","node_modules/linq-to-typescript/esm/async/_private/singleAsync.js","node_modules/linq-to-typescript/esm/async/_private/singleOrDefault.js","node_modules/linq-to-typescript/esm/async/_private/singleOrDefaultAsync.js","node_modules/linq-to-typescript/esm/async/_private/skip.js","node_modules/linq-to-typescript/esm/async/_private/skipWhile.js","node_modules/linq-to-typescript/esm/async/_private/skipWhileAsync.js","node_modules/linq-to-typescript/esm/async/_private/sum.js","node_modules/linq-to-typescript/esm/async/_private/sumAsync.js","node_modules/linq-to-typescript/esm/async/_private/take.js","node_modules/linq-to-typescript/esm/async/_private/takeWhile.js","node_modules/linq-to-typescript/esm/async/_private/takeWhileAsync.js","node_modules/linq-to-typescript/esm/async/_private/toArray.js","node_modules/linq-to-typescript/esm/async/_private/toMap.js","node_modules/linq-to-typescript/esm/async/_private/toMapAsync.js","node_modules/linq-to-typescript/esm/async/_private/toObject.js","node_modules/linq-to-typescript/esm/async/_private/toObjectAsync.js","node_modules/linq-to-typescript/esm/async/_private/toSet.js","node_modules/linq-to-typescript/esm/async/_private/union.js","node_modules/linq-to-typescript/esm/async/_private/unionAsync.js","node_modules/linq-to-typescript/esm/async/_private/where.js","node_modules/linq-to-typescript/esm/async/_private/whereAsync.js","node_modules/linq-to-typescript/esm/async/_private/zip.js","node_modules/linq-to-typescript/esm/async/_private/zipAsync.js","node_modules/linq-to-typescript/esm/initializer/bindLinqAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/aggregate.js","node_modules/linq-to-typescript/esm/parallel/_private/_nextIteration.js","node_modules/linq-to-typescript/esm/parallel/_private/all.js","node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/allAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/any.js","node_modules/linq-to-typescript/esm/parallel/_private/anyAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/asAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/_typeDataToArray.js","node_modules/linq-to-typescript/esm/parallel/_private/average.js","node_modules/linq-to-typescript/esm/parallel/_private/averageAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/concatenate.js","node_modules/linq-to-typescript/esm/parallel/_private/contains.js","node_modules/linq-to-typescript/esm/parallel/_private/containsAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/count.js","node_modules/linq-to-typescript/esm/parallel/_private/countAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/distinct.js","node_modules/linq-to-typescript/esm/parallel/_private/distinctAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/each.js","node_modules/linq-to-typescript/esm/parallel/_private/eachAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/elementAt.js","node_modules/linq-to-typescript/esm/parallel/_private/elementAtOrDefault.js","node_modules/linq-to-typescript/esm/parallel/_private/except.js","node_modules/linq-to-typescript/esm/parallel/_private/exceptAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/toArray.js","node_modules/linq-to-typescript/esm/parallel/_private/first.js","node_modules/linq-to-typescript/esm/parallel/_private/firstAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/firstOrDefault.js","node_modules/linq-to-typescript/esm/parallel/_private/firstOrDefaultAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/groupBy.js","node_modules/linq-to-typescript/esm/parallel/_private/groupByAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/groupByWithSel.js","node_modules/linq-to-typescript/esm/parallel/_private/intersect.js","node_modules/linq-to-typescript/esm/parallel/_private/intersectAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/join.js","node_modules/linq-to-typescript/esm/parallel/_private/last.js","node_modules/linq-to-typescript/esm/parallel/_private/lastAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/lastOrDefault.js","node_modules/linq-to-typescript/esm/parallel/_private/lastOrDefaultAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/max.js","node_modules/linq-to-typescript/esm/parallel/_private/maxAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/min.js","node_modules/linq-to-typescript/esm/parallel/_private/minAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/ofType.js","node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncKeyMap.js","node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncSortedKeyValues.js","node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncKeyMapSync.js","node_modules/linq-to-typescript/esm/parallel/_ordered/asAsyncSortedKeyValuesSync.js","node_modules/linq-to-typescript/esm/parallel/_ordered/asKeyMap.js","node_modules/linq-to-typescript/esm/parallel/_ordered/asSortedKeyValues.js","node_modules/linq-to-typescript/esm/parallel/_ordered/asKeyMapSync.js","node_modules/linq-to-typescript/esm/parallel/_ordered/asSortedKeyValuesSync.js","node_modules/linq-to-typescript/esm/parallel/OrderedParallelEnumerable.js","node_modules/linq-to-typescript/esm/parallel/_private/orderBy.js","node_modules/linq-to-typescript/esm/parallel/_private/orderByAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/orderByDescending.js","node_modules/linq-to-typescript/esm/parallel/_private/orderByDescendingAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/partition.js","node_modules/linq-to-typescript/esm/parallel/_private/partitionAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/reverse.js","node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationWithIndex.js","node_modules/linq-to-typescript/esm/parallel/_private/select.js","node_modules/linq-to-typescript/esm/parallel/_private/_nextIterationWithIndexAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/selectAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/selectMany.js","node_modules/linq-to-typescript/esm/parallel/_private/selectManyAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/sequenceEquals.js","node_modules/linq-to-typescript/esm/parallel/_private/sequenceEqualsAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/single.js","node_modules/linq-to-typescript/esm/parallel/_private/singleAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/singleOrDefault.js","node_modules/linq-to-typescript/esm/parallel/_private/singleOrDefaultAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/skip.js","node_modules/linq-to-typescript/esm/parallel/_private/skipWhile.js","node_modules/linq-to-typescript/esm/parallel/_private/skipWhileAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/sum.js","node_modules/linq-to-typescript/esm/parallel/_private/sumAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/take.js","node_modules/linq-to-typescript/esm/parallel/_private/takeWhile.js","node_modules/linq-to-typescript/esm/parallel/_private/takeWhileAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/toMap.js","node_modules/linq-to-typescript/esm/parallel/_private/toMapAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/toObject.js","node_modules/linq-to-typescript/esm/parallel/_private/toObjectAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/toSet.js","node_modules/linq-to-typescript/esm/parallel/_private/union.js","node_modules/linq-to-typescript/esm/parallel/_private/unionAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/where.js","node_modules/linq-to-typescript/esm/parallel/_private/whereAsync.js","node_modules/linq-to-typescript/esm/parallel/_private/zip.js","node_modules/linq-to-typescript/esm/parallel/_private/zipAsync.js","node_modules/linq-to-typescript/esm/initializer/bindLinqParallel.js","node_modules/linq-to-typescript/esm/initializer/bindString.js","node_modules/linq-to-typescript/esm/initializer/initializeLinq.js","node_modules/linq-to-typescript/esm/initializer/initializer.js","projects/desktop/src/app/app.component.ts","projects/desktop/src/app/app.component.html","projects/desktop/src/app/user/login.component.ts","projects/desktop/src/app/user/login.component.html","projects/shared-lib/src/lib/services/authentication.service.ts","projects/shared-lib/src/lib/services/security.service.ts","projects/shared-lib/src/lib/components/snackbar-broadcast-message/snackbar-broadcast-message.component.ts","projects/shared-lib/src/lib/components/snackbar-broadcast-message/snackbar-broadcast-message.component.html","projects/shared-lib/src/lib/services/route-to-external-url.service.ts","projects/desktop/src/app/user/logout.component.ts","projects/desktop/src/app/user/authentication/authentication.component.ts","projects/shared-lib/src/lib/components/shared-dashboard/shared-dashboard.component.ts","projects/shared-lib/src/lib/components/shared-dashboard/shared-dashboard.component.html","projects/shared-lib/src/lib/components/add-widget-to-dashboard/add-widget-to-dashboard.component.ts","projects/shared-lib/src/lib/components/add-widget-to-dashboard/add-widget-to-dashboard.component.html","projects/shared-lib/src/lib/components/dashboard-timezone-popup-confirmation-settings/dashboard-timezone-popup-confirmation-settings.component.ts","projects/shared-lib/src/lib/components/dashboard-timezone-popup-confirmation-settings/dashboard-timezone-popup-confirmation-settings.component.html","projects/shared-lib/src/lib/components/dashboard-timescope-popup-confirmation-settings/dashboard-timescope-popup-confirmation-settings.component.ts","projects/shared-lib/src/lib/components/dashboard-timescope-popup-confirmation-settings/dashboard-timescope-popup-confirmation-settings.component.html","projects/shared-lib/src/lib/services/system.service.ts","projects/shared-lib/src/lib/services/module-import-guard.ts","projects/shared-lib/src/lib/_models/dialog-component-item.model.ts","projects/shared-lib/src/lib/services/dialog.service.ts","projects/shared-lib/src/lib/services/services.module.ts","projects/shared-lib/src/lib/components/live-data/live-data.module.ts","projects/shared-lib/src/lib/components/dialog-modal-parent/dialog-modal-parent.component.module.ts","projects/shared-lib/src/lib/components/release-notes/release-notes.component.ts","projects/shared-lib/src/lib/components/release-notes/release-notes.component.html","projects/shared-lib/src/lib/components/release-notes/release-notes.module.ts","projects/shared-lib/src/lib/components/canvas-popup-settings/canvas-popup-settings.module.ts","projects/shared-lib/src/lib/components/dashboard-timescope-popup-confirmation-settings/dashboard-timescope-popup-confirmation-settings.module.ts","projects/shared-lib/src/lib/components/dashboard-timezone-popup-confirmation-settings/dashboard-timezone-popup-confirmation-settings.module.ts","projects/shared-lib/src/lib/components/tactical-dashboard-interval-popup-confirmation-settings/tactical-dashboard-interval-popup-confirmation-settings.component.ts","projects/shared-lib/src/lib/components/tactical-dashboard-interval-popup-confirmation-settings/tactical-dashboard-interval-popup-confirmation-settings.component.html","projects/shared-lib/src/lib/components/add-widget-to-dashboard/add-widget-to-dashboard.module.ts","projects/shared-lib/src/lib/components/scroll-to-widget/scroll-to-widget.component.ts","projects/shared-lib/src/lib/components/scroll-to-widget/scroll-to-widget.component.html","projects/shared-lib/src/lib/components/dashboard-edit/dashboard-edit.component.ts","projects/shared-lib/src/lib/components/dashboard-edit/dashboard-edit.component.html","projects/shared-lib/src/lib/components/dashboard-edit/dashboard-edit.module.ts","projects/shared-lib/src/lib/components/test-observation-delay/test-observation-delay.component.ts","projects/shared-lib/src/lib/components/test-observation-delay/test-observation-delay.component.html","projects/shared-lib/src/lib/components/asset-summary-view/asset-summary-view.component.ts","projects/shared-lib/src/lib/components/asset-summary-view/asset-summary-view.component.html","projects/shared-lib/src/lib/components/material-input/material-input.component.ts","projects/shared-lib/src/lib/components/material-input/material-input.component.html","projects/shared-lib/src/lib/components/material-input/material-input.module.ts","projects/shared-lib/src/lib/components/asset-summary-view/asset-summary-view.module.ts","projects/shared-lib/src/lib/components/dashboard-custom-timescope-popup-confirmation-settings/dashboard-custom-timescope-popup-confirmation-settings.component.ts","projects/shared-lib/src/lib/components/dashboard-custom-timescope-popup-confirmation-settings/dashboard-custom-timescope-popup-confirmation-settings.component.html","node_modules/ngx-bootstrap/utils/fesm2022/ngx-bootstrap-utils.mjs","node_modules/ngx-bootstrap/positioning/fesm2022/ngx-bootstrap-positioning.mjs","node_modules/ngx-bootstrap/component-loader/fesm2022/ngx-bootstrap-component-loader.mjs","node_modules/ngx-bootstrap/tooltip/fesm2022/ngx-bootstrap-tooltip.mjs","projects/shared-lib/src/lib/_directives/in-view.directive.ts","projects/desktop/src/app/_layout/dashboard/dashboard.component.ts","projects/desktop/src/app/_layout/dashboard/dashboard.component.html","projects/desktop/src/app/_layout/advanced/recipes/recipes.component.ts","projects/desktop/src/app/_layout/advanced/recipes/recipes.component.html","node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js","node_modules/ngx-bootstrap/collapse/fesm2022/ngx-bootstrap-collapse.mjs","projects/desktop/src/app/_layout/sidebar/sidebar.component.ts","projects/desktop/src/app/_layout/sidebar/sidebar.component.html","projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-slider.ts","projects/desktop/src/app/_layout/navbar/user-settings/user-settings.component.ts","projects/desktop/src/app/_layout/navbar/user-settings/user-settings.component.html","projects/desktop/src/app/_layout/navbar/issues/issues.component.ts","projects/desktop/src/app/_layout/navbar/issues/issues.component.html","projects/desktop/src/app/_layout/navbar/navbar.component.ts","projects/desktop/src/app/_layout/navbar/navbar.component.html","projects/desktop/src/app/user/personal-information/personal-information.component.ts","projects/desktop/src/app/user/personal-information/personal-information.component.html","projects/desktop/src/app/user/personal-alert-escalation/personal-alert-escalation.component.ts","projects/desktop/src/app/user/personal-alert-escalation/personal-alert-escalation.component.html","node_modules/ngx-bootstrap/dropdown/fesm2022/ngx-bootstrap-dropdown.mjs","node_modules/ngx-bootstrap/focus-trap/fesm2022/ngx-bootstrap-focus-trap.mjs","node_modules/ngx-bootstrap/modal/fesm2022/ngx-bootstrap-modal.mjs","projects/desktop/src/app/_directives/custom-progressbar.directive.ts","projects/shared-lib/src/lib/components/signalr-test/signalr-test.component.ts","projects/shared-lib/src/lib/components/signalr-test/signalr-test.component.html","projects/desktop/src/app/_layout/footer/footer.component.ts","projects/desktop/src/app/_layout/footer/footer.component.html","projects/desktop/src/app/_layout/layout.component.ts","projects/desktop/src/app/_layout/layout.component.html","projects/desktop/src/app/_layout/dashboard/dashboard-list/dashboard-list.component.ts","projects/desktop/src/app/_layout/dashboard/dashboard-list/dashboard-list.component.html","projects/shared-lib/src/lib/components/dashboard-copy/dashboard-copy.component.ts","projects/shared-lib/src/lib/components/dashboard-copy/dashboard-copy.component.html","projects/desktop/src/app/_layout/dashboard/dashboard-demo/dashboard-demo.component.ts","projects/desktop/src/app/_layout/dashboard/dashboard-demo/dashboard-demo.component.html","projects/desktop/src/app/_layout/advanced/maps/locate-all-gse/locate-all-gse.component.ts","projects/desktop/src/app/_layout/advanced/maps/locate-all-gse/locate-all-gse.component.html","projects/desktop/src/app/user/forgot-password/forgot-password.component.ts","projects/desktop/src/app/user/forgot-password/forgot-password.component.html","projects/desktop/src/app/user/authentication/authorization.guard.ts","projects/desktop/src/app/user/registration/registration.component.ts","projects/desktop/src/app/user/registration/registration.component.html","projects/desktop/src/app/home/home.component.ts","node_modules/@progress/telerik-angular-report-viewer/dist/dependencies/initExtDeps.js","node_modules/@progress/telerik-angular-report-viewer/dist/es/telerik-report-viewer.component.js","node_modules/@progress/telerik-angular-report-viewer/dist/es/telerik-reporting.module.js","projects/desktop/src/app/_layout/advanced/customer-reports/customer-reports.component.ts","projects/desktop/src/app/_layout/advanced/customer-reports/customer-reports.component.html","projects/desktop/src/app/_layout/advanced/admin-reports/admin-reports.component.ts","projects/desktop/src/app/_layout/advanced/admin-reports/admin-reports.component.html","projects/shared-lib/src/lib/components/multicheck-filter/multicheck-filter.component.ts","projects/shared-lib/src/lib/components/multicheck-filter/multicheck-filter.component.html","projects/shared-lib/src/lib/components/customer-issues-list/customer-issues-list.component.ts","projects/shared-lib/src/lib/components/customer-issues-list/customer-issues-list.component.html","projects/desktop/src/app/_layout/advanced/system-tables/system-tables.component.ts","projects/desktop/src/app/_layout/advanced/system-tables/system-tables.component.html","projects/shared-lib/src/lib/components/recursive-data-navigator/recursive-data-navigator.component.ts","projects/shared-lib/src/lib/components/recursive-data-navigator/recursive-data-navigator.component.html","projects/desktop/src/app/_layout/advanced/system-tables/rdn-destination/rdn-destination.component.ts","projects/desktop/src/app/_layout/advanced/system-tables/rdn-destination/rdn-destination.component.html","projects/desktop/src/app/user/go-to-v1/go-to-v1.component.ts","projects/desktop/src/app/user/go-to-v1/go-to-v1.component.html","projects/shared-lib/src/lib/components/ninja-statistics-content/ninja-statistics-content.component.ts","projects/shared-lib/src/lib/components/ninja-statistics-content/ninja-statistics-content.component.html","projects/desktop/src/app/_layout/shared/widgets/ninja-statistics/ninja-statistics.component.ts","projects/desktop/src/app/_layout/shared/widgets/ninja-statistics/ninja-statistics.component.html","projects/shared-lib/src/lib/_other-template-components/potd/potd.component.ts","projects/shared-lib/src/lib/_other-template-components/potd/potd.component.html","projects/shared-lib/src/lib/components/training-lessons/training-lessons.component.ts","projects/shared-lib/src/lib/components/training-lessons/training-lessons.component.html","projects/shared-lib/src/lib/components/training-courses/training-courses.component.ts","projects/shared-lib/src/lib/components/training-courses/training-courses.component.html","projects/shared-lib/src/lib/guards/punchout.guard.ts","projects/shared-lib/src/lib/components/customer-issues-item/customer-issues-item.component.ts","projects/shared-lib/src/lib/components/customer-issues-item/customer-issues-item.component.html","projects/shared-lib/src/lib/components/dialog-entry/dialog-entry.component.ts","projects/shared-lib/src/lib/components/dialog-entry/dialog-entry.component.html","projects/shared-lib/src/lib/guards/customer-issue.guard.ts","projects/shared-lib/src/lib/guards/dashboard-access.guard.ts","projects/shared-lib/src/lib/components/user-engagement-report/user-engagement-report.component.ts","projects/shared-lib/src/lib/components/user-engagement-report/user-engagement-report.component.html","projects/shared-lib/src/lib/components/canvas-designer/canvas-designer.component.ts","projects/shared-lib/src/lib/components/canvas-designer/canvas-designer.component.html","projects/shared-lib/src/lib/components/logbook/logbook.component.ts","projects/shared-lib/src/lib/components/logbook/logbook.component.html","projects/shared-lib/src/lib/components/canvas-tabs-list/canvas-tabs-list.component.ts","projects/shared-lib/src/lib/components/canvas-tabs-list/canvas-tabs-list.component.html","projects/desktop/src/app/_constants/detailed.routes.ts","projects/desktop/src/app/app-routing.module.ts","projects/desktop/src/app/user/user.module.ts","node_modules/ngx-bootstrap/tabs/fesm2022/ngx-bootstrap-tabs.mjs","node_modules/ngx-bootstrap/pagination/fesm2022/ngx-bootstrap-pagination.mjs","node_modules/ngx-bootstrap/alert/fesm2022/ngx-bootstrap-alert.mjs","node_modules/ngx-bootstrap/chronos/fesm2022/ngx-bootstrap-chronos.mjs","node_modules/ngx-bootstrap/mini-ngrx/fesm2022/ngx-bootstrap-mini-ngrx.mjs","node_modules/ngx-bootstrap/timepicker/fesm2022/ngx-bootstrap-timepicker.mjs","node_modules/ngx-bootstrap/datepicker/fesm2022/ngx-bootstrap-datepicker.mjs","node_modules/ngx-bootstrap/carousel/fesm2022/ngx-bootstrap-carousel.mjs","node_modules/ngx-bootstrap/popover/fesm2022/ngx-bootstrap-popover.mjs","node_modules/angular2-multiselect-dropdown/fesm2022/angular2-multiselect-dropdown.mjs","node_modules/ng2-material-dropdown/fesm2020/ng2-material-dropdown.mjs","node_modules/ngx-chips/fesm2020/ngx-chips.mjs","projects/desktop/src/app/_layout/layout.routes.ts","node_modules/highcharts-angular/fesm2020/highcharts-angular.mjs","projects/desktop/src/app/_layout/shared/components/location-reducer/location-reducer.component.ts","projects/desktop/src/app/_layout/layout.module.ts","projects/shared-lib/src/lib/_other-template-components/potd/potd.module.ts","projects/shared-lib/src/lib/components/canvas-gse-popup-settings/canvas-gse-popup-settings.module.ts","projects/shared-lib/src/lib/components/canvas-widget-template-popup-settings/canvas-widget-template-popup-settings.module.ts","projects/shared-lib/src/lib/components/tactical-dashboard-interval-popup-confirmation-settings/tactical-dashboard-interval-popup-confirmation-settings.module.ts","projects/shared-lib/src/lib/components/recursive-data-navigator/recursive-data-navigator.module.ts","projects/shared-lib/src/lib/components/dashboard-copy/dashboard-copy.module.ts","projects/shared-lib/src/lib/components/ninja-statistics-content/ninja-statistics-content.module.ts","projects/shared-lib/src/lib/components/multicheck-filter/multicheck-filter.module.ts","projects/shared-lib/src/lib/components/file-upload-list/file-upload-list.module.ts","projects/shared-lib/src/lib/components/signalr-test/signalr-test.module.ts","projects/shared-lib/src/lib/components/training-lessons/training-lessons.module.ts","projects/shared-lib/src/lib/components/training-courses/training-courses.module.ts","projects/shared-lib/src/lib/components/add-template-to-canvas/add-template-to-canvas.module.ts","projects/shared-lib/src/lib/_directives/directives.module.ts","projects/shared-lib/src/lib/components/shared-dashboard/shared-dashboard.module.ts","projects/shared-lib/src/lib/components/customer-issues-list/customer-issues-list.module.ts","projects/shared-lib/src/lib/components/customer-issues-item/customer-issues-item.module.ts","projects/shared-lib/src/lib/components/logbook/logbook.module.ts","projects/shared-lib/src/lib/components/dashboard-custom-timescope-popup-confirmation-settings/dashboard-custom-timescope-popup-confirmation-settings.module.ts","projects/shared-lib/src/lib/components/tactical-widget-summary-tile-popup/tactical-widget-summary-tile-popup.module.ts","projects/shared-lib/src/lib/components/breadcrumbs-events-template-popup/breadcrumbs-events-template-popup.component.ts","projects/shared-lib/src/lib/components/breadcrumbs-events-template-popup/breadcrumbs-events-template-popup.component.html","projects/shared-lib/src/lib/components/breadcrumbs-events-template-popup/breadcrumbs-events-template-popup.module.ts","projects/shared-lib/src/lib/components/user-engagement-report/user-engagement-report.module.ts","projects/shared-lib/src/lib/components/canvas-tabs-list/canvas-tabs-list.module.ts","projects/desktop/src/app/app.module.ts","projects/shared-lib/src/lib/components/snackbar-broadcast-message/snackbar-broadcast-message.module.ts","projects/shared-lib/src/lib/components/canvas-designer/canvas-designer.module.ts","projects/desktop/src/main.ts"],"sourcesContent":["var jQuery = require('jquery');\n/*!\n * Copyright 2023 Progress Software Corporation and/or one of its subsidiaries or affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n!function (e) {\n \"function\" == typeof define && define.amd ? define([\"jquery\"], e) : e();\n}(function () {\n var e = {\n name: \"@progress/kendo-ui\",\n productName: \"Kendo UI\",\n productCodes: [\"KENDOUICOMPLETE\", \"KENDOUI\", \"KENDOUI\", \"KENDOUICOMPLETE\"],\n publishDate: 0,\n version: \"2022.3.2112\".replace(/^\\s+|\\s+$/g, \"\"),\n licensingDocsUrl: \"https://docs.telerik.com/kendo-ui/intro/installation/using-license-code\"\n };\n !function (t, n, i) {\n var a,\n r = n.kendo = n.kendo || {\n cultures: {}\n },\n o = t.extend,\n s = t.each,\n l = Array.isArray,\n d = t.noop,\n u = Math,\n c = n.JSON || {},\n p = {},\n h = /%/,\n f = /\\{(\\d+)(:[^\\}]+)?\\}/g,\n m = /(\\d+(?:\\.?)\\d*)px\\s*(\\d+(?:\\.?)\\d*)px\\s*(\\d+(?:\\.?)\\d*)px\\s*(\\d+)?/i,\n g = /^(\\+|-?)\\d+(\\.?)\\d*$/,\n v = \"function\",\n _ = \"string\",\n b = \"number\",\n k = \"object\",\n w = \"null\",\n y = \"boolean\",\n x = \"undefined\",\n C = \"aria-labelledby\",\n T = \"aria-label\",\n S = {},\n I = {},\n D = [].slice,\n E = [\"themeColor\", \"fillMode\", \"shape\", \"size\", \"rounded\", \"positionMode\"],\n A = function () {\n var e,\n t,\n n,\n a,\n r,\n o,\n s = arguments,\n l = arguments[0] || {},\n d = 1,\n u = arguments.length,\n c = !1;\n for (\"boolean\" == typeof l && (c = l, l = arguments[d] || {}, d++), \"object\" != typeof l && \"function\" != typeof l && (l = {}), d === u && (l = this, d--); d < u; d++) if (null != (r = s[d])) for (a in r) \"filters\" != a && \"concat\" != a && \":\" != a && (e = l[a], l !== (n = r[a]) && (c && n && (jQuery.isPlainObject(n) || (t = Array.isArray(n))) ? (t ? (t = !1, o = e && Array.isArray(e) ? e : []) : o = e && jQuery.isPlainObject(e) ? e : {}, l[a] = A(c, o, n)) : n !== i && (l[a] = n)));\n return l;\n };\n function F() {}\n r.version = \"2022.3.2112\".replace(/^\\s+|\\s+$/g, \"\"), F.extend = function (e) {\n var t,\n n,\n i = function () {},\n a = this,\n r = e && e.init ? e.init : function () {\n a.apply(this, arguments);\n };\n for (t in i.prototype = a.prototype, n = r.fn = r.prototype = new i(), e) null != e[t] && e[t].constructor === Object ? n[t] = o(!0, {}, i.prototype[t], e[t]) : n[t] = e[t];\n return n.constructor = r, r.extend = a.extend, r;\n }, F.prototype._initOptions = function (e) {\n this.options = G({}, this.options, e);\n };\n var z = r.isFunction = function (e) {\n return \"function\" == typeof e;\n },\n P = function () {\n this._defaultPrevented = !0;\n },\n H = function () {\n return !0 === this._defaultPrevented;\n },\n N = F.extend({\n init: function () {\n this._events = {};\n },\n bind: function (e, t, n) {\n var a,\n r,\n o,\n s,\n l = this,\n d = typeof e === _ ? [e] : e,\n u = typeof t === v;\n if (t === i) {\n for (a in e) l.bind(a, e[a]);\n return l;\n }\n for (a = 0, r = d.length; a < r; a++) e = d[a], (s = u ? t : t[e]) && (n && (o = s, s = function () {\n l.unbind(e, s), o.apply(l, arguments);\n }, s.original = o), (l._events[e] = l._events[e] || []).push(s));\n return l;\n },\n one: function (e, t) {\n return this.bind(e, t, !0);\n },\n first: function (e, t) {\n var n,\n i,\n a,\n r = this,\n o = typeof e === _ ? [e] : e,\n s = typeof t === v;\n for (n = 0, i = o.length; n < i; n++) e = o[n], (a = s ? t : t[e]) && (r._events[e] = r._events[e] || []).unshift(a);\n return r;\n },\n trigger: function (e, t) {\n var n,\n i,\n a = this,\n r = a._events[e];\n if (r) {\n for ((t = t || {}).sender = a, t._defaultPrevented = !1, t.preventDefault = P, t.isDefaultPrevented = H, n = 0, i = (r = r.slice()).length; n < i; n++) r[n].call(a, t);\n return !0 === t._defaultPrevented;\n }\n return !1;\n },\n unbind: function (e, t) {\n var n,\n a = this,\n r = a._events[e];\n if (e === i) a._events = {};else if (r) if (t) for (n = r.length - 1; n >= 0; n--) r[n] !== t && r[n].original !== t || r.splice(n, 1);else a._events[e] = [];\n return a;\n }\n });\n function R(e, t) {\n if (t) return \"'\" + e.split(\"'\").join(\"\\\\'\").split('\\\\\"').join('\\\\\\\\\\\\\"').replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/\\t/g, \"\\\\t\") + \"'\";\n var n = e.charAt(0),\n i = e.substring(1);\n return \"=\" === n ? \"+(\" + i + \")+\" : \":\" === n ? \"+$kendoHtmlEncode(\" + i + \")+\" : \";\" + e + \";$kendoOutput+=\";\n }\n var O = /^\\w+/,\n M = /\\$\\{([^}]*)\\}/g,\n B = /\\\\\\}/g,\n L = /__CURLY__/g,\n V = /\\\\#/g,\n U = /__SHARP__/g,\n W = [\"\", \"0\", \"00\", \"000\", \"0000\"];\n function j(e, t, n) {\n return (n = (t = t || 2) - (e += \"\").length) ? W[t].substring(0, n) + e : e;\n }\n function q(e, t) {\n var n = r._outerWidth,\n i = r._outerHeight,\n a = e.parent(\".k-animation-container\"),\n o = a[0].style;\n a.is(\":hidden\") && a.css({\n display: \"\",\n position: \"\"\n }), h.test(o.width) || h.test(o.height) || a.css({\n width: t ? n(e) + 1 : n(e),\n height: i(e),\n boxSizing: \"content-box\",\n mozBoxSizing: \"content-box\",\n webkitBoxSizing: \"content-box\"\n });\n }\n function G(e) {\n var t = arguments,\n n = 1,\n i = arguments.length;\n for (n = 1; n < i; n++) K(e, t[n]);\n return e;\n }\n function K(e, t) {\n var i,\n a,\n o,\n s,\n l,\n d = r.data.ObservableArray,\n u = r.data.LazyObservableArray,\n c = r.data.DataSource,\n p = r.data.HierarchicalDataSource;\n for (i in t) !(s = (o = typeof (a = t[i])) === k && null !== a ? a.constructor : null) || s === Array || s === d || s === u || s === c || s === p || s === RegExp || r.isFunction(n.ArrayBuffer) && s === ArrayBuffer || a instanceof HTMLElement ? o !== x && (e[i] = a) : a instanceof Date ? e[i] = new Date(a.getTime()) : z(a.clone) ? e[i] = a.clone() : (l = e[i], e[i] = typeof l === k && l || {}, K(e[i], a));\n return e;\n }\n function $(e, t, n) {\n for (var a in t) if (t.hasOwnProperty(a) && t[a].test(e)) return a;\n return n !== i ? n : e;\n }\n function Y(e) {\n return e.replace(/\\-(\\w)/g, function (e, t) {\n return t.toUpperCase();\n });\n }\n function Q(e, n) {\n var i,\n a = {};\n return document.defaultView && document.defaultView.getComputedStyle ? (i = document.defaultView.getComputedStyle(e, \"\"), n && t.each(n, function (e, t) {\n a[t] = i.getPropertyValue(t);\n })) : (i = e.currentStyle, n && t.each(n, function (e, t) {\n a[t] = i[Y(t)];\n })), r.size(a) || (a = i), a;\n }\n a = {\n paramName: \"data\",\n useWithBlock: !0,\n render: function (e, t) {\n var n,\n i,\n a = \"\";\n for (n = 0, i = t.length; n < i; n++) a += e(t[n]);\n return a;\n },\n compile: function (e, t) {\n var n,\n i,\n a,\n s = o({}, this, t),\n l = s.paramName,\n d = l.match(O)[0],\n u = s.useWithBlock,\n c = \"var $kendoOutput, $kendoHtmlEncode = kendo.htmlEncode;\";\n if (z(e)) return e;\n for (c += u ? \"with(\" + l + \"){\" : \"\", c += \"$kendoOutput=\", i = e.replace(B, \"__CURLY__\").replace(M, \"#=$kendoHtmlEncode($1)#\").replace(L, \"}\").replace(V, \"__SHARP__\").split(\"#\"), a = 0; a < i.length; a++) c += R(i[a], a % 2 == 0);\n c += u ? \";}\" : \";\", c = (c += \"return $kendoOutput;\").replace(U, \"#\");\n try {\n return (n = new Function(d, c))._slotCount = Math.floor(i.length / 2), n;\n } catch (t) {\n throw new Error(r.format(\"Invalid template:'{0}' Generated code:'{1}'\", e, c));\n }\n }\n }, function () {\n var e,\n t,\n n,\n i = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n a = {\n \"\\b\": \"\\\\b\",\n \"\\t\": \"\\\\t\",\n \"\\n\": \"\\\\n\",\n \"\\f\": \"\\\\f\",\n \"\\r\": \"\\\\r\",\n '\"': '\\\\\"',\n \"\\\\\": \"\\\\\\\\\"\n },\n r = {}.toString;\n function o(e) {\n return i.lastIndex = 0, i.test(e) ? '\"' + e.replace(i, function (e) {\n var t = a[e];\n return typeof t === _ ? t : \"\\\\u\" + (\"0000\" + e.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' : '\"' + e + '\"';\n }\n function s(i, a) {\n var l,\n d,\n u,\n c,\n p,\n h,\n f = e,\n m = a[i];\n if (m && typeof m === k && typeof m.toJSON === v && (m = m.toJSON(i)), typeof n === v && (m = n.call(a, i, m)), (h = typeof m) === _) return o(m);\n if (h === b) return isFinite(m) ? String(m) : w;\n if (h === y || h === w) return String(m);\n if (h === k) {\n if (!m) return w;\n if (e += t, p = [], \"[object Array]\" === r.apply(m)) {\n for (c = m.length, l = 0; l < c; l++) p[l] = s(l, m) || w;\n return u = 0 === p.length ? \"[]\" : e ? \"[\\n\" + e + p.join(\",\\n\" + e) + \"\\n\" + f + \"]\" : \"[\" + p.join(\",\") + \"]\", e = f, u;\n }\n if (n && typeof n === k) for (c = n.length, l = 0; l < c; l++) typeof n[l] === _ && (u = s(d = n[l], m)) && p.push(o(d) + (e ? \": \" : \":\") + u);else for (d in m) Object.hasOwnProperty.call(m, d) && (u = s(d, m)) && p.push(o(d) + (e ? \": \" : \":\") + u);\n return u = 0 === p.length ? \"{}\" : e ? \"{\\n\" + e + p.join(\",\\n\" + e) + \"\\n\" + f + \"}\" : \"{\" + p.join(\",\") + \"}\", e = f, u;\n }\n }\n typeof Date.prototype.toJSON !== v && (Date.prototype.toJSON = function () {\n var e = this;\n return isFinite(e.valueOf()) ? j(e.getUTCFullYear(), 4) + \"-\" + j(e.getUTCMonth() + 1) + \"-\" + j(e.getUTCDate()) + \"T\" + j(e.getUTCHours()) + \":\" + j(e.getUTCMinutes()) + \":\" + j(e.getUTCSeconds()) + \"Z\" : null;\n }, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function () {\n return this.valueOf();\n }), typeof c.stringify !== v && (c.stringify = function (i, a, r) {\n var o;\n if (e = \"\", t = \"\", typeof r === b) for (o = 0; o < r; o += 1) t += \" \";else typeof r === _ && (t = r);\n if (n = a, a && typeof a !== v && (typeof a !== k || typeof a.length !== b)) throw new Error(\"JSON.stringify\");\n return s(\"\", {\n \"\": i\n });\n });\n }(), function () {\n var e = /dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|HH|H|hh|h|mm|m|fff|ff|f|tt|ss|s|zzz|zz|z|\"[^\"]*\"|'[^']*'/g,\n n = /^(n|c|p|e)(\\d*)$/i,\n a = /(\\\\.)|(['][^']*[']?)|([\"][^\"]*[\"]?)/g,\n o = /\\,/g,\n s = \"\",\n l = \".\",\n d = \"#\",\n c = \"0\",\n p = \"en-US\",\n h = {}.toString;\n function m(e) {\n if (e) {\n if (e.numberFormat) return e;\n if (typeof e === _) {\n var t = r.cultures;\n return t[e] || t[e.split(\"-\")[0]] || null;\n }\n return null;\n }\n return null;\n }\n function g(e) {\n return e && (e = m(e)), e || r.cultures.current;\n }\n r.cultures[\"en-US\"] = {\n name: p,\n numberFormat: {\n pattern: [\"-n\"],\n decimals: 2,\n \",\": \",\",\n \".\": \".\",\n groupSize: [3],\n percent: {\n pattern: [\"-n %\", \"n %\"],\n decimals: 2,\n \",\": \",\",\n \".\": \".\",\n groupSize: [3],\n symbol: \"%\"\n },\n currency: {\n name: \"US Dollar\",\n abbr: \"USD\",\n pattern: [\"($n)\", \"$n\"],\n decimals: 2,\n \",\": \",\",\n \".\": \".\",\n groupSize: [3],\n symbol: \"$\"\n }\n },\n calendars: {\n standard: {\n days: {\n names: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n namesAbbr: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n namesShort: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"]\n },\n months: {\n names: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n namesAbbr: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n },\n AM: [\"AM\", \"am\", \"AM\"],\n PM: [\"PM\", \"pm\", \"PM\"],\n patterns: {\n d: \"M/d/yyyy\",\n D: \"dddd, MMMM dd, yyyy\",\n F: \"dddd, MMMM dd, yyyy h:mm:ss tt\",\n g: \"M/d/yyyy h:mm tt\",\n G: \"M/d/yyyy h:mm:ss tt\",\n m: \"MMMM dd\",\n M: \"MMMM dd\",\n s: \"yyyy'-'MM'-'ddTHH':'mm':'ss\",\n t: \"h:mm tt\",\n T: \"h:mm:ss tt\",\n u: \"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\",\n y: \"MMMM, yyyy\",\n Y: \"MMMM, yyyy\"\n },\n \"/\": \"/\",\n \":\": \":\",\n firstDay: 0,\n twoDigitYearMax: 2029\n }\n }\n }, r.culture = function (e) {\n var t,\n n = r.cultures;\n if (e === i) return n.current;\n (t = m(e) || n[p]).calendar = t.calendars.standard, n.current = t;\n }, r.findCulture = m, r.getCulture = g, r.culture(p);\n var v = function (e, t, n, a) {\n var r,\n o,\n s,\n l,\n d,\n u,\n c = e.indexOf(a[\".\"]),\n p = a.groupSize.slice(),\n h = p.shift();\n if (n = -1 !== c ? c : n + 1, (o = (r = e.substring(t, n)).length) >= h) {\n for (s = o, l = []; s > -1;) if ((d = r.substring(s - h, s)) && l.push(d), s -= h, 0 === (h = (u = p.shift()) !== i ? u : h)) {\n s > 0 && l.push(r.substring(0, s));\n break;\n }\n r = l.reverse().join(a[\",\"]), e = e.substring(0, t) + r + e.substring(n);\n }\n return e;\n },\n k = function (e, t, n) {\n return t = t || 0, e = e.toString().split(\"e\"), e = Math.round(+(e[0] + \"e\" + (e[1] ? +e[1] + t : t))), n && (e = -e), (e = +((e = e.toString().split(\"e\"))[0] + \"e\" + (e[1] ? +e[1] - t : -t))).toFixed(Math.min(t, 20));\n },\n w = function (t, r, p) {\n if (r) {\n if (\"[object Date]\" === h.call(t)) return function (t, n, a) {\n var r = (a = g(a)).calendars.standard,\n o = r.days,\n s = r.months;\n return (n = r.patterns[n] || n).replace(e, function (e) {\n var n, a, l;\n return \"d\" === e ? a = t.getDate() : \"dd\" === e ? a = j(t.getDate()) : \"ddd\" === e ? a = o.namesAbbr[t.getDay()] : \"dddd\" === e ? a = o.names[t.getDay()] : \"M\" === e ? a = t.getMonth() + 1 : \"MM\" === e ? a = j(t.getMonth() + 1) : \"MMM\" === e ? a = s.namesAbbr[t.getMonth()] : \"MMMM\" === e ? a = s.names[t.getMonth()] : \"yy\" === e ? a = j(t.getFullYear() % 100) : \"yyyy\" === e ? a = j(t.getFullYear(), 4) : \"h\" === e ? a = t.getHours() % 12 || 12 : \"hh\" === e ? a = j(t.getHours() % 12 || 12) : \"H\" === e ? a = t.getHours() : \"HH\" === e ? a = j(t.getHours()) : \"m\" === e ? a = t.getMinutes() : \"mm\" === e ? a = j(t.getMinutes()) : \"s\" === e ? a = t.getSeconds() : \"ss\" === e ? a = j(t.getSeconds()) : \"f\" === e ? a = u.floor(t.getMilliseconds() / 100) : \"ff\" === e ? ((a = t.getMilliseconds()) > 99 && (a = u.floor(a / 10)), a = j(a)) : \"fff\" === e ? a = j(t.getMilliseconds(), 3) : \"tt\" === e ? a = t.getHours() < 12 ? r.AM[0] : r.PM[0] : \"zzz\" === e ? (l = (n = t.getTimezoneOffset()) < 0, a = u.abs(n / 60).toString().split(\".\")[0], n = u.abs(n) - 60 * a, a = (l ? \"+\" : \"-\") + j(a), a += \":\" + j(n)) : \"zz\" !== e && \"z\" !== e || (l = (a = t.getTimezoneOffset() / 60) < 0, a = u.abs(a).toString().split(\".\")[0], a = (l ? \"+\" : \"-\") + (\"zz\" === e ? j(a) : a)), a !== i ? a : e.slice(1, e.length - 1);\n });\n }(t, r, p);\n if (typeof t === b) return function (e, t, r) {\n var u,\n p,\n h,\n f,\n m,\n _,\n b,\n w,\n y,\n x,\n C,\n T,\n S,\n I,\n D,\n E,\n A,\n F,\n z,\n P,\n H = (r = g(r)).numberFormat,\n N = H[\".\"],\n R = H.decimals,\n O = H.pattern[0],\n M = [],\n B = e < 0,\n L = s,\n V = s,\n U = -1;\n if (e === i) return s;\n if (!isFinite(e)) return e;\n if (!t) return r.name.length ? e.toLocaleString() : e.toString();\n if (m = n.exec(t)) {\n if (h = \"p\" === (t = m[1].toLowerCase()), ((p = \"c\" === t) || h) && (N = (H = p ? H.currency : H.percent)[\".\"], R = H.decimals, u = H.symbol, O = H.pattern[B ? 0 : 1]), (f = m[2]) && (R = +f), \"e\" === t) return (f ? e.toExponential(R) : e.toExponential()).replace(l, H[\".\"]);\n if (h && (e *= 100), B = (e = k(e, R)) < 0, _ = (e = e.split(l))[0], b = e[1], B && (_ = _.substring(1)), V = v(_, 0, _.length, H), b && (V += N + b), \"n\" === t && !B) return V;\n for (e = s, y = 0, x = O.length; y < x; y++) e += \"n\" === (C = O.charAt(y)) ? V : \"$\" === C || \"%\" === C ? u : C;\n return e;\n }\n if ((t.indexOf(\"'\") > -1 || t.indexOf('\"') > -1 || t.indexOf(\"\\\\\") > -1) && (t = t.replace(a, function (e) {\n var t = e.charAt(0).replace(\"\\\\\", \"\"),\n n = e.slice(1).replace(t, \"\");\n return M.push(n), \"??\";\n })), t = t.split(\";\"), B && t[1]) t = t[1], S = !0;else if (0 === e && t[2]) {\n if (-1 == (t = t[2]).indexOf(d) && -1 == t.indexOf(c)) return t;\n } else t = t[0];\n if ((h = -1 != t.indexOf(\"%\")) && (e *= 100), (p = -1 != (z = t.indexOf(\"$\"))) && \"\\\\\" === t[z - 1] && (t = t.split(\"\\\\\").join(\"\"), p = !1), (p || h) && (N = (H = p ? H.currency : H.percent)[\".\"], R = H.decimals, u = H.symbol), (T = t.indexOf(\",\") > -1) && (t = t.replace(o, s)), I = t.indexOf(l), x = t.length, -1 != I) if (b = (b = (b = e.toString().split(\"e\"))[1] ? k(e, Math.abs(b[1])) : b[0]).split(l)[1] || s, A = (E = t.lastIndexOf(c) - I) > -1, F = (D = t.lastIndexOf(d) - I) > -1, y = b.length, A || F || (x = (t = t.substring(0, I) + t.substring(I + 1)).length, I = -1, y = 0), A && E > D) y = E;else if (D > E) if (F && y > D) {\n for (var W = k(e, D, B); W.charAt(W.length - 1) === c && D > 0 && D > E;) D--, W = k(e, D, B);\n y = D;\n } else A && y < E && (y = E);\n if (e = k(e, y, B), D = t.indexOf(d), E = t.indexOf(c), U = -1 == D && -1 != E ? E : -1 != D && -1 == E ? D : D > E ? E : D, D = t.lastIndexOf(d), E = t.lastIndexOf(c), P = -1 == D && -1 != E ? E : -1 != D && -1 == E || D > E ? D : E, U == x && (P = U), -1 != U) {\n for (_ = (V = e.toString().split(l))[0], b = V[1] || s, w = _.length, b.length, B && -1 * e >= 0 && (B = !1), e = t.substring(0, U), B && !S && (e += \"-\"), y = U; y < x; y++) {\n if (C = t.charAt(y), -1 == I) {\n if (P - y < w) {\n e += _;\n break;\n }\n } else if (-1 != E && E < y && (L = s), I - y <= w && I - y > -1 && (e += _, y = I), I === y) {\n e += (b ? N : s) + b, y += P - I + 1;\n continue;\n }\n C === c ? (e += C, L = C) : C === d && (e += L);\n }\n if (T && (e = v(e, U + (B && !S ? 1 : 0), Math.max(P, w + U), H)), P >= U && (e += t.substring(P + 1)), p || h) {\n for (V = s, y = 0, x = e.length; y < x; y++) V += \"$\" === (C = e.charAt(y)) || \"%\" === C ? u : C;\n e = V;\n }\n if (x = M.length) for (y = 0; y < x; y++) e = e.replace(\"??\", M[y]);\n }\n return e;\n }(t, r, p);\n }\n return t !== i ? t : \"\";\n };\n r.format = function (e) {\n var t = arguments;\n return e.replace(f, function (e, n, i) {\n var a = t[parseInt(n, 10) + 1];\n return w(a, i ? i.substring(1) : \"\");\n });\n }, r._extractFormat = function (e) {\n return \"{0:\" === e.slice(0, 3) && (e = e.slice(3, e.length - 1)), e;\n }, r._activeElement = function () {\n try {\n return document.activeElement;\n } catch (e) {\n return document.documentElement.activeElement;\n }\n }, r._round = k, r._outerWidth = function (e, n) {\n return t(e).outerWidth(n || !1) || 0;\n }, r._outerHeight = function (e, n) {\n return t(e).outerHeight(n || !1) || 0;\n }, r.toString = w;\n }(), function () {\n var e = /\\u00A0/g,\n n = /\\s/g,\n a = /[eE][\\-+]?[0-9]+/,\n o = /[+|\\-]\\d{1,2}/,\n s = /[+|\\-]\\d{1,2}:?\\d{2}/,\n d = /^\\/Date\\((.*?)\\)\\/$/,\n c = /[+-]\\d*/,\n p = [[], [\"G\", \"g\", \"F\"], [\"D\", \"d\", \"y\", \"m\", \"T\", \"t\"]],\n h = [[\"yyyy-MM-ddTHH:mm:ss.fffffffzzz\", \"yyyy-MM-ddTHH:mm:ss.fffffff\", \"yyyy-MM-ddTHH:mm:ss.fffzzz\", \"yyyy-MM-ddTHH:mm:ss.fff\", \"ddd MMM dd yyyy HH:mm:ss\", \"yyyy-MM-ddTHH:mm:sszzz\", \"yyyy-MM-ddTHH:mmzzz\", \"yyyy-MM-ddTHH:mmzz\", \"yyyy-MM-ddTHH:mm:ss\", \"yyyy-MM-dd HH:mm:ss\", \"yyyy/MM/dd HH:mm:ss\"], [\"yyyy-MM-ddTHH:mm\", \"yyyy-MM-dd HH:mm\", \"yyyy/MM/dd HH:mm\"], [\"yyyy/MM/dd\", \"yyyy-MM-dd\", \"HH:mm:ss\", \"HH:mm\"]],\n f = {\n 2: /^\\d{1,2}/,\n 3: /^\\d{1,3}/,\n 4: /^\\d{4}/\n },\n m = {}.toString;\n function g(e, t, n) {\n return !(e >= t && e <= n);\n }\n function v(e) {\n return e.charAt(0);\n }\n function _(e) {\n return t.map(e, v);\n }\n function k(e) {\n for (var t = 0, n = e.length, i = []; t < n; t++) i[t] = (e[t] + \"\").toLowerCase();\n return i;\n }\n function w(e) {\n var t,\n n = {};\n for (t in e) n[t] = k(e[t]);\n return n;\n }\n function y(e, t, n, a) {\n if (!e) return null;\n var l,\n d,\n u,\n c,\n p,\n h,\n m,\n v,\n b,\n k,\n y,\n x,\n C = function (e) {\n for (var n = 0; t[R] === e;) n++, R++;\n return n > 0 && (R -= 1), n;\n },\n T = function (t) {\n var n = f[t] || new RegExp(\"^\\\\d{1,\" + t + \"}\"),\n i = e.substr(O, t).match(n);\n return i ? (i = i[0], O += i.length, parseInt(i, 10)) : null;\n },\n S = function (t, n) {\n for (var i, a, r, o = 0, s = t.length, l = 0, d = 0; o < s; o++) a = (i = t[o]).length, r = e.substr(O, a), n && (r = r.toLowerCase()), r == i && a > l && (l = a, d = o);\n return l ? (O += l, d + 1) : null;\n },\n I = function () {\n var n = !1;\n return e.charAt(O) === t[R] && (O++, n = !0), n;\n },\n D = n.calendars.standard,\n E = null,\n A = null,\n F = null,\n z = null,\n P = null,\n H = null,\n N = null,\n R = 0,\n O = 0,\n M = !1,\n B = new Date(),\n L = D.twoDigitYearMax || 2029,\n V = B.getFullYear();\n for (t || (t = \"d\"), (c = D.patterns[t]) && (t = c), u = (t = t.split(\"\")).length; R < u; R++) if (l = t[R], M) \"'\" === l ? M = !1 : I();else if (\"d\" === l) {\n if (d = C(\"d\"), D._lowerDays || (D._lowerDays = w(D.days)), null !== F && d > 2) continue;\n if (null === (F = d < 3 ? T(2) : S(D._lowerDays[3 == d ? \"namesAbbr\" : \"names\"], !0)) || g(F, 1, 31)) return null;\n } else if (\"M\" === l) {\n if (d = C(\"M\"), D._lowerMonths || (D._lowerMonths = w(D.months)), null === (A = d < 3 ? T(2) : S(D._lowerMonths[3 == d ? \"namesAbbr\" : \"names\"], !0)) || g(A, 1, 12)) return null;\n A -= 1;\n } else if (\"y\" === l) {\n if (null === (E = T(d = C(\"y\")))) return null;\n 2 == d && (\"string\" == typeof L && (L = V + parseInt(L, 10)), (E = V - V % 100 + E) > L && (E -= 100));\n } else if (\"h\" === l) {\n if (C(\"h\"), 12 == (z = T(2)) && (z = 0), null === z || g(z, 0, 11)) return null;\n } else if (\"H\" === l) {\n if (C(\"H\"), null === (z = T(2)) || g(z, 0, 23)) return null;\n } else if (\"m\" === l) {\n if (C(\"m\"), null === (P = T(2)) || g(P, 0, 59)) return null;\n } else if (\"s\" === l) {\n if (C(\"s\"), null === (H = T(2)) || g(H, 0, 59)) return null;\n } else if (\"f\" === l) {\n if (d = C(\"f\"), x = e.substr(O, d).match(f[3]), null !== (N = T(d)) && (N = parseFloat(\"0.\" + x[0], 10), N = r._round(N, 3), N *= 1e3), null === N || g(N, 0, 999)) return null;\n } else if (\"t\" === l) {\n if (d = C(\"t\"), v = D.AM, b = D.PM, 1 === d && (v = _(v), b = _(b)), !(p = S(b)) && !S(v)) return null;\n } else if (\"z\" === l) {\n if (h = !0, d = C(\"z\"), \"Z\" === e.substr(O, 1)) {\n I();\n continue;\n }\n if (!(m = e.substr(O, 6).match(d > 2 ? s : o))) return null;\n if (k = (m = m[0].split(\":\"))[0], !(y = m[1]) && k.length > 3 && (O = k.length - 2, y = k.substring(O), k = k.substring(0, O)), g(k = parseInt(k, 10), -12, 13)) return null;\n if (d > 2 && (y = m[0][0] + y, y = parseInt(y, 10), isNaN(y) || g(y, -59, 59))) return null;\n } else if (\"'\" === l) M = !0, I();else if (!I()) return null;\n return a && !/^\\s*$/.test(e.substr(O)) ? null : (null === E && null === A && null === F && (null !== z || null !== P || H || null) ? (E = V, A = B.getMonth(), F = B.getDate()) : (null === E && (E = V), null === F && (F = 1)), p && z < 12 && (z += 12), h ? (k && (z += -k), y && (P += -y), e = new Date(Date.UTC(E, A, F, z, P, H, N))) : function (e, t) {\n t || 23 !== e.getHours() || e.setHours(e.getHours() + 2);\n }(e = new Date(E, A, F, z, P, H, N), z), E < 100 && e.setFullYear(E), e.getDate() !== F && h === i ? null : e);\n }\n function x(e, t, n, i) {\n if (\"[object Date]\" === m.call(e)) return e;\n var a,\n o,\n s,\n f,\n g = 0,\n v = null;\n if (e && 0 === e.indexOf(\"/D\") && (v = d.exec(e))) return v = v[1], o = c.exec(v.substring(1)), v = new Date(parseInt(v, 10)), o && (s = o[0], f = \"-\" === s.substr(0, 1) ? -1 : 1, s = s.substring(1), o = f * (60 * parseInt(s.substr(0, 2), 10) + parseInt(s.substring(2), 10)), v = r.timezone.apply(v, 0), v = r.timezone.convert(v, 0, -1 * o)), v;\n for (n = r.getCulture(n), t || (t = function (e) {\n var t,\n n,\n i,\n a = u.max(p.length, h.length),\n r = (e.calendar || e.calendars.standard).patterns,\n o = [];\n for (i = 0; i < a; i++) {\n for (t = p[i], n = 0; n < t.length; n++) o.push(r[t[n]]);\n o = o.concat(h[i]);\n }\n return o;\n }(n)), a = (t = l(t) ? t : [t]).length; g < a; g++) if (v = y(e, t[g], n, i)) return v;\n return v;\n }\n r.parseDate = function (e, t, n) {\n return x(e, t, n, !1);\n }, r.parseExactDate = function (e, t, n) {\n return x(e, t, n, !0);\n }, r.parseInt = function (e, t) {\n var n = r.parseFloat(e, t);\n return n && (n |= 0), n;\n }, r.parseFloat = function (t, i, o) {\n if (!t && 0 !== t) return null;\n if (typeof t === b) return t;\n t = t.toString();\n var s,\n l,\n d = (i = r.getCulture(i)).numberFormat,\n u = d.percent,\n c = d.currency,\n p = c.symbol,\n h = u.symbol,\n f = t.indexOf(\"-\");\n return a.test(t) ? (t = parseFloat(t.replace(d[\".\"], \".\")), isNaN(t) && (t = null), t) : f > 0 ? null : (f = f > -1, t.indexOf(p) > -1 || o && o.toLowerCase().indexOf(\"c\") > -1 ? (s = (d = c).pattern[0].replace(\"$\", p).split(\"n\"), t.indexOf(s[0]) > -1 && t.indexOf(s[1]) > -1 && (t = t.replace(s[0], \"\").replace(s[1], \"\"), f = !0)) : t.indexOf(h) > -1 && (l = !0, d = u, p = h), t = t.replace(\"-\", \"\").replace(p, \"\").replace(e, \" \").split(d[\",\"].replace(e, \" \")).join(\"\").replace(n, \"\").replace(d[\".\"], \".\"), t = parseFloat(t), isNaN(t) ? t = null : f && (t *= -1), t && l && (t /= 100), t);\n };\n }(), function () {\n p._scrollbar = i, p.scrollbar = function (e) {\n if (isNaN(p._scrollbar) || e) {\n var t,\n n = document.createElement(\"div\");\n return n.style.cssText = \"overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block\", n.innerHTML = \" \", document.body.appendChild(n), p._scrollbar = t = n.offsetWidth - n.scrollWidth, document.body.removeChild(n), t;\n }\n return p._scrollbar;\n }, p.isRtl = function (e) {\n return t(e).closest(\".k-rtl\").length > 0;\n };\n var e = document.createElement(\"table\");\n try {\n e.innerHTML = \"\", p.tbodyInnerHtml = !0;\n } catch (e) {\n p.tbodyInnerHtml = !1;\n }\n p.touch = \"ontouchstart\" in n;\n var a = document.documentElement.style,\n r = p.transitions = !1,\n o = p.transforms = !1,\n l = \"HTMLElement\" in n ? HTMLElement.prototype : [];\n p.hasHW3D = \"WebKitCSSMatrix\" in n && \"m11\" in new n.WebKitCSSMatrix() || \"MozPerspective\" in a || \"msPerspective\" in a, p.cssFlexbox = \"flexWrap\" in a || \"WebkitFlexWrap\" in a || \"msFlexWrap\" in a, s([\"Moz\", \"webkit\", \"O\", \"ms\"], function () {\n var t = this.toString(),\n n = typeof e.style[t + \"Transition\"] === _;\n if (n || typeof e.style[t + \"Transform\"] === _) {\n var i = t.toLowerCase();\n return o = {\n css: \"ms\" != i ? \"-\" + i + \"-\" : \"\",\n prefix: t,\n event: \"o\" === i || \"webkit\" === i ? i : \"\"\n }, n && ((r = o).event = r.event ? r.event + \"TransitionEnd\" : \"transitionend\"), !1;\n }\n }), e = null, p.transforms = o, p.transitions = r, p.devicePixelRatio = n.devicePixelRatio === i ? 1 : n.devicePixelRatio;\n try {\n p.screenWidth = n.outerWidth || n.screen ? n.screen.availWidth : n.innerWidth, p.screenHeight = n.outerHeight || n.screen ? n.screen.availHeight : n.innerHeight;\n } catch (e) {\n p.screenWidth = n.screen.availWidth, p.screenHeight = n.screen.availHeight;\n }\n p.detectOS = function (e) {\n var t,\n i = !1,\n a = [],\n r = !/mobile safari/i.test(e),\n o = {\n wp: /(Windows Phone(?: OS)?)\\s(\\d+)\\.(\\d+(\\.\\d+)?)/,\n fire: /(Silk)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n android: /(Android|Android.*(?:Opera|Firefox).*?\\/)\\s*(\\d+)\\.?(\\d+(\\.\\d+)?)?/,\n iphone: /(iPhone|iPod).*OS\\s+(\\d+)[\\._]([\\d\\._]+)/,\n ipad: /(iPad).*OS\\s+(\\d+)[\\._]([\\d_]+)/,\n meego: /(MeeGo).+NokiaBrowser\\/(\\d+)\\.([\\d\\._]+)/,\n webos: /(webOS)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n blackberry: /(BlackBerry|BB10).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n playbook: /(PlayBook).*?Tablet\\s*OS\\s*(\\d+)\\.(\\d+(\\.\\d+)?)/,\n windows: /(MSIE)\\s+(\\d+)\\.(\\d+(\\.\\d+)?)/,\n tizen: /(tizen).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/i,\n sailfish: /(sailfish).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*firefox/i,\n ffos: /(Mobile).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*Firefox/\n },\n s = {\n ios: /^i(phone|pad|pod)$/i,\n android: /^android|fire$/i,\n blackberry: /^blackberry|playbook/i,\n windows: /windows/,\n wp: /wp/,\n flat: /sailfish|ffos|tizen/i,\n meego: /meego/\n },\n l = {\n tablet: /playbook|ipad|fire/i\n },\n d = {\n omini: /Opera\\sMini/i,\n omobile: /Opera\\sMobi/i,\n firefox: /Firefox|Fennec/i,\n mobilesafari: /version\\/.*safari/i,\n ie: /MSIE|Windows\\sPhone/i,\n chrome: /chrome|crios/i,\n webkit: /webkit/i\n };\n for (var u in o) if (o.hasOwnProperty(u) && (a = e.match(o[u]))) {\n if (\"windows\" == u && \"plugins\" in navigator) return !1;\n (i = {}).device = u, i.tablet = $(u, l, !1), i.browser = $(e, d, \"default\"), i.name = $(u, s), i[i.name] = !0, i.majorVersion = a[2], i.minorVersion = (a[3] || \"0\").replace(\"_\", \".\"), t = i.minorVersion.replace(\".\", \"\").substr(0, 2), i.flatVersion = i.majorVersion + t + new Array(3 - (t.length < 3 ? t.length : 2)).join(\"0\"), i.cordova = typeof n.PhoneGap !== x || typeof n.cordova !== x, i.appMode = n.navigator.standalone || /file|local|wmapp/.test(n.location.protocol) || i.cordova, i.android && (p.devicePixelRatio < 1.5 && i.flatVersion < 400 || r) && (p.screenWidth > 800 || p.screenHeight > 800) && (i.tablet = u);\n break;\n }\n return i;\n };\n var d = p.mobileOS = p.detectOS(navigator.userAgent);\n p.wpDevicePixelRatio = d.wp ? screen.width / 320 : 0, p.hasNativeScrolling = !1, (d.ios || d.android && d.majorVersion > 2 || d.wp) && (p.hasNativeScrolling = d), p.delayedClick = function () {\n if (p.touch) {\n if (d.ios) return !0;\n if (d.android) return !p.browser.chrome || !(p.browser.version < 32) && !(t(\"meta[name=viewport]\").attr(\"content\") || \"\").match(/user-scalable=no/i);\n }\n return !1;\n }, p.mouseAndTouchPresent = p.touch && !(p.mobileOS.ios || p.mobileOS.android), p.detectBrowser = function (e) {\n var t = !1,\n n = [],\n i = {\n edge: /(edge)[ \\/]([\\w.]+)/i,\n webkit: /(chrome|crios)[ \\/]([\\w.]+)/i,\n safari: /(webkit)[ \\/]([\\w.]+)/i,\n opera: /(opera)(?:.*version|)[ \\/]([\\w.]+)/i,\n msie: /(msie\\s|trident.*? rv:)([\\w.]+)/i,\n mozilla: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n };\n for (var a in i) if (i.hasOwnProperty(a) && (n = e.match(i[a]))) {\n (t = {})[a] = !0, t[n[1].toLowerCase().split(\" \")[0].split(\"/\")[0]] = !0, t.version = parseInt(document.documentMode || n[2], 10), t.chrome && e.match(/(edg)[ \\/]([\\w.]+)/i) && (t.chromiumEdge = !0);\n break;\n }\n return t;\n }, p.browser = p.detectBrowser(navigator.userAgent), !d && p.touch && p.browser.safari && (d = p.mobileOS = {\n ios: !0,\n tablet: \"tablet\",\n device: \"ipad\"\n }), p.detectClipboardAccess = function () {\n var e = {\n copy: !!document.queryCommandSupported && document.queryCommandSupported(\"copy\"),\n cut: !!document.queryCommandSupported && document.queryCommandSupported(\"cut\"),\n paste: !!document.queryCommandSupported && document.queryCommandSupported(\"paste\")\n };\n return p.browser.chrome && (e.paste = !1, p.browser.version >= 43 && (e.copy = !0, e.cut = !0)), e;\n }, p.clipboard = p.detectClipboardAccess(), p.zoomLevel = function () {\n try {\n var e = p.browser,\n t = 0,\n i = document.documentElement;\n return e.msie && 11 == e.version && i.scrollHeight > i.clientHeight && !p.touch && (t = p.scrollbar()), p.touch ? i.clientWidth / n.innerWidth : e.msie && e.version >= 10 ? ((top || n).document.documentElement.offsetWidth + t) / (top || n).innerWidth : 1;\n } catch (e) {\n return 1;\n }\n }, function (e) {\n var n = \"\",\n i = t(document.documentElement),\n a = parseInt(e.version, 10);\n e.msie ? n = \"ie\" : e.mozilla ? n = \"ff\" : e.safari ? n = \"safari\" : e.webkit ? n = \"webkit\" : e.opera ? n = \"opera\" : e.edge && (n = \"edge\"), n && (n = \"k-\" + n + \" k-\" + n + a), p.mobileOS && (n += \" k-mobile\"), p.cssFlexbox || (n += \" k-no-flexbox\"), i.addClass(n);\n }(p.browser), p.eventCapture = document.documentElement.addEventListener;\n var u = document.createElement(\"input\");\n p.placeholder = \"placeholder\" in u, p.propertyChangeEvent = \"onpropertychange\" in u, p.input = function () {\n for (var e, t = [\"number\", \"date\", \"time\", \"month\", \"week\", \"datetime\", \"datetime-local\"], n = t.length, i = \"test\", a = {}, r = 0; r < n; r++) e = t[r], u.setAttribute(\"type\", e), u.value = i, a[e.replace(\"-\", \"\")] = \"text\" !== u.type && u.value !== i;\n return a;\n }(), u.style.cssText = \"float:left;\", p.cssFloat = !!u.style.cssFloat, u = null, p.stableSort = function () {\n for (var e = [{\n index: 0,\n field: \"b\"\n }], t = 1; t < 513; t++) e.push({\n index: t,\n field: \"a\"\n });\n return e.sort(function (e, t) {\n return e.field > t.field ? 1 : e.field < t.field ? -1 : 0;\n }), 1 === e[0].index;\n }(), p.matchesSelector = l.webkitMatchesSelector || l.mozMatchesSelector || l.msMatchesSelector || l.oMatchesSelector || l.matchesSelector || l.matches || function (e) {\n for (var n = document.querySelectorAll ? (this.parentNode || document).querySelectorAll(e) || [] : t(e), i = n.length; i--;) if (n[i] == this) return !0;\n return !1;\n }, p.matchMedia = \"matchMedia\" in n, p.pushState = n.history && n.history.pushState, p.hashChange = \"onhashchange\" in n, p.customElements = \"registerElement\" in n.document;\n var c = p.browser.chrome,\n h = p.browser.crios,\n f = p.browser.mozilla,\n m = p.browser.safari;\n p.msPointers = !c && n.MSPointerEvent, p.pointers = !c && !h && !f && !m && n.PointerEvent, p.kineticScrollNeeded = d && (p.touch || p.msPointers || p.pointers);\n }();\n var X = {};\n function J(e, t, n, i) {\n return typeof e === _ && (z(t) && (i = t, t = 400, n = !1), z(n) && (i = n, n = !1), typeof t === y && (n = t, t = 400), e = {\n effects: e,\n duration: t,\n reverse: n,\n complete: i\n }), o({\n effects: {},\n duration: 400,\n reverse: !1,\n init: d,\n teardown: d,\n hide: !1\n }, e, {\n completeCallback: e.complete,\n complete: d\n });\n }\n function Z(e, n, i, a, r) {\n for (var o, s = 0, l = e.length; s < l; s++) (o = t(e[s])).queue(function () {\n X.promise(o, J(n, i, a, r));\n });\n return e;\n }\n t.extend(X, {\n enabled: !0,\n Element: function (e) {\n this.element = t(e);\n },\n promise: function (e, t) {\n e.is(\":visible\") || e.css({\n display: e.data(\"olddisplay\") || \"block\"\n }).css(\"display\"), t.hide && e.data(\"olddisplay\", e.css(\"display\")).hide(), t.init && t.init(), t.completeCallback && t.completeCallback(e), e.dequeue();\n },\n disable: function () {\n this.enabled = !1, this.promise = this.promiseShim;\n },\n enable: function () {\n this.enabled = !0, this.promise = this.animatedPromise;\n }\n }), X.promiseShim = X.promise, \"kendoAnimate\" in t.fn || o(t.fn, {\n kendoStop: function (e, t) {\n return this.stop(e, t);\n },\n kendoAnimate: function (e, t, n, i) {\n return Z(this, e, t, n, i);\n },\n kendoAddClass: function (e, t) {\n return r.toggleClass(this, e, t, !0);\n },\n kendoRemoveClass: function (e, t) {\n return r.toggleClass(this, e, t, !1);\n },\n kendoToggleClass: function (e, t, n) {\n return r.toggleClass(this, e, t, n);\n }\n });\n var ee = /&/g,\n te = //g;\n var re = function (e) {\n return e.target;\n };\n p.touch && (re = function (e) {\n var t = \"originalEvent\" in e ? e.originalEvent.changedTouches : \"changedTouches\" in e ? e.changedTouches : null;\n return t ? document.elementFromPoint(t[0].clientX, t[0].clientY) : e.target;\n }, s([\"swipe\", \"swipeLeft\", \"swipeRight\", \"swipeUp\", \"swipeDown\", \"doubleTap\", \"tap\"], function (e, n) {\n t.fn[n] = function (e) {\n return this.on(n, e);\n };\n })), p.touch ? p.mobileOS ? (p.mousedown = \"touchstart\", p.mouseup = \"touchend\", p.mousemove = \"touchmove\", p.mousecancel = \"touchcancel\", p.click = \"touchend\", p.resize = \"orientationchange\") : (p.mousedown = \"mousedown touchstart\", p.mouseup = \"mouseup touchend\", p.mousemove = \"mousemove touchmove\", p.mousecancel = \"mouseleave touchcancel\", p.click = \"click\", p.resize = \"resize\") : p.pointers ? (p.mousemove = \"pointermove\", p.mousedown = \"pointerdown\", p.mouseup = \"pointerup\", p.mousecancel = \"pointercancel\", p.click = \"pointerup\", p.resize = \"orientationchange resize\") : p.msPointers ? (p.mousemove = \"MSPointerMove\", p.mousedown = \"MSPointerDown\", p.mouseup = \"MSPointerUp\", p.mousecancel = \"MSPointerCancel\", p.click = \"MSPointerUp\", p.resize = \"orientationchange resize\") : (p.mousemove = \"mousemove\", p.mousedown = \"mousedown\", p.mouseup = \"mouseup\", p.mousecancel = \"mouseleave\", p.click = \"click\", p.resize = \"resize\");\n var oe = /^([a-z]+:)?\\/\\//i;\n o(r, {\n widgets: [],\n _widgetRegisteredCallbacks: [],\n ui: r.ui || {},\n fx: r.fx || function (e) {\n return new r.effects.Element(e);\n },\n effects: r.effects || X,\n mobile: r.mobile || {},\n data: r.data || {},\n dataviz: r.dataviz || {},\n drawing: r.drawing || {},\n spreadsheet: {\n messages: {}\n },\n keys: {\n INSERT: 45,\n DELETE: 46,\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESC: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n END: 35,\n HOME: 36,\n SPACEBAR: 32,\n PAGEUP: 33,\n PAGEDOWN: 34,\n F2: 113,\n F10: 121,\n F12: 123,\n NUMPAD_PLUS: 107,\n NUMPAD_MINUS: 109,\n NUMPAD_DOT: 110\n },\n support: r.support || p,\n animate: r.animate || Z,\n ns: \"\",\n attr: function (e) {\n return \"data-\" + r.ns + e;\n },\n getShadows: function (e) {\n var t = e.css(r.support.transitions.css + \"box-shadow\") || e.css(\"box-shadow\"),\n n = t && t.match(m) || [0, 0, 0, 0, 0],\n i = u.max(+n[3], +(n[4] || 0));\n return {\n left: -n[1] + i,\n right: +n[1] + i,\n bottom: +n[2] + i\n };\n },\n wrap: function (e, i) {\n var a,\n o = r._outerWidth,\n s = r._outerHeight,\n l = e.parent(),\n d = o(n);\n if (l.removeClass(\"k-animation-container-sm\"), l.hasClass(\"k-animation-container\")) q(e, i);else {\n var u = e[0].style.width,\n c = e[0].style.height,\n p = h.test(u),\n f = h.test(c),\n m = e.hasClass(\"k-tooltip\") || e.is(\".k-menu-horizontal.k-context-menu\");\n a = p || f, !p && (!i || i && u || m) && (u = i ? o(e) + 1 : o(e)), (!f && (!i || i && c) || e.is(\".k-menu-horizontal.k-context-menu\")) && (c = s(e)), e.wrap(t(\"
\").addClass(\"k-animation-container\").attr(\"role\", \"region\").css({\n width: u,\n height: c\n })), l = e.parent(), a && e.css({\n width: \"100%\",\n height: \"100%\",\n boxSizing: \"border-box\",\n mozBoxSizing: \"border-box\",\n webkitBoxSizing: \"border-box\"\n });\n }\n return d < o(l) && (l.addClass(\"k-animation-container-sm\"), q(e, i)), l;\n },\n deepExtend: G,\n getComputedStyles: Q,\n isScrollable: function (e) {\n if (\"false\" === e.dataset[r.ns + \"scrollable\"]) return !1;\n if (e && e.className && \"string\" == typeof e.className && e.className.indexOf(\"k-auto-scrollable\") > -1) return !0;\n var t = Q(e, [\"overflow\"]).overflow;\n return t.indexOf(\"auto\") > -1 || t.indexOf(\"scroll\") > -1;\n },\n scrollLeft: function e(n, a) {\n var r,\n o,\n s = p.browser.webkit,\n l = p.browser.mozilla,\n d = p.browser.version;\n if (n instanceof t && a !== i) n.each(function (t, n) {\n e(n, a);\n });else if (r = n instanceof t ? n[0] : n) {\n if (o = p.isRtl(n), a === i) return o && s && (d < 85 || p.browser.safari) ? r.scrollWidth - r.clientWidth - r.scrollLeft : Math.abs(r.scrollLeft);\n o && s && (d < 85 || p.browser.safari) ? r.scrollLeft = r.scrollWidth - r.clientWidth - a : r.scrollLeft = o && (l || s) && a > 0 ? -a : a;\n }\n },\n size: function (e) {\n var t,\n n = 0;\n for (t in e) e.hasOwnProperty(t) && \"toJSON\" != t && n++;\n return n;\n },\n toCamelCase: Y,\n toHyphens: function (e) {\n return e.replace(/([a-z][A-Z])/g, function (e) {\n return e.charAt(0) + \"-\" + e.charAt(1).toLowerCase();\n });\n },\n getOffset: r.getOffset || function (e, t, i) {\n t || (t = \"offset\");\n var a = e[t](),\n r = {\n top: a.top,\n right: a.right,\n bottom: a.bottom,\n left: a.left\n };\n if (p.browser.msie && (p.pointers || p.msPointers) && !i) {\n var o = p.isRtl(e) ? 1 : -1;\n r.top -= n.pageYOffset - document.documentElement.scrollTop, r.left -= n.pageXOffset + o * document.documentElement.scrollLeft;\n }\n return r;\n },\n parseEffects: r.parseEffects || function (e) {\n var t = {};\n return s(\"string\" == typeof e ? e.split(\" \") : e, function (e) {\n t[e] = this;\n }), t;\n },\n toggleClass: r.toggleClass || function (e, t, n, i) {\n return t && (t = t.split(\" \"), s(t, function (t, n) {\n e.toggleClass(n, i);\n })), e;\n },\n directions: r.directions || {\n left: {\n reverse: \"right\"\n },\n right: {\n reverse: \"left\"\n },\n down: {\n reverse: \"up\"\n },\n up: {\n reverse: \"down\"\n },\n top: {\n reverse: \"bottom\"\n },\n bottom: {\n reverse: \"top\"\n },\n in: {\n reverse: \"out\"\n },\n out: {\n reverse: \"in\"\n }\n },\n Observable: N,\n Class: F,\n Template: a,\n template: a.compile.bind(a),\n render: a.render.bind(a),\n stringify: c.stringify.bind(c),\n eventTarget: re,\n htmlEncode: function (e) {\n return (\"\" + e).replace(ee, \"&\").replace(te, \"<\").replace(ae, \">\").replace(ne, \""\").replace(ie, \"'\");\n },\n unescape: function (e) {\n var t;\n try {\n t = n.decodeURIComponent(e);\n } catch (n) {\n t = e.replace(/%u([\\dA-F]{4})|%([\\dA-F]{2})/gi, function (e, t, n) {\n return String.fromCharCode(parseInt(\"0x\" + (t || n), 16));\n });\n }\n return t;\n },\n isLocalUrl: function (e) {\n return e && !oe.test(e);\n },\n expr: function (e, t, n) {\n return typeof t == _ && (n = t, t = !1), n = n || \"d\", (e = e || \"\") && \"[\" !== e.charAt(0) && (e = \".\" + e), t ? (e = function (e, t) {\n var n,\n i,\n a,\n r,\n o = t || \"d\",\n s = 1;\n for (i = 0, a = e.length; i < a; i++) \"\" !== (r = e[i]) && (0 !== (n = r.indexOf(\"[\")) && (-1 == n ? r = \".\" + r : (s++, r = \".\" + r.substring(0, n) + \" || {})\" + r.substring(n))), s++, o += r + (i < a - 1 ? \" || {})\" : \")\"));\n return new Array(s).join(\"(\") + o;\n }((e = (e = e.replace(/\"([^.]*)\\.([^\"]*)\"/g, '\"$1_$DOT$_$2\"')).replace(/'([^.]*)\\.([^']*)'/g, \"'$1_$DOT$_$2'\")).split(\".\"), n), e = e.replace(/_\\$DOT\\$_/g, \".\")) : e = n + e, e;\n },\n getter: function (e, t) {\n var n = e + t;\n return S[n] = S[n] || new Function(\"d\", \"return \" + r.expr(e, t));\n },\n setter: function (e) {\n return I[e] = I[e] || new Function(\"d,value\", r.expr(e) + \"=value\");\n },\n accessor: function (e) {\n return {\n get: r.getter(e),\n set: r.setter(e)\n };\n },\n guid: function () {\n var e,\n t,\n n = \"\",\n i = \"abcdef\";\n for (n += i[Math.floor(Math.random() * Math.floor(i.length))], e = 1; e < 32; e++) t = 16 * u.random() | 0, 8 != e && 12 != e && 16 != e && 20 != e || (n += \"-\"), n += (12 == e ? 4 : 16 == e ? 3 & t | 8 : t).toString(16);\n return n;\n },\n roleSelector: function (e) {\n return e.replace(/(\\S+)/g, \"[\" + r.attr(\"role\") + \"=$1],\").slice(0, -1);\n },\n directiveSelector: function (e) {\n var t = e.split(\" \");\n if (t) for (var n = 0; n < t.length; n++) \"view\" != t[n] && (t[n] = t[n].replace(/(\\w*)(view|bar|strip|over)$/, \"$1-$2\"));\n return t.join(\" \").replace(/(\\S+)/g, \"kendo-mobile-$1,\").slice(0, -1);\n },\n triggeredByInput: function (e) {\n return /^(label|input|textarea|select)$/i.test(e.target.tagName);\n },\n onWidgetRegistered: function (e) {\n for (var t = 0, n = r.widgets.length; t < n; t++) e(r.widgets[t]);\n r._widgetRegisteredCallbacks.push(e);\n },\n logToConsole: function (e, t) {\n var i = n.console;\n !r.suppressLog && void 0 !== i && i.log && i[t || \"log\"](e);\n }\n });\n var se = N.extend({\n init: function (t, n) {\n var i = this;\n KendoLicensing.validatePackage(e), i.element = r.jQuery(t).handler(i), i.angular(\"init\", n), N.fn.init.call(i);\n var a,\n s = n ? n.dataSource : null;\n n && (a = (i.componentTypes || {})[(n || {}).componentType]), s && (n = o({}, n, {\n dataSource: {}\n })), n = i.options = o(!0, {}, i.options, i.defaults, a || {}, n), s && (n.dataSource = s), i.element.attr(r.attr(\"role\")) || i.element.attr(r.attr(\"role\"), (n.name || \"\").toLowerCase()), i.element.data(\"kendo\" + n.prefix + n.name, i), i.bind(i.events, n);\n },\n events: [],\n options: {\n prefix: \"\"\n },\n _hasBindingTarget: function () {\n return !!this.element[0].kendoBindingTarget;\n },\n _tabindex: function (e) {\n e = e || this.wrapper;\n var t = this.element,\n n = \"tabindex\",\n i = e.attr(n) || t.attr(n);\n t.removeAttr(n), e.attr(n, isNaN(i) ? 0 : i);\n },\n setOptions: function (e) {\n this._clearCssClasses(e), this._setEvents(e), t.extend(this.options, e), this._applyCssClasses();\n },\n _setEvents: function (e) {\n for (var t, n = this, i = 0, a = n.events.length; i < a; i++) t = n.events[i], n.options[t] && e[t] && (n.unbind(t, n.options[t]), n._events && n._events[t] && delete n._events[t]);\n n.bind(n.events, e);\n },\n resize: function (e) {\n var t = this.getSize(),\n n = this._size;\n (e || (t.width > 0 || t.height > 0) && (!n || t.width !== n.width || t.height !== n.height)) && (this._size = t, this._resize(t, e), this.trigger(\"resize\", t));\n },\n getSize: function () {\n return r.dimensions(this.element);\n },\n size: function (e) {\n if (!e) return this.getSize();\n this.setSize(e);\n },\n setSize: t.noop,\n _resize: t.noop,\n destroy: function () {\n var e = this;\n e.element.removeData(\"kendo\" + e.options.prefix + e.options.name), e.element.removeData(\"handler\"), e.unbind();\n },\n _destroy: function () {\n this.destroy();\n },\n angular: function () {},\n _muteAngularRebind: function (e) {\n this._muteRebind = !0, e.call(this), this._muteRebind = !1;\n },\n _applyCssClasses: function (e) {\n var t,\n n,\n i,\n a,\n o = this.__proto__.options,\n s = this.options,\n l = e || this.wrapper || this.element,\n d = [];\n if (r.cssProperties.propertyDictionary[o.name]) {\n for (t = 0; t < E.length; t++) n = E[t], a = this.options._altname || o.name, o.hasOwnProperty(n) && (\"themeColor\" === n ? (i = r.cssProperties.getValidClass({\n widget: a,\n propName: \"fillMode\",\n value: s.fillMode\n })) && i.length && d.push(r.cssProperties.getValidClass({\n widget: a,\n propName: n,\n value: s[n],\n fill: s.fillMode\n })) : d.push(r.cssProperties.getValidClass({\n widget: a,\n propName: n,\n value: s[n]\n })));\n l.addClass(d.join(\" \"));\n }\n },\n _ariaLabel: function (e) {\n var n,\n i = this.element,\n a = i.attr(\"id\"),\n o = t('label[for=\"' + a + '\"]'),\n s = i.attr(T),\n l = i.attr(C);\n e[0] !== i[0] && (s ? e.attr(T, s) : l ? e.attr(C, l) : o.length && (n = o.attr(\"id\") || this._generateLabelId(o, a || r.guid()), e.attr(C, n)));\n },\n _clearCssClasses: function (e, t) {\n var n,\n i,\n a,\n o = this.__proto__.options,\n s = this.options,\n l = t || this.wrapper || this.element;\n if (r.cssProperties.propertyDictionary[o.name]) for (n = 0; n < E.length; n++) i = E[n], a = this.options._altname || o.name, o.hasOwnProperty(i) && e.hasOwnProperty(i) && (\"themeColor\" === i ? l.removeClass(r.cssProperties.getValidClass({\n widget: a,\n propName: i,\n value: s[i],\n fill: s.fillMode\n })) : (\"fillMode\" === i && l.removeClass(r.cssProperties.getValidClass({\n widget: a,\n propName: \"themeColor\",\n value: s.themeColor,\n fill: s.fillMode\n })), l.removeClass(r.cssProperties.getValidClass({\n widget: a,\n propName: i,\n value: s[i]\n }))));\n },\n _generateLabelId: function (e, t) {\n var n = t + \"_label\";\n return e.attr(\"id\", n), n;\n }\n }),\n le = se.extend({\n dataItems: function () {\n return this.dataSource.flatView();\n },\n _angularItems: function (e) {\n var n = this;\n n.angular(e, function () {\n return {\n elements: n.items(),\n data: t.map(n.dataItems(), function (e) {\n return {\n dataItem: e\n };\n })\n };\n });\n }\n });\n r.dimensions = function (e, t) {\n var n = e[0];\n return t && e.css(t), {\n width: n.offsetWidth,\n height: n.offsetHeight\n };\n }, r.notify = d;\n var de = /template$/i,\n ue = /^\\s*(?:\\{(?:.|\\r\\n|\\n)*\\}|\\[(?:.|\\r\\n|\\n)*\\])\\s*$/,\n ce = /^\\{(\\d+)(:[^\\}]+)?\\}|^\\[[A-Za-z_]+\\]$/,\n pe = /([A-Z])/g;\n function he(e, t) {\n var n;\n return 0 === t.indexOf(\"data\") && (t = (t = t.substring(4)).charAt(0).toLowerCase() + t.substring(1)), t = t.replace(pe, \"-$1\"), null === (n = e.getAttribute(\"data-\" + r.ns + t)) ? n = i : \"null\" === n ? n = null : \"true\" === n ? n = !0 : \"false\" === n ? n = !1 : g.test(n) && \"mask\" != t && \"format\" != t ? n = parseFloat(n) : ue.test(n) && !ce.test(n) && (n = new Function(\"return (\" + n + \")\")()), n;\n }\n function fe(e, n, a) {\n var o,\n s,\n l = {},\n d = e.getAttribute(\"data-\" + r.ns + \"role\");\n for (o in n) (s = he(e, o)) !== i && (de.test(o) && \"drawer\" != d && (\"string\" == typeof s ? t(\"#\" + s).length ? s = r.template(t(\"#\" + s).html()) : a && (s = r.template(a[s])) : s = e.getAttribute(o)), l[o] = s);\n return l;\n }\n function me(e, n) {\n return t.contains(e, n) ? -1 : 1;\n }\n function ge() {\n var e = t(this);\n return t.inArray(e.attr(\"data-\" + r.ns + \"role\"), [\"slider\", \"rangeslider\", \"breadcrumb\"]) > -1 || e.is(\":visible\");\n }\n r.initWidget = function (e, a, o) {\n var s, l, d, u, c, p, h, f, m, g;\n if (o ? o.roles && (o = o.roles) : o = r.ui.roles, p = (e = e.nodeType ? e : e[0]).getAttribute(\"data-\" + r.ns + \"role\")) {\n d = (m = -1 === p.indexOf(\".\")) ? o[p] : r.getter(p)(n);\n var v = t(e).data(),\n b = d ? \"kendo\" + d.fn.options.prefix + d.fn.options.name : \"\";\n for (var k in g = m ? new RegExp(\"^kendo.*\" + p + \"$\", \"i\") : new RegExp(\"^\" + b + \"$\", \"i\"), v) if (k.match(g)) {\n if (k !== b) return v[k];\n s = v[k];\n }\n if (d) {\n for (f = he(e, \"dataSource\"), a = t.extend({}, fe(e, t.extend({}, d.fn.options, d.fn.defaults)), a), f && (a.dataSource = typeof f === _ ? r.getter(f)(n) : f), u = 0, c = d.fn.events.length; u < c; u++) (h = he(e, l = d.fn.events[u])) !== i && (a[l] = r.getter(h)(n));\n return s ? t.isEmptyObject(a) || s.setOptions(a) : s = new d(e, a), s;\n }\n }\n }, r.rolesFromNamespaces = function (e) {\n var t,\n n,\n i = [];\n for (e[0] || (e = [r.ui, r.dataviz.ui]), t = 0, n = e.length; t < n; t++) i[t] = e[t].roles;\n return o.apply(null, [{}].concat(i.reverse()));\n }, r.init = function (e) {\n var n = r.rolesFromNamespaces(D.call(arguments, 1));\n t(e).find(\"[data-\" + r.ns + \"role]\").addBack().each(function () {\n r.initWidget(this, {}, n);\n });\n }, r.destroy = function (e) {\n t(e).find(\"[data-\" + r.ns + \"role]\").addBack().each(function () {\n var e = t(this).data();\n for (var n in e) 0 === n.indexOf(\"kendo\") && typeof e[n].destroy === v && e[n].destroy();\n });\n }, r.resize = function (e, n) {\n var i = t(e).find(\"[data-\" + r.ns + \"role]\").addBack().filter(ge);\n if (i.length) {\n var a = t.makeArray(i);\n a.sort(me), t.each(a, function () {\n var e = r.widgetInstance(t(this));\n e && e.resize(n);\n });\n }\n }, r.parseOptions = fe, o(r.ui, {\n Widget: se,\n DataBoundWidget: le,\n roles: {},\n progress: function (e, n, i) {\n var a,\n o,\n s,\n l,\n d,\n u = e.find(\".k-loading-mask\"),\n c = r.support,\n p = c.browser;\n d = (i = t.extend({}, {\n width: \"100%\",\n height: \"100%\",\n top: e.scrollTop(),\n opacity: !1\n }, i)).opacity ? \"k-loading-mask k-opaque\" : \"k-loading-mask\", n ? u.length || (o = (a = c.isRtl(e)) ? \"right\" : \"left\", l = r.scrollLeft(e), s = p.webkit && a ? e[0].scrollWidth - e.width() - 2 * l : 0, u = t(r.format(\"
{1}
\", d, r.ui.progress.messages.loading)).width(i.width).height(i.height).css(\"top\", i.top).css(o, Math.abs(l) + s).prependTo(e)) : u && u.remove();\n },\n plugin: function (e, n, a) {\n var o,\n s = e.fn.options.name;\n a = a || \"\", (n = n || r.ui)[s] = e, n.roles[s.toLowerCase()] = e, o = \"getKendo\" + a + s;\n var l = {\n name: s = \"kendo\" + a + s,\n widget: e,\n prefix: a || \"\"\n };\n r.widgets.push(l);\n for (var d = 0, u = r._widgetRegisteredCallbacks.length; d < u; d++) r._widgetRegisteredCallbacks[d](l);\n t.fn[s] = function (n) {\n var a,\n o = this;\n return typeof n === _ ? (a = D.call(arguments, 1), this.each(function () {\n var e,\n l,\n d = t.data(this, s);\n if (!d) throw new Error(r.format(\"Cannot call method '{0}' of {1} before it is initialized\", n, s));\n if (typeof (e = d[n]) !== v) throw new Error(r.format(\"Cannot find method '{0}' of {1}\", n, s));\n if ((l = e.apply(d, a)) !== i) return o = l, !1;\n })) : this.each(function () {\n return new e(this, n);\n }), o;\n }, t.fn[s].widget = e, t.fn[o] = function () {\n return this.data(s);\n };\n }\n }), r.ui.progress.messages = {\n loading: \"Loading...\"\n };\n var ve = {\n bind: function () {\n return this;\n },\n nullObject: !0,\n options: {}\n },\n _e = se.extend({\n init: function (e, t) {\n se.fn.init.call(this, e, t), this.element.autoApplyNS(), this.wrapper = this.element, this.element.addClass(\"km-widget\");\n },\n destroy: function () {\n se.fn.destroy.call(this), this.element.kendoDestroy();\n },\n options: {\n prefix: \"Mobile\"\n },\n events: [],\n view: function () {\n var e = this.element.closest(r.roleSelector(\"view splitview modalview drawer\"));\n return r.widgetInstance(e, r.mobile.ui) || ve;\n },\n viewHasNativeScrolling: function () {\n var e = this.view();\n return e && e.options.useNativeScrolling;\n },\n container: function () {\n var e = this.element.closest(r.roleSelector(\"view layout modalview drawer splitview\"));\n return r.widgetInstance(e.eq(0), r.mobile.ui) || ve;\n }\n });\n function be(e, n) {\n var i = e.nodeName.toLowerCase();\n return (/input|select|textarea|button|object/.test(i) ? !e.disabled : \"a\" === i && e.href || n) && function (e) {\n return t.expr.pseudos.visible(e) && !t(e).parents().addBack().filter(function () {\n return \"hidden\" === t.css(this, \"visibility\");\n }).length;\n }(e);\n }\n o(r.mobile, {\n init: function (e) {\n r.init(e, r.mobile.ui, r.ui, r.dataviz.ui);\n },\n appLevelNativeScrolling: function () {\n return r.mobile.application && r.mobile.application.options && r.mobile.application.options.useNativeScrolling;\n },\n roles: {},\n ui: {\n Widget: _e,\n DataBoundWidget: le.extend(_e.prototype),\n roles: {},\n plugin: function (e) {\n r.ui.plugin(e, r.mobile.ui, \"Mobile\");\n }\n }\n }), G(r.dataviz, {\n init: function (e) {\n r.init(e, r.dataviz.ui);\n },\n ui: {\n roles: {},\n themes: {},\n views: [],\n plugin: function (e) {\n r.ui.plugin(e, r.dataviz.ui);\n }\n },\n roles: {}\n }), r.touchScroller = function (e, n) {\n return n || (n = {}), n.useNative = !0, t(e).map(function (e, i) {\n return i = t(i), !(!p.kineticScrollNeeded || !r.mobile.ui.Scroller || i.data(\"kendoMobileScroller\")) && (i.kendoMobileScroller(n), i.data(\"kendoMobileScroller\"));\n })[0];\n }, r.preventDefault = function (e) {\n e.preventDefault();\n }, r.widgetInstance = function (e, t) {\n var i,\n a,\n o = e.data(r.ns + \"role\"),\n s = [],\n l = e.data(\"kendoView\");\n if (o) {\n if (\"content\" === o && (o = \"scroller\"), \"editortoolbar\" === o) {\n var d = e.data(\"kendoEditorToolbar\");\n if (d) return d;\n }\n if (\"view\" === o && l) return l;\n if (t) {\n if (t[0]) for (i = 0, a = t.length; i < a; i++) s.push(t[i].roles[o]);else s.push(t.roles[o]);\n } else s = [r.ui.roles[o], r.dataviz.ui.roles[o], r.mobile.ui.roles[o]];\n for (o.indexOf(\".\") >= 0 && (s = [r.getter(o)(n)]), i = 0, a = s.length; i < a; i++) {\n var u = s[i];\n if (u) {\n var c = e.data(\"kendo\" + u.fn.options.prefix + u.fn.options.name);\n if (c) return c;\n }\n }\n }\n }, r.onResize = function (e) {\n var i = e;\n return p.mobileOS.android && (i = function () {\n setTimeout(e, 600);\n }), t(n).on(p.resize, i), i;\n }, r.unbindResize = function (e) {\n t(n).off(p.resize, e);\n }, r.attrValue = function (e, t) {\n return e.data(r.ns + t);\n }, r.days = {\n Sunday: 0,\n Monday: 1,\n Tuesday: 2,\n Wednesday: 3,\n Thursday: 4,\n Friday: 5,\n Saturday: 6\n }, t.extend(t.expr.pseudos, {\n kendoFocusable: function (e) {\n var n = t.attr(e, \"tabindex\");\n return be(e, !isNaN(n) && n > -1);\n }\n });\n var ke = [\"mousedown\", \"mousemove\", \"mouseenter\", \"mouseleave\", \"mouseover\", \"mouseout\", \"mouseup\", \"click\"],\n we = {\n setupMouseMute: function () {\n var e = 0,\n n = ke.length,\n i = document.documentElement;\n if (!we.mouseTrap && p.eventCapture) {\n we.mouseTrap = !0, we.bustClick = !1, we.captureMouse = !1;\n for (var a = function (e) {\n we.captureMouse && (\"click\" === e.type ? we.bustClick && !t(e.target).is(\"label, input, [data-rel=external]\") && (e.preventDefault(), e.stopPropagation()) : e.stopPropagation());\n }; e < n; e++) i.addEventListener(ke[e], a, !0);\n }\n },\n muteMouse: function (e) {\n we.captureMouse = !0, e.data.bustClick && (we.bustClick = !0), clearTimeout(we.mouseTrapTimeoutID);\n },\n unMuteMouse: function () {\n clearTimeout(we.mouseTrapTimeoutID), we.mouseTrapTimeoutID = setTimeout(function () {\n we.captureMouse = !1, we.bustClick = !1;\n }, 400);\n }\n },\n ye = {\n down: \"touchstart mousedown\",\n move: \"mousemove touchmove\",\n up: \"mouseup touchend touchcancel\",\n cancel: \"mouseleave touchcancel\"\n };\n p.touch && (p.mobileOS.ios || p.mobileOS.android) ? ye = {\n down: \"touchstart\",\n move: \"touchmove\",\n up: \"touchend touchcancel\",\n cancel: \"touchcancel\"\n } : p.pointers ? ye = {\n down: \"pointerdown\",\n move: \"pointermove\",\n up: \"pointerup\",\n cancel: \"pointercancel pointerleave\"\n } : p.msPointers && (ye = {\n down: \"MSPointerDown\",\n move: \"MSPointerMove\",\n up: \"MSPointerUp\",\n cancel: \"MSPointerCancel MSPointerLeave\"\n }), p.msPointers && !(\"onmspointerenter\" in n) && t.each({\n MSPointerEnter: \"MSPointerOver\",\n MSPointerLeave: \"MSPointerOut\"\n }, function (e, n) {\n t.event.special[e] = {\n delegateType: n,\n bindType: n,\n handle: function (e) {\n var i,\n a = this,\n r = e.relatedTarget,\n o = e.handleObj;\n return r && (r === a || t.contains(a, r)) || (e.type = o.origType, i = o.handler.apply(this, arguments), e.type = n), i;\n }\n };\n });\n var xe = function (e) {\n return ye[e] || e;\n },\n Ce = /([^ ]+)/g;\n r.applyEventMap = function (e, t) {\n return e = e.replace(Ce, xe), t && (e = e.replace(Ce, \"$1.\" + t)), e;\n }, r.keyDownHandler = function (e, t) {\n var n = t._events.kendoKeydown;\n if (!n) return !0;\n n = n.slice(), e.sender = t, e.preventKendoKeydown = !1;\n for (var i = 0, a = n.length; i < a; i++) n[i].call(t, e);\n return !e.preventKendoKeydown;\n };\n var Te = t.fn.on;\n function Se(e, t) {\n return new Se.fn.init(e, t);\n }\n A(!0, Se, t), Se.fn = Se.prototype = new t(), Se.fn.constructor = Se, Se.fn.init = function (e, n) {\n return n && n instanceof t && !(n instanceof Se) && (n = Se(n)), t.fn.init.call(this, e, n, Ie);\n }, Se.fn.init.prototype = Se.fn;\n var Ie = Se(document);\n o(Se.fn, {\n handler: function (e) {\n return this.data(\"handler\", e), this;\n },\n autoApplyNS: function (e) {\n return this.data(\"kendoNS\", e || r.guid()), this;\n },\n on: function () {\n var e = this,\n t = e.data(\"kendoNS\");\n if (1 === arguments.length) return Te.call(e, arguments[0]);\n var n = e,\n i = D.call(arguments);\n typeof i[i.length - 1] === x && i.pop();\n var a = i[i.length - 1],\n o = r.applyEventMap(i[0], t);\n if (p.mouseAndTouchPresent && o.search(/mouse|click/) > -1 && this[0] !== document.documentElement) {\n we.setupMouseMute();\n var s = 2 === i.length ? null : i[1],\n l = o.indexOf(\"click\") > -1 && o.indexOf(\"touchend\") > -1;\n Te.call(this, {\n touchstart: we.muteMouse,\n touchend: we.unMuteMouse\n }, s, {\n bustClick: l\n });\n }\n if (-1 !== arguments[0].indexOf(\"keydown\") && i[1] && i[1].options) {\n i[0] = o;\n var d = i[1],\n u = i[i.length - 1];\n return i[i.length - 1] = function (e) {\n if (r.keyDownHandler(e, d)) return u.apply(this, [e]);\n }, Te.apply(e, i), e;\n }\n return typeof a === _ && (n = e.data(\"handler\"), a = n[a], i[i.length - 1] = function (e) {\n a.call(n, e);\n }), i[0] = o, Te.apply(e, i), e;\n },\n kendoDestroy: function (e) {\n return (e = e || this.data(\"kendoNS\")) && this.off(\".\" + e), this;\n }\n }), r.jQuery = Se, r.eventMap = ye, r.timezone = function () {\n var e = {\n Jan: 0,\n Feb: 1,\n Mar: 2,\n Apr: 3,\n May: 4,\n Jun: 5,\n Jul: 6,\n Aug: 7,\n Sep: 8,\n Oct: 9,\n Nov: 10,\n Dec: 11\n },\n t = {\n Sun: 0,\n Mon: 1,\n Tue: 2,\n Wed: 3,\n Thu: 4,\n Fri: 5,\n Sat: 6\n };\n function n(n, i) {\n var a,\n r,\n o,\n s = i[3],\n l = i[4],\n d = i[5],\n u = i[8];\n return u || (i[8] = u = {}), u[n] ? u[n] : (isNaN(l) ? 0 === l.indexOf(\"last\") ? (a = new Date(Date.UTC(n, e[s] + 1, 1, d[0] - 24, d[1], d[2], 0)), r = t[l.substr(4, 3)], o = a.getUTCDay(), a.setUTCDate(a.getUTCDate() + r - o - (r > o ? 7 : 0))) : l.indexOf(\">=\") >= 0 ? (a = new Date(Date.UTC(n, e[s], l.substr(5), d[0], d[1], d[2], 0)), r = t[l.substr(0, 3)], o = a.getUTCDay(), a.setUTCDate(a.getUTCDate() + r - o + (r < o ? 7 : 0))) : l.indexOf(\"<=\") >= 0 && (a = new Date(Date.UTC(n, e[s], l.substr(5), d[0], d[1], d[2], 0)), r = t[l.substr(0, 3)], o = a.getUTCDay(), a.setUTCDate(a.getUTCDate() + r - o - (r > o ? 7 : 0))) : a = new Date(Date.UTC(n, e[s], l, d[0], d[1], d[2], 0)), u[n] = a);\n }\n function i(e, t, i) {\n if (!(t = t[i])) {\n var a = i.split(\":\"),\n r = 0;\n return a.length > 1 && (r = 60 * a[0] + Number(a[1])), [-1e6, \"max\", \"-\", \"Jan\", 1, [0, 0, 0], r, \"-\"];\n }\n var o = new Date(e).getUTCFullYear();\n t = jQuery.grep(t, function (e) {\n var t = e[0],\n n = e[1];\n return t <= o && (n >= o || t == o && \"only\" == n || \"max\" == n);\n }), t.push(e), t.sort(function (e, t) {\n return \"number\" != typeof e && (e = Number(n(o, e))), \"number\" != typeof t && (t = Number(n(o, t))), e - t;\n });\n var s = t[jQuery.inArray(e, t) - 1] || t[t.length - 1];\n return isNaN(s) ? s : null;\n }\n function a(e, t, n, a) {\n typeof e != b && (e = Date.UTC(e.getFullYear(), e.getMonth(), e.getDate(), e.getHours(), e.getMinutes(), e.getSeconds(), e.getMilliseconds()));\n var r = function (e, t, n) {\n var i = t[n];\n if (\"string\" == typeof i && (i = t[i]), !i) throw new Error('Timezone \"' + n + '\" is either incorrect, or kendo.timezones.min.js is not included.');\n for (var a = i.length - 1; a >= 0; a--) {\n var r = i[a][3];\n if (r && e > r) break;\n }\n var o = i[a + 1];\n if (!o) throw new Error('Timezone \"' + n + '\" not found on ' + e + \".\");\n return o;\n }(e, t, a);\n return {\n zone: r,\n rule: i(e, n, r[1])\n };\n }\n return {\n zones: {},\n rules: {},\n offset: function (e, t) {\n if (\"Etc/UTC\" == t || \"Etc/GMT\" == t) return 0;\n var n = a(e, this.zones, this.rules, t),\n i = n.zone,\n o = n.rule;\n return r.parseFloat(o ? i[0] - o[6] : i[0]);\n },\n convert: function (e, t, n) {\n var i,\n a = n;\n typeof t == _ && (t = this.offset(e, t)), typeof n == _ && (n = this.offset(e, n));\n var r = e.getTimezoneOffset(),\n o = (e = new Date(e.getTime() + 6e4 * (t - n))).getTimezoneOffset();\n return typeof a == _ && (a = this.offset(e, a)), i = o - r + (n - a), new Date(e.getTime() + 6e4 * i);\n },\n apply: function (e, t) {\n return this.convert(e, e.getTimezoneOffset(), t);\n },\n remove: function (e, t) {\n return this.convert(e, t, e.getTimezoneOffset());\n },\n abbr: function (e, t) {\n var n = a(e, this.zones, this.rules, t),\n i = n.zone,\n r = n.rule,\n o = i[2];\n return o.indexOf(\"/\") >= 0 ? o.split(\"/\")[r && +r[6] ? 1 : 0] : o.indexOf(\"%s\") >= 0 ? o.replace(\"%s\", r && \"-\" != r[7] ? r[7] : \"\") : o;\n },\n toLocalDate: function (e) {\n return this.apply(new Date(e), \"Etc/UTC\");\n }\n };\n }(), r.date = function () {\n var e = 6e4,\n t = 864e5;\n function n(e, t) {\n return 0 === t && 23 === e.getHours() && (e.setHours(e.getHours() + 2), !0);\n }\n function a(e, t, i) {\n var a = e.getHours();\n i = i || 1, t = (t - e.getDay() + 7 * i) % 7, e.setDate(e.getDate() + t), n(e, a);\n }\n function o(e, t, n) {\n return a(e = new Date(e), t, n), e;\n }\n function s(e) {\n return new Date(e.getFullYear(), e.getMonth(), 1);\n }\n function l(e, n) {\n var i = new Date(e.getFullYear(), 0, 1, -6),\n a = function (e, t) {\n return 1 !== t ? c(o(e, t, -1), 4) : c(e, 4 - (e.getDay() || 7));\n }(e, n),\n r = a.getTime() - i.getTime(),\n s = Math.floor(r / t);\n return 1 + Math.floor(s / 7);\n }\n function d(e) {\n return n(e = new Date(e.getFullYear(), e.getMonth(), e.getDate(), 0, 0, 0), 0), e;\n }\n function u(e) {\n return f(e).getTime() - d(f(e));\n }\n function c(e, i) {\n var a = e.getHours();\n return p(e = new Date(e), i * t), n(e, a), e;\n }\n function p(t, n, i) {\n var a,\n r = t.getTimezoneOffset();\n t.setTime(t.getTime() + n), i || (a = t.getTimezoneOffset() - r, t.setTime(t.getTime() + a * e));\n }\n function h() {\n return d(new Date());\n }\n function f(e) {\n var t = new Date(1980, 1, 1, 0, 0, 0);\n return e && t.setHours(e.getHours(), e.getMinutes(), e.getSeconds(), e.getMilliseconds()), t;\n }\n function m(e, t) {\n var n = new Date(e);\n return new Date(n.setFullYear(n.getFullYear() + t));\n }\n return {\n adjustDST: n,\n dayOfWeek: o,\n setDayOfWeek: a,\n getDate: d,\n isInDateRange: function (e, n, i) {\n var a,\n r = n.getTime(),\n o = i.getTime();\n return r >= o && (o += t), (a = e.getTime()) >= r && a <= o;\n },\n isInTimeRange: function (e, n, i) {\n var a,\n r = u(n),\n o = u(i);\n return !e || r == o || (n >= i && (i += t), r > (a = u(e)) && (a += t), o < r && (o += t), a >= r && a <= o);\n },\n isToday: function (e) {\n return d(e).getTime() == h().getTime();\n },\n nextDay: function (e) {\n return c(e, 1);\n },\n previousDay: function (e) {\n return c(e, -1);\n },\n toUtcTime: function (e) {\n return Date.UTC(e.getFullYear(), e.getMonth(), e.getDate(), e.getHours(), e.getMinutes(), e.getSeconds(), e.getMilliseconds());\n },\n MS_PER_DAY: t,\n MS_PER_HOUR: 36e5,\n MS_PER_MINUTE: e,\n setTime: p,\n setHours: function (e, t) {\n return n(e = new Date(e.getFullYear(), e.getMonth(), e.getDate(), t.getHours(), t.getMinutes(), t.getSeconds(), t.getMilliseconds()), t.getHours()), e;\n },\n addDays: c,\n today: h,\n toInvariantTime: f,\n firstDayOfMonth: s,\n lastDayOfMonth: function (e) {\n var t = new Date(e.getFullYear(), e.getMonth() + 1, 0),\n n = s(e),\n i = Math.abs(t.getTimezoneOffset() - n.getTimezoneOffset());\n return i && t.setHours(n.getHours() + i / 60), t;\n },\n weekInYear: function (e, t) {\n t === i && (t = r.culture().calendar.firstDay);\n var n = c(e, -7),\n a = c(e, 7),\n o = l(e, t);\n return 0 === o ? l(n, t) + 1 : 53 === o && l(a, t) > 1 ? 1 : o;\n },\n getMilliseconds: u,\n firstDayOfYear: function (e) {\n return new Date(e.getFullYear(), 0, 1);\n },\n lastDayOfYear: function (e) {\n return new Date(e.getFullYear(), 11, 31);\n },\n nextYear: function (e) {\n return m(e, 1);\n },\n previousYear: function (e) {\n return m(e, -1);\n }\n };\n }(), r.stripWhitespace = function (e) {\n if (document.createNodeIterator) for (var t = document.createNodeIterator(e, NodeFilter.SHOW_TEXT, function (t) {\n return t.parentNode == e ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n }, !1); t.nextNode();) t.referenceNode && !t.referenceNode.textContent.trim() && t.referenceNode.parentNode.removeChild(t.referenceNode);else for (var n = 0; n < e.childNodes.length; n++) {\n var i = e.childNodes[n];\n 3 != i.nodeType || /\\S/.test(i.nodeValue) || (e.removeChild(i), n--), 1 == i.nodeType && r.stripWhitespace(i);\n }\n };\n var De = n.requestAnimationFrame || n.webkitRequestAnimationFrame || n.mozRequestAnimationFrame || n.oRequestAnimationFrame || n.msRequestAnimationFrame || function (e) {\n setTimeout(e, 1e3 / 60);\n };\n r.animationFrame = function (e) {\n De.call(n, e);\n };\n var Ee = [];\n r.queueAnimation = function (e) {\n Ee[Ee.length] = e, 1 === Ee.length && r.runNextAnimation();\n }, r.runNextAnimation = function () {\n r.animationFrame(function () {\n Ee[0] && (Ee.shift()(), Ee[0] && r.runNextAnimation());\n });\n }, r.parseQueryStringParams = function (e) {\n for (var t = {}, n = (e.split(\"?\")[1] || \"\").split(/&|=/), i = n.length, a = 0; a < i; a += 2) \"\" !== n[a] && (t[decodeURIComponent(n[a])] = decodeURIComponent(n[a + 1]));\n return t;\n }, r.elementUnderCursor = function (e) {\n if (void 0 !== e.x.client) return document.elementFromPoint(e.x.client, e.y.client);\n }, r.wheelDeltaY = function (e) {\n var t,\n n = e.originalEvent,\n a = n.wheelDeltaY;\n return n.wheelDelta ? (a === i || a) && (t = n.wheelDelta) : n.detail && n.axis === n.VERTICAL_AXIS && (t = 10 * -n.detail), t;\n }, r.throttle = function (e, t) {\n var n,\n i = 0;\n if (!t || t <= 0) return e;\n var a = function () {\n var a = this,\n r = +new Date() - i,\n o = arguments;\n function s() {\n e.apply(a, o), i = +new Date();\n }\n if (!i) return s();\n n && clearTimeout(n), r > t ? s() : n = setTimeout(s, t - r);\n };\n return a.cancel = function () {\n clearTimeout(n);\n }, a;\n }, r.caret = function (e, n, a) {\n var r,\n o = n !== i;\n if (a === i && (a = n), e[0] && (e = e[0]), !o || !e.disabled) {\n try {\n if (e.selectionStart !== i) {\n if (o) {\n e.focus();\n var s = p.mobileOS;\n s.wp || s.android ? setTimeout(function () {\n e.setSelectionRange(n, a);\n }, 0) : e.setSelectionRange(n, a);\n } else n = [e.selectionStart, e.selectionEnd];\n } else if (document.selection) if (t(e).is(\":visible\") && e.focus(), r = e.createTextRange(), o) r.collapse(!0), r.moveStart(\"character\", n), r.moveEnd(\"character\", a - n), r.select();else {\n var l,\n d,\n u = r.duplicate();\n r.moveToBookmark(document.selection.createRange().getBookmark()), u.setEndPoint(\"EndToStart\", r), d = (l = u.text.length) + r.text.length, n = [l, d];\n }\n } catch (e) {\n n = [];\n }\n return n;\n }\n }, r.compileMobileDirective = function (e, t) {\n var i = n.angular;\n return e.attr(\"data-\" + r.ns + \"role\", e[0].tagName.toLowerCase().replace(\"kendo-mobile-\", \"\").replace(\"-\", \"\")), i.element(e).injector().invoke([\"$compile\", function (n) {\n n(e)(t), /^\\$(digest|apply)$/.test(t.$$phase) || t.$digest();\n }]), r.widgetInstance(e, r.mobile.ui);\n }, r.antiForgeryTokens = function () {\n var e = {},\n n = t(\"meta[name=csrf-token],meta[name=_csrf]\").attr(\"content\"),\n a = t(\"meta[name=csrf-param],meta[name=_csrf_header]\").attr(\"content\");\n return t(\"input[name^='__RequestVerificationToken']\").each(function () {\n e[this.name] = this.value;\n }), a !== i && n !== i && (e[a] = n), e;\n }, r.cycleForm = function (e) {\n var t = e.find(\"input, .k-widget, .k-dropdownlist, .k-combobox\").first(),\n n = e.find(\"button, .k-button\").last();\n function i(e) {\n var t = r.widgetInstance(e);\n t && t.focus ? t.focus() : e.trigger(\"focus\");\n }\n n.on(\"keydown\", function (e) {\n e.keyCode != r.keys.TAB || e.shiftKey || (e.preventDefault(), i(t));\n }), t.on(\"keydown\", function (e) {\n e.keyCode == r.keys.TAB && e.shiftKey && (e.preventDefault(), i(n));\n });\n }, r.focusElement = function (e) {\n var i = [],\n a = e.parentsUntil(\"body\").filter(function (e, t) {\n return \"visible\" !== r.getComputedStyles(t, [\"overflow\"]).overflow;\n }).add(n);\n a.each(function (e, n) {\n i[e] = t(n).scrollTop();\n });\n try {\n e[0].setActive();\n } catch (t) {\n e[0].focus();\n }\n a.each(function (e, n) {\n t(n).scrollTop(i[e]);\n });\n }, r.focusNextElement = function () {\n if (document.activeElement) {\n var e = t(\":kendoFocusable\"),\n n = e.index(document.activeElement);\n if (n > -1) (e[n + 1] || e[0]).focus();\n }\n }, r.trim = function (e) {\n return e ? e.toString().trim() : \"\";\n }, r.getWidgetFocusableElement = function (e) {\n var n = e.closest(\":kendoFocusable\"),\n i = r.widgetInstance(e);\n return n.length ? n : i ? \"Editor\" === i.options.name ? t(i.body) : i.wrapper.find(\":kendoFocusable\").first() : e;\n }, r.addAttribute = function (e, t, n) {\n var i = e.attr(t) || \"\";\n i.indexOf(n) < 0 && e.attr(t, (i + \" \" + n).trim());\n }, r.removeAttribute = function (e, t, n) {\n var i = e.attr(t) || \"\";\n e.attr(t, i.replace(n, \"\").trim());\n }, r.toggleAttribute = function (e, t, n) {\n (e.attr(t) || \"\").indexOf(n) < 0 ? r.addAttribute(e, t, n) : r.removeAttribute(e, t, n);\n }, r.matchesMedia = function (e) {\n var t = r._bootstrapToMedia(e) || e;\n return p.matchMedia && n.matchMedia(t).matches;\n }, r._bootstrapToMedia = function (e) {\n return {\n xs: \"(max-width: 576px)\",\n sm: \"(min-width: 576px)\",\n md: \"(min-width: 768px)\",\n lg: \"(min-width: 992px)\",\n xl: \"(min-width: 1200px)\"\n }[e];\n }, r.fileGroupMap = {\n audio: [\".aif\", \".iff\", \".m3u\", \".m4a\", \".mid\", \".mp3\", \".mpa\", \".wav\", \".wma\", \".ogg\", \".wav\", \".wma\", \".wpl\"],\n video: [\".3g2\", \".3gp\", \".avi\", \".asf\", \".flv\", \".m4u\", \".rm\", \".h264\", \".m4v\", \".mkv\", \".mov\", \".mp4\", \".mpg\", \".rm\", \".swf\", \".vob\", \".wmv\"],\n image: [\".ai\", \".dds\", \".heic\", \".jpe\", \"jfif\", \".jif\", \".jp2\", \".jps\", \".eps\", \".bmp\", \".gif\", \".jpeg\", \".jpg\", \".png\", \".ps\", \".psd\", \".svg\", \".svgz\", \".tif\", \".tiff\"],\n txt: [\".doc\", \".docx\", \".log\", \".pages\", \".tex\", \".wpd\", \".wps\", \".odt\", \".rtf\", \".text\", \".txt\", \".wks\"],\n presentation: [\".key\", \".odp\", \".pps\", \".ppt\", \".pptx\"],\n data: [\".xlr\", \".xls\", \".xlsx\"],\n programming: [\".tmp\", \".bak\", \".msi\", \".cab\", \".cpl\", \".cur\", \".dll\", \".dmp\", \".drv\", \".icns\", \".ico\", \".link\", \".sys\", \".cfg\", \".ini\", \".asp\", \".aspx\", \".cer\", \".csr\", \".css\", \".dcr\", \".htm\", \".html\", \".js\", \".php\", \".rss\", \".xhtml\"],\n pdf: [\".pdf\"],\n config: [\".apk\", \".app\", \".bat\", \".cgi\", \".com\", \".exe\", \".gadget\", \".jar\", \".wsf\"],\n zip: [\".7z\", \".cbr\", \".gz\", \".sitx\", \".arj\", \".deb\", \".pkg\", \".rar\", \".rpm\", \".tar.gz\", \".z\", \".zip\", \".zipx\"],\n \"disc-image\": [\".dmg\", \".iso\", \".toast\", \".vcd\", \".bin\", \".cue\", \".mdf\"]\n }, r.getFileGroup = function (e, t) {\n var n = r.fileGroupMap,\n a = Object.keys(n),\n o = \"file\";\n if (e === i || !e.length) return o;\n for (var s = 0; s < a.length; s += 1) {\n if (n[a[s]].indexOf(e.toLowerCase()) > -1) return t ? \"file-\" + a[s] : a[s];\n }\n return o;\n }, r.getFileSizeMessage = function (e) {\n if (0 === e) return \"0 Byte\";\n var t = parseInt(Math.floor(Math.log(e) / Math.log(1024)), 10);\n return Math.round(e / Math.pow(1024, t), 2) + \" \" + [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"][t];\n }, r.selectorFromClasses = function (e) {\n return \".\" + e.split(\" \").join(\".\");\n };\n var Ae = [\"base\", \"primary\", \"secondary\", \"tertiary\", \"inherit\", \"info\", \"success\", \"warning\", \"error\", \"dark\", \"light\", \"inverse\"],\n Fe = [\"solid\", \"outline\", \"flat\"],\n ze = [\"rectangle\", \"square\"],\n Pe = [[\"small\", \"sm\"], [\"medium\", \"md\"], [\"large\", \"lg\"]],\n He = [[\"small\", \"sm\"], [\"medium\", \"md\"], [\"large\", \"lg\"]],\n Ne = [\"fixed\", \"static\", \"sticky\", \"absolute\"],\n Re = [\"both\", \"horizontal\", \"vertical\"],\n Oe = [\"auto\", \"hidden\", \"visible\", \"scroll\", \"clip\"];\n r.cssProperties = function () {\n var e = {};\n function t(t, n, i) {\n e[t] || (e[t] = {}), e[t][n] = i || n;\n }\n function n(e, n) {\n for (var i = 0; i < n.length; i++) l(n[i]) ? t(e, n[i][0], n[i][1]) : t(e, n[i]);\n }\n return n(\"themeColor\", Ae), n(\"fillMode\", Fe), n(\"shape\", ze), n(\"size\", Pe), n(\"positionMode\", Ne), n(\"rounded\", He), n(\"resize\", Re), n(\"overflow\", Oe), {\n positionModeValues: Ne,\n roundedValues: He,\n sizeValues: Pe,\n shapeValues: ze,\n fillModeValues: Fe,\n themeColorValues: Ae,\n defaultValues: e,\n propertyDictionary: {},\n registerValues: function (e, t) {\n var n,\n i,\n a,\n o,\n s,\n d,\n u = r.cssProperties.propertyDictionary;\n for (n = 0; n < t.length; n++) for (a = t[n].prop, s = t[n].values, u[e][a] || (u[e][a] = {}), o = u[e][a], i = 0; i < s.length; i++) d = s[i], l(s[i]) ? o[d[0]] = d[1] : o[d] = d;\n },\n getValidClass: function (e) {\n var t,\n n,\n i = e.widget,\n a = e.propName,\n o = e.value,\n s = e.fill,\n l = r.cssProperties,\n d = l.defaultValues[a],\n u = l.propertyDictionary[i];\n return u && (n = (t = u[a]) && t[o] || d[o]) ? (\"themeColor\" === a ? u.prefix + s + \"-\" : \"positionMode\" === a ? \"k-pos-\" : \"rounded\" === a ? \"k-rounded-\" : \"resize\" === a ? \"k-resize-\" : \"overflow\" === a ? \"k-overflow-\" : u.prefix) + n : \"\";\n },\n registerPrefix: function (e, t) {\n var n = r.cssProperties.propertyDictionary;\n n[e] || (n[e] = {}), n[e].prefix = t;\n }\n };\n }(), r.registerCssClass = function (e, t, n) {\n r.propertyToCssClassMap[e] || (r.propertyToCssClassMap[e] = {}), r.propertyToCssClassMap[e][t] = n || t;\n }, r.registerCssClasses = function (e, t) {\n for (var n = 0; n < t.length; n++) l(t[n]) ? r.registerCssClass(e, t[n][0], t[n][1]) : r.registerCssClass(e, t[n]);\n }, r.getValidCssClass = function (e, t, n) {\n var i = r.propertyToCssClassMap[t][n];\n if (i) return e + i;\n }, r.propertyToCssClassMap = {}, r.registerCssClasses(\"themeColor\", Ae), r.registerCssClasses(\"fill\", Fe), r.registerCssClasses(\"shape\", ze), r.registerCssClasses(\"size\", Pe), r.registerCssClasses(\"positionMode\", Ne), r.whenAll = function (e) {\n var n,\n i = 1 == arguments.length && Array.isArray(e) ? e : Array.prototype.slice.call(arguments),\n a = i.length,\n o = a,\n s = t.Deferred(),\n l = 0,\n d = 0,\n u = Array(a),\n c = Array(a),\n p = Array(a);\n function h(e, t, n) {\n return function () {\n n != i && d++, s.notifyWith(t[e] = this, n[e] = Array.prototype.slice.call(arguments)), --o || s[(d ? \"reject\" : \"resolve\") + \"With\"](t, n);\n };\n }\n for (; l < a; l++) (n = i[l]) && r.isFunction(n.promise) ? n.promise().done(h(l, p, i)).fail(h(l, u, c)) : (s.notifyWith(this, n), --o);\n return o || s.resolveWith(p, i), s.promise();\n }, function () {\n function e(e, n, i, a) {\n var o = t(\"
\").attr({\n action: i,\n method: \"POST\",\n target: a\n }),\n s = r.antiForgeryTokens();\n s.fileName = n;\n var l = e.split(\";base64,\");\n for (var d in s.contentType = l[0].replace(\"data:\", \"\"), s.base64 = l[1], s) s.hasOwnProperty(d) && t(\"\").attr({\n value: s[d],\n name: d,\n type: \"hidden\"\n }).appendTo(o);\n o.appendTo(\"body\").submit().remove();\n }\n var i = document.createElement(\"a\"),\n a = \"download\" in i && !r.support.browser.edge;\n function o(e, t) {\n var n = e;\n if (\"string\" == typeof e) {\n for (var i = e.split(\";base64,\"), a = i[0], r = atob(i[1]), o = new Uint8Array(r.length), s = 0; s < r.length; s++) o[s] = r.charCodeAt(s);\n n = new Blob([o.buffer], {\n type: a\n });\n }\n navigator.msSaveBlob(n, t);\n }\n function s(e, t) {\n n.Blob && e instanceof Blob && (e = URL.createObjectURL(e)), i.download = t, i.href = e;\n var a = document.createEvent(\"MouseEvents\");\n a.initMouseEvent(\"click\", !0, !1, n, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, null), i.dispatchEvent(a), setTimeout(function () {\n URL.revokeObjectURL(e);\n });\n }\n r.saveAs = function (t) {\n var n = e;\n t.forceProxy || (a ? n = s : navigator.msSaveBlob && (n = o)), n(t.dataURI, t.fileName, t.proxyURL, t.proxyTarget);\n };\n }(), r.proxyModelSetters = function (e) {\n var t = {};\n return Object.keys(e || {}).forEach(function (n) {\n Object.defineProperty(t, n, {\n get: function () {\n return e[n];\n },\n set: function (t) {\n e[n] = t, e.dirty = !0;\n }\n });\n }), t;\n }, r.getSeriesColors = function () {\n var e = t('
'),\n n = [];\n return e.appendTo(t(\"body\")), e.each(function (e, i) {\n n.push(t(i).css(\"background-color\"));\n }), e.remove(), n;\n }, r.isElement = function (e) {\n return e instanceof Element || e instanceof HTMLDocument;\n }, r.defaults = r.defaults || {}, r.setDefaults = function (e, t) {\n var n = e.split(\".\"),\n a = r.defaults;\n e = n.pop(), n.forEach(function (e) {\n a[e] === i && (a[e] = {}), a = a[e];\n }), t.constructor === Object ? a[e] = G({}, a[e], t) : a[e] = t;\n }, r.class2type = {}, jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (e, t) {\n r.class2type[\"[object \" + t + \"]\"] = t.toLowerCase();\n }), r.type = function (e) {\n return null == e ? e + \"\" : \"object\" == typeof e || \"function\" == typeof e ? r.class2type[Object.prototype.toString.call(e)] || \"object\" : typeof e;\n };\n var KendoLicensing = {\n validatePackage: function () {},\n setScriptKey: function () {}\n };\n n.KendoLicensing = {\n setScriptKey: KendoLicensing.setScriptKey\n };\n }(jQuery, window);\n !function (e, t) {\n var n = window.kendo,\n i = e.extend,\n a = \"\\r\\n\",\n r = \"\\r\\n\\r\\n\",\n o = n.isFunction,\n s = {\n eq: \"eq\",\n neq: \"ne\",\n gt: \"gt\",\n gte: \"ge\",\n lt: \"lt\",\n lte: \"le\",\n contains: \"substringof\",\n doesnotcontain: \"substringof\",\n endswith: \"endswith\",\n startswith: \"startswith\",\n isnull: \"eq\",\n isnotnull: \"ne\",\n isnullorempty: \"eq\",\n isnotnullorempty: \"ne\",\n isempty: \"eq\",\n isnotempty: \"ne\"\n },\n l = i({}, s, {\n contains: \"contains\"\n }),\n d = {\n pageSize: e.noop,\n page: e.noop,\n filter: function (e, t, n) {\n t && (t = c(t, n)) && (e.$filter = t);\n },\n sort: function (t, n) {\n var i = e.map(n, function (e) {\n var t = e.field.replace(/\\./g, \"/\");\n return \"desc\" === e.dir && (t += \" desc\"), t;\n }).join(\",\");\n i && (t.$orderby = i);\n },\n skip: function (e, t) {\n t && (e.$skip = t);\n },\n take: function (e, t) {\n t && (e.$top = t);\n }\n },\n u = {\n read: {\n dataType: \"jsonp\"\n }\n };\n function c(e, t) {\n var i,\n a,\n r,\n o,\n d,\n u,\n p,\n h,\n f = [],\n m = e.logic || \"and\",\n g = e.filters;\n for (i = 0, a = g.length; i < a; i++) r = (e = g[i]).field, p = e.value, u = e.operator, e.filters ? e = c(e, t) : (h = e.ignoreCase, r = r.replace(/\\./g, \"/\"), e = s[u], t && (e = l[u]), \"isnullorempty\" === u ? e = n.format(\"{0} {1} null or {0} {1} ''\", r, e) : \"isnotnullorempty\" === u ? e = n.format(\"{0} {1} null and {0} {1} ''\", r, e) : \"isnull\" === u || \"isnotnull\" === u ? e = n.format(\"{0} {1} null\", r, e) : \"isempty\" === u || \"isnotempty\" === u ? e = n.format(\"{0} {1} ''\", r, e) : e && undefined !== p && (\"string\" === (o = n.type(p)) ? (d = \"'{1}'\", p = p.replace(/'/g, \"''\"), !0 === h && (r = \"tolower(\" + r + \")\")) : \"date\" === o ? t ? (d = \"{1:yyyy-MM-ddTHH:mm:ss+00:00}\", p = n.timezone.apply(p, \"Etc/UTC\")) : d = \"datetime'{1:yyyy-MM-ddTHH:mm:ss}'\" : d = \"{1}\", e.length > 3 ? \"substringof\" !== e ? d = \"{0}({2},\" + d + \")\" : (d = \"{0}(\" + d + \",{2})\", \"doesnotcontain\" === u && (t ? (d = \"{0}({2},'{1}') eq -1\", e = \"indexof\") : d += \" eq false\")) : d = \"{2} {0} \" + d, e = n.format(d, e, p, r))), f.push(e);\n return e = f.join(\" \" + m + \" \"), f.length > 1 && (e = \"(\" + e + \")\"), e;\n }\n function p(e) {\n for (var t in e) 0 === t.indexOf(\"@odata\") && delete e[t];\n }\n function h() {\n return Math.floor(65536 * (1 + Math.random())).toString(16).substr(1);\n }\n function f(e) {\n return e + h() + \"-\" + h() + \"-\" + h();\n }\n function m(e, t) {\n var n = \"\\r\\n--\" + e;\n return t && (n += \"--\"), n;\n }\n function g(e, t, i, a) {\n var r = e.options[a].url,\n s = n.format(\"{0} \", i);\n return o(r) ? s + r(t) : s + r;\n }\n function v(e, t) {\n var n = \"\";\n return n += m(e, !1), n += \"\\r\\nContent-Type: application/http\", n += \"\\r\\nContent-Transfer-Encoding: binary\", n += \"\\r\\nContent-ID: \" + t;\n }\n function _(e, t, i, o, s, l, d) {\n var u = \"\";\n return u += function (e, t) {\n var n = \"\";\n return n += \"--\" + e + a, n += \"Content-Type: multipart/mixed; boundary=\" + t + a;\n }(t, i), u += function (e, t, i, o, s, l) {\n for (var d, u, c = \"\", p = 0; p < e.length; p++) c += v(t, i), c += r + g(s, e[p], s.options[o].type, o) + \" HTTP/1.1\", l || (c += (d = e[p], u = void 0, u = \"\", u += \"\\r\\nContent-Type: application/json;odata=minimalmetadata\", u += \"\\r\\nPrefer: return=representation\", u += r + n.stringify(d))), c += a, i++;\n return c;\n }(e, i, o, l, s, d), u += m(i, !0), u += a;\n }\n i(!0, n.data, {\n schemas: {\n odata: {\n type: \"json\",\n data: function (e) {\n return e.d.results || [e.d];\n },\n total: \"d.__count\"\n }\n },\n transports: {\n odata: {\n read: {\n cache: !0,\n dataType: \"jsonp\",\n jsonp: \"$callback\"\n },\n update: {\n cache: !0,\n dataType: \"json\",\n contentType: \"application/json\",\n type: \"PUT\"\n },\n create: {\n cache: !0,\n dataType: \"json\",\n contentType: \"application/json\",\n type: \"POST\"\n },\n destroy: {\n cache: !0,\n dataType: \"json\",\n type: \"DELETE\"\n },\n parameterMap: function (e, t, i) {\n var a, r, o, s;\n if (e = e || {}, t = t || \"read\", s = (s = (this.options || u)[t]) ? s.dataType : \"json\", \"read\" === t) for (o in a = {\n $inlinecount: \"allpages\"\n }, \"json\" != s && (a.$format = \"json\"), e) d[o] ? d[o](a, e[o], i) : a[o] = e[o];else {\n if (\"json\" !== s) throw new Error(\"Only json dataType can be used for \" + t + \" operation.\");\n if (\"destroy\" !== t) {\n for (o in e) \"number\" == typeof (r = e[o]) && (e[o] = r + \"\");\n a = n.stringify(e);\n }\n }\n return a;\n }\n }\n }\n }), i(!0, n.data, {\n schemas: {\n \"odata-v4\": {\n type: \"json\",\n data: function (t) {\n if (Array.isArray(t)) {\n for (var n = 0; n < t.length; n++) p(t[n]);\n return t;\n }\n return p(t = e.extend({}, t)), t.value ? t.value : [t];\n },\n total: function (e) {\n return e[\"@odata.count\"];\n }\n }\n },\n transports: {\n \"odata-v4\": {\n batch: {\n type: \"POST\"\n },\n read: {\n cache: !0,\n dataType: \"json\"\n },\n update: {\n cache: !0,\n dataType: \"json\",\n contentType: \"application/json;IEEE754Compatible=true\",\n type: \"PUT\"\n },\n create: {\n cache: !0,\n dataType: \"json\",\n contentType: \"application/json;IEEE754Compatible=true\",\n type: \"POST\"\n },\n destroy: {\n cache: !0,\n dataType: \"json\",\n type: \"DELETE\"\n },\n parameterMap: function (e, t) {\n var i = n.data.transports.odata.parameterMap(e, t, !0);\n return \"read\" == t && (i.$count = !0, delete i.$inlinecount), i && i.$filter && (i.$filter = i.$filter.replace(/('[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')/gi, function (e) {\n return e.substring(1, e.length - 1);\n })), i;\n },\n submit: function (t) {\n var a = function (e, t) {\n var n = i({}, e.options.batch),\n a = f(\"sf_batch_\"),\n r = \"\",\n s = 0,\n l = e.options.batch.url,\n d = f(\"sf_changeset_\");\n return n.type = e.options.batch.type, n.url = o(l) ? l() : l, n.headers = i(n.headers || {}, {\n \"Content-Type\": \"multipart/mixed; boundary=\" + a\n }), t.updated.length && (r += _(t.updated, a, d, s, e, \"update\", !1), s += t.updated.length, d = f(\"sf_changeset_\")), t.destroyed.length && (r += _(t.destroyed, a, d, s, e, \"destroy\", !0), s += t.destroyed.length, d = f(\"sf_changeset_\")), t.created.length && (r += _(t.created, a, d, s, e, \"create\", !1)), r += m(a, !0), n.data = r, n;\n }(this, t.data),\n r = t.data;\n (r.updated.length || r.destroyed.length || r.created.length) && e.ajax(i(!0, {}, {\n success: function (e) {\n var i,\n a = function (e) {\n var t,\n i,\n a,\n r,\n o,\n s = e.match(/--changesetresponse_[a-z0-9-]+$/gm),\n l = 0,\n d = [];\n d.push({\n models: [],\n passed: !0\n });\n for (var u = 0; u < s.length; u++) (r = s[u]).lastIndexOf(\"--\", r.length - 1) ? u < s.length - 1 && d.push({\n models: [],\n passed: !0\n }) : (l = l ? e.indexOf(r, l + r.length) : e.indexOf(r), i = (t = e.substring(l, e.indexOf(\"--\", l + 1))).match(/^HTTP\\/1\\.\\d (\\d{3}) (.*)$/gm).pop(), (a = n.parseFloat(i.match(/\\d{3}/g).pop())) >= 200 && a <= 299 ? (o = t.match(/\\{.*\\}/gm)) && d[d.length - 1].models.push(JSON.parse(o[0])) : d[d.length - 1].passed = !1);\n return d;\n }(e),\n o = 0;\n r.updated.length && ((i = a[o]).passed && t.success(i.models.length ? i.models : [], \"update\"), o++), r.destroyed.length && ((i = a[o]).passed && t.success([], \"destroy\"), o++), r.created.length && (i = a[o]).passed && t.success(i.models, \"create\");\n },\n error: function (e, n, i) {\n t.error(e, n, i);\n }\n }, a));\n }\n }\n }\n });\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = Array.isArray,\n a = e.isPlainObject,\n r = e.map,\n o = e.each,\n s = e.extend,\n l = n.getter,\n d = n.Class.extend({\n init: function (e) {\n var t = this,\n l = e.total,\n d = e.model,\n u = e.parse,\n c = e.errors,\n p = e.serialize,\n h = e.data;\n if (d) {\n if (a(d)) {\n var f = e.modelBase || n.data.Model;\n d.fields && o(d.fields, function (e, i) {\n a(i) && i.field ? n.isFunction(i.field) || (i = s(i, {\n field: t.getter(i.field)\n })) : i = {\n field: t.getter(i)\n }, d.fields[e] = i;\n });\n var m = d.id;\n if (m) {\n var g = {};\n g[t.xpathToMember(m, !0)] = {\n field: t.getter(m)\n }, d.fields = s(g, d.fields), d.id = t.xpathToMember(m);\n }\n d = f.define(d);\n }\n t.model = d;\n }\n if (l && (\"string\" == typeof l ? (l = t.getter(l), t.total = function (e) {\n return parseInt(l(e), 10);\n }) : \"function\" == typeof l && (t.total = l)), c && (\"string\" == typeof c ? (c = t.getter(c), t.errors = function (e) {\n return c(e) || null;\n }) : \"function\" == typeof c && (t.errors = c)), h && (\"string\" == typeof h ? (h = t.xpathToMember(h), t.data = function (e) {\n var n,\n a = t.evaluate(e, h);\n return a = i(a) ? a : [a], t.model && d.fields ? (n = new t.model(), r(a, function (e) {\n if (e) {\n var t,\n i = {};\n for (t in d.fields) i[t] = n._parse(t, d.fields[t].field(e));\n return i;\n }\n })) : a;\n }) : \"function\" == typeof h && (t.data = h)), \"function\" == typeof u) {\n var v = t.parse;\n t.parse = function (e) {\n var n = u.call(t, e);\n return v.call(t, n);\n };\n }\n \"function\" == typeof p && (t.serialize = p);\n },\n total: function (e) {\n return this.data(e).length;\n },\n errors: function (e) {\n return e ? e.errors : null;\n },\n serialize: function (e) {\n return e;\n },\n parseDOM: function (e) {\n var t,\n n,\n a,\n r,\n o,\n s,\n l,\n d = {},\n u = e.attributes,\n c = u.length;\n for (l = 0; l < c; l++) d[\"@\" + (s = u[l]).nodeName] = s.nodeValue;\n for (n = e.firstChild; n; n = n.nextSibling) 3 === (a = n.nodeType) || 4 === a ? d[\"#text\"] = n.nodeValue : 1 === a && (t = this.parseDOM(n), o = d[r = n.nodeName], i(o) ? o.push(t) : o = undefined !== o ? [o, t] : t, d[r] = o);\n return d;\n },\n evaluate: function (e, t) {\n for (var n, a, r, o, s, l = t.split(\".\"); n = l.shift();) if (e = e[n], i(e)) {\n for (a = [], t = l.join(\".\"), s = 0, r = e.length; s < r; s++) o = this.evaluate(e[s], t), o = i(o) ? o : [o], a.push.apply(a, o);\n return a;\n }\n return e;\n },\n parse: function (t) {\n var n,\n i,\n a = {};\n return n = t.documentElement || e.parseXML(t).documentElement, i = this.parseDOM(n), a[n.nodeName] = i, a;\n },\n xpathToMember: function (e, t) {\n return e ? (e = e.replace(/^\\//, \"\").replace(/\\//g, \".\")).indexOf(\"@\") >= 0 ? e.replace(/\\.?(@.*)/, t ? \"$1\" : '[\"$1\"]') : e.indexOf(\"text()\") >= 0 ? e.replace(/(\\.?text\\(\\))/, t ? \"#text\" : '[\"#text\"]') : e : \"\";\n },\n getter: function (e) {\n return l(this.xpathToMember(e), !0);\n }\n });\n e.extend(!0, n.data, {\n XmlDataReader: d,\n readers: {\n xml: d\n }\n });\n }(window.kendo.jQuery);\n !function (e, t) {\n var n,\n i = e.extend,\n a = e.isPlainObject,\n r = e.isEmptyObject,\n o = Array.isArray,\n s = e.grep,\n l = e.ajax,\n d = e.each,\n u = e.noop,\n c = window.kendo,\n p = c.isFunction,\n h = c.Observable,\n f = c.Class,\n m = \"string\",\n g = \"function\",\n v = \"create\",\n _ = \"read\",\n b = \"update\",\n k = \"destroy\",\n w = \"change\",\n y = \"sync\",\n x = \"get\",\n C = \"error\",\n T = \"requestStart\",\n S = \"progress\",\n I = \"requestEnd\",\n D = \"itemsLoaded\",\n E = \"itemLoad\",\n A = [v, _, b, k],\n F = function (e) {\n return e;\n },\n z = c.getter,\n P = c.stringify,\n H = Math,\n N = [].push,\n R = [].join,\n O = [].pop,\n M = [].splice,\n B = [].shift,\n L = [].slice,\n V = [].unshift,\n U = {}.toString,\n W = c.support.stableSort,\n j = /^\\/Date\\((.*?)\\)\\/$/,\n q = [],\n G = h.extend({\n init: function (e, t) {\n var n = this;\n n.type = t || Q, h.fn.init.call(n), n.length = e.length, n.wrapAll(e, n), n._loadPromises = [], n._loadedNodes = [];\n },\n at: function (e) {\n return this[e];\n },\n toJSON: function (e) {\n var t,\n n,\n i = this.length,\n a = new Array(i);\n for (t = 0; t < i; t++) (n = this[t]) instanceof Q && (n = n.toJSON(e)), a[t] = n;\n return a;\n },\n parent: u,\n wrapAll: function (e, t) {\n var n,\n i,\n a = this,\n r = function () {\n return a;\n };\n for (t = t || [], n = 0, i = e.length; n < i; n++) t[n] = a.wrap(e[n], r);\n return t;\n },\n wrap: function (e, t) {\n var n = this;\n return null !== e && \"[object Object]\" === U.call(e) && (e instanceof n.type || e instanceof ee || (e = e instanceof Q ? e.toJSON() : e, e = new n.type(e)), e.parent = t, e.bind(w, function (t) {\n var i = e.hasOwnProperty(\"hasSubgroups\");\n n.trigger(w, {\n field: t.field,\n node: t.node,\n index: t.index,\n items: t.items || [this],\n action: t.node || i ? t.action || \"itemloaded\" : \"itemchange\"\n });\n }), e.bind(E, function (e) {\n n._loadPromises.push(e.promise), n._loading = !0, e.promise.done(function () {\n n._loadedNodes.push(e.node);\n var t = n._loadPromises.indexOf(e.promise);\n n._loadPromises.splice(t, 1), n._loadPromises.length || (n._loading = !1, n.trigger(D, {\n collection: n,\n nodes: n._loadedNodes\n }), n._loadedNodes = []);\n });\n })), e;\n },\n loading: function () {\n return this._loading;\n },\n push: function () {\n var e,\n t = this.length,\n n = this.wrapAll(arguments);\n return e = N.apply(this, n), this.omitChangeEvent || this.trigger(w, {\n action: \"add\",\n index: t,\n items: n\n }), e;\n },\n slice: L,\n sort: [].sort,\n join: R,\n pop: function () {\n var e = this.length,\n t = O.apply(this);\n return e && this.trigger(w, {\n action: \"remove\",\n index: e - 1,\n items: [t]\n }), t;\n },\n splice: function (e, t, n) {\n var i,\n a,\n r,\n o = this.wrapAll(L.call(arguments, 2));\n if ((i = M.apply(this, [e, t].concat(o))).length) for (this.omitChangeEvent || this.trigger(w, {\n action: \"remove\",\n index: e,\n items: i\n }), a = 0, r = i.length; a < r; a++) i[a] && i[a].children && i[a].unbind(w);\n return n && (this.omitChangeEvent || this.trigger(w, {\n action: \"add\",\n index: e,\n items: o\n })), i;\n },\n shift: function () {\n var e = this.length,\n t = B.apply(this);\n return e && this.trigger(w, {\n action: \"remove\",\n index: 0,\n items: [t]\n }), t;\n },\n unshift: function () {\n var e,\n t = this.wrapAll(arguments);\n return e = V.apply(this, t), this.trigger(w, {\n action: \"add\",\n index: 0,\n items: t\n }), e;\n },\n indexOf: function (e) {\n var t, n;\n for (t = 0, n = this.length; t < n; t++) if (this[t] === e) return t;\n return -1;\n },\n forEach: function (e, t) {\n for (var n = 0, i = this.length, a = t || window; n < i; n++) e.call(a, this[n], n, this);\n },\n map: function (e, t) {\n for (var n = 0, i = [], a = this.length, r = t || window; n < a; n++) i[n] = e.call(r, this[n], n, this);\n return i;\n },\n reduce: function (e) {\n var t,\n n = 0,\n i = this.length;\n for (2 == arguments.length ? t = arguments[1] : n < i && (t = this[n++]); n < i; n++) t = e(t, this[n], n, this);\n return t;\n },\n reduceRight: function (e) {\n var t,\n n = this.length - 1;\n for (2 == arguments.length ? t = arguments[1] : n > 0 && (t = this[n--]); n >= 0; n--) t = e(t, this[n], n, this);\n return t;\n },\n filter: function (e, t) {\n for (var n, i = 0, a = [], r = this.length, o = t || window; i < r; i++) n = this[i], e.call(o, n, i, this) && (a[a.length] = n);\n return a;\n },\n find: function (e, t) {\n for (var n, i = 0, a = this.length, r = t || window; i < a; i++) if (n = this[i], e.call(r, n, i, this)) return n;\n },\n every: function (e, t) {\n for (var n, i = 0, a = this.length, r = t || window; i < a; i++) if (n = this[i], !e.call(r, n, i, this)) return !1;\n return !0;\n },\n some: function (e, t) {\n for (var n, i = 0, a = this.length, r = t || window; i < a; i++) if (n = this[i], e.call(r, n, i, this)) return !0;\n return !1;\n },\n remove: function (e) {\n var t = this.indexOf(e);\n -1 !== t && this.splice(t, 1);\n },\n empty: function () {\n this.splice(0, this.length);\n }\n });\n \"undefined\" != typeof Symbol && Symbol.iterator && !G.prototype[Symbol.iterator] && (G.prototype[Symbol.iterator] = [][Symbol.iterator]);\n var K = G.extend({\n init: function (e, t, n) {\n h.fn.init.call(this), this.type = t || Q, n && (this._events = n);\n for (var i = 0; i < e.length; i++) this[i] = e[i];\n this.length = i, this._parent = function () {\n return this;\n }.bind(this);\n },\n at: function (e) {\n var t = this[e];\n return t instanceof this.type ? t.parent = this._parent : t = this[e] = this.wrap(t, this._parent), t;\n }\n });\n function $(e, t, n, i) {\n return function (a) {\n var r,\n o = {};\n for (r in a) o[r] = a[r];\n o.field = i ? n + \".\" + a.field : n, t == w && e._notifyChange && e._notifyChange(o), e.trigger(t, o);\n };\n }\n function Y(e, t) {\n var n,\n i,\n a = [],\n r = [];\n for (function (e) {\n return \"object\" == typeof e && Object.getPrototypeOf(e) === Object.getPrototypeOf({}) || Object.getPrototypeOf(e) === Object.getPrototypeOf(new Date()) || \"object\" != typeof e;\n }(e = e || {}) || (r = Object.getOwnPropertyNames(Object.getPrototypeOf(e))), n = Object.getOwnPropertyNames(e).concat(r), i = q.filter(function (e) {\n return n.indexOf(e) < 0;\n }); e;) Object.getOwnPropertyNames(e).forEach(function (e) {\n -1 === a.indexOf(e) && (!t || i.indexOf(e) < 0) && a.push(e);\n }), e = Object.getPrototypeOf(e);\n return a;\n }\n q = Y({}, !1);\n var Q = h.extend({\n init: function (e) {\n var t,\n n = this,\n i = Y(e, !0),\n a = function () {\n return n;\n };\n h.fn.init.call(this), this._handlers = {}, i.forEach(function (i) {\n \"object\" == typeof (t = e[i]) && t && !t.getTime && \"_\" != i.charAt(0) && (t = n.wrap(t, i, a)), n[i] = t;\n }), n.uid = c.guid();\n },\n shouldSerialize: function (e, t) {\n return this.hasOwnProperty(e) && \"_handlers\" !== e && \"_events\" !== e && (t && t[e] || typeof this[e] !== g) && \"uid\" !== e;\n },\n forEach: function (e) {\n for (var t in this) this.shouldSerialize(t) && e(this[t], t);\n },\n toJSON: function (e) {\n var t,\n n,\n i = {};\n for (n in this) this.shouldSerialize(n, e) && (((t = this[n]) instanceof Q || t instanceof G) && (t = t.toJSON(e)), i[n] = t);\n return i;\n },\n get: function (e) {\n var t = this;\n return t.trigger(x, {\n field: e\n }), \"this\" === e ? t : c.getter(e, !0)(t);\n },\n _set: function (e, t) {\n var n = e.indexOf(\".\") >= 0;\n if (n) for (var i = e.split(\".\"), a = \"\"; i.length > 1;) {\n a += i.shift();\n var r = c.getter(a, !0)(this);\n if (r instanceof Q) return r.set(i.join(\".\"), t), n;\n a += \".\";\n }\n return c.setter(e)(this, t), n;\n },\n set: function (e, t) {\n var n = this,\n i = !1,\n a = e.indexOf(\".\") >= 0,\n r = c.getter(e, !0)(n);\n return r !== t && (r instanceof h && this._handlers[e] && (this._handlers[e].get && r.unbind(x, this._handlers[e].get), r.unbind(w, this._handlers[e].change)), (i = n.trigger(\"set\", {\n field: e,\n value: t\n })) || (a || (t = n.wrap(t, e, function () {\n return n;\n })), (!n._set(e, t) || e.indexOf(\"(\") >= 0 || e.indexOf(\"[\") >= 0) && n.trigger(w, {\n field: e\n }))), i;\n },\n parent: u,\n wrap: function (e, t, n) {\n var i,\n a,\n r = this,\n o = U.call(e);\n if (null != e && (\"[object Object]\" === o || \"[object Array]\" === o)) {\n var s = e instanceof G,\n l = e instanceof qe;\n \"[object Object]\" !== o || l || s ? (\"[object Array]\" === o || s || l) && (s || l || (e = new G(e)), a = $(r, w, t, !1), e.bind(w, a), r._handlers[t] = {\n change: a\n }) : (e instanceof Q || (e = new Q(e)), i = $(r, x, t, !0), e.bind(x, i), a = $(r, w, t, !0), e.bind(w, a), r._handlers[t] = {\n get: i,\n change: a\n }), e.parent = n;\n }\n return e;\n }\n });\n function X(e, t) {\n if (e === t) return !0;\n var n,\n i = c.type(e);\n if (i !== c.type(t)) return !1;\n if (\"date\" === i) return e.getTime() === t.getTime();\n if (\"object\" !== i && \"array\" !== i) return !1;\n for (n in e) if (!X(e[n], t[n])) return !1;\n return !0;\n }\n var J = {\n number: function (e) {\n return typeof e === m && \"null\" === e.toLowerCase() ? null : c.parseFloat(e);\n },\n date: function (e) {\n return typeof e === m && \"null\" === e.toLowerCase() ? null : c.parseDate(e);\n },\n boolean: function (e) {\n return typeof e === m ? \"null\" === e.toLowerCase() ? null : \"true\" === e.toLowerCase() : null != e ? !!e : e;\n },\n string: function (e) {\n return typeof e === m && \"null\" === e.toLowerCase() ? null : null != e ? e + \"\" : e;\n },\n default: function (e) {\n return e;\n }\n },\n Z = {\n string: \"\",\n number: 0,\n date: new Date(),\n boolean: !1,\n default: \"\"\n };\n var ee = Q.extend({\n init: function (n) {\n var i = this;\n if ((!n || e.isEmptyObject(n)) && (n = e.extend({}, i.defaults, n), i._initializers)) for (var a = 0; a < i._initializers.length; a++) {\n var r = i._initializers[a];\n n[r] = i.defaults[r]();\n }\n Q.fn.init.call(i, n), i.dirty = !1, i.dirtyFields = {}, i.idField && (i.id = i.get(i.idField), i.id === t && (i.id = i._defaultId));\n },\n shouldSerialize: function (e) {\n return Q.fn.shouldSerialize.call(this, e) && \"uid\" !== e && !(\"id\" !== this.idField && \"id\" === e) && \"dirty\" !== e && \"dirtyFields\" !== e && \"_accessors\" !== e;\n },\n _parse: function (e, t) {\n var n,\n i = e,\n r = this.fields || {};\n return (e = r[e]) || (e = function (e, t) {\n var n, i;\n for (i in e) {\n if (n = e[i], a(n) && n.field && n.field === t) return n;\n if (n === t) return n;\n }\n return null;\n }(r, i)), e && !(n = e.parse) && e.type && (n = J[e.type.toLowerCase()]), n ? n(t) : t;\n },\n _notifyChange: function (e) {\n var t = e.action;\n \"add\" != t && \"remove\" != t || (this.dirty = !0, this.dirtyFields[e.field] = !0);\n },\n editable: function (e) {\n return !(e = (this.fields || {})[e]) || !1 !== e.editable;\n },\n set: function (e, t) {\n var n = this,\n i = n.dirty;\n n.editable(e) && (X(t = n._parse(e, t), n.get(e)) ? n.trigger(\"equalSet\", {\n field: e,\n value: t\n }) : (n.dirty = !0, n.dirtyFields[e] = !0, Q.fn.set.call(n, e, t) && !i && (n.dirty = i, n.dirty || (n.dirtyFields[e] = !1))));\n },\n accept: function (e) {\n var t,\n n = this,\n i = function () {\n return n;\n };\n for (t in e) {\n var a = e[t];\n \"_\" != t.charAt(0) && (a = n.wrap(e[t], t, i)), n._set(t, a);\n }\n n.idField && (n.id = n.get(n.idField)), n.dirty = !1, n.dirtyFields = {};\n },\n isNew: function () {\n return this.id === this._defaultId;\n }\n });\n ee.define = function (n, a) {\n a === t && (a = n, n = ee);\n var r,\n o,\n s,\n l,\n d,\n u,\n c,\n p,\n h = i({\n defaults: {}\n }, a),\n f = {},\n g = h.id,\n v = [];\n if (g && (h.idField = g), h.id && delete h.id, g && (h.defaults[g] = h._defaultId = \"\"), \"[object Array]\" === U.call(h.fields)) {\n for (u = 0, c = h.fields.length; u < c; u++) typeof (s = h.fields[u]) === m ? f[s] = {} : s.field && (f[s.field] = s);\n h.fields = f;\n }\n for (o in h.fields) l = (s = h.fields[o]).type || \"default\", d = null, p = o, o = typeof s.field === m ? s.field : o, s.nullable || \"function\" == typeof (d = h.defaults[p !== o ? p : o] = s.defaultValue !== t ? s.defaultValue : Z[l.toLowerCase()]) && v.push(o), a.id === o && (h._defaultId = d), h.defaults[p !== o ? p : o] = d, e.isPlainObject(s) ? s.parse = s.parse || J[l] : s = {\n parse: J[l]\n };\n return v.length > 0 && (h._initializers = v), (r = n.extend(h)).define = function (e) {\n return ee.define(r, e);\n }, h.fields && (r.fields = h.fields, r.idField = h.idField), r;\n };\n var te = {\n selector: function (e) {\n return p(e) ? e : z(e);\n },\n compare: function (e) {\n var t = this.selector(e);\n return function (e, n) {\n return e = t(e), n = t(n), null == e && null == n ? 0 : null == e ? -1 : null == n ? 1 : e.localeCompare ? e.localeCompare(n) : e > n ? 1 : e < n ? -1 : 0;\n };\n },\n create: function (e) {\n var t = e.compare || this.compare(e.field);\n return \"desc\" == e.dir ? function (e, n) {\n return t(n, e, !0);\n } : t;\n },\n combine: function (e) {\n return function (t, n) {\n var i,\n a,\n r = e[0](t, n);\n for (i = 1, a = e.length; i < a; i++) r = r || e[i](t, n);\n return r;\n };\n }\n },\n ne = i({}, te, {\n asc: function (e) {\n var t = this.selector(e);\n return function (e, n) {\n var i = t(e),\n a = t(n);\n return i && i.getTime && a && a.getTime && (i = i.getTime(), a = a.getTime()), i === a ? e.__position - n.__position : null == i ? -1 : null == a ? 1 : i.localeCompare ? i.localeCompare(a) : i > a ? 1 : -1;\n };\n },\n desc: function (e) {\n var t = this.selector(e);\n return function (e, n) {\n var i = t(e),\n a = t(n);\n return i && i.getTime && a && a.getTime && (i = i.getTime(), a = a.getTime()), i === a ? e.__position - n.__position : null == i ? 1 : null == a ? -1 : a.localeCompare ? a.localeCompare(i) : i < a ? 1 : -1;\n };\n },\n create: function (e) {\n return this[e.dir](e.field);\n }\n });\n n = function (e, t) {\n var n,\n i = e.length,\n a = new Array(i);\n for (n = 0; n < i; n++) a[n] = t(e[n], n, e);\n return a;\n };\n var ie = function () {\n function e(e) {\n return \"string\" == typeof e && (e = e.replace(/[\\r\\n]+/g, \"\")), JSON.stringify(e);\n }\n function t(t) {\n return function (n, i, a, r) {\n return i += \"\", a && (n = \"(\" + n + \" + '').toString()\" + (r ? \".toLocaleLowerCase('\" + r + \"')\" : \".toLowerCase()\"), i = r ? i.toLocaleLowerCase(r) : i.toLowerCase()), t(n, e(i), a);\n };\n }\n function n(t, n, i, a, r) {\n if (null != i) {\n if (typeof i === m) {\n var o = j.exec(i);\n o ? i = new Date(+o[1]) : a ? (i = e(r ? i.toLocaleLowerCase(r) : i.toLowerCase()), n = \"((\" + n + \" || '')+'')\" + (r ? \".toLocaleLowerCase('\" + r + \"')\" : \".toLowerCase()\")) : i = e(i);\n }\n i.getTime && (n = \"(\" + n + \"&&\" + n + \".getTime?\" + n + \".getTime():\" + n + \")\", i = i.getTime());\n }\n return n + \" \" + t + \" \" + i;\n }\n function i(e) {\n for (var t = \"/^\", n = !1, i = 0; i < e.length; ++i) {\n var a = e.charAt(i);\n if (n) t += \"\\\\\" + a;else {\n if (\"~\" == a) {\n n = !0;\n continue;\n }\n \"*\" == a ? t += \".*\" : \"?\" == a ? t += \".\" : \".+^$()[]{}|\\\\/\\n\\r\\u2028\\u2029 \".indexOf(a) >= 0 ? t += \"\\\\\" + a : t += a;\n }\n n = !1;\n }\n return t + \"$/\";\n }\n return {\n quote: function (t) {\n return t && t.getTime ? \"new Date(\" + t.getTime() + \")\" : e(t);\n },\n eq: function (e, t, i, a) {\n return n(\"==\", e, t, i, a);\n },\n neq: function (e, t, i, a) {\n return n(\"!=\", e, t, i, a);\n },\n gt: function (e, t, i) {\n return n(\">\", e, t, i);\n },\n gte: function (e, t, i) {\n return n(\">=\", e, t, i);\n },\n lt: function (e, t, i) {\n return n(\"<\", e, t, i);\n },\n lte: function (e, t, i) {\n return n(\"<=\", e, t, i);\n },\n startswith: t(function (e, t) {\n return e + \".lastIndexOf(\" + t + \", 0) == 0\";\n }),\n doesnotstartwith: t(function (e, t) {\n return e + \".lastIndexOf(\" + t + \", 0) == -1\";\n }),\n endswith: t(function (e, t) {\n return e + \".indexOf(\" + t + \", \" + e + \".length - \" + (t ? t.length - 2 : 0) + \") >= 0\";\n }),\n doesnotendwith: t(function (e, t) {\n return e + \".indexOf(\" + t + \", \" + e + \".length - \" + (t ? t.length - 2 : 0) + \") < 0\";\n }),\n contains: t(function (e, t) {\n return e + \".indexOf(\" + t + \") >= 0\";\n }),\n doesnotcontain: t(function (e, t) {\n return e + \".indexOf(\" + t + \") == -1\";\n }),\n matches: t(function (e, t) {\n return i(t = t.substring(1, t.length - 1)) + \".test(\" + e + \")\";\n }),\n doesnotmatch: t(function (e, t) {\n return \"!\" + i(t = t.substring(1, t.length - 1)) + \".test(\" + e + \")\";\n }),\n isempty: function (e) {\n return e + \" === ''\";\n },\n isnotempty: function (e) {\n return e + \" !== ''\";\n },\n isnull: function (e) {\n return \"(\" + e + \" == null)\";\n },\n isnotnull: function (e) {\n return \"(\" + e + \" != null)\";\n },\n isnullorempty: function (e) {\n return \"(\" + e + \" === null) || (\" + e + \" === '')\";\n },\n isnotnullorempty: function (e) {\n return \"(\" + e + \" !== null) && (\" + e + \" !== '')\";\n }\n };\n }();\n function ae(e) {\n this.data = e || [];\n }\n function re(e, n) {\n if (e) {\n var i = typeof e === m ? {\n field: e,\n dir: n\n } : e,\n a = o(i) ? i : i !== t ? [i] : [];\n return s(a, function (e) {\n return !!e.dir;\n });\n }\n }\n function oe(e, n) {\n var i = {};\n if (e) for (var a = typeof e === m ? {\n field: e,\n dir: n\n } : e, r = o(a) ? a : a !== t ? [a] : [], s = 0; s < r.length; s++) i[r[s].field] = {\n dir: r[s].dir,\n index: s + 1\n };\n return i;\n }\n ae.filterExpr = function (e) {\n var n,\n i,\n a,\n r,\n o,\n s,\n l = [],\n d = [],\n u = [],\n p = e.filters;\n for (n = 0, i = p.length; n < i; n++) o = (a = p[n]).field, s = a.operator, a.filters ? (a = (r = ae.filterExpr(a)).expression.replace(/__o\\[(\\d+)\\]/g, function (e, t) {\n return t = +t, \"__o[\" + (u.length + t) + \"]\";\n }).replace(/__f\\[(\\d+)\\]/g, function (e, t) {\n return t = +t, \"__f[\" + (d.length + t) + \"]\";\n }), u.push.apply(u, r.operators), d.push.apply(d, r.fields)) : (typeof o === g ? (r = \"__f[\" + d.length + \"](d)\", d.push(o)) : r = c.expr(o), typeof s === g ? (a = \"__o[\" + u.length + \"](\" + r + \", \" + ie.quote(a.value) + \")\", u.push(s)) : a = ie[(s || \"eq\").toLowerCase()](r, a.value, a.ignoreCase === t || a.ignoreCase, e.accentFoldingFiltering)), l.push(a);\n return {\n expression: \"(\" + l.join({\n and: \" && \",\n or: \" || \"\n }[e.logic]) + \")\",\n fields: d,\n operators: u\n };\n };\n var se = {\n \"==\": \"eq\",\n equals: \"eq\",\n isequalto: \"eq\",\n equalto: \"eq\",\n equal: \"eq\",\n \"!=\": \"neq\",\n ne: \"neq\",\n notequals: \"neq\",\n isnotequalto: \"neq\",\n notequalto: \"neq\",\n notequal: \"neq\",\n \"<\": \"lt\",\n islessthan: \"lt\",\n lessthan: \"lt\",\n less: \"lt\",\n \"<=\": \"lte\",\n le: \"lte\",\n islessthanorequalto: \"lte\",\n lessthanequal: \"lte\",\n \">\": \"gt\",\n isgreaterthan: \"gt\",\n greaterthan: \"gt\",\n greater: \"gt\",\n \">=\": \"gte\",\n isgreaterthanorequalto: \"gte\",\n greaterthanequal: \"gte\",\n ge: \"gte\",\n notsubstringof: \"doesnotcontain\",\n isnull: \"isnull\",\n isempty: \"isempty\",\n isnotempty: \"isnotempty\"\n };\n function le(e) {\n var t,\n n,\n i,\n a,\n r = e.filters;\n if (r) for (t = 0, n = r.length; t < n; t++) (a = (i = r[t]).operator) && typeof a === m && (i.operator = se[a.toLowerCase()] || a), le(i);\n }\n function de(e) {\n if (e && !r(e)) return !o(e) && e.filters || (e = {\n logic: \"and\",\n filters: o(e) ? e : [e]\n }), le(e), e;\n }\n function ue(e, t) {\n return !e.logic && !t.logic && e.field === t.field && e.value === t.value && e.operator === t.operator;\n }\n function ce(e) {\n return r(e = e || {}) ? {\n logic: \"and\",\n filters: []\n } : de(e);\n }\n function pe(e, t) {\n return t.logic || e.field > t.field ? 1 : e.field < t.field ? -1 : 0;\n }\n function he(e, i, a, r) {\n var s = typeof e === m ? {\n field: e,\n dir: i,\n compare: a,\n skipItemSorting: r\n } : e,\n l = o(s) ? s : s !== t ? [s] : [];\n return n(l, function (e) {\n return {\n field: e.field,\n dir: e.dir || \"asc\",\n aggregates: e.aggregates,\n compare: e.compare,\n skipItemSorting: e.skipItemSorting\n };\n });\n }\n function fe(e, t, n) {\n for (var i = he(e, t, n), a = 0; a < i.length; a++) delete i[a].compare;\n return i;\n }\n function me(e, t) {\n return e && e.getTime && t && t.getTime ? e.getTime() === t.getTime() : e === t;\n }\n function ge(e, t, n, i, a, r) {\n var o,\n s,\n l,\n d = (t = t || []).length;\n for (o = 0; o < d; o++) {\n l = (s = t[o]).aggregate;\n var u = s.field;\n e[u] = e[u] || {}, r[u] = r[u] || {}, r[u][l] = r[u][l] || {}, e[u][l] = ve[l.toLowerCase()](e[u][l], n, c.accessor(u), i, a, r[u][l]);\n }\n }\n ae.normalizeFilter = de, ae.compareFilters = function e(t, n) {\n if (t = ce(t), n = ce(n), t.logic !== n.logic) return !1;\n var i,\n a,\n r = (t.filters || []).slice(),\n o = (n.filters || []).slice();\n if (r.length !== o.length) return !1;\n r = r.sort(pe), o = o.sort(pe);\n for (var s = 0; s < r.length; s++) if (i = r[s], a = o[s], i.logic && a.logic) {\n if (!e(i, a)) return !1;\n } else if (!ue(i, a)) return !1;\n return !0;\n }, ae.prototype = {\n toArray: function () {\n return this.data;\n },\n range: function (e, t) {\n return new ae(this.data.slice(e, e + t));\n },\n skip: function (e) {\n return new ae(this.data.slice(e));\n },\n take: function (e) {\n return new ae(this.data.slice(0, e));\n },\n select: function (e) {\n return new ae(n(this.data, e));\n },\n order: function (e, t, n) {\n var i = {\n dir: t\n };\n return e && (e.compare ? i.compare = e.compare : i.field = e), new ae(n ? this.data.sort(te.create(i)) : this.data.slice(0).sort(te.create(i)));\n },\n orderBy: function (e, t) {\n return this.order(e, \"asc\", t);\n },\n orderByDescending: function (e, t) {\n return this.order(e, \"desc\", t);\n },\n sort: function (e, t, n, i) {\n var a,\n r,\n o = re(e, t),\n s = [];\n if (n = n || te, o.length) {\n for (a = 0, r = o.length; a < r; a++) s.push(n.create(o[a]));\n return this.orderBy({\n compare: n.combine(s)\n }, i);\n }\n return this;\n },\n filter: function (e) {\n var t,\n n,\n i,\n a,\n r,\n o,\n s,\n l,\n d = this.data,\n u = [];\n if (!(e = de(e)) || 0 === e.filters.length) return this;\n for (a = ae.filterExpr(e), o = a.fields, s = a.operators, r = l = new Function(\"d, __f, __o\", \"return \" + a.expression), (o.length || s.length) && (l = function (e) {\n return r(e, o, s);\n }), t = 0, i = d.length; t < i; t++) l(n = d[t]) && u.push(n);\n return new ae(u);\n },\n group: function (e, t, n) {\n e = he(e || []), t = t || this.data;\n var i,\n a = new ae(this.data);\n return e.length > 0 && (i = e[0], a = n && n.groupPaging ? new ae(t).groupAllData(i, t).select(function (a) {\n var r = new ae(t).filter([{\n field: a.field,\n operator: \"eq\",\n value: a.value,\n ignoreCase: !1\n }]),\n o = e.length > 1 ? new ae(a.items).group(e.slice(1), r.toArray(), n).toArray() : a.items;\n return {\n field: a.field,\n value: a.value,\n hasSubgroups: e.length > 1,\n items: o,\n aggregates: r.aggregate(i.aggregates),\n uid: c.guid(),\n itemCount: o.length,\n subgroupCount: o.length\n };\n }) : a.groupBy(i).select(function (n) {\n var a = new ae(t).filter([{\n field: n.field,\n operator: \"eq\",\n value: n.value,\n ignoreCase: !1\n }]);\n return {\n field: n.field,\n value: n.value,\n items: e.length > 1 ? new ae(n.items).group(e.slice(1), a.toArray()).toArray() : n.items,\n hasSubgroups: e.length > 1,\n aggregates: a.aggregate(i.aggregates)\n };\n })), a;\n },\n groupBy: function (e) {\n if (r(e) || !this.data.length) return new ae([]);\n var t,\n n,\n i,\n a,\n o = e.field,\n s = e.skipItemSorting ? this.data : this._sortForGrouping(o, e.dir || \"asc\"),\n l = c.accessor(o),\n d = l.get(s[0], o),\n u = {\n field: o,\n value: d,\n items: []\n },\n p = [u];\n for (i = 0, a = s.length; i < a; i++) t = s[i], me(d, n = l.get(t, o)) || (u = {\n field: o,\n value: d = n,\n items: []\n }, p.push(u)), u.items.push(t);\n return new ae(p = this._sortGroups(p, e));\n },\n groupAllData: function (e, t) {\n if (r(e) || this.data && !this.data.length) return new ae([]);\n var n,\n i,\n a,\n o,\n s = e.field,\n l = e.skipItemSorting ? t : new ae(t).sort(s, e.dir || \"asc\", ne).toArray(),\n d = c.accessor(s),\n u = d.get(l[0], s),\n p = {\n field: s,\n value: u,\n items: []\n },\n h = [p];\n for (a = 0, o = l.length; a < o; a++) n = l[a], me(u, i = d.get(n, s)) || (p = {\n field: s,\n value: u = i,\n items: []\n }, h.push(p)), p.items.push(n);\n return new ae(h = this._sortGroups(h, e));\n },\n _sortForGrouping: function (e, t) {\n var n,\n i,\n a = this.data;\n if (!W) {\n for (n = 0, i = a.length; n < i; n++) a[n].__position = n;\n for (n = 0, i = (a = new ae(a).sort(e, t, ne).toArray()).length; n < i; n++) delete a[n].__position;\n return a;\n }\n return this.sort(e, t).toArray();\n },\n _sortGroups: function (e, t) {\n var n = e;\n return t && p(t.compare) && (n = new ae(n).order({\n compare: t.compare\n }, t.dir || \"asc\").toArray()), n;\n },\n aggregate: function (e) {\n var t,\n n,\n i = {},\n a = {};\n if (e && e.length) for (t = 0, n = this.data.length; t < n; t++) ge(i, e, this.data[t], t, n, a);\n return i;\n }\n };\n var ve = {\n sum: function (e, t, n) {\n var i = n.get(t);\n return _e(e) ? _e(i) && (e += i) : e = i, e;\n },\n count: function (e) {\n return (e || 0) + 1;\n },\n average: function (e, n, i, a, r, o) {\n var s = i.get(n);\n return o.count === t && (o.count = 0), _e(e) ? _e(s) && (e += s) : e = s, _e(s) && o.count++, a == r - 1 && _e(e) && (e /= o.count), e;\n },\n max: function (e, t, n) {\n var i = n.get(t);\n return _e(e) || be(e) || (e = i), e < i && (_e(i) || be(i)) && (e = i), e;\n },\n min: function (e, t, n) {\n var i = n.get(t);\n return _e(e) || be(e) || (e = i), e > i && (_e(i) || be(i)) && (e = i), e;\n }\n };\n function _e(e) {\n return \"number\" == typeof e && !isNaN(e);\n }\n function be(e) {\n return e && e.getTime;\n }\n function ke(e) {\n var t,\n n = e.length,\n i = new Array(n);\n for (t = 0; t < n; t++) i[t] = e[t].toJSON();\n return i;\n }\n ae.normalizeGroup = he, ae.normalizeSort = re, ae.process = function (e, a, s) {\n var l,\n d,\n u = (a = a || {}).group,\n c = function (e) {\n for (var t = o(e) ? e : [e], n = 0; n < t.length; n++) if (t[n] && p(t[n].compare)) return !0;\n return !1;\n }(he(u || [])),\n h = new ae(e),\n f = fe(u || []),\n m = re(a.sort || []),\n g = c ? m : f.concat(m),\n v = a.filterCallback,\n _ = a.filter,\n b = a.skip,\n k = a.take;\n return g && s && (h = h.sort(g, t, t, s)), _ && (h = h.filter(_), v && (h = v(h)), d = h.toArray().length), g && (s || (h = h.sort(g)), u && (e = h.toArray())), c ? (h = h.group(u, e, a), b === t || k === t || a.groupPaging || (h = new ae(ze(h.toArray())).range(b, k), l = n(f, function (e) {\n return i({}, e, {\n skipItemSorting: !0\n });\n }), h = h.group(l, e, a))) : (b !== t && k !== t && (b + k > (d = h.data.length) && a.virtual && (b = (b -= b + k - d) < 0 ? 0 : b), h = h.range(b, k)), !u || r(u) && 0 === u.length || (h = h.group(u, e, a))), {\n total: d,\n data: h.toArray()\n };\n };\n var we = f.extend({\n init: function (e) {\n this.data = e.data;\n },\n read: function (e) {\n e.success(this.data);\n },\n update: function (e) {\n e.success(e.data);\n },\n create: function (e) {\n e.success(e.data);\n },\n destroy: function (e) {\n e.success(e.data);\n }\n }),\n ye = f.extend({\n init: function (e) {\n var t,\n n = this;\n e = n.options = i({}, n.options, e), d(A, function (t, n) {\n typeof e[n] === m && (e[n] = {\n url: e[n]\n });\n }), n.cache = e.cache ? xe.create(e.cache) : {\n find: u,\n add: u\n }, t = e.parameterMap, e.submit && (n.submit = e.submit), p(e.push) && (n.push = e.push), n.push || (n.push = F), n.parameterMap = p(t) ? t : function (e) {\n var n = {};\n return d(e, function (e, i) {\n e in t && (e = t[e], a(e) && (i = e.value(i), e = e.key)), n[e] = i;\n }), n;\n };\n },\n options: {\n parameterMap: F\n },\n create: function (e) {\n return l(this.setup(e, v));\n },\n read: function (n) {\n var i,\n a,\n r = this.cache;\n n = this.setup(n, _), i = n.success || u, n.error, (a = r.find(n.data)) !== t ? i(a) : (n.success = function (e) {\n r.add(n.data, e), i(e);\n }, e.ajax(n));\n },\n update: function (e) {\n return l(this.setup(e, b));\n },\n destroy: function (e) {\n return l(this.setup(e, k));\n },\n setup: function (e, t) {\n e = e || {};\n var n,\n a = this.options[t],\n r = p(a.data) ? a.data(e.data) : a.data;\n return e = i(!0, {}, a, e), n = i(!0, {}, r, e.data), e.data = this.parameterMap(n, t), p(e.url) && (e.url = e.url(n)), e;\n }\n }),\n xe = f.extend({\n init: function () {\n this._store = {};\n },\n add: function (e, n) {\n e !== t && (this._store[P(e)] = n);\n },\n find: function (e) {\n return this._store[P(e)];\n },\n clear: function () {\n this._store = {};\n },\n remove: function (e) {\n delete this._store[P(e)];\n }\n });\n function Ce(e, t, n, i, a) {\n var r,\n o,\n s,\n l,\n d,\n u = {};\n for (l = 0, d = e.length; l < d; l++) for (o in r = e[l], t) (s = a[o]) && s !== o && (u[s] || (u[s] = c.setter(s)), u[s](r, t[o](r)), delete r[o]);\n }\n function Te(e, t, n, i, a) {\n var r, o, s, l, d;\n for (l = 0, d = e.length; l < d; l++) for (o in r = e[l], t) r[o] = n._parse(o, t[o](r)), (s = a[o]) && s !== o && delete r[s];\n }\n function Se(e, t, n, i, a) {\n var r, o, s, l;\n for (o = 0, l = e.length; o < l; o++) (s = i[(r = e[o]).field]) && s != r.field && (r.field = s), r.value = n._parse(r.field, r.value), r.items && (r.hasSubgroups ? Se(r.items, t, n, i, a) : Te(r.items, t, n, 0, a));\n }\n function Ie(e, t, n, i, a, r) {\n return function (o) {\n return o = e(o), De(t, n, i, a, r)(o);\n };\n }\n function De(e, t, n, i, a) {\n return function (o) {\n return o && !r(n) && (\"[object Array]\" === U.call(o) || o instanceof G || (o = [o]), t(o, n, new e(), i, a)), o || [];\n };\n }\n xe.create = function (e) {\n var t = {\n inmemory: function () {\n return new xe();\n }\n };\n return a(e) && p(e.find) ? e : !0 === e ? new xe() : t[e]();\n };\n var Ee = f.extend({\n init: function (e) {\n var t,\n n,\n i,\n r,\n o = this;\n for (t in e = e || {}) n = e[t], o[t] = typeof n === m ? z(n) : n;\n r = e.modelBase || ee, a(o.model) && (o.model = i = r.define(o.model));\n var s = o.data.bind(o);\n if (o._dataAccessFunction = s, o.model) {\n var l,\n u,\n c = o.groups.bind(o),\n p = o.serialize.bind(o),\n h = {},\n f = {},\n g = {},\n v = {},\n _ = !1;\n (i = o.model).fields && (d(i.fields, function (e, t) {\n var n;\n l = e, a(t) && t.field ? l = t.field : typeof t === m && (l = t), a(t) && t.from && (n = t.from), _ = _ || n && n !== e || l !== e, u = n || l, f[e] = -1 !== u.indexOf(\".\") ? z(u, !0) : z(u), g[e] = z(e), h[n || l] = e, v[e] = n || l;\n }), !e.serialize && _ && (o.serialize = Ie(p, i, Ce, g, h, v))), o._dataAccessFunction = s, o._wrapDataAccessBase = De(i, Te, f, h, v), o.data = Ie(s, i, Te, f, h, v), o.groups = Ie(c, i, Se, f, h, v);\n }\n },\n errors: function (e) {\n return e ? e.errors : null;\n },\n parse: F,\n data: F,\n total: function (e) {\n return e.length;\n },\n groups: F,\n aggregates: function () {\n return {};\n },\n serialize: function (e) {\n return e;\n }\n });\n function Ae(e, t) {\n var n, i;\n if (t.items && t.items.length) for (var a = 0; a < t.items.length; a++) n = e.items[e.items.length - 1], i = t.items[a], n && i ? n.hasSubgroups && n.value == i.value ? Ae(n, i) : n.field && n.value == i.value ? (n.items.omitChangeEvent = !0, n.items.push.apply(n.items, i.items), n.items.omitChangeEvent = !1) : (e.items.omitChangeEvent = !0, e.items.push.apply(e.items, [i]), e.items.omitChangeEvent = !1) : i && (e.items.omitChangeEvent = !0, e.items.push.apply(e.items, [i]), e.items.omitChangeEvent = !1);\n }\n function Fe(e, t, n, i) {\n for (var a, r, o = 0; t.length && i;) {\n var s = (r = (a = t[o]).items).length;\n if (e && e.field === a.field && e.value === a.value ? (e.hasSubgroups && e.items.length ? Fe(e.items[e.items.length - 1], a.items, n, i) : (r = r.slice(n, n + i), e.items = e.items.concat(r)), t.splice(o--, 1)) : a.hasSubgroups && r.length ? (Fe(a, r, n, i), a.items.length || t.splice(o--, 1)) : (r = r.slice(n, n + i), a.items = r, a.items.length || t.splice(o--, 1)), 0 === r.length ? n -= s : (n = 0, i -= r.length), ++o >= t.length) break;\n }\n o < t.length && t.splice(o, t.length - o);\n }\n function ze(e, t) {\n for (var n, i, a = [], r = (e || []).length, o = p(t) ? t : function (e, t) {\n return e[t];\n }, s = 0; s < r; s++) if ((n = o(e, s)).hasSubgroups) a = a.concat(ze(n.items));else {\n i = n.items;\n for (var l = 0; l < i.length; l++) a.push(o(i, l));\n }\n return a;\n }\n function Pe(e) {\n var t,\n n,\n i,\n a,\n r = [];\n for (t = 0, n = e.length; t < n; t++) {\n var o = e.at(t);\n if (o.items) if (o.hasSubgroups) r = r.concat(Pe(o.items));else for (i = o.items, a = 0; a < i.length; a++) r.push(i.at(a));\n }\n return r;\n }\n function He(e, t) {\n var n, i, a;\n if (t) for (n = 0, i = e.length; n < i; n++) (a = e.at(n)).items && (a.hasSubgroups ? He(a.items, t) : a.items = new K(a.items, t, a.items._events));\n }\n function Ne(e, t) {\n for (var n = 0; n < e.length; n++) if (e[n].hasSubgroups) {\n if (Ne(e[n].items, t)) return !0;\n } else if (t(e[n].items, e[n])) return !0;\n }\n function Re(e, t, n, i) {\n for (var a = 0; a < e.length && e[a].data !== t && !Oe(e[a].data, n, i); a++);\n }\n function Oe(e, t, n) {\n for (var i = 0, a = e.length; i < a; i++) {\n if (e[i] && e[i].hasSubgroups) return Oe(e[i].items, t, n);\n if (e[i] === t || e[i] === n) return e[i] = n, !0;\n }\n }\n function Me(e, n, i, a, r) {\n for (var o = 0, s = e.length; o < s; o++) {\n var l = e[o];\n if (l && !(l instanceof a)) if (l.hasSubgroups === t || r) {\n for (var d = 0; d < n.length; d++) if (n[d] === l) {\n e[o] = n.at(d), Re(i, n, l, e[o]);\n break;\n }\n } else Me(l.items, n, i, a, r);\n }\n }\n function Be(e, t) {\n return t ? Ve(e, function (e) {\n return e.uid && e.uid == t.uid || e[t.idField] === t.id && t.id !== t._defaultId;\n }) : -1;\n }\n function Le(e, t) {\n return t ? Ve(e, function (e) {\n return e.uid == t.uid;\n }) : -1;\n }\n function Ve(e, t) {\n var n, i;\n if (e) {\n for (n = 0, i = e.length; n < i; n++) if (t(e[n])) return n;\n return -1;\n }\n }\n function Ue(e, t) {\n if (e && !r(e)) {\n var n,\n i = e[t];\n return n = a(i) ? i.from || i.field || t : e[t] || t, p(n) ? t : n;\n }\n return t;\n }\n function We(e, t) {\n var n,\n i,\n a = {};\n for (var r in e) \"filters\" !== r && (a[r] = e[r]);\n if (e.filters) for (a.filters = [], n = 0, i = e.filters.length; n < i; n++) a.filters[n] = We(e.filters[n], t);else a.field = Ue(t.fields, a.field);\n return a;\n }\n function je(e, t) {\n var n,\n i,\n a,\n r,\n s = [];\n for (n = 0, i = e.length; n < i; n++) {\n for (var l in a = {}, r = e[n]) a[l] = r[l];\n a.field = Ue(t.fields, a.field), a.aggregates && o(a.aggregates) && (a.aggregates = je(a.aggregates, t)), s.push(a);\n }\n return s;\n }\n var qe = h.extend({\n init: function (e) {\n var n,\n a = this;\n if (e && (n = e.data), e = a.options = i({}, a.options, e), a._map = {}, a._prefetch = {}, a._data = [], a._pristineData = [], a._ranges = [], a._view = [], a._pristineTotal = 0, a._destroyed = [], a._pageSize = e.pageSize, a._page = e.page || (e.pageSize ? 1 : t), a._sort = re(e.sort), a._sortFields = oe(e.sort), a._filter = de(e.filter), a._group = he(e.group), a._aggregate = e.aggregate, a._total = e.total, a._groupPaging = e.groupPaging, a._groupPaging && (a._groupsState = {}), a._shouldDetachObservableParents = !0, h.fn.init.call(a), a.transport = Ge.create(e, n, a), p(a.transport.push) && a.transport.push({\n pushCreate: a._pushCreate.bind(a),\n pushUpdate: a._pushUpdate.bind(a),\n pushDestroy: a._pushDestroy.bind(a)\n }), null != e.offlineStorage) if (\"string\" == typeof e.offlineStorage) {\n var r = e.offlineStorage;\n a._storage = {\n getItem: function () {\n return JSON.parse(localStorage.getItem(r));\n },\n setItem: function (e) {\n localStorage.setItem(r, P(a.reader.serialize(e)));\n }\n };\n } else a._storage = e.offlineStorage;\n a.reader = new c.data.readers[e.schema.type || \"json\"](e.schema), a.reader.model, a._detachObservableParents(), a._data = a._observe(a._data), a._online = !0, a.bind([\"push\", C, w, T, y, I, S], e);\n },\n options: {\n data: null,\n schema: {\n modelBase: ee\n },\n offlineStorage: null,\n serverSorting: !1,\n serverPaging: !1,\n serverFiltering: !1,\n serverGrouping: !1,\n serverAggregates: !1,\n batch: !1,\n inPlaceSort: !1\n },\n clone: function () {\n return this;\n },\n online: function (n) {\n return n !== t ? this._online != n && (this._online = n, n) ? this.sync() : e.Deferred().resolve().promise() : this._online;\n },\n offlineData: function (e) {\n return null == this.options.offlineStorage ? null : e !== t ? this._storage.setItem(e) : this._storage.getItem() || [];\n },\n _isGrouped: function () {\n return (this.group() || []).length;\n },\n _isServerGrouped: function () {\n var e = this.group() || [];\n return this.options.serverGrouping && e.length;\n },\n _isServerGroupPaged: function () {\n return this._isServerGrouped() && this._groupPaging;\n },\n _isGroupPaged: function () {\n var e = this._group || [];\n return this._groupPaging && e.length;\n },\n _pushCreate: function (e) {\n this._push(e, \"pushCreate\");\n },\n _pushUpdate: function (e) {\n this._push(e, \"pushUpdate\");\n },\n _pushDestroy: function (e) {\n this._push(e, \"pushDestroy\");\n },\n _push: function (e, t) {\n var n = this._readData(e);\n n || (n = e), this[t](n);\n },\n _flatData: function (e, t) {\n if (e) {\n if (this._isServerGrouped()) return Pe(e);\n if (!t) for (var n = 0; n < e.length; n++) e.at(n);\n }\n return e;\n },\n parent: u,\n get: function (e) {\n var t,\n n,\n i = this._flatData(this._data, this.options.useRanges);\n for (t = 0, n = i.length; t < n; t++) if (i[t].id == e) return i[t];\n },\n getByUid: function (e) {\n return this._getByUid(e, this._data);\n },\n _getByUid: function (e, t) {\n var n,\n i,\n a = this._flatData(t, this.options.useRanges);\n if (a) for (n = 0, i = a.length; n < i; n++) if (a[n].uid == e) return a[n];\n },\n indexOf: function (e) {\n return Le(this._data, e);\n },\n at: function (e) {\n return this._data.at(e);\n },\n data: function (e) {\n var n = this;\n if (e === t) {\n if (n._data) for (var i = 0; i < n._data.length; i++) n._data.at(i);\n return n._data;\n }\n n._detachObservableParents(), n._data = this._observe(e), n._pristineData = e.slice(0), n._storeData(), n._ranges = [], n.trigger(\"reset\"), n._addRange(n._data), n._total = n._data.length, n._pristineTotal = n._total, n._process(n._data);\n },\n view: function (e) {\n if (e === t) return this._view;\n this._view = this._observeView(e);\n },\n _observeView: function (e) {\n var t = this;\n Me(e, t._data, t._ranges, t.reader.model || Q, t._isServerGrouped());\n var n = new K(e, t.reader.model);\n return n.parent = function () {\n return t.parent();\n }, n;\n },\n flatView: function () {\n return (this.group() || []).length ? Pe(this._view) : this._view;\n },\n add: function (e) {\n return this.insert(this._data.length, e);\n },\n _createNewModel: function (e) {\n return this.reader.model ? new this.reader.model(e) : e instanceof Q ? e : new Q(e);\n },\n insert: function (e, t) {\n return t || (t = e, e = 0), t instanceof ee || (t = this._createNewModel(t)), this._isServerGrouped() ? this._data.splice(e, 0, this._wrapInEmptyGroup(t)) : this._data.splice(e, 0, t), this._insertModelInRange(e, t), t;\n },\n pushInsert: function (t, n) {\n var i = this._getCurrentRangeSpan();\n n || (n = t, t = 0), o(n) || (n = [n]);\n var a = [],\n r = this.options.autoSync;\n this.options.autoSync = !1;\n try {\n for (var s = 0; s < n.length; s++) {\n var l = n[s],\n d = this.insert(t, l);\n a.push(d);\n var u = d.toJSON();\n this._isServerGrouped() && (u = this._wrapInEmptyGroup(u)), this._pristineData.push(u), i && i.length && e(i).last()[0].pristineData.push(u), t++;\n }\n } finally {\n this.options.autoSync = r;\n }\n a.length && this.trigger(\"push\", {\n type: \"create\",\n items: a\n });\n },\n pushCreate: function (e) {\n this.pushInsert(this._data.length, e);\n },\n pushUpdate: function (e) {\n o(e) || (e = [e]);\n for (var t = [], n = 0; n < e.length; n++) {\n var i = e[n],\n a = this._createNewModel(i),\n r = this.get(a.id);\n r ? (t.push(r), r.accept(i), r.trigger(w), this._updatePristineForModel(r, i)) : this.pushCreate(i);\n }\n t.length && this.trigger(\"push\", {\n type: \"update\",\n items: t\n });\n },\n pushDestroy: function (e) {\n var t = this._removeItems(e);\n t.length && this.trigger(\"push\", {\n type: \"destroy\",\n items: t\n });\n },\n _removeItems: function (e, t) {\n o(e) || (e = [e]);\n var n = void 0 === t || t,\n i = [],\n a = this.options.autoSync;\n this.options.autoSync = !1;\n try {\n for (var r = 0; r < e.length; r++) {\n var s = e[r],\n l = this._createNewModel(s),\n d = !1;\n this._eachItem(this._data, function (e) {\n for (var t = 0; t < e.length; t++) {\n var n = e.at(t);\n if (n.id === l.id) {\n i.push(n), e.splice(t, 1), d = !0;\n break;\n }\n }\n }), d && n && (this._removePristineForModel(l), this._destroyed.pop());\n }\n } finally {\n this.options.autoSync = a;\n }\n return i;\n },\n pushMove: function (e, t) {\n var n = this._moveItems(e, t);\n n.length && this.trigger(\"push\", {\n type: \"update\",\n items: n\n });\n },\n _moveItems: function (e, t) {\n o(t) || (t = [t]);\n var n = [],\n i = this.options.autoSync;\n this.options.autoSync = !1;\n try {\n for (var a = 0; a < t.length; a++) {\n var r = t[a],\n s = this._createNewModel(r);\n this._eachItem(this._data, function (t) {\n for (var i = 0; i < t.length; i++) {\n var a = t.at(i);\n if (a.id === s.id) {\n n.push(a), t.splice(e >= i ? --e : e, 0, t.splice(i, 1)[0]), e++;\n break;\n }\n }\n });\n }\n } finally {\n this.options.autoSync = i;\n }\n return n;\n },\n remove: function (e) {\n var t,\n n = this,\n i = n._isServerGrouped();\n return !i || !e.uid || e.isNew && e.isNew() || n._pushInDestroyed(e), this._eachItem(n._data, function (n) {\n if (t = function (e, t) {\n if (e) {\n var n,\n i,\n a = e.length;\n for (i = 0; i < a; i++) if ((n = e[i]).uid && n.uid == t.uid) return e.splice(i, 1), n;\n }\n }(n, e), t && i) return !0;\n }), this._removeModelFromRanges(e), e;\n },\n destroyed: function () {\n return this._destroyed;\n },\n created: function () {\n var e,\n t,\n n = [],\n i = this._flatData(this._data, this.options.useRanges);\n for (e = 0, t = i.length; e < t; e++) i[e].isNew && i[e].isNew() && n.push(i[e]);\n return n;\n },\n updated: function () {\n var e,\n t,\n n = [],\n i = this._flatData(this._data, this.options.useRanges);\n for (e = 0, t = i.length; e < t; e++) i[e].isNew && !i[e].isNew() && i[e].dirty && n.push(i[e]);\n return n;\n },\n sync: function () {\n var t = this,\n n = [],\n i = [],\n a = t._destroyed,\n r = e.Deferred().resolve().promise();\n if (t.online()) {\n if (!t.reader.model) return r;\n n = t.created(), i = t.updated();\n var o = [];\n t.options.batch && t.transport.submit ? o = t._sendSubmit(n, i, a) : (o.push.apply(o, t._send(\"create\", n)), o.push.apply(o, t._send(\"update\", i)), o.push.apply(o, t._send(\"destroy\", a))), r = e.when.apply(null, o).then(function () {\n var e,\n n,\n i = arguments;\n for (e = 0, n = arguments.length; e < n; e++) i[e] && t._accept(i[e]);\n t._storeData(!0), t._syncEnd(), t._change({\n action: \"sync\"\n }), t.trigger(y), t._isServerGroupPaged() && t.read();\n });\n } else t._storeData(!0), t._syncEnd(), t._change({\n action: \"sync\"\n });\n return r;\n },\n _syncEnd: u,\n cancelChanges: function (e) {\n var t = this;\n e instanceof c.data.Model ? t._cancelModel(e) : (t._destroyed = [], t._detachObservableParents(), t._data = t._observe(t._pristineData), t.options.serverPaging && (t._total = t._pristineTotal), t._ranges = [], t._addRange(t._data, 0), t._changesCanceled(), t._change(), t._markOfflineUpdatesAsDirty(), t._isServerGrouped() && t.read());\n },\n _changesCanceled: u,\n _markOfflineUpdatesAsDirty: function () {\n var e = this;\n null != e.options.offlineStorage && e._eachItem(e._data, function (e) {\n for (var t = 0; t < e.length; t++) {\n var n = e.at(t);\n \"update\" != n.__state__ && \"create\" != n.__state__ || (n.dirty = !0);\n }\n });\n },\n hasChanges: function () {\n var e,\n t,\n n = this._flatData(this._data, this.options.useRanges);\n if (this._destroyed.length) return !0;\n for (e = 0, t = n.length; e < t; e++) if (n[e].isNew && n[e].isNew() || n[e].dirty) return !0;\n return !1;\n },\n _accept: function (t) {\n var n,\n i = this,\n a = t.models,\n s = t.response,\n l = 0,\n d = i._isServerGrouped(),\n u = i._pristineData,\n c = t.type;\n if (i.trigger(I, {\n response: s,\n type: c\n }), s && !r(s)) {\n if (s = i.reader.parse(s), i._handleCustomErrors(s)) return;\n s = i.reader.data(s), o(s) || (s = [s]);\n } else s = e.map(a, function (e) {\n return e.toJSON();\n });\n for (\"destroy\" === c && (i._destroyed = []), l = 0, n = a.length; l < n; l++) \"destroy\" !== c ? (a[l].accept(s[l]), \"create\" === c ? u.push(d ? i._wrapInEmptyGroup(a[l].toJSON()) : s[l]) : \"update\" === c && i._updatePristineForModel(a[l], s[l])) : i._removePristineForModel(a[l]);\n },\n _updatePristineForModel: function (e, t) {\n this._executeOnPristineForModel(e, function (e, n) {\n c.deepExtend(n[e], t);\n });\n },\n _executeOnPristineForModel: function (e, t) {\n this._eachPristineItem(function (n) {\n var i = Be(n, e);\n if (i > -1) return t(i, n), !0;\n });\n },\n _removePristineForModel: function (e) {\n this._executeOnPristineForModel(e, function (e, t) {\n t.splice(e, 1);\n });\n },\n _readData: function (e) {\n return (this._isServerGrouped() ? this.reader.groups : this.reader.data).call(this.reader, e);\n },\n _eachPristineItem: function (e) {\n var t = this,\n n = t.options,\n i = t._getCurrentRangeSpan();\n t._eachItem(t._pristineData, e), n.serverPaging && n.useRanges && d(i, function (n, i) {\n t._eachItem(i.pristineData, e);\n });\n },\n _eachItem: function (e, t) {\n e && e.length && (this._isServerGrouped() ? Ne(e, t) : t(e));\n },\n _pristineForModel: function (e) {\n var t, n;\n return this._eachPristineItem(function (i) {\n if ((n = Be(i, e)) > -1) return t = i[n], !0;\n }), t;\n },\n _cancelModel: function (e) {\n var t = this,\n n = this._pristineForModel(e);\n this._eachItem(this._data, function (i) {\n var a = Le(i, e);\n a >= 0 && (!n || e.isNew() && !n.__state__ ? (t._modelCanceled(e), i.splice(a, 1), t._removeModelFromRanges(e)) : (i[a].accept(n), \"update\" == n.__state__ && (i[a].dirty = !0)));\n });\n },\n _modelCanceled: u,\n _submit: function (t, n) {\n var a = this;\n a.trigger(T, {\n type: \"submit\"\n }), a.trigger(S), a.transport.submit(i({\n success: function (n, i) {\n var a = e.grep(t, function (e) {\n return e.type == i;\n })[0];\n a && a.resolve({\n response: n,\n models: a.models,\n type: i\n });\n },\n error: function (e, n, i) {\n for (var r = 0; r < t.length; r++) t[r].reject(e);\n a.error(e, n, i);\n }\n }, n));\n },\n _sendSubmit: function (t, n, i) {\n var a = this,\n r = [];\n return a.options.batch && (t.length && r.push(e.Deferred(function (e) {\n e.type = \"create\", e.models = t;\n })), n.length && r.push(e.Deferred(function (e) {\n e.type = \"update\", e.models = n;\n })), i.length && r.push(e.Deferred(function (e) {\n e.type = \"destroy\", e.models = i;\n })), a._submit(r, {\n data: {\n created: a.reader.serialize(ke(t)),\n updated: a.reader.serialize(ke(n)),\n destroyed: a.reader.serialize(ke(i))\n }\n })), r;\n },\n _promise: function (t, n, a) {\n var r = this;\n return e.Deferred(function (e) {\n r.trigger(T, {\n type: a\n }), r.trigger(S), r.transport[a].call(r.transport, i({\n success: function (t) {\n e.resolve({\n response: t,\n models: n,\n type: a\n });\n },\n error: function (t, n, i) {\n e.reject(t), r.error(t, n, i);\n }\n }, t));\n }).promise();\n },\n _send: function (e, t) {\n var n,\n i,\n a = this,\n r = [],\n o = a.reader.serialize(ke(t));\n if (a.options.batch) t.length && r.push(a._promise({\n data: {\n models: o\n }\n }, t, e));else for (n = 0, i = t.length; n < i; n++) r.push(a._promise({\n data: o[n]\n }, [t[n]], e));\n return r;\n },\n read: function (t) {\n var n = this,\n i = n._params(t),\n a = e.Deferred();\n return n._queueRequest(i, function () {\n var e = n.trigger(T, {\n type: \"read\"\n });\n e ? (n._dequeueRequest(), a.resolve(e)) : (n.trigger(S), n._ranges = [], n.trigger(\"reset\"), n.online() ? n.transport.read({\n data: i,\n success: function (e) {\n n._ranges = [], n.success(e, i), a.resolve();\n },\n error: function () {\n var e = L.call(arguments);\n n.error.apply(n, e), a.reject.apply(a, e);\n }\n }) : null != n.options.offlineStorage && (n.success(n.offlineData(), i), a.resolve()));\n }), a.promise();\n },\n _readAggregates: function (e) {\n return this.reader.aggregates(e);\n },\n success: function (e) {\n var t,\n n,\n i = this,\n a = i.options;\n if (i.trigger(I, {\n response: e,\n type: \"read\"\n }), i.online()) {\n if (e = i.reader.parse(e), i._handleCustomErrors(e)) return void i._dequeueRequest();\n i._total = i.reader.total(e), i._isServerGroupPaged() && (i._serverGroupsTotal = i._total), i._pageSize > i._total && (i._pageSize = i._total, i.options.pageSize && i.options.pageSize > i._pageSize && (i._pageSize = i.options.pageSize)), i._aggregate && a.serverAggregates && (i._aggregateResult = i._readAggregates(e)), e = i._readData(e), i._destroyed = [];\n } else {\n e = i._readData(e), t = [];\n var r,\n o = {},\n s = i.reader.model,\n l = s ? s.idField : \"id\";\n for (r = 0; r < this._destroyed.length; r++) {\n var d = this._destroyed[r][l];\n o[d] = d;\n }\n for (r = 0; r < e.length; r++) {\n var u = e[r];\n \"destroy\" == u.__state__ ? o[u[l]] || this._pushInDestroyed(this._createNewModel(u)) : t.push(u);\n }\n e = t, i._total = e.length;\n }\n if (i._pristineTotal = i._total, n = i._skip && i._data.length && i._skip < i._data.length, i.options.endless) {\n n && i._pristineData.splice(i._skip, i._pristineData.length), t = e.slice(0);\n for (var c = 0; c < t.length; c++) i._pristineData.push(t[c]);\n } else i._pristineData = e.slice(0);\n if (i._detachObservableParents(), i.options.endless) {\n i._data.unbind(w, i._changeHandler), i._isServerGrouped() && i._data[i._data.length - 1].value === e[0].value && (Ae(i._data[i._data.length - 1], e[0]), e.shift()), e = i._observe(e), n && i._data.splice(i._skip, i._data.length);\n for (var p = 0; p < e.length; p++) i._data.push(e[p]);\n i._data.bind(w, i._changeHandler);\n } else i._data = i._observe(e);\n i._markOfflineUpdatesAsDirty(), i._storeData(), i._addRange(i._data), i._process(i._data), i._dequeueRequest();\n },\n _detachObservableParents: function () {\n if (this._data && this._shouldDetachObservableParents) for (var e = 0; e < this._data.length; e++) this._data[e].parent && (this._data[e].parent = u);\n },\n _storeData: function (e) {\n var t = this._isServerGrouped(),\n n = this.reader.model;\n if (null != this.options.offlineStorage) {\n for (var i = function e(i) {\n for (var a = [], r = 0; r < i.length; r++) {\n var o = i.at(r),\n s = o.toJSON();\n t && o.items ? s.items = e(o.items) : (s.uid = o.uid, n && (o.isNew() ? s.__state__ = \"create\" : o.dirty && (s.__state__ = \"update\"))), a.push(s);\n }\n return a;\n }(this._data), a = [], r = 0; r < this._destroyed.length; r++) {\n var o = this._destroyed[r].toJSON();\n o.__state__ = \"destroy\", a.push(o);\n }\n this.offlineData(i.concat(a)), e && (this._pristineData = this.reader.reader ? this.reader.reader._wrapDataAccessBase(i) : this.reader._wrapDataAccessBase(i));\n }\n },\n _addRange: function (e, t) {\n var n,\n i = this,\n a = void 0 !== t ? t : i._skip || 0,\n r = {\n data: e,\n pristineData: e.toJSON(),\n timestamp: i._timeStamp()\n };\n this._isGroupPaged() ? (n = a + e.length, r.outerStart = a, r.outerEnd = n) : n = a + i._flatData(e, !0).length, r.start = a, r.end = n, i._ranges.push(r), i._sortRanges(), i._isGroupPaged() && (i._groupsFlat || (i._groupsFlat = []), i._appendToGroupsFlat(r.data), i._updateOuterRangesLength());\n },\n _appendToGroupsFlat: function (e) {\n for (var t = e.length, n = 0; n < t; n++) this._groupsFlat.push(e[n]);\n },\n _getGroupByUid: function (e) {\n for (var t, n = this._groupsFlat.length, i = 0; i < n; i++) if ((t = this._groupsFlat[i]).uid === e) return t;\n },\n _sortRanges: function () {\n this._ranges.sort(function (e, t) {\n return e.start - t.start;\n });\n },\n error: function (e, t, n) {\n this._dequeueRequest(), this.trigger(I, {}), this.trigger(C, {\n xhr: e,\n status: t,\n errorThrown: n\n });\n },\n _params: function (e) {\n var t = this,\n n = i({\n take: t.take(),\n skip: t.skip(),\n page: t.page(),\n pageSize: t.pageSize(),\n sort: t._sort,\n filter: t._filter,\n group: t._group,\n aggregate: t._aggregate,\n groupPaging: !!t._groupPaging\n }, e);\n return t.options.serverPaging || (delete n.take, delete n.skip, delete n.page, delete n.pageSize), t.options.serverGrouping ? t.reader.model && n.group && (n.group = je(n.group, t.reader.model)) : delete n.group, t.options.serverFiltering ? t.reader.model && n.filter && (n.filter = We(n.filter, t.reader.model)) : delete n.filter, t.options.serverSorting ? t.reader.model && n.sort && (n.sort = je(n.sort, t.reader.model)) : delete n.sort, t.options.serverAggregates ? t.reader.model && n.aggregate && (n.aggregate = je(n.aggregate, t.reader.model)) : delete n.aggregate, t.options.groupPaging || delete n.groupPaging, n;\n },\n _queueRequest: function (e, n) {\n var i = this;\n i._requestInProgress ? i._pending = {\n callback: n.bind(i),\n options: e\n } : (i._requestInProgress = !0, i._pending = t, n());\n },\n _dequeueRequest: function () {\n var e = this;\n e._requestInProgress = !1, e._pending && e._queueRequest(e._pending.options, e._pending.callback);\n },\n _handleCustomErrors: function (e) {\n if (this.reader.errors) {\n var t = this.reader.errors(e);\n if (t) return this.trigger(C, {\n xhr: null,\n status: \"customerror\",\n errorThrown: \"custom error\",\n errors: t\n }), !0;\n }\n return !1;\n },\n _shouldWrap: function (e) {\n var t = this.reader.model;\n return !(!t || !e.length) && !(e[0] instanceof t);\n },\n _observe: function (e) {\n var t = this,\n n = t.reader.model;\n (t._shouldDetachObservableParents = !0, e instanceof G) ? (t._shouldDetachObservableParents = !1, t._shouldWrap(e) && (e.type = t.reader.model, e.wrapAll(e, e))) : (e = new (t.pageSize() && !t.options.serverPaging ? K : G)(e, t.reader.model)).parent = function () {\n return t.parent();\n };\n return t._isServerGrouped() && He(e, n), !(t._changeHandler && t._data && t._data instanceof G) || t.options.useRanges && t.options.serverPaging ? t._changeHandler = t._change.bind(t) : t._data.unbind(w, t._changeHandler), e.bind(w, t._changeHandler);\n },\n _updateTotalForAction: function (e, t) {\n var n = this,\n i = parseInt(n._total, 10);\n _e(n._total) || (i = parseInt(n._pristineTotal, 10)), \"add\" === e ? i += t.length : \"remove\" === e ? i -= t.length : \"itemchange\" === e || \"sync\" === e || n.options.serverPaging ? \"sync\" === e && (i = n._pristineTotal = parseInt(n._total, 10)) : i = n._pristineTotal, n._total = i;\n },\n _pushInDestroyed: function (e) {\n this._destroyed.find(function (t) {\n return t.uid === e.uid;\n }) || this._destroyed.push(e);\n },\n _change: function (e) {\n var t,\n n,\n i = this,\n a = e ? e.action : \"\";\n if (\"remove\" === a) for (t = 0, n = e.items.length; t < n; t++) e.items[t].isNew && e.items[t].isNew() || i._pushInDestroyed(e.items[t]);\n if (!i.options.autoSync || \"add\" !== a && \"remove\" !== a && \"itemchange\" !== a) i._updateTotalForAction(a, e ? e.items : []), i._process(i._data, e);else {\n var r = function (t) {\n \"sync\" === t.action && (i.unbind(\"change\", r), i._updateTotalForAction(a, e.items));\n };\n i.first(\"change\", r), i.sync();\n }\n },\n _calculateAggregates: function (e, t) {\n t = t || {};\n var n = new ae(e),\n i = t.aggregate,\n a = t.filter;\n return a && (n = n.filter(a)), n.aggregate(i);\n },\n _process: function (e, n) {\n var i,\n a = this,\n r = {};\n if (!0 !== a.options.serverPaging && (r.skip = a._skip, r.take = a._take || a._pageSize, r.skip === t && a._page !== t && a._pageSize !== t && (r.skip = (a._page - 1) * a._pageSize), a.options.useRanges && (r.skip = a.currentRangeStart())), !0 !== a.options.serverSorting && (r.sort = a._sort), !0 !== a.options.serverFiltering && (r.filter = a._filter), !0 !== a.options.serverGrouping && (r.group = a._group), !0 !== a.options.serverAggregates && (r.aggregate = a._aggregate), a.options.serverGrouping && a._clearEmptyGroups(e), r.groupPaging = a._groupPaging, i = a._isGroupPaged() && n && (\"page\" === n.action || \"expandGroup\" === n.action || \"collapseGroup\" === n.action) ? a._queryProcess(e, {\n aggregate: a._aggregate\n }) : a._queryProcess(e, r), a._filter && n && \"add\" === n.action) {\n var o = n.items[0];\n i.data.find(function (e) {\n return e.uid === o.uid;\n }) || (i.data.splice(o.index, 0, a._isGrouped() ? a._wrapInEmptyGroup(o) : o), i.total++);\n }\n !0 !== a.options.serverAggregates && (a._aggregateResult = a._calculateAggregates(i.dataToAggregate || e, r)), a._setView(i, r, n), a._setFilterTotal(i.total, !1), (n = n || {}).items = n.items || a._view, a.trigger(w, n);\n },\n _setView: function (e, t, n) {\n var i = this;\n if (i._isGroupPaged() && !i._isServerGrouped()) {\n if (!n || \"page\" !== n.action && \"expandGroup\" !== n.action && \"collapseGroup\" !== n.action) {\n i._ranges = [];\n var a = new ae(e.data);\n i._addRange(i._observe(e.data)), t.skip + t.take > e.data.length && (t.skip = e.data.length - t.take), i.view(a.range(t.skip, t.take).toArray());\n } else i.view(e.data), i._updateOuterRangesLength();\n } else i.view(e.data);\n },\n _clearEmptyGroups: function (e) {\n for (var t = e.length - 1; t >= 0; t--) {\n var n = e[t];\n n.hasSubgroups && this._clearEmptyGroups(n.items), !n.items || n.items.length || n.itemCount || M.apply(n.parent(), [t, 1]);\n }\n },\n _queryProcess: function (e, t) {\n return this.options.inPlaceSort ? ae.process(e, t, this.options.inPlaceSort) : ae.process(e, t);\n },\n _mergeState: function (n) {\n var i,\n a = this;\n return n !== t && (a._pageSize = n.pageSize, a._page = n.page, a._sort = n.sort, a._filter = n.filter, a._group = n.group, a._aggregate = n.aggregate, a._skip = a._currentRangeStart = n.skip, a._take = n.take, a._skip === t && (a._skip = a._currentRangeStart = a.skip(), n.skip = a.skip()), a._take === t && a._pageSize !== t && (a._take = a._pageSize, n.take = a._take), a.options.virtual && (n.virtual = a.options.virtual), n.sort && (a._sort = n.sort = re(n.sort), a._sortFields = oe(n.sort)), n.filter && (a._filter = n.filter = a.options.accentFoldingFiltering && !e.isEmptyObject(n.filter) ? e.extend({}, de(n.filter), {\n accentFoldingFiltering: a.options.accentFoldingFiltering\n }) : de(n.filter)), n.group && (a._group = n.group = he(n.group)), n.aggregate && (a._aggregate = n.aggregate = (i = n.aggregate, o(i) ? i : [i]))), n;\n },\n query: function (n) {\n var i;\n if (this.options.serverSorting || this.options.serverPaging || this.options.serverFiltering || this.options.serverGrouping || this.options.serverAggregates || (this._data === t || 0 === this._data.length) && !this._destroyed.length) {\n if (this.options.endless) {\n var a = n.pageSize - this.pageSize();\n a > 0 ? (a = this.pageSize(), n.page = n.pageSize / a, n.pageSize = a) : (n.page = 1, this.options.endless = !1);\n }\n return this.read(this._mergeState(n));\n }\n var r = this.trigger(T, {\n type: \"read\"\n });\n return r || (this.trigger(S), n && (n.groupPaging = this._groupPaging), i = this._queryProcess(this._data, this._mergeState(n)), this._setFilterTotal(i.total, !0), this._aggregateResult = this._calculateAggregates(i.dataToAggregate || this._data, n), this._setView(i, n), this.trigger(I, {\n type: \"read\"\n }), this.trigger(w, {\n items: i.data,\n action: n ? n.action : \"\"\n })), e.Deferred().resolve(r).promise();\n },\n _hasExpandedSubGroups: function (e) {\n var t = !1,\n n = e.items ? e.items.length : 0;\n if (!e.hasSubgroups) return !1;\n for (var i = 0; i < n; i++) if (this._groupsState[e.items[i].uid]) {\n t = !0;\n break;\n }\n return t;\n },\n _findGroupedRange: function (e, t, n, i, a) {\n for (var r, o, s, l, d, u = this, c = e.length, p = 0; p < c && (r = e[p], !(n.taken >= n.take)); p++) if (u._getGroupByUid(r.uid) || u._groupsFlat.push(r), u._groupsState[r.uid]) {\n if (u._isServerGroupPaged()) {\n if (u._fetchGroupItems(r, n, i, a)) return void (u._fetchingGroupItems = !0);\n if (l = (r.subgroupCount || r.itemCount) + 1, d = n.skip - n.skipped, !u._hasExpandedSubGroups(r) && d > l) {\n n.skipped += l;\n continue;\n }\n }\n if (n.includeParents && n.skipped < n.skip ? (n.skipped++, r.excludeHeader = !0) : n.includeParents && (n.taken++, r.excludeHeader = !1), r.hasSubgroups && r.items && r.items.length) r.currentItems = [], i || (i = []), i.push(r), u._findGroupedRange(r.items, r.currentItems, n, i, a), i.pop(), r.currentItems.length || n.taken > 0 ? t.push(r) : r.excludeHeader = !1;else {\n o = [], s = r.items.length;\n for (var h = 0; h < s; h++) if (n.skipped < n.skip) n.skipped++;else {\n if (n.taken >= n.take) break;\n o.push(r.items[h]), n.taken++;\n }\n o.length || n.taken > 0 ? (r.currentItems = o, t.push(r)) : r.excludeHeader = !1;\n }\n } else {\n if (n.skipped < n.skip) {\n n.skipped++;\n continue;\n }\n t.push(r), n.taken++;\n }\n },\n _expandedSubGroupItemsCount: function (e, t, n) {\n var i,\n a,\n r = this,\n o = 0,\n s = \"number\" == typeof t,\n l = s ? t : e.subgroupCount;\n if (!e.hasSubgroups) return o;\n for (var d = 0; d < l && (i = e.items[d]); d++) if (i.hasSubgroups && r._groupsState[e.uid] ? (o += a = r._expandedSubGroupItemsCount(i, l, !0), s && (l -= a)) : !i.hasSubgroups && r._groupsState[i.uid] && (o += a = i.items ? i.items.length : 0, s && (l -= a)), n && (o += 1, s && (l -= 1)), s && o > l) return o;\n return o;\n },\n _fetchGroupItems: function (e, t, n, i) {\n var a,\n r,\n o,\n s,\n l = this,\n d = e.hasSubgroups ? e.subgroupCount : e.itemCount,\n u = t.take,\n c = t.skipped,\n p = l.take();\n return t.includeParents && (c < t.skip ? c += 1 : u -= 1), !e.items || e.items && !e.items.length ? (l.getGroupItems(e, t, n, i, 0), !0) : (s = this._expandedSubGroupItemsCount(e, t.skip - c), !((a = Math.max(t.skip - (c + s), 0)) >= d) && (r = e.items[a], o = e.items[Math.min(a + u, d - 1)], r.notFetched ? (l.getGroupItems(e, t, n, i, H.max(H.floor(a / p), 0) * p, H.round((a + p) / p)), !0) : o.notFetched ? (l.getGroupItems(e, t, n, i, H.max(H.floor((a + p) / p), 0) * p, H.round((a + p) / p)), !0) : void 0));\n },\n getGroupItems: function (e, t, n, i, a, r) {\n var o,\n s,\n l,\n d,\n u = this;\n e.items || (e.items = []), o = u.take(), s = this._composeItemsFilter(e, n), l = {\n page: r || 1,\n pageSize: o,\n skip: a,\n take: o,\n filter: s,\n aggregate: u._aggregate,\n sort: u._sort\n }, (d = u.findSubgroups(e)) && d.length && (l.group = d, l.groupPaging = !0), clearTimeout(u._timeout), u._timeout = setTimeout(function () {\n u._queueRequest(l, function () {\n u.trigger(T, {\n type: \"read\"\n }) ? u._dequeueRequest() : u.transport.read({\n data: l,\n success: u._groupItemsSuccessHandler(e, t.skip, u.take(), i, a),\n error: function () {\n var e = L.call(arguments);\n u.error.apply(u, e);\n }\n });\n });\n }, 100);\n },\n _groupItemsSuccessHandler: function (e, t, n, i, a) {\n var r = this,\n o = r._timeStamp();\n i = p(i) ? i : u;\n var s = r.options.schema && r.options.schema.total ? r.options.schema.total : \"Total\";\n return function (l) {\n var d,\n u,\n c = ee.define(r.options.schema.model);\n r._dequeueRequest(), r.trigger(I, {\n response: l,\n type: \"read\"\n }), u = p(s) ? s(l) : l[s], l = r.reader.parse(l), e.hasSubgroups ? (d = r.reader.groups(l), e.subgroupCount = u) : d = (d = r.reader.data(l)).map(function (e) {\n return new c(e);\n }), e.items.omitChangeEvent = !0;\n for (var h = 0; h < u; h++) h >= a && h < a + n ? e.items.splice(h, 1, d[h - a]) : e.items[h] || e.items.splice(h, 0, {\n notFetched: !0\n });\n e.items.omitChangeEvent = !1, r._updateRangePristineData(e), r._fetchingGroupItems = !1, e.countAdded || (r._serverGroupsTotal += u, e.countAdded = !0), r.range(t, n, i, \"expandGroup\"), (o >= r._currentRequestTimeStamp || !r._skipRequestsInProgress) && r.trigger(w, {});\n };\n },\n findSubgroups: function (e) {\n var t = this._group.map(function (e) {\n return e.field;\n }).indexOf(e.field);\n return this._group.slice(t + 1, this._group.length);\n },\n _composeItemsFilter: function (e, t) {\n var n = this.filter() || {\n logic: \"and\",\n filters: []\n };\n if (n.logic = \"and\", (n = i(!0, {}, n)).filters.push({\n field: e.field,\n operator: \"eq\",\n value: e.value\n }), t) for (var a = 0; a < t.length; a++) n.filters.push({\n field: t[a].field,\n operator: \"eq\",\n value: t[a].value\n });\n return n;\n },\n _updateRangePristineData: function (e) {\n for (var t, n, i, a, r, o = this, s = o._ranges, l = s.length, d = 0; d < l; d++) {\n a = (i = s[d]).data.length, r = [], t = null;\n for (var u = 0; u < a && (n = i.data[u], r.push(u), !(n.uid === e.uid || n.hasSubgroups && n.items.length && o._containsSubGroup(n, e, r))); u++) r.pop();\n if (r.length) {\n for (t = s[d].pristineData; r.length > 1;) t = t[r.splice(0, 1)[0]].items;\n t[r[0]] = o._cloneGroup(e);\n break;\n }\n }\n },\n _containsSubGroup: function (e, t, n) {\n var i,\n a = e.items.length;\n if (e.hasSubgroups && a) for (var r = 0; r < a; r++) {\n if (i = e.items[r], n.push(r), i.uid === t.uid || i.hasSubgroups && i.items.length && this._containsSubGroup(i, t, n)) return !0;\n n.pop();\n }\n },\n _cloneGroup: function (e) {\n var t = this;\n return (e = \"function\" == typeof e.toJSON ? e.toJSON() : e).items && e.items.length && (e.items = e.items.map(function (e) {\n return t._cloneGroup(e);\n })), e;\n },\n _setFilterTotal: function (e, n) {\n var i = this;\n i.options.serverFiltering || (e !== t ? i._total = e : n && (i._total = i._data.length));\n },\n fetch: function (e) {\n var t = this;\n return this._query().done(function (n) {\n !0 !== n && p(e) && e.call(t);\n });\n },\n _query: function (e) {\n var t = this;\n return t.query(i({}, {\n page: t.page(),\n pageSize: t.pageSize(),\n sort: t.sort(),\n filter: t.filter(),\n group: t.group(),\n aggregate: t.aggregate()\n }, e));\n },\n next: function (e) {\n var t = this,\n n = t.page(),\n i = t.total();\n if (e = e || {}, n && !(i && n + 1 > t.totalPages())) return t._skip = t._currentRangeStart = n * t.take(), n += 1, e.page = n, t._query(e), n;\n },\n prev: function (e) {\n var t = this,\n n = t.page();\n if (e = e || {}, n && 1 !== n) return t._skip = t._currentRangeStart = t._skip - t.take(), n -= 1, e.page = n, t._query(e), n;\n },\n page: function (e) {\n var n,\n i = this;\n if (e !== t) {\n e = H.max(H.min(H.max(e, 1), i.totalPages()), 1);\n var a = i.take();\n return i._isGroupPaged() ? (e -= 1, void i.range(e * a, a, null, \"page\")) : void i._query(i._pageableQueryOptions({\n page: e\n }));\n }\n return (n = i.skip()) !== t ? H.round((n || 0) / (i.take() || 1)) + 1 : t;\n },\n pageSize: function (e) {\n var n = this;\n if (e === t) return n.take();\n n._query(n._pageableQueryOptions({\n pageSize: e,\n page: 1\n }));\n },\n sort: function (e) {\n var n = this;\n return e !== t ? (n.trigger(\"sort\"), void n._query({\n sort: e\n })) : n._sort;\n },\n filter: function (e) {\n var n = this;\n if (e === t) return n._filter;\n n.trigger(\"reset\"), n._query({\n filter: e,\n page: 1\n });\n },\n group: function (e) {\n var n = this,\n i = {\n group: e\n };\n if (n._groupPaging && (e === t || e && e.length || (n._ranges = []), i.page = 1), e === t) return n._group;\n n._query(i);\n },\n getGroupsFlat: function (e) {\n var t,\n n,\n i = [];\n for (t = 0, n = e.length; t < n; t++) {\n var a = e[t];\n a.hasSubgroups && (i = i.concat(this.getGroupsFlat(a.items))), i.push(a);\n }\n return i;\n },\n total: function () {\n return parseInt(this._total || 0, 10);\n },\n groupsTotal: function (e) {\n var t = this;\n return t._group.length ? t._isServerGrouped() ? (t._serverGroupsTotal || (t._serverGroupsTotal = t.total()), t._serverGroupsTotal) : t._calculateGroupsTotal(t._ranges.length ? t._ranges[0].data : [], e) : t.total();\n },\n _calculateGroupsTotal: function (e, t, n, i) {\n var a,\n r,\n o = this;\n if (n = n || \"items\", o._group.length && e) {\n a = 0, r = e.length;\n for (var s = 0; s < r; s++) a += o.groupCount(e[s], t, n, i);\n return o._groupsTotal = a, a;\n }\n return o._groupsTotal = o._data.length, o._groupsTotal;\n },\n groupCount: function (e, t, n, i) {\n var a = this,\n r = 0;\n return e.hasSubgroups && a._groupsState[e.uid] ? ((t && !e.excludeHeader || i) && (r += 1), e[n].forEach(function (e) {\n r += a.groupCount(e, t, n, i);\n })) : a._groupsState[e.uid] ? ((t && !e.excludeHeader || i) && r++, r += e[n] ? e[n].length : 0) : r++, r;\n },\n countGroupRange: function (e) {\n for (var t = 0, n = e.length, i = 0; i < n; i++) t += this.groupCount(e[i], !0);\n return t;\n },\n aggregate: function (e) {\n if (e === t) return this._aggregate;\n this._query({\n aggregate: e\n });\n },\n aggregates: function () {\n var e = this._aggregateResult;\n return r(e) && (e = this._emptyAggregates(this.aggregate())), e;\n },\n _emptyAggregates: function (e) {\n var t = {};\n if (!r(e)) {\n var n = {};\n o(e) || (e = [e]);\n for (var i = 0; i < e.length; i++) n[e[i].aggregate] = 0, t[e[i].field] = n;\n }\n return t;\n },\n _pageableQueryOptions: function (e) {\n return e;\n },\n _wrapInEmptyGroup: function (e) {\n var t,\n n,\n i,\n a = this.group();\n for (i = a.length - 1, 0; i >= 0; i--) n = a[i], t = {\n value: e.get ? e.get(n.field) : e[n.field],\n field: n.field,\n items: t ? [t] : [e],\n hasSubgroups: !!t,\n aggregates: this._emptyAggregates(n.aggregates)\n };\n return t;\n },\n totalPages: function () {\n var e = this,\n t = e.pageSize() || e.total(),\n n = e._isGroupPaged() ? e.groupsTotal(!0) : e.total();\n return H.ceil((n || 0) / t);\n },\n inRange: function (e, t) {\n var n = this,\n i = H.min(e + t, n.total());\n return !n.options.serverPaging && n._data.length > 0 || n._findRange(e, i).length > 0;\n },\n lastRange: function () {\n var e = this._ranges;\n return e[e.length - 1] || {\n start: 0,\n end: 0,\n data: []\n };\n },\n firstItemUid: function () {\n var e = this._ranges;\n return e.length && e[0].data.length && e[0].data[0].uid;\n },\n enableRequestsInProgress: function () {\n this._skipRequestsInProgress = !1;\n },\n _timeStamp: function () {\n return new Date().getTime();\n },\n range: function (e, n, i, a) {\n this._currentRequestTimeStamp = this._timeStamp(), this._skipRequestsInProgress = !0;\n var r = this._isGroupPaged() ? this.groupsTotal(!0) : this.total();\n \"expandGroup\" !== a && \"collapseGroup\" !== a || this._updateOuterRangesLength(), e = H.min(e || 0, r), i = p(i) ? i : u;\n var o,\n s = this,\n l = H.max(H.floor(e / n), 0) * n,\n d = H.min(l + n, r);\n if (((o = s._findRange(e, H.min(e + n, r), i)).length || 0 === r) && !s._fetchingGroupItems) return s._processRangeData(o, e, n, s._originalPageSkip || l, s._originalSize || d, {\n action: a\n }), s._originalPageSkip = null, s._originalSize = null, void i();\n s._isGroupPaged() && (s._originalPageSkip = l, s._originalSize = d, l = H.max(H.floor(s._adjustPageSkip(e, n) / n), 0) * n, d = H.min(l + n, r)), n === t || s._fetchingGroupItems || (s._isGroupPaged() && !s._groupRangeExists(l, n) || !s._rangeExists(l, d) ? s.prefetch(l, n, function () {\n e > l && d < s.total() && !s._rangeExists(d, H.min(d + n, s.total())) ? s.prefetch(d, n, function () {\n s.range(e, n, i);\n }) : s.range(e, n, i);\n }) : l < e && s.prefetch(d, n, function () {\n s.range(e, n, i);\n }));\n },\n _findRange: function (e, n, i) {\n var a,\n r,\n o,\n s,\n l,\n d,\n u,\n c,\n p,\n h,\n f,\n m,\n g = this,\n v = g._ranges,\n _ = [],\n b = g.options,\n k = b.serverSorting || b.serverPaging || b.serverFiltering || b.serverGrouping || b.serverAggregates,\n w = {\n take: n - e,\n skip: e,\n skipped: 0,\n taken: 0,\n includeParents: !0\n },\n y = g._isGroupPaged(),\n x = y ? \"outerStart\" : \"start\",\n C = y ? \"outerEnd\" : \"end\";\n for (r = 0, f = v.length; r < f; r++) {\n if (a = v[r], y) {\n if (a.outerStart >= n) return [];\n if (e > a.outerEnd) {\n w.skipped += a.outerEnd - (m || 0), m = a.outerEnd;\n continue;\n }\n if (void 0 !== m && m != a.outerStart && (w.skipped += a.outerStart - m), w.skipped > w.skip) return [];\n for (void 0 === m && e > 0 && a.start > 0 && (w.skipped = a.outerStart), o = r;;) {\n if (this._findGroupedRange(a.data, _, w, null, i), g._calculateGroupsTotal(_, !0, \"currentItems\") >= w.take) return _;\n if (g._fetchingGroupItems) return [];\n if (!v[++o] || v[o].outerStart !== a.outerEnd) break;\n a = v[o];\n }\n } else if (e >= a[x] && e <= a[C]) {\n for (h = 0, o = r; o < f; o++) if (a = v[o], (p = g._flatData(a.data, !0)).length && e + h >= a.start) {\n if (d = a.data, u = a.end, !k) {\n if (b.inPlaceSort) c = g._queryProcess(a.data, {\n filter: g.filter()\n });else {\n var T = fe(g.group() || []).concat(re(g.sort() || []));\n c = g._queryProcess(a.data, {\n sort: T,\n filter: g.filter()\n });\n }\n p = d = c.data, c.total !== t && (u = c.total);\n }\n if (s = 0, e + h > a.start && (s = e + h - a.start), l = p.length, u > n && (l -= u - n), h += l - s, _ = g._mergeGroups(_, d, s, l), n <= a.end && h == n - e) return _;\n }\n break;\n }\n m = a.outerEnd;\n }\n return [];\n },\n _getRangesMismatch: function (e) {\n for (var t = this._ranges, n = 0, i = 0;;) {\n var a = t[i];\n if (!a || a.outerStart > e) break;\n a.outerEnd != a.end && (n = a.outerEnd - a.end), i++;\n }\n return n;\n },\n _mergeGroups: function (e, t, n, i) {\n if (this._isServerGrouped()) {\n var a,\n r = t.toJSON();\n return e.length && (a = e[e.length - 1]), Fe(a, r, n, i), e.concat(r);\n }\n return e.concat(t.slice(n, i));\n },\n _processRangeData: function (e, n, i, a, r, o) {\n var s = this;\n s._pending = t, s._skip = n > s.skip() && !s._omitPrefetch ? H.min(r, (s.totalPages() - 1) * s.take()) : a, s._currentRangeStart = n, s._take = i;\n var l = s.options.serverPaging,\n d = s.options.serverSorting,\n u = s.options.serverFiltering,\n c = s.options.serverAggregates;\n try {\n s.options.serverPaging = !0, s._isServerGrouped() || s.group() && s.group().length || (s.options.serverSorting = !0), s.options.serverFiltering = !0, s.options.serverPaging = !0, s.options.serverAggregates = !0, l && (s._detachObservableParents(), s._data = e = s._observe(e)), s._process(e, o);\n } finally {\n s.options.serverPaging = l, s.options.serverSorting = d, s.options.serverFiltering = u, s.options.serverAggregates = c;\n }\n },\n skip: function () {\n var e = this;\n return e._skip === t ? e._page !== t ? (e._page - 1) * (e.take() || 1) : t : e._skip;\n },\n currentRangeStart: function () {\n return this._currentRangeStart || 0;\n },\n take: function () {\n return this._take || this._pageSize;\n },\n _prefetchSuccessHandler: function (e, t, n, i) {\n var a = this,\n r = a._timeStamp();\n return function (o) {\n var s,\n l,\n d,\n u = !1,\n c = {\n start: e,\n end: t,\n data: [],\n timestamp: a._timeStamp()\n };\n if (a._dequeueRequest(), a.trigger(I, {\n response: o,\n type: \"read\"\n }), o = a.reader.parse(o), (d = a._readData(o)).length) {\n for (s = 0, l = a._ranges.length; s < l; s++) if (a._ranges[s].start === e) {\n u = !0, c = a._ranges[s], a._isGroupPaged() || (c.pristineData = d, c.data = a._observe(d), c.end = c.start + a._flatData(c.data, !0).length, a._sortRanges());\n break;\n }\n u || a._addRange(a._observe(d), e);\n }\n a._total = a.reader.total(o), (i || r >= a._currentRequestTimeStamp || !a._skipRequestsInProgress) && (n && d.length ? n() : a.trigger(w, {}));\n };\n },\n prefetch: function (e, t, n) {\n var i = this,\n a = H.min(e + t, i.total()),\n r = {\n take: t,\n skip: e,\n page: e / t + 1,\n pageSize: t,\n sort: i._sort,\n filter: i._filter,\n group: i._group,\n aggregate: i._aggregate\n };\n i._isGroupPaged() && !i._isServerGrouped() && i._groupRangeExists(e, a) ? n && n() : i._isServerGroupPaged() && !i._groupRangeExists(e, a) || !i._rangeExists(e, a) ? (clearTimeout(i._timeout), i._timeout = setTimeout(function () {\n i._queueRequest(r, function () {\n i.trigger(T, {\n type: \"read\"\n }) ? i._dequeueRequest() : (i._omitPrefetch && i.trigger(S), i.transport.read({\n data: i._params(r),\n success: i._prefetchSuccessHandler(e, a, n),\n error: function () {\n var e = L.call(arguments);\n i.error.apply(i, e);\n }\n }));\n });\n }, 100)) : n && n();\n },\n _multiplePrefetch: function (e, t, n) {\n var i = this,\n a = H.min(e + t, i.total()),\n r = {\n take: t,\n skip: e,\n page: e / t + 1,\n pageSize: t,\n sort: i._sort,\n filter: i._filter,\n group: i._group,\n aggregate: i._aggregate\n };\n i._rangeExists(e, a) ? n && n() : i.trigger(T, {\n type: \"read\"\n }) || i.transport.read({\n data: i._params(r),\n success: i._prefetchSuccessHandler(e, a, n, !0)\n });\n },\n _adjustPageSkip: function (e, t) {\n var n,\n i,\n a = this,\n r = a._getPrevRange(e),\n o = a.total();\n if (r) {\n if (!(i = a._getRangesMismatch(e))) return e;\n e -= i;\n }\n if ((n = H.max(H.floor(e / t), 0) * t) > o) for (; !((n -= t) < o););\n return n;\n },\n _getNextRange: function (e) {\n var t,\n n,\n i = this._ranges;\n for (t = 0, n = i.length; t < n; t++) if (i[t].start <= e && i[t].end >= e) return i[t];\n },\n _getPrevRange: function (e) {\n var t,\n n,\n i = this._ranges;\n for (t = i.length - 1; t >= 0; t--) if (i[t].outerStart <= e) {\n n = i[t];\n break;\n }\n return n;\n },\n _rangeExists: function (e, t) {\n var n,\n i,\n a = this._ranges;\n for (n = 0, i = a.length; n < i; n++) if (a[n].start <= e && a[n].end >= t) return !0;\n return !1;\n },\n _groupRangeExists: function (e, t) {\n var n,\n i,\n a = this,\n r = a._ranges,\n o = 0,\n s = a.groupsTotal(!0);\n for (t > s && !a._isServerGrouped() && (t = s), n = 0, i = r.length; n < i; n++) {\n var l = r[n];\n l.outerStart <= e && l.outerEnd >= e ? o += l.outerEnd - e : l.outerStart <= t && l.outerEnd >= t && (o += t - l.outerStart);\n }\n return o >= t - e;\n },\n _getCurrentRangeSpan: function () {\n var e,\n t,\n n = this,\n i = n._ranges,\n a = n.currentRangeStart(),\n r = a + (n.take() || 0),\n o = [],\n s = i.length;\n for (t = 0; t < s; t++) ((e = i[t]).start <= a && e.end >= a || e.start >= a && e.start <= r) && o.push(e);\n return o;\n },\n _removeModelFromRanges: function (e) {\n for (var t, n = 0, i = this._ranges.length; n < i; n++) t = this._ranges[n], this._removeModelFromRange(t, e);\n this._updateRangesLength();\n },\n _removeModelFromRange: function (e, t) {\n this._eachItem(e.data, function (e) {\n if (e) for (var n = 0; n < e.length; n++) {\n var i = e[n];\n if (i.uid && i.uid == t.uid) {\n [].splice.call(e, n, 1);\n break;\n }\n }\n });\n },\n _insertModelInRange: function (e, t) {\n var n,\n i,\n a = this,\n r = a._ranges || [],\n o = r.length;\n for (i = 0; i < o; i++) if ((n = r[i]).start <= e && n.end >= e) {\n a._getByUid(t.uid, n.data) || (a._isServerGrouped() ? n.data.splice(e, 0, a._wrapInEmptyGroup(t)) : n.data.splice(e, 0, t));\n break;\n }\n a._updateRangesLength();\n },\n _updateRangesLength: function () {\n var e,\n t,\n n = this,\n i = n._ranges || [],\n a = i.length,\n r = !1,\n o = 0,\n s = 0;\n for (t = 0; t < a; t++) e = i[t], s = (n._isGroupPaged() ? e.data.length : n._flatData(e.data, !0).length) - H.abs(e.end - e.start), r || 0 === s ? r && (e.start += o, e.end += o) : (r = !0, o = s, e.end += o);\n },\n _updateOuterRangesLength: function () {\n var e,\n t,\n n,\n i,\n a = this,\n r = a._ranges || [],\n o = r.length,\n s = 0;\n for (t = 0; t < o; t++) e = r[t], i = a._isGroupPaged() ? a._calculateGroupsTotal(e.data, !0, \"items\", !0) : a._flatData(e.data, !0).length, n ? (n.end != e.start && (s = e.start - n.end), e.outerStart = n.outerEnd + s, s = 0) : e.outerStart = e.start, e.outerEnd = e.outerStart + i, n = e;\n }\n }),\n Ge = {};\n Ge.create = function (t, n, r) {\n var o,\n s = t.transport ? e.extend({}, t.transport) : null;\n return s ? (s.read = typeof s.read === m ? {\n url: s.read\n } : s.read, \"jsdo\" === t.type && (s.dataSource = r), t.type && (c.data.transports = c.data.transports || {}, c.data.schemas = c.data.schemas || {}, c.data.transports[t.type] ? a(c.data.transports[t.type]) ? s = i(!0, {}, c.data.transports[t.type], s) : o = new c.data.transports[t.type](i(s, {\n data: n\n })) : c.logToConsole(\"Unknown DataSource transport type '\" + t.type + \"'.\\nVerify that registration scripts for this type are included after Kendo UI on the page.\", \"warn\"), t.schema = i(!0, {}, c.data.schemas[t.type], t.schema)), o || (o = p(s.read) ? s : new ye(s))) : o = new we({\n data: t.data || []\n }), o;\n }, qe.create = function (n) {\n (o(n) || n instanceof G) && (n = {\n data: n\n });\n var a,\n s,\n l,\n d = n || {},\n u = d.data,\n p = d.fields,\n h = d.table,\n f = d.select,\n m = {};\n if (u || !p || d.transport || (h ? u = function (t, n) {\n var i,\n a,\n r,\n o,\n s,\n l,\n d,\n u = e(t)[0].tBodies[0],\n c = u ? u.rows : [],\n p = n.length,\n h = [];\n for (i = 0, a = c.length; i < a; i++) {\n for (s = {}, d = !0, o = c[i].cells, r = 0; r < p; r++) \"th\" !== (l = o[r]).nodeName.toLowerCase() && (d = !1, s[n[r].field] = l.innerHTML);\n d || h.push(s);\n }\n return h;\n }(h, p) : f && (u = function (t, n) {\n var i,\n a,\n r,\n o,\n s,\n l,\n d = (t = e(t)[0]).options,\n u = n[0],\n c = n[1],\n p = [];\n for (i = 0, a = d.length; i < a; i++) s = {}, (r = (o = d[i]).parentNode) === t && (r = null), o.disabled || r && r.disabled || (r && (s.optgroup = r.label), s[u.field] = o.text, l = (l = o.attributes.value) && l.specified ? o.value : o.text, s[c.field] = l, p.push(s));\n return p;\n }(f, p), d.group === t && u[0] && u[0].optgroup !== t && (d.group = \"optgroup\"))), c.data.Model && p && (!d.schema || !d.schema.model)) {\n for (a = 0, s = p.length; a < s; a++) (l = p[a]).type && (m[l.field] = l);\n r(m) || (d.schema = i(!0, d.schema, {\n model: {\n fields: m\n }\n }));\n }\n return d.data = u, f = null, d.select = null, h = null, d.table = null, d instanceof qe ? d : new qe(d);\n };\n var Ke = ee.define({\n idField: \"id\",\n init: function (e) {\n var t = this,\n n = t.hasChildren || e && e.hasChildren,\n a = \"items\",\n r = {};\n if (c.data.Model.fn.init.call(t, e), typeof t.children === m && (a = t.children), r = {\n schema: {\n data: a,\n model: {\n hasChildren: n,\n id: t.idField,\n fields: t.fields\n }\n }\n }, typeof t.children !== m && i(r, t.children), r.data = e, n || (n = r.schema.data), typeof n === m && (n = c.getter(n)), p(n)) {\n var o = n.call(t, t);\n o && 0 === o.length ? t.hasChildren = !1 : t.hasChildren = !!o;\n }\n t._childrenOptions = r, t.hasChildren && t._initChildren(), t._loaded = !(!e || !e._loaded);\n },\n _initChildren: function () {\n var e,\n t,\n n,\n i = this;\n i.children instanceof Ye || (t = (e = i.children = new Ye(i._childrenOptions)).transport, n = t.parameterMap, t.parameterMap = function (e, t) {\n return e[i.idField || \"id\"] = i.id, n && (e = n.call(i, e, t)), e;\n }, e.parent = function () {\n return i;\n }, e.bind(w, function (e) {\n e.node = e.node || i, i.trigger(w, e);\n }), e.bind(C, function (e) {\n var t = i.parent();\n t && (e.node = e.node || i, t.trigger(C, e));\n }), e.bind(D, function (e) {\n var t = i.parent();\n t && t.trigger(D, e);\n }), i._updateChildrenField());\n },\n append: function (e) {\n this._initChildren(), this.loaded(!0), this.children.add(e);\n },\n hasChildren: !1,\n level: function () {\n for (var e = this.parentNode(), t = 0; e && e.parentNode;) t++, e = e.parentNode ? e.parentNode() : null;\n return t;\n },\n _updateChildrenField: function () {\n this[this._childrenOptions.schema.data || \"items\"] = this.children.data();\n },\n _childrenLoaded: function () {\n this._loaded = !0, this._updateChildrenField();\n },\n load: function () {\n var n,\n i,\n a = {},\n r = \"_query\";\n return this.hasChildren ? (this._initChildren(), n = this.children, a[this.idField || \"id\"] = this.id, this._loaded || (n._data = t, r = \"read\"), n.one(w, this._childrenLoaded.bind(this)), this._matchFilter && (a.filter = {\n field: \"_matchFilter\",\n operator: \"eq\",\n value: !0\n }), i = n[r](a), this._loaded || this.trigger(E, {\n promise: i,\n node: this\n })) : this.loaded(!0), i || e.Deferred().resolve().promise();\n },\n parentNode: function () {\n return this.parent().parent();\n },\n loaded: function (e) {\n if (e === t) return this._loaded;\n this._loaded = e;\n },\n shouldSerialize: function (e) {\n return ee.fn.shouldSerialize.call(this, e) && \"children\" !== e && \"_loaded\" !== e && \"hasChildren\" !== e && \"_childrenOptions\" !== e;\n }\n });\n function $e(e) {\n return function () {\n var t = this._data,\n n = qe.fn[e].apply(this, L.call(arguments));\n return this._data != t && this._attachBubbleHandlers(), n;\n };\n }\n var Ye = qe.extend({\n init: function (e) {\n var t = Ke.define({\n children: e\n });\n e.filter && !e.serverFiltering && (this._hierarchicalFilter = e.filter, e.filter = null), qe.fn.init.call(this, i(!0, {}, {\n schema: {\n modelBase: t,\n model: t\n }\n }, e)), this._attachBubbleHandlers();\n },\n _attachBubbleHandlers: function () {\n var e = this;\n e._data.bind(C, function (t) {\n e.trigger(C, t);\n }), e._data.bind(D, function (t) {\n e.trigger(D, t);\n });\n },\n loading: function () {\n return !!this._data && (this._data.loading() || this._childrenLoading());\n },\n _childrenLoading: function () {\n var e = !1;\n return this._data.forEach(function (t) {\n t.hasChildren && t.children.loading() && (e = !0);\n }), e;\n },\n read: function (e) {\n var t = qe.fn.read.call(this, e);\n return this._hierarchicalFilter && (this._data && this._data.length > 0 ? this.filter(this._hierarchicalFilter) : (this.options.filter = this._hierarchicalFilter, this._filter = de(this.options.filter), this._hierarchicalFilter = null)), t;\n },\n remove: function (e) {\n var t,\n n = e.parentNode(),\n i = this;\n return n && n._initChildren && (i = n.children), t = qe.fn.remove.call(i, e), n && !i.data().length && (n.hasChildren = !1), t;\n },\n success: $e(\"success\"),\n data: $e(\"data\"),\n insert: function (e, t) {\n var n = this.parent();\n return n && n._initChildren && (n.hasChildren = !0, n._initChildren()), qe.fn.insert.call(this, e, t);\n },\n filter: function (e) {\n if (e === t) return this._filter;\n !this.options.serverFiltering && this._markHierarchicalQuery(e) && (e = {\n logic: \"or\",\n filters: [e, {\n field: \"_matchFilter\",\n operator: \"equals\",\n value: !0\n }]\n }), this.trigger(\"reset\"), this._query({\n filter: e,\n page: 1\n });\n },\n _markHierarchicalQuery: function (t) {\n var n,\n i,\n a,\n r,\n o,\n s = this.options.accentFoldingFiltering;\n return (t = s ? e.extend({}, de(t), {\n accentFoldingFiltering: s\n }) : de(t)) && 0 !== t.filters.length ? (n = ae.filterExpr(t), a = n.fields, r = n.operators, i = o = new Function(\"d, __f, __o\", \"return \" + n.expression), (a.length || r.length) && (o = function (e) {\n return i(e, a, r);\n }), this._updateHierarchicalFilter(o), !0) : (this._updateHierarchicalFilter(function () {\n return !0;\n }), !1);\n },\n _updateHierarchicalFilter: function (e) {\n for (var t, n = this._data, i = !1, a = 0; a < n.length; a++) (t = n[a]).hasChildren ? (t._matchFilter = t.children._updateHierarchicalFilter(e), t._matchFilter || (t._matchFilter = e(t))) : t._matchFilter = e(t), t._matchFilter && (i = !0);\n return i;\n },\n _find: function (e, t) {\n var n,\n i,\n a,\n r,\n o = this._data;\n if (o) {\n if (a = qe.fn[e].call(this, t)) return a;\n for (n = 0, i = (o = this._flatData(this._data)).length; n < i; n++) if ((r = o[n].children) instanceof Ye && (a = r[e](t))) return a;\n }\n },\n get: function (e) {\n return this._find(\"get\", e);\n },\n getByUid: function (e) {\n return this._find(\"getByUid\", e);\n }\n });\n function Qe(t, n) {\n var i,\n a,\n r,\n o,\n s,\n l,\n d,\n u,\n p = e(t).children(),\n h = [],\n f = n[0].field,\n m = n[1] && n[1].field,\n g = n[2] && n[2].field,\n v = n[3] && n[3].field;\n function _(e, t) {\n return e.filter(t).add(e.find(t));\n }\n for (i = 0, a = p.length; i < a; i++) r = {\n _loaded: !0\n }, l = (o = p.eq(i))[0].firstChild, t = (u = o.children()).filter(\"ul\"), u = u.filter(\":not(ul)\"), (s = o.attr(\"data-id\")) && (r.id = s), l && (r[f] = 3 == l.nodeType ? l.nodeValue : u.text()), m && (r[m] = _(u, \"a\").attr(\"href\")), v && (r[v] = _(u, \"img\").attr(\"src\")), g && (d = _(u, \".k-sprite\").prop(\"className\"), r[g] = d && c.trim(d.replace(\"k-sprite\", \"\"))), t.length && (r.items = Qe(t.eq(0), n)), \"true\" == o.attr(\"data-hasChildren\") && (r.hasChildren = !0), h.push(r);\n return h;\n }\n Ye.create = function (e) {\n var t = (e = e && e.push ? {\n data: e\n } : e) || {},\n n = t.data,\n i = t.fields,\n a = t.list;\n return n && n._dataSource ? n._dataSource : (n || !i || t.transport || a && (n = Qe(a, i)), t.data = n, t instanceof Ye ? t : new Ye(t));\n };\n var Xe = c.Observable.extend({\n init: function (e, t, n) {\n c.Observable.fn.init.call(this), this._prefetching = !1, this.dataSource = e, this.prefetch = !n;\n var i = this;\n e.bind(\"change\", function () {\n i._change();\n }), e.bind(\"reset\", function () {\n i._reset();\n }), this._syncWithDataSource(), this.setViewSize(t);\n },\n setViewSize: function (e) {\n this.viewSize = e, this._recalculate();\n },\n at: function (e) {\n var t = this.pageSize,\n n = !0;\n return e >= this.total() ? (this.trigger(\"endreached\", {\n index: e\n }), null) : this.useRanges ? this.useRanges ? ((e < this.dataOffset || e >= this.skip + t) && (n = this.range(Math.floor(e / t) * t)), e === this.prefetchThreshold && this._prefetch(), e === this.midPageThreshold ? this.range(this.nextMidRange, !0) : e === this.nextPageThreshold ? this.range(this.nextFullRange) : e === this.pullBackThreshold && (this.offset === this.skip ? this.range(this.previousMidRange) : this.range(this.previousFullRange)), n ? this.dataSource.at(e - this.dataOffset) : (this.trigger(\"endreached\", {\n index: e\n }), null)) : void 0 : this.dataSource.view()[e];\n },\n indexOf: function (e) {\n return this.dataSource.data().indexOf(e) + this.dataOffset;\n },\n total: function () {\n return parseInt(this.dataSource.total(), 10);\n },\n next: function () {\n var e = this,\n t = e.pageSize,\n n = e.skip - e.viewSize + t,\n i = H.max(H.floor(n / t), 0) * t;\n this.offset = n, this.dataSource.prefetch(i, t, function () {\n e._goToRange(n, !0);\n });\n },\n range: function (e, t) {\n if (this.offset === e) return !0;\n var n = this,\n i = this.pageSize,\n a = H.max(H.floor(e / i), 0) * i,\n r = this.dataSource;\n return t && (a += i), r.inRange(e, i) ? (this.offset = e, this._recalculate(), this._goToRange(e), !0) : !this.prefetch || (r.prefetch(a, i, function () {\n n.offset = e, n._recalculate(), n._goToRange(e, !0);\n }), !1);\n },\n syncDataSource: function () {\n var e = this.offset;\n this.offset = null, this.range(e);\n },\n destroy: function () {\n this.unbind();\n },\n _prefetch: function () {\n var e = this,\n t = this.pageSize,\n n = this.skip + t,\n i = this.dataSource;\n i.inRange(n, t) || this._prefetching || !this.prefetch || (this._prefetching = !0, this.trigger(\"prefetching\", {\n skip: n,\n take: t\n }), i.prefetch(n, t, function () {\n e._prefetching = !1, e.trigger(\"prefetched\", {\n skip: n,\n take: t\n });\n }));\n },\n _goToRange: function (e, t) {\n this.offset === e && (this.dataOffset = e, this._expanding = t, this.dataSource.range(e, this.pageSize), this.dataSource.enableRequestsInProgress());\n },\n _reset: function () {\n this._syncPending = !0;\n },\n _change: function () {\n var e = this.dataSource;\n this.length = this.useRanges ? e.lastRange().end : e.view().length, this._syncPending && (this._syncWithDataSource(), this._recalculate(), this._syncPending = !1, this.trigger(\"reset\", {\n offset: this.offset\n })), this.trigger(\"resize\"), this._expanding && this.trigger(\"expand\"), delete this._expanding;\n },\n _syncWithDataSource: function () {\n var e = this.dataSource;\n this._firstItemUid = e.firstItemUid(), this.dataOffset = this.offset = e.skip() || 0, this.pageSize = e.pageSize(), this.useRanges = e.options.serverPaging;\n },\n _recalculate: function () {\n var e = this.pageSize,\n t = this.offset,\n n = this.viewSize,\n i = Math.ceil(t / e) * e;\n this.skip = i, this.midPageThreshold = i + e - 1, this.nextPageThreshold = i + n - 1, this.prefetchThreshold = i + Math.floor(e / 3 * 2), this.pullBackThreshold = this.offset - 1, this.nextMidRange = i + e - n, this.nextFullRange = i, this.previousMidRange = t - n, this.previousFullRange = i - e;\n }\n }),\n Je = c.Observable.extend({\n init: function (e, t) {\n var n = this;\n c.Observable.fn.init.call(n), this.dataSource = e, this.batchSize = t, this._total = 0, this.buffer = new Xe(e, 3 * t), this.buffer.bind({\n endreached: function (e) {\n n.trigger(\"endreached\", {\n index: e.index\n });\n },\n prefetching: function (e) {\n n.trigger(\"prefetching\", {\n skip: e.skip,\n take: e.take\n });\n },\n prefetched: function (e) {\n n.trigger(\"prefetched\", {\n skip: e.skip,\n take: e.take\n });\n },\n reset: function () {\n n._total = 0, n.trigger(\"reset\");\n },\n resize: function () {\n n._total = Math.ceil(this.length / n.batchSize), n.trigger(\"resize\", {\n total: n.total(),\n offset: this.offset\n });\n }\n });\n },\n syncDataSource: function () {\n this.buffer.syncDataSource();\n },\n at: function (e) {\n var t,\n n = this.buffer,\n i = e * this.batchSize,\n a = this.batchSize,\n r = [];\n n.offset > i && n.at(n.offset - 1);\n for (var o = 0; o < a && null !== (t = n.at(i + o)); o++) r.push(t);\n return r;\n },\n total: function () {\n return this._total;\n },\n destroy: function () {\n this.buffer.destroy(), this.unbind();\n }\n });\n i(!0, c.data, {\n readers: {\n json: Ee\n },\n Query: ae,\n DataSource: qe,\n HierarchicalDataSource: Ye,\n Node: Ke,\n Comparer: te,\n ObservableObject: Q,\n ObservableArray: G,\n LazyObservableArray: K,\n LocalTransport: we,\n RemoteTransport: ye,\n Cache: xe,\n DataReader: Ee,\n Model: ee,\n Buffer: Xe,\n BatchBuffer: Je\n });\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui,\n a = i.Widget,\n r = n.Class,\n o = n.support,\n s = n.getOffset,\n l = n._outerWidth,\n d = n._outerHeight,\n u = \"open\",\n c = \"close\",\n p = \"deactivate\",\n h = \"activate\",\n f = \"center\",\n m = \"right\",\n g = \"top\",\n v = \"bottom\",\n _ = \"absolute\",\n b = \"hidden\",\n k = \"body\",\n w = \"location\",\n y = \"position\",\n x = \"visible\",\n C = \"effects\",\n T = \"k-active\",\n S = \"k-state-border\",\n I = /k-state-border-(\\w+)/,\n D = \".k-picker-wrap, .k-dropdown-wrap, .k-link\",\n E = e(document.documentElement),\n A = e(window),\n F = \"scroll\",\n z = o.transitions.css + \"transform\",\n P = e.extend,\n H = \".kendoPopup\",\n N = [\"font-size\", \"font-family\", \"font-stretch\", \"font-style\", \"font-weight\", \"line-height\"];\n function R(t, n) {\n return !(!t || !n) && (t === n || e.contains(t, n));\n }\n var O = a.extend({\n init: function (t, i) {\n var r,\n s = this;\n (i = i || {}).isRtl && (i.origin = i.origin || \"bottom right\", i.position = i.position || \"top right\"), a.fn.init.call(s, t, i), t = s.element, i = s.options, s.collisions = i.collision ? i.collision.split(\" \") : [], s.downEvent = n.applyEventMap(\"down\", n.guid()), 1 === s.collisions.length && s.collisions.push(s.collisions[0]), r = e(s.options.anchor).closest(\".k-popup,.k-group\").filter(\":not([class^=km-])\"), i.appendTo = e(e(i.appendTo)[0] || r[0] || document.body), s.element.hide().addClass(\"k-popup k-group k-reset\").toggleClass(\"k-rtl\", !!i.isRtl).css({\n position: _\n }).appendTo(i.appendTo).attr(\"aria-hidden\", !0).on(\"mouseenter\" + H, function () {\n s._hovered = !0;\n }).on(\"wheel\" + H, function (t) {\n var n = e(t.target).find(\".k-list\"),\n i = n.parent();\n n.length && n.is(\":visible\") && (0 === i.scrollTop() && t.originalEvent.deltaY < 0 || i.scrollTop() === i.prop(\"scrollHeight\") - i.prop(\"offsetHeight\") && t.originalEvent.deltaY > 0) && t.preventDefault();\n }).on(\"mouseleave\" + H, function () {\n s._hovered = !1;\n }), s.wrapper = e(), !1 === i.animation && (i.animation = {\n open: {\n effects: {}\n },\n close: {\n hide: !0,\n effects: {}\n }\n }), P(i.animation.open, {\n complete: function () {\n s.wrapper.css({\n overflow: x\n }), s._activated = !0, s._trigger(h);\n }\n }), P(i.animation.close, {\n complete: function () {\n s._animationClose();\n }\n }), s._mousedownProxy = function (e) {\n s._mousedown(e);\n }, o.mobileOS.android ? s._resizeProxy = function (e) {\n setTimeout(function () {\n s._resize(e);\n }, 600);\n } : s._resizeProxy = function (e) {\n s._resize(e);\n }, i.toggleTarget && e(i.toggleTarget).on(i.toggleEvent + H, s.toggle.bind(s));\n },\n events: [u, h, c, p],\n options: {\n name: \"Popup\",\n toggleEvent: \"click\",\n origin: \"bottom left\",\n position: \"top left\",\n anchor: k,\n appendTo: null,\n collision: \"flip fit\",\n viewport: window,\n copyAnchorStyles: !0,\n autosize: !1,\n modal: !1,\n adjustSize: {\n width: 0,\n height: 0\n },\n animation: {\n open: {\n effects: \"slideIn:down\",\n transition: !0,\n duration: 200\n },\n close: {\n duration: 100,\n hide: !0\n }\n },\n omitOriginOffsets: !1\n },\n _animationClose: function () {\n var e = this,\n t = e.wrapper.data(w);\n e.wrapper.hide(), t && e.wrapper.css(t), e.options.anchor != k && e._hideDirClass(), e._closing = !1, e._trigger(p);\n },\n destroy: function () {\n var t,\n i = this,\n r = i.options,\n o = i.element.off(H);\n a.fn.destroy.call(i), r.toggleTarget && e(r.toggleTarget).off(H), r.modal || (E.off(i.downEvent, i._mousedownProxy), i._toggleResize(!1)), n.destroy(i.element.children()), o.removeData(), r.appendTo[0] === document.body && ((t = o.parent(\".k-animation-container\"))[0] ? t.remove() : o.remove());\n },\n open: function (i, a) {\n var r,\n s,\n l = this,\n d = {\n isFixed: !isNaN(parseInt(a, 10)),\n x: i,\n y: a\n },\n c = l.element,\n p = l.options,\n h = e(p.anchor),\n f = c[0] && c.hasClass(\"km-widget\"),\n m = c.find(\"[role='listbox']\");\n if (!l.visible()) {\n if (p.copyAnchorStyles && (f && \"font-size\" == N[0] && N.shift(), c.css(n.getComputedStyles(h[0], N))), c.data(\"animating\") || l._trigger(u)) return;\n l._activated = !1, p.modal || (E.off(l.downEvent, l._mousedownProxy).on(l.downEvent, l._mousedownProxy), l._toggleResize(!1), l._toggleResize(!0)), l.wrapper = s = n.wrap(c, p.autosize).css({\n overflow: b,\n display: \"block\",\n position: _\n }).attr(\"aria-hidden\", !1), m.attr(\"aria-label\") ? s.attr(\"aria-label\", m.attr(\"aria-label\")) : m.attr(\"aria-labelledby\") && s.attr(\"aria-labelledby\", m.attr(\"aria-labelledby\")), o.mobileOS.android && s.css(z, \"translatez(0)\"), s.css(y), e(p.appendTo)[0] == document.body && s.css(g, \"-10000px\"), l.flipped = l._position(d), r = l._openAnimation(), p.anchor != k && l._showDirClass(r), c.is(\":visible\") || c.data(\"olddisplay\") !== t || (c.show(), c.data(\"olddisplay\", c.css(\"display\")), c.hide()), c.data(C, r.effects).kendoStop(!0).kendoAnimate(r).attr(\"aria-hidden\", !1);\n }\n },\n _location: function (t) {\n var i,\n a = this,\n r = a.element,\n s = a.options,\n l = e(s.anchor),\n d = r[0] && r.hasClass(\"km-widget\");\n s.copyAnchorStyles && (d && \"font-size\" == N[0] && N.shift(), r.css(n.getComputedStyles(l[0], N))), a.wrapper = i = n.wrap(r, s.autosize).css({\n overflow: b,\n display: \"block\",\n position: _\n }), o.mobileOS.android && i.css(z, \"translatez(0)\"), i.css(y), e(s.appendTo)[0] == document.body && i.css(g, \"-10000px\"), a._position(t || {});\n var u = i.offset();\n return {\n width: n._outerWidth(i),\n height: n._outerHeight(i),\n left: u.left,\n top: u.top\n };\n },\n _openAnimation: function () {\n var e = P(!0, {}, this.options.animation.open);\n return e.effects = n.parseEffects(e.effects, this.flipped), e;\n },\n _hideDirClass: function () {\n var t = e(this.options.anchor),\n i = ((t.attr(\"class\") || \"\").match(I) || [\"\", \"down\"])[1],\n a = S + \"-\" + i;\n t.removeClass(a).children(D).removeClass(T).removeClass(a), this.element.removeClass(S + \"-\" + n.directions[i].reverse);\n },\n _showDirClass: function (t) {\n var i = t.effects.slideIn ? t.effects.slideIn.direction : \"down\",\n a = S + \"-\" + i;\n e(this.options.anchor).addClass(a).children(D).addClass(T).addClass(a), this.element.addClass(S + \"-\" + n.directions[i].reverse);\n },\n position: function () {\n this.visible() && (this.flipped = this._position());\n },\n toggle: function () {\n this[this.visible() ? c : u]();\n },\n visible: function () {\n return this.element.is(\":visible\");\n },\n close: function (t) {\n var i,\n a,\n r,\n o,\n s = this,\n l = s.options;\n if (s.visible()) {\n if (i = s.wrapper[0] ? s.wrapper : n.wrap(s.element).hide(), s._toggleResize(!1), s._closing || s._trigger(c)) return void s._toggleResize(!0);\n s.element.find(\".k-popup\").each(function () {\n var n = e(this).data(\"kendoPopup\");\n n && n.close(t);\n }), E.off(s.downEvent, s._mousedownProxy), t ? a = {\n hide: !0,\n effects: {}\n } : (a = P(!0, {}, l.animation.close), r = s.element.data(C), !(o = a.effects) && !n.size(o) && r && n.size(r) && (a.effects = r, a.reverse = !0), s._closing = !0), s.element.kendoStop(!0).attr(\"aria-hidden\", !0), i.css({\n overflow: b\n }).attr(\"aria-hidden\", !0), s.element.kendoAnimate(a), t && s._animationClose();\n }\n },\n _trigger: function (e) {\n return this.trigger(e, {\n type: e\n });\n },\n _resize: function (e) {\n var t = this;\n -1 !== o.resize.indexOf(e.type) ? (clearTimeout(t._resizeTimeout), t._resizeTimeout = setTimeout(function () {\n t._position(), t._resizeTimeout = null;\n }, 50)) : (!t._hovered || t._activated && t.element.find(\".k-list\").length > 0) && t.close();\n },\n _toggleResize: function (e) {\n var t = e ? \"on\" : \"off\",\n n = o.resize;\n o.mobileOS.ios || o.mobileOS.android || o.browser.safari || (n += \" scroll\"), e && !this.scrollableParents && (this.scrollableParents = this._scrollableParents()), this.scrollableParents && this.scrollableParents.length && this.scrollableParents[t](F, this._resizeProxy), A[t](n, this._resizeProxy);\n },\n _mousedown: function (t) {\n var i = this,\n a = i.element[0],\n r = i.options,\n o = e(r.anchor)[0],\n s = r.toggleTarget,\n l = n.eventTarget(t),\n d = e(l).closest(\".k-popup\"),\n u = d.parent().parent(\".km-shim\").length;\n d = d[0], !u && d && d !== i.element[0] || \"popover\" !== e(t.target).closest(\"a\").data(\"rel\") && (R(a, l) || R(o, l) || s && R(e(s)[0], l) || i.close());\n },\n _fit: function (e, t, n) {\n var i = 0;\n return e + t > n && (i = n - (e + t)), e < 0 && (i = -e), i;\n },\n _flip: function (e, t, n, i, a, r, o) {\n var s = 0;\n return o = o || t, r !== a && r !== f && a !== f && (e + o > i && (s += -(n + t)), e + s < 0 && (s += n + t)), s;\n },\n _scrollableParents: function () {\n return e(this.options.anchor).parentsUntil(\"body\").filter(function (e, t) {\n return n.isScrollable(t);\n });\n },\n _position: function (t) {\n var i,\n a,\n r,\n u,\n c,\n p,\n h,\n f = this,\n m = f.element,\n g = f.wrapper,\n v = f.options,\n b = e(v.viewport),\n k = o.zoomLevel(),\n x = !!(b[0] == window && window.innerWidth && k <= 1.02),\n C = e(v.anchor),\n T = v.origin.toLowerCase().split(\" \"),\n S = v.position.toLowerCase().split(\" \"),\n I = f.collisions,\n D = 10002,\n E = 0,\n A = document.documentElement;\n (c = v.viewport === window ? {\n top: window.pageYOffset || document.documentElement.scrollTop || 0,\n left: window.pageXOffset || document.documentElement.scrollLeft || 0\n } : b.offset(), x ? (p = window.innerWidth, h = window.innerHeight) : (p = b.width(), h = b.height()), x && A.scrollHeight - A.clientHeight > 0) && (p -= (v.isRtl ? -1 : 1) * n.support.scrollbar());\n if ((i = C.parents().filter(g.siblings()))[0]) if (r = Math.max(Number(i.css(\"zIndex\")), 0)) D = r + 10;else for (u = (a = C.parentsUntil(i)).length; E < u; E++) (r = Number(e(a[E]).css(\"zIndex\"))) && D < r && (D = r + 10);\n g.css(\"zIndex\", D), t && t.isFixed ? g.css({\n left: t.x,\n top: t.y\n }) : g.css(f._align(T, S));\n var F = s(g, y, C[0] === g.offsetParent()[0]),\n z = s(g);\n C.offsetParent().parent(\".k-animation-container,.k-popup,.k-group\").length && (F = s(g, y, !0), z = s(g)), z.top -= c.top, z.left -= c.left, f.wrapper.data(w) || g.data(w, P({}, F));\n var H = P({}, z),\n N = P({}, F),\n R = v.adjustSize;\n \"fit\" === I[0] && (N.top += f._fit(H.top, d(g) + R.height, h / k)), \"fit\" === I[1] && (N.left += f._fit(H.left, l(g) + R.width, p / k));\n var O = P({}, N),\n M = d(m),\n B = d(g);\n return !g.height() && M && (B += M), \"flip\" === I[0] && (N.top += f._flip(H.top, M, d(C), h / k, T[0], S[0], B)), \"flip\" === I[1] && (N.left += f._flip(H.left, l(m), l(C), p / k, T[1], S[1], l(g))), m.css(y, _), g.css(N), N.left != O.left || N.top != O.top;\n },\n _align: function (t, n) {\n var i,\n a = this,\n r = a.wrapper,\n o = e(a.options.anchor),\n u = t[0],\n c = t[1],\n p = n[0],\n h = n[1],\n g = s(o),\n _ = e(a.options.appendTo),\n b = l(r),\n k = d(r) || d(r.children().first()),\n w = l(o),\n y = d(o),\n x = a.options.omitOriginOffsets ? 0 : g.top,\n C = a.options.omitOriginOffsets ? 0 : g.left,\n T = Math.round;\n return _[0] != document.body && (x -= (i = s(_)).top, C -= i.left), u === v && (x += y), u === f && (x += T(y / 2)), p === v && (x -= k), p === f && (x -= T(k / 2)), c === m && (C += w), c === f && (C += T(w / 2)), h === m && (C -= b), h === f && (C -= T(b / 2)), {\n top: x,\n left: C\n };\n }\n });\n i.plugin(O);\n var M = n.support.stableSort,\n B = \"kendoTabKeyTrap\",\n L = r.extend({\n init: function (t) {\n this.element = e(t), this.element.autoApplyNS(B);\n },\n trap: function () {\n this.element.on(\"keydown\", this._keepInTrap.bind(this));\n },\n removeTrap: function () {\n this.element.kendoDestroy(B);\n },\n destroy: function () {\n this.element.kendoDestroy(B), this.element = t;\n },\n shouldTrap: function () {\n return !0;\n },\n _keepInTrap: function (e) {\n if (9 === e.which && this.shouldTrap() && !e.isDefaultPrevented()) {\n var t = this._focusableElements(),\n n = this._sortFocusableElements(t),\n i = this._nextFocusable(e, n);\n this._focus(i), e.preventDefault();\n }\n },\n _focusableElements: function () {\n var t = this.element.find(\"a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex], *[contenteditable]\").filter(function (t, n) {\n return n.tabIndex >= 0 && e(n).is(\":visible\") && !e(n).is(\"[disabled]\");\n });\n return this.element.is(\"[tabindex]\") && t.push(this.element[0]), t;\n },\n _sortFocusableElements: function (e) {\n var t;\n if (M) t = e.sort(function (e, t) {\n return e.tabIndex - t.tabIndex;\n });else {\n var n = \"__k_index\";\n e.each(function (e, t) {\n t.setAttribute(n, e);\n }), t = e.sort(function (e, t) {\n return e.tabIndex === t.tabIndex ? parseInt(e.getAttribute(n), 10) - parseInt(t.getAttribute(n), 10) : e.tabIndex - t.tabIndex;\n }), e.removeAttr(n);\n }\n return t;\n },\n _nextFocusable: function (e, t) {\n var n = t.length,\n i = t.index(e.target);\n return t.get((i + (e.shiftKey ? -1 : 1)) % n);\n },\n _focus: function (e) {\n \"IFRAME\" != e.nodeName ? (e.focus(), \"INPUT\" == e.nodeName && e.setSelectionRange && this._haveSelectionRange(e) && e.setSelectionRange(0, e.value.length)) : e.contentWindow.document.body.focus();\n },\n _haveSelectionRange: function (e) {\n var t = e.type.toLowerCase();\n return \"text\" === t || \"search\" === t || \"url\" === t || \"tel\" === t || \"password\" === t;\n }\n });\n i.Popup.TabKeyTrap = L;\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui.Widget,\n a = n.ui,\n r = \".kendoFloatingLabel\",\n o = \"k-empty\",\n s = \"k-focus\",\n l = \"k-disabled\",\n d = \"k-no-click\",\n u = \"k-readonly\",\n c = i.extend({\n init: function (a, r) {\n var o = this;\n i.fn.init.call(o, a, r), r = e.extend(!0, {}, r), o.widget = o.options.widget, o.widgetWrapper = o.widget.wrapper[0], o.refresh(), o._editable({\n readonly: o.options.widget.options.readonly !== t && o.options.widget.options.readonly,\n disable: o.options.widget.options.enable !== t && !o.options.widget.options.enable\n }), o.widgetWrapper.style.width && (o.element.css(\"width\", o.widgetWrapper.style.width), o.widgetWrapper.style.width = \"100%\"), o.element.addClass(\"k-floating-label-container\"), n.notify(o);\n },\n options: {\n name: \"FloatingLabel\",\n widget: null,\n useReadOnlyClass: !1,\n floatCheck: function (e) {\n return !e.element.val();\n }\n },\n readonly: function (e) {\n this._editable({\n readonly: e === t || e,\n disable: !1\n });\n },\n enable: function (e) {\n this._editable({\n readonly: !1,\n disable: !(e = e === t || e)\n });\n },\n refresh: function () {\n var e = this,\n t = e.element;\n t.removeClass(o).removeClass(s), e.options.floatCheck({\n element: e.options.widget.element,\n floating: e.element\n }) && t.addClass(o), (document.activeElement === e.options.widget.element[0] || e.options.widget.input && document.activeElement === e.options.widget.input[0]) && t.addClass(s);\n },\n destroy: function () {\n this.element.off(r), i.fn.destroy.call(this);\n },\n _editable: function (e) {\n var t = this,\n n = t.element,\n i = e.disable,\n a = e.readonly;\n n.off(r), a || i ? n.toggleClass(l, i).toggleClass(t.options.useReadOnlyClass ? u : d, a) : (n.removeClass(l).removeClass(t.options.useReadOnlyClass ? u : d), n.on(\"focusin\" + r, t.refresh.bind(t)), n.on(\"focusout\" + r, t.refresh.bind(t)));\n }\n });\n a.plugin(c);\n }(window.kendo.jQuery);\n var t = window.kendo,\n n = t.jQuery,\n i = t.ui.Widget,\n a = t.isFunction,\n r = i.extend({\n options: {\n name: \"Label\",\n widget: null\n },\n init: function (e, t) {\n var a = this;\n e = e || n(\"\"), i.fn.init.call(a, e, t), t = n.extend(!0, {}, t), a.widget = t.widget, t.floating && a._floatingLabel(), a._label();\n },\n destroy: function () {\n this.floatingLabel && this.floatingLabel.destroy(), i.fn.destroy.call(this);\n },\n _unwrapFloating: function () {\n var e = this;\n e.floatingLabel && (e.floatingLabel.destroy(), e.widget.wrapper.unwrap(e._floatingLabelContainer));\n },\n setOptions: function (e) {\n var t = this,\n a = !1;\n (\"string\" == typeof e || n.isPlainObject(e) && !1 === e.floating) && (a = !0), e = n.isPlainObject(e) ? e : {\n content: e\n }, i.fn.setOptions.call(t, e), a && t.floatingLabel ? (t._unwrapFloating(), t.floatingLabel.destroy(), delete t.floatingLabel) : !0 !== e.floating || t.floatingLabel || (t.element.remove(), t._floatingLabel()), t._label(), t.floatingLabel && t.floatingLabel.refresh();\n },\n _label: function () {\n var e = this,\n n = e.widget.element,\n i = e.options,\n r = n.attr(\"id\"),\n o = i.content;\n a(o) && (o = o.call(e)), o || (o = \"\"), r || (r = i.name + \"_\" + t.guid(), n.attr(\"id\", r)), e.element.addClass(\"k-label k-input-label\").attr(\"for\", r).text(o).insertBefore(e.options.beforeElm || e.widget.wrapper);\n },\n _floatingLabel: function () {\n var e = this,\n i = n.extend({}, e.options);\n delete i.name, (i.floating || !1) && (e._floatingLabelContainer = e.widget.wrapper.wrap(\"\").parent(), e.floatingLabel = new t.ui.FloatingLabel(e._floatingLabelContainer, n.extend({}, i)));\n }\n });\n t.ui.plugin(r);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui,\n a = n._outerHeight,\n r = /^\\d+(\\.\\d+)?%$/i,\n o = i.Widget,\n s = n.keys,\n l = n.support,\n d = n.htmlEncode,\n u = n._activeElement,\n c = n._outerWidth,\n p = n.data.ObservableArray,\n h = \"id\",\n f = \"change\",\n m = \"k-focus\",\n g = \"k-hover\",\n v = \"k-selected\",\n _ = \"k-i-loading k-input-loading-icon\",\n b = \"k-list-ul\",\n k = \".k-list-group-sticky-header\",\n w = \".k-list-item\",\n y = \"open\",\n x = \"close\",\n C = \"cascade\",\n T = \"select\",\n S = \"click\",\n I = \"mouseenter\",\n D = \"activate\",\n E = \"deactivate\",\n A = \"dataBinding\",\n F = \"dataBound\",\n z = \"selectedItemChange\",\n P = \"selected\",\n H = \"requestStart\",\n N = \"requestEnd\",\n R = \"focus\",\n O = e.extend,\n M = Array.isArray,\n B = l.browser,\n L = \"k-hidden\",\n V = \"width\",\n U = \"text\",\n W = B.msie,\n j = /\"/g,\n q = {\n ComboBox: [\"DropDownList\", \"MultiColumnComboBox\"],\n DropDownList: [\"ComboBox\", \"MultiColumnComboBox\"],\n MultiColumnComboBox: [\"ComboBox\", \"DropDownList\"]\n },\n G = \"aria-labelledby\",\n K = \"aria-label\",\n $ = \"aria-activedescendant\",\n Y = \"aria-expanded\",\n Q = \"aria-hidden\",\n X = \"aria-busy\",\n J = \"aria-selected\",\n Z = \".k-table-group-row\",\n ee = n.ui.DataBoundWidget.extend({\n init: function (t, i) {\n var a,\n r = this;\n o.fn.init.call(r, t, i), t = r.element, i = r.options, r._isSelect = t.is(T), r._isSelect && r.element[0].length && (i.dataSource || (i.dataTextField = i.dataTextField || U, i.dataValueField = i.dataValueField || \"value\")), r._listSize = n.cssProperties.getValidClass({\n widget: \"List\",\n propName: \"size\",\n value: i.size\n }), r.ul = e('\");\n var c = this.isBlock(t);\n u.focus();\n var p = u.getRange();\n p.deleteContents(), p.startContainer == u.document && p.selectNodeContents(u.body);\n var h = new s(),\n f = h.addCaret(p),\n m = this.splittableParent(c, f),\n g = !1,\n v = m != u.body && !r.is(m, \"td\");\n n.split && v && (c || r.isInline(m)) && (p.selectNode(f), a.split(p, m, !0), g = !0);\n var _ = this.htmlToFragment(t);\n if (_.firstChild && \"k-paste-container\" === _.firstChild.className) {\n var b = [];\n for (i = 0, o = _.childNodes.length; i < o; i++) b.push(_.childNodes[i].innerHTML);\n _ = this.htmlToFragment(b.join(\"
\"));\n }\n if (l = _.childNodes, e(l).filter(\"table\").addClass(\"k-table\").end().find(\"table\").addClass(\"k-table\"), e(l).each(function (e, t) {\n r.isBlock(t) && !r.isSelfClosing(t) && \"\" === t.innerHTML && t.appendChild(u.document.createTextNode(\"\\ufeff\"));\n }), p.insertNode(_), m = this.splittableParent(c, f), g) {\n for (; f.parentNode != m;) r.unwrap(f.parentNode);\n r.unwrap(f.parentNode);\n }\n r.normalize(p.commonAncestorContainer), f.style.display = \"inline\", r.restoreScrollTop(u.document), r.scrollTo(f), h.removeCaret(p);\n var k = p.commonAncestorContainer.parentNode;\n (p.collapsed && \"tbody\" == r.name(k) || p.collapsed && \"thead\" == r.name(k)) && (p.setStartAfter(e(k).closest(\"table\")[0]), p.collapse(!0));\n var w = e(p.commonAncestorContainer.parentNode).closest(\"table\");\n if (w.get(0)) {\n for (var y = w.parent().contents(), x = y.length - 1, C = y.get(x); null !== C.nodeValue && (\" \" === C.nodeValue || \"\" === C.nodeValue);) x -= 1, C = y.get(x);\n C !== w.get(0) || w.parents(\"table\").length || r.insertAfter(r.createEmptyNode(u.document, \"p\"), w[0]);\n }\n u.selectRange(p);\n }\n }),\n c = n.extend({\n init: function (e) {\n this.options = e || {}, this.replacements = [];\n },\n clean: function (e, t) {\n var n,\n i,\n a = t || this.replacements;\n for (n = 0, i = a.length; n < i; n += 2) e = e.replace(a[n], a[n + 1]);\n return e;\n }\n }),\n p = c.extend({\n init: function (e) {\n c.fn.init.call(this, e), this.replacements = [/<(\\/?)script([^>]*)>/i, \"<$1telerik:script$2>\"];\n },\n applicable: function (e) {\n return !this.options.none && /]*>/i.test(e);\n }\n }),\n h = c.extend({\n init: function (e) {\n c.fn.init.call(this, e);\n this.replacements = [/]*>\\s*<\\/span>/gi, \" \", /\\t/gi, \" \", /    /gi, \" \"];\n },\n applicable: function (e) {\n return /    |class=\"?Apple-tab-span/i.test(e);\n }\n }),\n f = c.extend({\n init: function (e) {\n c.fn.init.call(this, e), this.junkReplacements = [/<\\?xml[^>]*>/gi, \"\", //g, \"\", /"/g, \"'\", / <\\/o:p>/gi, \" \", /<\\/?(meta|link|style|o:|v:|x:)[^>]*>((?:.|\\n)*?<\\/(meta|link|style|o:|v:|x:)[^>]*>)?/gi, \"\", /<\\/o>/g, \"\"], this.replacements = this.junkReplacements.concat([/(?:
 [\\s\\r\\n]+|
)*(<\\/?(h[1-6]|hr|p|div|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|address|pre|form|blockquote|dl|dt|dd|dir|fieldset)[^>]*>)(?:
 [\\s\\r\\n]+|
)*/g, \"$1\", /

/g, \"

\", /
\\n/g, \"
\", /
(?!\\n)/g, \" \", /]*)>(\\s| )+]*>(\\s| )*<\\/tr>/gi, \"\", /]*>(\\s| )*<\\/tbody>/gi, \"\", /]*>(\\s| )*<\\/table>/gi, \"\", /

/g, \"
\", /^\\s*( )+/gi, \"\", /( |]*>)+\\s*$/gi, \"\", /mso-[^;\"]*;?/gi, \"\", /<(\\/?)b(\\s[^>]*)?>/gi, \"<$1strong$2>\", /<(\\/?)font(\\s[^>]*)?>/gi, this.convertFontMatch, /<(\\/?)i(\\s[^>]*)?>/gi, \"<$1em$2>\", /style=([\"|'])\\s*\\1/g, \"\", /(]*>)?\\n/g, function (e, t) {\n return t ? e : \" \";\n }]);\n },\n convertFontMatch: function (e, t, n) {\n var i = /face=['\"]([^'\"]+)['\"]/i.exec(n),\n a = n && i && i[1];\n return t ? \"\" : a ? '' : \"\";\n },\n applicable: function (e) {\n return /class=\"?Mso/i.test(e) || /style=\"[^\"]*mso-/i.test(e) || /urn:schemas-microsoft-com:office/.test(e);\n },\n stripEmptyAnchors: function (e) {\n return e.replace(/]*)>\\s*<\\/a>/gi, function (e, t) {\n return !t || t.indexOf(\"href\") < 0 ? \"\" : e;\n });\n },\n listType: function (e, t) {\n var n,\n i = e.innerHTML,\n a = r.innerText(e),\n o = i.match(/^(?:]*texhtml[^>]*>)?]*(?:Symbol|Wingdings)[^>]*>([^<]+)/i),\n s = o && o[1],\n l = /^[a-z\\d]/i.test(s),\n d = function (e) {\n return e.replace(/^(?: |[\\u00a0\\n\\r\\s])+/, \"\");\n };\n return o && (n = !0), i = i.replace(/<\\/?\\w+[^>]*>/g, \"\").replace(/ /g, \" \"), !n && /^[\\u2022\\u00b7\\u00a7\\u00d8o]\\u00a0+/.test(i) || n && /^.\\u00a0+/.test(i) || s && !l && t ? {\n tag: \"ul\",\n style: this._guessUnorderedListStyle(d(a))\n } : /^\\s*\\w+[\\.\\)][\\u00a0 ]{2,}/.test(i) ? {\n tag: \"ol\",\n style: this._guessOrderedListStyle(d(a))\n } : void 0;\n },\n _convertToLi: function (e) {\n var t;\n return 1 == e.childNodes.length ? (t = e.firstChild.nodeType === r.nodeTypes.TEXT_NODE ? r.innerText(e) : e.firstChild.innerHTML.replace(/^\\w+[\\.\\)]( )+ /, \"\"), t = this._checkForBullet(t)) : t = this._getHtmlNoBullet(e), r.remove(e), r.create(document, \"li\", {\n innerHTML: t\n });\n },\n _checkForBullet: function (e) {\n var t = r.create(document, \"p\", {\n innerHTML: e\n });\n return /^\\s*\\w+[\\.\\)]\\s+/.test(t.innerText) ? this._getHtmlNoBullet(t) : e;\n },\n _getHtmlNoBullet: function (e) {\n var t = r.name(e);\n return r.remove(e.firstChild), 3 == e.firstChild.nodeType && /^[ivxlcdm]+\\.$/i.test(e.firstChild.nodeValue) && r.remove(e.firstChild), /^( |\\s)+$/i.test(e.firstChild.innerHTML) && r.remove(e.firstChild), \"p\" != t ? \"<\" + t + \">\" + e.innerHTML + \"\" : e.innerHTML;\n },\n _guessUnorderedListStyle: function (e) {\n return /^[\\u2022\\u00b7\\u00FC\\u00D8\\u002dv-]/.test(e) ? null : /^o/.test(e) ? \"circle\" : \"square\";\n },\n _guessOrderedListStyle: function (e) {\n var t = null;\n return /^\\d/.test(e) || (t = (/^[a-z]/.test(e) ? \"lower-\" : \"upper-\") + (/^[ivxlcdm]/i.test(e) ? \"roman\" : \"alpha\")), t;\n },\n extractListLevels: function (e) {\n return e = e.replace(/style=['\"]?[^'\"]*?mso-list:\\s?[a-zA-Z]+(\\d+)\\s[a-zA-Z]+(\\d+)\\s(\\w+)/gi, function (e, n, i) {\n return t.format('data-list=\"{0}\" data-level=\"{1}\" {2}', n, i, e);\n });\n },\n _createList: function (e, t) {\n return r.create(document, e, {\n style: {\n listStyleType: t\n }\n });\n },\n lists: function (t) {\n var n,\n i,\n a,\n o,\n s,\n d,\n u,\n c,\n p,\n h,\n f,\n m,\n g,\n v = e(t).find(r.blockElements.join(\",\")),\n _ = -1,\n b = {},\n k = [\"p\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"];\n for (c = 0; c < v.length; c++) {\n p = v[c];\n var w = (g = e(p).data()).list;\n if (n = r.name(p), !!!e(p).parents(\"table\").length) {\n var y = this.listType(p, g);\n if (!(h = y && y.tag) || k.indexOf(n) < 0) p.innerHTML ? i && !d && i.appendChild(p) : r.remove(p);else if (!l.msie) {\n var x = h + w;\n b[f = g.level || parseFloat(p.style.marginLeft || 0)] || (b[f] = {}), (!a || a < 0) && (a = f, o = w, s = e(t).find(\"[data-list='\" + o + \"']\").last()[0], u = this._createList(h, y.style), r.insertBefore(u, p), _ = f, b[f][x] = u), d = s === p, m = b[f][x], (f > _ || !m) && (m = this._createList(h, y.style), b[f][x] = m, i.appendChild(m)), i = this._convertToLi(p), m.appendChild(i), d ? a = _ = -1 : _ = f;\n }\n }\n }\n },\n removeAttributes: function (e) {\n for (var t, n = e.attributes, i = n.length, a = [], o = function (e) {\n (function (e) {\n return [\"border\", \"background\", \"padding\"].filter(function (t) {\n return 0 === e.trim().indexOf(t);\n }).length > 0;\n })(e) && a.push(e.trim());\n }; i--;) \"colspan\" != r.name(n[i]) && (\"style\" !== (t = n[i]).name || \"TD\" !== e.nodeName && \"TH\" !== e.nodeName || t.value.split(\";\").forEach(o), e.removeAttributeNode(n[i]));\n a.length > 0 && e.setAttribute(\"style\", a.join(\";\"));\n },\n createColGroup: function (n) {\n var i = n.cells,\n a = e(n).closest(\"table\"),\n r = a.children(\"colgroup\");\n i.length < 2 || (r.length && (i = r.children(), r[0].parentNode.removeChild(r[0])), (r = e(e.map(i, function (e) {\n var n = e.width;\n return n && 0 !== parseInt(n, 10) ? t.format('', n) : \"\";\n }).join(\"\"))).is(\"colgroup\") || (r = e(\"\").append(r)), r.prependTo(a));\n },\n convertHeaders: function (t) {\n var n,\n i = t.cells,\n a = e.map(i, function (t) {\n var n = e(t).children(\"p\").children(\"strong\")[0];\n if (n && \"strong\" == r.name(n)) return n;\n });\n if (a.length == i.length) {\n for (n = 0; n < a.length; n++) r.unwrap(a[n]);\n for (e(t).closest(\"table\").find(\"colgroup\").after(\"\").end().find(\"thead\").append(t), n = 0; n < i.length; n++) r.changeTag(i[n], \"th\");\n }\n },\n removeParagraphs: function (t) {\n var n, i, a, o;\n for (n = 0; n < t.length; n++) for (this.removeAttributes(t[n]), i = 0, a = (o = e(t[n]).children(\"p\")).length; i < a; i++) i < a - 1 && r.insertAfter(r.create(document, \"br\"), o[i]), r.unwrap(o[i]);\n },\n removeTextNodes: function (e) {\n var t, n, i, a, o;\n for (t = 0; t < e.length; t++) for (i = (o = e[t]).childNodes, n = 0; n < i.length; n++) (a = i[n]).nodeType === r.nodeTypes.TEXT_NODE && o.removeChild(a);\n },\n tables: function (t) {\n var n,\n i,\n a,\n r,\n o,\n s = e(t).find(\"table\"),\n l = this;\n for (r = 0; r < s.length; r++) {\n for (a = i = (n = s[r].rows)[0], o = 1; o < n.length; o++) n[o].cells.length > a.cells.length && (a = n[o]);\n l.createColGroup(a), l.convertHeaders(i), l.removeAttributes(s[r]), l.removeParagraphs(s.eq(r).find(\"td,th\")), l.removeTextNodes(s.eq(r).find(\"tr\"));\n }\n },\n headers: function (t) {\n for (var n = e(t).find(\"p.MsoTitle\"), i = 0; i < n.length; i++) r.changeTag(n[i], \"h1\");\n },\n removeFormatting: function (t) {\n e(t).find(\"*\").each(function () {\n e(this).css({\n fontSize: \"\",\n fontFamily: \"\"\n }), this.getAttribute(\"style\") || this.style.cssText || this.removeAttribute(\"style\");\n });\n },\n clean: function (e) {\n var t,\n n = this,\n i = this.options;\n return i.none ? (e = c.fn.clean.call(n, e, this.junkReplacements), e = n.stripEmptyAnchors(e)) : (e = i.msConvertLists ? this.extractListLevels(e) : e, e = c.fn.clean.call(n, e), e = n.stripEmptyAnchors(e), t = r.create(document, \"div\", {\n innerHTML: e\n }), n.headers(t), i.msConvertLists && n.lists(t), n.tables(t), i.msAllFormatting && n.removeFormatting(t), e = t.innerHTML.replace(/(<[^>]*)\\s+class=\"?[^\"\\s>]*\"?/gi, \"$1\")), e;\n }\n }),\n m = c.extend({\n init: function (e) {\n c.fn.init.call(this, e), this.replacements = [/\\s+class=\"Apple-style-span[^\"]*\"/gi, \"\", /<(div|p|h[1-6])\\s+style=\"[^\"]*\"/gi, \"<$1\", /^
(.*)<\\/div>$/, \"$1\"];\n },\n applicable: function (e) {\n return /class=\"?Apple-style-span|style=\"[^\"]*-webkit-nbsp-mode/i.test(e);\n }\n }),\n g = c.extend({\n clean: function (e) {\n var t = r.create(document, \"div\", {\n innerHTML: e\n });\n return (t = this.cleanDom(t)).innerHTML;\n },\n cleanDom: function (e) {\n return e;\n }\n }),\n v = g.extend({\n cleanDom: function (t) {\n var n = this.collectTags();\n return e(t).find(n).each(function () {\n r.unwrap(this);\n }), t;\n },\n collectTags: function () {\n if (this.options.span) return \"span\";\n },\n applicable: function () {\n return this.options.span;\n }\n }),\n _ = g.extend({\n cleanDom: function (t) {\n var n = this.collectAttr();\n return e(t).find(\"[\" + n.join(\"],[\") + \"]\").removeAttr(n.join(\" \")), t;\n },\n collectAttr: function () {\n return this.options.css ? [\"class\", \"style\"] : [];\n },\n applicable: function () {\n return this.options.css;\n }\n }),\n b = function () {\n this.text = \"\", this.add = function (e) {\n this.text += e;\n };\n },\n k = n.extend({\n init: function (e) {\n this.separators = e || {\n text: \" \",\n line: \"
\"\n }, this.lines = [], this.inlineBlockText = [], this.resetLine();\n },\n appendText: function (e) {\n 3 === e.nodeType && (e = e.nodeValue), this.textContainer.add(e);\n },\n appendInlineBlockText: function (e) {\n this.inlineBlockText.push(e);\n },\n flashInlineBlockText: function () {\n this.inlineBlockText.length && (this.appendText(this.inlineBlockText.join(\" \")), this.inlineBlockText = []);\n },\n endLine: function () {\n this.flashInlineBlockText(), this.resetLine();\n },\n html: function () {\n var e = this.separators,\n t = \"\",\n n = this.lines;\n this.flashInlineBlockText();\n for (var i = 0, a = n.length, r = a - 1; i < a; i++) {\n for (var o = n[i], s = 0, l = o.length, d = l - 1; s < l; s++) {\n t += o[s].text, s !== d && (t += e.text);\n }\n i !== r && (t += e.line);\n }\n return t;\n },\n resetLine: function () {\n this.textContainer = new b(), this.line = [], this.line.push(this.textContainer), this.lines.push(this.line);\n }\n }),\n w = n.extend({\n init: function (e) {\n this.callback = e;\n },\n enumerate: function (e) {\n if (e) {\n var t = this.callback(e),\n n = e.firstChild;\n !t && n && this.enumerate(n), this.enumerate(e.nextSibling);\n }\n }\n }),\n y = c.extend({\n init: function (e) {\n c.fn.init.call(this, e), this.hasText = !1, this.enumerator = new w(this.buildText.bind(this));\n },\n clean: function (e) {\n var t = r.create(document, \"div\", {\n innerHTML: e\n });\n return this.cleanDom(t);\n },\n cleanDom: function (e) {\n return this.separators = this.getDefaultSeparators(), this.htmlLines = new k(this.separators), this.enumerator.enumerate(e.firstChild), this.hasText = !1, this.htmlLines.html();\n },\n buildText: function (e) {\n if (r.isDataNode(e)) {\n if (r.isEmptyspace(e)) return;\n this.htmlLines.appendText(e.nodeValue.replace(\"\\n\", this.separators.line)), this.hasText = !0;\n } else {\n if (r.isBlock(e) && this.hasText) return (this.actions[r.name(e)] || this.actions.block)(this, e);\n r.isBr(e) && this.htmlLines.appendText(this.separators.line);\n }\n },\n applicable: function () {\n var e = this.options;\n return e.all || e.keepNewLines;\n },\n getDefaultSeparators: function () {\n return this.options.all ? {\n text: \" \",\n line: \" \"\n } : {\n text: \" \",\n line: \"
\"\n };\n },\n actions: {\n ul: e.noop,\n ol: e.noop,\n table: e.noop,\n thead: e.noop,\n tbody: e.noop,\n td: function (e, t) {\n var n = new y({\n all: !0\n }).cleanDom(t);\n return e.htmlLines.appendInlineBlockText(n), !0;\n },\n block: function (e) {\n e.htmlLines.endLine();\n }\n }\n }),\n x = c.extend({\n clean: function (e) {\n return this.options.custom(e);\n },\n applicable: function () {\n return \"function\" == typeof this.options.custom;\n }\n });\n d(i, {\n Clipboard: u,\n Cleaner: c,\n ScriptCleaner: p,\n TabCleaner: h,\n MSWordFormatCleaner: f,\n WebkitFormatCleaner: m,\n HtmlTagsCleaner: v,\n HtmlAttrCleaner: _,\n HtmlContentCleaner: y,\n HtmlTextLines: k,\n CustomCleaner: x\n });\n }(window.kendo.jQuery), function (e) {\n var t = window.kendo,\n n = t.Class,\n i = t.ui.editor,\n a = i.RangeUtils,\n r = i.Dom,\n o = i.RestorePoint,\n s = i.Marker,\n l = t.support.browser,\n d = \"\\ufeff\",\n u = e.extend,\n c = r.nodeTypes,\n p = \"previousSibling\";\n function h(e, t, n) {\n for (var i = e ? e[t] : null; i && !n(i);) i = i[t];\n return i;\n }\n var f = \"td,th,caption\",\n m = \"table,tbody,thead,tfoot,tr\",\n g = function (t) {\n return !t.collapsed && e(t.commonAncestorContainer).is(m);\n },\n v = n.extend({\n remove: function (t) {\n var n = new s();\n n.add(t, !1);\n var i = a.getAll(t, function (t) {\n return e(t).is(\"table,tbody,thead,tfoot,tr,td,th,caption\");\n }),\n o = a.documentFromRange(t),\n l = n.start,\n d = n.end,\n u = f.split(\",\"),\n c = r.parentOfType(l, u),\n p = r.parentOfType(d, u);\n this._removeContent(l, c, !0), this._removeContent(d, p, !1), e(i).each(function (t, n) {\n ((n = e(n)).is(f) ? n : n.find(f)).each(function (e, t) {\n t.innerHTML = \"\";\n });\n }), c && !l.previousSibling && r.insertBefore(o.createTextNode(\"\\ufeff\"), l), p && !d.nextSibling && r.insertAfter(o.createTextNode(\"\\ufeff\"), d), c ? t.setStartBefore(l) : i[0] && (c = (c = e(i[0])).is(f) ? c : c.find(f).first()).length && t.setStart(c.get(0), 0), t.collapse(!0), r.remove(l), r.remove(d);\n },\n _removeContent: function (t, n, i) {\n if (n) {\n var a,\n o = i ? \"nextSibling\" : \"previousSibling\",\n s = function (t) {\n for (; t && !t[o];) t = t.parentNode;\n return t && e.contains(n, t) ? t[o] : null;\n };\n for (t = s(t); t;) a = s(t), r.remove(t), t = a;\n }\n }\n }),\n _ = n.extend({\n init: function (e) {\n this.editor = e;\n },\n keydown: function (t) {\n var n = this,\n a = n.editor,\n r = a.keyboard,\n s = r.isTypingKey(t),\n d = u(e.Event(), t);\n if (n.editor.trigger(\"keydown\", d), d.isDefaultPrevented()) return t.preventDefault(), !0;\n if (!d.isDefaultPrevented() && s && !r.isTypingInProgress()) {\n var c = a.getRange(),\n p = a.body;\n if (n.startRestorePoint = new o(c, p), g(c)) new v(a).remove(c), a.selectRange(c);\n if (l.webkit && !c.collapsed && function (e, t) {\n return t.startContainer === e && t.endContainer === e && 0 === t.startOffset && t.endOffset == e.childNodes.length;\n }(p, c) && (p.innerHTML = \"\"), a.immutables && i.Immutables.immutablesContext(c)) new i.BackspaceHandler(a).deleteSelection(c);\n return r.startTyping(function () {\n n._removeBomSpan(), n.endRestorePoint = i._finishUpdate(a, n.startRestorePoint);\n }), !0;\n }\n return !1;\n },\n keyup: function (e) {\n var t = this.editor.keyboard;\n return this.editor.trigger(\"keyup\", e), !!t.isTypingInProgress() && (t.endTyping(), !0);\n },\n _removeBomSpan: function () {\n var e = this.editor.getRange().commonAncestorContainer;\n r.emptyNode(e) || (3 === e.nodeType && (e = e.parentNode), r.insignificant(e) && (e.textContent = r.stripBom(e.textContent), r.unwrap(e)));\n }\n }),\n b = n.extend({\n init: function (e) {\n this.editor = e;\n },\n _addCaret: function (e) {\n var n = r.create(this.editor.document, \"a\");\n return !t.support.browser.chrome && e.firstChild && e.firstChild.nodeType === c.ELEMENT_NODE && (e = e.firstChild), r.insertAt(e, n, 0), r.stripBomNode(n.previousSibling), r.stripBomNode(n.nextSibling), n;\n },\n _restoreCaret: function (e) {\n var t = this.editor.createRange();\n !e.nextSibling && r.isDataNode(e.previousSibling) ? t.setStart(e.previousSibling, e.previousSibling.length) : t.setStartAfter(e), t.collapse(!0), this.editor.selectRange(t), r.remove(e);\n },\n _handleDelete: function (e) {\n var t = e.endContainer,\n n = r.closestEditableOfType(t, r.blockElements);\n if (n && i.RangeUtils.isEndOf(e, n)) {\n var a = r.next(n);\n if (!a || \"p\" != r.name(a)) return !1;\n var o = r.significantChildNodes(a)[0];\n o = o && r.isInline(o) ? o : a;\n var s = this._addCaret(o);\n return this._merge(n, a), this._restoreCaret(s), !0;\n }\n return !1;\n },\n _cleanBomBefore: function (e) {\n for (var t = e.startOffset, n = e.startContainer, i = n.nodeValue, a = 0; t - a >= 0 && \"\\ufeff\" == i[t - a - 1];) a++;\n a > 0 && (n.deleteData(t - a, a), e.setStart(n, Math.max(0, t - a)), e.collapse(!0), this.editor.selectRange(e));\n },\n _handleBackspace: function (t) {\n var n,\n a = t.startContainer,\n o = r.closestEditableOfType(a, [\"li\"]),\n s = r.closestEditableOfType(a, \"p,h1,h2,h3,h4,h5,h6\".split(\",\")),\n l = this.editor;\n if (r.isDataNode(a)) {\n if (t.collapsed && /^\\s[\\ufeff]+$/.test(a.nodeValue)) return t.setStart(a, 0), t.setEnd(a, a.length), l.selectRange(t), !1;\n this._cleanBomBefore(t);\n }\n n = h(s, p, function (e) {\n return !r.htmlIndentSpace(e);\n }), t.collapsed && t.startOffset !== t.endOffset && t.startOffset < 0 && (t.startOffset = 0, t.endOffset = 0, l.selectRange(t));\n var d = o && i.RangeUtils.isStartOf(t, o),\n u = o && e(o).index(),\n c = d && u > 0;\n if (c && (s = o, n = r.prev(o)), s && n && r.is(n, \"table\") && i.RangeUtils.isStartOf(t, s)) return \"\" === s.innerText && (s.innerHTML = \"\\ufeff\"), !0;\n if (i.RangeUtils.isStartOf(t, s) && parseInt(s.style.marginLeft, 10) > 0) return l.exec(\"outdent\"), !0;\n if (s && n && i.RangeUtils.isStartOf(t, s) || c) {\n var f = r.significantChildNodes(s)[0];\n f = f && r.isInline(f) ? f : s;\n var m = this._addCaret(f);\n return this._merge(n, s), this._restoreCaret(m), !0;\n }\n if (d && 0 === u) {\n var g = o.firstChild;\n g || (o.innerHTML = i.emptyElementContent, g = o.firstChild);\n var v = new i.ListFormatter(r.name(o.parentNode), \"p\");\n return t.selectNodeContents(o), v.toggle(t), r.insignificant(g) ? t.setStartBefore(g) : t.setStart(g, 0), l.selectRange(t), !0;\n }\n var _ = a.childNodes[t.startOffset - 1],\n b = t,\n k = _ && r.closestEditableOfType(_, [\"a\"]),\n w = h(_ || a, p, function (e) {\n return !r.isDataNode(e) || !r.isBom(e) && e.length > 0;\n });\n if ((k || (0 === t.startOffset || _) && r.is(w, \"a\")) && (k = k || w, (b = l.createRange()).setStart(k, k.childNodes.length), b.collapse(!0)), (k = k || r.closestEditableOfType(_ || b.startContainer, [\"a\"])) && i.RangeUtils.isEndOf(b, k)) {\n var y = new i.UnlinkCommand({\n range: b,\n body: l.body,\n immutables: !!l.immutables\n });\n l.execCommand(y), l._selectionChange();\n }\n return !1;\n },\n _handleSelection: function (t) {\n var n,\n a = t.commonAncestorContainer,\n o = r.closest(a, \"table\"),\n l = i.emptyElementContent,\n d = this.editor;\n if (g(t)) return new v(d).remove(t), d.selectRange(t), !0;\n var u = new s();\n u.add(t, !1), t.commonAncestorContainer === d.body && this._surroundFullyContent(u, t), d.immutables && this._handleImmutables(u), this._surroundFullySelectedAnchor(u, t), t.setStartAfter(u.start), t.setEndBefore(u.end);\n var c = t.startContainer,\n p = t.endContainer;\n return t.deleteContents(), \"li\" === p.tagName.toLocaleLowerCase() && r.emptyNode(p) && (t.selectNode(p), t.deleteContents()), o && \"\" === e(o).text() && (t.selectNode(o), t.deleteContents()), a = t.commonAncestorContainer, \"p\" === r.name(a) && \"\" === a.innerHTML && (a.innerHTML = l, t.setStart(a, 0)), this._join(c, p), r.insertAfter(d.document.createTextNode(\"\\ufeff\"), u.start), u.remove(t), c = t.startContainer, \"tr\" == r.name(c) && (c = c.childNodes[Math.max(0, t.startOffset - 1)], t.setStart(c, r.getNodeLength(c))), t.collapse(!0), d.selectRange(t), n = c.parentElement || c.parentNode, r.isDataNode(c) && !r.emptyNode(n) && this._cleanBomBefore(t), !0;\n },\n _handleImmutables: function (e) {\n var t = i.Immutables.immutableParent,\n n = t(e.start),\n a = t(e.start);\n n && r.insertBefore(e.start, n), a && r.insertAfter(e.end, a), n && r.remove(n), a && a.parentNode && r.remove(a);\n },\n _surroundFullyContent: function (e, t) {\n var n = t.commonAncestorContainer.children,\n i = n[0],\n a = n[n.length - 1];\n this._moveMarker(e, t, i, a);\n },\n _surroundFullySelectedAnchor: function (t, n) {\n var i = t.start,\n a = e(i).closest(\"a\").get(0),\n r = t.end,\n o = e(r).closest(\"a\").get(0);\n this._moveMarker(t, n, a, o);\n },\n _moveMarker: function (e, t, n, i) {\n var o = e.start,\n s = e.end;\n n && a.isStartOf(t, n) && r.insertBefore(o, n), i && a.isEndOf(t, i) && r.insertAfter(s, i);\n },\n _root: function (e) {\n for (; e && \"body\" != r.name(e) && e.parentNode && \"body\" != r.name(e.parentNode);) e = e.parentNode;\n return e;\n },\n _join: function (e, t) {\n (e = this._root(e)) != (t = this._root(t)) && r.is(t, \"p\") && this._merge(e, t);\n },\n _merge: function (e, t) {\n for (r.removeTrailingBreak(e); e && t.firstChild;) 1 == e.nodeType ? (e = r.list(e) ? e.children[e.children.length - 1] : e) && e.appendChild(t.firstChild) : e.nodeType === c.TEXT_NODE ? this._mergeWithTextNode(e, t.firstChild) : e.parentNode.appendChild(t.firstChild);\n r.remove(t);\n },\n _mergeWithTextNode: function (e, t) {\n e && e.nodeType === c.TEXT_NODE && (e.nextSibling && this._isCaret(e.nextSibling) ? r.insertAfter(t, e.nextSibling) : r.insertAfter(t, e));\n },\n _isCaret: function (t) {\n return e(t).is(\"a\");\n },\n keydown: function (e) {\n var n,\n a,\n r = this.editor,\n s = r.getRange(),\n l = e.keyCode,\n d = t.keys,\n u = l === d.BACKSPACE,\n c = l == d.DELETE;\n r.immutables && r.immutables.keydown(e, s) || (!u && !c || s.collapsed ? u ? n = \"_handleBackspace\" : c && (n = \"_handleDelete\") : n = \"_handleSelection\", n && (a = new o(s, r.body), this[n](s) && (e.preventDefault(), i._finishUpdate(r, a))));\n },\n deleteSelection: function (e) {\n this._handleSelection(e);\n },\n keyup: e.noop\n }),\n k = n.extend({\n init: function (e) {\n this.editor = e, this.systemCommandIsInProgress = !1;\n },\n createUndoCommand: function () {\n this.startRestorePoint = this.endRestorePoint = i._finishUpdate(this.editor, this.startRestorePoint);\n },\n changed: function () {\n return !!this.startRestorePoint && this.startRestorePoint.html != this.editor.body.innerHTML;\n },\n keydown: function (e) {\n var t = this,\n n = t.editor,\n i = n.keyboard;\n return i.isModifierKey(e) ? (i.isTypingInProgress() && i.endTyping(!0), t.startRestorePoint = new o(n.getRange(), n.body), !0) : !!i.isSystem(e) && (t.systemCommandIsInProgress = !0, t.changed() && (t.systemCommandIsInProgress = !1, t.createUndoCommand()), !0);\n },\n keyup: function () {\n var e = this;\n return !(!e.systemCommandIsInProgress || !e.changed()) && (e.systemCommandIsInProgress = !1, e.createUndoCommand(), !0);\n }\n }),\n w = n.extend({\n init: function (e) {\n this.editor = e;\n },\n keydown: function (e) {\n !l.webkit || e.isDefaultPrevented() || !e.ctrlKey || 65 != e.keyCode || e.altKey || e.shiftKey || (this.editor.options.immutables && this._toSelectableImmutables(), this._selectEditorBody());\n },\n _selectEditorBody: function () {\n var e = this.editor,\n t = e.getRange();\n t.selectNodeContents(e.body), setTimeout(function () {\n e.selectRange(t);\n });\n },\n _toSelectableImmutables: function () {\n for (var t = this.editor.body, n = i.Immutables.immutable, a = r.emptyTextNode, o = t.firstChild, s = t.lastChild; a(o);) o = o.nextSibling;\n for (; a(s);) s = s.previousSibling;\n o && n(o) && e(d).prependTo(t), s && n(s) && e(d).appendTo(t);\n },\n keyup: e.noop\n }),\n y = n.extend({\n init: function (e) {\n this.handlers = e, this.typingInProgress = !1;\n },\n isCharacter: function (e) {\n return e >= 48 && e <= 90 || e >= 96 && e <= 111 || e >= 186 && e <= 192 || e >= 219 && e <= 222 || 229 == e;\n },\n toolFromShortcut: function (t, n) {\n var i,\n a,\n r = String.fromCharCode(n.keyCode),\n o = this._getShortcutModifier(n, navigator.platform);\n for (i in t) if (((a = e.extend({\n ctrl: !1,\n alt: !1,\n shift: !1\n }, t[i].options)).key == r || a.key == n.keyCode) && a.ctrl == o && a.alt == n.altKey && a.shift == n.shiftKey) return i;\n },\n _getShortcutModifier: function (e, t) {\n return t.toUpperCase().indexOf(\"MAC\") >= 0 ? e.metaKey : e.ctrlKey;\n },\n toolsFromShortcut: function (t, n) {\n var i,\n a,\n r = String.fromCharCode(n.keyCode),\n o = [],\n s = function (e) {\n return e == r || e == n.keyCode || e == n.charCode;\n };\n for (i in t) a = e.extend({\n ctrl: !1,\n alt: !1,\n shift: !1\n }, t[i].options), (Array.isArray(a.key) ? e.grep(a.key, s).length > 0 : s(a.key)) && a.ctrl == n.ctrlKey && a.alt == n.altKey && a.shift == n.shiftKey && o.push(t[i]);\n return o;\n },\n isTypingKey: function (e) {\n var t = e.keyCode;\n return this.isCharacter(t) && !e.ctrlKey && !e.altKey || 32 == t || 13 == t || 8 == t || 46 == t && !e.shiftKey && !e.ctrlKey && !e.altKey;\n },\n isModifierKey: function (e) {\n var t = e.keyCode;\n return 17 == t && !e.shiftKey && !e.altKey || 16 == t && !e.ctrlKey && !e.altKey || 18 == t && !e.ctrlKey && !e.shiftKey;\n },\n isSystem: function (e) {\n return 46 == e.keyCode && e.ctrlKey && !e.altKey && !e.shiftKey;\n },\n startTyping: function (e) {\n this.onEndTyping = e, this.typingInProgress = !0;\n },\n stopTyping: function () {\n this.typingInProgress && this.onEndTyping && this.onEndTyping(), this.typingInProgress = !1;\n },\n endTyping: function (e) {\n var t = this;\n t.clearTimeout(), e ? t.stopTyping() : t.timeout = window.setTimeout(t.stopTyping.bind(t), 1e3);\n },\n isTypingInProgress: function () {\n return this.typingInProgress;\n },\n clearTimeout: function () {\n window.clearTimeout(this.timeout);\n },\n notify: function (e, t) {\n var n,\n i = this.handlers;\n for (n = 0; n < i.length && !i[n][t](e); n++);\n },\n keydown: function (e) {\n this.notify(e, \"keydown\");\n },\n keyup: function (e) {\n this.notify(e, \"keyup\");\n }\n });\n u(i, {\n TypingHandler: _,\n SystemHandler: k,\n BackspaceHandler: b,\n SelectAllHandler: w,\n Keyboard: y\n });\n }(window.kendo.jQuery), function (e) {\n var t = window.kendo.ui.editor,\n n = t.Command,\n i = t.EditorUtils,\n a = i.registerTool,\n r = t.Tool,\n o = t.ToolTemplate,\n s = e.extend,\n l = n.extend({\n init: function (e) {\n this.async = !0, n.fn.init.call(this, e);\n },\n exec: function () {\n var e = this,\n t = e.lockRange(!0),\n n = e.editor;\n n._destroyResizings(), n.saveAsPDF().then(function () {\n e.releaseRange(t), n._initializeColumnResizing(), n._initializeRowResizing(), n._initializeElementResizing();\n });\n }\n });\n s(t, {\n ExportPdfCommand: l\n }), a(\"pdf\", new r({\n command: l,\n template: new o({\n template: i.buttonTemplate,\n title: \"Export PDF\"\n })\n }));\n }(window.kendo.jQuery), function (e) {\n var t = window.kendo,\n n = t.ui.editor,\n i = n.Command,\n a = n.EditorUtils,\n r = a.registerTool,\n o = n.Tool,\n s = n.ToolTemplate,\n l = e.extend,\n d = i.extend({\n init: function (e) {\n i.fn.init.call(this, e), this.managesUndoRedo = !0;\n },\n exec: function () {\n var e = this.editor;\n t.support.browser.msie ? e.document.execCommand(\"print\", !1, null) : e.window.print && e.window.print();\n }\n });\n l(n, {\n PrintCommand: d\n }), r(\"print\", new o({\n command: d,\n template: new s({\n template: a.buttonTemplate,\n title: \"Print\"\n })\n }));\n }(window.kendo.jQuery), function (e) {\n var t = window.kendo.ui.editor,\n n = t.Tool,\n i = t.Command,\n a = t.ToolTemplate,\n r = t.EditorUtils,\n o = t.Dom,\n s = t.RangeUtils,\n l = r.registerTool,\n d = i.extend({\n init: function (e) {\n i.fn.init.call(this, e);\n },\n exec: function () {\n var e = this.lockRange(!0);\n this.inlineStyles = [], this.blockStyles = [], this.collectStyles(e), this.editor.inlineStyles = this.inlineStyles, this.editor.blockStyles = this.blockStyles, this.releaseRange(e);\n },\n collectStyles: function (e) {\n var t,\n n = s.nodes(e);\n for (t = 1 === n.length ? n[0].parentNode : e.startContainer; t && !o.is(t, \"body\") && \"editor\" !== t.getAttribute(\"data-role\");) o.isBlock(t) ? (this.populateStyles(t, \"blockStyles\"), t = o.is(t, \"li\") ? t.parentNode : null) : (this.populateStyles(t, \"inlineStyles\"), t = t.parentNode);\n },\n populateStyles: function (e, t) {\n var n,\n i,\n a,\n r,\n o,\n s = e.style,\n l = e.attributes,\n d = {\n tags: [e.tagName],\n attr: {\n style: {}\n }\n };\n for (o = 0; s && o < s.length; o++) n = s[i = s[o]], d.attr.style[i] = n;\n for (o = 0; l && o < l.length; o++) a = l[o].nodeName, r = l[o].nodeValue, \"style\" !== a && (\"class\" === a ? d.attr.className = r : d.attr[a] = r);\n this[t].push(d);\n }\n }),\n u = i.extend({\n init: function (e) {\n i.fn.init.call(this, e);\n },\n exec: function () {\n var e,\n t = this.lockRange(!0),\n n = s.getMarkers(t),\n i = this.editor,\n a = i.inlineStyles,\n r = i.blockStyles;\n (a && 0 !== a.length || r && 0 !== r.length) && (3 === n.length && (this.marker.removeCaret(t), this.marker.caret = null), this.removeEmptyElementsFromRange(t), e = s.nodes(t), this.cleanInlineParents(e), o.normalize(t.commonAncestorContainer), 2 === n.length ? (t.setStartAfter(n[0]), t.setEndBefore(n[1])) : (t.setStartBefore(e[0]), t.setEndAfter(e[0])), (e = s.nodes(t)) && r && r.length && this.applyBlockStyles(e, r), e && a && a.length && this.applyInlineStyles(e, a), this.releaseRange(t));\n },\n removeEmptyElementsFromRange: function (e) {\n var t, n;\n if ((t = s.getAll(e, function (e) {\n return o.isInline(e) && !e.firstChild && !o.isMarker(e);\n })) && t.length > 0) for (n = 0; n < t.length; n++) t[n].parentNode.removeChild(t[n]);\n },\n cleanInlineParents: function (e) {\n var t, n, i, a, r, s, l;\n for (t = 0; t < e.length; t++) if (i = (n = e[t]).parentNode, !this.immutableParent(n)) for (; i && o.isInline(i);) {\n for (a = i.childNodes, r = 0; r < a.length; r++) s = a[r], o.isMarker(s) || s === n || ((l = i.cloneNode(!0)).innerHTML = \"\", o.wrap(s, l));\n o.unwrap(i), i = n.parentNode;\n }\n },\n applyBlockStyles: function (e, t) {\n var n,\n i,\n a,\n r,\n s,\n l,\n d,\n u,\n c,\n p,\n h,\n f,\n m,\n g,\n v,\n _ = t[0].tags[0],\n b = t[0].attr,\n k = this.editor.document;\n for (n = 0, i = e.length; n < i; n++) if (a = e[n], !o.isWhitespace(a) && !this.immutableParent(a)) if (\"BODY\" !== (s = o.blockParentOrBody(a)).tagName && s.tagName !== _) {\n if (\"LI\" !== s.tagName && \"TD\" !== s.tagName && \"TH\" !== s.tagName) {\n for (d = [], u = [], c = a.previousSibling, p = a.nextSibling; c;) o.isMarker(c) || d.push(c), c = c.previousSibling;\n if (d.length) for ((h = s.cloneNode(!0)).innerHTML = \"\", o.insertBefore(h, d[0]), g = 0; g < d.length; g++) m = d[g], o.insertAt(h, m, 0);\n for (; p;) o.isMarker(p) || u.push(p), p = p.nextSibling;\n if (u.length) for ((f = s.cloneNode(!0)).innerHTML = \"\", o.insertBefore(f, u[0]), g = 0; g < u.length; g++) m = u[g], f.appendChild(m);\n o.unwrap(s);\n }\n r = o.create(k, _, b), o.wrap(a, r);\n } else s.tagName === _ && o.attr(s, b);\n if (s && 2 === t.length && \"LI\" !== s.tagName && \"LI\" === _) {\n for (v = []; o.is(r, \"li\");) v.push(r), r = o.prev(r);\n for (l = o.create(k, t[1].tags[0], t[1].attr), o.insertBefore(l, v[v.length - 1]), l.appendChild(v[0]), n = 1, i = v.length; n < i; n++) o.insertBefore(v[n], l.firstChild);\n } else s && 2 === t.length && \"LI\" !== s.tagName && (l = o.create(k, t[1].tags[0], t[1].attr), o.wrap(r, l));\n },\n applyInlineStyles: function (e, t) {\n var n,\n i,\n a,\n r,\n s,\n l,\n d = this.editor.document;\n for (r = 0; r < t.length; r++) n = t[r], i = o.create(d, n.tags[0], n.attr), a && i.appendChild(a), a = i;\n if (a) for (r = 0; r < e.length; r++) if (l = e[r], !o.isWhitespace(l) && !this.immutableParent(l)) {\n for (s = a.cloneNode(!0), o.insertBefore(s, l); s.children && s.children.length;) s = s.children[0];\n s.appendChild(l);\n }\n },\n immutables: function () {\n return this.editor && this.editor.options.immutables;\n },\n immutableParent: function (e) {\n return this.immutables() && t.Immutables.immutableParent(e);\n }\n }),\n c = n.extend({\n init: function (e) {\n n.fn.init.call(this, e);\n },\n command: function (e) {\n return new d(e);\n }\n }),\n p = n.extend({\n init: function (e) {\n n.fn.init.call(this, e);\n },\n command: function (e) {\n return new u(e);\n }\n });\n e.extend(t, {\n CopyFormatCommand: d,\n ApplyFormatCommand: u,\n CopyFormatTool: c,\n ApplyFormatTool: p\n }), l(\"copyFormat\", new c({\n template: new a({\n template: r.buttonTemplate,\n title: \"Copy format\"\n })\n })), l(\"applyFormat\", new p({\n template: new a({\n template: r.buttonTemplate,\n title: \"Apply format\"\n })\n }));\n }(window.kendo.jQuery), function (e, t) {\n var n = window,\n i = n.Math,\n a = i.min,\n r = i.max,\n o = n.parseFloat,\n s = e.jQuery,\n l = s.extend,\n d = e.ui.editor,\n u = /(\\d+)(\\.?)(\\d*)%/,\n c = /(\\d+)(\\.?)(\\d*)px/,\n p = \"string\";\n function h(e) {\n return typeof e === p && u.test(e);\n }\n l(d, {\n ResizingUtils: {\n constrain: function (e) {\n var t = e.value,\n n = e.min,\n i = e.max;\n return r(a(o(t), o(i)), o(n));\n },\n getScrollBarWidth: function (t) {\n return t && !s(t).is(\"body\") && t.scrollHeight > t.clientHeight ? e.support.scrollbar() : 0;\n },\n calculatePercentageRatio: function (e, t) {\n return h(e) ? o(e) : o(e) / t * 100;\n },\n inPercentages: h,\n inPixels: function (e) {\n return typeof e === p && c.test(e);\n },\n toPercentages: function (e) {\n return o(e) + \"%\";\n },\n toPixels: function (e) {\n return o(e) + \"px\";\n }\n }\n });\n }(window.kendo), function (e, t) {\n var n = e.jQuery,\n i = n.extend,\n a = n.noop,\n r = e.ui.editor,\n o = e.Class,\n s = \"keydown\",\n l = \"mouseleave\",\n d = \"mouseup\",\n u = \"table\",\n c = o.extend({\n init: function (e, t) {\n var a = this;\n a.options = i({}, a.options, t), a.options.tags = Array.isArray(a.options.tags) ? a.options.tags : [a.options.tags], n(e).is(u) && (a.element = e, a._attachEventHandlers());\n },\n destroy: function () {\n var e = this,\n t = e.options.eventNamespace;\n e.element && (n(e.element).off(t), e.element = null), n(e.options.rootElement).off(s + t), e._destroyResizeHandle();\n },\n options: {\n tags: [],\n min: 0,\n rootElement: null,\n eventNamespace: \"\",\n rtl: !1,\n handle: {\n dataAttribute: \"\",\n height: 0,\n width: 0,\n classNames: {},\n template: \"\"\n }\n },\n _attachEventHandlers: function () {\n var e = this,\n t = e.options;\n n(e.element).on(\"mousemove\" + t.eventNamespace, t.tags.join(\",\"), e.detectElementBorderHovering.bind(e));\n },\n resizingInProgress: function () {\n var e = this._resizable;\n return !!e && !!e.resizing;\n },\n resize: a,\n detectElementBorderHovering: function (e) {\n var t = this,\n i = t.options.handle,\n a = n(e.currentTarget),\n r = t.resizeHandle,\n o = i.dataAttribute;\n t.resizingInProgress() || (!a.is(\":last-child\") && t.elementBorderHovered(a, e) ? r ? r.data(o) && r.data(o) !== a[0] && t.showResizeHandle(a, e) : t.showResizeHandle(a, e) : r && t._destroyResizeHandle());\n },\n elementBorderHovered: a,\n showResizeHandle: function (e, t) {\n var n = this;\n 0 === t.buttons && (n._initResizeHandle(), n.setResizeHandlePosition(e), n.setResizeHandleDimensions(), n.setResizeHandleDataAttributes(e[0]), n._attachResizeHandleEventHandlers(), n._initResizable(e), n._hideResizeMarker(), n.resizeHandle.show());\n },\n _initResizeHandle: function () {\n var e = this,\n t = e.options;\n e._destroyResizeHandle(), e.resizeHandle = n(t.handle.template).appendTo(t.rootElement);\n },\n setResizeHandlePosition: a,\n setResizeHandleDimensions: a,\n setResizeHandleDataAttributes: function (e) {\n this.resizeHandle.data(this.options.handle.dataAttribute, e);\n },\n _attachResizeHandleEventHandlers: function () {\n var e = this,\n t = e.options,\n n = t.eventNamespace,\n i = t.handle.classNames.marker,\n a = e.resizeHandle;\n e.resizeHandle.on(\"mousedown\" + n, function () {\n a.find(\".\" + i).show();\n }).on(d + n, function () {\n a.find(\".\" + i).hide();\n });\n },\n _hideResizeMarker: function () {\n this.resizeHandle.find(\".\" + this.options.handle.classNames.marker).hide();\n },\n _destroyResizeHandle: function () {\n var e = this;\n e.resizeHandle && (e._destroyResizable(), e.resizeHandle.off(e.options.eventNamespace).remove(), e.resizeHandle = null);\n },\n _initResizable: function (t) {\n var n = this;\n n.resizeHandle && (n._destroyResizable(), n._resizable = new e.ui.Resizable(t, {\n draggableElement: n.resizeHandle[0],\n start: n.onResizeStart.bind(n),\n resize: n.onResize.bind(n),\n resizeend: n.onResizeEnd.bind(n)\n }));\n },\n _destroyResizable: function () {\n var e = this;\n e._resizable && (e._resizable.destroy(), e._resizable = null);\n },\n onResizeStart: function () {\n this._disableKeyboard();\n },\n onResize: function (e) {\n this.setResizeHandleDragPosition(e);\n },\n setResizeHandleDragPosition: a,\n onResizeEnd: function (e) {\n var t = this;\n t.resize(e), t._destroyResizeHandle(), t._enableKeyboard();\n },\n _enableKeyboard: function () {\n var e = this.options;\n n(e.rootElement).off(s + e.eventNamespace);\n },\n _disableKeyboard: function () {\n var e = this.options;\n n(e.rootElement).on(s + e.eventNamespace, function (e) {\n e.preventDefault();\n });\n },\n _forceResizing: function (e) {\n var t = this._resizable;\n t && t.userEvents && t.userEvents._end(e);\n }\n }),\n p = o.extend({\n create: function (e, t) {\n var i = this,\n a = t.name,\n r = t.eventNamespace;\n n(e.body).on(\"mouseenter\" + r, u, function (n) {\n var r = n.currentTarget,\n o = e[a];\n n.stopPropagation(), o ? o.element === r || o.resizingInProgress() || (i._destroyResizing(e, t), i._initResizing(e, r, t)) : i._initResizing(e, r, t);\n }).on(l + r, u, function (r) {\n var o,\n s = e[a];\n r.stopPropagation(), !s || s.resizingInProgress() || s.resizeHandle || (o = n(s.element).parents(u)[0]) && (i._destroyResizing(e, t), i._initResizing(e, o, t));\n }).on(l + r, function () {\n var n = e[a];\n n && !n.resizingInProgress() && i._destroyResizing(e, t);\n }).on(d + r, function (r) {\n var o,\n s = e[a];\n s && s.resizingInProgress() && (o = n(r.target).parents(u)[0]) && (s._forceResizing(r), i._destroyResizing(e, t), i._initResizing(e, o, t));\n });\n },\n dispose: function (e, t) {\n n(e.body).off(t.eventNamespace);\n },\n _initResizing: function (t, n, i) {\n var a = i.name,\n r = i.type;\n t[a] = new r(n, {\n rtl: e.support.isRtl(t.element),\n rootElement: t.body\n });\n },\n _destroyResizing: function (e, t) {\n var n = t.name;\n e[n] && (e[n].destroy(), e[n] = null);\n }\n });\n p.current = new p(), c.create = function (e, t) {\n p.current.create(e, t);\n }, c.dispose = function (e, t) {\n p.current.dispose(e, t);\n }, i(r, {\n TableElementResizing: c\n });\n }(window.kendo), function (e, t) {\n var n = window.Math.abs,\n i = e.jQuery,\n a = i.extend,\n r = e.ui.editor,\n o = r.Dom,\n s = r.TableElementResizing,\n l = r.ResizingUtils,\n d = l.constrain,\n u = l.calculatePercentageRatio,\n c = l.getScrollBarWidth,\n p = l.inPercentages,\n h = l.toPercentages,\n f = l.toPixels,\n m = e._outerWidth,\n g = \".kendoEditorColumnResizing\",\n v = \"k-column-resize-handle\",\n _ = \"k-column-resize-marker\",\n b = \"body\",\n k = \"tbody\",\n w = \"thead\",\n y = \"tr\",\n x = \"col-index\",\n C = \",\",\n T = s.extend({\n options: {\n tags: [\"td\", \"th\"],\n min: 20,\n rootElement: null,\n eventNamespace: g,\n rtl: !1,\n handle: {\n dataAttribute: \"column\",\n width: 10,\n height: 0,\n classNames: {\n handle: v,\n marker: _\n },\n template: '
'\n }\n },\n elementBorderHovered: function (e, t) {\n var n = this.options,\n a = n.handle.width,\n r = e.offset().left + (n.rtl ? 0 : m(e)),\n o = t.clientX + i(e[0].ownerDocument).scrollLeft();\n return o > r - a && o < r + a;\n },\n setResizeHandlePosition: function (t) {\n var n = this,\n a = i(n.element.tHead || n.element.tBodies[0]),\n r = n.options,\n o = r.rtl,\n s = r.handle.width,\n l = i(r.rootElement),\n d = l.is(b) ? 0 : l.scrollTop(),\n u = l.is(b) ? 0 : e.scrollLeft(l),\n p = o ? 0 : m(t),\n h = o ? c(l[0]) : 0,\n f = t.offset().left - (l.offset().left + parseFloat(l.css(\"borderLeftWidth\"))) - parseFloat(t.css(\"marginLeft\")),\n g = a.offset().top - (l.offset().top + parseFloat(l.css(\"borderTopWidth\"))) - parseFloat(a.css(\"marginTop\")),\n v = e.support.browser;\n o && (v.mozilla || v.webkit && v.version >= 85) && (u *= -1), n.resizeHandle.css({\n top: g + d,\n left: f + p + (u - h) - s / 2,\n position: \"absolute\"\n });\n },\n setResizeHandleDimensions: function () {\n var e = this,\n t = i(e.element).children(w),\n n = i(e.element).children(k),\n a = t.length > 0 ? t.height() + n.height() : n.height();\n e.resizeHandle.css({\n width: e.options.handle.width,\n height: a\n });\n },\n setResizeHandleDragPosition: function (t) {\n var n = this,\n a = i(i(t.currentTarget).data(n.options.handle.dataAttribute)),\n r = n.options,\n o = i(r.rootElement),\n s = r.handle ? r.handle.width : 0,\n l = r.min,\n u = r.rtl,\n p = m(a),\n h = a.offset().left - (o.offset().left + parseFloat(o.css(\"borderLeftWidth\"))) - parseFloat(a.css(\"marginLeft\")),\n f = m(a.next()),\n g = i(n.resizeHandle),\n v = o.is(b) ? 0 : e.scrollLeft(o),\n _ = u ? c(o[0]) : 0,\n k = g.offset().left - (o.offset().left + parseFloat(o.css(\"borderLeftWidth\"))) - parseFloat(g.css(\"marginLeft\")),\n w = e.support.browser;\n u && (w.mozilla || w.webkit && w.version >= 85) && (v *= -1);\n var y = d({\n value: k + (v - _) + t.x.delta,\n min: h + (v - _) - (u ? f : 0) + l,\n max: h + p + (v - _) + (u ? 0 : f) - s - l\n });\n g.css({\n left: y\n });\n },\n resize: function (e) {\n var t,\n n,\n a,\n r,\n s,\n l = this,\n u = i(i(e.currentTarget).data(l.options.handle.dataAttribute)),\n c = l.options,\n p = c.rtl ? -1 : 1,\n h = c.min,\n f = p * e.x.initialDelta;\n o.reMapTableColumns(l.element, x), r = parseInt(u.attr(x), 10), u.prop(\"colSpan\") > 1 && (u = i(l.element).find(\"[col-index=\" + (r + u.prop(\"colSpan\") - 1) + \"]\").eq(0), r = parseInt(u.attr(x), 10)), s = i(l.element).find(\"[col-index=\" + (r + 1) + \"]:not([colspan])\"), l._setTableComputedWidth(), l._setColumnsComputedWidth(), a = m(u), n = m(s), t = d({\n value: a + f,\n min: h,\n max: a + n - h\n }), l._resizeColumn(u[0], t), l._resizeTopAndBottomColumns(u[0], t), l._resizeAdjacentColumns(parseInt(u.attr(x), 10), n, a, a - t), o.clearTableMappings(l.element, x);\n },\n _setTableComputedWidth: function () {\n var e = this.element;\n \"\" === e.style.width && (e.style.width = f(m(i(e))));\n },\n _setColumnsComputedWidth: function () {\n var e,\n t = i(this.element.tHead || this.element.tBodies[0]),\n n = m(t),\n a = t.children(y).children(\"td\"),\n r = a.length,\n o = a.map(function () {\n return m(i(this));\n });\n for (e = 0; e < r; e++) p(a[e].style.width) ? a[e].style.width = h(u(o[e], n)) : a[e].style.width = f(o[e]);\n },\n _resizeTopAndBottomColumns: function (e, t) {\n var n,\n a = this,\n r = i(e).attr(x),\n o = i(a.element).children(\"tbody,thead\").children(y).children(a.options.tags.join(C)).filter(function () {\n return i(this).attr(x) === r && this !== e;\n }),\n s = o.length;\n for (n = 0; n < s; n++) a._resizeColumn(o[n], t);\n },\n _resizeColumn: function (e, t) {\n var n = i(this.element.tHead || this.element.tBodies[0]);\n p(e.style.width) ? e.style.width = h(u(t, m(n))) : e.style.width = f(t);\n },\n _resizeAdjacentColumns: function (e, t, n, a) {\n var r,\n o = this,\n s = i(o.element).children(\"tbody,thead\").children(y).children(o.options.tags.join(C)).filter(function () {\n return parseInt(i(this).attr(x), 10) === e + 1;\n }),\n l = s.length;\n for (r = 0; r < l; r++) o._resizeAdjacentColumn(s[r], t, n, a);\n },\n _resizeAdjacentColumn: function (e, t, i, a) {\n var r,\n o = this.options.min;\n r = d({\n value: t + a,\n min: o,\n max: n(i + t - o)\n }), this._resizeColumn(e, r);\n }\n });\n T.create = function (e) {\n s.create(e, {\n name: \"columnResizing\",\n type: T,\n eventNamespace: g\n });\n }, T.dispose = function (e) {\n s.dispose(e, {\n eventNamespace: g\n });\n }, a(r, {\n ColumnResizing: T\n });\n }(window.kendo), function (e, t) {\n var n = window.Math.abs,\n i = e.jQuery,\n a = i.extend,\n r = e.ui.editor,\n o = r.TableElementResizing,\n s = r.ResizingUtils,\n l = s.getScrollBarWidth,\n d = s.constrain,\n u = s.calculatePercentageRatio,\n c = s.inPercentages,\n p = s.toPercentages,\n h = s.toPixels,\n f = e._outerHeight,\n m = \".kendoEditorRowResizing\",\n g = \"k-row-resize-handle\",\n v = \"k-row-resize-marker\",\n _ = \"body\",\n b = \"tr\",\n k = \"tbody\",\n w = \"thead\",\n y = o.extend({\n options: {\n tags: [b],\n min: 20,\n rootElement: null,\n eventNamespace: m,\n rtl: !1,\n handle: {\n dataAttribute: \"row\",\n width: 0,\n height: 10,\n classNames: {\n handle: g,\n marker: v\n },\n template: '
'\n }\n },\n elementBorderHovered: function (e, t) {\n var n = this.options.handle.height,\n a = e.offset().top + f(e),\n r = t.clientY + i(e[0].ownerDocument).scrollTop();\n return r > a - n && r < a + n;\n },\n setResizeHandlePosition: function (t) {\n var n = this.options,\n a = n.handle.height,\n r = i(n.rootElement),\n o = r.is(_) ? 0 : r.scrollTop(),\n s = r.is(_) ? 0 : e.scrollLeft(r),\n d = n.rtl ? l(r[0]) : 0,\n u = t.offset().left - (r.offset().left + parseFloat(r.css(\"borderLeftWidth\"))) - parseFloat(t.css(\"marginLeft\")),\n c = t.offset().top - (r.offset().top + parseFloat(r.css(\"borderTopWidth\"))) - parseFloat(t.css(\"marginTop\")),\n p = e.support.browser;\n n.rtl && (p.mozilla || p.webkit && p.version >= 85) && (s *= -1), this.resizeHandle.css({\n top: c + f(t) + o - a / 2,\n left: u + (s - d),\n position: \"absolute\"\n });\n },\n setResizeHandleDimensions: function () {\n var e = this,\n t = i(e.element.tHead || e.element.tBodies[0]);\n e.resizeHandle.css({\n width: t.width(),\n height: e.options.handle.height\n });\n },\n setResizeHandleDragPosition: function (e) {\n var t = this,\n n = t.options,\n a = n.min,\n r = i(t.element).children(w),\n o = i(t.element).children(k),\n s = r.length > 0 ? r : o,\n l = i(t.resizeHandle),\n u = i(e.currentTarget).data(n.handle.dataAttribute),\n c = i(u),\n p = i(n.rootElement),\n h = p.is(_) ? 0 : p.scrollTop(),\n m = s.offset().top - (p.offset().top + parseFloat(p.css(\"borderTopWidth\"))) - parseFloat(s.css(\"marginTop\")),\n g = c.offset().top - (p.offset().top + parseFloat(p.css(\"borderTopWidth\"))) - parseFloat(c.css(\"marginTop\")),\n v = l.offset().top - (Math.max(0, p.offset().top) + parseFloat(p.css(\"borderTopWidth\"))) - parseFloat(l.css(\"marginTop\")),\n b = d({\n value: v + h + e.y.delta,\n min: g + h + a,\n max: m + f(r) + f(o) + h - n.handle.height - a\n });\n l.css({\n top: b\n });\n },\n resize: function (e) {\n var t = this,\n a = t.options,\n r = i(e.currentTarget).data(a.handle.dataAttribute),\n o = f(i(r)),\n s = i(t.element),\n l = f(s),\n u = s.children(w),\n p = u.length > 0 ? u.height() : 0,\n m = s.children(k).height(),\n g = r.style.height,\n v = d({\n value: o + e.y.initialDelta,\n min: a.min,\n max: n(p + m - a.min)\n });\n t._setRowsHeightInPixels(), r.style.height = h(v), t._setTableHeight(l + (v - o)), c(g) && t._setRowsHeightInPercentages();\n },\n _setRowsHeightInPixels: function () {\n var e,\n t = i(this.element).children(\"tbody,thead\").children(b),\n n = t.length,\n a = t.map(function () {\n return f(i(this));\n });\n for (e = 0; e < n; e++) t[e].style.height = h(a[e]);\n },\n _setRowsHeightInPercentages: function () {\n var e,\n t = this,\n n = i(t.element).children(w),\n a = n.length > 0 ? n.height() : 0,\n r = i(t.element).children(k).height(),\n o = i(t.element).children(\"thead,tbody\").children(b),\n s = o.length,\n l = o.map(function () {\n return f(i(this));\n });\n for (e = 0; e < s; e++) o[e].style.height = p(u(l[e], a + r));\n },\n _setTableHeight: function (e) {\n var t = this.element;\n c(t.style.height) ? t.style.height = p(u(e, i(t).parent().height())) : t.style.height = h(e);\n }\n });\n y.create = function (e) {\n o.create(e, {\n name: \"rowResizing\",\n type: y,\n eventNamespace: m\n });\n }, y.dispose = function (e) {\n o.dispose(e, {\n eventNamespace: m\n });\n }, a(r, {\n RowResizing: y\n });\n }(window.kendo), function (e, t) {\n var n = e.jQuery,\n i = n.extend,\n a = n.noop,\n r = e.ui.editor,\n o = e.Class,\n s = e.ui.Draggable,\n l = e.Observable,\n d = r.ResizingUtils.getScrollBarWidth,\n u = e._outerWidth,\n c = e._outerHeight,\n p = \".kendoEditorElementResizeHandle\",\n h = \"k-element-resize-handle\",\n f = \"dragStart\",\n m = \"drag\",\n g = \"dragEnd\",\n v = \"halfInside\",\n _ = \"mouseover\",\n b = \"mouseout\",\n k = \"east\",\n w = \"north\",\n y = \"northeast\",\n x = \"northwest\",\n C = \"south\",\n T = \"southeast\",\n S = \"southwest\",\n I = \"west\",\n D = l.extend({\n init: function (e) {\n var t = this;\n l.fn.init.call(t), t.options = i({}, t.options, e), t.element = n(t.options.template).appendTo(t.options.appendTo)[0], t._attachEventHandlers(), t._addStyles(), t._initDraggable(), t._initPositioningStrategy(), t._initDraggingStrategy(), n(t.element).data(\"table\", t.options.resizableElement);\n },\n destroy: function () {\n var e = this;\n n(e.element).off(p).remove(), e.element = null, e._destroyDraggable(), e.unbind();\n },\n options: {\n appendTo: null,\n direction: T,\n resizableElement: null,\n rtl: !1,\n template: \"
\"\n },\n events: [f, m, g, _, b],\n show: function () {\n this._setPosition();\n },\n _setPosition: function () {\n var e = this._positioningStrategy.getPosition();\n n(this.element).css({\n top: e.top,\n left: e.left,\n position: \"absolute\"\n });\n },\n _attachEventHandlers: function () {\n var e = this;\n n(e.element).on(_ + p, e._onMouseOver.bind(e)).on(b + p, e._onMouseOut.bind(e));\n },\n _onMouseOver: function () {\n this.trigger(_);\n },\n _onMouseOut: function () {\n this.trigger(b);\n },\n _addStyles: function () {\n n(this.element).children(\".\" + h).addClass(\"k-resize-\" + this.options.direction);\n },\n _initPositioningStrategy: function () {\n var e = this,\n t = e.options;\n e._positioningStrategy = F.create({\n name: t.direction,\n handle: e.element,\n resizableElement: t.resizableElement,\n rootElement: t.rootElement,\n rtl: t.rtl\n });\n },\n _initDraggable: function () {\n var e = this,\n t = e.element;\n !e._draggable && t && (e._draggable = new s(t, {\n dragstart: e._onDragStart.bind(e),\n drag: e._onDrag.bind(e),\n dragend: e._onDragEnd.bind(e)\n }));\n },\n _onDragStart: function () {\n this.trigger(f);\n },\n _onDrag: function (e) {\n this.trigger(m, this._draggingStrategy.adjustDragDelta({\n deltaX: e.x.delta,\n deltaY: e.y.delta,\n initialDeltaX: e.x.initialDelta,\n initialDeltaY: e.y.initialDelta\n }));\n },\n _onDragEnd: function () {\n this.trigger(g);\n },\n _destroyDraggable: function () {\n var e = this;\n e._draggable && (e._draggable.destroy(), e._draggable = null);\n },\n _initDraggingStrategy: function () {\n this._draggingStrategy = V.create({\n name: this.options.direction\n });\n }\n }),\n E = o.extend({\n init: function () {\n this._items = [];\n },\n register: function (e, t) {\n this._items.push({\n name: e,\n type: t\n });\n },\n create: function (e) {\n var t,\n n,\n i,\n a = this._items,\n r = a.length,\n o = e.name ? e.name.toLowerCase() : \"\";\n for (i = 0; i < r; i++) if ((n = a[i]).name.toLowerCase() === o) {\n t = n;\n break;\n }\n if (t) return new t.type(e);\n }\n }),\n A = E.extend({});\n A.current = new A();\n var F = o.extend({\n init: function (e) {\n this.options = i({}, this.options, e);\n },\n options: {\n handle: null,\n offset: v,\n resizableElement: null,\n rootElement: null,\n rtl: !1\n },\n getPosition: function () {\n var e = this,\n t = e.calculatePosition(),\n n = e.applyHandleOffset(t);\n return e.applyScrollOffset(n);\n },\n calculatePosition: a,\n applyHandleOffset: function (e) {\n var t = this.options,\n i = n(t.handle);\n return t.offset === v ? {\n top: e.top - c(i) / 2,\n left: e.left - u(i) / 2\n } : e;\n },\n applyScrollOffset: function (t) {\n var i,\n a = this.options,\n r = n(a.rootElement),\n o = a.rtl ? d(r[0]) : 0,\n s = e.support.browser;\n return r.is(\"body\") ? t : (i = e.scrollLeft(r) || 0, a.rtl && (s.mozilla || s.webkit && s.version >= 85) && (i *= -1), {\n top: t.top + (r.scrollTop() || 0),\n left: t.left + i - o\n });\n }\n });\n F.create = function (e) {\n return A.current.create(e);\n };\n var z = F.extend({\n calculatePosition: function () {\n var e = n(this.options.resizableElement),\n t = e.position(),\n i = parseInt(e.css(\"marginLeft\"), 10);\n return {\n top: t.top + c(e) / 2,\n left: t.left + u(e) + i\n };\n }\n });\n A.current.register(k, z);\n var P = F.extend({\n calculatePosition: function () {\n var e = n(this.options.resizableElement),\n t = e.position(),\n i = parseInt(e.css(\"marginLeft\"), 10);\n return {\n top: t.top,\n left: t.left + u(e) / 2 + i\n };\n }\n });\n A.current.register(w, P);\n var H = F.extend({\n calculatePosition: function () {\n var e = n(this.options.resizableElement),\n t = e.position(),\n i = parseInt(e.css(\"marginLeft\"), 10);\n return {\n top: t.top,\n left: t.left + u(e) + i\n };\n }\n });\n A.current.register(y, H);\n var N = F.extend({\n calculatePosition: function () {\n var e = n(this.options.resizableElement),\n t = e.position(),\n i = parseInt(e.css(\"marginLeft\"), 10);\n return {\n top: t.top,\n left: t.left + i\n };\n }\n });\n A.current.register(x, N);\n var R = F.extend({\n calculatePosition: function () {\n var e = n(this.options.resizableElement),\n t = e.position(),\n i = parseInt(e.css(\"marginLeft\"), 10);\n return {\n top: t.top + c(e),\n left: t.left + u(e) / 2 + i\n };\n }\n });\n A.current.register(C, R);\n var O = F.extend({\n calculatePosition: function () {\n var e = n(this.options.resizableElement),\n t = e.position(),\n i = parseInt(e.css(\"marginLeft\"), 10);\n return {\n top: t.top + c(e),\n left: t.left + u(e) + i\n };\n }\n });\n A.current.register(T, O);\n var M = F.extend({\n calculatePosition: function () {\n var e = n(this.options.resizableElement),\n t = e.position(),\n i = parseInt(e.css(\"marginLeft\"), 10);\n return {\n top: t.top + c(e),\n left: t.left + i\n };\n }\n });\n A.current.register(S, M);\n var B = F.extend({\n calculatePosition: function () {\n var e = n(this.options.resizableElement),\n t = e.position(),\n i = parseInt(e.css(\"marginLeft\"), 10);\n return {\n top: t.top + c(e) / 2,\n left: t.left + i\n };\n }\n });\n A.current.register(I, B);\n var L = E.extend({});\n L.current = new L();\n var V = o.extend({\n init: function (e) {\n this.options = i({}, this.options, e);\n },\n options: {\n deltaX: {\n adjustment: null,\n modifier: null\n },\n deltaY: {\n adjustment: null,\n modifier: null\n }\n },\n adjustDragDelta: function (e) {\n var t = this.options,\n n = t.deltaX.adjustment * t.deltaX.modifier,\n i = t.deltaY.adjustment * t.deltaY.modifier;\n return {\n deltaX: e.deltaX * n,\n deltaY: e.deltaY * i,\n initialDeltaX: e.initialDeltaX * n,\n initialDeltaY: e.initialDeltaY * i\n };\n }\n });\n V.create = function (e) {\n return L.current.create(e);\n };\n var U = V.extend({\n options: {\n deltaX: {\n adjustment: 1,\n modifier: 1\n },\n deltaY: {\n adjustment: 0,\n modifier: 0\n }\n }\n }),\n W = U.extend({\n options: {\n deltaX: {\n modifier: 1\n }\n }\n });\n L.current.register(k, W);\n var j = U.extend({\n options: {\n deltaX: {\n modifier: -1\n }\n }\n });\n L.current.register(I, j);\n var q = V.extend({\n options: {\n deltaX: {\n adjustment: 0,\n modifier: 0\n },\n deltaY: {\n adjustment: 1,\n modifier: 1\n }\n }\n }),\n G = q.extend({\n options: {\n deltaY: {\n modifier: -1\n }\n }\n });\n L.current.register(w, G);\n var K = q.extend({\n options: {\n deltaY: {\n modifier: 1\n }\n }\n });\n L.current.register(C, K);\n var $ = V.extend({\n options: {\n deltaX: {\n adjustment: 1,\n modifier: 1\n },\n deltaY: {\n adjustment: 1,\n modifier: 1\n }\n }\n }),\n Y = $.extend({\n options: {\n deltaX: {\n modifier: 1\n },\n deltaY: {\n modifier: -1\n }\n }\n });\n L.current.register(y, Y);\n var Q = $.extend({\n options: {\n deltaX: {\n modifier: -1\n },\n deltaY: {\n modifier: -1\n }\n }\n });\n L.current.register(x, Q);\n var X = $.extend({\n options: {\n deltaX: {\n modifier: 1\n },\n deltaY: {\n modifier: 1\n }\n }\n });\n L.current.register(T, X);\n var J = $.extend({\n options: {\n deltaX: {\n modifier: -1\n },\n deltaY: {\n modifier: 1\n }\n }\n });\n L.current.register(S, J), i(r, {\n ElementResizeHandle: D\n });\n }(window.kendo), function (e, t) {\n var n = window.Math,\n i = n.min,\n a = n.max,\n r = e.jQuery,\n o = r.contains,\n s = r.extend,\n l = e.support.browser,\n d = e.ui.editor,\n u = e.Class,\n c = d.ElementResizeHandle,\n p = d.ResizingUtils,\n h = p.calculatePercentageRatio,\n f = p.constrain,\n m = p.inPercentages,\n g = p.inPixels,\n v = p.toPercentages,\n _ = p.toPixels,\n b = e._outerWidth,\n k = e._outerHeight,\n w = d.RangeUtils,\n y = \".kendoEditorElementResizing\",\n x = \"k-element-resize-handle-wrapper\",\n C = \"k-element-resizing\",\n T = \"dragStart\",\n S = \"drag\",\n I = \"dragEnd\",\n D = \"keydown\",\n E = \"mousedown\",\n A = \"select\",\n F = \"tr\",\n z = \"tbody\",\n P = \"thead\",\n H = \"table\",\n N = [\"TABLE\", \"IMG\"],\n R = \"width\",\n O = \"height\";\n function M(e) {\n return void 0 === e;\n }\n var B = u.extend({\n init: function (e, t) {\n var n = this;\n n.options = s({}, n.options, t), n.handles = [], N.indexOf(e.nodeName) >= 0 && (n.element = e);\n },\n destroy: function () {\n var e = this;\n r(e.element).off(y), e.element = null, r(e.options.rootElement).off(D + y), e._destroyResizeHandles();\n },\n options: {\n appendHandlesTo: null,\n rtl: !1,\n rootElement: null,\n minWidth: 10,\n minHeight: 10,\n handles: [{\n direction: \"northwest\"\n }, {\n direction: \"north\"\n }, {\n direction: \"northeast\"\n }, {\n direction: \"east\"\n }, {\n direction: \"southeast\"\n }, {\n direction: \"south\"\n }, {\n direction: \"southwest\"\n }, {\n direction: \"west\"\n }]\n },\n resize: function (e) {\n var t = this,\n n = s({}, {\n deltaX: 0,\n deltaY: 0,\n initialDeltaX: 0,\n initialDeltaY: 0\n }, e);\n t._resizeWidth(n.deltaX, n.initialDeltaX), t._resizeHeight(n.deltaY, n.initialDeltaY), t.showResizeHandles();\n },\n _resizeWidth: function () {\n return !1;\n },\n _resizeHeight: function () {\n return !1;\n },\n _getMaxDimensionValue: function (t) {\n var n = this,\n i = r(n.element),\n a = t.toLowerCase(),\n o = n.options.rtl ? -1 : 1,\n s = r(n.element).parent(),\n l = s[0],\n d = s[a](),\n u = o * (t === R ? e.scrollLeft(s) : s.scrollTop());\n return l && l === i.closest(\"td\")[0] ? \"\" !== l.style[a] || m(n.element.style[a]) ? d + u : 1 / 0 : d + u;\n },\n showResizeHandles: function () {\n this._initResizeHandles(), this._showResizeHandles();\n },\n _initResizeHandles: function () {\n var e,\n t = this,\n n = t.handles,\n i = t.options,\n a = t.options.handles,\n r = a.length;\n if (!(n && n.length > 0)) {\n for (e = 0; e < r; e++) t.handles.push(new c(s({\n appendTo: i.appendHandlesTo,\n resizableElement: t.element,\n rootElement: i.rootElement,\n rtl: i.rtl\n }, a[e])));\n t._bindToResizeHandlesEvents();\n }\n },\n _destroyResizeHandles: function () {\n for (var e = this, t = e.handles ? e.handles.length : 0, n = 0; n < t; n++) e.handles[n].destroy();\n e.handles = [];\n },\n _showResizeHandles: function () {\n var e,\n t = (this.handles || []).length;\n for (e = 0; e < t; e++) this.handles[e].show();\n },\n _bindToResizeHandlesEvents: function () {\n return !1;\n },\n _onResizeHandleDragStart: function () {\n var e = this,\n t = r(e.element);\n t.addClass(C), e._initialElementHeight = k(t), e._initialElementWidth = b(t), e._disableKeyboard();\n },\n _onResizeHandleDrag: function (e) {\n this.resize(e);\n },\n _onResizeHandleDragEnd: function () {\n r(this.element).removeClass(C), this._enableKeyboard();\n },\n _enableKeyboard: function () {\n r(this.options.rootElement).off(D + y);\n },\n _disableKeyboard: function () {\n r(this.options.rootElement).on(D + y, function (e) {\n e.preventDefault();\n });\n }\n }),\n L = B.extend({\n _bindToResizeHandlesEvents: function () {\n var e,\n t,\n n = this,\n i = n.handles || [],\n a = i.length;\n for (e = 0; e < a; e++) (t = i[e]).bind(T, n._onResizeHandleDragStart.bind(n)), t.bind(S, n._onResizeHandleDrag.bind(n)), t.bind(I, n._onResizeHandleDragEnd.bind(n));\n },\n _hasRowsInPixels: function () {\n for (var e = r(this.element).children(\"thead,tbody\").children(F), t = 0; t < e.length; t++) if (\"\" === e[t].style.height || g(e[t].style.height)) return !0;\n return !1;\n },\n _resizeWidth: function (e, t) {\n var n,\n o,\n s,\n l,\n d = this,\n u = r(d.element),\n c = u[0].style.width,\n p = b(u),\n g = u.parent().width(),\n k = d._getMaxDimensionValue(R);\n 0 !== e && (M(d._initialElementWidth) && (d._initialElementWidth = p), l = f({\n value: d._initialElementWidth + t,\n min: d.options.minWidth,\n max: k\n }), m(c) ? (p + e > g ? (o = a(l, g), s = i(l, g)) : (o = i(l, g), s = a(l, g)), n = v(h(o, s))) : n = _(l), d._setColumnsWidth(), u[0].style.width = n);\n },\n _resizeHeight: function (e, t) {\n var n,\n o,\n s,\n l,\n d = this,\n u = r(d.element),\n c = u[0].style.height,\n p = k(u),\n g = u.parent().height(),\n b = d._getMaxDimensionValue(O),\n w = d.options.minHeight,\n y = d._hasRowsInPixels();\n 0 !== e && (M(d._initialElementHeight) && (d._initialElementHeight = p), l = f({\n value: d._initialElementHeight + t,\n min: w,\n max: b\n }), y && e < 0 && d._setRowsHeightInPercentages(), m(c) ? (p + e > g ? (o = a(l, g), s = i(l, g)) : (o = i(l, g), s = a(l, g)), n = v(h(o, s))) : n = _(l), u[0].style.height = n, y && e < 0 && d._setRowsHeightInPixels());\n },\n _setColumnsWidth: function () {\n var e,\n t = r(this.element),\n n = t.parent()[0],\n i = t.closest(\"td\"),\n a = i.closest(F).children(),\n o = a.length;\n if (function (e) {\n var t = e.style.width;\n return \"\" !== t ? !!m(t) : !!r(e).hasClass(\"k-table\");\n }(t[0]) && n === i[0] && \"\" === n.style.width) for (e = 0; e < o; e++) a[e].style.width = _(r(a[e]).width());\n },\n _setRowsHeightInPercentages: function () {\n var e,\n t = this,\n n = r(t.element).children(P),\n i = n.length > 0 ? n.height() : 0,\n a = r(t.element).children(z).height(),\n o = r(t.element).children(\"thead,tbody\").children(F),\n s = o.length,\n l = o.map(function () {\n return k(r(this));\n });\n for (e = 0; e < s; e++) o[e].style.height = v(h(l[e], i + a));\n },\n _setRowsHeightInPixels: function () {\n var e,\n t = r(this.element).children(\"thead,tbody\").children(F),\n n = t.length,\n i = t.map(function () {\n return k(r(this));\n });\n for (e = 0; e < n; e++) t[e].style.height = _(i[e]);\n }\n }),\n V = B.extend({\n _bindToResizeHandlesEvents: function () {\n var e,\n t,\n n = this,\n i = n.handles || [],\n a = i.length;\n for (e = 0; e < a; e++) (t = i[e]).bind(T, n._onResizeHandleDragStart.bind(n)), \"north\" === t.options.direction || \"south\" === t.options.direction ? t.bind(S, n._onResizeHandleDragVertical.bind(n)) : \"east\" === t.options.direction || \"west\" === t.options.direction ? t.bind(S, n._onResizeHandleDragHorizontal.bind(n)) : t.bind(S, n._onResizeHandleDragLocked.bind(n)), t.bind(I, n._onResizeHandleDragEnd.bind(n));\n },\n _getDeltas: function (e) {\n return s({}, {\n deltaX: 0,\n deltaY: 0,\n initialDeltaX: 0,\n initialDeltaY: 0\n }, e);\n },\n _onResizeHandleDragVertical: function (e) {\n var t = this._getDeltas(e);\n this._resizeHeight(t.deltaY, t.initialDeltaY), this.showResizeHandles();\n },\n _onResizeHandleDragHorizontal: function (e) {\n var t = this._getDeltas(e);\n this._resizeWidth(t.deltaX, t.initialDeltaX), this.showResizeHandles();\n },\n _onResizeHandleDragLocked: function (e) {\n var t,\n n = Math.min(Math.abs(e.initialDeltaX), Math.abs(e.initialDeltaY)),\n i = this._initialElementWidth,\n a = this._initialElementHeight;\n n === e.initialDeltaX || n === -1 * e.initialDeltaX ? (e.initialDeltaY = e.initialDeltaX * a / i, e.deltaY = e.deltaX) : n !== e.initialDeltaY && n !== -1 * e.initialDeltaY || (e.initialDeltaX = e.initialDeltaY * i / a, e.deltaX = e.deltaY), t = this._getDeltas(e), this._resizeWidth(t.deltaX, t.initialDeltaX), this._resizeHeight(t.deltaY, t.initialDeltaY), this.showResizeHandles();\n },\n _resizeWidth: function (e, t) {\n var n,\n i,\n a = this,\n o = r(a.element),\n s = b(o);\n 0 !== e && (M(a._initialElementWidth) && (a._initialElementWidth = s), i = f({\n value: a._initialElementWidth + t,\n min: a.options.minWidth,\n max: a._getMaxDimensionValue(R)\n }), n = _(i), o[0].style.width = n, o.attr(R, Math.floor(i)));\n },\n _resizeHeight: function (e, t) {\n var n,\n i,\n a = this,\n o = r(a.element),\n s = k(o);\n 0 !== e && (M(a._initialElementHeight) && (a._initialElementHeight = s), i = f({\n value: a._initialElementHeight + t,\n min: a.options.minHeight,\n max: Number.MAX_SAFE_INTEGER\n }), n = _(i), o[0].style.height = n, o.attr(O, Math.floor(i)));\n }\n }),\n U = u.extend({\n create: function (e) {\n var t = this;\n r(e.body).on(\"dragstart\" + y, function () {\n var t = w.nodes(e.getRange()),\n n = !1;\n t.forEach(function (e) {\n \"IMG\" === e.nodeName && (n = !0);\n }), n && t.length > 1 && e.elementResizing._destroyResizeHandles();\n }).on(\"drop\" + y, function () {\n setTimeout(function () {\n var t = w.image(e.getRange());\n t && (e.elementResizing._destroyResizeHandles(), e.elementResizing.element = t, e.elementResizing.showResizeHandles());\n });\n }).on(E + y, \"table,img\", function (n) {\n var i = n.target,\n a = n.currentTarget,\n r = e.elementResizing,\n s = r ? r.element : null;\n if (r) {\n if (s && a !== s) {\n if (o(a, s) && s !== i && o(s, i)) return;\n s !== i && (e._destroyElementResizing(), t._initResizing(e, a));\n }\n } else t._initResizing(e, a);\n e._showElementResizeHandles();\n }).on(E + y, function (t) {\n var n = e.elementResizing,\n i = n ? n.element : null,\n a = t.target,\n s = r(a).hasClass(x) || r(a).parents(\".\" + x).length > 0;\n !n || i === a || o(i, a) || s || e._destroyElementResizing();\n });\n },\n dispose: function (e) {\n r(e.body).off(y);\n },\n _initResizing: function (t, n) {\n l.msie || (r(n).is(H) ? t.elementResizing = t.tableResizing = new L(n, {\n appendHandlesTo: t.body,\n rtl: e.support.isRtl(t.element),\n rootElement: t.body\n }) : r(n).is(\"img\") && (t.elementResizing = new V(n, {\n appendHandlesTo: t.body,\n rtl: e.support.isRtl(t.element),\n rootElement: t.body\n })), t._showElementResizeHandlesProxy && (t.unbind(A, t._showElementResizeHandlesProxy), t.bind(A, t._showElementResizeHandlesProxy)));\n }\n });\n U.current = new U(), s(d, {\n TableResizing: L,\n ImageResizing: V,\n ElementResizing: B,\n ElementResizingFactory: U\n });\n }(window.kendo), function (e, t) {\n var n = window.kendo,\n i = n.ui.editor,\n a = i.EditorUtils,\n r = i.RangeUtils,\n o = i.Dom,\n s = a.registerTool,\n l = i.ToolTemplate,\n d = i.Command,\n u = new i.BlockFormatFinder([{\n tags: [\"table\"]\n }]),\n c = new i.BlockFormatFinder([{\n tags: [\"td\", \"th\"]\n }]),\n p = /([a-z]+|%)$/i,\n h = \"scope\",\n f = \"col-index\",\n m = \"th\",\n g = \"td\",\n v = d.extend({\n exec: function () {\n var e = this,\n a = e.editor,\n r = e.range = e.lockRange(),\n o = e._sourceTable = e.options.insertNewTable ? t : e._selectedTable(r),\n s = e._selectedTableCells = o ? e._selectedCells(r) : t,\n l = {\n visible: !1,\n messages: a.options.messages,\n closeCallback: e.onDialogClose.bind(e),\n table: e.parseTable(o, s),\n dialogOptions: a.options.dialogOptions,\n isRtl: n.support.isRtl(a.wrapper)\n };\n new i.TableWizardDialog(l).open();\n },\n onDialogClose: function (e) {\n var t = this;\n t.releaseRange(t.range), e && (t.options.insertNewTable ? t.insertTable(t.createNewTable(e)) : t.updateTable(e, t._sourceTable, t._selectedTableCells));\n },\n releaseRange: function (e) {\n var t = this.editor.document;\n o.windowFromDocument(t).focus(), d.fn.releaseRange.call(this, e);\n },\n insertTable: function (e) {\n var t = this.range;\n t.insertNode(e), t.collapse(!0), this.editor.selectRange(t), this._ensureFocusableAfterTable(e);\n },\n _ensureFocusableAfterTable: function (t) {\n for (var n = e(t).parent().contents(), i = n.length - 1, a = n.get(i); null !== a.nodeValue && (\" \" === a.nodeValue || \"\" === a.nodeValue);) i -= 1, a = n.get(i);\n a === t && o.insertAfter(o.createEmptyNode(this.editor.document, \"p\"), t);\n },\n updateTable: function (t, n, i) {\n for (var a, r, s = this, l = e(n.rows).toArray(), d = t.tableProperties, u = d.rows, c = n.tHead, p = s._lastInCollection; i.length > 1;) i.pop();\n a = i.length ? p(i).parentNode : p(l), s._deleteTableRows(l, l.length - u), l.length < u && s._addRows(a, u, l), o.reMapTableColumns(n, f), s._updateColumns(l, d.columns, i, a), s._updateTableProperties(n, d), r = t.cellProperties, i[0] && o.attr(i[0], {\n id: r.id || null\n }), (r.selectAllCells ? e(l).children() : e(i)).each(function (e, t) {\n s._updateCellProperties(t, r);\n }), s._updateCaption(n, d), c ? s._updateHeadersWithThead(n, t) : s._updateHeadersNoThead(n, t), s._updateHeaderAssociates(n, d), o.clearTableMappings(n, f);\n },\n _isHeadingRow: function (e) {\n return o.is(e.cells[0], m) && o.is(e.parentNode, \"thead\");\n },\n _isHeadingCell: function (e) {\n return o.is(e, m);\n },\n cellsWithHeadersAssociated: function (t) {\n var n = e(t.rows).children(),\n i = [],\n a = function (e) {\n return i.indexOf(e) > -1;\n };\n return n.each(function (e, t) {\n t.id && o.is(t, m) && i.push(t.id);\n }), !!n.filter(function (e, t) {\n var n,\n i = t.getAttribute(\"headers\");\n return !!(i && !o.is(t, m) && (n = i.split(\" \")) && n.length > 0) && n.some(a);\n }).length;\n },\n _insertCells: function (e, t, n) {\n n = isNaN(n) ? -1 : n;\n for (var i = 0; i < e; i++) t.insertCell(n).innerHTML = \" \";\n },\n _deleteTableRows: function (e, t) {\n for (var n, i, a = 0; a < t; a++) (i = (n = e.pop()).parentNode).removeChild(n), i.rows.length || o.remove(i);\n },\n createNewTable: function (e) {\n var t,\n n = this,\n i = n.editor.document,\n a = e.tableProperties,\n r = o.create(i, \"table\"),\n s = 0;\n n._updateTableProperties(r, a), n._updateCaption(r, a), a.headerRows && a.headerRows > 0 && (t = r.createTHead(), n._createTableRows(e, t, s, !0), s += a.headerRows);\n var l = r.createTBody();\n return n._createTableRows(e, l, s, !1), o.reMapTableColumns(r, f), \"ids\" === a.cellsWithHeaders ? o.associateWithIds(r) : \"scope\" === a.cellsWithHeaders && n._addScopes(r, a.headerRows, a.headerColumns), o.clearTableMappings(r, f), r;\n },\n _createTableRows: function (e, t, n, i) {\n for (var a, r = e.tableProperties, o = e.cellProperties, s = r.columns, l = i ? r.headerRows : r.rows, d = o.selectAllCells, u = r.headerColumns, c = n; c < l; c++) {\n a = t.insertRow();\n for (var p, h = 0; h < s; h++) p = i || u > h ? document.createElement(m) : document.createElement(g), a.appendChild(p), p.innerHTML = \" \", 0 === c && 0 === h && o.id && (p.id = o.id), this._updateCellProperties(p, d || 0 === c && 0 === h ? o : {});\n }\n },\n _addRows: function (t, n, i) {\n for (var a, r = e(t).index(), o = t.cells.length, s = n - i.length, l = t.parentNode; s;) a = l.insertRow(r + 1), this._insertCells(o - a.cells.length, a), s--;\n },\n _updateColumns: function (t, n, i, a) {\n var r = this,\n o = r._lastInCollection,\n s = o(t[0].cells),\n l = Number(s.getAttribute(f)) + s.colSpan;\n if (l > n && e(t).each(function (e, t) {\n for (var i = o(t.cells), a = Number(i.getAttribute(f)) + i.colSpan; a > n;) i.colSpan && i.colSpan > 1 ? i.colSpan -= 1 : t.deleteCell(-1), i = o(t.cells), a = Number(i.getAttribute(f)) + i.colSpan;\n }), l < n) {\n var d = e(o(i) || o(a.cells)).index();\n e(t).each(function (e, t) {\n var i = o(t.cells);\n r._insertCells(n - Number(i.getAttribute(f)) - i.colSpan, t, d + 1);\n });\n }\n },\n _updateTableProperties: function (t, n) {\n var i = this._getStylesData(n);\n o.attr(t, {\n cellSpacing: n.cellSpacing || null,\n cellPadding: n.cellPadding || null,\n className: n.className || null,\n id: n.id || null,\n summary: n.summary || null,\n style: i || null\n }), e(t).addClass(\"k-table\");\n },\n _updateCellProperties: function (e, t) {\n var n = this._getStylesData(t);\n n.padding = t.cellPadding || null, n.margin = t.cellMargin || null, o.attr(e, {\n style: n || null,\n className: t.className || null\n });\n },\n _updateCaption: function (e, t) {\n if (e.caption && !t.captionContent) e.deleteCaption();else if (t.captionContent) {\n var n = e.createCaption();\n n.innerHTML = t.captionContent;\n var i = this._getAlignmentData(t.captionAlignment);\n o.attr(n, {\n style: {\n textAlign: i.textAlign,\n verticalAlign: i.verticalAlign\n }\n });\n }\n },\n _updateHeadersNoThead: function (e, t) {\n var n,\n i,\n a,\n r,\n s = t.tableProperties,\n l = e.rows;\n for (a = 0; a < l.length; a++) for (n = l[a].cells, r = 0; r < n.length; r++) i = n[r], !this._isHeadingCell(i) && (a < s.headerRows || s.headerColumns > i.getAttribute(f)) ? o.changeTag(i, m, !1) : this._isHeadingCell(i) && a >= s.headerRows && s.headerColumns <= i.getAttribute(f) && o.changeTag(i, g, !1);\n },\n _updateHeadersWithThead: function (e, t) {\n var n,\n i,\n a,\n r = this,\n s = t.tableProperties,\n l = e.tHead,\n d = 0,\n u = e.tBodies[0];\n if (u || (u = e.createTBody()), s.headerRows && s.headerRows > 0) {\n for (l || (l = e.createTHead()); l.rows.length < s.headerRows;) l.appendChild(u.rows[0]);\n for (; l.rows.length > s.headerRows;) u.appendChild(l.rows[0]);\n r._swapToHeaderCells(l);\n } else if (l) {\n for (; l.rows.length > 0;) u.appendChild(l.rows[l.rows.length - 1]);\n e.deleteTHead();\n }\n for (; u.rows.length > d;) {\n for (n = u.rows[d], a = 0; a < n.cells.length; a++) i = n.cells[a], r._isHeadingCell(i) && s.headerColumns <= i.getAttribute(f) ? o.changeTag(i, g, !1) : !r._isHeadingCell(i) && s.headerColumns > i.getAttribute(f) && o.changeTag(i, m, !1);\n d += 1;\n }\n },\n _updateHeaderAssociates: function (e, t) {\n var n = this;\n \"ids\" === t.cellsWithHeaders ? (n.cellsWithHeadersAssociated(e) || n._removeScopes(e), o.associateWithIds(e)) : \"scope\" === t.cellsWithHeaders ? (n.cellsWithHeadersAssociated(e) && n._removeAssociates(e), n._addScopes(e, t.headerRows, t.headerColumns)) : n.cellsWithHeadersAssociated(e) ? n._removeAssociates(e) : n._removeScopes(e);\n },\n _addScopes: function (e, t, n) {\n var i,\n a,\n r,\n o,\n s = e.rows;\n for (i = 0; i < s.length; i++) for (r = s[i], a = 0; a < r.cells.length; a++) o = r.cells[a], i < t ? o.setAttribute(h, \"col\") : o.getAttribute(f) < n && o.setAttribute(h, \"row\");\n },\n _removeScopes: function (t) {\n e(t).find(m).removeAttr(h), e(t).find(\"col\").remove(), e(t).find(\"colgroup\").remove();\n },\n _removeAssociates: function (t) {\n e(t).find(\"th, td\").removeAttr(\"id headers\");\n },\n _swapToHeaderCells: function (t) {\n e(t).find(\"td\").each(function (e, t) {\n o.changeTag(t, m, !1);\n });\n },\n _getStylesData: function (e) {\n var t = this._getAlignmentData(e.alignment),\n n = \"wrapText\" in e ? e.wrapText ? \"\" : \"nowrap\" : null;\n return {\n width: e.width ? e.width + e.widthUnit : null,\n height: e.height ? e.height + e.heightUnit : null,\n textAlign: t.textAlign,\n verticalAlign: t.verticalAlign,\n backgroundColor: e.bgColor || \"\",\n borderWidth: e.borderWidth,\n borderStyle: e.borderStyle,\n borderColor: e.borderColor || \"\",\n borderCollapse: e.collapseBorders ? \"collapse\" : null,\n whiteSpace: n\n };\n },\n _getAlignmentData: function (e) {\n var t = \"\",\n n = t;\n if (e) if (-1 != e.indexOf(\" \")) {\n var i = e.split(\" \");\n t = i[0], n = i[1];\n } else t = e;\n return {\n textAlign: t,\n verticalAlign: n\n };\n },\n parseTable: function (n, i) {\n if (!n) return {\n tableProperties: {},\n selectedCells: []\n };\n var a = this,\n r = n.style,\n s = n.rows,\n l = n.caption,\n d = e(l ? l.cloneNode(!0) : t);\n d.find(\".k-marker\").remove();\n var u = n.className;\n u = (u = (u = u.replace(/^k-table\\s|\\sk-table$/, \"\")).replace(/\\sk-table\\s/, \" \")).replace(/^k-table$/, \"\");\n var c,\n p = a._getAlignment(n, !0),\n h = l ? a._getAlignment(l) : t,\n m = o._getNumberOfHeaderRows(n);\n c = a.cellsWithHeadersAssociated(n) ? \"ids\" : e(n).find(\"th[scope]\").length > 0 ? \"scope\" : \"none\", o.reMapTableColumns(n, f);\n var g = o._getNumberOfColumns(n),\n v = o._getNumberOfHeaderColumns(n, m);\n o.clearTableMappings(n, f);\n var _ = {\n tableProperties: {\n width: r.width || n.width ? parseFloat(r.width || n.width) : null,\n height: r.height || n.height ? parseFloat(r.height || n.height) : null,\n columns: g,\n rows: s.length,\n widthUnit: a._getUnit(r.width),\n heightUnit: a._getUnit(r.height),\n cellSpacing: n.cellSpacing,\n cellPadding: n.cellPadding,\n alignment: p.textAlign,\n bgColor: r.backgroundColor || n.bgColor,\n className: u,\n id: n.id,\n borderWidth: r.borderWidth || n.border,\n borderColor: r.borderColor,\n borderStyle: r.borderStyle || \"\",\n collapseBorders: !!r.borderCollapse,\n summary: n.summary,\n captionContent: l ? d.html() : \"\",\n captionAlignment: l && h.textAlign ? h.textAlign + \" \" + h.verticalAlign : \"\",\n headerRows: m,\n headerColumns: v,\n cellsWithHeaders: c\n },\n selectedCells: []\n };\n return _.rows = a.parseTableRows(s, i, _), _;\n },\n parseTableRows: function (t, n, i) {\n for (var a, r, o, s, l = [], d = 0; d < t.length; d++) {\n a = {\n cells: []\n }, r = t[d].cells, l.push(a);\n for (var u = 0; u < r.length; u++) o = r[u], s = this.parseCell(o), -1 != e.inArray(o, n) && i.selectedCells.push(s), a.cells.push(s);\n }\n return l;\n },\n parseCell: function (e) {\n var t = this,\n n = e.style,\n i = t._getAlignment(e);\n return i = i.textAlign ? i.textAlign + \" \" + i.verticalAlign : \"\", {\n width: n.width || e.width ? parseFloat(n.width || e.width) : null,\n height: n.height || e.height ? parseFloat(n.height || e.height) : null,\n widthUnit: t._getUnit(n.width),\n heightUnit: t._getUnit(n.height),\n cellMargin: n.margin,\n cellPadding: n.padding,\n alignment: i,\n bgColor: n.backgroundColor || e.bgColor,\n className: e.className,\n id: e.id,\n borderWidth: n.borderWidth || e.border,\n borderColor: n.borderColor,\n borderStyle: n.borderStyle,\n wrapText: \"nowrap\" != n.whiteSpace\n };\n },\n _getAlignment: function (e, t) {\n var n = e.style,\n i = n.textAlign || e.align || \"\";\n if (t) return {\n textAlign: i\n };\n var a = n.verticalAlign || e.vAlign || \"\";\n return i && a ? {\n textAlign: i,\n verticalAlign: a\n } : !i && a ? {\n textAlign: \"left\",\n verticalAlign: a\n } : i && !a ? {\n textAlign: i,\n verticalAlign: \"top\"\n } : {\n textAlign: \"\",\n verticalAlign: \"\"\n };\n },\n _getUnit: function (e) {\n var t = (e || \"\").match(p);\n return t ? t[0] : \"px\";\n },\n _selectedTable: function (e) {\n var t = o.filterBy(r.nodes(e), o.htmlIndentSpace, !0);\n return u.findSuitable(t)[0];\n },\n _selectedCells: function (e) {\n var t = o.filterBy(r.nodes(e), o.htmlIndentSpace, !0);\n return c.findSuitable(t);\n },\n _lastInCollection: function (e) {\n return e[e.length - 1];\n }\n }),\n _ = i.Tool.extend({\n command: function (e) {\n return e.insertNewTable = this.options.insertNewTable, new v(e);\n }\n }),\n b = _.extend({\n update: function (e, t) {\n !0 === !u.isFormatted(t) ? (e.parent().addClass(\"k-hidden k-disabled\"), e.attr(\"disabled\", \"disabled\"), e.addClass(\"k-disabled\")) : (e.parent().removeClass(\"k-hidden k-disabled\"), e.prop(\"disabled\", !1), e.removeClass(\"k-disabled\"));\n }\n });\n n.ui.editor.TableWizardTool = _, n.ui.editor.TableWizardCommand = v, s(\"tableWizard\", new b({\n command: v,\n insertNewTable: !1,\n template: new l({\n template: a.buttonTemplate,\n title: \"Table Wizard\"\n })\n }));\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui,\n a = n.keys,\n r = e.map,\n o = e.each,\n s = n.trim,\n l = e.extend,\n d = n.isFunction,\n u = n.template,\n c = n._outerWidth,\n p = n._outerHeight,\n h = i.Widget,\n f = /^(a|div)$/i,\n m = \".kendoTabStrip\",\n g = \"href\",\n v = \"prev\",\n _ = \"next\",\n b = \"show\",\n k = \"k-link\",\n w = \"k-last\",\n y = \"click\",\n x = \"k-image\",\n C = \"k-first\",\n T = \"select\",\n S = \"activate\",\n I = \"k-tabstrip-content k-content\",\n D = \"contentUrl\",\n E = \"mouseenter\",\n A = \"contentLoad\",\n F = \"k-disabled\",\n z = \"k-active\",\n P = \"k-focus\",\n H = \"k-hover\",\n N = \"k-tab-on-top\",\n R = \".k-item:not(.k-disabled)\",\n O = \".k-item\",\n M = \"aria-hidden\",\n B = \"aria-controls\",\n L = \"aria-disabled\",\n V = \"aria-selected\",\n U = \"aria-labelledby\",\n W = {\n content: u(\"
#= content(item) #
\"),\n itemWrapper: u(\"<#= tag(item) # class='k-link' #= contentUrl(item) # #= textAttributes(item) #>#= image(item) ##= sprite(item) ##= text(item) #\"),\n item: u(\"\"),\n image: u(\"\"),\n sprite: u(\"\"),\n empty: u(\"\")\n },\n j = {\n wrapperCssClass: function (e, t) {\n var n = [\"k-tabstrip-item\", \"k-item\"],\n i = t.index;\n return !1 === t.enabled && n.push(\"k-disabled\"), 0 === i && n.push(\"k-first\"), i == e.length - 1 && n.push(\"k-last\"), n.join(\" \");\n },\n textAttributes: function (e) {\n return e.url ? \" href='\" + e.url + \"'\" : \"\";\n },\n text: function (e) {\n return !1 === e.encoded ? e.text : n.htmlEncode(e.text);\n },\n tag: function (e) {\n return e.url ? \"a\" : \"span\";\n },\n contentAttributes: function (e) {\n return !0 !== e.active ? \" style='display:none' aria-hidden='true'\" : \"\";\n },\n content: function (e) {\n return e.content ? e.content : e.contentUrl ? \"\" : \" \";\n },\n contentUrl: function (e) {\n return e.contentUrl ? n.attr(\"content-url\") + '=\"' + e.contentUrl + '\"' : \"\";\n }\n };\n function q(t) {\n t.children(\"img\").addClass(x), t.children(\"a\").addClass(k).children(\"img\").addClass(x), t.filter(\"li[disabled]\").addClass(F).attr(L, \"true\").prop(\"disabled\", !1), t.filter(\":not([class*=k-state])\").children(\"a\").filter(\":focus\").parent().addClass(\"k-active \" + N), t.attr(\"role\", \"tab\"), t.filter(\".k-active\").attr(V, !0), t.each(function () {\n var t = e(this);\n t.children(\".\" + k).length || t.contents().filter(function () {\n return !(this.nodeName.match(f) || 3 == this.nodeType && !s(this.nodeValue));\n }).wrapAll(\"\");\n });\n }\n function G(e) {\n var t = e.children(\".k-item\");\n t.filter(\".k-first:not(:first-child)\").removeClass(C), t.filter(\".k-last:not(:last-child)\").removeClass(w), t.filter(\":first-child\").addClass(C), t.filter(\":last-child\").addClass(w);\n }\n function K(e, t) {\n return \"\";\n }\n var $ = h.extend({\n init: function (e, t) {\n var i,\n a = this;\n h.fn.init.call(a, e, t), a._animations(a.options), t = a.options, a._contentUrls = t.contentUrls || [], a._wrapper(), a._isRtl = n.support.isRtl(a.wrapper), a._tabindex(), a._updateClasses(), a._dataSource(), a.tabGroup.attr(\"role\", \"tablist\"), t.dataSource && a.dataSource.fetch(), a._tabPosition(), a._scrollable(), a._processContentUrls(), a._attachEvents(), a.options.value && (i = a.options.value), a._initialActivate(), a.value(i), n.notify(a);\n },\n events: [T, S, b, \"error\", A, \"change\", \"dataBinding\", \"dataBound\"],\n options: {\n name: \"TabStrip\",\n dataEncodedField: \"\",\n dataTextField: \"\",\n dataContentField: \"\",\n dataImageUrlField: \"\",\n dataUrlField: \"\",\n dataSpriteCssClass: \"\",\n dataContentUrlField: \"\",\n tabPosition: \"top\",\n animation: {\n open: {\n effects: \"expand:vertical fadeIn\",\n duration: 200\n },\n close: {\n duration: 200\n }\n },\n collapsible: !1,\n navigatable: !0,\n contentUrls: !1,\n scrollable: {\n distance: 200\n }\n },\n setDataSource: function (e) {\n var t = this;\n t.options.dataSource = e, t._dataSource(), t.dataSource.fetch();\n },\n setOptions: function (e) {\n var t = this,\n n = t.options.animation;\n t._animations(e), e.contentUrls && (t._contentUrls = e.contentUrls), e.animation = l(!0, n, e.animation), e.navigatable ? t.wrapper.on(\"keydown\" + m, t._keyDownProxy) : t.wrapper.off(\"keydown\" + m, t._keyDownProxy), h.fn.setOptions.call(t, e);\n },\n activateTab: function (e) {\n if (!this.tabGroup.children(\"[data-animating]\").length) {\n e = this.tabGroup.find(e);\n var t = this,\n i = t.options.animation,\n a = i.open,\n r = l({}, i.close),\n o = r && \"effects\" in r,\n s = e.parent().children(),\n d = s.filter(\".k-active\"),\n u = s.index(e),\n c = a && \"duration\" in a && \"effects\" in a;\n r = l(o ? r : l({\n reverse: !0\n }, a), {\n hide: !0\n }), n.size(a.effects) ? (d.kendoRemoveClass(z, {\n duration: r.duration\n }), e.kendoRemoveClass(H, {\n duration: r.duration\n })) : (d.removeClass(z), e.removeClass(H));\n var h = t.contentAnimators;\n if (t.inRequest && (t.xhr.abort(), t.inRequest = !1), 0 === h.length) return t.tabGroup.find(\".\" + N).removeClass(N), e.addClass(N).css(\"z-index\"), e.addClass(z), t._current(e), t.trigger(\"change\"), t._scrollableModeActive && t._scrollTabsToItem(e), !1;\n var f = h.filter(\".k-active\"),\n m = t.contentHolder(u),\n g = m.closest(\".k-content\");\n if (t.tabsHeight = p(t.tabGroup) + parseInt(t.wrapper.css(\"border-top-width\"), 10) + parseInt(t.wrapper.css(\"border-bottom-width\"), 10), 0 === m.length) return f.removeClass(z).attr(M, !0).kendoStop(!0, !0).kendoAnimate(r), !1;\n e.attr(\"data-animating\", !0);\n var v = !(!e.children(\".\" + k).data(D) && !t._contentUrls[u]) && m.is(\":empty\"),\n _ = function () {\n d.removeAttr(V), e.attr(V, !0), t._current(e), g.addClass(z).removeAttr(M).kendoStop(!0, !0).kendoAnimate(l({\n init: function () {\n t.trigger(b, {\n item: e[0],\n contentElement: m[0]\n }), n.resize(m);\n }\n }, a, {\n complete: function () {\n e.removeAttr(\"data-animating\"), t.trigger(S, {\n item: e[0],\n contentElement: m[0]\n }), n.resize(m), c && (n.support.browser.msie || n.support.browser.edge) && m.finish().animate({\n opacity: .9\n }, \"fast\", \"linear\", function () {\n m.finish().animate({\n opacity: 1\n }, \"fast\", \"linear\");\n });\n }\n }));\n },\n w = function () {\n v ? (e.removeAttr(\"data-animating\"), t.ajaxRequest(e, m, function () {\n e.attr(\"data-animating\", !0), _(), t.trigger(\"change\");\n })) : (_(), t.trigger(\"change\")), t._scrollableModeActive && t._scrollTabsToItem(e);\n },\n y = t.element.css(\"min-height\");\n return t.element.css(\"min-height\", t.element.outerHeight()), f.removeClass(z), t.tabGroup.find(\".\" + N).removeClass(N), e.addClass(N).css(\"z-index\"), n.size(a.effects) ? e.kendoAddClass(z, {\n duration: a.duration\n }) : e.addClass(z), f.attr(M, !0), f.length ? f.kendoStop(!0, !0).kendoAnimate(l({\n complete: w\n }, r)) : w(), t.element.css(\"min-height\", y), !0;\n }\n },\n ajaxRequest: function (t, i, a, r) {\n t = this.tabGroup.find(t);\n var o = this,\n s = e.ajaxSettings.xhr,\n l = t.find(\".\" + k),\n u = t.width() / 2,\n c = !1,\n p = t.find(\".k-loading\").removeClass(\"k-complete\");\n p[0] || (p = e(\"\").prependTo(t));\n var h = 2 * u - p.width(),\n f = function () {\n p.animate({\n marginLeft: (parseInt(p.css(\"marginLeft\"), 10) || 0) < u ? h : 0\n }, 500, f);\n };\n n.support.browser.msie && n.support.browser.version < 10 && setTimeout(f, 40), r = r || l.data(D) || o._contentUrls[t.index()] || l.attr(g), o.inRequest = !0;\n var m = {\n type: \"GET\",\n cache: !1,\n url: r,\n dataType: \"html\",\n data: {},\n xhr: function () {\n var t = this,\n n = s(),\n i = t.progressUpload ? \"progressUpload\" : !!t.progress && \"progress\";\n return n && e.each([n, n.upload], function () {\n this.addEventListener && this.addEventListener(\"progress\", function (e) {\n i && t[i](e);\n }, !1);\n }), t.noProgress = !(window.XMLHttpRequest && \"upload\" in new XMLHttpRequest()), n;\n },\n progress: function (e) {\n if (e.lengthComputable) {\n var t = parseInt(e.loaded / e.total * 100, 10) + \"%\";\n p.stop(!0).addClass(\"k-progress\").css({\n width: t,\n marginLeft: 0\n });\n }\n },\n error: function (e, t) {\n o.trigger(\"error\", {\n xhr: e,\n status: t\n }) && this.complete();\n },\n stopProgress: function () {\n clearInterval(c), p.stop(!0).addClass(\"k-progress\")[0].style.cssText = \"\";\n },\n complete: function (e) {\n o.inRequest = !1, this.noProgress ? setTimeout(this.stopProgress, 500) : this.stopProgress(), \"abort\" == e.statusText && p.remove();\n },\n success: function (e) {\n p.addClass(\"k-complete\");\n try {\n var s = this,\n l = 10;\n s.noProgress && (p.width(l + \"%\"), c = setInterval(function () {\n s.progress({\n lengthComputable: !0,\n loaded: Math.min(l, 100),\n total: 100\n }), l += 10;\n }, 40)), o.angular(\"cleanup\", function () {\n return {\n elements: i.get()\n };\n }), n.destroy(i), i.html(e);\n } catch (e) {\n var d = window.console;\n d && d.error && d.error(e.name + \": \" + e.message + \" in \" + r), this.error(this.xhr, \"error\");\n }\n a && a.call(o, i), o.angular(\"compile\", function () {\n return {\n elements: i.get()\n };\n }), o.trigger(A, {\n item: t[0],\n contentElement: i[0]\n });\n }\n };\n \"object\" == typeof r && (m = e.extend(!0, {}, m, r), d(m.url) && (m.url = m.url())), o.xhr = e.ajax(m);\n },\n append: function (e) {\n var t = this,\n n = t._create(e);\n return o(n.tabs, function (e) {\n var i = n.contents[e];\n t.tabGroup.append(this), \"bottom\" == t.options.tabPosition ? t.tabWrapper.before(i) : t.wrapper.append(i), t.angular(\"compile\", function () {\n return {\n elements: [i]\n };\n });\n }), G(t.tabGroup), t._updateContentElements(), t.resize(!0), t;\n },\n contentElement: function (i) {\n if (isNaN(i - 0)) return t;\n var a = this.contentElements && this.contentElements[0] && !n.kineticScrollNeeded ? this.contentElements : this.contentAnimators,\n r = e(this.tabGroup.children()[i]).attr(B);\n if (a) for (var o = 0, s = a.length; o < s; o++) if (a.eq(o).closest(\".k-content\")[0].id == r) return a[o];\n return t;\n },\n contentHolder: function (t) {\n var i = e(this.contentElement(t)),\n a = i.children(\".km-scroll-container\");\n return n.support.touch && a[0] ? a : i;\n },\n deactivateTab: function (e) {\n var t = this,\n i = t.options.animation,\n a = i.open,\n r = l({}, i.close),\n o = r && \"effects\" in r;\n e = t.tabGroup.find(e), r = l(o ? r : l({\n reverse: !0\n }, a), {\n hide: !0\n }), n.size(a.effects) ? e.kendoRemoveClass(z, {\n duration: a.duration\n }) : e.removeClass(z), e.removeAttr(V), t.contentAnimators.filter(\".k-active\").kendoStop(!0, !0).kendoAnimate(r).removeClass(z).attr(M, !0);\n },\n destroy: function () {\n var e = this;\n h.fn.destroy.call(e), e._refreshHandler && e.dataSource.unbind(\"change\", e._refreshHandler), e.wrapper.off(m), e.tabGroup.off(m), e._scrollableModeActive && (e._scrollPrevButton.off().remove(), e._scrollNextButton.off().remove()), n.destroy(e.wrapper);\n },\n disable: function (e) {\n return this._toggleDisabled(e, !1), this;\n },\n enable: function (e, t) {\n return this._toggleDisabled(e, !1 !== t), this;\n },\n insertAfter: function (t, n) {\n n = e(t).is(e(n)) ? this.tabGroup.find(n).prev() : this.tabGroup.find(n);\n var i = this,\n a = i._create(t),\n r = i.element.find(\"[id='\" + n.attr(B) + \"']\");\n return o(a.tabs, function (t) {\n var o = a.contents[t],\n s = a.newTabsCreated ? i._contentUrls.length - (a.tabs.length - t) : e(o).index() - 1;\n n.after(this), r.after(o), i._moveUrlItem(s, e(this).index()), i.angular(\"compile\", function () {\n return {\n elements: [o]\n };\n });\n }), G(i.tabGroup), i._updateContentElements(a.newTabsCreated), i.resize(!0), i;\n },\n insertBefore: function (t, n) {\n n = e(t).is(e(n)) ? this.tabGroup.find(n).next() : this.tabGroup.find(n);\n var i = this,\n a = i._create(t),\n r = i.element.find(\"[id='\" + n.attr(B) + \"']\");\n return o(a.tabs, function (t) {\n var o = a.contents[t],\n s = a.newTabsCreated ? i._contentUrls.length - (a.tabs.length - t) : e(o).index() - 1;\n n.before(this), r.before(o), i._moveUrlItem(s, e(this).index()), i.angular(\"compile\", function () {\n return {\n elements: [o]\n };\n });\n }), G(i.tabGroup), i._updateContentElements(a.newTabsCreated), i.resize(!0), i;\n },\n items: function () {\n return this.tabGroup[0].children;\n },\n refresh: function (e) {\n var t,\n i,\n a,\n r = this,\n o = r.options,\n s = n.getter(o.dataEncodedField),\n l = n.getter(o.dataTextField),\n d = n.getter(o.dataContentField),\n u = n.getter(o.dataContentUrlField),\n c = n.getter(o.dataImageUrlField),\n p = n.getter(o.dataUrlField),\n h = n.getter(o.dataSpriteCssClass),\n f = [],\n m = r.dataSource.view();\n for ((e = e || {}).action && (m = e.items), t = 0, a = m.length; t < a; t++) i = {\n text: l(m[t])\n }, o.dataEncodedField && (i.encoded = s(m[t])), o.dataContentField && (i.content = d(m[t])), o.dataContentUrlField && (i.contentUrl = u(m[t])), o.dataUrlField && (i.url = p(m[t])), o.dataImageUrlField && (i.imageUrl = c(m[t])), o.dataSpriteCssClass && (i.spriteCssClass = h(m[t])), f[t] = i;\n if (\"add\" == e.action) e.index < r.tabGroup.children().length ? r.insertBefore(f, r.tabGroup.children().eq(e.index)) : r.append(f);else if (\"remove\" == e.action) for (t = 0; t < m.length; t++) r.remove(e.index);else \"itemchange\" == e.action ? (t = r.dataSource.view().indexOf(m[0]), e.field === o.dataTextField && r.tabGroup.children().eq(t).find(\".k-link\").text(m[0].get(e.field)), e.field === o.dataUrlField && (r._contentUrls[t] = m[0].get(e.field))) : (r.trigger(\"dataBinding\"), r.remove(\"li\"), r._contentUrls = [], r.append(f), r.trigger(\"dataBound\"));\n },\n reload: function (t) {\n t = this.tabGroup.find(t);\n var n = this,\n i = n._contentUrls;\n return t.each(function () {\n var t = e(this),\n a = t.find(\".\" + k).data(D) || i[t.index()],\n r = n.contentHolder(t.index());\n a && n.ajaxRequest(t, r, null, a);\n }), n;\n },\n remove: function (t) {\n var i,\n a = this,\n r = typeof t;\n return \"string\" === r ? t = a.tabGroup.find(t) : \"number\" === r && (t = a.tabGroup.children().eq(t)), i = t.map(function () {\n var t = e(this).index(),\n i = a.contentElement(t);\n return n.destroy(i), a._removeUrlItem(t), i;\n }), t.remove(), i.empty(), i.remove(), a._updateContentElements(), a.resize(!0), a;\n },\n select: function (t) {\n var n = this;\n return 0 === arguments.length ? n.tabGroup.children(\"li.k-active\") : (isNaN(t) || (t = n.tabGroup.children().get(t)), t = n.tabGroup.find(t), e(t).each(function (t, i) {\n (i = e(i)).hasClass(z) || n.trigger(T, {\n item: i[0],\n contentElement: n.contentHolder(i.index())[0]\n }) || n.activateTab(i);\n }), n);\n },\n value: function (i) {\n var a = this;\n if (i === t) return a.select().text();\n i != a.value() && a.tabGroup.children().each(function () {\n n.trim(e(this).text()) == i && a.select(this);\n });\n },\n _active: function () {\n var e = this.tabGroup.children().filter(\".k-active\");\n (e = e[0] ? e : this._endItem(\"first\"))[0] && this._current(e);\n },\n _animations: function (e) {\n e && \"animation\" in e && !e.animation && (e.animation = {\n open: {\n effects: {}\n },\n close: {\n effects: {}\n }\n });\n },\n _appendUrlItem: function (e) {\n this._contentUrls.push(e);\n },\n _attachEvents: function () {\n var e = this,\n t = e.options;\n e.wrapper.on(E + m + \" mouseleave\" + m, \".k-tabstrip-items > .k-item:not(.k-disabled):not(.k-active)\", e._toggleHover).on(\"focus\" + m, e._active.bind(e)).on(\"blur\" + m, function () {\n e._current(null);\n }), e._keyDownProxy = e._keydown.bind(e), t.navigatable && e.wrapper.on(\"keydown\" + m, e._keyDownProxy), e.tabGroup.on(y + m, \".k-disabled .k-link\", !1).on(y + m, \" > \" + R, e._itemClick.bind(e));\n },\n _click: function (e) {\n var t,\n n,\n i = this,\n a = e.find(\".\" + k),\n r = a.attr(g),\n o = i.options.collapsible,\n s = e.index(),\n l = i.contentHolder(s),\n d = e.parent().children().filter(\".k-focus\");\n if (e.closest(\".k-widget\")[0] == i.wrapper[0]) {\n if (e.is(\".k-disabled\" + (o ? \"\" : \",.k-active\"))) return d.removeClass(P), i._focused = e, e.addClass(P), i._current(e), i._scrollableModeActive && i._scrollTabsToItem(e), !0;\n if (n = a.data(D) || i._contentUrls[s] || r && (\"#\" == r.charAt(r.length - 1) || -1 != r.indexOf(\"#\" + i.element[0].id + \"-\")), t = !r || n, i.tabGroup.children(\"[data-animating]\").length) return t;\n if (i.trigger(T, {\n item: e[0],\n contentElement: l[0]\n })) return !0;\n if (!1 !== t) return o && e.is(\".k-active\") ? (i.deactivateTab(e), !0) : (i.activateTab(e) && (t = !0), t);\n }\n },\n _create: function (t) {\n var i,\n a,\n o,\n s = this,\n d = !1;\n return t = t instanceof n.data.ObservableArray ? t.toJSON() : t, e.isPlainObject(t) || Array.isArray(t) ? (t = Array.isArray(t) ? t : [t], d = !0, i = r(t, function (n, i) {\n return s._appendUrlItem(t[i].contentUrl || null), e($.renderItem({\n group: s.tabGroup,\n item: l(n, {\n index: i\n })\n }));\n }), a = r(t, function (t, n) {\n if (\"string\" == typeof t.content || t.contentUrl) return e($.renderContent({\n item: l(t, {\n index: n\n })\n }));\n })) : (i = \"string\" == typeof t && \"<\" != t[0] ? s.element.find(t) : e(t), a = e(), i.each(function () {\n if (/k-tabstrip-items/.test(this.parentNode.className)) {\n var t = s.element.find(\"[id='\" + this.getAttribute(B) + \"']\");\n o = t;\n } else o = e(\"
\");\n a = a.add(o);\n }), q(i)), {\n tabs: i,\n contents: a,\n newTabsCreated: d\n };\n },\n _current: function (e) {\n var n = this._focused;\n if (e === t) return n;\n n && n.removeClass(P), e && (e.hasClass(z) || e.addClass(P)), this._focused = e;\n },\n _dataSource: function () {\n var e = this;\n e.dataSource && e._refreshHandler ? e.dataSource.unbind(\"change\", e._refreshHandler) : e._refreshHandler = e.refresh.bind(e), e.dataSource = n.data.DataSource.create(e.options.dataSource).bind(\"change\", e._refreshHandler);\n },\n _elementId: function (e, t, i) {\n var a = e.attr(\"id\"),\n r = this.element.attr(\"id\"),\n o = n.guid();\n if (!a || a.indexOf(r + \"-\") > -1) {\n var s = (r || o) + \"-\";\n return i && (s += \"tab-\"), s + (t + 1);\n }\n return a;\n },\n _endItem: function (e) {\n return this.tabGroup.children(R)[e]();\n },\n _getItem: function (e) {\n return this.tabGroup.children(O)[e]();\n },\n _initialActivate: function () {\n var e = this,\n t = e.tabGroup.children(\"li.k-active\"),\n n = e.contentHolder(t.index());\n t[0] && n.length > 0 && 0 === n[0].childNodes.length && e.activateTab(t.eq(0));\n },\n _item: function (e, t) {\n var n;\n return n = t === v ? \"last\" : \"first\", e ? ((e = e[t]())[0] || (e = this.tabGroup.children(O)[n]()), e.hasClass(F) && e.addClass(P), (e.hasClass(F) || e.hasClass(z)) && (this._focused = e), e) : this._endItem(n);\n },\n _itemClick: function (t) {\n var i = this.wrapper[0];\n if (i !== document.activeElement) if (n.support.browser.msie) try {\n i.setActive();\n } catch (e) {\n i.focus();\n } else i.focus();\n this._click(e(t.currentTarget)) && t.preventDefault();\n },\n _keydown: function (e) {\n var t,\n n = this,\n i = e.keyCode,\n r = n._current(),\n o = n._isRtl,\n s = /top|bottom/.test(n.options.tabPosition);\n if (e.target == e.currentTarget && r) {\n if (i !== a.DOWN || s) {\n if (i !== a.UP || s) {\n if (i === a.RIGHT && s) t = o ? v : _;else if (i === a.LEFT && s) t = o ? _ : v;else if (i == a.ENTER || i == a.SPACEBAR) n._click(r), e.preventDefault();else {\n if (i == a.HOME) return n._click(n._getItem(\"first\")), void e.preventDefault();\n if (i == a.END) return n._click(n._getItem(\"last\")), void e.preventDefault();\n }\n } else t = v;\n } else t = _;\n t && (n._click(n._item(r, t)), e.preventDefault());\n }\n },\n _moveUrlItem: function (e, t) {\n this._contentUrls.splice(t, 0, this._contentUrls.splice(e, 1)[0]);\n },\n _processContentUrls: function () {\n var t = this;\n t._contentUrls.length ? t.tabGroup.children(\".k-item\").each(function (n, i) {\n var a = t._contentUrls[n];\n \"string\" == typeof a && e(i).find(\">.\" + k).data(D, a);\n }) : t._contentUrls.length = t.tabGroup.find(\"li.k-item\").length;\n },\n _removeUrlItem: function (e) {\n this._contentUrls.splice(e, 1);\n },\n _resize: function () {\n this._scrollable();\n },\n _scrollable: function () {\n var e,\n t,\n i,\n a,\n r = this,\n o = r.options;\n if (r._scrollableAllowed()) if (r.wrapper.addClass(\"k-tabstrip-scrollable\"), e = r.wrapper[0].offsetWidth, (t = r.tabGroup[0].scrollWidth) > e && !r._scrollableModeActive) {\n r._nowScrollingTabs = !1, r._isRtl = n.support.isRtl(r.element);\n var s = n.support.touch ? \"touchstart\" : \"mousedown\",\n l = n.support.touch ? \"touchend\" : \"mouseup\",\n d = n.support.browser,\n u = r._isRtl && !d.msie && !d.edge;\n r.tabWrapper.prepend(K(\"prev\", \"k-i-arrow-60-left\")), r.tabWrapper.append(K(\"next\", \"k-i-arrow-60-right\")), i = r._scrollPrevButton = r.tabWrapper.children(\".k-tabstrip-prev\"), a = r._scrollNextButton = r.tabWrapper.children(\".k-tabstrip-next\"), i.on(s + m, function () {\n r._nowScrollingTabs = !0, r._scrollTabsByDelta(o.scrollable.distance * (u ? 1 : -1));\n }), a.on(s + m, function () {\n r._nowScrollingTabs = !0, r._scrollTabsByDelta(o.scrollable.distance * (u ? -1 : 1));\n }), i.add(a).on(l + m, function () {\n r._nowScrollingTabs = !1;\n }), r._scrollableModeActive = !0, r._toggleScrollButtons();\n } else r._scrollableModeActive && t <= e ? (r._scrollableModeActive = !1, r.wrapper.removeClass(\"k-tabstrip-scrollable\"), r._scrollPrevButton.off().remove(), r._scrollNextButton.off().remove()) : r._scrollableModeActive ? r._toggleScrollButtons() : r.wrapper.removeClass(\"k-tabstrip-scrollable\");\n },\n _scrollableAllowed: function () {\n var e = this.options;\n return e.scrollable && !e.scrollable.distance && (e.scrollable = {\n distance: 200\n }), e.scrollable && !isNaN(e.scrollable.distance) && (\"top\" == e.tabPosition || \"bottom\" == e.tabPosition);\n },\n _scrollTabsToItem: function (e) {\n var t,\n i = this,\n a = i.tabGroup,\n r = n.scrollLeft(a),\n o = c(e),\n s = i._isRtl ? e.position().left : e.position().left - a.children().first().position().left,\n l = a[0].offsetWidth,\n d = n.support.browser;\n i._isRtl && (d.mozilla || d.webkit && d.version >= 85) && (r *= -1), i._isRtl ? s < 0 ? t = r + s - (l - r) : s + o > l && (t = r + s - o) : r + l < s + o ? t = s + o - l : r > s && (t = s), a.finish().animate({\n scrollLeft: t\n }, \"fast\", \"linear\", function () {\n i._toggleScrollButtons();\n });\n },\n _scrollTabsByDelta: function (e) {\n var t = this,\n i = t.tabGroup,\n a = n.scrollLeft(i),\n r = n.support.browser;\n t._isRtl && (r.mozilla || r.webkit && r.version >= 85) && (a *= -1), i.finish().animate({\n scrollLeft: a + e\n }, \"fast\", \"linear\", function () {\n t._nowScrollingTabs && !jQuery.fx.off ? t._scrollTabsByDelta(e) : t._toggleScrollButtons();\n });\n },\n _tabPosition: function () {\n var e = this,\n t = e.options.tabPosition;\n e.wrapper.addClass(\"k-floatwrap k-tabstrip-\" + t), \"bottom\" == t && e.tabWrapper.appendTo(e.wrapper), \"left\" !== t && \"right\" !== t || e.tabGroup.attr(\"aria-orientation\", \"vertical\"), e.resize(!0);\n },\n _toggleHover: function (t) {\n e(t.currentTarget).toggleClass(H, t.type == E);\n },\n _toggleDisabled: function (t, n) {\n (t = this.tabGroup.find(t)).each(function () {\n e(this).toggleClass(F, !n).attr(L, !n);\n });\n },\n _toggleScrollButtons: function () {\n var e = this,\n t = e.tabGroup,\n i = n.scrollLeft(t);\n e._scrollPrevButton.toggleClass(\"k-disabled\", 0 === i), e._scrollNextButton.toggleClass(\"k-disabled\", i === t[0].scrollWidth - t[0].offsetWidth);\n },\n _updateClasses: function () {\n var n,\n i,\n a,\n r = this,\n o = /top|bottom/.test(r.options.tabPosition);\n r.wrapper.addClass(\"k-widget k-tabstrip\"), r.tabGroup || (r.tabGroup = r.wrapper.children(\"ul\"), r.tabGroup.wrap(\"
\"), r.tabWrapper = r.tabGroup.parent()), r.tabGroup[0] || (r.tabGroup = e(\"
    \").prependTo(r.wrapper), r.tabGroup.wrap(\"
    \"), r.tabWrapper = r.tabGroup.parent()), r.tabWrapper.addClass(\"k-tabstrip-items-wrapper\"), r.tabWrapper.addClass(o ? \"k-hstack\" : \"k-vstack\"), r.tabGroup.addClass(\"k-tabstrip-items k-reset\"), (n = r.tabGroup.find(\"li\").addClass(\"k-tabstrip-item k-item\")).length && (a = (i = n.filter(\".k-active\").index()) >= 0 ? i : t, r.tabGroup.contents().filter(function () {\n return 3 == this.nodeType && !s(this.nodeValue);\n }).remove()), i >= 0 && n.eq(i).addClass(N), r.contentElements = r.wrapper.children(\"div:not(.k-tabstrip-items-wrapper)\"), r.contentElements.addClass(I).eq(a).addClass(z).css({\n display: \"block\"\n }), n.length && (q(n), G(r.tabGroup), r._updateContentElements(!0));\n },\n _updateContentElements: function (t) {\n var i = this,\n a = i._contentUrls,\n r = i.tabGroup.children(\".k-item\"),\n o = i.wrapper.children(\"div:not(.k-tabstrip-items-wrapper)\"),\n s = i._elementId.bind(i);\n o.length && r.length > o.length ? o.each(function (n) {\n var i,\n a = s(e(this), n),\n o = r.filter(\"[aria-controls=\" + (a || 0) + \"]\")[0];\n !o && t && (o = r[n]), o && (o.setAttribute(B, a), i = o.id = s(e(o), n, !0), this.setAttribute(U, i)), this.setAttribute(\"id\", a);\n }) : r.each(function (t) {\n var n,\n r = o.eq(t),\n l = s(r, t);\n this.setAttribute(B, l), n = this.id = s(e(this), t, !0), !r.length && a[t] ? e(\"
    \").appendTo(i.wrapper).attr(\"id\", l) : (r.attr(\"id\", l), e(this).children(\".k-loading\")[0] || a[t] || e(\"\").prependTo(this)), r.attr(\"role\", \"tabpanel\"), r.attr(\"tabindex\", \"0\"), r.attr(U, n), r.filter(\":not(.k-active)\").attr(M, !0);\n }), i.contentElements = i.contentAnimators = i.wrapper.children(\"div:not(.k-tabstrip-items-wrapper)\"), i.tabsHeight = p(i.tabGroup) + parseInt(i.wrapper.css(\"border-top-width\"), 10) + parseInt(i.wrapper.css(\"border-bottom-width\"), 10), n.kineticScrollNeeded && n.mobile.ui.Scroller && (n.touchScroller(i.contentElements), i.contentElements = i.contentElements.children(\".km-scroll-container\"));\n },\n _wrapper: function () {\n var e = this;\n e.element.is(\"ul\") ? e.wrapper = e.element.wrapAll(\"
    \").parent() : e.wrapper = e.element;\n }\n });\n l($, {\n renderItem: function (e) {\n e = l({\n tabStrip: {},\n group: {}\n }, e);\n var t = W.empty,\n n = e.item;\n return W.item(l(e, {\n image: n.imageUrl ? W.image : t,\n sprite: n.spriteCssClass ? W.sprite : t,\n itemWrapper: W.itemWrapper\n }, j));\n },\n renderContent: function (e) {\n return W.content(l(e, j));\n }\n }), n.ui.plugin($);\n }(window.kendo.jQuery), function (e, t) {\n var n = window.kendo,\n i = {\n format: \"0\",\n min: 0\n },\n a = [\"px\", \"em\"],\n r = [\"solid\", \"dotted\", \"dashed\", \"double\", \"groove\", \"ridge\", \"inset\", \"outset\", \"initial\", \"inherit\", \"none\", \"hidden\"],\n o = {\n dataSource: [{\n className: \"k-icon k-i-table-align-middle-left\",\n value: \"left\"\n }, {\n className: \"k-icon k-i-table-align-middle-center\",\n value: \"center\"\n }, {\n className: \"k-icon k-i-table-align-middle-right\",\n value: \"right\"\n }, {\n className: \"k-icon k-i-align-remove\",\n value: \"\"\n }],\n dataTextField: \"className\",\n dataValueField: \"value\",\n template: \"\",\n valueTemplate: \"\"\n },\n s = {\n dataSource: [{\n className: \"k-icon k-i-table-align-top-left\",\n value: \"left top\"\n }, {\n className: \"k-icon k-i-table-align-top-center\",\n value: \"center top\"\n }, {\n className: \"k-icon k-i-table-align-top-right\",\n value: \"right top\"\n }, {\n className: \"k-icon k-i-table-align-middle-left\",\n value: \"left middle\"\n }, {\n className: \"k-icon k-i-table-align-middle-center\",\n value: \"center middle\"\n }, {\n className: \"k-icon k-i-table-align-middle-right\",\n value: \"right middle\"\n }, {\n className: \"k-icon k-i-table-align-bottom-left\",\n value: \"left bottom\"\n }, {\n className: \"k-icon k-i-table-align-bottom-center\",\n value: \"center bottom\"\n }, {\n className: \"k-icon k-i-table-align-bottom-right\",\n value: \"right bottom\"\n }, {\n className: \"k-icon k-i-align-remove\",\n value: \"\"\n }],\n dataTextField: \"className\",\n dataValueField: \"value\",\n template: \"\",\n valueTemplate: \"\"\n },\n l = {\n dataSource: [{\n className: \"k-icon k-i-table-align-top-left\",\n value: \"left top\"\n }, {\n className: \"k-icon k-i-table-align-top-center\",\n value: \"center top\"\n }, {\n className: \"k-icon k-i-table-align-top-right\",\n value: \"right top\"\n }, {\n className: \"k-icon k-i-table-align-bottom-left\",\n value: \"left bottom\"\n }, {\n className: \"k-icon k-i-table-align-bottom-center\",\n value: \"center bottom\"\n }, {\n className: \"k-icon k-i-table-align-bottom-right\",\n value: \"right bottom\"\n }, {\n className: \"k-icon k-i-align-remove\",\n value: \"\"\n }],\n dataTextField: \"className\",\n dataValueField: \"value\",\n template: \"\",\n valueTemplate: \"\"\n },\n d = n.Class.extend({\n init: function (e) {\n this.options = e;\n },\n open: function () {\n var t,\n i = this,\n a = i.options,\n r = a.dialogOptions,\n o = a.table,\n s = a.messages,\n l = n.support.browser.msie;\n function d(e) {\n e.preventDefault(), i.destroy(), t.destroy();\n }\n function u(e) {\n d(e), a.closeCallback();\n }\n r.close = u, r.title = s.tableWizard, r.visible = a.visible;\n var c = (t = e(i._dialogTemplate(s)).appendTo(document.body).kendoWindow(r).closest(\".k-window\").toggleClass(\"k-rtl\", a.isRtl).end().find(\".k-dialog-ok\").on(\"click\", function (e) {\n i.collectDialogValues(o), d(e), i.change && i.change(), a.closeCallback(o);\n }).end().find(\".k-dialog-close\").on(\"click\", u).end().data(\"kendoWindow\")).element;\n if (i._initTabStripComponent(c), i._initTableViewComponents(c, o), i._initCellViewComponents(c, o), i._initAccessibilityViewComponents(c, o), t.center(), t.open(), l) {\n var p = c.closest(\".k-window\").height();\n c.css(\"max-height\", p);\n }\n },\n _initTabStripComponent: function (e) {\n (this.components = {}).tabStrip = e.find(\"#k-table-wizard-tabs\").kendoTabStrip({\n animation: !1\n }).data(\"kendoTabStrip\");\n },\n collectDialogValues: function () {\n var e = this,\n t = e.options.table;\n e._collectTableViewValues(t), e._collectCellViewValues(t), e._collectAccessibilityViewValues(t);\n },\n _collectTableViewValues: function (e) {\n var t = this.components.tableView,\n n = e.tableProperties;\n n.width = t.width.value(), n.widthUnit = t.widthUnit.value(), n.height = t.height.value(), n.columns = t.columns.value(), n.rows = t.rows.value(), n.heightUnit = t.heightUnit.value(), n.cellSpacing = t.cellSpacing.value(), n.cellPadding = t.cellPadding.value(), n.alignment = t.alignment.value(), n.bgColor = t.bgColor.value(), n.className = t.className.value, n.id = t.id.value, n.borderWidth = t.borderWidth.value(), n.borderColor = t.borderColor.value(), n.borderStyle = t.borderStyle.value(), n.collapseBorders = t.collapseBorders.checked;\n },\n _collectCellViewValues: function (e) {\n var t = e.cellProperties = {},\n n = this.components.cellView;\n t.selectAllCells = n.selectAllCells.checked, t.width = n.width.value(), t.widthUnit = n.widthUnit.value(), t.height = n.height.value(), t.heightUnit = n.heightUnit.value(), t.cellMargin = n.cellMargin.value(), t.cellPadding = n.cellPadding.value(), t.alignment = n.alignment.value(), t.bgColor = n.bgColor.value(), t.className = n.className.value, t.id = n.id.value, t.borderWidth = n.borderWidth.value(), t.borderColor = n.borderColor.value(), t.borderStyle = n.borderStyle.value(), t.wrapText = n.wrapText.checked, t.width || (t.selectAllCells = !0, t.width = 100 / e.tableProperties.columns, t.widthUnit = \"%\");\n },\n _collectAccessibilityViewValues: function (e) {\n var t = e.tableProperties,\n n = this.components.accessibilityView;\n t.captionContent = n.captionContent.value, t.captionAlignment = n.captionAlignment.value(), t.summary = n.summary.value, t.cellsWithHeaders = n.cellsWithHeaders.value(), t.headerRows = n.headerRows.value(), t.headerColumns = n.headerColumns.value();\n },\n _addUnit: function (t, n) {\n n && -1 == e.inArray(n, t) && t.push(n);\n },\n _initTableViewComponents: function (e, t) {\n var n = this,\n i = n.components.tableView = {},\n o = t.tableProperties = t.tableProperties || {};\n o.borderStyle = o.borderStyle || \"\";\n n._addUnit(a, o.widthUnit), n._addUnit(a, o.heightUnit), n._initNumericTextbox(e.find(\"#k-editor-table-width\"), \"width\", o, i), n._initNumericTextbox(e.find(\"#k-editor-table-height\"), \"height\", o, i), n._initNumericTextbox(e.find(\"#k-editor-table-columns\"), \"columns\", o, i, {\n min: 1,\n value: 4,\n change: function (e) {\n var t = n.components.accessibilityView.headerColumns,\n i = t.value(),\n a = e.sender.value();\n a < i && t.value(a), t.max(a);\n }\n }), n._initNumericTextbox(e.find(\"#k-editor-table-rows\"), \"rows\", o, i, {\n min: 1,\n value: 4,\n change: function (e) {\n var t = n.components.accessibilityView.headerRows,\n i = t.value(),\n a = e.sender.value();\n a < i && t.value(a), t.max(a);\n }\n }), n._initDropDownList(e.find(\"#k-editor-table-width-type\"), \"widthUnit\", o, i, a), n._initDropDownList(e.find(\"#k-editor-table-height-type\"), \"heightUnit\", o, i, a), n._initNumericTextbox(e.find(\"#k-editor-table-cell-spacing\"), \"cellSpacing\", o, i), n._initNumericTextbox(e.find(\"#k-editor-table-cell-padding\"), \"cellPadding\", o, i), n._initTableAlignmentDropDown(e.find(\"#k-editor-table-alignment\"), o), n._initColorPicker(e.find(\"#k-editor-table-bg\"), \"bgColor\", o, i), n._initInput(e.find(\"#k-editor-css-class\"), \"className\", o, i), n._initInput(e.find(\"#k-editor-id\"), \"id\", o, i), n._initNumericTextbox(e.find(\"#k-editor-border-width\"), \"borderWidth\", o, i), n._initColorPicker(e.find(\"#k-editor-border-color\"), \"borderColor\", o, i), n._initBorderStyleDropDown(e.find(\"#k-editor-border-style\"), \"borderStyle\", o, i, r), n._initCheckbox(e.find(\"#k-editor-collapse-borders\"), \"collapseBorders\", o, i);\n },\n _initCellViewComponents: function (e, t) {\n var n = this.components.cellView = {};\n t.selectedCells = t.selectedCells = t.selectedCells || [];\n var i = t.selectedCells[0] || {\n borderStyle: \"\",\n wrapText: !0\n };\n this._addUnit(a, i.widthUnit), this._addUnit(a, i.heightUnit), this._initCheckbox(e.find(\"#k-editor-selectAllCells\"), \"selectAllCells\", t.tableProperties, n), this._initNumericTextbox(e.find(\"#k-editor-cell-width\"), \"width\", i, n), this._initNumericTextbox(e.find(\"#k-editor-cell-height\"), \"height\", i, n), this._initDropDownList(e.find(\"#k-editor-cell-width-type\"), \"widthUnit\", i, n, a), this._initDropDownList(e.find(\"#k-editor-cell-height-type\"), \"heightUnit\", i, n, a), this._initNumericTextbox(e.find(\"#k-editor-table-cell-margin\"), \"cellMargin\", i, n), this._initNumericTextbox(e.find(\"#k-editor-table-cells-padding\"), \"cellPadding\", i, n), this._initCellAlignmentDropDown(e.find(\"#k-editor-cell-alignment\"), i), this._initColorPicker(e.find(\"#k-editor-cell-bg\"), \"bgColor\", i, n), this._initInput(e.find(\"#k-editor-cell-css-class\"), \"className\", i, n), this._initInput(e.find(\"#k-editor-cell-id\"), \"id\", i, n), this._initNumericTextbox(e.find(\"#k-editor-cell-border-width\"), \"borderWidth\", i, n), this._initColorPicker(e.find(\"#k-editor-cell-border-color\"), \"borderColor\", i, n), this._initBorderStyleDropDown(e.find(\"#k-editor-cell-border-style\"), \"borderStyle\", i, n, r), this._initCheckbox(e.find(\"#k-editor-wrap-text\"), \"wrapText\", i, n);\n },\n _initAccessibilityViewComponents: function (e, t) {\n var n = this.components.accessibilityView = {},\n i = t.tableProperties;\n this._initInput(e.find(\"#k-editor-table-caption\"), \"captionContent\", i, n), this._initAccessibilityAlignmentDropDown(e.find(\"#k-editor-accessibility-alignment\"), i), this._initInput(e.find(\"#k-editor-accessibility-summary\"), \"summary\", i, n), this._initAssociationDropDown(e.find(\"#k-editor-cells-headers\"), \"cellsWithHeaders\", {\n valuePrimitive: !0\n }, i, n), this._initNumericTextbox(e.find(\"#k-editor-table-header-rows\"), \"headerRows\", i, n, {\n max: i.rows || 4\n }), this._initNumericTextbox(e.find(\"#k-editor-table-header-columns\"), \"headerColumns\", i, n, {\n max: i.columns || 4\n });\n },\n _initNumericTextbox: function (t, n, a, r, o) {\n var s = r[n] = t.kendoNumericTextBox(o ? e.extend({}, i, o) : i).data(\"kendoNumericTextBox\");\n n in a && s.value(parseInt(a[n], 10));\n },\n _initDropDownList: function (e, t, n, i, a) {\n var r = i[t] = e.kendoDropDownList({\n dataSource: a\n }).data(\"kendoDropDownList\");\n this._setComponentValue(r, n, t);\n },\n _initBorderStyleDropDown: function (e, t, n, i, a) {\n var r = i[t] = e.kendoDropDownList({\n dataSource: a,\n optionLabel: this.options.messages.borderNone\n }).data(\"kendoDropDownList\");\n this._setComponentValue(r, n, t);\n },\n _initTableAlignmentDropDown: function (e, t) {\n var n = this.options.messages,\n i = this.components.tableView,\n a = o.dataSource;\n a[0].tooltip = n.alignLeft, a[1].tooltip = n.alignCenter, a[2].tooltip = n.alignRight, a[3].tooltip = n.alignRemove, this._initAlignmentDropDown(e, o, \"alignment\", t, i);\n },\n _initCellAlignmentDropDown: function (e, t) {\n var n = this.options.messages,\n i = this.components.cellView,\n a = s.dataSource;\n a[0].tooltip = n.alignLeftTop, a[1].tooltip = n.alignCenterTop, a[2].tooltip = n.alignRightTop, a[3].tooltip = n.alignLeftMiddle, a[4].tooltip = n.alignCenterMiddle, a[5].tooltip = n.alignRightMiddle, a[6].tooltip = n.alignLeftBottom, a[7].tooltip = n.alignCenterBottom, a[8].tooltip = n.alignRightBottom, a[9].tooltip = n.alignRemove, this._initAlignmentDropDown(e, s, \"alignment\", t, i);\n },\n _initAccessibilityAlignmentDropDown: function (e, t) {\n var n = this.options.messages,\n i = this.components.accessibilityView,\n a = l.dataSource;\n a[0].tooltip = n.alignLeftTop, a[1].tooltip = n.alignCenterTop, a[2].tooltip = n.alignRightTop, a[3].tooltip = n.alignLeftBottom, a[4].tooltip = n.alignCenterBottom, a[5].tooltip = n.alignRightBottom, a[6].tooltip = n.alignRemove, this._initAlignmentDropDown(e, l, \"captionAlignment\", t, i);\n },\n _initAlignmentDropDown: function (e, t, n, i, a) {\n var r = a[n] = e.kendoDropDownList(t).data(\"kendoDropDownList\");\n r.list.addClass(\"k-align\").css(\"width\", \"110px\"), this._setComponentValue(r, i, n);\n },\n _initAssociationDropDown: function (e, t, n, i, a) {\n var r = a[t] = e.kendoDropDownList(n).data(\"kendoDropDownList\");\n this._setComponentValue(r, i, t);\n },\n _setComponentValue: function (e, t, n) {\n n in t && e.value(t[n]);\n },\n _initColorPicker: function (e, t, n, i) {\n var a = i[t] = e.kendoColorPicker({\n buttons: !1,\n clearButton: !0\n }).data(\"kendoColorPicker\");\n n[t] && a.value(n[t]);\n },\n _initInput: function (e, t, n, i) {\n var a = i[t] = e.get(0);\n t in n && (a.value = n[t]);\n },\n _initCheckbox: function (e, t, n, i) {\n var a = i[t] = e.get(0);\n t in n && (a.checked = n[t]);\n },\n destroy: function () {\n this._destroyComponents(this.components.tableView), this._destroyComponents(this.components.cellView), this._destroyComponents(this.components.accessibilityView), this._destroyComponents(this.components), delete this.components;\n },\n _destroyComponents: function (e) {\n for (var t in e) e[t].destroy && e[t].destroy(), delete e[t];\n },\n _dialogTemplate: function (e) {\n return n.template('
    • #= messages.tableTab #
    • #= messages.cellTab #
    • #= messages.accessibilityTab #
     
     
    ')({\n messages: e\n });\n }\n });\n n.ui.editor.TableWizardDialog = d;\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui,\n a = n._activeElement,\n r = n.support.touch && n.support.mobileOS,\n o = Array.isArray,\n s = n.data.HierarchicalDataSource,\n l = \"mousedown\",\n d = \"click\",\n u = e.extend,\n c = e.each,\n p = n.template,\n h = n.keys,\n f = i.Widget,\n m = /^(ul|a|div)$/i,\n g = \".kendoMenu\",\n v = \"open\",\n _ = \"k-menu\",\n b = \"k-link k-menu-link\",\n k = \".k-link\",\n w = \".k-menu-expand-arrow-icon\",\n y = \"k-last\",\n x = \"close\",\n C = \"timer\",\n T = \"k-first\",\n S = \"k-image\",\n I = \"select\",\n D = \"zIndex\",\n E = \"activate\",\n A = \"deactivate\",\n F = \"touchstart\" + g + \" MSPointerDown\" + g + \" pointerdown\" + g,\n z = n.support.pointers,\n P = n.support.msPointers,\n H = P || z,\n N = \"change\",\n R = \"error\",\n O = n.support.touch ? \"touchstart\" : \"\",\n M = z ? \"pointerover\" : P ? \"MSPointerOver\" : \"mouseenter\",\n B = z ? \"pointerout\" : P ? \"MSPointerOut\" : \"mouseleave\",\n L = \"DOMMouseScroll\" + g + \" mousewheel\" + g,\n V = n.support.resize + g,\n U = \"group\",\n W = \"groupparent\",\n j = e(document.documentElement),\n q = \"kendoPopup\",\n G = \"k-hover\",\n K = \"k-focus\",\n $ = \"k-disabled\",\n Y = \".k-menu\",\n Q = \".k-menu-group\",\n X = \".k-animation-container\",\n J = \".k-menu-group,.k-animation-container\",\n Z = \":not(.k-list) > .k-item:not([role='treeitem'])\",\n ee = \".k-item\",\n te = \".k-item:not(.k-disabled)\",\n ne = \":not(.k-item.k-separator)\",\n ie = \".k-menu-scroll-button\",\n ae = {\n 2: 1,\n touch: 1\n },\n re = \"dataBound\",\n oe = \"aria-expanded\",\n se = \"role\",\n le = {\n text: \"dataTextField\",\n url: \"dataUrlField\",\n spriteCssClass: \"dataSpriteCssClassField\",\n imageUrl: \"dataImageUrlField\",\n imageAttr: \"dataImageAttrField\",\n content: \"dataContentField\"\n },\n de = {\n wrapperCssClass: function (e, t) {\n var n = \"k-item k-menu-item\",\n i = t.index;\n return !1 === t.enabled && (n += \" k-disabled\"), e.firstLevel && 0 === i && (n += \" k-first\"), i == e.length - 1 && (n += \" k-last\"), t.cssClass && (n += \" \" + t.cssClass), t.attr && t.attr.hasOwnProperty(\"class\") && (n += \" \" + t.attr.class), t.selected && (n += \" k-selected\"), n;\n },\n itemCssAttributes: function (e) {\n var t = \"\",\n n = e.attr || {};\n for (var i in n) n.hasOwnProperty(i) && \"class\" !== i && (t += i + '=\"' + n[i] + '\" ');\n return t;\n },\n imageCssAttributes: function (e) {\n var t = \"\",\n n = e && e.toJSON ? e.toJSON() : {};\n for (var i in n.class ? n.class += \" \" + S : n.class = S, n) n.hasOwnProperty(i) && (t += i + '=\"' + n[i] + '\" ');\n return t;\n },\n contentCssAttributes: function (e) {\n var t = \"\",\n n = e.contentAttr || {},\n i = \"k-content k-group k-menu-group k-menu-group-md\";\n for (var a in n.class ? n.class += \" \" + i : n.class = i, n) n.hasOwnProperty(a) && (t += a + '=\"' + n[a] + '\" ');\n return t;\n },\n textClass: function () {\n return b;\n },\n arrowClass: function (e, t) {\n var n = \"k-menu-expand-arrow-icon k-icon\";\n return t.horizontal ? n += \" k-i-arrow-s\" : n += \" k-i-arrow-e\", n;\n },\n groupAttributes: function (e) {\n return !0 !== e.expanded ? \" style='display:none'\" : \"\";\n },\n groupCssClass: function () {\n return \"k-group k-menu-group k-menu-group-md\";\n },\n content: function (e) {\n return e.content ? e.content : \" \";\n }\n };\n function ue(t, n) {\n try {\n return e.contains(t, n);\n } catch (e) {\n return !1;\n }\n }\n function ce(t) {\n (t = e(t)).attr(n.attr(\"omit-wrap\")) || (t.addClass(\"k-item k-menu-item\").children(\"img\").addClass(S), t.children(\"a\").addClass(b).children(\"img\").addClass(S), t.filter(\":not([disabled])\"), t.filter(\".k-separator\").removeClass(\"k-menu-item\").addClass(\"k-menu-separator\").empty().append(\" \"), t.filter(\"li[disabled]\").addClass($).prop(\"disabled\", !1).attr(\"aria-disabled\", !0), t.filter(\"[role]\").length || t.attr(se, \"menuitem\"), t.children(k).length || t.contents().filter(function () {\n return !(this.nodeName.match(m) || 3 === this.nodeType && !n.trim(this.nodeValue));\n }).wrapAll(\"\").filter(function (e, t) {\n return 3 === t.nodeType;\n }).wrap(\"\"), pe(t), he(t));\n }\n function pe(t) {\n (t = e(t)).find(\"> .k-link > .k-menu-expand-arrow > [class*=k-i-arrow]:not(.k-sprite)\").parent().remove(), t.filter(\":has(.k-menu-group)\").children(\".k-link:not(:has([class*=k-i-arrow]:not(.k-sprite)))\").each(function () {\n var t = e(this),\n i = function (e) {\n var t,\n i = e.parent().parent(),\n a = n.support.isRtl(i);\n t = i.hasClass(_ + \"-horizontal\") ? \"k-i-arrow-s\" : a ? \"k-i-arrow-w\" : \"k-i-arrow-e\";\n return t;\n }(t);\n t.append(\"\");\n });\n }\n function he(t) {\n (t = e(t)).filter(\".k-first:not(:first-child)\").removeClass(T), t.filter(\".k-last:not(:last-child)\").removeClass(y), t.filter(\":first-child\").addClass(T), t.filter(\":last-child\").addClass(y);\n }\n function fe(e) {\n if (e && e.length) for (var t in e) {\n var n = e.eq(t);\n n.find(\"ul\").length ? n.attr(\"aria-haspopup\", !0) : n.removeAttr(\"aria-haspopup\");\n }\n }\n function me(e) {\n if (!e.hasClass(_)) return e.parentsUntil(\".\" + _, \"li\");\n }\n function ge(t, i) {\n var a = function (e) {\n var t = e.select,\n i = n.isFunction;\n if (t && i(t)) return t;\n return null;\n }(i);\n a && function (t, n) {\n e(t).children(\".k-link\").data({\n selectHandler: n\n });\n }(t, a), i.items && e(t).children(\"ul\").children(\"li\").each(function (e) {\n ge(this, i.items[e]);\n });\n }\n function ve(e) {\n return e ? \"li[data-groupparent='\" + e + \"']\" : \"li[data-groupparent]\";\n }\n function _e(e) {\n var t = e ? \"[data-group='\" + e + \"']\" : \"[data-group]\";\n return \"ul\" + t + \",div\" + t;\n }\n function be(t, n) {\n var i = t.find(ve()),\n a = [];\n return i.each(function (i, r) {\n for (var o = (r = e(r)).data(W), s = t; o;) (s = n.find(_e(o) + \":visible\")).length && a.push(s), o = (r = s.find(ve())).data(W);\n }), a;\n }\n function ke(t, n) {\n var i = t.data(U);\n return i ? n.find(ve(i)) : e([]);\n }\n function we(t, n) {\n var i = t.data(W);\n return i ? n.children(X).children(_e(i)) : e([]);\n }\n function ye(e, t) {\n for (var n = 0, i = e.parentNode; i && !isNaN(i[t]);) n += i[t], i = i.parentNode;\n return n;\n }\n function xe(e) {\n return H && e.originalEvent && e.originalEvent.pointerType in ae;\n }\n function Ce(e) {\n e.contents().filter(function () {\n return \"LI\" != this.nodeName;\n }).remove();\n }\n var Te = n.ui.DataBoundWidget.extend({\n init: function (e, t) {\n var i = this;\n f.fn.init.call(i, e, t), e = i.wrapper = i.element, t = i.options, i._accessors(), i._templates(), i._dataSource(), i._updateClasses(), i._animations(t), i.nextItemZIndex = 100, i._tabindex(), i._initOverflow(t), i._attachMenuEventsHandlers(), t.openOnClick && (i.clicked = !1), e.attr(se, \"menubar\"), e[0].id && (i._ariaId = n.format(\"{0}_mn_active\", e[0].id)), n.notify(i);\n },\n events: [v, x, E, A, I, re],\n options: {\n name: \"Menu\",\n animation: {\n open: {\n duration: 200\n },\n close: {\n duration: 100\n }\n },\n orientation: \"horizontal\",\n direction: \"default\",\n openOnClick: !1,\n closeOnClick: !0,\n hoverDelay: 100,\n scrollable: !1,\n popupCollision: t\n },\n _initData: function () {\n var e = this;\n e.dataSource && (e.angular(\"cleanup\", function () {\n return {\n elements: e.element.children()\n };\n }), e.element.empty(), e.append(e.dataSource.view(), e.element), e.angular(\"compile\", function () {\n return {\n elements: e.element.children()\n };\n }));\n },\n _attachMenuEventsHandlers: function () {\n var t = this,\n n = t.element,\n i = t.options,\n a = t._overflowWrapper();\n t._checkActiveProxy = t._checkActiveElement.bind(t), (a || n).on(F, ee, t._focusHandler.bind(t)).on(d + g, \".k-item.k-disabled\", !1).on(d + g, ee, t._click.bind(t)).on(F + \" \" + l + g, \".k-content\", t._preventClose.bind(t)).on(M + g, te, t._mouseenter.bind(t)).on(B + g, te, t._mouseleave.bind(t)).on(l + g, te, t._mousedown.bind(t)).on(O + g + \" \" + M + g + \" \" + B + g + \" \" + l + g + \" \" + d + g, \".k-item:not(.k-disabled) > .k-link\", t._toggleHover.bind(t)), n.on(\"keydown\" + g, t._keydown.bind(t)).on(\"focus\" + g, t._focus.bind(t)).on(\"focus\" + g, \".k-content\", t._focus.bind(t)).on(\"blur\" + g, t._removeHoverItem.bind(t)).on(\"blur\" + g, \"[tabindex]\", t._checkActiveProxy), a && a.on(B + g, J, t._mouseleavePopup.bind(t)).on(M + g, J, t._mouseenterPopup.bind(t)), i.openOnClick && (t._documentClickHandler = t._documentClick.bind(t), e(document).on(\"click\", t._documentClickHandler));\n },\n _detachMenuEventsHandlers: function () {\n var t = this,\n n = t._overflowWrapper();\n n && n.off(g), t.element.off(g), t._documentClickHandler && e(document).off(\"click\", t._documentClickHandler);\n },\n _initOverflow: function (t) {\n var n,\n i,\n a = this,\n r = \"horizontal\" == t.orientation;\n if (t.scrollable) {\n a._openedPopups = {}, a._scrollWrapper = a.element.wrap(\"
    \").parent(), r && Ce(a.element), n = e(a.templates.scrollButton({\n direction: r ? \"left\" : \"up\"\n })), i = e(a.templates.scrollButton({\n direction: r ? \"right\" : \"down\"\n })), n.add(i).appendTo(a._scrollWrapper), a._initScrolling(a.element, n, i, r);\n var o = a.element.outerWidth(),\n s = a.element[0].style.width;\n s = \"auto\" === s ? \"\" : s, r && e(window).on(V, function () {\n setTimeout(function () {\n a._setOverflowWrapperWidth(o, s), a._toggleScrollButtons(a.element, n, i, r);\n }, 300);\n }), a._setOverflowWrapperWidth(o, s), a._toggleScrollButtons(a.element, n, i, r);\n }\n },\n _overflowWrapper: function () {\n return this._scrollWrapper || this._popupsWrapper;\n },\n _setOverflowWrapperWidth: function (e, t) {\n var n = this,\n i = n._scrollWrapper.css(\"width\");\n n._scrollWrapper.css({\n width: \"\"\n });\n var a = n._scrollWrapper.outerWidth();\n n._scrollWrapper.css({\n width: i\n });\n var r = n.element.outerWidth(),\n o = n.element[0].offsetWidth - n.element[0].clientWidth;\n if (r != a && a > 0) {\n var s = t ? Math.min(e, a) : a;\n n.element.width(s - o), n._scrollWrapper.width(s);\n }\n },\n _reinitOverflow: function (e) {\n var t = this;\n (e.scrollable && !t.options.scrollable || !e.scrollable && t.options.scrollable || e.scrollable && t.options.scrollable && e.scrollable.distance != t.options.scrollable.distance || e.orientation != t.options.orientation) && (t._detachMenuEventsHandlers(), t._destroyOverflow(), t._initOverflow(e), t._attachMenuEventsHandlers());\n },\n _destroyOverflow: function () {\n var n = this,\n i = n._overflowWrapper();\n i && (i.off(g), i.find(ie).off(g).remove(), i.children(X).each(function (t, n) {\n var a = e(n).children(Q);\n a.off(L);\n var r = ke(a, i);\n r.length && r.append(n);\n }), i.find(ve()).removeAttr(\"data-groupparent\"), i.find(_e()).removeAttr(\"data-group\"), n.element.off(L), e(window).off(V), i.contents().unwrap(), n._scrollWrapper = n._popupsWrapper = n._openedPopups = t);\n },\n _initScrolling: function (t, i, a, o) {\n var s = this,\n l = s.options.scrollable,\n d = s.isNumeric(l.distance) ? l.distance : 50,\n u = d / 2,\n c = \"-=\" + d,\n p = \"+=\" + d,\n h = \"-=\" + 2 * d,\n f = \"+=\" + 2 * d,\n m = !1,\n v = !1,\n _ = function (e) {\n var n = o ? {\n scrollLeft: e\n } : {\n scrollTop: e\n };\n t.finish().animate(n, \"fast\", \"linear\", function () {\n m && _(e);\n }), s._toggleScrollButtons(t, i, a, o);\n },\n b = function (e) {\n m || v || (_(e.data.direction), m = !0);\n },\n k = function (n) {\n var l = o ? {\n scrollLeft: n.data.direction\n } : {\n scrollTop: n.data.direction\n };\n v = function (e) {\n var t = e.originalEvent;\n return r && /touch/i.test(t.type || \"\");\n }(n) || xe(n), t.stop().animate(l, \"fast\", \"linear\", function () {\n v ? (s._toggleScrollButtons(t, i, a, o), m = !0) : e(n.currentTarget).trigger(M);\n }), m = !1, n.stopPropagation(), n.preventDefault();\n };\n i.on(M + g, {\n direction: c\n }, b).on(n.eventMap.down + g, {\n direction: h\n }, k), a.on(M + g, {\n direction: p\n }, b).on(n.eventMap.down + g, {\n direction: f\n }, k), i.add(a).on(B + g, function () {\n t.stop(), m = !1, s._toggleScrollButtons(t, i, a, o);\n }), t.on(L, function (e) {\n if (!e.ctrlKey && !e.shiftKey && !e.altKey) {\n var n = function (e) {\n var t = 0;\n return e.wheelDelta && (t = (t = -e.wheelDelta / 120) > 0 ? Math.ceil(t) : Math.floor(t)), e.detail && (t = Math.round(e.detail / 3)), t;\n }(e.originalEvent),\n r = (n > 0 ? \"+=\" : \"-=\") + Math.abs(n) * u,\n l = o ? {\n scrollLeft: r\n } : {\n scrollTop: r\n };\n s._closeChildPopups(t), t.finish().animate(l, \"fast\", \"linear\", function () {\n s._toggleScrollButtons(t, i, a, o);\n }), e.preventDefault();\n }\n });\n },\n isNumeric: function (e) {\n return !isNaN(parseFloat(e)) && isFinite(e);\n },\n _toggleScrollButtons: function (e, t, i, a) {\n var r = a ? n.scrollLeft(e) : e.scrollTop(),\n o = a ? \"scrollWidth\" : \"scrollHeight\",\n s = a ? \"offsetWidth\" : \"offsetHeight\";\n t.toggle(0 !== r), i.toggle(r < e[0][o] - e[0][s] - 1);\n },\n setOptions: function (e) {\n var t = this.options.animation;\n this._animations(e), e.animation = u(!0, t, e.animation), \"dataSource\" in e && this._dataSource(e), this._updateClasses(), this._reinitOverflow(e), f.fn.setOptions.call(this, e);\n },\n destroy: function () {\n var e = this;\n f.fn.destroy.call(e), e._detachMenuEventsHandlers(), e._destroyOverflow(), n.destroy(e.element);\n },\n enable: function (e, t) {\n return this._toggleDisabled(e, !1 !== t), this;\n },\n disable: function (e) {\n return this._toggleDisabled(e, !1), this;\n },\n attemptGetItem: function (t) {\n t = t || this.element;\n var n = this.element.find(t),\n i = this._overflowWrapper();\n return n.length || t === this.element ? n : i ? i.find(t) : e();\n },\n append: function (e, t) {\n t = this.attemptGetItem(t);\n var n = this._insert(e, t, t.length ? this._childPopupElement(t) : null);\n return c(n.items, function (t) {\n n.group.append(this), pe(this), ge(this, e[t] || e);\n }), pe(t), he(n.group.find(\".k-first, .k-last\").add(n.items)), fe(me(n.group)), this;\n },\n insertBefore: function (e, t) {\n t = this.attemptGetItem(t);\n var n = this._insert(e, t, t.parent());\n return c(n.items, function (n) {\n t.before(this), pe(this), he(this), ge(this, e[n] || e);\n }), he(t), this;\n },\n insertAfter: function (e, t) {\n t = this.attemptGetItem(t);\n var n = this._insert(e, t, t.parent());\n return c(n.items, function (n) {\n t.after(this), pe(this), he(this), ge(this, e[n] || e);\n }), he(t), this;\n },\n _insert: function (t, i, a) {\n var r,\n s,\n l = this;\n i && i.length || (a = l.element);\n var d = e.isPlainObject(t) || t instanceof n.data.ObservableObject,\n c = {\n firstLevel: a.hasClass(_),\n horizontal: a.hasClass(_ + \"-horizontal\"),\n expanded: !0,\n length: a.children().length\n };\n return i && !a.length && (a = e(l.renderGroup({\n group: c,\n options: l.options\n })).css(\"display\", \"none\").appendTo(i)), d || o(t) || t instanceof n.data.ObservableArray ? r = e(e.map(d ? [t] : t, function (t, n) {\n return \"string\" == typeof t ? e(t).get() : e(l.renderItem({\n group: c,\n item: u(t, {\n index: n\n })\n })).get();\n })) : (s = (r = \"string\" == typeof t && \"<\" != t.charAt(0) ? l.element.find(t) : e(t)).find(\"> ul\").addClass(\"k-menu-group k-menu-group-md\").attr(se, \"menu\"), (r = r.filter(\"li\")).add(s.find(\"> li\")).each(function () {\n ce(this);\n })), {\n items: r,\n group: a\n };\n },\n remove: function (e) {\n var t = (e = this.attemptGetItem(e)).parentsUntil(this.element, Z),\n n = e.parent(\"ul:not(.k-menu)\");\n if (e.remove(), n && !n.children(Z).length) {\n var i = me(n),\n a = n.parent(X);\n a.length ? a.remove() : n.remove(), fe(i);\n }\n return t.length && (pe(t = t.eq(0)), he(t)), this;\n },\n _openAfterLoad: function (e, t) {\n var n = this;\n t.loaded() ? (n.open(e), n._loading = !1) : t.one(N, function () {\n e.find(w).removeClass(\"k-i-loading\"), n._loading && (n.open(e), n._loading = !1);\n });\n },\n open: function (i) {\n var a = this,\n o = a.options,\n s = \"horizontal\" == o.orientation,\n l = o.direction,\n d = n.support.isRtl(a.wrapper),\n c = a._overflowWrapper();\n i = (c || a.element).find(i);\n var p = a.dataSource && a.dataSource.getByUid(i.data(n.ns + \"uid\"));\n if (p && p.hasChildren && !p.loaded() && !a._loading) return a._loading = !0, i.find(w).addClass(\"k-i-loading\"), p.load(), void a._openAfterLoad(i, p);\n /^(top|bottom|default)$/.test(l) && (l = d ? s ? (l + \" left\").replace(\"default\", \"bottom\") : \"left\" : s ? (l + \" right\").replace(\"default\", \"bottom\") : \"right\");\n var h = \">.k-popup:visible,>.k-animation-container>.k-popup:visible\",\n f = function () {\n e(this).data(q) && a.close(e(this).closest(\"li.k-item\"), !0);\n };\n return i.siblings().find(h).each(f), c && i.find(h).each(f), a.options.openOnClick && (a.clicked = !0), i.each(function () {\n var i = e(this);\n clearTimeout(i.data(C)), i.data(C, setTimeout(function () {\n var p,\n h,\n f = i.find(\"> .k-menu-group, > .k-animation-container > .k-menu-group\").filter(\":hidden\").first();\n if (!f[0] && c && (h = a._getPopup(i), f = h && h.element), !f.is(\":visible\") && f[0] && !1 === a._triggerEvent({\n item: i[0],\n type: v\n })) {\n if (!f.find(\".k-menu-group\")[0] && f.children(\".k-item\").length > 1) {\n var m = e(window).height();\n f.css({\n maxHeight: m - (n._outerHeight(f) - f.height()) - n.getShadows(f).bottom,\n overflow: \"auto\"\n });\n } else f.css({\n maxHeight: \"\",\n overflow: \"\"\n });\n i.data(D, i.css(D));\n var g = a.nextItemZIndex++;\n i.css(D, g), a.options.scrollable && i.parent().siblings(ie).css({\n zIndex: ++g\n }), p = f.data(q);\n var b = i.parent().hasClass(_),\n k = b && s,\n w = function (e, t, i) {\n e = e.split(\" \")[!t + 0] || e;\n var a = {\n origin: [\"bottom\", i ? \"right\" : \"left\"],\n position: [\"top\", i ? \"right\" : \"left\"]\n };\n return /left|right/.test(e) ? (a.origin = [\"top\", e], a.position[1] = n.directions[e].reverse) : (a.origin[0] = e, a.position[0] = n.directions[e].reverse), a.origin = a.origin.join(\" \"), a.position = a.position.join(\" \"), a;\n }(l, b, d),\n y = o.animation.open.effects,\n C = y !== t ? y : \"slideIn:\" + function (e, t) {\n return (e = e.split(\" \")[!t + 0] || e).replace(\"top\", \"up\").replace(\"bottom\", \"down\");\n }(l, b);\n p ? ((p = f.data(q)).options.origin = w.origin, p.options.position = w.position, p.options.animation.open.effects = C) : (p = f.kendoPopup({\n activate: function () {\n a._triggerEvent({\n item: this.wrapper.parent(),\n type: E\n });\n },\n deactivate: function (e) {\n a._closing = !1, e.sender.element.removeData(\"targetTransform\").css({\n opacity: \"\"\n }), a._triggerEvent({\n item: this.wrapper.parent(),\n type: A\n });\n },\n origin: w.origin,\n position: w.position,\n collision: o.popupCollision !== t ? o.popupCollision : k ? \"fit\" : \"fit flip\",\n anchor: i,\n appendTo: c || i,\n animation: {\n open: u(!0, {\n effects: C\n }, o.animation.open),\n close: o.animation.close\n },\n open: a._popupOpen.bind(a),\n close: function (e) {\n a._closing = e.sender.element;\n var t = e.sender.wrapper.parent();\n if (c) {\n var i = e.sender.element.data(U);\n i && (t = (c || a.element).find(ve(i))), e.sender.wrapper.children(ie).hide();\n }\n a._triggerEvent({\n item: t[0],\n type: x\n }) ? e.preventDefault() : (t.css(D, t.data(D)), t.removeData(D), a.options.scrollable && t.parent().siblings(ie).css({\n zIndex: \"\"\n }), (r || H || n.support.mouseAndTouchPresent) && (t.removeClass(G), a._removeHoverItem()));\n }\n }).data(q), f.closest(X).removeAttr(se)), f.removeAttr(\"aria-hidden\"), i.attr(oe, !0), a._configurePopupOverflow(p, i), p._hovered = !0, p.open(), a._initPopupScrolling(p);\n }\n }, a.options.hoverDelay));\n }), a;\n },\n _configurePopupOverflow: function (e, t) {\n if (this.options.scrollable && (this._wrapPopupElement(e), !t.attr(\"data-groupparent\"))) {\n var n = new Date().getTime();\n t.attr(\"data-groupparent\", n), e.element.attr(\"data-group\", n);\n }\n },\n _wrapPopupElement: function (e) {\n e.element.parent().is(X) || (e.wrapper = n.wrap(e.element, e.options.autosize).css({\n overflow: \"hidden\",\n display: \"block\",\n position: \"absolute\"\n }));\n },\n _initPopupScrolling: function (e, t, n) {\n this.options.scrollable && e.element[0].scrollHeight > e.element[0].offsetHeight && this._initPopupScrollButtons(e, t, n);\n },\n _initPopupScrollButtons: function (t, n, i) {\n var a = this,\n r = t.wrapper.children(ie),\n o = a.options.animation,\n s = (o && o.open && o.open.duration || 0) + 30;\n setTimeout(function () {\n if (!r.length) {\n var o = e(a.templates.scrollButton({\n direction: n ? \"left\" : \"up\"\n })),\n s = e(a.templates.scrollButton({\n direction: n ? \"right\" : \"down\"\n }));\n r = o.add(s).appendTo(t.wrapper), a._initScrolling(t.element, o, s, n), i || r.on(M + g, function () {\n var n = a._overflowWrapper();\n e(be(t.element, n)).each(function (e, t) {\n var i = n.find(ve(t.data(U)));\n a.close(i);\n });\n }).on(B + g, function () {\n setTimeout(function () {\n e.isEmptyObject(a._openedPopups) && a._closeParentPopups(t.element);\n }, 30);\n });\n }\n a._toggleScrollButtons(t.element, r.first(), r.last(), n);\n }, s);\n },\n _popupOpen: function (e) {\n this._keyTriggered || e.sender.element.children(\".k-focus\").removeClass(K), this.options.scrollable && this._setPopupHeight(e.sender);\n },\n _setPopupHeight: function (t, i) {\n var a = t.element,\n r = a.add(a.parent(X));\n r.height(a.hasClass(_) && this._initialHeight || \"\");\n var o = t._location(i),\n s = e(window).height(),\n l = o.height,\n d = i ? 0 : Math.max(o.top, 0),\n u = i ? 0 : ye(this._overflowWrapper()[0], \"scrollTop\"),\n c = window.innerHeight - s,\n p = s - n.getShadows(a).bottom + c;\n if (!(p + u > l + d)) {\n var h = Math.min(p, p - d + u);\n r.css({\n overflow: \"hidden\",\n height: h + \"px\"\n });\n }\n },\n close: function (t, n) {\n var i = this,\n a = i._overflowWrapper(),\n r = a || i.element;\n (t = r.find(t)).length || (t = r.find(\">.k-item\"));\n return t.each(function () {\n var r = e(this);\n r.attr(oe, !1), !n && i._isRootItem(r) && (i.clicked = !1), clearTimeout(r.data(C)), r.data(C, setTimeout(function () {\n var n,\n o,\n s,\n l = i._getPopup(r);\n if (l && (s = r.data(W), !a || !s || !i._openedPopups[s.toString()] || i._forceClose)) {\n if (!i._forceClose && (n = l.element, o = !1, e.isEmptyObject(i._openedPopups) || e(be(n, a)).each(function (e, t) {\n return !(o = !!i._openedPopups[t.data(U).toString()]);\n }), o)) return;\n l.close(), l.element.attr(\"aria-hidden\", !0), a && i._forceClose && t.last().is(r[0]) && delete i._forceClose;\n }\n }, i.options.hoverDelay));\n }), i;\n },\n _getPopup: function (e) {\n var t = e.find(\".k-menu-group:not(.k-list-container):not(.k-calendar-container):visible\").first().data(q),\n n = this._overflowWrapper();\n if (!t && n) {\n var i = e.data(W);\n if (i) t = n.find(_e(i)).data(q);\n }\n return t;\n },\n _toggleDisabled: function (t, n) {\n this.element.find(t).each(function () {\n e(this).toggleClass($, !n).attr(\"aria-disabled\", !n);\n });\n },\n _toggleHover: function (t) {\n var i = e(n.eventTarget(t) || t.target).closest(Z),\n a = t.type == M || -1 !== l.indexOf(t.type);\n i.siblings().removeClass(G), i.parents(\"li.k-disabled\").length || i.toggleClass(G, a || \"mousedown\" == t.type || \"pointerover\" == t.type || t.type == O), this._removeHoverItem();\n },\n _preventClose: function () {\n this.options.closeOnClick || (this._closurePrevented = !0);\n },\n _checkActiveElement: function (t) {\n var i = this,\n a = e(t ? t.currentTarget : this._hoverItem()),\n r = i._findRootParent(a)[0];\n this._closurePrevented || setTimeout(function () {\n document.hasFocus() && (ue(r, n._activeElement()) || !t || ue(r, t.currentTarget)) || i.close(r);\n }, 0), this._closurePrevented = !1;\n },\n _removeHoverItem: function () {\n var e = this._hoverItem();\n e && e.hasClass(K) && (e.removeClass(K), this._oldHoverItem = null);\n },\n _updateClasses: function () {\n var e,\n t = this.element;\n t.removeClass(\"k-menu-horizontal k-menu-vertical\"), t.addClass(\"k-widget k-reset k-menu-init \" + _).addClass(_ + \"-\" + this.options.orientation), \"vertical\" === this.options.orientation ? t.attr(\"aria-orientation\", \"vertical\") : t.attr(\"aria-orientation\", \"horizontal\"), t.find(\"li > ul\").filter(function () {\n return !n.support.matchesSelector.call(this, \".k-menu-init div ul\");\n }).addClass(\"k-group k-menu-group k-menu-group-md\").attr(se, \"menu\").hide().attr(\"aria-hidden\", t.is(\":visible\")).parent(\"li\").attr(\"aria-haspopup\", \"true\").end().find(\"li > div\").addClass(\"k-content\").attr(\"tabindex\", \"-1\"), t.find(\"li[aria-haspopup]\").attr(oe, !1), e = t.find(\"> li,.k-menu-group > li\"), t.removeClass(\"k-menu-init\"), e.each(function () {\n ce(this);\n });\n },\n _mouseenter: function (t) {\n var n = this,\n i = e(t.currentTarget),\n a = n._itemHasChildren(i),\n o = i.data(W) || i.parent().data(U),\n s = xe(t),\n l = !1;\n o && (n._openedPopups[o.toString()] = !0), n._closing && (l = !!n._closing.find(i).length), l || t.delegateTarget != i.parents(Y)[0] && t.delegateTarget != i.parents(\".k-menu-scroll-wrapper,.k-popups-wrapper\")[0] || (n._keyTriggered = !1, n.options.openOnClick.rootMenuItems && n._isRootItem(i.closest(Z)) || n.options.openOnClick.subMenuItems && !n._isRootItem(i.closest(Z)) || (!(!1 === n.options.openOnClick || !1 === n.options.openOnClick.rootMenuItems && n._isRootItem(i.closest(Z)) || !1 === n.options.openOnClick.subMenuItems && !n._isRootItem(i.closest(Z)) || n.clicked) || r || s && n._isRootItem(i.closest(Z)) || !ue(t.currentTarget, t.relatedTarget) && a && n.open(i), (!0 === n.options.openOnClick && n.clicked || r) && i.siblings().each(function (e, t) {\n n.close(t, !0);\n })));\n },\n _mousedown: function (t) {\n var n = this,\n i = e(t.currentTarget);\n (n.options.openOnClick.subMenuItems && !n._isRootItem(i) || r) && i.siblings().each(function (e, t) {\n n.close(t, !0);\n });\n },\n _mouseleave: function (t) {\n var i = this,\n a = e(t.currentTarget),\n o = a.data(W),\n s = a.children(X).length || a.children(Q).length || o,\n l = e(window);\n if (o && delete i._openedPopups[o.toString()], !a.parentsUntil(X, \".k-list-container,.k-calendar-container\")[0]) return !1 !== i.options.openOnClick && (i.options.openOnClick.rootMenuItems || !i._isRootItem(a)) && (i.options.openOnClick.subMenuItems || i._isRootItem(a)) || r || xe(t) || ue(t.currentTarget, t.relatedTarget || t.target) || !s || ue(t.currentTarget, n._activeElement()) ? void ((n.support.browser.msie && !t.toElement && !t.relatedTarget && !xe(t) || t.clientX < 0 || t.clientY < 0 || t.clientY > l.height() || t.clientX > l.width()) && i.close(a)) : (i.close(a, !0), void (i._loading = !1));\n t.stopImmediatePropagation();\n },\n _mouseenterPopup: function (t) {\n var n = e(t.currentTarget);\n if (!n.parent().is(X)) {\n var i = (n = n.children(\"ul\")).data(U);\n i && (this._openedPopups[i.toString()] = !0);\n }\n },\n _mouseleavePopup: function (t) {\n var n = e(t.currentTarget);\n !xe(t) && n.is(X) && this._closePopups(n.children(\"ul\"));\n },\n _closePopups: function (t) {\n var n = this,\n i = n._overflowWrapper(),\n a = t.data(U);\n if (a) {\n delete n._openedPopups[a.toString()];\n var r = i.find(ve(a));\n setTimeout(function () {\n if (n.options.openOnClick) n._closeChildPopups(t);else if (e.isEmptyObject(n._openedPopups)) {\n var i = n._innerPopup(t);\n n._closeParentPopups(i);\n } else n.close(r, !0);\n }, 0);\n }\n },\n _closeChildPopups: function (t) {\n var n = this,\n i = n._overflowWrapper();\n e(be(t, i)).each(function () {\n var e = i.find(ve(this.data(U)));\n n.close(e, !0);\n });\n },\n _innerPopup: function (e) {\n var t = be(e, this._overflowWrapper());\n return t[t.length - 1] || e;\n },\n _closeParentPopups: function (e) {\n var t = this,\n n = t._overflowWrapper(),\n i = e.data(U),\n a = n.find(ve(i));\n for (i = a.parent().data(U), t.close(a, !0); i && !t._openedPopups[i] && !a.parent().is(Y);) a = n.find(ve(i)), t.close(a, !0), i = a.parent().data(U);\n },\n _click: function (t) {\n var i,\n a,\n r,\n o,\n s = this,\n l = s.options,\n d = e(n.eventTarget(t)),\n u = d[0],\n c = d[0] ? d[0].nodeName.toUpperCase() : \"\",\n p = \"INPUT\" == c || \"SELECT\" == c || \"BUTTON\" == c || \"LABEL\" == c,\n h = d.closest(k),\n f = d.closest(Z),\n m = f[0],\n g = h.attr(\"href\"),\n _ = d.attr(\"href\"),\n b = e(\"\").attr(\"href\"),\n w = !!g && g !== b,\n y = w && !!g.match(/^#/),\n C = !!_ && _ !== b,\n T = s._overflowWrapper();\n if (!u || u.parentNode && m) {\n for (e(d).hasClass(\"k-menu-expand-arrow-icon\") && (this._lastClickedElement = m); u && u.parentNode != m;) u = u.parentNode;\n if (!e(u).is(\"div:not(.k-animation-container,.k-list-container)\")) if (f.hasClass($)) t.preventDefault();else {\n if (t.handled || !s._triggerSelect(d, m) || p || t.preventDefault(), t.handled = !0, a = f.children(J), T) {\n var S = f.data(W);\n S && (a = T.find(_e(S)));\n }\n if (r = a.is(\":visible\"), o = l.openOnClick && r && s._isRootItem(f), l.closeOnClick && (!w || y) && (!a.length || o)) {\n f.removeClass(G).css(\"height\"), s._oldHoverItem = s._findRootParent(f);\n var I = s._parentsUntil(h, s.element, Z);\n return s._forceClose = !!T, s.close(I), s.clicked = !1, void (-1 != \"MSPointerUp\".indexOf(t.type) && t.preventDefault());\n }\n w && t.enterKey && h[0].click(), (s._isRootItem(f) && !1 !== l.openOnClick || l.openOnClick.subMenuItems || n.support.touch || xe(t) && s._isRootItem(f.closest(Z))) && (w || p || C || t.preventDefault(), s.clicked = !0, i = a.is(\":visible\") ? x : v, (l.closeOnClick || i != x) && s[i](f));\n }\n }\n },\n _parentsUntil: function (t, n, i) {\n var a = this._overflowWrapper();\n if (a) {\n var r = function (t, n) {\n var i = [],\n a = function (e) {\n for (; e.parentNode && !n.is(e.parentNode);) i.push(e.parentNode), e = e.parentNode;\n },\n r = t[0] || t;\n a(r);\n for (var o = i[i.length - 1]; e(o).is(X) && (r = ke(e(o).children(\"ul\"), n)[0]);) i.push(r), a(r), o = i[i.length - 1];\n return i;\n }(t, a),\n o = [];\n return e(r).each(function () {\n var t = e(this);\n if (t.is(n)) return !1;\n t.is(i) && o.push(this);\n }), e(o);\n }\n return t.parentsUntil(n, i);\n },\n _triggerSelect: function (e, t) {\n var n,\n i = (e = e.is(\".k-link\") ? e : e.closest(\".k-link\")).data(\"selectHandler\");\n i && (n = this._getEventData(e), i.call(this, n));\n var a = n && n.isDefaultPrevented(),\n r = this._triggerEvent({\n item: t,\n type: I\n });\n return a || r;\n },\n _getEventData: function (e) {\n return {\n sender: this,\n target: e,\n _defaultPrevented: !1,\n preventDefault: function () {\n this._defaultPrevented = !0;\n },\n isDefaultPrevented: function () {\n return this._defaultPrevented;\n }\n };\n },\n _documentClick: function (n) {\n var i = this,\n a = e(n.target).hasClass(\"k-menu-expand-arrow-icon\") ? i._lastClickedElement : n.target;\n ue((i._overflowWrapper() || i.element)[0], a) ? i._lastClickedElement = t : i.clicked = !1;\n },\n _focus: function (t) {\n var n = this,\n i = t.target,\n r = n._hoverItem(),\n o = a();\n if (i != n.wrapper[0] && !e(i).is(\":kendoFocusable\")) return t.stopPropagation(), e(i).closest(\".k-content\").closest(\".k-menu-group\").closest(\".k-item\").addClass(K), void n.wrapper.trigger(\"focus\");\n o === t.currentTarget && (r.length ? n._moveHover([], r) : n._oldHoverItem || n._moveHover([], n.wrapper.children().first()));\n },\n _keydown: function (e) {\n var t,\n i,\n a,\n r = this,\n o = e.keyCode,\n s = r._oldHoverItem,\n l = n.support.isRtl(r.wrapper);\n if (e.target == e.currentTarget || o == h.ESC) {\n if (s || (s = r._oldHoverItem = r._hoverItem()), i = r._itemBelongsToVertival(s), a = r._itemHasChildren(s), r._keyTriggered = !0, o == h.RIGHT) t = r[l ? \"_itemLeft\" : \"_itemRight\"](s, i, a);else if (o == h.LEFT) t = r[l ? \"_itemRight\" : \"_itemLeft\"](s, i, a);else if (o == h.DOWN) t = r._itemDown(s, i, a);else if (o == h.UP) t = r._itemUp(s, i, a);else if (o == h.HOME) r._moveHover(s, s.parent().children().first()), e.preventDefault();else if (o == h.END) r._moveHover(s, s.parent().children().last()), e.preventDefault();else if (o == h.ESC) t = r._itemEsc(s, i);else if (o == h.ENTER || o == h.SPACEBAR) (t = s.children(\".k-link\")).length > 0 && (r._click({\n target: t[0],\n preventDefault: function () {},\n enterKey: !0\n }), a && !s.hasClass($) ? (r.open(s), r._moveHover(s, r._childPopupElement(s).children().first())) : s.is(\"li\") && \"menuitemcheckbox\" === s.attr(\"role\") ? s.find(\".k-checkbox\").attr(\"checked\", !0) : r._moveHoverToRoot(s, r._findRootParent(s)));else if (o == h.TAB) return t = r._findRootParent(s), r._moveHover(s, t), void r._checkActiveElement();\n t && t[0] && (e.preventDefault(), e.stopPropagation());\n }\n },\n _hoverItem: function () {\n return this.wrapper.find(\".k-item.k-hover,.k-item.k-focus\").filter(\":visible\");\n },\n _itemBelongsToVertival: function (e) {\n var t = this.wrapper.hasClass(\"k-menu-vertical\");\n return e.length && e.parent().hasClass(\"k-menu-group\") || t;\n },\n _itemHasChildren: function (e) {\n return !!(e && e.length && e[0].nodeType) && (e.children(\".k-menu-group, div.k-animation-container\").length > 0 || !!e.data(W) && !!this._overflowWrapper().children(_e(e.data(W))));\n },\n _moveHover: function (t, n) {\n var i = this,\n a = i._ariaId;\n t.length && n.length && t.removeClass(K), n.length && (n[0].id && (a = n[0].id), n.addClass(K), i._oldHoverItem = n, a && (i.element.removeAttr(\"aria-activedescendant\"), e(\"#\" + a).removeAttr(\"id\"), n.attr(\"id\", a), i.element.attr(\"aria-activedescendant\", a)), i._scrollToItem(n));\n },\n _moveHoverToRoot: function (e, t) {\n this._moveHover(e, t);\n },\n _findRootParent: function (e) {\n return this._isRootItem(e) ? e : this._parentsUntil(e, Y, \"li.k-item\").last();\n },\n _isRootItem: function (e) {\n return e.parent().hasClass(_);\n },\n _itemRight: function (e, t, n) {\n var i,\n a,\n r,\n o = this;\n if (t) {\n if (n && !e.hasClass($)) o.open(e), i = o._childPopupElement(e).children().first();else if (\"horizontal\" == o.options.orientation) {\n if (a = o._findRootParent(e), r = o._overflowWrapper()) {\n var s = we(a, r);\n o._closeChildPopups(s);\n }\n o.close(a), i = a.nextAll(ee + ne).eq(0);\n }\n } else (i = e.nextAll(ee + ne).eq(0)).length || (i = e.prevAll(ee + ne).last()), o.close(e);\n return i && !i.length ? i = o.wrapper.children(\".k-item\").first() : i || (i = []), o._moveHover(e, i), i;\n },\n _itemLeft: function (e, t) {\n var n,\n i,\n a = this;\n return t ? (n = e.parent().closest(\".k-item\"), i = a._overflowWrapper(), !n.length && i && (n = ke(e.parent(), i)), a.close(n), a._isRootItem(n) && \"horizontal\" == a.options.orientation && (n = n.prevAll(ee + ne).eq(0))) : ((n = e.prevAll(ee + ne).eq(0)).length || (n = e.nextAll(ee + ne).last()), a.close(e)), n.length || (n = a.wrapper.children(\".k-item\").last()), a._moveHover(e, n), n;\n },\n _itemDown: function (e, t, n) {\n var i,\n a = this;\n if (t) i = e.nextAll(ee + ne).eq(0);else {\n if (!n || e.hasClass($)) return;\n a.open(e), i = a._childPopupElement(e).children().first();\n }\n return !i.length && e.length ? i = e.parent().children().first() : e.length || (i = a.wrapper.children(\".k-item\").first()), a._moveHover(e, i), i;\n },\n _itemUp: function (e, t) {\n var n;\n if (t) return !(n = e.prevAll(ee + ne).eq(0)).length && e.length ? n = e.parent().children().last() : e.length || (n = this.wrapper.children(\".k-item\").last()), this._moveHover(e, n), n;\n },\n _scrollToItem: function (e) {\n var t = this;\n if (t.options.scrollable && e && e.length) {\n var i,\n a = e.parent(),\n r = !!a.hasClass(_) && \"horizontal\" == t.options.orientation,\n o = r ? \"scrollLeft\" : \"scrollTop\",\n s = r ? n._outerWidth : n._outerHeight,\n l = a[o](),\n d = s(e),\n u = e[0][r ? \"offsetLeft\" : \"offsetTop\"],\n c = s(a),\n p = a.siblings(ie),\n h = p.length ? s(p.first()) : 0;\n if (l + c < u + d + h ? i = u + d - c + h : l > u - h && (i = u - h), !isNaN(i)) {\n var f = {};\n f[o] = i, a.finish().animate(f, \"fast\", \"linear\", function () {\n t._toggleScrollButtons(a, p.first(), p.last(), r);\n });\n }\n }\n },\n _itemEsc: function (e, t) {\n var n,\n i,\n a = this;\n return t ? (0 === (n = e.parent().closest(\".k-item\")).length && (i = e.closest(\".k-group\").data(\"group\"), n = a.wrapper.find(\".k-item[data-groupparent='\" + i + \"']\")), a.close(n), a._moveHover(e, n), n) : e;\n },\n _childPopupElement: function (e) {\n var t = e.find(\".k-menu-group\"),\n n = this._overflowWrapper();\n return !t.length && n && (t = we(e, n)), t;\n },\n _triggerEvent: function (e) {\n return this.trigger(e.type, {\n type: e.type,\n item: e.item\n });\n },\n _focusHandler: function (t) {\n var i = this,\n a = e(n.eventTarget(t)).closest(Z);\n a.hasClass($) || setTimeout(function () {\n i._moveHover([], a), a.children(\".k-content\")[0] && a.parent().closest(\".k-item\").removeClass(K);\n }, 200);\n },\n _animations: function (e) {\n e && \"animation\" in e && !e.animation && (e.animation = {\n open: {\n effects: {}\n },\n close: {\n hide: !0,\n effects: {}\n }\n });\n },\n _dataSource: function (e) {\n var t = this,\n n = e ? e.dataSource : t.options.dataSource;\n n && (n = o(n) ? {\n data: n\n } : n, t._unbindDataSource(), n.fields || (n.fields = [{\n field: \"uid\"\n }, {\n field: \"text\"\n }, {\n field: \"url\"\n }, {\n field: \"cssClass\"\n }, {\n field: \"spriteCssClass\"\n }, {\n field: \"imageUrl\"\n }, {\n field: \"imageAttr\"\n }, {\n field: \"attr\"\n }, {\n field: \"contentAttr\"\n }, {\n field: \"content\"\n }, {\n field: \"encoded\"\n }, {\n field: \"items\"\n }, {\n field: \"select\"\n }]), t.dataSource = s.create(n), t._bindDataSource(), t.dataSource.fetch());\n },\n _bindDataSource: function () {\n this._refreshHandler = this.refresh.bind(this), this._errorHandler = this._error.bind(this), this.dataSource.bind(N, this._refreshHandler), this.dataSource.bind(R, this._errorHandler);\n },\n _unbindDataSource: function () {\n var e = this.dataSource;\n e && (e.unbind(N, this._refreshHandler), e.unbind(R, this._errorHandler));\n },\n _error: function () {},\n findByUid: function (e) {\n return (this._overflowWrapper() || this.element).find(\"[\" + n.attr(\"uid\") + \"=\" + e + \"]\");\n },\n refresh: function (e) {\n var t = this,\n n = e.node,\n i = e.action,\n a = n ? t.findByUid(n.uid) : t.element,\n r = e.items,\n o = e.index,\n s = t._updateItem.bind(t),\n l = t._removeItem.bind(t);\n \"add\" == i ? t._appendItems(r, o, a) : \"remove\" == i ? r.forEach(l) : \"itemchange\" == i ? r.forEach(s) : \"itemloaded\" === i ? t.append(e.items, a) : this._initData(), this.trigger(re, {\n item: a,\n dataItem: n\n });\n },\n _appendItems: function (e, t, n) {\n var i = n.find(ee).eq(t);\n i.length ? this.insertBefore(e, i) : this.append(e, n);\n },\n _removeItem: function (e) {\n var t = this.findByUid(e.uid);\n this.remove(t);\n },\n _updateItem: function (e) {\n var t = this,\n n = t.findByUid(e.uid),\n i = n.next(),\n a = e.parentNode();\n t.remove(n), i.length ? t.insertBefore(e, i) : t.append(e, a && t.findByUid(a.uid));\n },\n _accessors: function () {\n var e,\n t,\n i,\n a = this.options,\n r = this.element;\n for (e in le) t = a[le[e]], i = r.attr(n.attr(e + \"-field\")), !t && i && (t = i), t || (t = e), o(t) || (t = [t]), a[le[e]] = t;\n },\n _fieldAccessor: function (t) {\n var i = this.options[le[t]] || [],\n a = i.length,\n r = \"(function(item) {\";\n return 0 === a ? r += \"return item['\" + t + \"'];\" : (r += \"var levels = [\" + e.map(i, function (e) {\n return \"function(d){ return \" + n.expr(e) + \"}\";\n }).join(\",\") + \"];\", r += \"if(item.level){return levels[Math.min(item.level(), \" + a + \"-1)](item);}else\", r += \"{return levels[\" + a + \"-1](item)}\"), r += \"})\";\n },\n _templates: function () {\n var e = this,\n t = e.options,\n i = e._fieldAccessor.bind(e);\n t.template && \"string\" == typeof t.template ? t.template = p(t.template) : t.template || (t.template = p(\"# var text = \" + i(\"text\") + \"(data.item); ## if (typeof data.item.encoded != 'undefined' && data.item.encoded === false) {##= text ## } else { ##: text ## } #\")), e.templates = {\n content: p(\"#var contentHtml = \" + i(\"content\") + \"(item);#
    #= contentHtml || '' #
    \"),\n group: p(\"\"),\n itemWrapper: p(\"# var url = \" + i(\"url\") + \"(item); ## var imageUrl = \" + i(\"imageUrl\") + \"(item); ## var imgAttributes = \" + i(\"imageAttr\") + \"(item);## var tag = url ? 'a' : 'span' #<#= tag # class='#= textClass(item) #' #if(url){#href='#= url #'#}#># if (imageUrl) { ## } ##= sprite(item) ##= data.menu.options.template(data) ##= arrow(data) #\"),\n item: p(\"#var contentHtml = \" + i(\"content\") + \"(item);#\"),\n scrollButton: p(\"\"),\n arrow: p(\"\"),\n sprite: p(\"# var spriteCssClass = \" + i(\"spriteCssClass\") + \"(data); if(spriteCssClass) {##}#\"),\n empty: p(\"\")\n };\n },\n renderItem: function (e) {\n var t = this;\n e = u({\n menu: t,\n group: {}\n }, e);\n var n = t.templates.empty,\n i = e.item;\n return t.templates.item(u(e, {\n sprite: t.templates.sprite,\n itemWrapper: t.templates.itemWrapper,\n renderContent: t.renderContent,\n arrow: i.items || i.content || i[t.options.dataContentField[0]] ? t.templates.arrow : n,\n subGroup: t.renderGroup\n }, de));\n },\n renderGroup: function (e) {\n return (this.templates || e.menu.templates).group(u({\n renderItems: function (e) {\n for (var t = \"\", n = 0, i = e.items, a = i ? i.length : 0, r = u({\n length: a\n }, e.group); n < a; n++) t += e.menu.renderItem(u(e, {\n group: r,\n item: u({\n index: n\n }, i[n])\n }));\n return t;\n }\n }, e, de));\n },\n renderContent: function (e) {\n return e.menu.templates.content(u(e, de));\n }\n }),\n Se = Te.extend({\n init: function (t, i) {\n var a = this;\n Te.fn.init.call(a, t, i), a.element.attr(se, \"menu\"), a._marker = n.guid().substring(0, 8), a.target = e(a.options.target), a._popup(), a._wire();\n },\n _initOverflow: function (t) {\n var n = this;\n t.scrollable && !n._overflowWrapper() && (n._openedPopups = {}, n._popupsWrapper = (n.element.parent().is(X) ? n.element.parent() : n.element).wrap(\"
    \").parent(), \"horizontal\" == n.options.orientation && Ce(n.element), t.appendTo && (t.appendTo = e(t.appendTo), t.appendTo.append(n._popupsWrapper)), n._initialHeight = n.element[0].style.height, n._initialWidth = n.element[0].style.width);\n },\n options: {\n name: \"ContextMenu\",\n filter: null,\n showOn: \"contextmenu\",\n orientation: \"vertical\",\n alignToAnchor: !1,\n copyAnchorStyles: !0,\n target: \"body\"\n },\n events: [v, x, E, A, I],\n setOptions: function (t) {\n var n = this;\n Te.fn.setOptions.call(n, t), n.target.off(n.showOn + g + n._marker, n._showProxy), n.userEvents && n.userEvents.destroy(), n.target = e(n.options.target), t.orientation && n.popup.wrapper[0] && n.popup.element.unwrap(), n._wire(), Te.fn.setOptions.call(this, t);\n },\n destroy: function () {\n var e = this;\n e.target.off(e.options.showOn + g + e._marker), j.off(n.support.mousedown + g + e._marker, e._closeProxy), e.userEvents && e.userEvents.destroy(), Te.fn.destroy.call(e);\n },\n open: function (i, a) {\n var r = this;\n if (i = e(i)[0], ue(r.element[0], e(i)[0]) || r._itemHasChildren(e(i))) Te.fn.open.call(r, i);else if (!1 === r._triggerEvent({\n item: r.element,\n type: v\n })) {\n if (r.popup.visible() && r.options.filter && (r.popup.close(!0), r.popup.element.kendoStop(!0)), a !== t) {\n var o = r._overflowWrapper();\n if (o) {\n var s = o.offset();\n i -= s.left, a -= s.top;\n }\n r.popup.wrapper.hide(), r._configurePopupScrolling(i, a), r.popup.open(i, a);\n } else r.popup.options.anchor = i || r.popup.anchor || r.target, r.popup.element.kendoStop(!0), r._configurePopupScrolling(), r.popup.open();\n j.off(r.popup.downEvent, r.popup._mousedownProxy), j.on(n.support.mousedown + g + r._marker, r._closeProxy), r.element.trigger(\"focus\");\n }\n return r;\n },\n _configurePopupScrolling: function (e, n) {\n var i = this,\n a = i.popup,\n r = \"horizontal\" == i.options.orientation;\n i.options.scrollable && (i._wrapPopupElement(a), a.element.parent().css({\n position: \"\",\n height: \"\"\n }), a.element.css({\n visibility: \"hidden\",\n display: \"\",\n position: \"\"\n }), r ? i._setPopupWidth(a, isNaN(e) ? t : {\n isFixed: !0,\n x: e,\n y: n\n }) : i._setPopupHeight(a, isNaN(e) ? t : {\n isFixed: !0,\n x: e,\n y: n\n }), a.element.css({\n visibility: \"\",\n display: \"none\",\n position: \"absolute\"\n }), i._initPopupScrollButtons(a, r, !0), a.element.siblings(ie).hide());\n },\n _setPopupWidth: function (t, i) {\n var a = t.element,\n r = a.add(a.parent(X));\n r.width(this._initialWidth || \"\");\n var o = t._location(i),\n s = e(window).width(),\n l = o.width,\n d = Math.max(o.left, 0),\n u = i ? 0 : ye(this._overflowWrapper()[0], \"scrollLeft\"),\n c = n.getShadows(a),\n p = s - c.left - c.right;\n p + u > l + d || r.css({\n overflow: \"hidden\",\n width: p - d + u + \"px\"\n });\n },\n close: function () {\n var t = this;\n ue(t.element[0], e(arguments[0])[0]) || t._itemHasChildren(arguments[0]) ? Te.fn.close.call(t, arguments[0]) : t.popup.visible() && !1 === t._triggerEvent({\n item: t.element,\n type: x\n }) && (t._removeHoverItem(), t.element.find(\"#\" + t._ariaId).removeAttr(\"id\"), t.popup.close(), j.off(n.support.mousedown + g + t._marker, t._closeProxy), t.unbind(I, t._closeTimeoutProxy), t.popup.options.anchor.focus());\n },\n _showHandler: function (t) {\n var i,\n a = t,\n r = this,\n o = r.options,\n s = n.support.mobileOS ? e(a.target) : e(a.currentTarget);\n t.event && ((a = t.event).pageX = t.x.location, a.pageY = t.y.location), ue(r.element[0], t.relatedTarget || t.target) || (r._eventOrigin = a, a.preventDefault(), a.stopImmediatePropagation(), r.element.find(\".k-focus\").removeClass(K), (o.filter && s.is(o.filter) || !o.filter) && (o.alignToAnchor ? (r.popup.options.anchor = a.currentTarget, r.open(a.currentTarget)) : (r.popup.options.anchor = a.currentTarget, r._targetChild ? (i = r.target.offset(), r.open(a.pageX - i.left, a.pageY - i.top)) : r.open(a.pageX, a.pageY))));\n },\n _closeHandler: function (t) {\n var n = this,\n i = e(t.relatedTarget || t.target),\n a = i.closest(n.target.selector)[0] == n.target[0],\n r = i.closest(ee),\n o = n._itemHasChildren(r),\n s = n._overflowWrapper(),\n l = ue(n.element[0], i[0]) || s && ue(s[0], i[0]);\n n._eventOrigin = t;\n var d = 3 !== t.which;\n n.popup.visible() && (d && a || !a) && (n.options.closeOnClick && !o && l || !l) && (l ? (this.unbind(I, this._closeTimeoutProxy), n.bind(I, n._closeTimeoutProxy)) : n.close());\n },\n _wire: function () {\n var e = this,\n t = e.options,\n i = e.target;\n e._preventProxy = null, e._showProxy = e._showHandler.bind(e), e._closeProxy = e._closeHandler.bind(e), e._closeTimeoutProxy = e.close.bind(e), i[0] && (n.support.mobileOS && \"contextmenu\" == t.showOn && (e.userEvents = new n.UserEvents(i, {\n filter: t.filter,\n allowSelection: !1\n }), e._preventProxy = function () {\n return !1;\n }, e.userEvents.bind(\"hold\", e._showProxy)), t.filter ? i.on(t.showOn + g + e._marker, t.filter, e._preventProxy || e._showProxy) : i.on(t.showOn + g + e._marker, e._preventProxy || e._showProxy), i.on(\"keydown\", function (t) {\n t.keyCode === n.keys.F10 && t.shiftKey && (t.preventDefault(), e.open(t.target));\n }));\n },\n _triggerEvent: function (n) {\n var i = this,\n a = e(i.popup.options.anchor)[0],\n r = i._eventOrigin;\n return i._eventOrigin = t, i.trigger(n.type, u({\n type: n.type,\n item: n.item || this.element[0],\n target: a\n }, r ? {\n event: r\n } : {}));\n },\n _popup: function () {\n var t = this,\n n = t._overflowWrapper();\n t._triggerProxy = t._triggerEvent.bind(t), t.popup = t.element.addClass(\"k-context-menu\").kendoPopup({\n autosize: \"horizontal\" === t.options.orientation,\n anchor: t.target || \"body\",\n copyAnchorStyles: t.options.copyAnchorStyles,\n collision: t.options.popupCollision || \"fit\",\n animation: t.options.animation,\n activate: t._triggerProxy,\n deactivate: t._triggerProxy,\n appendTo: n || t.options.appendTo,\n close: n ? function (t) {\n e(be(t.sender.element, n)).each(function (e, t) {\n var n = t.data(q);\n n && n.close(!0);\n });\n } : e.noop\n }).data(q), t._targetChild = ue(t.target[0], t.popup.element[0]);\n },\n _moveHoverToRoot: function (e, t) {\n this._moveHover(e, t), this.close();\n },\n _focus: function (e) {\n var t = this._oldHoverItem = this._hoverItem() || [];\n Te.fn._focus.call(this, e), a() === e.currentTarget && this._moveHover(t, this.wrapper.children().first());\n }\n });\n i.plugin(Te), i.plugin(Se);\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.html.HTMLBase,\n a = i.extend({\n init: function (e, t) {\n i.fn.init.call(this, e, t), this._wrapper();\n },\n options: {\n name: \"HTMLChip\",\n size: \"medium\",\n rounded: \"medium\",\n fillMode: \"solid\",\n themeColor: \"base\",\n attr: {},\n icon: \"\",\n iconAttr: {},\n removable: !1,\n removableAttr: {},\n removeIcon: \"x-circle\",\n content: \"\",\n text: \"\",\n stylingOptions: [\"size\", \"rounded\", \"fillMode\", \"themeColor\"]\n },\n _wrapper: function () {\n var t = this,\n n = t.options;\n t.wrapper = t.element.wrap(\"\").parent().attr(n.attr), t._addClasses(), n.icon && t.wrapper.prepend(e(\"\").attr(n.iconAttr)), t.element.addClass(\"k-chip-content\"), n.text && t.element.html('' + n.text + \"\"), n.removable && t.wrapper.append(e(\"\").attr(n.removableAttr));\n }\n });\n e.extend(n.html, {\n renderChip: function (t, n) {\n return t && !e.isPlainObject(t) || (n = t, t = e(\"\")), new a(t, n).html();\n },\n HTMLChip: a\n }), n.cssProperties.registerPrefix(\"HTMLChip\", \"k-chip-\");\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.html.HTMLBase,\n a = i.extend({\n init: function (e, t) {\n var n = this;\n i.fn.init.call(n, e, t), n.wrapper = n.element.addClass(\"k-chip-list\"), n._addClasses();\n },\n options: {\n name: \"HTMLChipList\",\n size: \"medium\",\n stylingOptions: [\"size\"]\n }\n });\n e.extend(n.html, {\n renderChipList: function (n, i) {\n return (arguments[0] === t || e.isPlainObject(arguments[0])) && (i = n, n = e(\"
    \")), new a(n, i).html();\n },\n HTMLChipList: a\n }), n.cssProperties.registerPrefix(\"HTMLChipList\", \"k-chip-list-\");\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui,\n a = i.List,\n r = n.html,\n o = e.extend({\n A: 65\n }, n.keys),\n s = n._activeElement,\n l = n.data.ObservableArray,\n d = \"id\",\n u = \".k-chip\",\n c = \"accept\",\n p = \"filter\",\n h = \"rebind\",\n f = \"open\",\n m = \"close\",\n g = \"change\",\n v = \"select\",\n _ = \"deselect\",\n b = \"aria-disabled\",\n k = \"aria-readonly\",\n w = \"aria-expanded\",\n y = \"aria-hidden\",\n x = \"aria-activedescendant\",\n C = \"aria-busy\",\n T = \"k-focus\",\n S = \"k-selected\",\n I = \"k-hidden\",\n D = \"k-hover\",\n E = \"k-disabled\",\n A = \"k-no-click\",\n F = \"disabled\",\n z = \"readonly\",\n P = \".kendoMultiSelect\",\n H = \"click\" + P,\n N = \"mouseenter\" + P,\n R = \"mouseleave\" + P,\n O = /\"/g,\n M = Array.isArray,\n B = [\"font-family\", \"font-size\", \"font-stretch\", \"font-style\", \"font-weight\", \"letter-spacing\", \"text-transform\", \"line-height\"],\n L = a.extend({\n init: function (t, i) {\n var r,\n o = this;\n o.ns = P, a.fn.init.call(o, t, i), o._optionsMap = {}, o._customOptions = {}, o._wrapper(), o._tagList(), o._input(), o._textContainer(), o._loader(), o._clearButton(), o._arrowButton(), o._tabindex(o.input), t = o.element.attr(\"multiple\", \"multiple\").hide(), (i = o.options).placeholder || (i.placeholder = t.data(\"placeholder\")), (r = t.attr(d)) || (r = n.guid()), r && (o._tagID = r + \"_tag_active\", r += \"_taglist\", o.tagList.attr(d, r)), o._initialOpen = !0, i.label && this._label(), o._aria(), o._dataSource(), o._ignoreCase(), o._popup(), o._tagTemplate(), o.requireValueMapper(o.options), o._initList(), o._reset(), o._enable(), o._placeholder(), i.autoBind ? o.dataSource.fetch() : i.value && o._preselect(i.value), e(o.element).parents(\"fieldset\").is(\":disabled\") && o.enable(!1), o._toggleCloseVisibility(), o._applyCssClasses(), n.notify(o);\n },\n options: {\n name: \"MultiSelect\",\n tagMode: \"multiple\",\n enabled: !0,\n autoBind: !0,\n autoClose: !0,\n highlightFirst: !0,\n dataTextField: \"\",\n dataValueField: \"\",\n filter: \"startswith\",\n ignoreCase: !0,\n minLength: 1,\n messages: {\n singleTag: \"item(s) selected\",\n clear: \"clear\",\n deleteTag: \"delete\",\n noData: \"No data found.\",\n downArrow: \"select\"\n },\n enforceMinLength: !1,\n delay: 100,\n value: null,\n maxSelectedItems: null,\n placeholder: \"\",\n height: 200,\n animation: {},\n virtual: !1,\n itemTemplate: \"\",\n tagTemplate: \"\",\n groupTemplate: \"#:data#\",\n fixedGroupTemplate: \"#:data#\",\n clearButton: !0,\n autoWidth: !1,\n popup: null,\n size: \"medium\",\n fillMode: \"solid\",\n rounded: \"medium\",\n label: null\n },\n events: [f, m, g, v, _, \"filtering\", \"dataBinding\", \"dataBound\"],\n setDataSource: function (e) {\n this.options.dataSource = e, this._state = \"\", this._dataSource(), this.persistTagList = !1, this.listView.setDataSource(this.dataSource), this.options.autoBind && this.dataSource.fetch();\n },\n setOptions: function (e) {\n var t = this._listOptions(e);\n a.fn.setOptions.call(this, e), this.listView.setOptions(t), this._accessors(), this._aria(), this._tagTemplate(), this._placeholder(), this._clearButton(), this._arrowButton();\n },\n currentTag: function (e) {\n var n = this;\n if (e === t) return n._currentTag;\n n._currentTag && (n._currentTag.removeClass(T).removeAttr(d), n._currentTag.find(\".k-chip-action\").attr(y, !0), n.input.removeAttr(x)), e && (e.addClass(T).attr(d, n._tagID), e.find(\".k-chip-action\").removeAttr(y), n.input.attr(x, n._tagID)), n._currentTag = e;\n },\n dataItems: function () {\n return this.listView.selectedDataItems();\n },\n destroy: function () {\n var e = this,\n t = e.ns;\n clearTimeout(e._busy), clearTimeout(e._typingTimeout), e.wrapper.off(t), e.tagList.off(t), e.input.off(t), e._clear.off(t), a.fn.destroy.call(e);\n },\n _aria: function () {\n var e = this,\n t = e.ul[0].id,\n n = \"none\" === this.options.filter ? \"none\" : \"list\",\n i = e.tagList.attr(d);\n e.input.attr({\n role: \"combobox\",\n \"aria-expanded\": !1,\n \"aria-controls\": t,\n \"aria-autocomplete\": n,\n \"aria-describedby\": i\n }), e._ariaLabel(e._focused);\n },\n _activateItem: function () {\n this.popup.visible() && a.fn._activateItem.call(this), this.currentTag(null);\n },\n _listOptions: function (t) {\n var i = this,\n r = a.fn._listOptions.call(i, e.extend(t, {\n selectedItemChange: i._selectedItemChange.bind(i),\n selectable: \"multiple\"\n })),\n o = this.options.itemTemplate || this.options.template,\n s = r.itemTemplate || o || r.template;\n return s || (s = \"#:\" + n.expr(r.dataTextField, \"data\") + \"#\"), r.template = s, r;\n },\n _setListValue: function () {\n a.fn._setListValue.call(this, this._initialValues.slice(0));\n },\n _listChange: function (e) {\n var n = this.dataSource.flatView(),\n i = this._optionsMap,\n a = this._value;\n this._state === h && (this._state = \"\");\n for (var r = 0; r < e.added.length; r++) if (i[a(e.added[r].dataItem)] === t) {\n this._render(n);\n break;\n }\n this._selectValue(e.added, e.removed);\n },\n _selectedItemChange: function (e) {\n var t,\n n,\n i = e.items;\n for (n = 0; n < i.length; n++) t = i[n], this.tagList.children(u).eq(t.index).children(\"span\").first().html(this.tagTextTemplate(t.item));\n },\n _wrapperMousedown: function (t) {\n var i = this,\n a = \"input\" !== t.target.nodeName.toLowerCase(),\n r = e(t.target),\n o = r.closest(\".k-multiselect-toggle-button, .k-chip\").children(\".k-i-arrow-s\")[0],\n l = r.closest(\".k-i-x, .k-i-x-circle\")[0];\n !a || l && n.support.mobileOS || !t.cancelable || t.preventDefault(), l || (o && i.popup.visible() ? i.toggle(!1) : (i.input[0] !== s() && a && i.input.trigger(\"focus\"), 1 !== i.options.minLength || i.popup.visible() || i.open()));\n },\n _inputFocus: function () {\n this._placeholder(!1, !0), this.wrapper.addClass(T);\n },\n _inputFocusout: function () {\n var e = this;\n clearTimeout(e._typingTimeout), e.wrapper.removeClass(T), e._placeholder(!e.listView.selectedDataItems()[0], !0), e.close(), e._state === p && (e._state = c, e.listView.skipUpdate(!0)), e.listView.bound() && e.listView.isFiltered() && (e.persistTagList = !0, e._clearFilter()), e.element.trigger(\"blur\");\n },\n _removeTag: function (e, n) {\n var i,\n a = this,\n r = a._state,\n o = e.index(),\n s = a.listView,\n l = s.value()[o],\n d = a.listView.selectedDataItems()[o],\n u = a._customOptions[l],\n h = s.element[0].children;\n if (a.trigger(_, {\n dataItem: d,\n item: e\n })) a._close();else {\n u !== t || r !== c && r !== p || (u = a._optionsMap[l]);\n var f = function () {\n a.currentTag(null), n && a._change(), a._close();\n };\n u === t && s.select().length ? (a.persistTagList = !1, s.select(s.select()[o]).done(f)) : ((i = a.element[0].children[u]) && (i.selected = !1), s.removeAt(o), s._removedAddedIndexes && s._removedAddedIndexes.splice(o, 1), h[u] && h[u].classList.remove(\"k-selected\"), \"single\" !== a.options.tagMode ? e.remove() : a._updateTagListHTML(), f());\n }\n },\n _tagListClick: function (t) {\n t.preventDefault(), t.stopPropagation();\n var n = e(t.currentTarget);\n n.is(\".k-i-x-circle\") && this._removeTag(n.closest(u), !0);\n },\n _clearValue: function () {\n var t = this;\n \"single\" === t.options.tagMode ? t._clearSingleTagValue() : t.tagList.children(u).each(function (n, i) {\n t._removeTag(e(i), !1);\n }), t.input.val(\"\"), t._search(), t._change(), t.focus(), t._hideClear(), t._state === p && (t._state = c);\n },\n _clearSingleTagValue: function () {\n for (var e = this, t = e.dataItems(), n = e.tagList.children(u), i = e.persistTagList, a = 0; a < t.length; a += 1) if (e.trigger(_, {\n dataItem: t[a],\n item: n.first()\n })) return void e._close();\n i && (e.persistTagList = !1), e.listView.value([]), e.persistTagList = i;\n },\n _focusHandler: function () {\n var e = this.input,\n t = s();\n e[0] === t || this.input.trigger(\"focus\");\n },\n _editable: function (t) {\n var n = this,\n i = t.disable,\n a = t.readonly,\n r = n.wrapper.off(P),\n o = n.tagList.off(P),\n s = n.input.off(P);\n a || i ? (r.toggleClass(E, i).toggleClass(A, a), s.attr(F, i).attr(z, a).attr(b, i).attr(k, a), n.element.prop(F, i)) : (r.removeClass(E).removeClass(A).on(\"mouseenter.kendoMultiSelect mouseleave.kendoMultiSelect\", n._toggleHover).on(\"mousedown\" + P + \" touchend\" + P, n._wrapperMousedown.bind(n)).on(H, n._focusHandler.bind(n)), n.input.on(\"keydown.kendoMultiSelect\", n._keydown.bind(n)).on(\"paste\" + P, n._search.bind(n)).on(\"input\" + P, n._search.bind(n)).on(\"focus\" + P, n._inputFocus.bind(n)).on(\"focusout\" + P, n._inputFocusout.bind(n)), n._clear.on(H + \" touchend\" + P, n._clearValue.bind(n)), s.prop(F, !1).prop(z, !1).attr(b, !1).attr(k, !1), n.element.prop(F, !1), o.on(N, u, function () {\n e(this).addClass(D);\n }).on(R, u, function () {\n e(this).removeClass(D);\n }).on(H + \" touchend\" + P, \".k-chip .k-icon\", n._tagListClick.bind(n)));\n },\n _close: function () {\n var e = this;\n e.options.autoClose ? e.close() : e.popup.position();\n },\n _filterSource: function (e, t) {\n t || (t = this._retrieveData), this._retrieveData = !1, a.fn._filterSource.call(this, e, t);\n },\n close: function () {\n this._activeItem = null, this.input.removeAttr(x), this.popup.close();\n },\n open: function () {\n var t,\n n = this,\n i = n.input.val().toLowerCase(),\n a = n.listView.dataSource.filter();\n a && a.filters.length > 0 && (t = (a.filters[0].value || \"\").toString().toLowerCase()), n._request && (n._retrieveData = !1), n._retrieveData || !n.listView.bound() || n._state === c && i !== t ? (n._open = !0, n._state = h, n.listView.skipUpdate(!0), n.persistTagList = !(n._initialOpen && !n.listView.bound()), n._filterSource(), n._focusItem()) : n._allowOpening() && (!n._initialOpen || n.options.autoBind || n.options.virtual || !n.options.value || e.isPlainObject(n.options.value[0]) || n.value(n.value() || n._initialValues), n.popup._hovered = !0, n._initialOpen = !1, n.popup.open(), n._focusItem());\n },\n toggle: function (e) {\n this[(e = e !== t ? e : !this.popup.visible()) ? f : m]();\n },\n refresh: function () {\n this.listView.refresh();\n },\n _floatCheck: function () {\n return !this.listView || !(this.value() && this.value().length) && !this.popup.visible();\n },\n _listBound: function () {\n var e = this,\n t = e.dataSource.flatView();\n e._render(t), e._renderFooter(), e._renderNoData(), e._toggleNoData(!t.length), e._resizePopup(), e._open && (e._open = !1, e.toggle(e._allowOpening())), e.popup.position(), e._updateItemFocus(), e._touchScroller && e._touchScroller.reset(), e._hideBusy(), e.trigger(\"dataBound\");\n },\n _updateItemFocus: function () {\n var e = this,\n n = e.dataSource.flatView(),\n i = e.listView.skip(),\n a = i === t || 0 === i;\n n.length && a && (e.options.highlightFirst ? e.listView.focusFirst() : e.listView.focus(-1));\n },\n _inputValue: function () {\n var e = this.input.val();\n return this.options.placeholder === e && (e = \"\"), e;\n },\n value: function (e) {\n var n = this,\n i = n.listView,\n a = i.value().slice(),\n r = n.options.maxSelectedItems,\n o = i.bound() && i.isFiltered();\n if (e === t) return a;\n n.persistTagList = !1, n.requireValueMapper(n.options, e), e = n._normalizeValues(e), null !== r && e.length > r && (e = e.slice(0, r)), o && n._clearFilter(), i.value(e), n._old = n._valueBeforeCascade = e.slice(), o || n._fetchData(), n._toggleCloseVisibility();\n },\n _preselect: function (t, i) {\n var a = this;\n M(t) || t instanceof n.data.ObservableArray || (t = [t]), (e.isPlainObject(t[0]) || t[0] instanceof n.data.ObservableObject || !a.options.dataValueField) && (a.dataSource.data(t), a.value(i || a._initialValues), a._retrieveData = !0);\n },\n _setOption: function (e, t) {\n var n = this.element[0].children[this._optionsMap[e]];\n n && (n.selected = t);\n },\n _fetchData: function () {\n var e = this,\n t = !!e.dataSource.view().length;\n 0 === e.listView.value().length || e._request || (e._retrieveData || !e._fetch && !t) && (e._fetch = !0, e._retrieveData = !1, e.dataSource.read().done(function () {\n e._fetch = !1;\n }));\n },\n _isBound: function () {\n return this.listView.bound() && !this._retrieveData;\n },\n _dataSource: function () {\n var e = this,\n t = e.element,\n i = e.options,\n a = i.dataSource || {};\n (a = M(a) ? {\n data: a\n } : a).select = t, a.fields = [{\n field: i.dataTextField\n }, {\n field: i.dataValueField\n }], e.dataSource && e._refreshHandler ? e._unbindDataSource() : (e._progressHandler = e._showBusy.bind(e), e._errorHandler = e._hideBusy.bind(e)), e.dataSource = n.data.DataSource.create(a).bind(\"progress\", e._progressHandler).bind(\"error\", e._errorHandler);\n },\n _reset: function () {\n var t = this,\n n = t.element,\n i = n.attr(\"form\"),\n a = i ? e(\"#\" + i) : n.closest(\"form\");\n a[0] && (t._resetHandler = function () {\n setTimeout(function () {\n t.value(t._initialValues), t._placeholder();\n });\n }, t._form = a.on(\"reset\", t._resetHandler));\n },\n _initValue: function () {\n var e = this.options.value || this.element.val();\n this._old = this._initialValues = this._normalizeValues(e);\n },\n _normalizeValues: function (t) {\n var n = this;\n return null === t ? t = [] : t && e.isPlainObject(t) ? t = [n._value(t)] : t && e.isPlainObject(t[0]) ? t = e.map(t, function (e) {\n return n._value(e);\n }) : M(t) || t instanceof l ? M(t) && (t = t.slice()) : t = [t], t;\n },\n _change: function () {\n var e = this,\n t = e.value();\n (function (e, t) {\n var n;\n if (null === e && null !== t || null !== e && null === t) return !1;\n if ((n = e.length) !== t.length) return !1;\n for (; n--;) if (e[n] !== t[n]) return !1;\n return !0;\n })(t, e._old) || (e._old = t.slice(), e.trigger(g), e.element.trigger(g)), e.popup.position(), e._toggleCloseVisibility();\n },\n _click: function (e) {\n var t = this,\n n = e.item;\n e.preventDefault(), t._select(n).done(function () {\n t._activeItem = n, t._change(), t._close();\n });\n },\n _getActiveItem: function () {\n return this._activeItem || e(this.listView.items()[this._getSelectedIndices().length - 1]) || this.listView.focus();\n },\n _getSelectedIndices: function () {\n return this.listView._selectedIndices || this.listView._selectedIndexes;\n },\n _keydown: function (i) {\n var a,\n r = this,\n s = i.keyCode,\n l = r._currentTag,\n d = r.listView,\n p = r.input.val(),\n h = n.support.isRtl(r.wrapper),\n f = r.popup.visible(),\n m = 0;\n if (s !== o.ENTER && (this._multipleSelection = !1), s === o.DOWN) {\n if (i.preventDefault(), !f) return r.open(), void (d.focus() || d.focusFirst());\n d.focus() ? (!r._activeItem && i.shiftKey && (r._activeItem = d.focus(), m = -1), a = d.getElementIndex(r._getActiveItem().first()), d.focusNext(), d.focus() ? i.shiftKey && !r.options.virtual && (this._multipleSelection = !0, r._selectRange(a, d.getElementIndex(d.focus().first()) + m)) : d.focusLast()) : d.focusFirst();\n } else if (s === o.UP) f && (!r._activeItem && i.shiftKey && (r._activeItem = d.focus(), m = 1), a = d.getElementIndex(r._getActiveItem().first()), d.focusPrev(), d.focus() ? i.shiftKey && !r.options.virtual && (this._multipleSelection = !0, r._selectRange(a, d.getElementIndex(d.focus().first()) + m)) : r.close()), i.preventDefault();else if (s === o.LEFT && !h || s === o.RIGHT && h) p || (l = l ? l.prev(u) : r.tagList.children(u).last())[0] && r.currentTag(l);else if (s === o.RIGHT && !h || s === o.LEFT && h) !p && l && (l = l.next(u), r.currentTag(l[0] ? l : null));else if (i.ctrlKey && !i.altKey && s === o.A && f && !r.options.virtual) this._multipleSelection = !0, this._getSelectedIndices().length === d.items().length && (r._activeItem = null), d.items().length && r._selectRange(0, d.items().length - 1);else if (s === o.ENTER && f) {\n if (!d.focus()) return;\n if (i.preventDefault(), this._multipleSelection && (this._multipleSelection = !1, d.focus().hasClass(S))) return void r._close();\n r._select(d.focus()).done(function () {\n r._change(), r._close();\n });\n } else if (s === o.SPACEBAR && i.ctrlKey && f) r._activeItem && d.focus() && d.focus()[0] === r._activeItem[0] && (r._activeItem = null), e(d.focus()).hasClass(S) || (r._activeItem = d.focus()), r._select(d.focus()).done(function () {\n r._change();\n }), i.preventDefault();else if (s === o.SPACEBAR && i.shiftKey && f && !r.options.virtual) {\n var g = d.getElementIndex(r._getActiveItem()),\n v = d.getElementIndex(d.focus());\n g !== t && v !== t && r._selectRange(g, v), i.preventDefault();\n } else if (s === o.ESC) f ? i.preventDefault() : (r.tagList.children(u).each(function (t, n) {\n r._removeTag(e(n), !1);\n }), r._change()), r.close();else if (s === o.HOME) f ? d.focus() ? (i.ctrlKey && i.shiftKey && !r.options.virtual && r._selectRange(d.getElementIndex(d.focus()[0]), 0), d.focusFirst()) : r.close() : p || (l = r.tagList.children(u).first()[0]) && r.currentTag(e(l));else if (s === o.END) f ? d.focus() ? (i.ctrlKey && i.shiftKey && !r.options.virtual && r._selectRange(d.getElementIndex(d.focus()[0]), d.element.children().length - 1), d.focusLast()) : r.close() : p || (l = r.tagList.children(u).last()[0]) && r.currentTag(e(l));else if (s !== o.DELETE && s !== o.BACKSPACE || p) {\n if (!r.popup.visible() || s !== o.PAGEDOWN && s !== o.PAGEUP) clearTimeout(r._typingTimeout), r._search();else {\n i.preventDefault();\n var _ = s === o.PAGEDOWN ? 1 : -1;\n d.scrollWith(_ * d.screenHeight());\n }\n } else {\n if (r._state = c, \"single\" === r.options.tagMode) return r._clearSingleTagValue(), r._change(), void r._close();\n s !== o.BACKSPACE || l || (l = r.tagList.children(u).last()), l && l[0] && r._removeTag(l, !0);\n }\n },\n _hideBusy: function () {\n var e = this;\n clearTimeout(e._busy), e.input.attr(C, !1), e._loading.addClass(I), e._request = !1, e._busy = null, e._toggleCloseVisibility();\n },\n _showBusyHandler: function () {\n this.input.attr(C, !0), this._loading.removeClass(I), this._hideClear();\n },\n _showBusy: function () {\n var e = this;\n e._request = !0, e._busy || (e._busy = setTimeout(e._showBusyHandler.bind(e), 100));\n },\n _placeholder: function (e, i) {\n var a = this,\n r = a.input,\n o = s(),\n l = a.options.placeholder,\n d = r.val(),\n u = r[0] === o,\n c = d.length;\n u && !a.options.autoClose && d !== l || (c = 0, d = \"\"), e === t && (e = !1, r[0] !== o && (e = !a.listView.selectedDataItems()[0])), a._prev = d, r.toggleClass(\"k-readonly\", e).val(e ? l : d), u && !i && n.caret(r[0], c, c);\n },\n _option: function (e, i, a) {\n var r = \"\", i !== t && (r += n.htmlEncode(i)), r + \"\";\n },\n _render: function (e) {\n var t,\n n,\n i,\n a,\n r = this.listView.selectedDataItems(),\n o = this.listView.value(),\n s = e.length,\n l = \"\";\n o.length !== r.length && (r = this._buildSelectedItems(o));\n var d = {},\n u = {};\n for (a = 0; a < s; a++) n = e[a], i = this._value(n), -1 !== (t = this._selectedItemIndex(i, r)) && r.splice(t, 1), u[i] = a, l += this._option(i, this._text(n), -1 !== t);\n if (r.length) for (a = 0; a < r.length; a++) n = r[a], d[i = this._value(n)] = s, u[i] = s, s += 1, l += this._option(i, this._text(n), !0);\n this._customOptions = d, this._optionsMap = u, this.element.html(l);\n },\n _buildSelectedItems: function (e) {\n for (var t, n = this.options.dataValueField, i = this.options.dataTextField, a = [], r = 0; r < e.length; r++) (t = {})[n] = e[r], t[i] = e[r], a.push(t);\n return a;\n },\n _selectedItemIndex: function (e, t) {\n for (var n = this._value, i = 0; i < t.length; i++) if (e === n(t[i])) return i;\n return -1;\n },\n _search: function () {\n var e = this;\n clearTimeout(e._typingTimeout), e._typingTimeout = setTimeout(function () {\n var t = e._inputValue();\n e._prev !== t && (e._prev = t, e.search(t), e._toggleCloseVisibility());\n }, e.options.delay);\n },\n _toggleCloseVisibility: function () {\n this.value().length || this.input.val() && this.input.val() !== this.options.placeholder ? this._showClear() : this._hideClear();\n },\n _allowOpening: function () {\n return this._allowSelection() && a.fn._allowOpening.call(this);\n },\n _allowSelection: function () {\n var e = this.options.maxSelectedItems;\n return null === e || e > this.listView.value().length;\n },\n _angularTagItems: function (t) {\n var n = this;\n n.angular(t, function () {\n return {\n elements: n.tagList[0].children,\n data: e.map(n.dataItems(), function (e) {\n return {\n dataItem: e\n };\n })\n };\n });\n },\n updatePersistTagList: function (e, t) {\n this.persistTagList.added && this.persistTagList.added.length === t.length && this.persistTagList.removed && this.persistTagList.removed.length === e.length ? this.persistTagList = !1 : (this.listView._removedAddedIndexes = this._old.slice(), this.persistTagList = {\n added: e,\n removed: t\n });\n },\n _selectValue: function (e, t) {\n var n,\n i,\n a,\n r = this,\n o = r.dataSource.total(),\n s = r.tagList,\n l = r._value;\n if (this.persistTagList) this.updatePersistTagList(e, t);else {\n if (r._angularTagItems(\"cleanup\"), \"multiple\" === r.options.tagMode) {\n for (a = t.length - 1; a > -1; a--) n = t[a], s.children(u).length && (s[0].removeChild(s[0].children[n.position]), r._setOption(l(n.dataItem), !1));\n for (a = 0; a < e.length; a++) i = e[a], r.input.before(r.tagTemplate(i.dataItem)), r._setOption(l(i.dataItem), !0);\n } else {\n for ((!r._maxTotal || r._maxTotal < o) && (r._maxTotal = o), this._updateTagListHTML(), a = t.length - 1; a > -1; a--) r._setOption(l(t[a].dataItem), !1);\n for (a = 0; a < e.length; a++) r._setOption(l(e[a].dataItem), !0);\n }\n r._refreshFloatingLabel(), r._angularTagItems(\"compile\"), r._placeholder();\n }\n },\n _updateTagListHTML: function () {\n var t = this,\n n = t.value(),\n i = t.dataSource.total();\n t.tagList.children(u).each(function (t, n) {\n e(n).remove();\n }), n.length && t.input.before(t.tagTemplate({\n values: n,\n dataItems: t.dataItems(),\n maxTotal: t._maxTotal,\n currentTotal: i\n }));\n },\n _select: function (t) {\n var n = e.Deferred().resolve();\n if (!t) return n;\n var i = this,\n a = i.listView,\n r = a.dataItemByIndex(a.getElementIndex(t)),\n o = t.hasClass(\"k-selected\");\n return i._state === h && (i._state = \"\"), i._allowSelection() || o ? i.trigger(o ? _ : v, {\n dataItem: r,\n item: t\n }) ? (i._close(), n) : (i.persistTagList = !1, a.select(t).done(function () {\n i._placeholder(), i._state === p && (i._state = c, a.skipUpdate(!0));\n })) : n;\n },\n _selectRange: function (t, n) {\n var i,\n a = this,\n r = this.listView,\n o = this.options.maxSelectedItems,\n s = this._getSelectedIndices().slice(),\n l = [],\n d = function (t) {\n r.select(t).done(function () {\n t.forEach(function (t) {\n var n = r.dataItemByIndex(t),\n i = r.element.children()[t],\n o = e(i).hasClass(\"k-selected\");\n a.trigger(o ? v : _, {\n dataItem: n,\n item: e(i)\n });\n }), a._change();\n });\n };\n if (s.length - 1 == n - t) return d(s);\n if (t < n) for (i = t; i <= n; i++) l.push(i);else for (i = t; i >= n; i--) l.push(i);\n for (null !== o && l.length > o && (l = l.slice(0, o)), i = 0; i < l.length; i++) {\n var u = l[i];\n -1 == this._getSelectedIndices().indexOf(u) ? s.push(u) : s.splice(s.indexOf(u), 1);\n }\n return s.length ? (a.persistTagList = !1, d(s)) : void 0;\n },\n _input: function () {\n var t = this,\n n = t.element,\n i = n[0].accessKey,\n a = t.tagList.children(\"input.k-input-inner\");\n a[0] || (a = e('').appendTo(t.tagList)), n.removeAttr(\"accesskey\"), t._focused = t.input = a.attr({\n autocomplete: \"off\",\n title: n[0].title\n }), i && t._focused.attr(\"accesskey\", i);\n },\n _tagList: function () {\n var t = this,\n n = t.options,\n i = t.wrapper.children(\".k-input-values\");\n i[0] || (i = e(r.renderChipList('
    ', e.extend({}, n))).appendTo(t.wrapper)), t.tagList = i;\n },\n _tagTemplate: function () {\n var t,\n i = this,\n a = i.options,\n o = a.tagTemplate,\n s = a.dataSource,\n l = \"multiple\" === a.tagMode,\n d = a.messages.singleTag;\n i.element[0].length && !s && (a.dataTextField = a.dataTextField || \"text\", a.dataValueField = a.dataValueField || \"value\"), t = l ? n.template(\"#:\" + n.expr(a.dataTextField, \"data\") + \"#\", {\n useWithBlock: !1\n }) : n.template(\"#:values.length# \" + d), i.tagTextTemplate = o = o ? n.template(o) : t, i.tagTemplate = function (t) {\n return r.renderChip('', e.extend({}, a, {\n fillMode: \"solid\",\n rounded: \"medium\",\n themeColor: \"base\",\n text: o(t),\n attr: {\n unselectable: \"on\"\n },\n removable: l,\n removableAttr: {\n unselectable: \"on\",\n \"aria-hidden\": !0,\n \"aria-label\": i.options.messages.deleteTag,\n title: i.options.messages.deleteTag\n },\n icon: l ? \"\" : \"arrow-s\",\n iconAttr: {\n unselectable: \"on\",\n \"aria-hidden\": !0,\n \"aria-label\": \"open\"\n }\n }));\n };\n },\n _loader: function () {\n this._loading = e('').insertAfter(this.tagList);\n },\n _clearButton: function () {\n a.fn._clearButton.call(this), this.options.clearButton && (this._clear.insertAfter(this.tagList), this.wrapper.addClass(\"k-multiselect-clearable\"));\n },\n _arrowButton: function () {\n var t = this.options.messages.downArrow,\n n = e(r.renderButton('', e.extend({}, this.options, {\n icon: \"arrow-s\"\n })));\n this._arrow && (this._arrow.remove(), this._arrow = null), this.options.downArrow && (this._arrow = n.attr({\n tabIndex: -1\n }), this._arrow.appendTo(this.wrapper));\n },\n _textContainer: function () {\n var t = n.getComputedStyles(this.input[0], B);\n t.position = \"absolute\", t.visibility = \"hidden\", t.top = -3333, t.left = -3333, this._span = e(\"\").css(t).appendTo(this.wrapper);\n },\n _wrapper: function () {\n var e = this.element,\n t = e.parent(\"span.k-multiselect\");\n t[0] || ((t = e.wrap('').parent())[0].style.cssText = e[0].style.cssText), this.wrapper = t.addClass(e[0].className).removeClass(\"input-validation-error\").css(\"display\", \"\");\n },\n _closeHandler: function (e) {\n this.trigger(m) ? e.preventDefault() : (this.input.attr(w, !1), this.ul.attr(y, !0));\n },\n _openHandler: function (e) {\n this._adjustListWidth(), this.trigger(f) ? e.preventDefault() : (this.input.attr(w, !0), this.ul.attr(y, !1));\n }\n });\n i.plugin(L), n.cssProperties.registerPrefix(\"MultiSelect\", \"k-input-\"), n.cssProperties.registerValues(\"MultiSelect\", [{\n prop: \"rounded\",\n values: n.cssProperties.roundedValues.concat([[\"full\", \"full\"]])\n }]);\n }(window.kendo.jQuery);\n !function (e, t) {\n var n,\n i = window.kendo,\n a = i.ui,\n r = i.keys,\n o = e.extend,\n s = e.each,\n l = Array.isArray,\n d = i.template,\n u = a.Widget,\n c = i.data.HierarchicalDataSource,\n p = /^(ul|a|div)$/i,\n h = \".kendoPanelBar\",\n f = \"href\",\n m = \"k-last\",\n g = \"k-link\",\n v = \".\" + g,\n _ = \"error\",\n b = \".k-item\",\n k = \".k-group:visible\",\n w = \"k-image\",\n y = \"k-first\",\n x = \"change\",\n C = \"expand\",\n T = \"select\",\n S = \"click\",\n I = \"k-content\",\n D = \"activate\",\n E = \"collapse\",\n A = \"dataBound\",\n F = \"mouseenter\",\n z = \"contentLoad\",\n P = \"k-active\",\n H = \"> .k-panel\",\n N = \"> .k-content\",\n R = \"k-focus\",\n O = \"k-disabled\",\n M = \"k-selected\",\n B = \".k-selected\",\n L = \"k-highlight\",\n V = b + \":not(.k-disabled)\",\n U = \"> .k-item:not(.k-disabled) > .k-link, .k-panel > .k-item:not(.k-disabled) > .k-link\",\n W = \"> li > .k-selected, .k-panel > li > .k-selected\",\n j = \"aria-disabled\",\n q = \"aria-expanded\",\n G = \"aria-hidden\",\n K = \"aria-selected\",\n $ = \":visible\",\n Y = \"single\",\n Q = {\n text: \"dataTextField\",\n url: \"dataUrlField\",\n spriteCssClass: \"dataSpriteCssClassField\",\n imageUrl: \"dataImageUrlField\"\n },\n X = {\n aria: function (e) {\n var t = \"\";\n return (e.items || e.content || e.contentUrl || e.expanded) && (t += \"aria-expanded='\" + (e.expanded ? \"true\" : \"false\") + \"' \"), !1 === e.enabled && (t += \"aria-disabled='true'\"), t;\n },\n wrapperCssClass: function (e, t) {\n var n = \"k-item\",\n i = t.index;\n return n += e.firstLevel ? \" k-panelbar-header\" : \" k-panelbar-item\", !1 === t.enabled ? n += \" k-disabled\" : !0 === t.expanded && (n += \" k-active\"), 0 === i && (n += \" k-first\"), i == e.length - 1 && (n += \" k-last\"), t.cssClass && (n += \" \" + t.cssClass), t.level && (n += \" k-level-\" + t.level()), n;\n },\n textClass: function (e) {\n var t = g;\n return e.selected && (t += \" k-selected\"), t;\n },\n textAttributes: function (e) {\n return e ? \" href='\" + e + \"'\" : \"\";\n },\n arrowClass: function (e) {\n var t = \"k-icon\";\n return t += e.expanded ? \" k-panelbar-toggle k-panelbar-collapse k-i-arrow-chevron-up\" : \" k-panelbar-toggle k-panelbar-expand k-i-arrow-chevron-down\";\n },\n text: function (e) {\n return !1 === e.encoded ? e.text : i.htmlEncode(e.text);\n },\n groupAttributes: function (e) {\n return !0 !== e.expanded ? \" style='display:none'\" : \"\";\n },\n ariaHidden: function (e) {\n return !0 !== e.expanded;\n },\n groupCssClass: function () {\n return \"k-panelbar-group k-group k-panel\";\n },\n contentAttributes: function (e) {\n return !0 !== e.item.expanded ? \" style='display:none'\" : \"\";\n },\n content: function (e) {\n return e.content ? e.content : e.contentUrl ? \"\" : \" \";\n },\n contentUrl: function (e) {\n return e.contentUrl ? 'href=\"' + e.contentUrl + '\"' : \"\";\n }\n };\n function J(t) {\n (t = e(t)).filter(\".k-first:not(:first-child)\").removeClass(y), t.filter(\".k-last:not(:last-child)\").removeClass(m), t.filter(\":first-child\").addClass(y), t.filter(\":last-child\").addClass(m);\n }\n function Z(t) {\n (t = e(t)).addClass(\"k-level-\" + t.parentsUntil(\".k-panelbar\", \"ul\").length);\n }\n n = function (e) {\n return e.children(\"span\").children(\".k-icon\");\n };\n var ee = i.ui.DataBoundWidget.extend({\n init: function (e, t) {\n var n,\n a,\n r = this;\n l(t) && (t = {\n dataSource: t\n }), a = t && !!t.dataSource, u.fn.init.call(r, e, t), e = r.wrapper = r.element.addClass(\"k-panelbar\"), t = r.options, e[0].id && (r._itemId = e[0].id + \"_pb_active\"), r._tabindex(), r._accessors(), r._dataSource(), r._templates(), r._initData(a), r._updateClasses(), r._animations(t), e.on(S + h, U, r._click.bind(r)).on(F + h + \" mouseleave\" + h, U, r._toggleHover).on(S + h, \".k-item.k-disabled > .k-link\", !1).on(S + h, \".k-request-retry\", r._retryRequest.bind(r)).on(\"keydown\" + h, r._keydown.bind(r)).on(\"focus\" + h, function () {\n var e = r.select();\n r._current(e[0] ? e : r._first());\n }).on(\"blur\" + h, function () {\n r._current(null);\n }).attr(\"role\", \"tree\"), (n = e.find(\"li.k-active > .\" + I))[0] && r.expand(n.parent(), !1), t.dataSource || r._angularCompile(), i.notify(r);\n },\n events: [C, E, T, D, x, _, A, z],\n options: {\n name: \"PanelBar\",\n dataSource: {},\n animation: {\n expand: {\n effects: \"expand:vertical\",\n duration: 200\n },\n collapse: {\n duration: 200\n }\n },\n messages: {\n loading: \"Loading...\",\n requestFailed: \"Request failed.\",\n retry: \"Retry\"\n },\n autoBind: !0,\n loadOnDemand: !0,\n expandMode: \"multiple\",\n template: \"\",\n dataTextField: null\n },\n _angularCompile: function () {\n var e = this;\n e.angular(\"compile\", function () {\n return {\n elements: e.element.children(\"li\"),\n data: [{\n dataItem: e.options.$angular\n }]\n };\n });\n },\n _angularCompileElements: function (t, n) {\n this.angular(\"compile\", function () {\n return {\n elements: t,\n data: e.map(n, function (e) {\n return [{\n dataItem: e\n }];\n })\n };\n });\n },\n _angularCleanup: function () {\n var e = this;\n e.angular(\"cleanup\", function () {\n return {\n elements: e.element.children(\"li\")\n };\n });\n },\n destroy: function () {\n u.fn.destroy.call(this), this.element.off(h), this._angularCleanup(), i.destroy(this.element);\n },\n _initData: function (e) {\n var t = this;\n e && (t.element.empty(), t.options.autoBind && (t._progress(!0), t.dataSource.fetch()));\n },\n _templates: function () {\n var e = this,\n t = e.options,\n n = e._fieldAccessor.bind(e);\n t.template && \"string\" == typeof t.template ? t.template = d(t.template) : t.template || (t.template = d(\"# var text = \" + n(\"text\") + \"(data.item); ## if (typeof data.item.encoded != 'undefined' && data.item.encoded === false) {##= text ## } else { ##: text ## } #\")), e.templates = {\n content: d(\"
    #= content(item) #
    \"),\n group: d(\"
      #= renderItems(data) #
    \"),\n itemWrapper: d(\"# var url = \" + n(\"url\") + \"(item); ## var imageUrl = \" + n(\"imageUrl\") + \"(item); ## var spriteCssClass = \" + n(\"spriteCssClass\") + \"(item); ## var contentUrl = contentUrl(item); ## var tag = url||contentUrl ? 'a' : 'span'; #<#= tag # class='#= textClass(item) #' #= contentUrl ##= textAttributes(url) #># if (imageUrl) { ## } ## if (spriteCssClass) { ## } ##= data.panelBar.options.template(data) ##= arrow(data) #\"),\n item: d(\"
  • #= itemWrapper(data) ## if (item.items && item.items.length > 0) { ##= subGroup({ items: item.items, panelBar: panelBar, group: { expanded: item.expanded } }) ## } else if (item.content || item.contentUrl) { ##= renderContent(data) ## } #
  • \"),\n loading: d(\"
  • #: data.messages.loading #
  • \"),\n retry: d(\"
  • #: data.messages.requestFailed #
  • \"),\n arrow: d(\"\"),\n empty: d(\"\")\n };\n },\n setOptions: function (e) {\n var t = this.options.animation;\n this._animations(e), e.animation = o(!0, t, e.animation), \"dataSource\" in e && this.setDataSource(e.dataSource), u.fn.setOptions.call(this, e);\n },\n expand: function (t, n) {\n var i = this,\n a = {};\n if (t = this.element.find(t), !i._animating || !t.find(\"ul\").is(\":visible\")) return i._animating = !0, n = !1 !== n, t.each(function (r, o) {\n o = e(o);\n var s = t.children(\".k-group,.k-content\");\n s.length || (s = i._addGroupElement(t));\n var l = s.add(o.find(N));\n if (!o.hasClass(O) && l.length > 0) {\n if (i.options.expandMode == Y && i._collapseAllExpanded(o)) return i;\n t.find(\".k-highlight\").removeClass(L), o.addClass(L), n || (a = i.options.animation, i.options.animation = {\n expand: {\n effects: {}\n },\n collapse: {\n hide: !0,\n effects: {}\n }\n }), i._triggerEvent(C, o) || i._toggleItem(o, !1, !1), n || (i.options.animation = a);\n }\n }), i;\n i.one(\"complete\", function () {\n setTimeout(function () {\n i.expand(t);\n });\n });\n },\n collapse: function (t, n) {\n var i = this,\n a = {};\n return i._animating = !0, n = !1 !== n, (t = i.element.find(t)).each(function (t, r) {\n var o = (r = e(r)).find(H).add(r.find(N));\n !r.hasClass(O) && o.is($) && (r.removeClass(L), n || (a = i.options.animation, i.options.animation = {\n expand: {\n effects: {}\n },\n collapse: {\n hide: !0,\n effects: {}\n }\n }), i._triggerEvent(E, r) || i._toggleItem(r, !0), n || (i.options.animation = a));\n }), i;\n },\n updateArrow: function (t) {\n var n = this;\n (t = e(t)).children(v).children(\".k-panelbar-collapse, .k-panelbar-expand\").remove(), t.filter(function () {\n var t = n.dataItem(this);\n return t ? t.hasChildren || t.content || t.contentUrl : e(this).find(\".k-panel\").length > 0 || e(this).find(\".k-content\").length > 0;\n }).children(\".k-link:not(:has([class*=k-i-arrow]))\").each(function () {\n var t = e(this),\n n = t.parent();\n t.append(\"\");\n });\n },\n _accessors: function () {\n var e,\n t,\n n,\n a = this.options,\n r = this.element;\n for (e in Q) t = a[Q[e]], n = r.attr(i.attr(e + \"-field\")), !t && n && (t = n), t || (t = e), l(t) || (t = [t]), a[Q[e]] = t;\n },\n _progress: function (e, t) {\n var i = this.element,\n a = this.templates.loading({\n messages: this.options.messages\n });\n 1 == arguments.length ? (t = e) ? i.html(a) : i.empty() : n(e).toggleClass(\"k-i-loading\", t).removeClass(\"k-i-refresh\");\n },\n _refreshRoot: function (t) {\n var n = this,\n i = {\n firstLevel: !0,\n expanded: !0,\n length: n.element.children().length\n };\n this.element.empty();\n var r = e.map(t, function (t, a) {\n return \"string\" == typeof t ? e(t) : (t.items = [], e(n.renderItem({\n group: i,\n item: o(t, {\n index: a\n })\n })));\n });\n this.element.append(r);\n for (var s = this.element.children(\".k-item\"), l = 0; l < t.length; l++) this.trigger(\"itemChange\", {\n item: s.eq(l).find(\".k-link\").first(),\n data: t[l],\n ns: a\n });\n this._angularCompileElements(r, t);\n },\n _refreshChildren: function (t, n) {\n var i, r, o;\n n.children(\".k-group\").empty();\n var s = t.children.data();\n if (s.length) for (this.append(t.children, n), this.options.loadOnDemand && this._toggleGroup(n.children(\".k-group\"), !1), r = n.children(\".k-group\").children(\"li\"), i = 0; i < r.length; i++) o = r.eq(i), this.trigger(\"itemChange\", {\n item: o.find(\".k-link\").first(),\n data: this.dataItem(o),\n ns: a\n });else !function (t) {\n var n = t,\n i = t.children(\"ul\"),\n a = n.children(\".k-link\").children(\".k-icon\");\n t.hasClass(\"k-panelbar\") || (!a.length && i.length ? a = e(\"\").appendTo(n) : i.length && i.children().length || (a.remove(), i.remove()));\n }(n), r = n.children(\".k-group\").children(\"li\"), this._angularCompileElements(r, s);\n },\n findByUid: function (t) {\n for (var n, a = this.element.find(\".k-item\"), r = i.attr(\"uid\"), o = 0; o < a.length; o++) if (a[o].getAttribute(r) == t) {\n n = a[o];\n break;\n }\n return e(n);\n },\n refresh: function (e) {\n var n = this.options,\n i = e.node,\n a = e.action,\n r = e.items,\n o = this.wrapper,\n s = n.loadOnDemand;\n if (e.field) {\n if (!r[0] || !r[0].level) return;\n return this._updateItems(r, e.field);\n }\n if (i && (o = this.findByUid(i.uid), this._progress(o, !1)), \"add\" == a ? this._appendItems(e.index, r, o) : \"remove\" == a ? this.remove(this.findByUid(r[0].uid)) : \"itemchange\" == a ? this._updateItems(r) : \"itemloaded\" == a ? this._refreshChildren(i, o) : this._refreshRoot(r), \"remove\" != a) for (var l = 0; l < r.length; l++) if (!s || r[l].expanded) {\n var d = r[l];\n this._hasChildItems(d) && d.load();\n }\n this.trigger(A, {\n node: i ? o : t\n });\n },\n _error: function (e) {\n var t = e.node && this.findByUid(e.node.uid),\n i = this.templates.retry({\n messages: this.options.messages\n });\n t ? (this._progress(t, !1), this._expanded(t, !1), n(t).addClass(\"k-i-refresh\"), e.node.loaded(!1)) : (this._progress(!1), this.element.html(i));\n },\n _retryRequest: function (e) {\n e.preventDefault(), this.dataSource.fetch();\n },\n items: function () {\n return this.element.find(\".k-item > span:first-child\");\n },\n setDataSource: function (e) {\n this.options.dataSource = e, this._dataSource(), this.options.autoBind && (this._progress(!0), this.dataSource.fetch());\n },\n _bindDataSource: function () {\n this._refreshHandler = this.refresh.bind(this), this._errorHandler = this._error.bind(this), this.dataSource.bind(x, this._refreshHandler), this.dataSource.bind(_, this._errorHandler);\n },\n _unbindDataSource: function () {\n var e = this.dataSource;\n e && (e.unbind(x, this._refreshHandler), e.unbind(_, this._errorHandler));\n },\n _fieldAccessor: function (t) {\n var n = this.options[Q[t]] || [],\n a = n.length,\n r = \"(function(item) {\";\n return 0 === a ? r += \"return item['\" + t + \"'];\" : (r += \"var levels = [\" + e.map(n, function (e) {\n return \"function(d){ return \" + i.expr(e) + \"}\";\n }).join(\",\") + \"];\", r += \"if(item.level){return levels[Math.min(item.level(), \" + a + \"-1)](item);}else\", r += \"{return levels[\" + a + \"-1](item)}\"), r += \"})\";\n },\n _dataSource: function () {\n var e = this,\n t = e.options.dataSource;\n t && (t = l(t) ? {\n data: t\n } : t, e._unbindDataSource(), t.fields || (t.fields = [{\n field: \"text\"\n }, {\n field: \"url\"\n }, {\n field: \"spriteCssClass\"\n }, {\n field: \"imageUrl\"\n }]), e.dataSource = c.create(t), e._bindDataSource());\n },\n _appendItems: function (t, n, i) {\n var a,\n r,\n s = this;\n i.hasClass(\"k-panelbar\") ? (a = i.children(\"li\"), r = i) : ((r = i.children(\".k-group\")).length || (r = s._addGroupElement(i)), a = r.children(\"li\"));\n var l = {\n firstLevel: i.hasClass(\"k-panelbar\"),\n expanded: !0,\n length: a.length\n },\n d = e.map(n, function (t, n) {\n return e(\"string\" == typeof t ? t : s.renderItem({\n group: l,\n item: o(t, {\n index: n\n })\n }));\n });\n void 0 === t && (t = a.length);\n for (var u = 0; u < d.length; u++) 0 === a.length || 0 === t ? r.append(d[u]) : d[u].insertAfter(a[t - 1]);\n s._angularCompileElements(d, n), s.dataItem(i) && (s.dataItem(i).hasChildren = !0, s.updateArrow(i));\n },\n _updateItems: function (t, n) {\n var i,\n r,\n s,\n l,\n d = this,\n u = {\n panelBar: d.options,\n item: l,\n group: {}\n },\n c = \"expanded\" != n;\n if (\"selected\" == n) {\n if (t[0][n]) {\n var p = d.findByUid(t[0].uid);\n p.hasClass(O) || d.select(p, !0);\n } else d.clearSelection();\n } else {\n var h = e.map(t, function (e) {\n return d.findByUid(e.uid);\n });\n for (c && d.angular(\"cleanup\", function () {\n return {\n elements: h\n };\n }), i = 0; i < t.length; i++) u.item = l = t[i], u.panelBar = d, r = (s = h[i]).parent(), c && (u.group = {\n firstLevel: r.hasClass(\"k-panelbar\"),\n expanded: s.parent().hasClass(P),\n length: s.children().length\n }, s.children(\".k-link\").remove(), s.prepend(d.templates.itemWrapper(o(u, {\n arrow: l.hasChildren || l.content || l.contentUrl ? d.templates.arrow : d.templates.empty\n }, X)))), \"expanded\" == n ? d._toggleItem(s, !l[n], !l[n] || \"true\") : \"enabled\" == n && (d.enable(s, l[n]), l[n] || l.selected && l.set(\"selected\", !1)), s.length && this.trigger(\"itemChange\", {\n item: s.find(\".k-link\").first(),\n data: l,\n ns: a\n });\n c && d.angular(\"compile\", function () {\n return {\n elements: h,\n data: e.map(t, function (e) {\n return [{\n dataItem: e\n }];\n })\n };\n });\n }\n },\n _toggleDisabled: function (e, t) {\n (e = this.element.find(e)).toggleClass(O, !t).attr(j, !t);\n },\n dataItem: function (t) {\n var n = e(t).closest(b).attr(i.attr(\"uid\")),\n a = this.dataSource;\n return a && a.getByUid(n);\n },\n select: function (n, i) {\n var a = this;\n return n === t ? a.element.find(W).parent() : ((n = a.element.find(n)).length ? n.each(function () {\n var t = e(this),\n n = t.children(v);\n if (t.hasClass(O)) return a;\n a._updateSelected(n, i);\n }) : this._updateSelected(n), a);\n },\n clearSelection: function () {\n this.select(e());\n },\n enable: function (e, t) {\n return this._toggleDisabled(e, !1 !== t), this;\n },\n disable: function (e) {\n return this._toggleDisabled(e, !1), this;\n },\n append: function (e, t) {\n t = this.element.find(t);\n var n = this._insert(e, t, t.length ? t.find(H) : null);\n return s(n.items, function () {\n n.group.append(this), J(this), Z(this);\n }), this.updateArrow(t), J(n.group.find(\".k-first, .k-last\")), n.group.height(\"auto\"), this;\n },\n insertBefore: function (e, t) {\n t = this.element.find(t);\n var n = this._insert(e, t, t.parent());\n return s(n.items, function () {\n t.before(this), J(this), Z(this);\n }), J(t), n.group.height(\"auto\"), this;\n },\n insertAfter: function (e, t) {\n t = this.element.find(t);\n var n = this._insert(e, t, t.parent());\n return s(n.items, function () {\n t.after(this), J(this), Z(this);\n }), J(t), n.group.height(\"auto\"), this;\n },\n remove: function (e) {\n var t = this,\n n = (e = this.element.find(e)).parentsUntil(t.element, b),\n i = e.parent(\"ul\");\n return e.remove(), !i || i.hasClass(\"k-panelbar\") || i.children(b).length || i.remove(), n.length && (n = n.eq(0), t.updateArrow(n), J(n)), t;\n },\n reload: function (t) {\n var n = this;\n (t = n.element.find(t)).each(function () {\n var t = e(this);\n n._ajaxRequest(t, t.children(\".\" + I), !t.is($));\n });\n },\n _first: function () {\n return this.element.children(V).first();\n },\n _last: function () {\n var e = this.element.children(V).last(),\n t = e.children(k);\n return t[0] ? t.children(V).last() : e;\n },\n _current: function (n) {\n var i = this,\n a = i._focused,\n r = i._itemId;\n if (n === t) return a;\n i.element.removeAttr(\"aria-activedescendant\"), a && a.length && (a[0].id === r && a.removeAttr(\"id\"), a.children(v).removeClass(R)), e(n).length && (r = n[0].id || r, n.attr(\"id\", r).children(v).addClass(R), i.element.attr(\"aria-activedescendant\", r)), i._focused = n;\n },\n _keydown: function (e) {\n var t = this,\n n = e.keyCode,\n i = t._current();\n e.target == e.currentTarget && (n == r.DOWN || n == r.RIGHT ? (t._current(t._nextItem(i)), e.preventDefault()) : n == r.UP || n == r.LEFT ? (t._current(t._prevItem(i)), e.preventDefault()) : n == r.ENTER || n == r.SPACEBAR ? (t._click(e), e.preventDefault()) : n == r.HOME ? (t._current(t._first()), e.preventDefault()) : n == r.END && (t._current(t._last()), e.preventDefault()));\n },\n _nextItem: function (e) {\n if (!e) return this._first();\n var t = e.children(k),\n n = e.nextAll(\":visible\").first();\n return t[0] && (n = t.children(\".\" + y)), n[0] || (n = e.parent(k).parent(b).next()), n[0] || (n = this._first()), n;\n },\n _prevItem: function (e) {\n if (!e) return this._last();\n var t,\n n = e.prevAll(\":visible\").first();\n if (n[0]) for (t = n; t[0];) (t = t.children(k).children(\".\" + m))[0] && (n = t);else (n = e.parent(k).parent(b))[0] || (n = this._last());\n return n;\n },\n _insert: function (t, n, i) {\n var a,\n r,\n s = this,\n l = e.isPlainObject(t),\n d = n && n[0];\n if (d || (i = s.element), r = {\n firstLevel: i.hasClass(\"k-panelbar\"),\n expanded: e(n).hasClass(P),\n length: i.children().length\n }, d && !i.length && (i = e(s.renderGroup({\n group: r,\n options: s.options\n })).appendTo(n)), l || Array.isArray(t) || t instanceof c) {\n if (t instanceof c && (t = t.data()), a = e.map(l ? [t] : t, function (t, n) {\n return e(\"string\" == typeof t ? t : s.renderItem({\n group: r,\n item: o(t, {\n index: n\n })\n }));\n }), d) {\n var u = s.dataItem(n);\n u ? (u.hasChildren = !0, n.attr(q, u.expanded).not(\".k-active\").children(\"ul\").attr(G, !u.expanded)) : n.attr(q, !1);\n }\n } else a = \"string\" == typeof t && \"<\" != t.charAt(0) ? s.element.find(t) : e(t), s._updateItemsClasses(a);\n return t.length || (t = [t]), s._angularCompileElements(a, t), {\n items: a,\n group: i\n };\n },\n _toggleHover: function (t) {\n var n = e(t.currentTarget);\n n.parents(\"li.k-disabled\").length || n.toggleClass(\"k-hover\", t.type == F);\n },\n _updateClasses: function () {\n var t,\n n,\n i,\n a,\n r,\n o = this;\n a = (t = o.element.find(\"li > ul\").not(function () {\n return e(this).parentsUntil(\".k-panelbar\", \"div\").length;\n }).addClass(\"k-panelbar-group k-group k-panel\").attr(\"role\", \"group\")).parent(), i = (r = o.dataItem(a)) && r.expanded || !1, t.parent().not(\"[aria-expanded]\").attr(q, i).not(\".k-active\").children(\"ul\").attr(G, !i).hide(), n = o.element.add(t).children(), o._updateItemsClasses(n), o.updateArrow(n), J(n);\n },\n _updateItemsClasses: function (e) {\n for (var t = e.length, n = 0; n < t; n++) this._updateItemClasses(e[n], n);\n },\n _updateItemClasses: function (t, n) {\n var a,\n r,\n o = this._selected,\n s = this.options.contentUrls,\n l = s && s[n],\n d = this.element[0];\n t = e(t).addClass(\"k-item\").attr({\n role: \"treeitem\",\n \"aria-selected\": !1\n }), i.support.browser.msie && t.css(\"list-style-position\", \"inside\").css(\"list-style-position\", \"\"), t.children(\"img\").addClass(w), (r = t.children(\"a\").addClass(g))[0] && (r.attr(\"href\", l), r.children(\"img\").addClass(w)), t.filter(\"li[disabled]\").addClass(\"k-disabled\").attr(j, !0).prop(\"disabled\", !1), t.children(\"div\").addClass(I + \" k-panelbar-content\").attr(G, !0).hide().parent().attr(q, !1), (r = t.children(B))[0] && (o && o.attr(K, !1).children(B).removeClass(M), r.addClass(M), this._selected = t.attr(K, !0)), t.children(v)[0] || (a = \"\", s && s[n] && t[0].parentNode == d && (a = '
    '), t.contents().filter(function () {\n return !(this.nodeName.match(p) || 3 == this.nodeType && !i.trim(this.nodeValue.trim));\n }).wrapAll(a)), t.parent(\".k-panelbar\")[0] ? t.addClass(\"k-panelbar-header\") : t.addClass(\"k-panelbar-item\"), /k\\-level\\-\\d+/i.test(t.attr(\"class\")) || t.addClass(\"k-level-\" + t.parentsUntil(this.element, \"ul\").length);\n },\n _click: function (t) {\n var n,\n i,\n a,\n r = this,\n o = t.type == S ? e(t.target) : r._current().children(v),\n s = r.element;\n if (!o.parents(\"li.k-disabled\").length && o.closest(\".k-panelbar\")[0] == s[0] && (!o.is(\":kendoFocusable\") || o.hasClass(g))) {\n var l = o.closest(v),\n d = l.closest(b);\n r._updateSelected(l);\n var u = d.children(\".k-group,.k-content\"),\n c = this.dataItem(d);\n if (!u.length && (r.options.loadOnDemand && c && c.hasChildren || this._hasChildItems(d) || d.content || d.contentUrl) && (u = r._addGroupElement(d)), i = d.find(H).add(d.find(N)), n = !(!((a = l.attr(f)) && (\"#\" == a.charAt(a.length - 1) || -1 != a.indexOf(\"#\" + r.element[0].id + \"-\"))) && !i.length), i.data(\"animating\") && n) t.preventDefault();else if (r._triggerEvent(T, d) && (n = !0), !1 !== n) if (r.options.expandMode == Y && r._collapseAllExpanded(d) && n) t.preventDefault();else {\n if (i.length) {\n var p = i.is($);\n r._triggerEvent(p ? E : C, d) || (n = r._toggleItem(d, p));\n }\n n && t.preventDefault();\n }\n }\n },\n _hasChildItems: function (e) {\n return e.items && e.items.length > 0 || e.hasChildren;\n },\n _toggleItem: function (e, n, i) {\n var a,\n r,\n o = this,\n s = e.find(H),\n l = e.find(v).attr(f),\n d = o.dataItem(e),\n u = !n,\n c = d && d.loaded();\n return d && !i && d.expanded !== u ? (d.set(\"expanded\", u), a = d.hasChildren || !!d.content || !!d.contentUrl) : (!d || i && \"true\" !== i || c || d.content || d.contentUrl ? s.length ? (this._toggleGroup(s, n), a = !0) : (r = e.children(\".\" + I)).length && (a = !0, r.is(\":empty\") && l !== t ? o._ajaxRequest(e, r, n) : o._toggleGroup(r, n)) : (o.options.loadOnDemand && this._progress(e, !0), e.children(\".k-group,.k-content\").remove(), a = d.hasChildren, d.load()), a);\n },\n _toggleGroup: function (e, t) {\n var n = this,\n i = n.options.animation,\n a = i.expand,\n r = i.collapse && \"effects\" in i.collapse,\n s = o({}, i.expand, i.collapse);\n r || (s = o(s, {\n reverse: !0\n })), e.is($) == t ? (e.attr(G, !!t), e.parent().attr(q, !t).toggleClass(P, !t).find(\"> .k-link > .k-panelbar-collapse,> .k-link > .k-panelbar-expand\").toggleClass(\"k-i-arrow-chevron-up\", !t).toggleClass(\"k-panelbar-collapse\", !t).toggleClass(\"k-i-arrow-chevron-down\", t).toggleClass(\"k-panelbar-expand\", t), t ? (a = o(s, {\n hide: !0\n })).complete = function () {\n n._animationCallback();\n } : a = o({\n complete: function (e) {\n n._triggerEvent(D, e.closest(b)), n._animationCallback();\n }\n }, a), e.toggle(0).kendoStop(!0, !0).kendoAnimate(a)) : n._animating = !1;\n },\n _animationCallback: function () {\n this.trigger(\"complete\"), this._animating = !1;\n },\n _addGroupElement: function (t) {\n var n = e('
      ');\n return t.append(n), n;\n },\n _collapseAllExpanded: function (t) {\n var n,\n i = this,\n a = !1,\n r = t.find(H).add(t.find(N));\n return r.is($) && (a = !0), r.is($) || 0 === r.length || ((n = t.siblings()).find(H).add(n.find(N)).filter(function () {\n return e(this).is($);\n }).each(function (t, n) {\n n = e(n), (a = i._triggerEvent(E, n.closest(b))) || i._toggleGroup(n, !0);\n }), i.one(\"complete\", function () {\n setTimeout(function () {\n n.each(function (e, t) {\n var n = i.dataItem(t);\n n && n.set(\"expanded\", !1);\n });\n });\n })), a;\n },\n _ajaxRequest: function (t, n, i) {\n var a = this,\n r = t.find(\".k-panelbar-collapse, .k-panelbar-expand\"),\n o = t.find(v),\n s = setTimeout(function () {\n r.addClass(\"k-i-loading\");\n }, 100),\n l = o.attr(f);\n e.ajax({\n type: \"GET\",\n cache: !1,\n url: l,\n dataType: \"html\",\n data: {},\n error: function (e, t) {\n r.removeClass(\"k-i-loading\"), a.trigger(_, {\n xhr: e,\n status: t\n }) && this.complete();\n },\n complete: function () {\n clearTimeout(s), r.removeClass(\"k-i-loading\");\n },\n success: function (e) {\n function r() {\n return {\n elements: n.get()\n };\n }\n try {\n a.angular(\"cleanup\", r), n.html(e), a.angular(\"compile\", r);\n } catch (e) {\n var o = window.console;\n o && o.error && o.error(e.name + \": \" + e.message + \" in \" + l), this.error(this.xhr, \"error\");\n }\n a._toggleGroup(n, i), a.trigger(z, {\n item: t[0],\n contentElement: n[0]\n });\n }\n });\n },\n _triggerEvent: function (e, t) {\n return this.trigger(e, {\n item: t[0]\n });\n },\n _updateSelected: function (e, t) {\n var n = this,\n i = n.element,\n a = e.parent(b),\n r = n._selected,\n o = n.dataItem(a);\n r && r.attr(K, !1), n._selected = a.attr(K, !0), i.find(W).removeClass(M), i.find(\"> .k-highlight, .k-panel > .k-highlight\").removeClass(L), e.addClass(M), e.parentsUntil(i, b).filter(\":has(.k-link)\").addClass(L), n._current(a[0] ? a : null), o && o.set(\"selected\", !0), t || n.trigger(x);\n },\n _animations: function (e) {\n e && \"animation\" in e && !e.animation && (e.animation = {\n expand: {\n effects: {}\n },\n collapse: {\n hide: !0,\n effects: {}\n }\n });\n },\n renderItem: function (e) {\n var t = this;\n e = o({\n panelBar: t,\n group: {}\n }, e);\n var n = t.templates.empty,\n i = e.item;\n return t.templates.item(o(e, {\n itemWrapper: t.templates.itemWrapper,\n renderContent: t.renderContent,\n arrow: t._hasChildItems(i) || i.content || i.contentUrl ? t.templates.arrow : n,\n subGroup: !e.loadOnDemand || i.expanded ? t.renderGroup : n\n }, X));\n },\n renderGroup: function (e) {\n return (this.templates || e.panelBar.templates).group(o({\n renderItems: function (e) {\n for (var t = \"\", n = 0, i = e.items, a = i ? i.length : 0, r = o({\n length: a\n }, e.group); n < a; n++) t += e.panelBar.renderItem(o(e, {\n group: r,\n item: o({\n index: n\n }, i[n])\n }));\n return t;\n }\n }, e, X));\n },\n renderContent: function (e) {\n return e.panelBar.templates.content(o(e, X));\n }\n });\n i.ui.plugin(ee);\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui,\n a = n.keys,\n r = e.extend,\n o = i.Widget,\n s = /^\\d+(\\.\\d+)?px$/i,\n l = /^\\d+(\\.\\d+)?%$/i,\n d = \".kendoSplitter\",\n u = \"expand\",\n c = \"collapse\",\n p = \"contentLoad\",\n h = \"error\",\n f = \"layoutChange\",\n m = \"horizontal\",\n g = \"vertical\",\n v = \"click\",\n _ = \"pane\",\n b = \"k-focus\",\n k = \"k-pane\",\n w = \".k-pane\";\n function y(e) {\n return l.test(e);\n }\n function x(e) {\n return s.test(e) || /^\\d+$/.test(e);\n }\n function C(e) {\n return !y(e) && !x(e);\n }\n function T(e, t) {\n var n = parseInt(e, 10);\n return y(e) && (n = Math.floor(n * t / 100)), n;\n }\n function S(e, t) {\n return function (n, i) {\n var a = this.element.find(n).data(_);\n if (1 == arguments.length) return a[e];\n if (a[e] = i, t) {\n var r = this.element.data(\"kendo\" + this.options.name);\n r.resize(!0);\n }\n };\n }\n var I = o.extend({\n init: function (e, t) {\n var i,\n r = this;\n o.fn.init.call(r, e, t), r.wrapper = r.element, r.options.orientation && (i = r.options.orientation.toLowerCase() != g), r.orientation = i ? m : g, r._dimension = i ? \"width\" : \"height\", r._keys = {\n decrease: i ? a.LEFT : a.UP,\n increase: i ? a.RIGHT : a.DOWN\n }, r._resizeStep = 10, r._marker = n.guid().substring(0, 8), r._initPanes(), r.resizing = new A(r), r.element.triggerHandler(\"init\" + d);\n },\n events: [u, c, p, h, \"resize\", f],\n _addOverlays: function () {\n this._panes().append(\"
      \");\n },\n _removeOverlays: function () {\n this._panes().children(\".k-splitter-overlay\").remove();\n },\n _attachEvents: function () {\n var t = this,\n n = t.options.orientation;\n t.element.children(\".k-splitbar-draggable-\" + n).on(\"keydown\" + d, t._keydown.bind(t)).on(\"mousedown\" + d, function (e) {\n e.currentTarget.focus();\n }).on(\"focus\" + d, function (t) {\n e(t.currentTarget).addClass(b);\n }).on(\"blur\" + d, function (n) {\n e(n.currentTarget).removeClass(b), t.resizing && t.resizing.end();\n }).on(\"mouseenter\" + d, function () {\n e(this).addClass(\"k-splitbar-\" + t.orientation + \"-hover\");\n }).on(\"mouseleave\" + d, function () {\n e(this).removeClass(\"k-splitbar-\" + t.orientation + \"-hover\");\n }).on(\"mousedown\" + d, t._addOverlays.bind(t)).end().children(\".k-splitbar\").on(\"dblclick\" + d, t._togglePane.bind(t)).children(\".k-collapse-next, .k-collapse-prev\").on(v + d, t._arrowClick(c)).end().children(\".k-expand-next, .k-expand-prev\").on(v + d, t._arrowClick(u)).end().end(), e(window).on(\"resize\" + d + t._marker, t.resize.bind(t, !1)), e(document).on(\"mouseup\" + d + t._marker, t._removeOverlays.bind(t));\n },\n _detachEvents: function () {\n var t = this;\n t.element.children(\".k-splitbar-draggable-\" + t.orientation).off(d).end().children(\".k-splitbar\").off(\"dblclick\" + d).children(\".k-collapse-next, .k-collapse-prev, .k-expand-next, .k-expand-prev\").off(d), e(window).off(d + t._marker), e(document).off(d + t._marker);\n },\n options: {\n name: \"Splitter\",\n orientation: m,\n panes: []\n },\n destroy: function () {\n o.fn.destroy.call(this), this._detachEvents(), this.resizing && this.resizing.destroy(), n.destroy(this.element), this.wrapper = this.element = null;\n },\n _keydown: function (t) {\n var n,\n i = this,\n r = t.keyCode,\n o = i.resizing,\n s = e(t.currentTarget),\n l = i._keys,\n d = r === l.increase,\n p = r === l.decrease;\n d || p ? (t.ctrlKey ? (n = s[p ? \"next\" : \"prev\"](), o && o.isResizing() && o.end(), n[i._dimension]() ? i._triggerAction(c, s[p ? \"prev\" : \"next\"]()) : i._triggerAction(u, n)) : o && o.move((p ? -1 : 1) * i._resizeStep, s), t.preventDefault()) : r === a.HOME ? (n = s.prev(), i.collapse(n), t.preventDefault()) : r === a.END ? (n = s.prev(), i.expand(n), t.preventDefault()) : r === a.ENTER && o && (o.end(), t.preventDefault());\n },\n _initPanes: function () {\n var e = this.options.panes || [],\n t = this;\n this.element.addClass(\"k-widget\").addClass(\"k-splitter\").children().each(function (n, i) {\n \"script\" != i.nodeName.toLowerCase() && t._initPane(i, e[n]);\n }), this.resize();\n },\n _initPane: function (t, n) {\n (t = e(t).attr(\"role\", \"group\").addClass(k)).data(_, n || {}).toggleClass(\"k-scrollable\", !n || !1 !== n.scrollable), this.ajaxRequest(t);\n },\n ajaxRequest: function (e, t, i) {\n var a,\n r = this;\n a = (e = r.element.find(e)).data(_), (t = t || a.contentUrl) && (e.append(\"\"), n.isLocalUrl(t) ? jQuery.ajax({\n url: t,\n data: i || {},\n type: \"GET\",\n dataType: \"html\",\n success: function (t) {\n r.angular(\"cleanup\", function () {\n return {\n elements: e.get()\n };\n }), e.html(t), r.angular(\"compile\", function () {\n return {\n elements: e.get()\n };\n }), r.trigger(p, {\n pane: e[0]\n });\n },\n error: function (t, n) {\n r.trigger(h, {\n pane: e[0],\n status: n,\n xhr: t\n });\n }\n }) : e.removeClass(\"k-scrollable\").html(\"\"));\n },\n _triggerAction: function (e, t) {\n var n = t.data(_),\n i = n.collapsed && e == u || !n.collapsed && e == c;\n n.collapsible && i && !this.trigger(e, {\n pane: t[0]\n }) && this[e](t[0]);\n },\n _togglePane: function (t) {\n var n,\n i = this,\n a = e(t.target);\n a.closest(\".k-splitter\")[0] == i.element[0] && 1 === (n = a.children(\".k-icon:not(.k-resize-handle)\")).length && (n.is(\".k-collapse-prev\") ? i._triggerAction(c, a.prev()) : n.is(\".k-collapse-next\") ? i._triggerAction(c, a.next()) : n.is(\".k-expand-prev\") ? i._triggerAction(u, a.prev()) : n.is(\".k-expand-next\") && i._triggerAction(u, a.next()));\n },\n _arrowClick: function (t) {\n var n = this;\n return function (i) {\n var a,\n r = e(i.target);\n r.closest(\".k-splitter\")[0] == n.element[0] && (a = r.is(\".k-\" + t + \"-prev\") ? r.parent().prev() : r.parent().next(), n._triggerAction(t, a));\n };\n },\n _updateSplitBar: function (e, t, i, a) {\n var r = function (e, t) {\n return t ? \"
      \" : \"\";\n },\n o = this.orientation,\n s = !1 !== t.resizable && !1 !== i.resizable,\n l = t.collapsible,\n d = t.collapsed,\n u = i.collapsible,\n c = i.collapsed,\n p = a.attr(\"id\");\n p || (p = n.guid(), a.attr(\"id\", p)), e.addClass(\"k-splitbar k-splitbar-\" + o).attr(\"role\", \"separator\").attr(\"aria-valuemin\", \"0\").attr(\"aria-valuemax\", \"100\").attr(\"aria-controls\", p).removeClass(\"k-splitbar-\" + o + \"-hover\").toggleClass(\"k-splitbar-draggable-\" + o, s && !d && !c).toggleClass(\"k-splitbar-static-\" + o, !s && !l && !u).html(r(\"k-collapse-prev k-i-arrow-60-up\", l && !d && !c && o == g) + r(\"k-collapse-prev k-i-arrow-60-left\", l && !d && !c && o == m) + r(\"k-expand-prev k-i-arrow-60-down\", l && d && !c && o == g) + r(\"k-expand-prev k-i-arrow-60-right\", l && d && !c && o == m) + r(\"k-resize-handle k-i-hbar\", s && o == g) + r(\"k-resize-handle k-i-vbar\", s && o == m) + r(\"k-collapse-next k-i-arrow-60-down\", u && !c && !d && o == g) + r(\"k-collapse-next k-i-arrow-60-right\", u && !c && !d && o == m) + r(\"k-expand-next k-i-arrow-60-up\", u && c && !d && o == g) + r(\"k-expand-next k-i-arrow-60-left\", u && c && !d && o == m)), t.labelId ? e.attr(\"aria-labelledby\", t.labelId) : t.label && e.attr(\"aria-label\", t.label), o == m && e.attr(\"aria-orientation\", g), s || l || u || e.removeAttr(\"tabindex\");\n },\n _updateSplitBars: function () {\n var t = this;\n this.element.children(\".k-splitbar\").each(function () {\n var n = e(this),\n i = n.prevAll(w).first(),\n a = i.data(_),\n r = n.nextAll(w).first().data(_);\n r && t._updateSplitBar(n, a, r, i);\n });\n },\n _removeSplitBars: function () {\n this.element.children(\".k-splitbar\").remove();\n },\n _panes: function () {\n return this.element ? this.element.children(w) : e();\n },\n _resetAriaValueNow: function (e, t) {\n var n, i, a;\n for (n = 0; n < e.length; n++) a = t[n] + t[n + 1] || 1, i = Math.round(t[n] / a * 100), e[n].setAttribute(\"aria-valuenow\", i);\n },\n _resize: function () {\n var t = this,\n i = t.element,\n a = i.children(w),\n r = t.orientation == m,\n o = i.children(\".k-splitbar\"),\n s = o.length,\n l = r ? \"width\" : \"height\",\n d = i[l](),\n u = [];\n t.wrapper.addClass(\"k-splitter-resizing\"), 0 === s ? (s = a.length - 1, a.slice(0, s).after(\"
      \"), t._updateSplitBars(), o = i.children(\".k-splitbar\")) : t._updateSplitBars(), o.each(function () {\n d -= this[r ? \"offsetWidth\" : \"offsetHeight\"];\n });\n var c = 0,\n p = e();\n a.css({\n position: \"absolute\",\n top: 0\n })[l](function () {\n var t,\n n = e(this),\n i = n.data(_) || {};\n if (n.removeClass(\"k-collapsed\"), i.collapsed) t = i.collapsedSize ? T(i.collapsedSize, d) : 0, n.css(\"overflow\", \"hidden\").addClass(\"k-collapsed\");else {\n if (C(i.size)) return p = p.add(this), void u.push(!1);\n t = T(i.size, d);\n }\n return c += t, u.push(t), t;\n }), d -= c;\n var h = p.length,\n g = Math.floor(d / h);\n p.slice(0, h - 1).css(l, g).end().eq(h - 1).css(l, d - (h - 1) * g), u.forEach(function (e, t) {\n !1 === e && (u[t] = g);\n }), t._resetAriaValueNow(o, u);\n var v = 0,\n b = r ? \"height\" : \"width\",\n k = r ? \"left\" : \"top\",\n y = r ? \"offsetWidth\" : \"offsetHeight\";\n if (0 === h) {\n var x = a.filter(function () {\n return !(e(this).data(_) || {}).collapsed;\n }).last();\n x[l](d + x[0][y]);\n }\n i.children().css(b, i[b]()).each(function (e, t) {\n \"script\" != t.tagName.toLowerCase() && (t.style[k] = Math.floor(v) + \"px\", v += t[y]);\n }), t._detachEvents(), t._attachEvents(), t.wrapper.removeClass(\"k-splitter-resizing\"), n.resize(a), t.trigger(f);\n },\n toggle: function (e, n) {\n var i,\n a = this;\n i = (e = a.element.find(e)).data(_), (n || i.collapsible) && (1 == arguments.length && (n = i.collapsed !== t && i.collapsed), i.collapsed = !n, i.collapsed ? e.css(\"overflow\", \"hidden\") : e.css(\"overflow\", \"\"), a.resize(!0));\n },\n collapse: function (e) {\n this.toggle(e, !1);\n },\n expand: function (e) {\n this.toggle(e, !0);\n },\n _addPane: function (e, t, n) {\n var i = this;\n return n.length && (i.options.panes.splice(t, 0, e), i._initPane(n, e), i._removeSplitBars(), i.resize(!0)), n;\n },\n append: function (t) {\n t = t || {};\n var n = this,\n i = e(\"
      \").appendTo(n.element);\n return n._addPane(t, n.options.panes.length, i);\n },\n insertBefore: function (t, n) {\n n = e(n), t = t || {};\n var i = this.wrapper.children(\".k-pane\").index(n),\n a = e(\"
      \").insertBefore(e(n));\n return this._addPane(t, i, a);\n },\n insertAfter: function (t, n) {\n n = e(n), t = t || {};\n var i = this.wrapper.children(\".k-pane\").index(n),\n a = e(\"
      \").insertAfter(e(n));\n return this._addPane(t, i + 1, a);\n },\n remove: function (t) {\n var i = this;\n return (t = i.wrapper.find(t)).length && (n.destroy(t), t.each(function (t, n) {\n i.options.panes.splice(i.wrapper.children(\".k-pane\").index(n), 1), e(n).remove();\n }), i._removeSplitBars(), i.options.panes.length && i.resize(!0)), i;\n },\n size: S(\"size\", !0),\n min: S(\"min\"),\n max: S(\"max\")\n });\n i.plugin(I);\n var D = {\n sizingProperty: \"height\",\n sizingDomProperty: \"offsetHeight\",\n alternateSizingProperty: \"width\",\n positioningProperty: \"top\",\n mousePositioningProperty: \"pageY\"\n },\n E = {\n sizingProperty: \"width\",\n sizingDomProperty: \"offsetWidth\",\n alternateSizingProperty: \"height\",\n positioningProperty: \"left\",\n mousePositioningProperty: \"pageX\"\n };\n function A(e) {\n var t = this,\n i = e.orientation;\n t.owner = e, t._element = e.element, t.orientation = i, r(t, i === m ? E : D), t._resizable = new n.ui.Resizable(e.element, {\n orientation: i,\n handle: \".k-splitbar-draggable-\" + i + \"[data-marker=\" + e._marker + \"]\",\n hint: t._createHint.bind(t),\n start: t._start.bind(t),\n max: t._max.bind(t),\n min: t._min.bind(t),\n invalidClass: \"k-restricted-size-\" + i,\n resizeend: t._stop.bind(t)\n });\n }\n A.prototype = {\n press: function (e) {\n this._resizable.press(e);\n },\n move: function (e, t) {\n this.pressed || (this.press(t), this.pressed = !0), this._resizable.target || this._resizable.press(t), this._resizable.move(e);\n },\n end: function () {\n this._resizable.end(), this.pressed = !1;\n },\n destroy: function () {\n this._resizable.destroy(), this._resizable = this._element = this.owner = null;\n },\n isResizing: function () {\n return this._resizable.resizing;\n },\n _createHint: function (t) {\n var n = this;\n return e(\"
      \").css(n.alternateSizingProperty, t[n.alternateSizingProperty]());\n },\n _start: function (t) {\n var n = this,\n i = e(t.currentTarget),\n a = i.prev(),\n r = i.next(),\n o = a.data(_),\n s = r.data(_),\n l = parseInt(a[0].style[n.positioningProperty], 10),\n d = parseInt(r[0].style[n.positioningProperty], 10) + r[0][n.sizingDomProperty] - i[0][n.sizingDomProperty],\n u = parseInt(n._element.css(n.sizingProperty), 10),\n c = function (e) {\n var t = parseInt(e, 10);\n return (x(e) ? t : u * t / 100) || 0;\n },\n p = c(o.min),\n h = c(o.max) || d - l,\n f = c(s.min),\n m = c(s.max) || d - l;\n n.previousPane = a, n.nextPane = r, n._maxPosition = Math.min(d - f, l + h), n._minPosition = Math.max(l + p, d - m);\n },\n _max: function () {\n return this._maxPosition;\n },\n _min: function () {\n return this._minPosition;\n },\n _stop: function (t) {\n var i = this,\n a = e(t.currentTarget),\n r = i.owner;\n if (r._panes().children(\".k-splitter-overlay\").remove(), t.keyCode !== n.keys.ESC) {\n var o = t.position,\n s = a.prev(),\n l = a.next(),\n d = s.data(_),\n u = l.data(_),\n c = o - parseInt(s[0].style[i.positioningProperty], 10),\n p = parseInt(l[0].style[i.positioningProperty], 10) + l[0][i.sizingDomProperty] - o - a[0][i.sizingDomProperty],\n h = i._element.children(w).filter(function () {\n return C(e(this).data(_).size);\n }).length;\n (!C(d.size) || h > 1) && (C(d.size) && h--, d.size = c + \"px\"), (!C(u.size) || h > 1) && (u.size = p + \"px\"), r.resize(!0);\n }\n return !1;\n }\n };\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui.Widget,\n a = n.ui.Popup,\n r = n.isFunction,\n o = e.isPlainObject,\n s = e.extend,\n l = e(document),\n d = n.isLocalUrl,\n u = \"_tb_active\",\n c = \"aria-describedby\",\n p = \"show\",\n h = \"hide\",\n f = \"error\",\n m = \"contentLoad\",\n g = \"requestStart\",\n v = \"k-content-frame\",\n _ = n.template(\"\"),\n b = \".kendoTooltip\",\n k = {\n bottom: {\n origin: \"bottom center\",\n position: \"top center\"\n },\n top: {\n origin: \"top center\",\n position: \"bottom center\"\n },\n left: {\n origin: \"center left\",\n position: \"center right\",\n collision: \"fit flip\"\n },\n right: {\n origin: \"center right\",\n position: \"center left\",\n collision: \"fit flip\"\n },\n center: {\n position: \"center center\",\n origin: \"center center\"\n }\n },\n w = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\",\n center: \"center\"\n },\n y = {\n bottom: \"n\",\n top: \"s\",\n left: \"e\",\n right: \"w\",\n center: \"n\"\n },\n x = {\n horizontal: {\n offset: \"top\",\n size: \"outerHeight\"\n },\n vertical: {\n offset: \"left\",\n size: \"outerWidth\"\n }\n };\n function C(e) {\n for (; e.length && !T(e);) e = e.parent();\n }\n function T(e) {\n var t = e.data(n.ns + \"title\");\n if (t) return e.attr(\"title\", t), e.removeData(n.ns + \"title\"), !0;\n }\n function S(e) {\n var t = e.attr(\"title\");\n if (t) return e.data(n.ns + \"title\", t), e.attr(\"title\", \"\"), !0;\n }\n function I(e) {\n for (; e.length && !e.is(\"body\") && !S(e);) e = e.parent();\n }\n var D = i.extend({\n init: function (e, t) {\n var a,\n r = this;\n i.fn.init.call(r, e, t), a = r.options.position.match(/left|right/) ? \"horizontal\" : \"vertical\", r.dimensions = x[a], n.support.touch && this._isShownOnMouseEnter() && r.element.on(n.support.mousedown + b, r.options.filter, r._showOn.bind(r)), r.element.on(r.options.showOn + b, r.options.filter, r._showOn.bind(r)), \"click\" === r.options.showOn && r.element.on(\"keydown\" + b, r.options.filter, r._keydown.bind(r));\n },\n options: {\n name: \"TooltipBase\",\n filter: \"\",\n offset: 0,\n showAfter: 100,\n hideAfter: 100,\n callout: !0,\n position: \"bottom\",\n showOn: \"mouseenter\",\n animation: {\n open: {\n effects: \"fade:in\",\n duration: 0\n },\n close: {\n duration: 40,\n hide: !0\n }\n }\n },\n destroy: function () {\n var e = this.popup;\n e && (e.element.off(b), e.destroy()), clearTimeout(this.timeout), i.fn.destroy.call(this);\n },\n hide: function () {\n this.popup && this.popup.close();\n },\n show: function (e) {\n e = e || this.element, this._saveTitle(e), this._show(e);\n },\n target: function () {\n return this.popup ? this.popup.options.anchor : null;\n },\n _keydown: function (t) {\n var i = e(t.currentTarget);\n t.keyCode == n.keys.ENTER && this._show(i);\n },\n _showOn: function (t) {\n var n = this,\n i = e(t.currentTarget);\n n._isShownOnClick() && !n._isShownOnMouseEnter() ? n._show(i) : n._isShownOnFocus() ? (n._saveTitle(i), n._show(i)) : (clearTimeout(n.timeout), n.timeout = setTimeout(function () {\n n._show(i);\n }, n.options.showAfter));\n },\n _isShownOnFocus: function () {\n return this.options.showOn && this.options.showOn.match(/focus/);\n },\n _isShownOnMouseEnter: function () {\n return this.options.showOn && this.options.showOn.match(/mouseenter/);\n },\n _isShownOnClick: function () {\n return this.options.showOn && this.options.showOn.match(/click/);\n },\n _positionCallout: function () {\n var t = this,\n n = t.options.position,\n i = t.dimensions,\n a = i.offset,\n r = t.popup,\n o = r.options.anchor,\n s = e(o).offset(),\n l = e(r.element).offset(),\n d = y[r.flipped ? w[n] : n],\n u = s[a] - l[a] + e(o)[i.size]() / 2;\n t._offset(n, t.options.offset), t.arrow.removeClass(\"k-callout-n k-callout-s k-callout-w k-callout-e\").addClass(\"k-callout-\" + d).css(a, u);\n },\n _offset: function (e, t, i) {\n var a = this,\n r = \"top\" == e || \"left\" == e,\n o = a.popup.flipped,\n s = r && o || !r && !o ? 1 : -1,\n l = r ? \"margin-\" + e : \"margin-\" + w[e],\n d = (i || n._outerWidth(a.arrow)) / 2 + t;\n a.popup.wrapper.css(l, d * s + \"px\");\n },\n _addDescribedBy: function () {\n var e = this,\n t = e.popup.options.anchor,\n i = t[0].id || e.element[0].id || n.guid(),\n a = [];\n t.attr(c) && a.push(t.attr(c)), i && (a.push(i + u), t.attr(c, a.join(\" \")), e.popup.element.attr(\"id\", i + u));\n },\n _removeDescribedBy: function (e) {\n var t,\n n,\n i,\n a = this.popup.element.attr(\"id\"),\n r = e.attr(c);\n r && ((t = r.split(\" \")) && t.length > 0 && (n = t.filter(function (e) {\n return e !== a;\n })), n && n.length > 0 ? (i = n.join(\" \"), e.attr(c, i)) : e.removeAttr(c));\n },\n _openPopup: function () {\n this.popup && (this.popup._hovered = !0, this.popup.open());\n }\n });\n n.ui.plugin(D);\n var E = D.extend({\n init: function (e, t) {\n var i,\n a = this;\n D.fn.init.call(a, e, t), i = a.options.position.match(/left|right/) ? \"horizontal\" : \"vertical\", a.dimensions = x[i], a._documentKeyDownHandler = a._documentKeyDown.bind(a), (this._isShownOnMouseEnter() || this._isShownOnClick()) && a.element.on(\"mouseenter\" + b, a.options.filter, a._mouseenter.bind(a)), this.options.autoHide && this._isShownOnMouseEnter() && a.element.on(\"mouseleave\" + b, a.options.filter, a._mouseleave.bind(a)), this.options.autoHide && this._isShownOnFocus() && a.element.on(\"blur\" + b, a.options.filter, a._blur.bind(a)), n.support.touch && a.element.on(n.support.mousedown + b, a.options.filter, a._mouseenter.bind(a));\n },\n options: {\n name: \"Tooltip\",\n filter: \"\",\n content: function (e) {\n return e.target.data(n.ns + \"title\");\n },\n showAfter: 100,\n callout: !0,\n offset: 0,\n position: \"bottom\",\n showOn: \"mouseenter\",\n autoHide: !0,\n width: null,\n height: null,\n animation: {\n open: {\n effects: \"fade:in\",\n duration: 0\n },\n close: {\n duration: 40,\n hide: !0\n }\n }\n },\n events: [p, h, m, f, g],\n _mouseenter: function (t) {\n I(e(t.currentTarget));\n },\n _saveTitle: function (e) {\n I(e);\n },\n _appendContent: function (e) {\n var t,\n i = this,\n a = i.options.content,\n s = i.content,\n l = i.options.iframe;\n o(a) && a.url ? (\"iframe\" in i.options || (l = !d(a.url)), i.trigger(g, {\n options: a,\n target: e\n }), l ? (s.hide(), (t = s.find(\".\" + v)[0]) ? t.src = a.url || t.src : s.html(_({\n content: a\n })), s.find(\".\" + v).off(\"load\" + b).on(\"load\" + b, function () {\n i.trigger(m), s.show();\n })) : (s.empty(), n.ui.progress(s, !0), i._ajaxRequest(a))) : a && r(a) ? (a = a({\n sender: this,\n target: e\n }), s.html(a || \"\")) : s.html(a), i.angular(\"compile\", function () {\n return {\n elements: s\n };\n });\n },\n _ajaxRequest: function (e) {\n var t = this;\n jQuery.ajax(s({\n type: \"GET\",\n dataType: \"html\",\n cache: !1,\n error: function (e, i) {\n n.ui.progress(t.content, !1), t.trigger(f, {\n status: i,\n xhr: e\n });\n },\n success: function (e) {\n n.ui.progress(t.content, !1), t.content.html(e), n._outerHeight(t.popup.element) > n._outerHeight(t.popup.wrapper) && (t.popup.wrapper.css(\"height\", n._outerHeight(t.popup.element) + \"px\"), t.popup.position(), t._positionCallout()), t.trigger(m);\n }.bind(t)\n }, e));\n },\n _documentKeyDown: function (e) {\n e.keyCode === n.keys.ESC && this.hide();\n },\n refresh: function () {\n var e = this.popup;\n e && e.options.anchor && this._appendContent(e.options.anchor);\n },\n _show: function (e) {\n var t = this,\n n = t.target();\n t.popup || t._initPopup(), n && n[0] != e[0] && (t.popup.close(), t.popup.element.kendoStop(!0, !0)), n && n[0] == e[0] || (t._appendContent(e), t.popup.options.anchor = e), t.popup.one(\"deactivate\", function () {\n C(e), t._removeDescribedBy(e), this.element.removeAttr(\"id\").attr(\"aria-hidden\", !0), l.off(\"keydown\" + b, t._documentKeyDownHandler);\n }), t._openPopup();\n },\n _initPopup: function () {\n var t = this,\n i = t.options,\n r = e(n.template('
      #if (!autoHide) {#
      #}##if (callout){ #
      #}#
      ')({\n callout: i.callout && \"center\" !== i.position,\n dir: y[i.position],\n autoHide: i.autoHide\n }));\n t.popup = new a(r, s({\n autosize: !0,\n activate: function () {\n t._addDescribedBy(), i.callout ? t._positionCallout() : t._offset(t.options.position, t.options.offset), this.element.removeAttr(\"aria-hidden\"), l.on(\"keydown\" + b, t._documentKeyDownHandler), t.trigger(p), t.popup._hovered = undefined;\n },\n close: function () {\n t.trigger(h);\n },\n copyAnchorStyles: !1,\n animation: i.animation\n }, k[i.position])), r.css({\n width: i.width,\n height: i.height\n }), t.content = r.find(\".k-tooltip-content\"), t.arrow = r.find(\".k-callout\"), i.autoHide && this._isShownOnMouseEnter() ? r.on(\"mouseleave\" + b, t._mouseleave.bind(t)) : r.on(\"click\" + b, \".k-tooltip-button\", t._closeButtonClick.bind(t));\n },\n _closeButtonClick: function (e) {\n e.preventDefault(), this.hide();\n },\n _mouseleave: function (e) {\n var t = this;\n clearTimeout(t.timeout), t.timeout = setTimeout(function () {\n t._closePopup(e.currentTarget);\n }, t.options.hideAfter);\n },\n _blur: function (e) {\n this._closePopup(e.currentTarget);\n },\n _closePopup: function (t) {\n this.popup && !this.popup._hovered ? this.popup.close() : C(e(t));\n },\n destroy: function () {\n this.element.off(b), l.off(\"keydown\" + b, this._documentKeyDownHandler), D.fn.destroy.call(this);\n }\n });\n n.ui.plugin(E);\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui,\n a = e.extend,\n r = \"visibility\",\n o = \"k-hover\";\n i.HierarchicalDragAndDrop = n.Class.extend({\n init: function (t, r) {\n this.element = t, this.hovered = t, this.options = a({\n dragstart: e.noop,\n drag: e.noop,\n drop: e.noop,\n dragend: e.noop\n }, r), this._draggable = new i.Draggable(t, {\n ignore: \"input,a:not(.k-in),textarea,.k-multiselect-wrap,select,button,a.k-button>.k-icon,button.k-button>.k-icon,span.k-icon.k-i-arrow-60-right,span.k-icon.k-i-arrow-45-down-right\",\n filter: r.filter,\n autoScroll: r.autoScroll,\n cursorOffset: {\n left: 10,\n top: n.support.mobileOS ? -40 / n.support.zoomLevel() : 10\n },\n hint: this._hint.bind(this),\n dragstart: this.dragstart.bind(this),\n dragcancel: this.dragcancel.bind(this),\n drag: this.drag.bind(this),\n dragend: this.dragend.bind(this),\n $angular: r.$angular,\n holdToDrag: r.holdToDrag\n });\n },\n _hint: function (e) {\n return \"
      \" + this.options.hintText(e) + \"
      \";\n },\n _removeTouchHover: function () {\n n.support.touch && this.hovered && (this.hovered.find(\".k-hover\").removeClass(o), this.hovered = !1);\n },\n _hintStatus: function (e) {\n var t = this._draggable.hint.find(\".k-drag-status\")[0];\n if (!e) return n.trim(t.className.replace(/(p|k)-(icon|drag-status)/g, \"\"));\n t.className = \"k-icon k-drag-status \" + e;\n },\n dragstart: function (t) {\n this.source = t.currentTarget.closest(this.options.itemSelector), this.options.dragstart(this.source) && t.preventDefault(), this.options.reorderable ? this.dropHint = e(\"
      \").css(r, \"hidden\").appendTo(this.element) : this.dropHint = e();\n },\n drag: function (t) {\n var i,\n a,\n s,\n l,\n d,\n u,\n c,\n p,\n h,\n f,\n m,\n g = this.options,\n v = this.source,\n _ = this.dropTarget = e(n.eventTarget(t)),\n b = _.closest(g.allowedContainers);\n b.length ? v[0] == _[0] || g.contains(v[0], _[0]) ? m = \"k-i-cancel\" : (m = \"k-i-insert-middle\", (i = (h = g.itemFromTarget(_)).item).length ? (this._removeTouchHover(), a = n._outerHeight(i), l = h.content, g.reorderable ? (d = a / (l.length > 0 ? 4 : 2), s = n.getOffset(i).top, u = t.y.location < s + d, c = s + a - d < t.y.location, p = l.length && !u && !c) : (p = !0, u = !1, c = !1), this.hovered = !!p && b, this.dropHint.css(r, p ? \"hidden\" : \"visible\"), this._lastHover && this._lastHover[0] != l[0] && this._lastHover.removeClass(o), this._lastHover = l.toggleClass(o, p), p ? m = \"k-i-plus\" : ((f = i.position()).top += u ? 0 : a, this.dropHint.css(f)[u ? \"prependTo\" : \"appendTo\"](g.dropHintContainer(i)), u && h.first && (m = \"k-i-insert-up\"), c && h.last && (m = \"k-i-insert-down\"))) : _[0] != this.dropHint[0] && (this._lastHover && this._lastHover.removeClass(o), m = e.contains(this.element[0], b[0]) ? \"k-i-cancel\" : \"k-i-plus\")) : (m = \"k-i-cancel\", this._removeTouchHover()), this.options.drag({\n originalEvent: t.originalEvent,\n source: v,\n target: _,\n pageY: t.y.location,\n pageX: t.x.location,\n status: m.substring(2),\n setStatus: function (e) {\n m = e;\n }\n }), 0 !== m.indexOf(\"k-i-insert\") && this.dropHint.css(r, \"hidden\"), this._hintStatus(m);\n },\n dragcancel: function () {\n this.dropHint.remove();\n },\n dragend: function (e) {\n var t,\n n,\n i,\n a = \"over\",\n s = this.source,\n l = this.dropHint,\n d = this.dropTarget;\n \"visible\" == l.css(r) ? (a = this.options.dropPositionFrom(l), t = l.closest(this.options.itemSelector)) : d && ((t = d.closest(this.options.itemSelector)).length || (t = d.closest(this.options.allowedContainers))), n = {\n originalEvent: e.originalEvent,\n source: s[0],\n destination: t[0],\n valid: \"k-i-cancel\" != this._hintStatus(),\n setValid: function (e) {\n this.valid = e;\n },\n dropTarget: d[0],\n position: a\n }, i = this.options.drop(n), l.remove(), this._removeTouchHover(), this._lastHover && this._lastHover.removeClass(o), n.valid && !i ? (this._draggable.dropped = !0, this.options.dragend({\n originalEvent: e.originalEvent,\n source: s,\n destination: t,\n position: a\n })) : this._draggable.dropped = n.valid;\n },\n destroy: function () {\n this._lastHover = this.hovered = null, this._draggable.destroy();\n }\n });\n }(window.kendo.jQuery);\n !function (e, t) {\n var n,\n i,\n a,\n r,\n o,\n s = window.kendo,\n l = s.ui,\n d = s.data,\n u = e.extend,\n c = s.template,\n p = Array.isArray,\n h = l.Widget,\n f = d.HierarchicalDataSource,\n m = s.keys,\n g = \".kendoTreeView\",\n v = \".kendoTreeViewTemp\",\n _ = \"select\",\n b = \"check\",\n k = \"navigate\",\n w = \"change\",\n y = \"error\",\n x = \"checked\",\n C = \"indeterminate\",\n T = \"dragstart\",\n S = \"drag\",\n I = \"drop\",\n D = \"dragend\",\n E = \"dataBound\",\n A = \"itemsLoaded\",\n F = \"loadCompleted\",\n z = \"requestEnd\",\n P = \"click\",\n H = \"undefined\",\n N = \"k-hover\",\n R = \"k-treeview\",\n O = \".k-item\",\n M = \"string\",\n B = \"aria-checked\",\n L = \"aria-selected\",\n V = \"aria-disabled\",\n U = \"aria-expanded\",\n W = \"aria-activedescendant\",\n j = \"aria-busy\",\n q = \"k-disabled\",\n G = {\n text: \"dataTextField\",\n url: \"dataUrlField\",\n spriteCssClass: \"dataSpriteCssClassField\",\n imageUrl: \"dataImageUrlField\"\n },\n K = function (e) {\n return \"object\" == typeof HTMLElement ? e instanceof HTMLElement : e && \"object\" == typeof e && 1 === e.nodeType && typeof e.nodeName === M;\n };\n function $(e) {\n return function (t) {\n var n = t.children(\".k-animation-container\");\n return n.length || (n = t), n.children(e);\n };\n }\n function Y(e) {\n return s.template(e, {\n useWithBlock: !1\n });\n }\n function Q(e) {\n return e.find(\".k-checkbox-wrapper:first input[type=checkbox]\");\n }\n function X(e) {\n return function (t, n) {\n var i,\n a = (n = n.closest(O)).parent();\n return a.parent().is(\"li\") && (i = a.parent()), this._dataSourceMove(t, a, i, function (t, i) {\n var a = this.dataItem(n),\n r = a && n.parent().children().length !== a.parent().length ? a.parent().indexOf(a) : n.index();\n return this._insert(t.data(), i, r + e);\n });\n };\n }\n function J(t) {\n var n = t.children(\"div\"),\n i = t.children(\"ul\"),\n a = n.find(\".k-treeview-toggle > .k-icon\"),\n r = t.children(\"input[type=checkbox]\"),\n l = n.children(\".k-in\");\n t.hasClass(\"k-treeview\") || (n.length || (n = e(\"
      \").prependTo(t)), !a.length && i.length ? a = e(\"\").prependTo(n) : i.length && i.children().length || (a.parent().remove(), i.remove(), t.removeAttr(U)), r.length && e(\"\").appendTo(n).append(r), l.length || ((l = t.children(\"a\").eq(0).addClass(\"k-in k-link\")).length || (l = e(\"\")), l.appendTo(n), n.length && function (e, t) {\n for (var n; e && \"ul\" != e.nodeName.toLowerCase();) n = e, e = e.nextSibling, 3 == n.nodeType && (n.nodeValue = s.trim(n.nodeValue)), o.test(n.className) ? t.insertBefore(n, t.firstChild) : t.appendChild(n);\n }(n[0].nextSibling, l[0])));\n }\n i = $(\".k-group\"), a = $(\".k-group,.k-content\"), r = function (e) {\n return e.children(\"div\").find(\".k-treeview-toggle > .k-icon\");\n }, o = /k-sprite/, n = s.ui.DataBoundWidget.extend({\n init: function (e, t) {\n var n,\n i,\n a = this,\n r = t && !!t.dataSource;\n p(t) && (t = {\n dataSource: t\n }), t && typeof t.loadOnDemand == H && p(t.dataSource) && (t.loadOnDemand = !1), h.prototype.init.call(a, e, t), e = a.element, t = a.options, a._dataSourceUids = {}, i = e.is(\"ul\") && e || e.hasClass(R) && e.children(\"ul\"), (n = !r && i.length) && (t.dataSource.list = i), a._animation(), a._accessors(), a._templates(), e.hasClass(R) ? (a.wrapper = e, a.root = e.children(\"ul\").eq(0)) : (a._wrapper(), i && (a.root = e, a._group(a.wrapper))), a._applyCssClasses(), a._tabindex(), a.wrapper.attr(\"role\", \"tree\"), a.wrapper.find(\">ul\").attr(\"role\", \"none\"), a._dataSource(n), a._attachEvents(), a._dragging(), n ? a._syncHtmlAndDataSource() : t.autoBind && (a._progress(!0), a.dataSource.fetch(this._attemptLoadCompleted.bind(this))), t.checkboxes && t.checkboxes.checkChildren && a.updateIndeterminate(), a.element[0].id ? a._ariaId = s.format(\"{0}_tv_active\", a.element[0].id) : a._ariaId = s.guid() + \"_tv_active\", s.notify(a);\n },\n _attachEvents: function () {\n var t = this,\n n = \".k-in:not(.k-selected,.k-disabled)\",\n i = \"mouseenter\";\n t._clickHandler = t._click.bind(t), t.wrapper.on(i + g, \".k-in.k-selected\", function (e) {\n e.preventDefault();\n }).on(i + g, n, function () {\n e(this).addClass(N);\n }).on(\"mouseleave\" + g, n, function () {\n e(this).removeClass(N);\n }).on(P + g, n, t._clickHandler).on(\"dblclick\" + g, \".k-in:not(.k-disabled)\", t._toggleButtonClick.bind(t)).on(P + g, \".k-i-expand,.k-i-collapse\", t._toggleButtonClick.bind(t)).on(\"keydown\" + g, t, t._keydown.bind(t)).on(\"keypress\" + g, t._keypress.bind(t)).on(\"focus\" + g, t._focus.bind(t)).on(\"blur\" + g, t._blur.bind(t)).on(\"mousedown\" + g, \".k-in,.k-checkbox-wrapper :checkbox,.k-i-expand,.k-i-collapse\", t._mousedown.bind(t)).on(\"change\" + g, \".k-checkbox-wrapper :checkbox\", t._checkboxChange.bind(t)).on(\"click\" + g, \".k-request-retry\", t._retryRequest.bind(t)).on(\"click\" + g, \".k-link.k-disabled\", function (e) {\n e.preventDefault();\n }).on(\"click\" + g, function (n) {\n var i = e(n.target);\n i.is(\":kendoFocusable\") || i.find(\"input,select,textarea,button,object\").is(\":kendoFocusable\") || t.focus();\n });\n },\n _syncHtmlAndDataSource: function (e, t) {\n e = e || this.root;\n var n,\n i,\n a,\n r,\n o,\n l = (t = t || this.dataSource).view(),\n d = s.attr(\"uid\"),\n u = s.attr(\"expanded\"),\n c = this.options.checkboxes,\n p = e.children(\"li\");\n for (n = 0; n < p.length; n++) r = (a = l[n]).uid, (i = p.eq(n)).attr(\"role\", \"treeitem\").attr(d, r).attr(L, i.hasClass(\"k-selected\")), a.expanded = \"true\" === i.attr(u), a.hasChildren && i.attr(U, a.expanded), c && (o = Q(i), a.checked = o.prop(x), o.attr(\"id\", \"_\" + r), o.next(\".k-checkbox-label\").attr(\"for\", \"_\" + r), i.attr(B, i.checked)), this._syncHtmlAndDataSource(i.children(\"ul\"), a.children);\n },\n _animation: function () {\n var e = this.options,\n t = e.animation,\n n = t.collapse && \"effects\" in t.collapse,\n i = u({}, t.expand, t.collapse);\n n || (i = u(i, {\n reverse: !0\n })), !1 === t && (t = {\n expand: {\n effects: {}\n },\n collapse: {\n hide: !0,\n effects: {}\n }\n }), t.collapse = u(i, {\n hide: !0\n }), e.animation = t;\n },\n _dragging: function () {\n var t = this.options.dragAndDrop,\n n = this.dragging;\n if (t && !n) {\n var i = this;\n this.dragging = new l.HierarchicalDragAndDrop(this.element, {\n reorderable: !0,\n $angular: this.options.$angular,\n autoScroll: this.options.autoScroll,\n filter: \"div:not(.k-disabled) .k-in\",\n allowedContainers: \".k-treeview\",\n itemSelector: \".k-treeview .k-item\",\n hintText: this._hintText.bind(this),\n contains: function (t, n) {\n return e.contains(t, n);\n },\n dropHintContainer: function (e) {\n return e;\n },\n itemFromTarget: function (e) {\n var t = e.closest(\".k-treeview-top,.k-treeview-mid,.k-treeview-bot\");\n return {\n item: t,\n content: e.closest(\".k-in\"),\n first: t.hasClass(\"k-treeview-top\"),\n last: t.hasClass(\"k-treeview-bot\")\n };\n },\n dropPositionFrom: function (e) {\n return e.prevAll(\".k-in\").length > 0 ? \"after\" : \"before\";\n },\n dragstart: function (e) {\n return i.wrapper.attr(s.attr(\"scrollable\"), !1), i.trigger(T, {\n sourceNode: e[0]\n });\n },\n drag: function (e) {\n i.trigger(S, {\n originalEvent: e.originalEvent,\n sourceNode: e.source[0],\n dropTarget: e.target[0],\n pageY: e.pageY,\n pageX: e.pageX,\n statusClass: e.status,\n setStatusClass: e.setStatus\n });\n },\n drop: function (t) {\n var n = e(t.dropTarget).closest(\"a\");\n return n && n.attr(\"href\") && i._tempPreventNavigation(n), i.trigger(I, {\n originalEvent: t.originalEvent,\n sourceNode: t.source,\n destinationNode: t.destination,\n valid: t.valid,\n setValid: function (e) {\n this.valid = e, t.setValid(e);\n },\n dropTarget: t.dropTarget,\n dropPosition: t.position\n });\n },\n dragend: function (e) {\n var t = e.source,\n n = e.destination,\n a = e.position;\n function r(t) {\n i.options.checkboxes && i.options.checkboxes.checkChildren && i.updateIndeterminate(), i.current(t), i.element.focus(), i.trigger(D, {\n originalEvent: e.originalEvent,\n sourceNode: t && t[0],\n destinationNode: n[0],\n dropPosition: a\n });\n }\n i.wrapper.removeAttr(s.attr(\"scrollable\")), \"over\" == a ? i.append(t, n, r) : (\"before\" == a ? t = i.insertBefore(t, n) : \"after\" == a && (t = i.insertAfter(t, n)), r(t));\n }\n });\n } else !t && n && (n.destroy(), this.dragging = null);\n },\n _tempPreventNavigation: function (e) {\n e.on(P + g + v, function (t) {\n t.preventDefault(), e.off(P + g + v);\n });\n },\n _hintText: function (e) {\n return this.templates.dragClue({\n item: this.dataItem(e),\n treeview: this.options\n });\n },\n _templates: function () {\n var e = this,\n t = e.options,\n n = e._fieldAccessor.bind(e);\n t.template && typeof t.template == M ? t.template = c(t.template) : t.template || (t.template = Y(\"# var text = \" + n(\"text\") + \"(data.item); ## if (typeof data.item.encoded != 'undefined' && data.item.encoded === false) {##= text ## } else { ##: text ## } #\")), e._checkboxes(), e.templates = {\n setAttributes: function (e) {\n var t = \"\",\n n = e.attr || {};\n for (var i in n) n.hasOwnProperty(i) && \"class\" !== i && (t += i + '=\"' + n[i] + '\" ');\n return t;\n },\n wrapperCssClass: function (e, t) {\n var n = \"k-item k-treeview-item\",\n i = t.index;\n return e.firstLevel && 0 === i && (n += \" k-first\"), i == e.length - 1 && (n += \" k-last\"), n;\n },\n cssClass: function (e, t) {\n var n = \"\",\n i = t.index,\n a = e.length - 1;\n return e.firstLevel && 0 === i && (n += \"k-treeview-top \"), n += 0 === i && i != a ? \"k-treeview-top\" : i == a ? \"k-treeview-bot\" : \"k-treeview-mid\";\n },\n textClass: function (e, t) {\n var n = \"k-treeview-leaf k-in\";\n return t && (n += \" k-link\"), !1 === e.enabled && (n += \" k-disabled\"), !0 === e.selected && (n += \" k-selected\"), n;\n },\n toggleButtonClass: function (e) {\n var t = \"k-icon\";\n return !0 !== e.expanded ? t += \" k-i-expand\" : t += \" k-i-collapse\", t;\n },\n groupAttributes: function (e) {\n var t = \"\";\n return e.firstLevel || (t = \"role='group'\"), t + (!0 !== e.expanded ? \" style='display:none'\" : \"\");\n },\n groupCssClass: function (e) {\n var t = \"k-group k-treeview-group\";\n return e.firstLevel && (t += \" k-treeview-lines\"), t;\n },\n dragClue: Y(\"#= data.treeview.template(data) #\"),\n group: Y(\"
        #= data.renderItems(data) #
      \"),\n itemContent: Y(\"# var imageUrl = \" + n(\"imageUrl\") + \"(data.item); ## var spriteCssClass = \" + n(\"spriteCssClass\") + \"(data.item); ## if (imageUrl) { ## } ## if (spriteCssClass) { ## } ##= data.treeview.template(data) #\"),\n itemElement: Y(\"# var item = data.item, r = data.r; ## var url = \" + n(\"url\") + \"(item); #
      # if (item.hasChildren) { ## } ## if (data.treeview.checkboxes) { ##= data.treeview.checkboxes.template(data) ## } ## var tag = url ? 'a' : 'span'; ## var textAttr = url ? ' href=\\\\'' + url + '\\\\'' : ''; #<#=tag# class='#= r.textClass(item, !!url) #'#= textAttr #>#= r.itemContent(data) #
      \"),\n item: Y(\"# var item = data.item, r = data.r; #
    • #= r.itemElement(data) #
    • '),\n loading: Y(\"
      #: data.messages.loading #\"),\n retry: Y(\"#: data.messages.requestFailed # \")\n };\n },\n items: function () {\n return this.element.find(\".k-item > div:first-child\");\n },\n setDataSource: function (e) {\n var t = this.options;\n t.dataSource = e, this._dataSourceUids = {}, this._dataSource(), t.checkboxes && t.checkboxes.checkChildren && this.dataSource.one(\"change\", this.updateIndeterminate.bind(this, null)), this.options.autoBind && this.dataSource.fetch(this._attemptLoadCompleted.bind(this));\n },\n _bindDataSource: function () {\n var e = this;\n e._refreshHandler = e.refresh.bind(e), e._errorHandler = e._error.bind(e), e._loadCompletedHandler = e._loadCompleted.bind(e), e._requestEndHandler = e._dsRequestEnd.bind(e), e._loadedNodes = [], e.dataSource.bind(w, e._refreshHandler), e.dataSource.bind(y, e._errorHandler), e.dataSource.bind(A, e._loadCompletedHandler), e.dataSource.bind(z, e._requestEndHandler);\n },\n _dsRequestEnd: function (e) {\n var t = this;\n setTimeout(function () {\n \"read\" !== e.type || t._loadCompletedFired || t._attemptLoadCompleted();\n });\n },\n _loadCompleted: function (e) {\n var t = this;\n t._loadedNodes = t._loadedNodes.concat(e.nodes), t.dataSource.loading() || !1 !== t.options.loadOnDemand || (t.trigger(F, {\n nodes: t._loadedNodes\n }), t._loadedNodes = []);\n },\n _attemptLoadCompleted: function () {\n var e,\n t,\n n = this,\n i = n.dataSource.view();\n if (!1 === n.options.loadOnDemand) {\n for (t = 0; t < i.length; t++) if ((e = i[t]).hasChildren && (!e.children || !e.children.data() || 0 === e.children.data().length)) return;\n n._loadCompletedFired = !0, n.trigger(F, {\n nodes: []\n });\n }\n },\n _unbindDataSource: function () {\n var e = this.dataSource;\n e && (e.unbind(w, this._refreshHandler), e.unbind(y, this._errorHandler), e.unbind(A, this._loadCompletedHandler), e.unbind(z, this._requestEndHandler));\n },\n _dataSource: function (e) {\n var t = this,\n n = t.options.dataSource;\n n = p(n) ? {\n data: n\n } : n, t._unbindDataSource(), n.fields || (n.fields = [{\n field: \"text\"\n }, {\n field: \"url\"\n }, {\n field: \"spriteCssClass\"\n }, {\n field: \"imageUrl\"\n }]), t.dataSource = n = f.create(n), e && (n.fetch(), function e(t) {\n for (var n = 0; n < t.length; n++) t[n]._initChildren(), t[n].children.fetch(), e(t[n].children.view());\n }(n.view())), t._bindDataSource();\n },\n events: [T, S, I, D, E, F, \"expand\", \"collapse\", _, w, k, b, \"kendoKeydown\"],\n options: {\n name: \"TreeView\",\n dataSource: {},\n animation: {\n expand: {\n effects: \"expand:vertical\",\n duration: 200\n },\n collapse: {\n duration: 100\n }\n },\n messages: {\n loading: \"Loading...\",\n requestFailed: \"Request failed.\",\n retry: \"Retry\"\n },\n dragAndDrop: !1,\n checkboxes: !1,\n autoBind: !0,\n autoScroll: !1,\n loadOnDemand: !0,\n template: \"\",\n dataTextField: null,\n size: \"medium\"\n },\n _accessors: function () {\n var e,\n t,\n n,\n i = this.options,\n a = this.element;\n for (e in G) t = i[G[e]], n = a.attr(s.attr(e + \"-field\")), !t && n && (t = n), t || (t = e), p(t) || (t = [t]), i[G[e]] = t;\n },\n _fieldAccessor: function (t) {\n var n = this.options[G[t]],\n i = n.length,\n a = \"(function(item) {\";\n return 0 === i ? a += \"return item['\" + t + \"'];\" : (a += \"var levels = [\" + e.map(n, function (e) {\n return \"function(d){ return \" + s.expr(e) + \"}\";\n }).join(\",\") + \"];\", a += \"return levels[Math.min(item.level(), \" + i + \"-1)](item)\"), a += \"})\";\n },\n setOptions: function (e) {\n h.fn.setOptions.call(this, e), this._animation(), this._dragging(), this._templates();\n },\n _trigger: function (e, t) {\n return this.trigger(e, {\n node: t.closest(O)[0]\n });\n },\n _setChecked: function (e, t) {\n if (e && s.isFunction(e.view)) for (var n = 0, i = e.view(); n < i.length; n++) !1 !== i[n].enabled && this._setCheckedValue(i[n], t), i[n].children && this._setChecked(i[n].children, t);\n },\n _setCheckedValue: function (e, t) {\n e.checked = t;\n },\n _setIndeterminate: function (e) {\n var t,\n n,\n a,\n r = i(e),\n o = !0;\n if (r.length && (n = (t = Q(r.children())).length)) {\n if (n > 1) {\n for (a = 1; a < n; a++) if (t[a].checked != t[a - 1].checked || t[a].indeterminate || t[a - 1].indeterminate) {\n o = !1;\n break;\n }\n } else o = !t[0].indeterminate;\n return e.attr(B, o ? t[0].checked : \"mixed\"), Q(e).data(C, !o).prop(C, !o).prop(x, o && t[0].checked);\n }\n },\n updateIndeterminate: function (e) {\n e = e || this.wrapper;\n var t,\n n,\n a,\n r = i(e).children();\n if (r.length) {\n for (t = 0; t < r.length; t++) this.updateIndeterminate(r.eq(t));\n if (e.is(\".k-treeview\")) return;\n n = this._setIndeterminate(e), a = this.dataItem(e), n && n.prop(x) ? a.checked = !0 : a && delete a.checked;\n }\n },\n _bubbleIndeterminate: function (e, t) {\n if (e.length) {\n t || this.updateIndeterminate(e);\n var n,\n i = this.parent(e);\n i.length && (this._setIndeterminate(i), n = i.children(\"div\").find(\".k-checkbox-wrapper input[type=checkbox]\"), this._skip = !0, !1 === n.prop(C) ? this.dataItem(i).set(x, n.prop(x)) : this.dataItem(i).set(x, !1), this._skip = !1, this._bubbleIndeterminate(i, !0));\n }\n },\n _checkboxChange: function (t) {\n var n = e(t.target),\n i = n.prop(x),\n a = n.closest(O),\n r = this.dataItem(a);\n this._preventChange || (r.checked != i && (r.set(x, i), a.attr(B, i), this._trigger(b, a)), n.is(\":focus\") && (this._trigger(k, a), this.focus()));\n },\n _toggleButtonClick: function (t) {\n var n = e(t.currentTarget).closest(O);\n n.is(\"[aria-disabled='true']\") || this.toggle(n);\n },\n _mousedown: function (t) {\n var n = this,\n i = e(t.currentTarget),\n a = e(t.currentTarget).closest(O),\n r = s.support.browser;\n a.is(\"[aria-disabled='true']\") || ((r.msie || r.edge) && i.is(\":checkbox\") && (i.prop(C) ? (n._preventChange = !1, i.prop(x, !i.prop(x)), i.trigger(w), i.on(P + g, function (e) {\n e.preventDefault();\n }), n._preventChange = !0) : (i.off(P + g), n._preventChange = !1)), n._clickTarget = a, n.current(a));\n },\n _focusable: function (e) {\n return e && e.length && e.is(\":visible\") && !e.find(\".k-in\").first().hasClass(q);\n },\n _focus: function () {\n var t = this.select(),\n n = this._clickTarget;\n s.support.touch || (n && n.length && (t = n), this._focusable(t) || (t = this.current()), this._focusable(t) || (t = this._nextVisible(e())), this.current(t));\n },\n focus: function () {\n var e,\n t = this.wrapper,\n n = t[0],\n i = [],\n a = [],\n r = document.documentElement;\n do {\n (n = n.parentNode).scrollHeight > n.clientHeight && (i.push(n), a.push(n.scrollTop));\n } while (n != r);\n for (s.focusElement(t), e = 0; e < i.length; e++) i[e].scrollTop = a[e];\n },\n _blur: function () {\n this.current().find(\".k-in\").first().removeClass(\"k-focus\");\n },\n _enabled: function (e) {\n return !e.children(\"div\").children(\".k-in\").hasClass(q);\n },\n parent: function (t) {\n var n,\n i,\n a = /\\bk-treeview\\b(?!-)/,\n r = /\\bk-item\\b/;\n typeof t == M && (t = this.element.find(t)), K(t) || (t = t[0]), i = r.test(t.className);\n do {\n t = t.parentNode, r.test(t.className) && (i ? n = t : i = !0);\n } while (!a.test(t.className) && !n);\n return e(n);\n },\n _nextVisible: function (e) {\n var t,\n n = this,\n a = n._expanded(e);\n function r(e) {\n for (; e.length && !e.next().length;) e = n.parent(e);\n return e.next().length ? e.next() : e;\n }\n return e.length && e.is(\":visible\") ? a && (t = i(e).children().first()).length || (t = r(e)) : t = n.root.children().eq(0), t;\n },\n _previousVisible: function (e) {\n var t,\n n,\n a = this;\n if (!e.length || e.prev().length) for (n = e.length ? e.prev() : a.root.children().last(); a._expanded(n) && (t = i(n).children().last()).length;) n = t;else n = a.parent(e) || e;\n return n;\n },\n _keydown: function (n) {\n var i,\n a = this,\n r = n.keyCode,\n o = a.current(),\n l = a._expanded(o),\n d = o.find(\".k-checkbox-wrapper\").first().find(\":checkbox\"),\n u = s.support.isRtl(a.element);\n n.target == n.currentTarget && (!u && r == m.RIGHT || u && r == m.LEFT ? l ? i = a._nextVisible(o) : o.find(\".k-in\").first().hasClass(q) || a.expand(o) : !u && r == m.LEFT || u && r == m.RIGHT ? l && !o.find(\".k-in\").first().hasClass(q) ? a.collapse(o) : (i = a.parent(o), a._enabled(i) || (i = t)) : r == m.DOWN ? i = a._nextVisible(o) : r == m.UP ? i = a._previousVisible(o) : r == m.HOME ? i = a._nextVisible(e()) : r == m.END ? i = a._previousVisible(e()) : r != m.ENTER || o.find(\".k-in\").first().hasClass(q) ? r == m.SPACEBAR && d.length && (o.find(\".k-in\").first().hasClass(q) || (d.prop(x, !d.prop(x)).data(C, !1).prop(C, !1), a._checkboxChange({\n target: d\n })), i = o) : o.find(\".k-in\").first().hasClass(\"k-selected\") || a._trigger(_, o) || a.select(o), i && (n.preventDefault(), o[0] != i[0] && (a._trigger(k, i), a.current(i))));\n },\n _keypress: function (e) {\n var t,\n n = this,\n i = n.current().get(0),\n a = e.key;\n 1 === a.length && (n._match || (n._match = \"\"), n._match += a, clearTimeout(n._matchTimer), n._matchTimer = setTimeout(function () {\n n._match = \"\";\n }, 300), (t = i && n._matchNextByText(Array.prototype.indexOf.call(n.element.find(\".k-item\"), i), n._match)).length || (t = n._matchNextByText(-1, n._match)), t.get(0) && t.get(0) !== i && (n._trigger(k, t), n.current(t)));\n },\n _matchNextByText: function (t, n) {\n return this.element.find(\".k-in\").filter(function (i, a) {\n return i > t && e(a).is(\":visible\") && 0 === e(a).text().toLowerCase().indexOf(n);\n }).eq(0).closest(O);\n },\n _click: function (t) {\n var n = e(t.currentTarget),\n i = a(n.closest(O)),\n r = n.attr(\"href\");\n (r ? \"#\" == r || r.indexOf(\"#\" + this.element.id + \"-\") >= 0 : i.length && !i.children().length) && t.preventDefault(), n.hasClass(\".k-selected\") || this._trigger(_, n) || this.select(n);\n },\n _wrapper: function () {\n var e,\n t,\n n = this,\n i = n.element;\n i.is(\"ul\") ? (e = i.wrap(\"
      \").parent(), t = i) : t = (e = i).children(\"ul\").eq(0), n.wrapper = e.addClass(\"k-treeview\"), n.root = t;\n },\n _getSelectedNode: function () {\n return this.element.find(\".k-selected\").closest(O);\n },\n _group: function (e) {\n var t = this,\n n = e.hasClass(R),\n i = {\n firstLevel: n,\n expanded: n || t._expanded(e)\n },\n a = e.children(\"ul\");\n a.addClass(t.templates.groupCssClass(i)).css(\"display\", i.expanded ? \"\" : \"none\"), n || a.attr(\"role\", \"group\"), t._nodes(a, i);\n },\n _nodes: function (t, n) {\n var i,\n a = this,\n r = t.children(\"li\");\n n = u({\n length: r.length\n }, n), r.each(function (t, r) {\n r = e(r), i = {\n index: t,\n expanded: a._expanded(r)\n }, J(r), a._updateNodeClasses(r, n, i), a._group(r);\n });\n },\n _checkboxes: function () {\n var t,\n n,\n i = this.options,\n a = i.checkboxes;\n a && (n = \"\", t = (t = s.html.renderCheckBox(e(n), e.extend({}, i, {\n rounded: \"medium\"\n }))).replace(/(]*)/, \"$1 #= (item.enabled === false) ? 'disabled' : '' # #= item.checked ? 'checked' : '' #\"), typeof (a = u({\n template: t\n }, i.checkboxes)).template == M && (a.template = c(a.template)), i.checkboxes = a);\n },\n _updateNodeClasses: function (e, t, n) {\n var i = e.children(\"div\"),\n a = e.children(\"ul\"),\n r = this.templates;\n if (!e.hasClass(\"k-treeview\")) {\n (n = n || {}).expanded = typeof n.expanded != H ? n.expanded : this._expanded(e), n.index = typeof n.index != H ? n.index : e.index(), n.enabled = typeof n.enabled != H ? n.enabled : !i.children(\".k-in\").hasClass(\"k-disabled\"), (t = t || {}).firstLevel = typeof t.firstLevel != H ? t.firstLevel : e.parent().parent().hasClass(R), t.length = typeof t.length != H ? t.length : e.parent().children().length, e.removeClass(\"k-first k-last\").addClass(r.wrapperCssClass(t, n)), i.removeClass(\"k-treeview-top k-treeview-mid k-treeview-bot\").addClass(r.cssClass(t, n));\n var o = i.children(\".k-in\"),\n s = o[0] && \"a\" == o[0].nodeName.toLowerCase();\n o.removeClass(\"k-in k-link k-disabled\").addClass(r.textClass(n, s)), (a.length || \"true\" == e.attr(\"data-hasChildren\")) && (i.find(\".k-treeview-toggle > .k-icon\").removeClass(\"k-i-expand k-i-collapse\").addClass(r.toggleButtonClass(n)), a.addClass(\"k-group k-treeview-group\"));\n }\n },\n _processNodes: function (t, n) {\n for (var i = this.element.find(t), a = 0; a < i.length; a++) n.call(this, a, e(i[a]).closest(O));\n },\n dataItem: function (t) {\n var n = e(t).closest(O).attr(s.attr(\"uid\")),\n i = this.dataSource;\n return i && i.getByUid(n);\n },\n _dataItem: function (t) {\n var n = e(t).closest(O).attr(s.attr(\"uid\"));\n return this.dataSource && this._dataSourceUids[n];\n },\n _insertNode: function (t, n, a, r, o) {\n var l,\n d,\n u,\n c,\n p,\n h,\n f = this,\n m = i(a),\n g = m.children().length + 1,\n v = {\n firstLevel: a.hasClass(R),\n expanded: !o,\n length: g\n },\n _ = \"\",\n b = function (e, t) {\n e.appendTo(t);\n };\n for (u = 0; u < t.length; u++) (c = t[u]).index = n + u, _ += f._renderItem({\n group: v,\n item: c\n });\n if ((d = e(_)).length) {\n for (f.angular(\"compile\", function () {\n return {\n elements: d.get(),\n data: t.map(function (e) {\n return {\n dataItem: e\n };\n })\n };\n }), m.length || (m = e(f._renderGroup({\n group: v\n })).appendTo(a), a.attr(U, !0)), r(d, m), a.hasClass(\"k-item\") && (J(a), f._updateNodeClasses(a, v, {\n expanded: !o\n })), p = d.prev().first(), h = d.next().last(), f._updateNodeClasses(p, {}, {\n expanded: \"true\" == p.attr(s.attr(\"expanded\"))\n }), f._updateNodeClasses(h, {}, {\n expanded: \"true\" == h.attr(s.attr(\"expanded\"))\n }), u = 0; u < t.length; u++) (c = t[u]).hasChildren && (l = c.children.data()).length && f._insertNode(l, c.index, d.eq(u), b, !c.expanded);\n return d;\n }\n },\n _updateNodes: function (t, n) {\n var i,\n r,\n o,\n d,\n u,\n c,\n p = this,\n h = {\n treeview: p.options,\n item: d\n },\n f = \"expanded\" != n && \"checked\" != n;\n function m(e, t) {\n e.is(\".k-group\") && e.find(\".k-item:not([aria-disabled])\").attr(B, t), e.find(\".k-checkbox-wrapper input[type=checkbox]:not([disabled])\").prop(x, t).data(C, !1).prop(C, !1);\n }\n if (\"selected\" == n) d = t[0], (r = p.findByUid(d.uid)).find(\".k-in\").first().removeClass(\"k-hover\").toggleClass(\"k-selected\", d[n]).end(), d[n] && p.current(r), r.attr(L, !!d[n]);else {\n var g = e.map(t, function (e) {\n return p.findByUid(e.uid).children(\"div\");\n });\n for (f && p.angular(\"cleanup\", function () {\n return {\n elements: g\n };\n }), i = 0; i < t.length; i++) h.item = d = t[i], r = (o = g[i]).parent(), f && (s.unbind && s.unbind(o), o.children(\".k-in\").html(p.templates.itemContent(h))), n == x ? (m(o, u = d[n]), r.attr(B, u), p.options.checkboxes.checkChildren && (m(r.children(\".k-group\"), u), p._setChecked(d.children, u), p._bubbleIndeterminate(r))) : \"expanded\" == n ? p._toggle(r, d, d[n]) : \"enabled\" == n && (r.find(\".k-checkbox-wrapper input[type=checkbox]\").prop(\"disabled\", !d[n]), c = !a(r).is(\":visible\"), r.removeAttr(V), d[n] || (d.selected && d.set(\"selected\", !1), d.expanded && d.set(\"expanded\", !1), c = !0, r.attr(L, !1).attr(V, !0)), p._updateNodeClasses(r, {}, {\n enabled: d[n],\n expanded: !c\n })), o.length && this.trigger(\"itemChange\", {\n item: o,\n data: d,\n ns: l\n });\n f && p.angular(\"compile\", function () {\n return {\n elements: g,\n data: e.map(t, function (e) {\n return [{\n dataItem: e\n }];\n })\n };\n });\n }\n },\n _appendItems: function (e, t, n) {\n var a = i(n).children(),\n r = !this._expanded(n);\n if (this.element === n) {\n var o = this.dataSource.data(),\n s = this.dataSource.view(),\n l = s.length < o.length ? s : o;\n e = l.indexOf(t[0]);\n } else t.length && (e = t[0].parent().indexOf(t[0]));\n typeof e == H && (e = a.length), this._insertNode(t, e, n, function (t, n) {\n e >= a.length ? t.appendTo(n) : t.insertBefore(a.eq(e));\n }, r), r || (this._updateNodeClasses(n, {}, {\n expanded: !r\n }), i(n).css(\"display\", \"block\"));\n },\n _refreshChildren: function (e, t, n) {\n var a,\n r,\n o,\n s = this.options,\n d = s.loadOnDemand,\n u = s.checkboxes && s.checkboxes.checkChildren;\n if (i(e).empty(), t.length) for (this._appendItems(n, t, e), r = i(e).children(), d && u && this._bubbleIndeterminate(r.last()), a = 0; a < r.length; a++) o = r.eq(a), this.trigger(\"itemChange\", {\n item: o.children(\"div\"),\n data: t[a],\n ns: l\n });else J(e);\n },\n _refreshRoot: function (t) {\n var n = this._renderGroup({\n items: t,\n group: {\n firstLevel: !0,\n expanded: !0\n }\n });\n if (this.root.length && this.root[0].parentElement) {\n this._angularItems(\"cleanup\");\n var i = e(n);\n this.root.attr(\"class\", i.attr(\"class\")).html(i.html());\n } else this.root = this.wrapper.html(n).children(\"ul\");\n for (var a = this.root.children(\".k-item\"), r = 0; r < t.length; r++) this.trigger(\"itemChange\", {\n item: a.eq(r),\n data: t[r],\n ns: l\n });\n this._angularItems(\"compile\");\n },\n refresh: function (e) {\n var n,\n i = e.node,\n a = e.action,\n r = e.items,\n o = this.wrapper,\n s = this.options,\n l = s.loadOnDemand,\n d = s.checkboxes && s.checkboxes.checkChildren;\n if (!this._skip) {\n for (n = 0; n < r.length; n++) this._dataSourceUids[r[n].uid] = r[n];\n if (e.field) {\n if (!r[0] || !r[0].level) return;\n return this._updateNodes(r, e.field);\n }\n if (i && (o = this.findByUid(i.uid), this._progress(o, !1)), d && \"remove\" != a) {\n var u = !1;\n for (n = 0; n < r.length; n++) if (\"checked\" in r[n]) {\n u = !0;\n break;\n }\n if (!u && i && i.checked) for (n = 0; n < r.length; n++) r[n].checked = !0;\n }\n if (\"add\" == a ? this._appendItems(e.index, r, o) : \"remove\" == a ? this._remove(this.findByUid(r[0].uid), !1) : \"itemchange\" == a ? this._updateNodes(r) : \"itemloaded\" == a ? this._refreshChildren(o, r, e.index) : (this._refreshRoot(r), this.element.attr(j, !1)), \"remove\" != a) for (n = 0; n < r.length; n++) (!l || r[n].expanded || r[n]._loaded) && r[n].load();\n this.wrapper.find(\">ul\").attr(\"role\", \"none\"), this.trigger(E, {\n node: i ? o : t\n }), this.dataSource.filter() && this.options.checkboxes.checkChildren && this.updateIndeterminate(o);\n }\n },\n _error: function (e) {\n var t = e.node && this.findByUid(e.node.uid),\n n = this.templates.retry({\n messages: this.options.messages\n });\n t ? (this._progress(t, !1), this._expanded(t, !1), r(t).addClass(\"k-i-reload\"), e.node.loaded(!1)) : (this._progress(!1), this.dataSource.data([]), this.element.html(n));\n },\n _retryRequest: function (e) {\n e.preventDefault(), this.dataSource.fetch(this._attemptLoadCompleted.bind(this));\n },\n expand: function (e) {\n this._processNodes(e, function (e, t) {\n this.toggle(t, !0);\n });\n },\n collapse: function (e) {\n this._processNodes(e, function (e, t) {\n this.toggle(t, !1);\n });\n },\n enable: function (e, t) {\n \"boolean\" == typeof e ? (t = e, e = this.items()) : t = 2 != arguments.length || !!t, this._processNodes(e, function (e, n) {\n this.dataItem(n).set(\"enabled\", t);\n });\n },\n current: function (t) {\n var n = this,\n i = n._current,\n a = n.element;\n return arguments.length > 0 && t && t.length ? (i && i.find(\".k-in\").first().removeClass(\"k-focus\"), (i = n._current = e(t, a).closest(O)).find(\".k-in\").first().addClass(\"k-focus\"), void n._updateActiveDescendant()) : (i || (i = n._nextVisible(e())), i);\n },\n _updateActiveDescendant: function () {\n var e = this._current,\n t = e[0].id || this._ariaId,\n n = this.element.find(\"#\" + this._ariaId);\n n.length > 0 && n.removeAttr(\"id\"), this.wrapper.removeAttr(W), e.attr(\"id\", t), this.wrapper.attr(W, t);\n },\n select: function (t) {\n var n = this,\n i = n.element;\n if (!arguments.length) return i.find(\".k-selected\").closest(O);\n t = e(t, i).closest(O), i.find(\".k-selected\").each(function () {\n var t = n.dataItem(this);\n t ? (t.set(\"selected\", !1), delete t.selected) : e(this).removeClass(\"k-selected\");\n }), t.length && (n.dataItem(t).set(\"selected\", !0), n._clickTarget = t), n.trigger(w);\n },\n _toggle: function (e, t, n) {\n var i,\n r = this.options,\n o = a(e),\n s = n ? \"expand\" : \"collapse\";\n o.data(\"animating\") || (i = t && t.loaded(), n && !i ? (r.loadOnDemand && this._progress(e, !0), o.remove(), t.load()) : (this._updateNodeClasses(e, {}, {\n expanded: n\n }), n || o.css(\"height\", o.height()).css(\"height\"), o.kendoStop(!0, !0).kendoAnimate(u({\n reset: !0\n }, r.animation[s], {\n complete: function () {\n n && o.css(\"height\", \"\");\n }\n }))));\n },\n toggle: function (t, n) {\n t = e(t), r(t).is(\".k-i-expand, .k-i-collapse\") && (1 == arguments.length && (n = !this._expanded(t)), this._expanded(t, n));\n },\n destroy: function () {\n var e = this;\n h.fn.destroy.call(e), e.wrapper.off(g), e.wrapper.find(\".k-checkbox-wrapper :checkbox\").off(g), e._clickHandler = null, e._unbindDataSource(), e.dragging && e.dragging.destroy(), e._dataSourceUids = {}, s.destroy(e.element), e.root = e.wrapper = e.element = null;\n },\n _expanded: function (e, t, n) {\n var i,\n r = s.attr(\"expanded\"),\n o = t,\n l = o ? \"expand\" : \"collapse\";\n if (1 == arguments.length) return i = this._dataItem(e), \"true\" === e.attr(r) || i && i.expanded;\n i = this.dataItem(e), a(e).data(\"animating\") || !n && this._trigger(l, e) || (o ? (e.attr(r, \"true\"), e.attr(U, \"true\")) : (e.removeAttr(r), e.attr(U, \"false\")), i && (i.set(\"expanded\", o), o = i.expanded));\n },\n _progress: function (e, t) {\n var n = this.element,\n i = this.templates.loading({\n messages: this.options.messages\n });\n 1 == arguments.length ? ((t = e) ? n.html(i) : n.empty(), n.attr(j, t)) : (r(e).toggleClass(\"k-i-loading\", t).removeClass(\"k-i-reload\"), e.attr(j, t));\n },\n text: function (e, t) {\n var n = this.dataItem(e),\n i = this.options[G.text],\n a = n.level(),\n r = i.length,\n o = i[Math.min(a, r - 1)];\n if (!t) return n[o];\n n.set(o, t);\n },\n _objectOrSelf: function (t) {\n return e(t).closest(\"[data-role=treeview]\").data(\"kendoTreeView\") || this;\n },\n _dataSourceMove: function (t, n, i, a) {\n var r,\n o = this._objectOrSelf(i || n),\n s = o.dataSource,\n l = e.Deferred().resolve().promise();\n return i && i[0] != o.element[0] && ((r = o.dataItem(i)).loaded() || (o._progress(i, !0), l = r.load()), i != this.root && ((s = r.children) && s instanceof f || (r._initChildren(), r.loaded(!0), s = r.children))), t = this._toObservableData(t), a.call(o, s, t, l);\n },\n _toObservableData: function (t) {\n var n,\n i,\n a,\n r = t;\n return ((a = t) instanceof s.jQuery || window.jQuery && a instanceof window.jQuery || K(t)) && (n = this._objectOrSelf(t).dataSource, i = e(t).attr(s.attr(\"uid\")), (r = n.getByUid(i)) && (r = n.remove(r))), r;\n },\n _insert: function (e, t, n) {\n t instanceof s.data.ObservableArray ? t = t.toJSON() : p(t) || (t = [t]);\n var i = e.parent();\n return i && i._initChildren && (i.hasChildren = !0, i._initChildren()), e.splice.apply(e, [n, 0].concat(t)), this.findByUid(e[n].uid);\n },\n insertAfter: X(1),\n insertBefore: X(0),\n append: function (t, n, a) {\n var r = this.root;\n if (!(n && t instanceof jQuery && n[0] === t[0])) return (n = n && n.length ? n : null) && (r = i(n)), this._dataSourceMove(t, r, n, function (t, i, r) {\n var o,\n s = this;\n return r.done(function () {\n o = function () {\n n && s._expanded(n, !0, !0);\n var e = t.data(),\n a = Math.max(e.length, 0);\n return s._insert(e, i, a);\n }(), (a = a || e.noop)(o);\n }), o || null;\n });\n },\n _remove: function (t, n) {\n var i,\n a,\n r,\n o = this;\n return (t = e(t, o.element)).attr(\"id\") === o.element.attr(W) && o.element.removeAttr(W), this.angular(\"cleanup\", function () {\n return {\n elements: t.get()\n };\n }), i = t.parent().parent(), a = t.prev(), r = t.next(), t[n ? \"detach\" : \"remove\"](), i.hasClass(\"k-item\") && (J(i), o._updateNodeClasses(i)), o._updateNodeClasses(a), o._updateNodeClasses(r), t;\n },\n remove: function (e) {\n var t = this.dataItem(e);\n t && this.dataSource.remove(t);\n },\n detach: function (e) {\n return this._remove(e, !0);\n },\n findByText: function (t) {\n return e(this.element).find(\".k-in\").filter(function (n, i) {\n return e(i).text() == t;\n }).closest(O);\n },\n findByUid: function (t) {\n for (var n, i = this.element.find(\".k-item\"), a = s.attr(\"uid\"), r = 0; r < i.length; r++) if (i[r].getAttribute(a) == t) {\n n = i[r];\n break;\n }\n return e(n);\n },\n expandPath: function (t, n) {\n var i = this,\n a = t.slice(0),\n r = n || e.noop;\n function o(t) {\n var n,\n a = e.Deferred(),\n r = i.dataSource.get(t),\n o = s.attr(\"expanded\");\n return r ? (n = i.findByUid(r.uid), r.loaded() ? (r.set(\"expanded\", !0), n.attr(o, !0), n.attr(U, !0), a.resolve()) : (i._progress(n, !0), r.load().then(function () {\n r.set(\"expanded\", !0), n.attr(o, !0), n.attr(U, !0), a.resolve();\n }))) : a.resolve(), a.promise();\n }\n o(a[0]).then(function e() {\n a.shift(), a.length ? o(a[0]).then(e) : r.call(i);\n });\n },\n _parentIds: function (e) {\n for (var t = e && e.parentNode(), n = []; t && t.parentNode;) n.unshift(t.id), t = t.parentNode();\n return n;\n },\n expandTo: function (e) {\n e instanceof s.data.Node || (e = this.dataSource.get(e));\n var t = this._parentIds(e);\n this.expandPath(t);\n },\n _renderItem: function (e) {\n return e.group || (e.group = {}), e.treeview = this.options, e.r = this.templates, this.templates.item(e);\n },\n _renderGroup: function (e) {\n var t = this;\n return e.renderItems = function (e) {\n var n = \"\",\n i = 0,\n a = e.items,\n r = a ? a.length : 0,\n o = e.group;\n for (o.length = r; i < r; i++) e.group = o, e.item = a[i], e.item.index = i, n += t._renderItem(e);\n return n;\n }, e.r = t.templates, t.templates.group(e);\n }\n }), s.cssProperties.registerPrefix(\"TreeView\", \"k-treeview-\"), l.plugin(n);\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui.Widget,\n a = Math.abs,\n r = i.extend({\n init: function (e, t) {\n var a = this;\n function r(e) {\n return function (t) {\n a._triggerTouch(e, t);\n };\n }\n function o(e) {\n return function (t) {\n a.trigger(e, {\n touches: t.touches,\n distance: t.distance,\n center: t.center,\n event: t.event\n });\n };\n }\n i.fn.init.call(a, e, t), t = a.options, e = a.element, a.wrapper = e, a.events = new n.UserEvents(e, {\n filter: t.filter,\n surface: t.surface,\n minHold: t.minHold,\n multiTouch: t.multiTouch,\n allowSelection: !0,\n fastTap: t.fastTap,\n press: r(\"touchstart\"),\n hold: r(\"hold\"),\n tap: a._tap.bind(a),\n gesturestart: o(\"gesturestart\"),\n gesturechange: o(\"gesturechange\"),\n gestureend: o(\"gestureend\")\n }), t.enableSwipe ? (a.events.bind(\"start\", a._swipestart.bind(a)), a.events.bind(\"move\", a._swipemove.bind(a))) : (a.events.bind(\"start\", a._dragstart.bind(a)), a.events.bind(\"move\", r(\"drag\")), a.events.bind(\"end\", r(\"dragend\"))), n.notify(a);\n },\n events: [\"touchstart\", \"dragstart\", \"drag\", \"dragend\", \"tap\", \"doubletap\", \"hold\", \"swipe\", \"gesturestart\", \"gesturechange\", \"gestureend\"],\n options: {\n name: \"Touch\",\n surface: null,\n global: !1,\n fastTap: !1,\n filter: null,\n multiTouch: !1,\n enableSwipe: !1,\n minXDelta: 30,\n maxYDelta: 20,\n maxDuration: 1e3,\n minHold: 800,\n doubleTapTimeout: 800\n },\n cancel: function () {\n this.events.cancel();\n },\n destroy: function () {\n i.fn.destroy.call(this), this.events.destroy();\n },\n _triggerTouch: function (e, t) {\n this.trigger(e, {\n touch: t.touch,\n event: t.event\n }) && t.preventDefault();\n },\n _tap: function (e) {\n var t = this,\n i = t.lastTap,\n a = e.touch;\n i && a.endTime - i.endTime < t.options.doubleTapTimeout && n.touchDelta(a, i).distance < 20 ? (t._triggerTouch(\"doubletap\", e), t.lastTap = null) : (t._triggerTouch(\"tap\", e), t.lastTap = a);\n },\n _dragstart: function (e) {\n this._triggerTouch(\"dragstart\", e);\n },\n _swipestart: function (e) {\n 2 * a(e.x.velocity) >= a(e.y.velocity) && e.sender.capture();\n },\n _swipemove: function (e) {\n var t = this.options,\n n = e.touch,\n i = e.event.timeStamp - n.startTime,\n r = n.x.initialDelta > 0 ? \"right\" : \"left\";\n a(n.x.initialDelta) >= t.minXDelta && a(n.y.initialDelta) < t.maxYDelta && i < t.maxDuration && (this.trigger(\"swipe\", {\n direction: r,\n touch: e.touch\n }), n.cancel());\n }\n });\n n.ui.plugin(r);\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui.Widget,\n a = \".kendoButtonMenu\",\n r = n.ui,\n o = n.keys,\n s = e.extend,\n l = \".\",\n d = \"id\",\n u = \"next\",\n c = \"k-disabled\",\n p = \"aria-disabled\",\n h = \"tabindex\",\n f = \"click\",\n m = \"menuClick\",\n g = \"menuOpen\",\n v = \"menuClose\",\n _ = \"keydown\",\n b = \"focus\",\n k = \"k-menu-popup\",\n w = \"k-group k-menu-group k-reset\",\n y = \"k-item k-menu-item\",\n x = \"k-menu-item\",\n C = \"k-link k-menu-link\",\n T = {\n text: null,\n icon: null,\n url: null,\n attributes: null,\n enabled: !0,\n hidden: !1,\n id: null,\n imageUrl: null,\n spriteCssClass: null\n },\n S = '#if(imageUrl){#\"icon\"#}#',\n I = '#if(spriteCssClass){##}#',\n D = '#if(icon){##}#',\n E = '#if(text){##:text##}#',\n A = '' + S + I + D + E + \"\",\n F = '' + S + I + D + E + \"\";\n function z(t, n) {\n var i = n === u ? e.fn.next : e.fn.prev,\n a = n === u ? e.fn.first : e.fn.last,\n r = i.call(t),\n o = \":kendoFocusable\";\n return r.length || (r = a.call(t.parent().find(l + x))), r.is(o) || !r.length ? r : r.find(o).length ? a.call(r.find(o)) : z(r, n);\n }\n var P = i.extend({\n init: function (e, t) {\n var n = this;\n i.fn.init.call(n, e, t), n.mainButton = t.mainButton, n._clickHandlers = {}, n._renderList(), n._initPopup(), n._attachEvents(), n._applyCssClasses(n.list);\n },\n options: {\n name: \"ButtonMenu\",\n element: null,\n items: [],\n size: \"medium\"\n },\n events: [m, g, v],\n _renderList: function () {\n var t = this,\n i = t.options.items,\n a = t.element.addClass(k),\n r = t.mainButton.attr(d) || n.guid(),\n o = e('
        ').addClass(w);\n t.list = o.appendTo(a), t.list.attr(d, r + \"_buttonmenu\"), i.forEach(t._renderListItem.bind(t));\n },\n _renderListItem: function (t) {\n var i,\n a,\n r = this;\n i = (t = s({}, T, t, {\n enabled: t.enable && t.enabled\n })).id || n.guid(), a = e('
      • ' + r._renderItemButton(t) + \"
      • \"), t.click && (r._clickHandlers[i] = t.click), t.attributes && a.attr(t.attributes), t.data && n.isFunction(t.data) && a.data(t.data(t)), r.list.append(a), r.enable(t.enabled, a), r._hide(t.hidden, a);\n },\n _renderItemButton: function (e) {\n var t = this.options;\n return t.itemTemplate ? n.template(t.itemTemplate)(e) : e.url ? n.template(F)(e) : n.template(A)(e);\n },\n _initPopup: function () {\n var e = this,\n t = e.options;\n e._popup = new r.Popup(e.element, s({}, t.popup, {\n anchor: e.mainButton,\n isRtl: e._isRtl,\n toggleTarget: t.toggleTarget,\n copyAnchorStyles: !1,\n animation: t.animation,\n open: e._popupOpenHandler.bind(e),\n close: e._popupCloseHandler.bind(e),\n activate: e._popupExpandHandler.bind(e)\n }));\n },\n _popupOpenHandler: function (e) {\n this.trigger(g) ? e.preventDefault() : this.list.find(l + x).attr(h, 0);\n },\n _popupCloseHandler: function (e) {\n this.trigger(v) && e.preventDefault(), this.list.find(l + x).attr(h, -1);\n },\n _popupExpandHandler: function () {\n this.list.find(\":kendoFocusable\").first().trigger(b);\n },\n adjustPopupWidth: function (e) {\n this.element.addClass(\"k-split-wrapper\"), this.element.css({\n \"min-width\": e\n });\n },\n _attachEvents: function () {\n var e = this;\n e.list.on(f + a, l + x, e._click.bind(e)).on(_ + a, l + x, e.listItemKeydown.bind(e)), e.mainButton.on(_ + a, e._keydown.bind(e));\n },\n _keydown: function (t) {\n if (!e(t.target).is(\".k-disabled\") && !e(t.target).parents(\".k-disabled\").length) return t.altKey && t.keyCode === o.DOWN ? (this._popup.open(), void t.preventDefault()) : void 0;\n },\n listItemKeydown: function (t) {\n var n = this,\n i = e(t.target);\n t.preventDefault(), t.keyCode === o.ESC || t.keyCode === o.TAB || t.altKey && t.keyCode === o.UP ? (n._popup.close(), n.mainButton.trigger(b)) : t.keyCode === o.DOWN ? z(i, u).trigger(b) : t.keyCode === o.UP ? z(i, \"prev\").trigger(b) : i.is(\".k-disabled\") || t.keyCode !== o.SPACEBAR && t.keyCode !== o.ENTER ? t.keyCode === o.HOME ? n.list.find(\":kendoFocusable\").filter(l + x).first().trigger(b) : t.keyCode === o.END && n.list.find(\":kendoFocusable\").filter(l + x).last().trigger(b) : i.trigger(f);\n },\n _click: function (t) {\n var n = this,\n i = e(t.target).closest(l + x),\n a = i.attr(d);\n n._clickHandlers[a] && n._clickHandlers[a](t), n.trigger(m, {\n id: a,\n target: i,\n type: \"menu-click\",\n originalEvent: t\n });\n },\n toggle: function () {\n this._popup.toggle();\n },\n enable: function (e, t) {\n (t = t && t.length ? this.list.find(t) : this.items()).toggleClass(c, !e), e ? t.removeAttr(p) : t.attr(p, !e);\n },\n _hide: function (e, t) {\n (t = t && t.length ? this.list.find(t) : this.items()).toggleClass(\"k-hidden\", e);\n },\n hide: function (e) {\n this._hide(!0, e);\n },\n show: function (e) {\n this._hide(!1, e);\n },\n close: function () {\n this._popup.close();\n },\n items: function () {\n return this.list.children(l + x);\n },\n destroyPopup: function () {\n var e = this;\n e._popup && (e._popup.destroy(), e._popup = null, e.list.off(a), e.list.remove(), e.list = null);\n },\n destroy: function () {\n var e = this;\n delete e._clickHandlers, e.destroyPopup(), e.mainButton.off(a), i.fn.destroy.call(e);\n }\n });\n n.cssProperties.registerPrefix(\"ButtonMenu\", \"k-menu-group-\"), r.plugin(P);\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui.Widget,\n a = \".kendoSplitButton\",\n r = n.ui,\n o = e.extend,\n s = n.html,\n l = n._outerWidth,\n d = n.keys,\n u = \"id\",\n c = \"aria-disabled\",\n p = \"aria-label\",\n h = \"aria-expanded\",\n f = \"disabled\",\n m = \"k-disabled\",\n g = \"k-focus\",\n v = \"click\",\n _ = \"open\",\n b = \"close\",\n k = \"focus\",\n w = \"k-split-button k-button-group\",\n y = i.extend({\n init: function (t, a) {\n var r = this;\n a.enabled = !1 !== a.enabled && !e(t).prop(f), i.fn.init.call(r, t, a), r._wrapper(), r._renderButtons(), r._renderMenu(), r._enable(r.options.enabled), r._aria(), r._attachEvents(), n.notify(r), r._applyCssClasses();\n },\n options: {\n name: \"SplitButton\",\n enabled: !0,\n items: [],\n rounded: \"medium\",\n size: \"medium\",\n fillMode: \"solid\",\n themeColor: \"base\",\n icon: null,\n popup: null,\n arrowIcon: \"arrow-s\",\n messages: {\n labelSuffix: \"splitbutton\"\n }\n },\n events: [v, _, b],\n _wrapper: function () {\n var t = this,\n i = (t.element.attr(u) || n.guid()) + \"_wrapper\";\n t.wrapper = t.element.wrap('
        ').parent(\".k-split-button\"), t.arrowButton = e('').appendTo(t.wrapper);\n },\n _applyCssClasses: function () {\n this.wrapper.addClass(this._getAppearanceClasses());\n },\n _clearCssClasses: function () {\n this.wrapper.removeClass(this._getAppearanceClasses());\n },\n _getAppearanceClasses: function () {\n var e = this.__proto__.options.name;\n return n.cssProperties.getValidClass({\n widget: e,\n propName: \"rounded\",\n value: this.options.rounded\n });\n },\n _renderButtons: function () {\n this._mainButton(), this._arrowButton();\n },\n _mainButton: function () {\n var e = this,\n t = o({}, e.options, {\n type: e.element.attr(\"type\") || \"button\"\n });\n delete t.click, s.renderButton(e.element, t);\n },\n _arrowButton: function () {\n var e = this,\n t = o({}, e.options, {\n type: \"button\",\n icon: e.options.arrowIcon\n });\n delete t.text, delete t.imageUrl, delete t.click, s.renderButton(e.arrowButton, t);\n },\n _aria: function () {\n var e = this,\n t = e.element,\n n = e.menu;\n t.attr(\"aria-haspopup\", n ? \"menu\" : null), t.attr(h, !n && null), t.attr(\"aria-controls\", n ? n.list.attr(u) : null), t.attr(p) || t.attr(p, t.text() + \" \" + e.options.messages.labelSuffix);\n },\n _renderMenu: function () {\n var t = this,\n n = o({}, t.options),\n i = e(\"
        \");\n delete n.click, delete n.name, n.items.length && (t.menu = i.appendTo(t.wrapper).kendoButtonMenu(o({\n mainButton: t.element,\n toggleTarget: t.arrowButton,\n menuOpen: t.menuOpenHandler.bind(t),\n menuClose: t.menuCloseHandler.bind(t),\n menuClick: t._click.bind(t)\n }, n)).data(\"kendoButtonMenu\"));\n },\n menuOpenHandler: function (e) {\n var t = this,\n n = l(t.wrapper);\n t.trigger(_, {\n target: t.element\n }) ? e.preventDefault() : (e.sender.adjustPopupWidth(n), t.element.attr(h, !0));\n },\n menuCloseHandler: function (e) {\n var t = this;\n t.trigger(b, {\n target: t.element\n }) ? e.preventDefault() : (t.element.attr(h, !1), t.element.trigger(k));\n },\n _attachEvents: function () {\n var e = this;\n e.element.on(v + a, e._click.bind(e)), e.element.on(\"keydown\" + a, e._keydown.bind(e)), e.element.on(k + a, e._focus.bind(e)), e.element.on(\"blur\" + a, e._blur.bind(e));\n },\n _focus: function () {\n this.wrapper.addClass(g);\n },\n _blur: function () {\n this.wrapper.removeClass(g);\n },\n _click: function (t) {\n var n = e(t.target).closest(\".k-button\"),\n i = n.attr(u),\n a = t;\n \"menu-click\" === t.type && (i = t.id, n = t.target, a = t.originalEvent), this.menu.close(), this.trigger(v, {\n id: i,\n target: n,\n originalEvent: a\n });\n },\n _keydown: function (e) {\n !this.element.is(\".k-disabled\") || e.keyCode !== d.ENTER && e.keyCode !== d.SPACEBAR || e.preventDefault();\n },\n focus: function () {\n this.element.trigger(k);\n },\n _enable: function (e, t) {\n this.element.add(this.arrowButton).toggleClass(m, !e), e ? this.element.removeAttr(c) : this.element.attr(c, !e), t || this.element.attr(f, !e), this.arrowButton.attr(f, !e);\n },\n enable: function (e, t, n) {\n var i = this;\n undefined === e && (e = !0), t && t.length ? i.menu.enable(e, t) : (i.options.enabled = e, i._enable(e, n), i.menu.enable(e));\n },\n hide: function (e) {\n e && e.length && this.menu.hide(e);\n },\n show: function (e) {\n e && e.length && this.menu.show(e);\n },\n open: function () {\n this.menu._popup.open();\n },\n close: function () {\n this.menu._popup.close();\n },\n items: function () {\n return this.menu.items();\n },\n setOptions: function (e) {\n var t = this;\n i.fn.setOptions.call(t, e), (e.popup || e.items || e.size) && (t.menu.destroy(), t._renderMenu()), t._renderButtons(), t._aria();\n },\n destroy: function () {\n var e = this;\n e.menu.destroy(), e.element.off(a), i.fn.destroy.call(e);\n }\n });\n n.cssProperties.registerPrefix(\"SplitButton\", \"k-splitbutton-\"), n.cssProperties.registerValues(\"SplitButton\", [{\n prop: \"rounded\",\n values: n.cssProperties.roundedValues.concat([[\"full\", \"full\"]])\n }]), r.plugin(y);\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui.Widget,\n a = \".kendoDropDownButton\",\n r = n.ui,\n o = n.keys,\n s = e.extend,\n l = n.html,\n d = n._outerWidth,\n u = \"aria-disabled\",\n c = \"aria-label\",\n p = \"aria-expanded\",\n h = \"disabled\",\n f = \"k-disabled\",\n m = \"click\",\n g = \"open\",\n v = \"close\",\n _ = \"focus\",\n b = \"k-menu-button\",\n k = i.extend({\n init: function (t, a) {\n var r = this;\n a.enabled = !1 !== a.enabled && !e(t).prop(h), i.fn.init.call(r, t, a), r.wrapper = r.element, r._mainButton(), r._renderMenu(), r._enable(r.options.enabled), r._aria(), r._attachEvents(), n.notify(r), r._applyCssClasses();\n },\n options: {\n name: \"DropDownButton\",\n enabled: !0,\n items: [],\n rounded: \"medium\",\n size: \"medium\",\n fillMode: \"solid\",\n themeColor: \"base\",\n icon: null,\n popup: null,\n messages: {\n labelSuffix: \"dropdownbutton\"\n }\n },\n events: [m, g, v],\n _mainButton: function () {\n var e = this,\n t = s({}, e.options, {\n type: e.element.attr(\"type\") || \"button\"\n });\n delete t.click, e.element.addClass(b), l.renderButton(e.element, t);\n },\n _aria: function () {\n var e = this,\n t = e.element,\n n = e.menu;\n t.attr(\"aria-haspopup\", n ? \"menu\" : null), t.attr(p, !n && null), t.attr(\"aria-controls\", n ? n.list.attr(\"id\") : null), t.attr(c) || t.attr(c, t.text() + \" \" + e.options.messages.labelSuffix);\n },\n _renderMenu: function () {\n var t = this,\n n = s({}, t.options),\n i = e(\"
        \");\n delete n.click, delete n.name, n.items.length && (t.menu = i.appendTo(document.body).kendoButtonMenu(s({\n mainButton: t.element,\n toggleTarget: t.element,\n menuOpen: t.menuOpenHandler.bind(t),\n menuClose: t.menuCloseHandler.bind(t),\n menuClick: t._click.bind(t)\n }, n)).data(\"kendoButtonMenu\"));\n },\n menuOpenHandler: function (e) {\n var t = this,\n n = d(t.element);\n t.trigger(g, {\n target: t.element\n }) ? e.preventDefault() : (e.sender.adjustPopupWidth(n), t.element.attr(p, !0));\n },\n menuCloseHandler: function (e) {\n var t = this;\n t.trigger(v, {\n target: t.element\n }) ? e.preventDefault() : (t.element.attr(p, !1), t.element.trigger(_));\n },\n _attachEvents: function () {\n var e = this;\n e.element.on(\"keydown\" + a, e._keydown.bind(e));\n },\n _click: function (e) {\n var t = e.id,\n n = e.target,\n i = e.originalEvent;\n this.menu.close(), this.trigger(m, {\n id: t,\n target: n,\n originalEvent: i\n });\n },\n _keydown: function (e) {\n !this.element.is(\".k-disabled\") || e.keyCode !== o.ENTER && e.keyCode !== o.SPACEBAR || e.preventDefault();\n },\n focus: function () {\n this.element.trigger(_);\n },\n _enable: function (e, t) {\n this.element.toggleClass(f, !e), e ? this.element.removeAttr(u) : this.element.attr(u, !e), t || this.element.attr(h, !e);\n },\n enable: function (e, t, n) {\n var i = this;\n undefined === e && (e = !0), t && t.length ? i.menu.enable(e, t) : (i.options.enabled = e, i._enable(e, n), i.menu.enable(e));\n },\n hide: function (e) {\n e && e.length && this.menu.hide(e);\n },\n show: function (e) {\n e && e.length && this.menu.show(e);\n },\n open: function () {\n this.menu._popup.open();\n },\n close: function () {\n this.menu._popup.close();\n },\n items: function () {\n return this.menu.items();\n },\n setOptions: function (e) {\n var t = this;\n i.fn.setOptions.call(t, e), (e.popup || e.items || e.size) && (t.menu.destroy(), t._renderMenu()), t._mainButton(), t._aria();\n },\n destroy: function () {\n var e = this;\n e.menu.destroy(), e.element.off(a), i.fn.destroy.call(e);\n }\n });\n r.plugin(k);\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.Class,\n a = n.ui,\n r = a.Widget,\n o = n.isFunction,\n s = n.keys,\n l = n._outerWidth,\n d = \".kendoToolBar\",\n u = \"k-button\",\n c = \"k-overflow-button\",\n p = \"k-toggle-button\",\n h = \"k-button-group\",\n f = \"k-split-button\",\n m = \"k-menu-button\",\n g = \"k-separator\",\n v = \"k-spacer\",\n _ = \"k-selected\",\n b = \"k-disabled\",\n k = \"k-hidden\",\n w = \"k-force-hidden\",\n y = \"k-overflow-hidden\",\n x = \"k-overflow-anchor\",\n C = \"k-overflow-container\",\n T = \"k-toolbar-first-visible\",\n S = \"k-toolbar-last-visible\",\n I = \"k-split-button-arrow\",\n D = \"k-toolbar-item\",\n E = \"k-dropdownlist\",\n A = \"k-colorpicker\",\n F = \"k-input-button\",\n z = \"k-focus\",\n P = \"aria-disabled\",\n H = \"aria-label\",\n N = \"click\",\n R = \"toggle\",\n O = \"open\",\n M = \"close\",\n B = \"focus\",\n L = \"keydown\",\n V = \"spacer\",\n U = \"both\",\n W = \"primary\",\n j = \"role\",\n q = \"button\",\n G = \"splitButton\",\n K = \"dropDownButton\",\n $ = \"separator\",\n Y = \"overflow\",\n Q = \"next\",\n X = \"tabindex\",\n J = \"template\",\n Z = \"input\",\n ee = \"hidden\",\n te = \"group\",\n ne = \":kendoFocusable\",\n ie = \"overflowOpen\",\n ae = \"overflowClose\",\n re = \"never\",\n oe = \"auto\",\n se = \"_optionlist\",\n le = n.attr(\"uid\"),\n de = \" \",\n ue = \"\",\n ce = \"textItem\",\n pe = \".\",\n he = \",\";\n n.toolbar = {};\n var fe = {\n overflowAnchor: '
        ',\n overflowContainer: '
          '\n };\n n.toolbar.registerComponent = function (e, t, n) {\n fe[e] = {\n toolbar: t,\n overflow: n\n };\n };\n var me = n.Class.extend({\n addOverflowAttr: function () {\n this.element.attr(n.attr(Y), this.options.overflow || oe);\n },\n addUidAttr: function () {\n this.element.attr(le, this.options.uid);\n },\n addIdAttr: function () {\n this.options.id && this.element.attr(\"id\", this.options.id);\n },\n addOverflowIdAttr: function () {\n this.options.id && this.element.attr(\"id\", this.options.id + \"_overflow\");\n },\n attributes: function () {\n var e,\n t = this.options.attributes;\n t && (t.class && (e = t.class, this.element.addClass(e), delete t.class), this.element.attr(t), t.class = e);\n },\n show: function () {\n this.element.removeClass(k), this.element.removeClass(w), this.options.hidden = !1;\n },\n hide: function () {\n this.element.addClass(k), this.element.addClass(w), this.overflow && this.overflowHidden && this.overflowHidden(), this.options.hidden = !0;\n },\n remove: function () {\n this.element.remove();\n },\n enable: function (e) {\n e === t && (e = !0), this.element.toggleClass(b, !e), this.element.attr(P, !e), this.options.enable = e;\n },\n twin: function () {\n var t = this.element.attr(le);\n return this.overflow && this.options.splitContainerId ? e(\"#\" + this.options.splitContainerId).find(\"[\" + le + \"='\" + t + \"']\").data(this.options.type) : this.overflow ? this.toolbar.element.find(\"[\" + le + \"='\" + t + \"']\").data(this.options.type) : this.toolbar.options.resizable ? this.toolbar.popup.element.find(\"[\" + le + \"='\" + t + \"']\").data(this.options.type) : void 0;\n }\n });\n n.toolbar.Item = me;\n var ge = me.extend({\n init: function (t, n) {\n this.options = e.extend({}, this.options, t), this.toolbar = n;\n }\n });\n n.toolbar.BareItem = ge;\n var ve = me.extend({\n init: function (i, a) {\n var r = i.useButtonTag ? e(\"\") : e('');\n this.element = r, this.options = e.extend({}, this.options, i), this.toolbar = a, this.attributes(), i.primary && (this.options.themeColor = W), i.togglable && (r.addClass(p), this.toggle(i.selected)), i.url === t || i.useButtonTag || (r.attr(\"href\", i.url), i.mobile && r.attr(n.attr(j), q)), i.group && (r.attr(n.attr(te), i.group), this.group = this.toolbar.addToGroup(this, i.group)), !i.togglable && i.click && o(i.click) && (this.clickHandler = i.click), i.togglable && i.toggle && o(i.toggle) && (this.toggleHandler = i.toggle);\n },\n options: {\n showIcon: U,\n showText: U\n },\n toggle: function (e, t) {\n e = !!e, this.group && e ? this.group.select(this) : this.group || this.select(e), t && this.twin() && this.twin().toggle(e);\n },\n getParentGroup: function () {\n if (this.options.isChild) return this.element.closest(pe + h).data(\"buttonGroup\");\n }\n });\n n.toolbar.Button = ve;\n var _e = ve.extend({\n init: function (e, t) {\n ve.fn.init.call(this, e, t);\n var i = this.element;\n e = this.options, i.addClass(u), this.addIdAttr(), e.align && i.addClass(\"k-align-\" + e.align), !e.text || \"toolbar\" != e.showText && e.showText != U ? e.text && i.attr(H, e.text) : e.mobile ? i.html('' + e.text + \"\") : i.html(e.text), (e.icon || e.spriteCssClass || e.imageUrl) && \"toolbar\" !== e.showIcon && e.showIcon !== U && (e.icon = null, e.spriteCssClass = null, e.imageUrl = null), n.html.renderButton(i, e), this.addUidAttr(), this.addOverflowAttr(), this.enable(e.enable), e.hidden && this.hide(), this.element.data({\n type: q,\n button: this\n });\n },\n select: function (e) {\n e === t && (e = !1), this.options.togglable && this.element.attr(\"aria-pressed\", e), this.element.toggleClass(_, e), this.options.selected = e;\n }\n });\n n.toolbar.ToolBarButton = _e;\n var be = ve.extend({\n init: function (t, i) {\n this.overflow = !0, ve.fn.init.call(this, e.extend({}, t), i);\n var a = this.element;\n !(t = this.options).text || t.showText != Y && t.showText != U ? t.text && a.attr(H, t.text) : t.mobile ? a.html('' + t.text + \"\") : a.html(t.text), (t.icon || t.spriteCssClass || t.imageUrl) && t.showIcon !== Y && t.showIcon !== U && (t.icon = null, t.spriteCssClass = null, t.imageUrl = null), n.html.renderButton(a, t), t.isChild || this._wrap(), this.addOverflowIdAttr(), this.attributes(), this.addUidAttr(), this.addOverflowAttr(), this.enable(t.enable), a.addClass(\"k-overflow-button \" + u), t.hidden && this.hide(), t.togglable && this.toggle(t.selected), this.element.data({\n type: q,\n button: this\n });\n },\n _wrap: function () {\n this.element = this.element.wrap('
        • ').parent();\n },\n overflowHidden: function () {\n this.element.addClass(y);\n },\n select: function (e) {\n e === t && (e = !1), this.options.isChild ? this.element.toggleClass(_, e) : this.element.find(pe + u).toggleClass(_, e), this.options.selected = e;\n }\n });\n n.toolbar.OverflowButton = be, n.toolbar.registerComponent(q, _e, be);\n var ke = me.extend({\n createButtons: function (t) {\n for (var i = this.options, a = i.buttons || [], r = 0; r < a.length; r++) a[r].uid || (a[r].uid = n.guid()), new t(e.extend({\n mobile: i.mobile,\n isChild: !0,\n type: q\n }, a[r]), this.toolbar).element.appendTo(this.element);\n },\n refresh: function () {\n this.element.children().filter(\":not('.k-hidden')\").first().addClass(\"k-group-start\"), this.element.children().filter(\":not('.k-hidden')\").last().addClass(\"k-group-end\");\n }\n });\n n.toolbar.ButtonGroup = ke;\n var we = ke.extend({\n init: function (t, n) {\n var i = this.element = e(\"
          \");\n this.options = t, this.toolbar = n, this.addIdAttr(), t.align && i.addClass(\"k-align-\" + t.align), this.createButtons(_e), this.attributes(), this.addUidAttr(), this.addOverflowAttr(), this.refresh(), i.addClass(h), t.hidden && this.hide(), this.element.data({\n type: \"buttonGroup\",\n buttonGroup: this\n });\n }\n });\n n.toolbar.ToolBarButtonGroup = we;\n var ye = ke.extend({\n init: function (t, n) {\n var i = this.element = e(\"
        • \");\n this.options = t, this.toolbar = n, this.overflow = !0, this.addOverflowIdAttr(), this.createButtons(be), this.attributes(), this.addUidAttr(), this.addOverflowAttr(), this.refresh(), i.addClass((t.mobile ? ue : h) + de + \"k-overflow-group\"), this.element.data({\n type: \"buttonGroup\",\n buttonGroup: this\n });\n },\n overflowHidden: function () {\n this.element.addClass(y);\n }\n });\n n.toolbar.OverflowButtonGroup = ye, n.toolbar.registerComponent(\"buttonGroup\", we, ye);\n var xe = _e.extend({\n init: function (i, a) {\n var r;\n r = (i = this.options = e.extend({}, this.options, i)).url !== t ? e(n.template('#:text#')({\n href: i.url,\n text: i.text\n })) : e(n.template('#:text#')({\n text: i.text\n })), this.element = r, this.toolbar = a, i.click && o(i.click) && (this.clickHandler = i.click), i.togglable && i.toggle && o(i.toggle) && (this.toggleHandler = i.toggle), i.imageUrl ? e('\"icon\"').prependTo(r).attr(\"src\", i.imageUrl) : i.icon ? e(\"\").prependTo(r).attr(\"class\", \"k-icon k-i-\" + i.icon) : i.spriteCssClass && e('').prependTo(r).addClass(i.spriteCssClass), this.addIdAttr(), this.addUidAttr(), this.addOverflowAttr(), this.attributes(), this.enable(i.enable), i.group && (r.attr(n.attr(te), i.group), this.group = this.toolbar.addToGroup(this, i.group)), i.hidden && this.hide(), this.element.data({\n type: q,\n button: this\n });\n }\n });\n n.toolbar.ToolBarMenuButton = xe;\n var Ce = me.extend({\n init: function (t, n) {\n var i = this;\n i.options = e.extend({\n id: t.id || t.uid,\n enable: !0\n }, t, {\n togglable: !1\n }), t.primary && (i.options.themeColor = W), t.showIcon === Y && (i.options.icon = null), t.showText === Y && (i.options.text = \"\"), i.toolbar = n, i.splitButton = new a.SplitButton(e(\"\"), e.extend({}, i.options, {\n items: i._extend(t.menuButtons)\n }), n.options), i.element = i.splitButton.wrapper, i.splitButton.bind(N, n._buttonClick.bind(n)), i.splitButton.bind(M, i._close.bind(i)), i.splitButton.bind(O, i._open.bind(i)), i.splitButton.element.data({\n type: G,\n button: i,\n splitButton: i\n }), i.splitButton.wrapper.data({\n type: G,\n button: i,\n splitButton: i\n }), i.addOverflowAttr(), i.addUidAttr(), i.attributes(), i.addMenuAttributes(), !1 === i.options.enable && i.enable(this.options.enable), i.options.hidden && i.hide();\n },\n _open: function (e) {\n this.toolbar.trigger(O, {\n target: this.element\n }) && e.preventDefault();\n },\n _close: function (e) {\n var t = this;\n t.toolbar.trigger(M, {\n target: t.element\n }) && e.preventDefault(), t.splitButton.element.trigger(B);\n },\n _extend: function (t) {\n var n = this;\n return t.map(function (t) {\n var i = new ge(t, n.toolbar);\n return e.extend({}, t, {\n togglable: !1,\n data: function () {\n return {\n type: q,\n button: i,\n splitButton: n\n };\n }\n });\n });\n },\n addMenuAttributes: function () {\n var t;\n this.splitButton.items().each(function (n, i) {\n i = e(i), (t = i.data(q)).element = i, t.options = e.extend({\n type: q,\n enable: !0\n }, t.options), t.addOverflowAttr(), t.addUidAttr();\n });\n },\n remove: function () {\n var e = this.splitButton.wrapper;\n this.splitButton.destroy(), e.remove();\n },\n enable: function (e, t) {\n this.splitButton.enable(e, t, !0), this.twin() && this.twin().enable(e);\n },\n attributes: function () {\n var e,\n t = this.splitButton.element,\n n = this.options.attributes;\n n && (n.class && (e = n.class, t.addClass(e), delete n.class), t.attr(n), n.class = e);\n }\n });\n n.toolbar.ToolBarSplitButton = Ce;\n var Te = me.extend({\n init: function (t, n) {\n var i,\n a = this.element = e('
        • '),\n r = t.menuButtons;\n this.options = e.extend({}, t, {\n togglable: !1\n }), this.toolbar = n, this.overflow = !0, i = (t.id || t.uid) + se, this.mainButton = new be(e.extend({\n isChild: !0\n }, t, {\n togglable: !1\n })), this.mainButton.element.appendTo(a);\n for (var o = 0; o < r.length; o++) new be(e.extend({\n mobile: t.mobile,\n type: q,\n splitContainerId: i,\n isChild: !0\n }, r[o], {\n click: t.click\n }), this.toolbar).element.appendTo(a);\n this.addUidAttr(), this.addOverflowAttr(), this.mainButton.main = !0, !1 === this.options.enable && this.enable(this.options.enable), a.data({\n type: G,\n splitButton: this\n });\n },\n enable: function (e) {\n var n = this.element.add(this.element.find(pe + c));\n e === t && (e = !0), n.toggleClass(b, !e), n.attr(P, !e), this.options.enable = e;\n },\n overflowHidden: function () {\n this.element.addClass(y);\n }\n });\n n.toolbar.OverflowSplitButton = Te, n.toolbar.registerComponent(G, Ce, Te);\n var Se = me.extend({\n init: function (t, n) {\n var i = this;\n i.options = e.extend({\n id: t.id || t.uid,\n enable: !0\n }, t, {\n togglable: !1\n }), t.primary && (i.options.themeColor = W), t.showIcon === Y && (i.options.icon = null), t.showText === Y && (i.options.text = \"\"), i.toolbar = n, i.dropDownButton = new a.DropDownButton(e(\"\"), e.extend({}, i.options, {\n items: i._extend(t.menuButtons)\n }), n.options), i.element = i.dropDownButton.element, i.dropDownButton.bind(N, n._buttonClick.bind(n)), i.dropDownButton.bind(M, i._close.bind(i)), i.dropDownButton.bind(O, i._open.bind(i)), i.dropDownButton.element.data({\n type: K,\n button: i,\n dropDownButton: i\n }), i.addOverflowAttr(), i.addUidAttr(), i.attributes(), i.addMenuAttributes(), !1 === i.options.enable && i.enable(this.options.enable), i.options.hidden && i.hide();\n },\n _open: function (e) {\n this.toolbar.trigger(O, {\n target: this.element\n }) && e.preventDefault();\n },\n _close: function (e) {\n var t = this;\n t.toolbar.trigger(M, {\n target: t.element\n }) && e.preventDefault(), t.dropDownButton.element.trigger(B);\n },\n _extend: function (t) {\n var n = this;\n return t.map(function (t) {\n var i = new ge(t, n.toolbar);\n return e.extend({}, t, {\n data: function () {\n return {\n type: q,\n button: i,\n dropDownButton: n\n };\n }\n });\n });\n },\n addMenuAttributes: function () {\n var t;\n this.dropDownButton.items().each(function (n, i) {\n i = e(i), (t = i.data(q)).element = i, t.options = e.extend({\n type: q,\n enable: !0\n }, t.options), t.addOverflowAttr(), t.addUidAttr();\n });\n },\n remove: function () {\n var e = this.dropDownButton.element;\n this.dropDownButton.destroy(), e.remove();\n },\n enable: function (e, t) {\n this.dropDownButton.enable(e, t, !0), this.twin() && this.twin().enable(e);\n },\n attributes: function () {\n var e,\n t = this.element,\n n = this.options.attributes;\n n && (n.class && (e = n.class, t.addClass(e), delete n.class), t.attr(n), n.class = e);\n }\n });\n n.toolbar.ToolBarSplitButton = Ce;\n var Ie = me.extend({\n init: function (t, n) {\n var i = this.element = e(\"\");\n this.element = i, this.options = t, this.toolbar = n, this.overflow = !0, this.attributes(), this.addUidAttr(), this.addOverflowIdAttr(), !t.icon || t.showIcon && \"toolbar\" === t.showIcon || i.append(''), \"toolbar\" !== t.showText && i.append(\"\" + this.options.text + \"\"), i.data({\n type: ce,\n textItem: this\n });\n },\n overflowHidden: function () {\n this.element.addClass(y);\n }\n }),\n De = me.extend({\n init: function (t, n) {\n var i,\n a = this.element = e('
        • '),\n r = t.menuButtons;\n this.options = e.extend({}, t, {\n togglable: !1\n }), this.toolbar = n, this.overflow = !0, i = (t.id || t.uid) + se, this.mainButton = new Ie(e.extend({\n isChild: !0\n }, t, {\n togglable: !1\n })), this.mainButton.element.appendTo(a);\n for (var o = 0; o < r.length; o++) new be(e.extend({\n mobile: t.mobile,\n type: q,\n splitContainerId: i,\n isChild: !0\n }, r[o], {\n click: t.click\n }), this.toolbar).element.appendTo(a);\n this.addUidAttr(), this.addOverflowAttr(), this.mainButton.main = !0, !1 === this.options.enable && this.enable(this.options.enable), a.data({\n type: K,\n dropDownButton: this\n });\n },\n enable: function (e) {\n var n = this.element.add(this.element.find(pe + c));\n e === t && (e = !0), n.toggleClass(b, !e), n.attr(P, !e), this.options.enable = e;\n },\n overflowHidden: function () {\n this.element.addClass(y);\n }\n });\n n.toolbar.OverflowSplitButton = De, n.toolbar.registerComponent(K, Se, De);\n var Ee = me.extend({\n init: function (t, n) {\n var i = this.element = e(\"
           
          \");\n this.element = i, this.options = t, this.toolbar = n, this.attributes(), this.addIdAttr(), this.addUidAttr(), this.addOverflowAttr(), i.addClass(g), i.attr(j, $), i.data({\n type: $,\n separator: this\n });\n }\n }),\n Ae = me.extend({\n init: function (t, n) {\n var i = this.element = e(\"
        •  
        • \");\n this.element = i, this.options = t, this.toolbar = n, this.overflow = !0, this.attributes(), this.addUidAttr(), this.addOverflowIdAttr(), i.addClass(g), i.attr(j, $), i.data({\n type: $,\n separator: this\n });\n },\n overflowHidden: function () {\n this.element.addClass(y);\n }\n });\n n.toolbar.registerComponent(\"separator\", Ee, Ae);\n var Fe = me.extend({\n init: function (t, n) {\n var i = this.element = e(\"
           
          \");\n this.element = i, this.options = t, this.toolbar = n, i.addClass(v), i.data({\n type: V\n }), this.addOverflowAttr();\n }\n });\n n.toolbar.registerComponent(V, Fe);\n var ze = me.extend({\n init: function (t, n, i) {\n var a = o(t) ? t(n) : t;\n a = a instanceof jQuery ? a.wrap(\"
          \").parent() : e(\"
          \").html(a), this.element = a, this.options = n, this.options.type = n.type || J, this.toolbar = i, this.attributes(), this.addUidAttr(), this.addIdAttr(), this.addOverflowAttr(), n.hidden && this.hide(), a.data({\n type: J,\n template: this\n });\n }\n });\n n.toolbar.TemplateItem = ze;\n var Pe = me.extend({\n init: function (t, n, i) {\n var a = o(t) ? e(t(n)) : e(t);\n a = a instanceof jQuery ? a.wrap(\"
        • \").parent() : e(\"
        • \").html(a), this.element = a, this.options = n, this.options.type = J, this.toolbar = i, this.overflow = !0, this.attributes(), this.addUidAttr(), this.addOverflowIdAttr(), this.addOverflowAttr(), a.data({\n type: J,\n template: this\n });\n },\n overflowHidden: function () {\n this.element.addClass(y);\n }\n });\n function He(e) {\n e.target.is(\".k-toggle-button\") || e.target.toggleClass(_, \"press\" == e.type);\n }\n function Ne(t) {\n e(t.target).closest(\"a.k-button\").length && t.preventDefault();\n }\n function Re(t, n) {\n var i = n === Q ? e.fn.next : e.fn.prev,\n a = n === Q ? e.fn.first : e.fn.last,\n r = i.call(t);\n return !r.length && t.is(pe + x) ? t : r.is(ne) || !r.length ? r : r.find(ne).length ? a.call(r.find(ne)) : Re(r, n);\n }\n n.toolbar.OverflowTemplateItem = Pe;\n var Oe = i.extend({\n init: function (e) {\n this.name = e, this.buttons = [];\n },\n add: function (e) {\n this.buttons[this.buttons.length] = e;\n },\n remove: function (t) {\n var n = e.inArray(t, this.buttons);\n this.buttons.splice(n, 1);\n },\n select: function (e) {\n for (var t = 0; t < this.buttons.length; t++) this.buttons[t].select(!1);\n e.select(!0), e.twin() && e.twin().select(!0);\n }\n }),\n Me = r.extend({\n init: function (t, i) {\n var a = this;\n if (r.fn.init.call(a, t, i), i = a.options, (t = a.wrapper = a.element).addClass(\"k-toolbar k-widget\"), t.attr(j, \"toolbar\"), this.uid = n.guid(), this._isRtl = n.support.isRtl(t), this._groups = {}, t.attr(le, this.uid), a.isMobile = \"boolean\" == typeof i.mobile ? i.mobile : a.element.closest(\".km-root\")[0], a.animation = a.isMobile ? {\n open: {\n effects: \"fade\"\n }\n } : {}, a.isMobile && (t.addClass(\"km-widget\"), u = \"km-button\", h = \"km-buttongroup\", _ = \"km-state-active\", b = \"km-state-disabled\"), i.resizable ? (a._renderOverflow(), t.addClass(\"k-toolbar-resizable\"), a.overflowUserEvents = new n.UserEvents(a.element, {\n threshold: 5,\n allowSelection: !0,\n filter: pe + x,\n tap: a._toggleOverflow.bind(a)\n }), a._resizeHandler = n.onResize(function () {\n a.resize();\n })) : a.popup = {\n element: e([])\n }, i.items && i.items.length) {\n for (var o = 0; o < i.items.length; o++) a.add(i.items[o]);\n i.resizable && a._shrink(a.element.innerWidth());\n }\n a.userEvents = new n.UserEvents(document.documentElement, {\n threshold: 5,\n allowSelection: !0,\n filter: \"[\" + le + \"=\" + a.uid + \"] a.\" + u + he + \" [\" + le + \"=\" + a.uid + \"] .\" + x + he + \" [\" + le + \"=\" + a.uid + \"] .\" + I + he + \" [\" + le + \"=\" + a.uid + \"] .\" + D + he + \" [\" + le + \"=\" + a.uid + \"] .\" + m,\n tap: a._buttonClick.bind(a),\n press: He,\n release: He\n }), a.element.on(N + d, \"a.k-button\", Ne).on(L + d, a._keydown.bind(a)).on(\"focusin\" + d, a._focusIn.bind(a)).on(\"focusout\" + d, a._focusOut.bind(a)), a.options.resizable && a.popup.element.on(N + d, NaN, Ne), i.resizable && (a.overflowAnchor.appendTo(a.wrapper), this._toggleOverflowAnchor()), a._tabIndex(), n.notify(a);\n },\n events: [N, R, O, M, ie, ae],\n options: {\n name: \"ToolBar\",\n items: [],\n resizable: !0,\n mobile: null,\n navigateOnTab: !1\n },\n addToGroup: function (e, t) {\n var n;\n return (n = this._groups[t] ? this._groups[t] : this._groups[t] = new Oe()).add(e), n;\n },\n destroy: function () {\n var e = this;\n e.destroySplitButtons(), e.destroyDropDownButtons(), e.element.off(d, \"a.k-button\"), e.userEvents.destroy(), e.options.resizable && (n.unbindResize(e._resizeHandler), e.overflowUserEvents.destroy(), e.popup.element.off(d, \"a.k-button\"), e.popup.destroy()), r.fn.destroy.call(e);\n },\n destroySplitButtons: function () {\n var t,\n n = this;\n n.element.find(pe + f).each(function (i, a) {\n (t = n._getItem(a)) && t.type === G && (t = t.toolbar), t && t.splitButton && t.splitButton.destroy && (t.splitButton.destroy(), e(a).remove());\n });\n },\n destroyDropDownButtons: function () {\n var t,\n n = this;\n n.element.find(pe + m).each(function (i, a) {\n (t = n._getItem(a)) && t.type === K && (t = t.toolbar), t && t.dropDownButton && t.dropDownButton.destroy && (t.dropDownButton.destroy(), e(a).remove());\n });\n },\n add: function (t) {\n var i,\n a,\n r,\n o = fe[t.type],\n s = t.template,\n l = this,\n d = l.isMobile ? ue : \"k-item\",\n u = t.overflowTemplate;\n if (e.extend(t, {\n uid: n.guid(),\n animation: l.animation,\n mobile: l.isMobile,\n rootUid: l.uid\n }), t.menuButtons) for (var c = 0; c < t.menuButtons.length; c++) e.extend(t.menuButtons[c], {\n uid: n.guid()\n });\n s && !u || t.type === V ? t.overflow = re : t.overflow || (t.overflow = oe), t.overflow !== re && l.options.resizable && (u ? a = new Pe(u, t, l) : o && (a = new o.overflow(t, l)).element.addClass(d), a && (t.overflow === oe && a.overflowHidden(), a.element.appendTo(l.popup.container), l.angular(\"compile\", function () {\n return {\n elements: a.element.get()\n };\n }))), \"always\" !== t.overflow && (s ? (r = (i = new ze(s, t, l)).element.find(\"input,select\"), !this.options.navigateOnTab && r.length > 0 && (i.element.attr(X, 0), r.attr(X, -1))) : o && (i = new o.toolbar(t, l)), i && (i.element.appendTo(l.element), l.angular(\"compile\", function () {\n return {\n elements: i.element.get()\n };\n })));\n },\n _getItem: function (t) {\n var n,\n i,\n a,\n r,\n o = this.options.resizable;\n return (n = this.element.find(t)).length || (n = e('[data-role=\"buttonmenu\"]').find(t)), r = n.length ? n.data(\"type\") : ue, (i = n.data(r)) && o ? a = i.twin() : o && (r = (n = this.popup.element.find(t)).length ? n.data(\"type\") : ue, a = n.data(r), r === ce && (r = \"dropDownButton\", a = (n = n.parent(pe + m)).data(r)), a && a.main && r !== ce && (r = \"splitButton\", a = (n = n.parent(pe + f)).data(r))), {\n type: r,\n toolbar: i,\n overflow: a\n };\n },\n remove: function (e) {\n var t = this._getItem(e);\n t.toolbar && t.toolbar.remove(), t.overflow && t.overflow.remove(), this.resize(!0);\n },\n hide: function (e) {\n var t,\n n = this._getItem(e);\n n.toolbar && (n.toolbar.options.type === q && n.toolbar.options.isChild ? (t = n.toolbar.getParentGroup(), n.toolbar.hide(), t && t.refresh()) : n.toolbar.options.hidden || n.toolbar.hide()), n.overflow && (n.overflow.options.type === q && n.overflow.options.isChild ? (t = n.overflow.getParentGroup(), n.overflow.hide(), t && t.refresh()) : n.overflow.options.hidden || n.overflow.hide()), this.resize(!0);\n },\n show: function (e) {\n var t,\n n = this._getItem(e);\n n.toolbar && (n.toolbar.options.type === q && n.toolbar.options.isChild ? (t = n.toolbar.getParentGroup(), n.toolbar.show(), t && t.refresh()) : n.toolbar.options.hidden && n.toolbar.show()), n.overflow && (n.overflow.options.type === q && n.overflow.options.isChild ? (t = n.overflow.getParentGroup(), n.toolbar.show(), t && t.refresh()) : n.overflow.options.hidden && n.overflow.show()), this.resize(!0);\n },\n enable: function (e, t) {\n var n = this._getItem(e);\n void 0 === t && (t = !0), n.toolbar && n.toolbar.enable(t, n.element), n.overflow && n.overflow.enable(t);\n },\n getSelectedFromGroup: function (e) {\n return this.element.find(\".k-toggle-button[data-group='\" + e + \"']\").filter(pe + _);\n },\n toggle: function (n, i) {\n var a = e(n).data(q);\n a.options.togglable && (i === t && (i = !0), a.toggle(i, !0));\n },\n _renderOverflow: function () {\n var t,\n i = this,\n a = fe.overflowContainer,\n r = i._isRtl,\n o = r ? \"left\" : \"right\";\n i.overflowAnchor = e(fe.overflowAnchor).addClass(u), i.element.append(i.overflowAnchor), i.isMobile ? (i.overflowAnchor.append(''), a = (t = e(t = a)).hasClass(\"km-actionsheet\") ? t.closest(\".km-popup-wrapper\") : t.addClass(\"km-widget km-actionsheet\").wrap('
          ').parent().wrap('
          ').parent()) : i.overflowAnchor.append(''), i.popup = new n.ui.Popup(a, {\n origin: \"bottom \" + o,\n position: \"top \" + o,\n anchor: i.overflowAnchor,\n isRtl: r,\n animation: i.animation,\n appendTo: i.isMobile ? e(i.isMobile).children(\".km-pane\") : null,\n copyAnchorStyles: !1,\n open: function (t) {\n var a = n.wrap(i.popup.element).addClass(\"k-overflow-wrapper\");\n i.isMobile ? i.popup.container.css(\"max-height\", parseFloat(e(\".km-content:visible\").innerHeight()) - 15 + \"px\") : a.css(\"margin-left\", (r ? -1 : 1) * ((l(a) - a.width()) / 2 + 1)), i.trigger(ie) && t.preventDefault();\n },\n activate: function () {\n this.element.find(ne).first().trigger(B);\n },\n close: function (e) {\n i.trigger(ae) && e.preventDefault(), this.element.trigger(B);\n }\n }), i.popup.element.on(L + d, pe + u, function (t) {\n var n = e(t.target),\n a = n.parent(),\n r = a.is(pe + h) || a.is(pe + f);\n t.preventDefault(), t.keyCode === s.ESC || t.keyCode === s.TAB || t.altKey && t.keyCode === s.UP ? (i._toggleOverflow(), i.overflowAnchor.trigger(B)) : t.keyCode === s.DOWN ? Re(!r || r && n.is(\":last-child\") || r && !n.next().is(ne) ? a : n, Q).trigger(B) : t.keyCode === s.UP ? Re(!r || r && n.is(\":first-child\") || r && !n.prev().is(ne) ? a : n, \"prev\").trigger(B) : t.keyCode !== s.SPACEBAR && t.keyCode !== s.ENTER || e(t.target).is(pe + b) ? t.keyCode === s.HOME ? a.parent().find(ne).first().trigger(B) : t.keyCode === s.END && a.parent().find(ne).last().trigger(B) : (i.userEvents.trigger(\"tap\", {\n target: e(t.target)\n }), i.overflowAnchor.trigger(B));\n }), i.isMobile ? i.popup.container = i.popup.element.find(pe + C) : i.popup.container = i.popup.element, i.popup.container.attr(le, this.uid);\n },\n _toggleOverflowAnchor: function () {\n var e = this._isRtl ? \"padding-left\" : \"padding-right\";\n (this.options.mobile ? this.popup.element.find(pe + C).children(\":not(.k-overflow-hidden, .k-popup)\").length > 0 : this.popup.element.children(\":not(.k-overflow-hidden, .k-popup)\").length > 0) ? (this.overflowAnchor.css({\n visibility: \"visible\",\n width: ue\n }), this.wrapper.css(e, this.overflowAnchor.outerWidth(!0))) : (this.overflowAnchor.css({\n visibility: ee,\n width: \"1px\"\n }), this.wrapper.css(e, ue));\n },\n _buttonClick: function (t) {\n var n,\n i,\n a,\n r,\n s,\n l = this,\n d = e(t.target);\n 0 === d.closest(\".k-toolbar-item\").length && t.preventDefault(), d.hasClass(m) || d.hasClass(x) ? l._resetTabIndex(d) : d.hasClass(I) ? l._resetTabIndex(d.prev()) : d.hasClass(D) ? (s = d.find(\"input,select,.\" + E)).length > 0 && l._resetTabIndex(s.first()) : (d.data(G) || (d = e(t.target).closest(pe + u + he + pe + \"k-menu-link\", l.element)), (n = d.data(q)) && !d.hasClass(\"k-menu-item\") && l._resetTabIndex(d), !n && l.popup && (n = (d = e(t.target).closest(pe + c, l.popup.container)).parent(\"li\").data(q)), n && n.options.enable && (n.options.togglable ? (i = o(n.toggleHandler) ? n.toggleHandler : null, n.toggle(!n.options.selected, !0), a = {\n target: d,\n group: n.options.group,\n checked: n.options.selected,\n id: n.options.id,\n item: n\n }, i && i.call(l, a), l.trigger(R, a)) : (i = o(n.clickHandler) ? n.clickHandler : null, a = {\n sender: l,\n target: d,\n id: n.options.id,\n item: n\n }, i && i.call(l, a), l.trigger(N, a)), n.options.url && (n.options.attributes && n.options.attributes.target && (r = n.options.attributes.target), window.open(n.options.url, r || \"_self\")), d.hasClass(c) && l.popup.close()));\n },\n _focusOut: function (e) {\n this.wrapper.find(pe + u + pe + z).removeClass(z);\n },\n _focusIn: function (t) {\n var n = e(t.target);\n n.closest(pe + u).length > 0 && n.closest(pe + u).addClass(z);\n },\n _keydown: function (t) {\n var i,\n a,\n r,\n o,\n l,\n d = e(t.target),\n u = t.keyCode,\n c = this._getItems(),\n p = this._isRtl ? -1 : 1,\n h = d.closest(\".k-toolbar-item\");\n if (t.altKey && u === s.DOWN) e(document.activeElement).is(pe + x) && this._toggleOverflow();else if (this.options.navigateOnTab || u !== s.ENTER || !d.hasClass(D)) {\n if (!this.options.navigateOnTab && u === s.ESC && h.length > 0) {\n if (o = h.find(\"[data-role]\"), r = h.find(\":kendoFocusable:not('.k-input-button'),.\" + E), o.length > 0 && (l = n.widgetInstance(o))) {\n if (l.popup && l.popup.visible()) return;\n h.attr(X, 0), h.trigger(B), h.find(ne).attr(X, -1);\n }\n r.length > 0 && (h.attr(X, 0), h.trigger(B), r.attr(X, -1));\n } else if (u !== s.SPACEBAR && u !== s.ENTER || d.is(\"input,checkbox,button\")) {\n if (u === s.HOME) {\n if (d.is(pe + E) || d.is(Z)) return;\n this._resetTabIndex(c.first()), c.first().trigger(B), t.preventDefault();\n } else if (u === s.END) {\n if (d.is(pe + E) || d.is(Z)) return;\n 0 === (i = c.last()).width() && (i = c.eq(c.length - 2)), this._resetTabIndex(i), i.trigger(B), t.preventDefault();\n } else this.options.navigateOnTab || u !== s.RIGHT || d.is(\"input:not([type=file]),select,.k-dropdownlist,.\" + A) || !this._getNextElement(t.target, 1 * p) ? this.options.navigateOnTab || u !== s.LEFT || d.is(\"input:not([type=file]),select, .k-dropdownlist,.\" + A) || !this._getNextElement(t.target, -1 * p) || (a = e(this._getNextElement(t.target, -1 * p)), this._resetTabIndex(a), a.trigger(B), t.preventDefault()) : (a = e(this._getNextElement(t.target, 1 * p)), this._resetTabIndex(a), a.trigger(B), t.preventDefault());\n } else u === s.SPACEBAR && (t.preventDefault(), this.userEvents.trigger(\"tap\", {\n target: d\n }));\n } else (r = d.find(\":kendoFocusable:not('.k-input-button'),.\" + E)).length > 0 && (d.attr(X, -1), r.attr(X, 0), r.first().trigger(B));\n },\n _getNextElement: function (e, t) {\n var n = this._getItems(),\n i = -1 === n.index(e) ? n.index(e.parentElement) : n.index(e),\n a = n[i + t];\n return a || (a = -1 === t ? n.last() : n.first()), a;\n },\n _getItems: function () {\n return this.wrapper.find(\":kendoFocusable,.k-toolbar-item,.k-overflow-anchor,.k-switch\").filter(function () {\n var t = e(this);\n return !t.hasClass(\"k-hidden\") && (!t.hasClass(x) || t.css(\"visibility\") !== ee) && (!t.hasClass(D) || 0 !== t.find(\"input:visible,.k-picker,.k-input\").length) && !(!t.hasClass(D) && t.closest(\".k-toolbar-item\").length > 0) && !t.hasClass(F) && !t.hasClass(I);\n });\n },\n _toggle: function (t) {\n var n = e(t.target).closest(pe + f).data(\"splitButton\");\n t.preventDefault(), n.options.enable && n.toggle();\n },\n _toggleOverflow: function () {\n this.popup.toggle();\n },\n _resize: function (e) {\n var t = e.width;\n this.options.resizable && (this.popup.close(), this._shrink(t), this._stretch(t), this._markVisibles(), this._toggleOverflowAnchor());\n },\n _childrenWidth: function () {\n var t = 0,\n n = parseInt(this.element.css(\"gap\"), 10) || 0;\n return this.element.children(\":visible:not(.k-spacer)\").each(function () {\n t += l(e(this), !0) + n;\n }), Math.ceil(t);\n },\n _shrink: function (e) {\n var t, n, i;\n if (e < this._childrenWidth()) for (var a = (n = this.element.children(\":visible:not([data-overflow='never'], .k-overflow-anchor)\")).length - 1; a >= 0 && (t = n.eq(a), !(e > this._childrenWidth())); a--) (i = t.find(\"[tabindex=0]\")).length > 0 && (i.attr(X, -1), this.element.children(pe + x).attr(X, 0)), this._hideItem(t);\n },\n _stretch: function (e) {\n var t, n;\n if (e > this._childrenWidth()) {\n n = this.element.children(\".k-hidden:not(.k-force-hidden)\");\n for (var i = 0; i < n.length && (t = n.eq(i), !(e < this._childrenWidth()) && this._showItem(t, e)); i++);\n }\n },\n _hideItem: function (e) {\n e.addClass(k), this.popup && this.popup.container.find(\">li[data-uid='\" + e.data(\"uid\") + \"']\").removeClass(y);\n },\n _showItem: function (e, t) {\n var n = parseInt(this.element.css(\"gap\"), 10) || 0;\n e.removeClass(k);\n var i = l(e, !0) + n;\n return e.addClass(k), !!(e.length && t > this._childrenWidth() + i) && (e.removeClass(k), !0 !== this.options.navigateOnTab && e.find(ne).attr(X, -1), this.popup && this.popup.container.find(\">li[data-uid='\" + e.data(\"uid\") + \"']\").addClass(y), !0);\n },\n _markVisibles: function () {\n var e = this.popup.container.children(),\n t = this.element.children(\":not(.k-overflow-anchor)\"),\n n = e.filter(\":not(.k-overflow-hidden)\"),\n i = t.filter(\":visible\");\n e.add(t).removeClass(\"k-toolbar-first-visible \" + S), n.first().add(i.first()).addClass(T), n.last().add(i.last()).addClass(S);\n },\n _resetTabIndex: function (e) {\n !0 !== this.options.navigateOnTab && (this.wrapper.find(ne).attr(X, -1), e.attr(X, 0));\n },\n _tabIndex: function () {\n var e = this.wrapper.find(\":kendoFocusable:not('[tabindex=-1]')\"),\n t = e.first();\n !0 !== this.options.navigateOnTab && (e.attr(X, -1), t.attr(X, 0));\n }\n });\n n.ui.plugin(Me);\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui,\n a = \".kendoSwitch\",\n r = i.Widget,\n o = n.support,\n s = \"change\",\n l = {\n widget: \"k-switch\",\n track: \"k-switch-track\",\n thumbWrapper: \"k-switch-thumb-wrap\",\n thumb: \"k-switch-thumb\",\n checked: \"k-switch-on\",\n checkedLabel: \"k-switch-label-on\",\n unchecked: \"k-switch-off\",\n uncheckedLabel: \"k-switch-label-off\",\n disabled: \"k-disabled\",\n readonly: \"k-readonly\",\n active: \"k-active\"\n },\n d = \"disabled\",\n u = \"aria-disabled\",\n c = \"readonly\",\n p = \"aria-readonly\",\n h = \"aria-hidden\",\n f = \"checked\",\n m = o.click + a,\n g = o.pointers ? \"pointerup\" : \"touchend\",\n v = \".\",\n _ = n.template(''),\n b = n.template(\"#=checked##=unchecked#\"),\n k = n.template(\"\"),\n w = r.extend({\n init: function (e, t) {\n var i = this;\n r.fn.init.call(i, e, t), i._wrapper(), i._initSettings(), i._aria(), i._attachEvents(), n.notify(i, n.ui);\n },\n _wrapper: function () {\n var t = this,\n n = t.options,\n i = t.element[0],\n a = e(_({\n styles: l\n }));\n i.type = \"checkbox\", t.wrapper = t.element.wrap(a).parent(), t.wrapper[0].style.cssText = t.element[0].style.cssText, t.element.hide(), t.wrapper.append(e(b({\n styles: l,\n checked: n.messages.checked,\n unchecked: n.messages.unchecked\n }))).append(e(k({\n styles: l\n }))).addClass(i.className).removeClass(\"input-validation-error\"), t.options.rounded = t.options.trackRounded, t._applyCssClasses(), t._applyRoundedClasses();\n },\n _applyRoundedClasses: function (e) {\n var t = this,\n i = t.options,\n a = n.cssProperties.getValidClass({\n widget: i.name,\n propName: \"rounded\",\n value: i.trackRounded\n }),\n r = n.cssProperties.getValidClass({\n widget: i.name,\n propName: \"rounded\",\n value: i.thumbRounded\n });\n e = e || \"addClass\", t.wrapper.find(v + l.track)[e](a), t.wrapper.find(v + l.thumb)[e](r);\n },\n _attachEvents: function () {\n var e = this;\n e.wrapper.on(m, e._click.bind(e)).on(g, e._touchEnd.bind(e)).on(\"keydown.kendoSwitch\", e._keydown.bind(e));\n },\n setOptions: function (n) {\n var i = this,\n a = n.messages;\n i._clearCssClasses(n), i._applyRoundedClasses(\"removeClass\"), i.options = e.extend(i.options, n), a && a.checked !== t && i.wrapper.find(v + l.checkedLabel).text(a.checked), a && a.unchecked !== t && i.wrapper.find(v + l.uncheckedLabel).text(a.unchecked), n.width && i.wrapper.css({\n width: n.width\n }), n.enabled !== t && i.enable(n.enabled), n.readonly !== t && i.readonly(n.readonly), i.check(n.checked), i.options.rounded = i.options.trackRounded, i._applyCssClasses(), i._applyRoundedClasses();\n },\n _initSettings: function () {\n var e = this,\n t = e.element[0],\n n = e.options;\n n.enabled && e._tabindex(), n.width && e.wrapper.css({\n width: n.width\n }), null === n.checked && (n.checked = t.checked), e.check(n.checked), n.enabled = n.enabled && !e.element.attr(d), e.enable(n.enabled), n.readonly = n.readonly || !!e.element.attr(c), e.readonly(n.readonly);\n },\n _aria: function () {\n var t = this.element,\n i = this.wrapper,\n a = t.attr(\"id\"),\n r = e('label[for=\"' + a + '\"]'),\n o = t.attr(\"aria-label\"),\n s = t.attr(\"aria-labelledby\");\n if (o) i.attr(\"aria-label\", o);else if (s) i.attr(\"aria-labelledby\", s);else if (r.length) {\n var l = r.attr(\"id\");\n l || (l = (a || n.guid()) + \"_label\", r.attr(\"id\", l)), i.attr(\"aria-labelledby\", l);\n }\n },\n events: [s],\n options: {\n name: \"Switch\",\n messages: {\n checked: \"On\",\n unchecked: \"Off\"\n },\n width: null,\n checked: null,\n enabled: !0,\n readonly: !1,\n size: \"medium\",\n rounded: \"full\",\n trackRounded: \"full\",\n thumbRounded: \"full\"\n },\n check: function (e) {\n var n = this,\n i = n.element[0];\n if (e === t) return i.checked;\n i.checked !== e && (n.options.checked = i.checked = e), n.wrapper.attr(\"aria-checked\", e).toggleClass(l.checked, e).toggleClass(l.unchecked, !e).find(\"[aria-hidden='true']\").removeAttr(h), e ? (n.element.attr(f, f), n.wrapper.find(v + l.uncheckedLabel).attr(h, !0)) : (n.element.prop(f, !1), n.wrapper.find(v + l.checkedLabel).attr(h, !0));\n },\n value: function (e) {\n return \"string\" == typeof e ? e = \"true\" === e : null === e && (e = !1), this.check.apply(this, [e]);\n },\n destroy: function () {\n r.fn.destroy.call(this), this.wrapper.off(a);\n },\n toggle: function () {\n this.check(!this.element[0].checked);\n },\n enable: function (e) {\n var t = this.element,\n n = this.wrapper;\n void 0 === e && (e = !0), this.options.enabled = e, e ? (t.prop(d, !1), n.removeAttr(u)) : (t.attr(d, d), n.attr(u, !0)), n.toggleClass(l.disabled, !e);\n },\n readonly: function (e) {\n var t = this,\n n = t.element,\n i = t.wrapper;\n void 0 === e && (e = !0), t.options.readonly = e, e ? (n.attr(c, !0), i.attr(p, !0)) : (n.prop(c, !1), i.removeAttr(p)), i.toggleClass(l.readonly, e);\n },\n _check: function () {\n var e = this,\n t = e.element[0].checked = !e.element[0].checked;\n e.wrapper.trigger(\"focus\"), !e.options.enabled || e.options.readonly || e.trigger(s, {\n checked: t\n }) ? e.element[0].checked = !t : e.check(t);\n },\n _keydown: function (e) {\n e.keyCode === n.keys.SPACEBAR && (this._check(), e.preventDefault());\n },\n _isTouch: function (e) {\n return /touch/.test(e.type) || e.originalEvent && /touch/.test(e.originalEvent.pointerType);\n },\n _click: function (e) {\n this._isTouch(e) || 1 !== e.which || this._check();\n },\n _touchEnd: function (e) {\n this._isTouch(e) && (this._check(), e.preventDefault());\n }\n });\n n.cssProperties.registerPrefix(\"Switch\", \"k-switch-\"), n.cssProperties.registerValues(\"Switch\", [{\n prop: \"rounded\",\n values: n.cssProperties.roundedValues.concat([[\"full\", \"full\"]])\n }]), i.plugin(w);\n }(window.kendo.jQuery);\n !function (e, t) {\n var n = window.kendo,\n i = n.ui,\n a = i.Widget,\n r = n.keys,\n o = n.template,\n s = \".kendoButtonGroup\",\n l = \"k-button\",\n d = \"k-icon-button\",\n u = \"k-selected\",\n c = \"k-disabled\",\n p = \"select\",\n h = n.support.browser.msie,\n f = {\n item: o('#= icon(iconClass) ##= image(item) ## if(!!text) { # #= text # # } #'),\n image: o('\"icon\"'),\n icon: o(''),\n empty: o(\"\")\n };\n function m(n, a) {\n var r;\n null !== n && n !== t && (n.constructor !== Object && (n = {\n text: n\n }), n.position !== t && \"\" !== n.position || (n.position = \"edge\", n.align !== t && \"\" !== n.align || (n.align = \"top end\")), n._classNames = [\"k-button-badge\"], a.addClass(\"k-badge-container\"), r = e(\"\").appendTo(a), a.badge = new i.Badge(r, n));\n }\n var g = a.extend({\n init: function (t, n) {\n var i = this;\n a.fn.init.call(i, t, n), i.wrapper = i.element, i.options.items && i._renderItems(i.options.items), i.selectedIndices = [], i.element.addClass(\"k-widget k-button-group\").attr(\"role\", \"group\").attr(\"tabindex\", i.element.attr(\"tabindex\") || \"0\").children().each(function () {\n var t = e(this);\n i._updateClasses.bind(i)(t);\n }), i._enable = !0, i.options.enable && i.options.enabled || (i._enable = !1, i.element.attr(\"aria-disabled\", !0).addClass(c), i.element.children().addClass(c)), i.select(i.options.index), i._attachEvents();\n },\n events: [p],\n options: {\n name: \"ButtonGroup\",\n selection: \"single\",\n index: -1,\n enable: !0,\n enabled: !0\n },\n current: function () {\n return this.element.find(\".\" + u);\n },\n _attachEvents: function () {\n var e = this;\n e.element.on(\"click\" + s, \".k-button\", e._click.bind(e)).on(\"focus\" + s, e._focus.bind(e)).on(\"focusout\" + s, e._focusout.bind(e)).on(\"keydown\" + s, e._keyDown.bind(e)).on(\"mousedown\" + s, e._mouseDown.bind(e));\n },\n _renderItems: function (t) {\n var i = this;\n t.forEach(function (t) {\n var a = e(f.item({\n image: t.imageUrl ? f.image : f.empty,\n icon: t.imageUrl || !t.iconClass && !t.icon ? f.empty : f.icon,\n iconClass: t.iconClass || \"k-icon k-i-\" + t.icon,\n item: t,\n text: t.text ? !1 === t.encoded ? t.text : n.htmlEncode(t.text) : \"\"\n }));\n t.attributes && a.attr(t.attributes), t.selected && a.addClass(u), (t.iconClass || t.icon || t.imageUrl) && !t.text && a.addClass(d), t.badge && m(t.badge, a), a.appendTo(i.element);\n });\n },\n _mouseDown: function (e) {\n var t = e.clientX,\n n = e.clientY;\n document.elementFromPoint(t, n) !== this.element[0] && (this.preventFocus = !0, this.preventFocusOut = !0), h && this._focus();\n },\n _focus: function () {\n var t = e(this.element);\n t.removeAttr(\"tabindex\"), t.find(\"[role='button']\").attr(\"tabindex\", \"0\"), this.preventFocus ? this.preventFocus = !1 : t.find(\".\" + u).length ? t.find(\".\" + u).first().trigger(\"focus\") : t.children().first().trigger(\"focus\");\n },\n _focusout: function () {\n var e = this.wrapper;\n this.preventFocusOut ? this.preventFocusOut = !1 : setTimeout(function () {\n e[0].contains(document.activeElement) || (e.attr(\"tabindex\", \"0\"), e.find(\"[role='button']\").removeAttr(\"tabindex\"));\n });\n },\n _keyDown: function (t) {\n var i = this,\n a = e(i.element),\n o = a.find(\".k-button\"),\n s = a.find(\":focus\"),\n l = o.index(s),\n d = n.support.isRtl(i.element);\n t.keyCode === r.LEFT && !d || t.keyCode === r.RIGHT && d ? ((0 === l ? o.eq(o.length - 1) : e(o[l - 1])).trigger(\"focus\"), t.preventDefault()) : t.keyCode === r.LEFT && d || t.keyCode === r.RIGHT && !d ? ((l + 1 === o.length ? o.eq(0) : e(o[l + 1])).trigger(\"focus\"), t.preventDefault()) : t.keyCode !== r.ENTER && t.keyCode !== r.SPACEBAR || (i._select(s), t.preventDefault());\n },\n select: function (n) {\n var i,\n a = this,\n r = -1;\n n !== t && -1 !== n && (\"number\" == typeof n ? (r = n, n = a.element.children().eq(n)) : n.nodeType && (r = (n = e(n)).index()), \"multiple\" === a.options.selection ? (i = \"true\" === n.attr(\"aria-pressed\"), n.attr(\"aria-pressed\", !i).toggleClass(u), -1 === a.selectedIndices.indexOf(r) ? a.selectedIndices.push(r) : a.selectedIndices.splice(a.selectedIndices.indexOf(r), 1)) : (a.selectedIndices = [], a.current().attr(\"aria-pressed\", !1).removeClass(u), n.attr(\"aria-pressed\", !0).addClass(u), a.selectedIndices.push(r)));\n },\n badge: function (e, t) {\n var i,\n a = this.element,\n r = isNaN(e) ? a.find(e) : a.children().eq(e),\n o = t || 0 === t;\n if (r.length) {\n if (!(i = r.children(\".k-badge\").eq(0).data(\"kendoBadge\")) && o) return m({\n text: n.htmlEncode(t)\n }, r), n.htmlEncode(t);\n if (o) i.text(n.htmlEncode(t));else if (!1 === t) return i.element.empty().remove(), void i.destroy();\n return i ? i.text() : null;\n }\n },\n enable: function (e) {\n void 0 === e && (e = !0), this.element.attr(\"aria-disabled\", !e).toggleClass(c, !e), this.element.children().toggleClass(c, !e), this._enable = this.options.enable = e;\n },\n destroy: function () {\n var t = this;\n t.element.off(s), t.element.find(\".k-badge\").each(function () {\n e(this).data(\"kendoBadge\").destroy();\n }), a.fn.destroy.call(t);\n },\n _updateClasses: function (t) {\n var i = n.attrValue(t, \"icon\"),\n a = n.attrValue(t, \"badge\"),\n r = t.find(\"img\").addClass(\"k-image\"),\n o = !0;\n t.attr(\"aria-pressed\", !1).attr(\"role\", \"button\").addClass(l).addClass(\"k-button-md k-rounded-md k-button-solid k-button-solid-base\"), (t.is(\"[disabled]\") || t.hasClass(c)) && t.addClass(c).attr(\"aria-disabled\", !0).removeAttr(\"disabled\"), t.is(\".\" + u) && (t.removeClass(u), (!t.hasClass(c) && \"single\" === this.options.selection || \"multiple\" === this.options.selection) && this.select(t[0])), !r[0] && i && t.prepend(e(f.icon(\"k-icon k-i-\" + i))), t.contents().filter(function () {\n return !e(this).hasClass(\"k-icon\") && !e(this).hasClass(\"k-image\");\n }).each(function () {\n (1 == this.nodeType || 3 == this.nodeType && n.trim(this.nodeValue).length > 0) && (o = !1);\n }), (r[0] || i) && o && t.addClass(d), (a || 0 === a) && m(a, t);\n },\n _click: function (t) {\n var n = e(t.target).closest(\".k-button\");\n t.isDefaultPrevented() || (t.target.focus(), this._select(n));\n },\n _select: function (e) {\n var t = e;\n this._enable && !t.is(\".\" + c) && (this.select(e[0]), this.trigger(p, {\n indices: this.selectedIndices\n }));\n }\n });\n i.plugin(g);\n }(window.kendo.jQuery);\n});\n\n\nmodule.exports = kendo;","var $ = require(\"jquery\");\n/*\r\n* TelerikReporting v18.2.24.924 (https://www.telerik.com/products/reporting.aspx)\r\n* Copyright 2024 Progress Software EAD. All rights reserved.\r\n*\r\n* Telerik Reporting commercial licenses may be obtained at\r\n* https://www.telerik.com/purchase/license-agreement/reporting.aspx\r\n* If you do not own a commercial license, this file shall be governed by the trial license terms.\r\n*/\nvar telerikReportViewer = function (exports) {\n 'use strict';\n\n var stringFormatRegExp = /{(\\w+?)}/g;\n var specialKeys = {\n DELETE: 46,\n BACKSPACE: 8,\n TAB: 9,\n ESC: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n END: 35,\n HOME: 36\n };\n function isSpecialKey() {\n var userAgent = window.navigator.userAgent.toLowerCase();\n if (userAgent.indexOf(\"firefox\") > -1) {\n var specialKeysArray = Object.keys(specialKeys);\n var specialKeysLength = specialKeysArray.length;\n return function (keyCode) {\n for (var i = 0; i < specialKeysLength; i++) {\n if (specialKeys[specialKeysArray[i]] == keyCode) {\n return true;\n }\n }\n };\n }\n return function (keyCode) {\n return false;\n };\n }\n function toXhrErrorData(xhr, status, error) {\n return {\n xhr,\n status,\n error\n };\n }\n function rectangle(left, top, width, height) {\n return {\n left,\n top,\n width,\n height,\n right: function () {\n return left + width;\n },\n bottom: function () {\n return top + height;\n },\n union: function (other) {\n var newLeft = Math.min(left, other.left);\n var newTop = Math.min(top, other.top);\n var newWidth = Math.max(this.right(), other.right()) - newLeft;\n var newHeight = Math.max(this.bottom(), other.bottom()) - newTop;\n return rectangle(newLeft, newTop, newWidth, newHeight);\n }\n };\n }\n function generateGuidString() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n var v = c == \"x\" ? r : r & 3 | 8;\n return v.toString(16);\n });\n }\n function trim(s, charlist) {\n return rTrim(lTrim(s, charlist), charlist);\n }\n function replaceAll(str, find, replace) {\n return str.replace(new RegExp(find, \"g\"), replace);\n }\n function lTrim(s, charlist) {\n if (charlist === void 0) {\n charlist = \"s\";\n }\n return s.replace(new RegExp(\"^[\" + charlist + \"]+\"), \"\");\n }\n function rTrim(s, charlist) {\n if (charlist === void 0) {\n charlist = \"s\";\n }\n return s.replace(new RegExp(\"[\" + charlist + \"]+$\"), \"\");\n }\n function stringFormat(template, data) {\n var isArray2 = Array.isArray(data);\n return template.replace(stringFormatRegExp, function ($0, $1) {\n return data[isArray2 ? parseInt($1) : $1];\n });\n }\n function escapeHtml(str) {\n return $(\"
          \").text(str).html();\n }\n function tryParseInt(value) {\n if (/^(\\-|\\+)?([0-9]+)$/.test(value)) {\n return Number(value);\n }\n return NaN;\n }\n function tryParseFloat(value) {\n if (/^(\\-|\\+)?([0-9]+(\\.[0-9]+)?)$/.test(value)) {\n return Number(value);\n }\n return NaN;\n }\n function parseToLocalDate(date) {\n if (date instanceof Date) return date;\n var isUtc = /Z|[\\+\\-]\\d\\d:?\\d\\d/i.test(date);\n if (!isUtc) {\n date += \"Z\";\n }\n return new Date(date);\n }\n function adjustTimezone(date) {\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n }\n function unadjustTimezone(date) {\n return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n }\n function areEqual(v1, v2) {\n if (v1 instanceof Date && v2 instanceof Date) {\n if (v1.getTime() !== v2.getTime()) {\n return false;\n }\n } else if (v1 !== v2) {\n return false;\n }\n return true;\n }\n function reportSourcesAreEqual(rs1, rs2) {\n if (rs1 && rs2 && rs1.report === rs2.report) {\n var params1String = \"\";\n if (rs1.parameters) {\n params1String = JSON.stringify(rs1.parameters);\n }\n var params2String = \"\";\n if (rs2.parameters) {\n params2String = JSON.stringify(rs2.parameters);\n }\n return params1String === params2String;\n }\n return false;\n }\n function areEqualArrays(array1, array2) {\n if (array1 === null) {\n if (array2 !== null) {\n return false;\n }\n return true;\n }\n if (array2 === null) {\n return false;\n }\n if (array1.length !== array2.length) {\n return false;\n }\n for (var j = array1.length - 1; j >= 0; j--) {\n if (!areEqual(array1[j], array2[j])) {\n return false;\n }\n }\n return true;\n }\n function isSvgSupported() {\n var matches = /Version\\/(\\d+.\\d+.\\d+) Safari/.exec(navigator.userAgent);\n if (matches && matches.length > 1) {\n var version = parseFloat(matches[1]);\n return version >= 6;\n }\n return true;\n }\n function isInternalServerError(error) {\n if (error) {\n return replaceAll(error, \" \", \"\").toLowerCase() === \"internalservererror\";\n }\n return false;\n }\n function isSystemArgumentException(xhr) {\n var exceptionShortName = \"ArgumentException\";\n var exceptionInstance = getExceptionInstance(xhr);\n return isExceptionInstanceOfType(exceptionInstance, exceptionShortName, \"System.\" + exceptionShortName);\n }\n function isInvalidClientException(xhr) {\n var exceptionShortName = \"InvalidClientException\";\n var exceptionInstance = getExceptionInstance(xhr);\n return isExceptionInstanceOfType(exceptionInstance, exceptionShortName, \"Telerik.Reporting.Services.Engine.\" + exceptionShortName);\n }\n function isApplicationException(xhr) {\n return isApplicationExceptionInstance(getExceptionInstance(xhr));\n }\n function isApplicationExceptionInstance(exception) {\n var exceptionShortName = \"DrawingFactoryUnavailableException\";\n return isExceptionInstanceOfType(exception, exceptionShortName, \"Telerik.Drawing.Contract.\" + exceptionShortName);\n }\n function isExceptionOfType(xhr, exceptionType) {\n return isExceptionInstanceOfType(getExceptionInstance(xhr), exceptionType, exceptionType);\n }\n function isExceptionInstanceOfType(exceptionInstance, exceptionTypeShortName, exceptionTypeFullName) {\n return exceptionInstance && exceptionInstance.exceptionType && exceptionTypeNamesMatch(exceptionInstance.exceptionType, exceptionTypeShortName, exceptionTypeFullName);\n }\n function exceptionTypeNamesMatch(instanceTypeName, exceptionTypeShortName, exceptionTypeFullName) {\n return instanceTypeName && (instanceTypeName === exceptionTypeFullName || instanceTypeName.endsWith(exceptionTypeShortName));\n }\n function parseJSON(json) {\n try {\n return JSON.parse(json, function (key, value) {\n if (key && value) {\n var firstChar = key.charAt(0);\n if (firstChar === firstChar.toUpperCase()) {\n var newPropertyName = firstChar.toLowerCase() + key.slice(1);\n this[newPropertyName] = value;\n }\n }\n return value;\n });\n } catch (e) {\n return null;\n }\n }\n function getExceptionInstance(xhr) {\n if (!xhr || !xhr.responseText) {\n return false;\n }\n return parseJSON(xhr.responseText);\n }\n function extend() {\n var copy;\n var name;\n var options;\n var target;\n var i = 0;\n var length = arguments.length;\n target = length > 1 ? arguments[i++] || {} : {};\n for (; i < length; i++) {\n if ((options = arguments[i]) != null) {\n for (name in options) {\n target[name];\n copy = options[name];\n if (target === copy) {\n continue;\n }\n if (copy !== void 0) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n }\n function each(obj, callback) {\n var length;\n var i = 0;\n if (isArray(obj)) {\n length = obj.length;\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n return obj;\n }\n function selector() {\n return document.querySelectorAll(arguments[0]);\n }\n function isArray(obj) {\n if (Array.isArray(obj)) return true;\n var length = Boolean(obj) && \"length\" in obj && obj.length;\n if (typeof length === \"number\") {\n return true;\n }\n return false;\n }\n function loadScriptWithCallback(src, done, version) {\n var js = document.createElement(\"script\");\n js.src = src;\n js.onload = function () {\n done(version);\n };\n js.onerror = function () {\n logError(new Error(\"Failed to load script \" + src));\n };\n document.head.appendChild(js);\n }\n function loadScript(url) {\n var ajaxOptions = {\n dataType: \"script\",\n cache: true\n };\n return $ajax(url, ajaxOptions);\n }\n function filterUniqueLastOccurrence(array) {\n function onlyLastUnique(value, index, self) {\n return self.lastIndexOf(value) === index;\n }\n return array.filter(onlyLastUnique);\n }\n function logError(error) {\n var console = window.console;\n if (console && console.error) {\n console.error(error);\n }\n }\n function findElement(selectorChain) {\n if (selectorChain.constructor != Array) {\n selectorChain = [selectorChain];\n }\n var $area = $(selectorChain[0]);\n for (var i = 1; i < selectorChain.length; i++) {\n $area = $area.find(selectorChain[i]);\n }\n return $area;\n }\n function toRgbColor(hexColor) {\n if (hexColor && hexColor.length < 6) {\n var index = 1;\n var hexParts = hexColor.split(\"\");\n if (hexParts[0] !== \"#\") {\n index = 0;\n }\n for (index; index < hexParts.length; index++) {\n hexParts[index] = hexParts[index] + hexParts[index];\n }\n hexColor = hexParts.join(\"\");\n }\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hexColor);\n return result ? parseInt(result[1], 16) + \", \" + parseInt(result[2], 16) + \", \" + parseInt(result[3], 16) : null;\n }\n function isRgbColor(color) {\n if (!color) {\n return false;\n }\n return color.indexOf(\",\") > -1 ? true : false;\n }\n function getColorAlphaValue(color) {\n if (color.toLowerCase() === \"transparent\") {\n return 0;\n }\n if (!isRgbColor(color)) {\n return 1;\n }\n if (color.indexOf(\"#\") !== -1) {\n color = toRgbColor(color);\n }\n var colorComponents = color.split(\",\").map(function (c) {\n return c.trim();\n });\n var alpha = colorComponents.length === 4 ? parseFloat((parseFloat(colorComponents[3].replace(/[()]/g, \"\")) / 255).toFixed(2)) : 1;\n return alpha;\n }\n function $ajax(url, ajaxSettings) {\n return new Promise(function (resolve, reject) {\n $.ajax(url, ajaxSettings).done(function (data) {\n return resolve(data);\n }).fail(function (xhr, status, error) {\n reject(toXhrErrorData(xhr, status, error));\n });\n });\n }\n function type(obj) {\n return Object.prototype.toString.call(obj).slice(8, -1);\n }\n function isEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (a !== a && b !== b) {\n return true;\n }\n if (a !== a && b === b || a === a && b !== b) {\n return false;\n }\n const typeA = type(a);\n const typeB = type(b);\n if (typeA !== typeB) {\n return false;\n }\n if (typeA === \"Array\") {\n if (a.length !== b.length) {\n return false;\n }\n const length = a.length;\n for (let i = 0; i < length; i++) {\n if (!isEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n if (typeA === \"Object\") {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) {\n return false;\n }\n const length = keysA.length;\n for (let i = 0; i < length; i++) {\n const key = keysA[i];\n if (!isEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n if (typeA === \"Date\") {\n return a.getTime() === b.getTime();\n }\n return false;\n }\n var utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isSpecialKey: isSpecialKey,\n rectangle: rectangle,\n generateGuidString: generateGuidString,\n trim: trim,\n replaceAll: replaceAll,\n lTrim: lTrim,\n rTrim: rTrim,\n stringFormat: stringFormat,\n escapeHtml: escapeHtml,\n tryParseInt: tryParseInt,\n tryParseFloat: tryParseFloat,\n parseToLocalDate: parseToLocalDate,\n adjustTimezone: adjustTimezone,\n unadjustTimezone: unadjustTimezone,\n areEqual: areEqual,\n reportSourcesAreEqual: reportSourcesAreEqual,\n areEqualArrays: areEqualArrays,\n isSvgSupported: isSvgSupported,\n isInternalServerError: isInternalServerError,\n isSystemArgumentException: isSystemArgumentException,\n isInvalidClientException: isInvalidClientException,\n isApplicationException: isApplicationException,\n isApplicationExceptionInstance: isApplicationExceptionInstance,\n isExceptionOfType: isExceptionOfType,\n exceptionTypeNamesMatch: exceptionTypeNamesMatch,\n parseJSON: parseJSON,\n getExceptionInstance: getExceptionInstance,\n extend: extend,\n each: each,\n selector: selector,\n isArray: isArray,\n loadScriptWithCallback: loadScriptWithCallback,\n loadScript: loadScript,\n filterUniqueLastOccurrence: filterUniqueLastOccurrence,\n logError: logError,\n findElement: findElement,\n toRgbColor: toRgbColor,\n isRgbColor: isRgbColor,\n getColorAlphaValue: getColorAlphaValue,\n $ajax: $ajax,\n type: type,\n isEqual: isEqual\n });\n function toPixels(value) {\n return parseInt(value, 10) || 0;\n }\n function getMargins(dom) {\n var $target = $(dom);\n return {\n left: toPixels($target.css(\"marginLeft\")),\n right: toPixels($target.css(\"marginRight\")),\n top: toPixels($target.css(\"marginTop\")),\n bottom: toPixels($target.css(\"marginBottom\"))\n };\n }\n function getPadding(dom) {\n var $target = $(dom);\n return {\n left: toPixels($target.css(\"paddingLeft\")),\n right: toPixels($target.css(\"paddingRight\")),\n top: toPixels($target.css(\"paddingTop\")),\n bottom: toPixels($target.css(\"paddingBottom\"))\n };\n }\n function getBorderWidth(dom) {\n var $target = $(dom);\n return {\n left: toPixels($target.css(\"borderLeftWidth\")),\n right: toPixels($target.css(\"borderRightWidth\")),\n top: toPixels($target.css(\"borderTopWidth\")),\n bottom: toPixels($target.css(\"borderBottomWidth\"))\n };\n }\n function scale(dom, scaleX, scaleY, originX, originY) {\n scaleX = scaleX || 1;\n scaleY = scaleY || 1;\n originX = originX || 0;\n originY = originY || 0;\n var scale2 = stringFormat(\"scale({0}, {1})\", [scaleX, scaleY]);\n var origin = stringFormat(\"{0} {1}\", [originX, originY]);\n $(dom).css(\"transform\", scale2).css(\"transform-origin\", origin);\n }\n var domUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getMargins: getMargins,\n getPadding: getPadding,\n getBorderWidth: getBorderWidth,\n scale: scale\n });\n var _a;\n var sr$1 = {\n // warning and error string resources\n controllerNotInitialized: \"Controller is not initialized.\",\n noReportInstance: \"No report instance.\",\n missingTemplate: \"!obsolete resource!\",\n noReport: \"No report.\",\n noReportDocument: \"No report document.\",\n missingOrInvalidParameter: \"There are missing or invalid parameter values. Please input valid data for the following parameters:\\n\",\n invalidParameter: \"Please input a valid value.\",\n invalidDateTimeValue: \"Please input a valid date.\",\n parameterIsEmpty: \"Parameter value cannot be empty.\",\n cannotValidateType: \"Cannot validate parameter of type {type}.\",\n loadingFormats: \"Loading...\",\n loadingReport: \"Loading report...\",\n preparingDownload: \"Preparing document to download. Please wait...\",\n preparingPrint: \"Preparing document to print. Please wait...\",\n errorLoadingTemplates: \"Error loading the report viewer's templates. (trvTemplateUrl = '{0}').\",\n errorServiceUrl: \"Cannot access the Reporting REST service. (serviceUrl = '{0}'). Make sure the service address is correct and enable CORS if needed. (https://enable-cors.org)\",\n errorServiceVersion: \"The version of the Report Viewer '{1}' does not match the version of the Reporting REST Service '{0}'. Please make sure both are running same version.\",\n loadingReportPagesInProgress: \"{0} pages loaded so far...\",\n loadedReportPagesComplete: \"Done. Total {0} pages loaded.\",\n noPageToDisplay: \"No page to display.\",\n errorDeletingReportInstance: \"Error deleting report instance: '{0}'.\",\n errorRegisteringViewer: \"Error registering the viewer with the service.\",\n noServiceClient: \"No serviceClient has been specified for this controller.\",\n errorRegisteringClientInstance: \"Error registering client instance.\",\n errorCreatingReportInstance: \"Error creating report instance (Report = '{0}').\",\n errorCreatingReportDocument: \"Error creating report document (Report = '{0}'; Format = '{1}').\",\n unableToGetReportParameters: \"Unable to get report parameters.\",\n errorObtainingAuthenticationToken: \"Error obtaining authentication token.\",\n clientExpired: \"Click 'Refresh' to restore client session.\",\n promisesChainStopError: \"Error shown. Throwing promises chain stop error.\",\n renderingCanceled: \"Report processing was canceled.\",\n tryReportPreview: \"The report may now be previewed.\",\n // viewer template string resources\n parameterEditorSelectNone: \"clear selection\",\n parameterEditorSelectAll: \"select all\",\n parametersAreaPreviewButton: \"Preview\",\n menuNavigateBackwardText: \"Navigate Backward\",\n menuNavigateBackwardTitle: \"Navigate Backward\",\n menuNavigateForwardText: \"Navigate Forward\",\n menuNavigateForwardTitle: \"Navigate Forward\",\n menuStopRenderingText: \"Stop Rendering\",\n menuStopRenderingTitle: \"Stop Rendering\",\n menuRefreshText: \"Refresh\",\n menuRefreshTitle: \"Refresh\",\n menuFirstPageText: \"First Page\",\n menuFirstPageTitle: \"First Page\",\n menuLastPageText: \"Last Page\",\n menuLastPageTitle: \"Last Page\",\n menuPreviousPageTitle: \"Previous Page\",\n menuNextPageTitle: \"Next Page\",\n menuPageNumberTitle: \"Page Number Selector\",\n menuDocumentMapTitle: \"Toggle Document Map\",\n menuParametersAreaTitle: \"Toggle Parameters Area\",\n menuZoomInTitle: \"Zoom In\",\n menuZoomOutTitle: \"Zoom Out\",\n menuPageStateTitle: \"Toggle FullPage/PageWidth\",\n menuPrintText: \"Print...\",\n menuContinuousScrollText: \"Toggle Continuous Scrolling\",\n menuSendMailText: \"Send an email\",\n menuPrintTitle: \"Print\",\n menuContinuousScrollTitle: \"Toggle Continuous Scrolling\",\n menuSendMailTitle: \"Send an email\",\n menuExportText: \"Export\",\n menuExportTitle: \"Export\",\n menuPrintPreviewText: \"Toggle Print Preview\",\n menuPrintPreviewTitle: \"Toggle Print Preview\",\n menuSearchText: \"Search\",\n menuSearchTitle: \"Toggle Search\",\n menuSideMenuTitle: \"Toggle Side Menu\",\n sendEmailFromLabel: \"From:\",\n sendEmailToLabel: \"To:\",\n sendEmailCCLabel: \"CC:\",\n sendEmailSubjectLabel: \"Subject:\",\n sendEmailFormatLabel: \"Format:\",\n sendEmailSendLabel: \"Send\",\n sendEmailCancelLabel: \"Cancel\",\n // accessibility string resources\n ariaLabelPageNumberSelector: \"Page number selector. Showing page {0} of {1}.\",\n ariaLabelPageNumberEditor: \"Page number editor\",\n ariaLabelExpandable: \"Expandable\",\n ariaLabelSelected: \"Selected\",\n ariaLabelParameter: \"parameter\",\n ariaLabelErrorMessage: \"Error message\",\n ariaLabelParameterInfo: \"Contains {0} options\",\n ariaLabelMultiSelect: \"Multiselect\",\n ariaLabelMultiValue: \"Multivalue\",\n ariaLabelSingleValue: \"Single value\",\n ariaLabelParameterDateTime: \"DateTime\",\n ariaLabelParameterString: \"String\",\n ariaLabelParameterNumerical: \"Numerical\",\n ariaLabelParameterBoolean: \"Boolean\",\n ariaLabelParametersAreaPreviewButton: \"Preview the report\",\n ariaLabelMainMenu: \"Main menu\",\n ariaLabelCompactMenu: \"Compact menu\",\n ariaLabelSideMenu: \"Side menu\",\n ariaLabelDocumentMap: \"Document map area\",\n ariaLabelDocumentMapSplitter: \"Document map area splitbar.\",\n ariaLabelParametersAreaSplitter: \"Parameters area splitbar.\",\n ariaLabelPagesArea: \"Report contents area\",\n ariaLabelSearchDialogArea: \"Search area\",\n ariaLabelSendEmailDialogArea: \"Send email area\",\n ariaLabelSearchDialogStop: \"Stop search\",\n ariaLabelSearchDialogOptions: \"Search options\",\n ariaLabelSearchDialogNavigateUp: \"Navigate up\",\n ariaLabelSearchDialogNavigateDown: \"Navigate down\",\n ariaLabelSearchDialogMatchCase: \"Match case\",\n ariaLabelSearchDialogMatchWholeWord: \"Match whole word\",\n ariaLabelSearchDialogUseRegex: \"Use regex\",\n ariaLabelMenuNavigateBackward: \"Navigate backward\",\n ariaLabelMenuNavigateForward: \"Navigate forward\",\n ariaLabelMenuStopRendering: \"Stop rendering\",\n ariaLabelMenuRefresh: \"Refresh\",\n ariaLabelMenuFirstPage: \"First page\",\n ariaLabelMenuLastPage: \"Last page\",\n ariaLabelMenuPreviousPage: \"Previous page\",\n ariaLabelMenuNextPage: \"Next page\",\n ariaLabelMenuPageNumber: \"Page number selector\",\n ariaLabelMenuDocumentMap: \"Toggle document map\",\n ariaLabelMenuParametersArea: \"Toggle parameters area\",\n ariaLabelMenuZoomIn: \"Zoom in\",\n ariaLabelMenuZoomOut: \"Zoom out\",\n ariaLabelMenuPageState: \"Toggle FullPage/PageWidth\",\n ariaLabelMenuPrint: \"Print\",\n ariaLabelMenuContinuousScroll: \"Continuous scrolling\",\n ariaLabelMenuSendMail: \"Send an email\",\n ariaLabelMenuExport: \"Export\",\n ariaLabelMenuPrintPreview: \"Toggle print preview\",\n ariaLabelMenuSearch: \"Search in report contents\",\n ariaLabelMenuSideMenu: \"Toggle side menu\",\n ariaLabelSendEmailFrom: \"From email address\",\n ariaLabelSendEmailTo: \"Recipient email address\",\n ariaLabelSendEmailCC: \"Carbon Copy email address\",\n ariaLabelSendEmailSubject: \"Email subject:\",\n ariaLabelSendEmailFormat: \"Report format:\",\n ariaLabelSendEmailSend: \"Send email\",\n ariaLabelSendEmailCancel: \"Cancel sending email\",\n // search dialog resources\n searchDialogTitle: \"Search in report contents\",\n searchDialogSearchInProgress: \"searching...\",\n searchDialogNoResultsLabel: \"No results\",\n searchDialogResultsFormatLabel: \"Result {0} of {1}\",\n searchDialogStopTitle: \"Stop Search\",\n searchDialogNavigateUpTitle: \"Navigate Up\",\n searchDialogNavigateDownTitle: \"Navigate Down\",\n searchDialogMatchCaseTitle: \"Match Case\",\n searchDialogMatchWholeWordTitle: \"Match Whole Word\",\n searchDialogUseRegexTitle: \"Use Regex\",\n searchDialogCaptionText: \"Find\",\n searchDialogPageText: \"page\",\n // Send Email dialog resources\n sendEmailDialogTitle: \"Send Email\",\n sendEmailValidationEmailRequired: \"Email field is required\",\n sendEmailValidationEmailFormat: \"Email format is not valid\",\n sendEmailValidationSingleEmail: \"The field accepts a single email address only\",\n sendEmailValidationFormatRequired: \"Format field is required\",\n errorSendingDocument: \"Error sending report document (Report = '{0}').\"\n };\n window.telerikReportViewer || (window.telerikReportViewer = {});\n (_a = window.telerikReportViewer).sr || (_a.sr = sr$1);\n var sr = sr || {};\n const userResources = (window.telerikReportViewer || {}).sr || {};\n const stringResources = $.extend({}, sr, userResources);\n var defaultOptions$7 = {};\n function Accessibility(options) {\n var controller;\n var pageInitialized = false;\n var areas;\n var lastArea;\n var keyMap = {\n CONFIRM_KEY: 13,\n // C\n CONTENT_AREA_KEY: 67,\n // D\n DOCUMENT_MAP_AREA_KEY: 68,\n // M\n MENU_AREA_KEY: 77,\n // P\n PARAMETERS_AREA_KEY: 80\n };\n options = $.extend({}, defaultOptions$7, options);\n controller = options.controller;\n if (!controller) {\n throw \"No controller (telerikReporting.ReportViewerController) has been specified.\";\n }\n controller.reportLoadComplete(function () {\n setAccessibilityUI();\n var content = findContentArea();\n if (content.length > 0) {\n content.focus();\n }\n }).pageReady(function (event, page) {\n initPage(page);\n pageInitialized = true;\n }).error(function (e, message) {\n focusOnErrorMessage();\n window.setTimeout(setAccessibilityUI, 500);\n });\n controller.updateUI(function (e) {\n if (pageInitialized) {\n setPageSelector();\n decorateMenuItems();\n }\n });\n function setAccessibilityUI() {\n if (!areas) {\n initAreas();\n $(document.body).off(\"keydown\", processKeyDown);\n $(document.body).on(\"keydown\", processKeyDown);\n }\n }\n function focusOnErrorMessage() {\n var $errMsg = $(\"div.trv-pages-area div.trv-error-message\");\n if ($errMsg.length === 0) {\n return;\n }\n $errMsg.attr(\"tabIndex\", 0);\n $errMsg.focus();\n }\n function initPage(page) {\n if (!page) {\n return;\n }\n setAccessibilityUI();\n var area = areas[keyMap.CONTENT_AREA_KEY];\n setContentAreaKeyDown(area);\n }\n function setPageSelector() {\n var pagers = document.querySelectorAll(\".trv-report-pager\");\n var pageNumber = controller.getCurrentPageNumber();\n var pageCount = controller.getPageCount();\n pagers.forEach(pager => {\n pager.setAttribute(\"aria-label\", stringFormat(stringResources.ariaLabelPageNumberSelector, [pageNumber, pageCount]));\n var pageInputs = pager.querySelectorAll(\"input[data-role=telerik_ReportViewer_PageNumberInput]\");\n pageInputs.forEach(input => {\n input.setAttribute(\"aria-label\", stringResources.ariaLabelPageNumberEditor);\n });\n });\n }\n function initAreas() {\n areas = {};\n areas[keyMap.DOCUMENT_MAP_AREA_KEY] = findDocumentMapArea();\n areas[keyMap.MENU_AREA_KEY] = findMenuArea();\n areas[keyMap.CONTENT_AREA_KEY] = findContentArea();\n var parametersArea = findParametersArea();\n if (parametersArea) {\n areas[keyMap.PARAMETERS_AREA_KEY] = parametersArea;\n setParameterEditorsKeyDown(parametersArea);\n }\n }\n function findContentArea() {\n return $(\"div[data-role=telerik_ReportViewer_PagesArea]\");\n }\n function findDocumentMapArea() {\n return $(\"div[data-role=telerik_ReportViewer_DocumentMapArea] div[data-role=treeview]\");\n }\n function findMenuArea() {\n return $(\"ul[data-role=telerik_ReportViewer_MainMenu]\");\n }\n function findParametersArea() {\n return $(\"div[data-role=telerik_ReportViewer_ParametersArea] div.trv-parameters-area-content\");\n }\n function processKeyDown(event) {\n if (!areas) {\n return;\n }\n if (!(event.altKey && event.ctrlKey)) {\n return;\n }\n var currentArea = areas[event.which];\n if (!currentArea) {\n return;\n }\n if (!IsAreaContainerVisible(currentArea.parent())) {\n return;\n }\n var className = \"k-focus\";\n if (lastArea) {\n lastArea.removeClass(className);\n }\n currentArea.addClass(className);\n currentArea.focus();\n lastArea = currentArea;\n event.preventDefault();\n }\n function setParameterEditorsKeyDown(parametersAreaContent) {\n if (parametersAreaContent.length === 0) {\n return;\n }\n var $paramsArea = parametersAreaContent.parent(\"div[data-role=telerik_ReportViewer_ParametersArea]\");\n if (!IsAreaContainerVisible($paramsArea)) {\n return;\n }\n Array.from(parametersAreaContent.children()).forEach(child => {\n $(child).on(\"keydown\", event => {\n if (event.which == keyMap.CONFIRM_KEY) {\n var paramsButton = $paramsArea.find(\"button.trv-parameters-area-preview-button\");\n paramsButton.focus();\n event.preventDefault();\n }\n });\n });\n }\n function IsAreaContainerVisible(container) {\n return container && !(container.hasClass(\"k-collapsed\") || container.hasClass(\"trv-hidden\"));\n }\n function setContentAreaKeyDown(contentArea) {\n if (!contentArea) {\n return;\n }\n var actions = contentArea.find(\"div [data-reporting-action]\");\n if (!actions.length > 0) {\n return;\n }\n Array.from(actions).forEach(action => {\n var $action = $(action);\n $action.on(\"keydown\", event => {\n if (event.which == keyMap.CONFIRM_KEY) {\n $action.trigger(\"click\");\n }\n });\n });\n }\n function decorateMenuItems() {\n var menuAreas = areas[keyMap.MENU_AREA_KEY];\n if (!menuAreas) {\n return;\n }\n Array.from(menuAreas).forEach(menu => {\n var $menu = $(menu);\n var menuItems = $menu.children(\"li.k-item\");\n Array.from(menuItems).forEach(menuItem => {\n var $menuItem = $(menuItem);\n if (!$menuItem.hasClass(\"trv-report-pager\")) {\n var ariaLabel = $menuItem.attr(\"aria-label\");\n var expandableSr = stringFormat(\". {0}\", [stringResources.ariaLabelExpandable]);\n var expandable = $menuItem.find(\"ul\").length > 0 && ariaLabel.indexOf(expandableSr) < 0 ? expandableSr : \"\";\n var selectedSr = stringFormat(\". {0}\", [stringResources.ariaLabelSelected]);\n var selected = $menuItem.hasClass(\"k-selected\") && ariaLabel.indexOf(selectedSr) < 0 ? selectedSr : \"\";\n var label = ariaLabel + expandable + selected;\n $menuItem.attr(\"aria-label\", label);\n if ($menuItem.hasClass(\"k-disabled\")) {\n $menuItem.attr(\"aria-disabled\", \"true\");\n } else {\n $menuItem.removeAttr(\"aria-disabled\");\n }\n }\n });\n });\n }\n function setKeyMap(keyMapValues) {\n keyMap = keyMapValues;\n areas = void 0;\n }\n function getKeyMap() {\n return keyMap;\n }\n return {\n getKeyMap,\n setKeyMap\n };\n }\n const GlobalSettings = {\n viewerInstances: []\n };\n class Binder {\n static bind($element, ...args) {\n const commands = args[0].commands;\n const viewerOptions = args[1];\n Binder.attachCommands($element, commands, viewerOptions);\n var plugins = $element.find('[data-role^=\"telerik_ReportViewer_\"]');\n Array.from(plugins).forEach(element => {\n var $element2 = $(element);\n var fn = $.fn[$element2.attr(\"data-role\")];\n if (typeof fn === \"function\") {\n fn.apply($element2, args);\n }\n });\n }\n static attachCommands($element, commands, viewerOptions) {\n var elementSelector = '[data-command^=\"telerik_ReportViewer_\"]';\n var customElementSelector = \"[data-target-report-viewer]\" + elementSelector;\n $element.on(\"click\", elementSelector, commandHandler);\n if (!GlobalSettings.CommandHandlerAttached) {\n $(document.body).on(\"click\", customElementSelector, customCommandHandler);\n GlobalSettings.CommandHandlerAttached = true;\n }\n Object.entries(commands).forEach(([key, command]) => {\n attachCommand(key, command, viewerOptions, $element);\n });\n function commandHandler(event) {\n var prefixedDataCommand = $(this).attr(\"data-command\");\n if (prefixedDataCommand) {\n var dataCommand = prefixedDataCommand.substring(\"telerik_ReportViewer_\".length);\n var cmd = commands[dataCommand];\n if (cmd && cmd.enabled()) {\n cmd.exec($(this).attr(\"data-command-parameter\"));\n }\n event.preventDefault();\n }\n }\n function customCommandHandler(event) {\n var $this = $(this);\n var prefixedDataCommand = $this.attr(\"data-command\");\n var reportViewerTarget = $this.attr(\"data-target-report-viewer\");\n if (prefixedDataCommand && reportViewerTarget) {\n var dataCommand = prefixedDataCommand.substring(\"telerik_ReportViewer_\".length);\n var reportViewer = $(reportViewerTarget).data(\"telerik_ReportViewer\");\n var cmd = reportViewer.commands[dataCommand];\n if (cmd.enabled()) {\n cmd.exec($(this).attr(\"data-command-parameter\"));\n }\n event.preventDefault();\n }\n }\n }\n }\n function attachCommand(dataCommand, cmd, viewerOptions, $element) {\n if (cmd) {\n var elementSelector = '[data-command=\"telerik_ReportViewer_' + dataCommand + '\"]';\n var customElementSelector = '[data-target-report-viewer=\"' + viewerOptions.selector + '\"]' + elementSelector;\n var $defaultElement = $element.find(elementSelector);\n var $customElement = $(customElementSelector);\n $(cmd).on(\"enabledChanged\", function (event) {\n (cmd.enabled() ? $.fn.removeClass : $.fn.addClass).call($defaultElement.parent(\"li\"), \"k-disabled\");\n (cmd.enabled() ? $.fn.removeClass : $.fn.addClass).call($customElement, viewerOptions.disabledButtonClass);\n }).on(\"checkedChanged\", function (event) {\n var defaultTarget = $defaultElement.parent(\"li\");\n (cmd.checked() ? $.fn.addClass : $.fn.removeClass).call(defaultTarget, getSelectedClassName(defaultTarget));\n (cmd.checked() ? $.fn.addClass : $.fn.removeClass).call($customElement, viewerOptions.checkedButtonClass);\n });\n }\n }\n function getSelectedClassName($element) {\n return $element.hasClass(\"trv-menu-toggleable\") ? \"k-selected !k-bg-primary\" : \"k-selected\";\n }\n const ViewModes = {\n INTERACTIVE: \"INTERACTIVE\",\n PRINT_PREVIEW: \"PRINT_PREVIEW\"\n };\n const PrintModes = {\n AUTO_SELECT: \"AUTO_SELECT\",\n FORCE_PDF_PLUGIN: \"FORCE_PDF_PLUGIN\",\n FORCE_PDF_FILE: \"FORCE_PDF_FILE\"\n };\n const PageModes = {\n SINGLE_PAGE: \"SINGLE_PAGE\",\n CONTINUOUS_SCROLL: \"CONTINUOUS_SCROLL\"\n };\n const ScaleModes = {\n FIT_PAGE_WIDTH: \"FIT_PAGE_WIDTH\",\n FIT_PAGE: \"FIT_PAGE\",\n SPECIFIC: \"SPECIFIC\"\n };\n const ParameterTypes = {\n INTEGER: \"System.Int64\",\n FLOAT: \"System.Double\",\n STRING: \"System.String\",\n DATETIME: \"System.DateTime\",\n BOOLEAN: \"System.Boolean\"\n };\n const ParameterEditorTypes = {\n COMBO_BOX: \"COMBO_BOX\",\n LIST_VIEW: \"LIST_VIEW\"\n };\n const ParametersAreaPositions = {\n RIGHT: \"RIGHT\",\n LEFT: \"LEFT\",\n TOP: \"TOP\",\n BOTTOM: \"BOTTOM\"\n };\n const DocumentMapAreaPositions = {\n RIGHT: \"RIGHT\",\n LEFT: \"LEFT\"\n };\n function Command(execCallback) {\n var enabledState = true;\n var checkedState = false;\n var cmd = {\n enabled: function (state) {\n if (arguments.length === 0) {\n return enabledState;\n }\n var newState = Boolean(state);\n enabledState = newState;\n $(this).trigger(\"enabledChanged\");\n return cmd;\n },\n checked: function (state) {\n if (arguments.length === 0) {\n return checkedState;\n }\n var newState = Boolean(state);\n checkedState = newState;\n $(this).trigger(\"checkedChanged\");\n return cmd;\n },\n exec: execCallback\n };\n return cmd;\n }\n var scaleTransitionMap = {};\n scaleTransitionMap[ScaleModes.FIT_PAGE] = {\n scaleMode: ScaleModes.FIT_PAGE_WIDTH\n };\n scaleTransitionMap[ScaleModes.FIT_PAGE_WIDTH] = {\n scaleMode: ScaleModes.SPECIFIC,\n scale: 1\n };\n scaleTransitionMap[ScaleModes.SPECIFIC] = {\n scaleMode: ScaleModes.FIT_PAGE\n };\n var scaleValues = [0.1, 0.25, 0.5, 0.75, 1, 1.5, 2, 4, 8];\n function CommandSet(options) {\n var controller = options.controller;\n if (!controller) {\n throw \"No options.controller.\";\n }\n var historyManager = options.history;\n if (!historyManager) {\n throw \"No options.history.\";\n }\n function getDocumentMapVisible() {\n var args = {};\n controller.getDocumentMapState(args);\n return Boolean(args.visible);\n }\n function getParametersAreaVisible() {\n var args = {};\n controller.getParametersAreaState(args);\n return Boolean(args.visible);\n }\n function getSideMenuVisible() {\n var args = {};\n controller.getSideMenuVisible(args);\n return Boolean(args.visible);\n }\n function getSearchDialogVisible() {\n var args = {};\n controller.getSearchDialogState(args);\n return Boolean(args.visible);\n }\n function getSendEmailDialogVisible() {\n var args = {};\n controller.getSendEmailDialogState(args);\n return Boolean(args.visible);\n }\n return {\n \"historyBack\": new Command(function () {\n historyManager.back();\n }),\n \"historyForward\": new Command(function () {\n historyManager.forward();\n }),\n \"stopRendering\": new Command(function () {\n controller.stopRendering();\n }),\n \"goToPrevPage\": new Command(function () {\n controller.navigateToPage(controller.getCurrentPageNumber() - 1);\n }),\n \"goToNextPage\": new Command(function () {\n controller.navigateToPage(controller.getCurrentPageNumber() + 1);\n }),\n \"goToFirstPage\": new Command(function () {\n controller.navigateToPage(1);\n }),\n \"goToLastPage\": new Command(function () {\n controller.navigateToPage(controller.getPageCount());\n }),\n \"goToPage\": new Command(function (pageNumber) {\n if (!isNaN(pageNumber)) {\n var pageCount = controller.getPageCount();\n if (pageNumber > pageCount) {\n pageNumber = pageCount;\n } else if (pageNumber < 1) {\n pageNumber = 1;\n }\n controller.navigateToPage(pageNumber);\n return pageNumber;\n }\n }),\n \"refresh\": new Command(function () {\n controller.refreshReport(true);\n }),\n \"export\": new Command(function (format) {\n if (format) {\n controller.exportReport(format);\n }\n }),\n \"print\": new Command(function () {\n controller.printReport();\n }),\n \"pageMode\": new Command(function () {\n controller.setPageMode(controller.getPageMode() === PageModes.SINGLE_PAGE ? PageModes.CONTINUOUS_SCROLL : PageModes.SINGLE_PAGE);\n }),\n \"togglePrintPreview\": new Command(function () {\n controller.setViewMode(controller.getViewMode() === ViewModes.PRINT_PREVIEW ? ViewModes.INTERACTIVE : ViewModes.PRINT_PREVIEW);\n }),\n \"toggleDocumentMap\": new Command(function () {\n controller.setDocumentMapVisible({\n visible: !getDocumentMapVisible()\n });\n }),\n \"toggleParametersArea\": new Command(function () {\n controller.setParametersAreaVisible({\n visible: !getParametersAreaVisible()\n });\n }),\n \"zoom\": new Command(function (scale) {\n controller.setScale(scale);\n }),\n \"zoomIn\": new Command(function () {\n zoom(1);\n }),\n \"zoomOut\": new Command(function () {\n zoom(-1);\n }),\n \"toggleSideMenu\": new Command(function () {\n controller.setSideMenuVisible({\n visible: !getSideMenuVisible()\n });\n }),\n \"toggleZoomMode\": new Command(function (e) {\n var scale = controller.getScale();\n var scaleMode = controller.getScaleMode();\n controller.setScale(scaleTransitionMap[scaleMode].scale || scale);\n controller.setScaleMode(scaleTransitionMap[scaleMode].scaleMode);\n }),\n \"toggleSearchDialog\": new Command(function () {\n controller.setSearchDialogVisible({\n visible: !getSearchDialogVisible()\n });\n }),\n \"toggleSendEmailDialog\": new Command(function () {\n controller.setSendEmailDialogVisible({\n visible: !getSendEmailDialogVisible()\n });\n })\n };\n function zoom(step) {\n controller.setScale(getZoomScale(controller.getScale(), step));\n }\n function getZoomScale(scale, steps) {\n var pos = -1;\n var length = scaleValues.length;\n for (var i = 0; i < length; i++) {\n var value = scaleValues[i];\n if (scale < value) {\n pos = i - 0.5;\n break;\n }\n if (scale === value) {\n pos = i;\n break;\n }\n }\n pos = pos + steps;\n if (steps >= 0) {\n pos = Math.round(pos - 0.49);\n } else {\n pos = Math.round(pos + 0.49);\n }\n if (pos < 0) {\n pos = 0;\n } else if (pos > length - 1) {\n pos = length - 1;\n }\n return scaleValues[pos];\n }\n }\n function IEHelper() {\n function getPdfPlugin() {\n var classIds = [\"AcroPDF.PDF.1\", \"PDF.PdfCtrl.6\", \"PDF.PdfCtrl.5\"];\n var plugin = null;\n $.each(classIds, function (index, classId) {\n try {\n plugin = new ActiveXObject(classId);\n if (plugin) {\n return false;\n }\n } catch (ex) {}\n });\n return plugin;\n }\n return {\n hasPdfPlugin: function () {\n return getPdfPlugin() !== null;\n }\n };\n }\n function FirefoxHelper() {\n function hasPdfPlugin2() {\n var matches = /Firefox[\\/\\s](\\d+\\.\\d+)/.exec(navigator.userAgent);\n if (null !== matches && matches.length > 1) {\n var version = parseFloat(matches[1]);\n if (version >= 19) {\n return false;\n }\n }\n var pdfPlugins = navigator.mimeTypes[\"application/pdf\"];\n var pdfPlugin = pdfPlugins !== null ? pdfPlugins.enabledPlugin : null;\n if (pdfPlugin) {\n var description = pdfPlugin.description;\n return description.indexOf(\"Adobe\") !== -1 && (description.indexOf(\"Version\") === -1 || parseFloat(description.split(\"Version\")[1]) >= 6);\n }\n return false;\n }\n return {\n hasPdfPlugin: function () {\n return hasPdfPlugin2();\n }\n };\n }\n function ChromiumHelper(defaultPlugin) {\n function hasPdfPlugin2() {\n var navPlugins = navigator.plugins;\n var found = false;\n $.each(navPlugins, function (key, value) {\n if (navPlugins[key].name === defaultPlugin || navPlugins[key].name === \"Adobe Acrobat\") {\n found = true;\n return false;\n }\n });\n return found;\n }\n return {\n hasPdfPlugin: function () {\n return hasPdfPlugin2();\n }\n };\n }\n function OtherBrowserHelper() {\n return {\n hasPdfPlugin: function () {\n return false;\n }\n };\n }\n function selectBrowserHelper() {\n if (window.navigator) {\n var userAgent = window.navigator.userAgent.toLowerCase();\n if (userAgent.indexOf(\"msie\") > -1 || userAgent.indexOf(\"mozilla\") > -1 && userAgent.indexOf(\"trident\") > -1) return IEHelper();else if (userAgent.indexOf(\"firefox\") > -1) return FirefoxHelper();else if (userAgent.indexOf(\"edg/\") > -1) return ChromiumHelper(\"Microsoft Edge PDF Plugin\");else if (userAgent.indexOf(\"chrome\") > -1) return ChromiumHelper(\"Chrome PDF Viewer\");else if (userAgent.indexOf(\"safari\") > -1) return ChromiumHelper(\"WebKit built-in PDF\");\n return OtherBrowserHelper();\n }\n return null;\n }\n var helper = selectBrowserHelper();\n var hasPdfPlugin = helper ? helper.hasPdfPlugin() : false;\n var PrintManager = function () {\n var iframe;\n function printDesktop(src) {\n var sameOriginUrl = null;\n if (!iframe) {\n iframe = document.createElement(\"iframe\");\n iframe.style.display = \"none\";\n iframe.onload = function () {\n try {\n iframe.contentDocument.execCommand(\"print\", true, null);\n } catch (e) {\n logError(e);\n } finally {\n if (sameOriginUrl) {\n (window.URL || window.webkitURL).revokeObjectURL(sameOriginUrl);\n }\n }\n };\n }\n if (isSameOriginUrl(src) && useMsBlobHandling()) {\n iframe.src = src;\n document.body.appendChild(iframe);\n return;\n }\n var request = new XMLHttpRequest();\n request.open(\"GET\", src, true);\n request.responseType = \"arraybuffer\";\n request.onload = function (e) {\n if (this.status === 200) {\n var localPdf = new Blob([this.response], {\n type: \"application/pdf\"\n });\n if (useMsBlobHandling()) {\n window.navigator.msSaveOrOpenBlob(localPdf);\n } else {\n sameOriginUrl = (window.URL || window.webkitURL).createObjectURL(localPdf);\n iframe.src = sameOriginUrl;\n document.body.appendChild(iframe);\n }\n } else {\n console.log(\"Could not retrieve remote PDF document.\");\n }\n };\n request.send();\n }\n function useMsBlobHandling() {\n return window.navigator && window.navigator.msSaveOrOpenBlob;\n }\n function isSameOriginUrl(url) {\n var location = window.location;\n var anchor = document.createElement(\"a\");\n anchor.setAttribute(\"href\", url);\n if (anchor.host == \"\") {\n anchor.href = anchor.href;\n }\n return location.hostname === anchor.hostname && location.protocol === anchor.protocol && location.port === anchor.port;\n }\n function printMobile(src) {\n window.open(src, \"_self\");\n }\n var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n var printFunc = isMobile ? printMobile : printDesktop;\n return {\n print: function (src) {\n printFunc(src);\n },\n getDirectPrintState: function () {\n return hasPdfPlugin;\n }\n };\n }();\n var ParameterValidators = function () {\n var validators = {};\n function validateParameter(parameter, value, validatorFunc, compareFunc) {\n var values = [].concat(value).map(function (value1) {\n return checkAvailableValues(parameter, validatorFunc(value1), compareFunc);\n });\n if (parameter.multivalue) {\n if (value == null || value.length == 0) {\n if (parameter.allowNull) {\n return value;\n }\n throw stringResources.invalidParameter;\n }\n return values;\n }\n return values[0];\n }\n function isNull(parameter, value) {\n return parameter.allowNull && -1 != [null, \"\", void 0].indexOf(value);\n }\n function checkAvailableValues(parameter, value, compareFunc) {\n if (parameter.availableValues) {\n var found = Array.from(parameter.availableValues).some(function (av) {\n return compareFunc(value, av.value);\n });\n if (!found) {\n if (parameter.allowNull && !value) {\n return value;\n }\n throw stringResources.invalidParameter;\n }\n }\n return value;\n }\n validators[ParameterTypes.STRING] = {\n validate: function (parameter, value) {\n return validateParameter(parameter, value, function (value2) {\n if (!value2) {\n if (parameter.allowNull) {\n return null;\n }\n if (parameter.allowBlank) {\n return \"\";\n }\n throw stringResources.parameterIsEmpty;\n }\n return value2;\n }, function (s1, s2) {\n return s1 == s2;\n });\n }\n };\n validators[ParameterTypes.FLOAT] = {\n validate: function (parameter, value) {\n return validateParameter(parameter, value, function (value2) {\n var num = tryParseFloat(value2);\n if (isNaN(num)) {\n if (isNull(parameter, value2)) {\n return null;\n }\n throw stringResources.parameterIsEmpty;\n }\n return num;\n }, function (f1, f2) {\n return tryParseFloat(f1) == tryParseFloat(f2);\n });\n }\n };\n validators[ParameterTypes.INTEGER] = {\n validate: function (parameter, value) {\n return validateParameter(parameter, value, function (value2) {\n var num = tryParseInt(value2);\n if (isNaN(num)) {\n if (isNull(parameter, value2)) {\n return null;\n }\n throw stringResources.parameterIsEmpty;\n }\n return num;\n }, function (n1, n2) {\n return tryParseInt(n1) == tryParseFloat(n2);\n });\n }\n };\n validators[ParameterTypes.DATETIME] = {\n validate: function (parameter, value) {\n return validateParameter(parameter, value, function (value2) {\n if (parameter.allowNull && (value2 === null || value2 === \"\" || value2 === void 0)) {\n return null;\n }\n if (!isNaN(Date.parse(value2))) {\n if (parameter.availableValues) {\n return value2;\n }\n return parseToLocalDate(value2);\n }\n throw stringResources.invalidDateTimeValue;\n }, function (d1, d2) {\n d1 = parseToLocalDate(d1);\n d2 = parseToLocalDate(d2);\n return d1.getTime() == d2.getTime();\n });\n }\n };\n validators[ParameterTypes.BOOLEAN] = {\n validate: function (parameter, value) {\n return validateParameter(parameter, value, function (value2) {\n if (-1 != [\"true\", \"false\"].indexOf(String(value2).toLowerCase())) {\n return Boolean(value2);\n }\n if (isNull(parameter, value2)) {\n return null;\n }\n throw stringResources.parameterIsEmpty;\n }, function (b1, b2) {\n return Boolean(b1) == Boolean(b2);\n });\n }\n };\n return {\n validate: function (parameter, value) {\n var v = validators[parameter.type];\n if (!v) {\n throw stringFormat(stringResources.cannotValidateType, parameter);\n }\n return v.validate(parameter, value);\n }\n };\n }();\n function isNumber(value) {\n return typeof value === \"number\" && isFinite(value);\n }\n function secondsToMilliseconds(seconds) {\n return seconds * 1e3;\n }\n function ServiceClientSentinel(serviceClient, clientID, sessionTimeoutSeconds) {\n if (!serviceClient) {\n throw stringResources.noServiceClient;\n }\n if (!isNumber(sessionTimeoutSeconds)) {\n throw \"sessionTimeoutSeconds must a number and must be finite\";\n }\n var interval;\n var pingMilliseconds;\n if (sessionTimeoutSeconds <= 120) {\n pingMilliseconds = secondsToMilliseconds(sessionTimeoutSeconds) / 2;\n } else {\n pingMilliseconds = secondsToMilliseconds(sessionTimeoutSeconds - 60);\n }\n function start() {\n if (pingMilliseconds <= 0) {\n return;\n }\n interval = setInterval(function () {\n serviceClient.keepClientAlive(clientID);\n }, pingMilliseconds);\n }\n function restart() {\n stop();\n start();\n }\n function stop() {\n if (interval) {\n clearInterval(interval);\n interval = null;\n }\n }\n return {\n start,\n restart,\n stop\n };\n }\n var __defProp$6 = Object.defineProperty;\n var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\n var __publicField$5 = (obj, key, value) => {\n __defNormalProp$6(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n };\n class EventEmitter extends EventTarget {\n constructor() {\n super();\n __publicField$5(this, \"_events\");\n __publicField$5(this, \"_eventsCount\");\n this._events = {};\n this._eventsCount = 0;\n }\n /**\n * @param {string} type\n * @param {(event: CustomEvent, ...args: any[]) => void} listener\n * @returns\n */\n addListener(type, listener) {\n if (typeof listener !== \"function\") {\n throw new TypeError(\"listener must be a function\");\n }\n if (!this._events[type]) {\n this._events[type] = [];\n }\n function wrappedListener(event) {\n listener.call(this, event, ...event.detail);\n }\n wrappedListener.listener = listener;\n this._events[type].push(wrappedListener);\n this._eventsCount++;\n this.addEventListener(type, wrappedListener.bind(this));\n return this;\n }\n /**\n * @alias addListener\n * @param {string} type\n * @param {(event: CustomEvent, ...args: any[]) => void} listener\n * @returns\n */\n on(type, listener) {\n return this.addListener(type, listener);\n }\n /**\n * @param {string} type\n * @param {any[]} args\n * @returns\n */\n trigger(type, ...args) {\n if (!this._events[type]) {\n return void 0;\n }\n const event = new CustomEvent(type, {\n detail: args,\n cancelable: true\n });\n return this.dispatchEvent(event);\n }\n /**\n * @alias trigger\n * @param {string} type\n * @param {any[]} args\n * @returns\n */\n emit(type, ...args) {\n return this.trigger(type, ...args);\n }\n /**\n * @param {string} type\n * @param {(event: CustomEvent, ...args: any[]) => void} listener\n * @returns\n */\n removeListener(type, listener) {\n if (!this._events[type]) {\n return this;\n }\n this._events[type] = this._events[type].filter(wrappedListener => {\n if (wrappedListener.listener !== listener) {\n return true;\n }\n this.removeEventListener(type, wrappedListener);\n return false;\n });\n if (this._events[type].length === 0) {\n delete this._events[type];\n this._eventsCount--;\n }\n return this;\n }\n /**\n * @param {string} type\n * @returns\n */\n removeAllListeners(type) {\n if (type === void 0) {\n Object.keys(this._events).forEach(eventType => {\n this.removeAllListeners(eventType);\n });\n return this;\n }\n if (this._events[type]) {\n this._events[type].forEach(wrappedListener => {\n this.removeEventListener(type, wrappedListener);\n });\n delete this._events[type];\n this._eventsCount--;\n }\n return this;\n }\n /**\n * @param {string} type\n * @param {(event: CustomEvent, ...args: any[]) => void} listener\n * @returns\n */\n off(type, listener) {\n if (type === void 0) {\n return this.removeAllListeners();\n }\n if (listener === void 0) {\n return this.removeAllListeners(type);\n }\n return this.removeListener(type, listener);\n }\n }\n var defaultOptions$6 = {\n pagePollIntervalMs: 500,\n documentInfoPollIntervalMs: 2e3\n };\n function ReportViewerController(options) {\n var controller = {};\n var clientId;\n var reportInstanceId;\n var reportDocumentId;\n var registerClientPromise;\n var registerInstancePromise;\n var documentFormatsPromise;\n var report;\n var parameterValues;\n var processedParameterValues;\n var currentPageNumber;\n var pageCount;\n var viewMode = ViewModes.INTERACTIVE;\n var pageMode = PageModes.CONTINUOUS_SCROLL;\n var loader;\n var printMode = PrintModes.AUTO_SELECT;\n var bookmarkNodes;\n var renderingExtensions;\n var clientHasExpired = false;\n var parameterValidators = ParameterValidators;\n var eventEmitter = new EventEmitter();\n var serviceClientSentinel;\n clearReportState();\n options = $.extend({}, defaultOptions$6, options);\n var settings = options.settings;\n if (typeof settings.getPrintMode === \"function\") {\n printMode = settings.getPrintMode();\n }\n var client = options.serviceClient;\n if (!client) {\n throw stringResources.noServiceClient;\n }\n clientId = settings.getClientId();\n initializeAndStartSentinel();\n function setClientId(id) {\n clientId = id;\n stopSentinel();\n settings.setClientId(clientId);\n initializeAndStartSentinel();\n }\n function clearClientId() {\n clientId = null;\n registerClientPromise = null;\n stopSentinel();\n serviceClientSentinel = null;\n settings.setClientId(null);\n }\n function initializeAndStartSentinel() {\n if (typeof settings.getKeepClientAlive !== \"function\") {\n throw new Error(\"Required settings.getKeepClientAlive() is not supplied for ReportViewerController\");\n }\n if (settings.getKeepClientAlive() && clientId) {\n return client.getClientsSessionTimeoutSeconds().then(function (sessionTimeout) {\n serviceClientSentinel = new ServiceClientSentinel(client, clientId, sessionTimeout);\n serviceClientSentinel.start();\n });\n }\n }\n function stopSentinel() {\n if (settings.getKeepClientAlive() && !!serviceClientSentinel) {\n serviceClientSentinel.stop();\n }\n }\n function getFormat() {\n if (viewMode === ViewModes.PRINT_PREVIEW) {\n return \"HTML5\";\n }\n return \"HTML5Interactive\";\n }\n function handleRequestError(xhrData, localizedMessage, suppressErrorBubbling) {\n var errorMessage = \"\";\n if (!xhrData.xhr) {\n errorMessage = xhrData;\n controller.raiseError(formatXhrError({\n \"responseText\": errorMessage\n }, null, null, null));\n throw errorMessage;\n }\n var xhr = xhrData.xhr;\n if (isInvalidClientException(xhr)) {\n onClientExpired();\n }\n var formattedError = formatXhrError(xhr, xhrData.status, isInternalServerError(xhrData.error) ? \"\" : xhrData.error, localizedMessage);\n controller.raiseError(formattedError);\n if (!suppressErrorBubbling) {\n if (isApplicationException(xhr)) {\n var exception = getExceptionInstance(xhr);\n if (exception) {\n throw exception;\n }\n }\n throw xhr.responseJSON && xhr.responseJSON.exceptionMessage ? xhr.responseJSON.exceptionMessage : stringResources.promisesChainStopError;\n }\n }\n function initializeClientAsync() {\n if (!registerClientPromise) {\n registerClientPromise = client.registerClient().catch(function (xhrErrorData) {\n handleRequestError(xhrErrorData, stringResources.errorRegisteringViewer);\n }).then(function (clientId2) {\n setClientId(clientId2);\n }).catch(clearClientId);\n }\n return registerClientPromise;\n }\n function registerInstanceAsync() {\n if (!registerInstancePromise) {\n registerInstancePromise = createReportInstanceAsync(report, parameterValues).then(function (instanceId) {\n reportInstanceId = instanceId;\n });\n registerInstancePromise.catch(function (errorMessage) {\n registerInstancePromise = null;\n });\n }\n return registerInstancePromise;\n }\n function clearReportState() {\n reportDocumentId = null;\n reportInstanceId = null;\n registerInstancePromise = null;\n resetPageNumbers();\n }\n function resetPageNumbers() {\n currentPageNumber = pageCount = 0;\n }\n function formatError(args) {\n var len = args.length;\n if (len === 1) {\n return args[0];\n }\n if (len > 1) {\n return stringFormat(args[0], Array.prototype.slice.call(args, 1));\n }\n return \"\";\n }\n function createReportInstanceAsync(report2, parameterValues2) {\n throwIfNotInitialized();\n return client.createReportInstance(clientId, report2, parameterValues2).catch(function (xhrErrorData) {\n handleRequestError(xhrErrorData, stringFormat(stringResources.errorCreatingReportInstance, [escapeHtml(report2)]));\n });\n }\n function registerDocumentAsync(format, deviceInfo, useCache, baseDocumentId, actionId) {\n throwIfNotInitialized();\n throwIfNoReportInstance();\n return client.createReportDocument(clientId, reportInstanceId, format, deviceInfo, useCache, baseDocumentId, actionId).catch(function (xhrErrorData) {\n handleRequestError(xhrErrorData, stringFormat(stringResources.errorCreatingReportDocument, [escapeHtml(report), escapeHtml(format)]));\n });\n }\n function sendDocumentAsync(documentId, args) {\n throwIfNotInitialized();\n throwIfNoReportInstance();\n return client.sendDocument(clientId, reportInstanceId, documentId, args).catch(function (xhrErrorData) {\n handleRequestError(xhrErrorData, stringFormat(stringResources.errorSendingDocument, [escapeHtml(report)]));\n });\n }\n function getDocumentInfoRecursive(clientId2, instanceId, documentId, options2) {\n if (!options2.isCanceled && instanceId === reportInstanceId) {\n return client.getDocumentInfo(clientId2, instanceId, documentId).catch(handleRequestError).then(function (info) {\n if (info && info.documentReady) {\n return info;\n }\n info[\"promise\"] = new Promise(function (resolve, reject) {\n window.setTimeout(resolve, options2.documentInfoPollIntervalMs);\n }).then(function () {\n return getDocumentInfoRecursive(clientId2, instanceId, documentId, options2);\n });\n return info;\n });\n }\n return Promise.reject();\n }\n function ReportLoader(reportHost, useCache, baseDocumentId, actionId) {\n var loaderOptions = {};\n function onReportDocumentRegistered(id) {\n if (reportHost) {\n reportDocumentId = id;\n onBeginLoadReport();\n getReportDocumentReady();\n }\n }\n function onBeforeLoadReport(args) {\n loaderOptions.documentInfoPollIntervalMs = options.pagePollIntervalMs;\n if (reportHost) {\n reportHost.beforeLoadReport(args);\n }\n }\n function onBeginLoadReport() {\n if (reportHost) {\n reportHost.beginLoadReport();\n }\n }\n function onReportLoadComplete(info) {\n if (reportHost) {\n reportHost.onReportLoadComplete(info);\n }\n }\n function onReportLoadProgress(info) {\n if (reportHost) {\n pageCount = info.pageCount;\n reportHost.reportLoadProgress(info);\n }\n }\n function getReportDocumentReady() {\n throwIfNotInitialized();\n throwIfNoReportInstance();\n throwIfNoReportDocument();\n progressReportDocumentReady(getDocumentInfoRecursive(clientId, reportInstanceId, reportDocumentId, loaderOptions));\n }\n function progressReportDocumentReady(getDocumentReadyPromise) {\n getDocumentReadyPromise.then(function (info) {\n if (info.documentReady) {\n onReportLoadComplete(info);\n } else {\n onReportLoadProgress(info);\n progressReportDocumentReady(info.promise);\n }\n });\n }\n function getPageAsync(pageNo) {\n return new Promise(function (resolve, reject) {\n var fn = function () {\n client.getPage(clientId, reportInstanceId, reportDocumentId, pageNo).catch(handleRequestError).then(function (pageInfo) {\n if (pageInfo.pageReady) {\n resolve(pageInfo);\n } else {\n window.setTimeout(fn, options.pagePollIntervalMs);\n }\n });\n };\n fn();\n });\n }\n function onBeginLoadPage(pageNo) {\n if (reportHost) {\n reportHost.beginLoadPage(pageNo);\n }\n }\n var loadPromise;\n function loadAsync() {\n if (!loadPromise) {\n var format = getFormat();\n var deviceInfo = createPreviewDeviceInfo();\n onBeforeLoadReport({\n deviceInfo\n });\n loadPromise = initializeClientAsync().then(registerInstanceAsync).then(function () {\n return registerDocumentAsync(format, deviceInfo, useCache, baseDocumentId, actionId);\n }).then(onReportDocumentRegistered);\n }\n return loadPromise;\n }\n function createPreviewDeviceInfo() {\n var deviceInfo = createDeviceInfo();\n deviceInfo.ContentOnly = true;\n deviceInfo.UseSVG = isSvgSupported();\n return deviceInfo;\n }\n return {\n beginLoad: function () {\n loadAsync();\n },\n beginGetPage: function (pageNo) {\n throwIfNotInitialized();\n loadAsync().then(function () {\n onBeginLoadPage(pageNo);\n return getPageAsync(pageNo);\n }).then(function (pageInfo) {\n loaderOptions.documentInfoPollIntervalMs = options.documentInfoPollIntervalMs;\n if (reportHost) {\n reportHost.pageReady(pageInfo);\n }\n });\n },\n getPageData: function (pageNo) {\n throwIfNotInitialized();\n return loadAsync().then(function () {\n return getPageAsync(pageNo);\n });\n },\n dispose: function () {\n reportHost = null;\n },\n cancel: function () {\n loaderOptions.isCanceled = true;\n }\n };\n }\n function createDeviceInfo() {\n var deviceInfo = {};\n if (settings.getEnableAccessibility()) {\n deviceInfo.enableAccessibility = true;\n deviceInfo.contentTabIndex = settings.contentTabIndex;\n }\n var args = {};\n controller.getSearchDialogState(args);\n var searchInitiated = args.visible;\n var searchMetadataOnDemand = settings.getSearchMetadataOnDemand();\n var enableSearch = !searchMetadataOnDemand || searchInitiated;\n deviceInfo.enableSearch = enableSearch;\n return deviceInfo;\n }\n function tryResolveClientErrorByExceptionType(exceptionType) {\n var parameterExceptionShortName = \"InvalidParameterException\";\n return exceptionTypeNamesMatch(exceptionType, parameterExceptionShortName, \"Telerik.Reporting.Services.Engine.\" + parameterExceptionShortName) ? stringResources.missingOrInvalidParameter : \"\";\n }\n function formatXhrError(xhr, status, error, localizedMessage) {\n var parsedXhr = parseJSON(xhr.responseText);\n var result = \"\";\n if (parsedXhr) {\n var errorMessage = tryResolveClientErrorByExceptionType(parsedXhr.exceptionType || parsedXhr.error);\n if (errorMessage) {\n return errorMessage;\n }\n result = escapeHtml(parsedXhr.message);\n var exceptionMessage = escapeHtml(parsedXhr.exceptionMessage || parsedXhr.error_description);\n if (exceptionMessage) {\n if (result) {\n result += \" \" + exceptionMessage;\n } else {\n result = exceptionMessage;\n }\n }\n } else {\n result = escapeHtml(xhr.responseText);\n }\n if (localizedMessage || error) {\n if (result) {\n result = \" \" + result;\n }\n result = escapeHtml(localizedMessage ? localizedMessage : error) + result;\n }\n if (isInvalidClientException(xhr)) {\n result += \"
          \" + stringResources.clientExpired;\n }\n return result;\n }\n function getReportPage(pageNo) {\n if (loader) {\n loader.beginGetPage(pageNo);\n }\n }\n function loadReportAsync(ignoreCache, baseDocumentId, actionId) {\n if (!report) {\n controller.raiseError(stringResources.noReport);\n return;\n }\n if (loader) {\n loader.dispose();\n loader = null;\n }\n clearReportState();\n loader = new ReportLoader(controller, !ignoreCache, baseDocumentId, actionId);\n loader.beginLoad();\n }\n function printReport() {\n throwIfNoReport();\n var deviceInfo = {\n ImmediatePrint: true\n };\n var printStartArgs = {\n deviceInfo,\n handled: false\n };\n controller.printStarted(printStartArgs);\n if (!printStartArgs.handled) {\n controller.setUIState({\n operationName: \"PrintInProgress\",\n inProgress: true\n });\n controller.showNotification({\n stringResources: \"preparingPrint\"\n });\n var canUsePlugin = getCanUsePlugin();\n var contentDisposition = canUsePlugin ? \"inline\" : \"attachment\";\n var queryString = \"response-content-disposition=\" + contentDisposition;\n exportAsync(\"PDF\", deviceInfo).then(function (info) {\n var url = client.formatDocumentUrl(info.clientId, info.instanceId, info.documentId, queryString);\n var printEndArgs = {\n url,\n handled: false\n };\n controller.printReady(printEndArgs);\n controller.hideNotification();\n controller.setUIState({\n operationName: \"PrintInProgress\",\n inProgress: false\n });\n if (!printEndArgs.handled) {\n PrintManager.print(url);\n }\n });\n }\n }\n function getCanUsePlugin() {\n switch (printMode) {\n case PrintModes.FORCE_PDF_FILE:\n case false:\n return false;\n case PrintModes.FORCE_PDF_PLUGIN:\n case true:\n return true;\n default:\n return PrintManager.getDirectPrintState();\n }\n }\n function exportReport(format, deviceInfo) {\n throwIfNoReport();\n if (!deviceInfo) {\n deviceInfo = createDeviceInfo();\n }\n var exportStartArgs = {\n format,\n deviceInfo,\n handled: false\n };\n controller.exportStarted(exportStartArgs);\n if (!exportStartArgs.handled) {\n var queryString = \"response-content-disposition=attachment\";\n controller.setUIState({\n operationName: \"ExportInProgress\",\n inProgress: true\n });\n controller.showNotification({\n stringResources: \"preparingDownload\"\n });\n exportAsync(format, exportStartArgs.deviceInfo).then(function (info) {\n var url = client.formatDocumentUrl(info.clientId, info.instanceId, info.documentId, queryString);\n var exportEndArgs = {\n url,\n format,\n handled: false,\n windowOpenTarget: \"_self\"\n };\n controller.exportReady(exportEndArgs);\n controller.hideNotification();\n controller.setUIState({\n operationName: \"ExportInProgress\",\n inProgress: false\n });\n if (!exportEndArgs.handled) {\n window.open(url, exportEndArgs.windowOpenTarget);\n }\n });\n }\n }\n function sendReport(args) {\n throwIfNoReport();\n if (!args.deviceInfo) {\n args.deviceInfo = createDeviceInfo();\n }\n var sendEmailStartArgs = {\n deviceInfo: args.deviceInfo,\n handled: false,\n format: args.format\n };\n controller.sendEmailStarted(sendEmailStartArgs);\n var queryString = \"response-content-disposition=attachment\";\n if (!sendEmailStartArgs.handled) {\n exportAsync(args.format, args.deviceInfo).then(function (info) {\n var url = client.formatDocumentUrl(info.clientId, info.instanceId, info.documentId, queryString);\n args[\"url\"] = url;\n args[\"handled\"] = false;\n controller.sendEmailReady(args);\n delete args.deviceInfo;\n if (!args.handled) {\n sendDocumentAsync(info.documentId, args);\n }\n });\n }\n }\n function exportAsync(format, deviceInfo) {\n throwIfNoReport();\n return initializeClientAsync().then(registerInstanceAsync).then(function () {\n return registerDocumentAsync(format, deviceInfo, true, reportDocumentId);\n }).then(function (documentId) {\n return waitReportDocumentReady(clientId, reportInstanceId, documentId, options);\n });\n }\n function waitReportDocumentReady(clientId2, reportInstanceId2, documentId, options2) {\n return new Promise(function (resolve, reject) {\n var fn = function (promise) {\n promise.then(function (info) {\n if (info.documentReady) {\n resolve({\n clientId: clientId2,\n instanceId: reportInstanceId2,\n documentId\n });\n } else {\n fn(info.promise);\n }\n });\n };\n fn(getDocumentInfoRecursive(clientId2, reportInstanceId2, documentId, options2));\n });\n }\n function execServerAction(actionId) {\n throwIfNoReport();\n throwIfNoReportInstance();\n throwIfNoReportDocument();\n onServerActionStarted();\n controller.refreshReportCore(false, reportDocumentId, actionId);\n }\n function throwIfNotInitialized() {\n if (!clientId) {\n throw stringResources.controllerNotInitialized;\n }\n }\n function throwIfNoReportInstance() {\n if (!reportInstanceId) {\n throw stringResources.noReportInstance;\n }\n }\n function throwIfNoReportDocument() {\n if (!reportDocumentId) {\n throw stringResources.noReportDocument;\n }\n }\n function throwIfNoReport() {\n if (!report) {\n throw stringResources.noReport;\n }\n }\n function eventFactory(event, args) {\n if (typeof args[0] === \"function\") {\n eventEmitter.on(event, args[0]);\n } else {\n eventEmitter.trigger(event, ...args);\n }\n return controller;\n }\n function loadParametersAsync(report2, paramValues) {\n return initializeClientAsync().then(function () {\n return client.getParameters(clientId, report2, paramValues || parameterValues || {}).catch(function (xhrErrorData) {\n handleRequestError(xhrErrorData, stringResources.unableToGetReportParameters);\n });\n });\n }\n function getDocumentFormatsAsync() {\n if (renderingExtensions) {\n return Promise.resolve(renderingExtensions);\n }\n if (!documentFormatsPromise) {\n documentFormatsPromise = client.getDocumentFormats().catch(handleRequestError);\n }\n return documentFormatsPromise;\n }\n function getServiceVersionAsync() {\n return client.getServiceVersion().catch(handleRequestError);\n }\n function getPageForBookmark(nodes, id) {\n if (nodes) {\n for (var i = 0, len = nodes.length; i < len; i++) {\n var node = nodes[i];\n if (node.id === id) {\n return node.page;\n }\n var page = getPageForBookmark(node.items, id);\n if (page) {\n return page;\n }\n }\n }\n return null;\n }\n function fixDataContractJsonSerializer(arr) {\n var dict = {};\n if (Array.isArray(arr)) {\n arr.forEach(function (pair) {\n dict[pair.Key] = pair.Value;\n });\n }\n return dict;\n }\n function changeReportSource(rs) {\n setStateReportSource(rs);\n controller.reportSourceChanged();\n }\n function setStateReportSource(rs) {\n if (typeof settings.setReportSource === \"function\") {\n settings.setReportSource(rs);\n }\n }\n function changePageNumber(pageNr) {\n settings.setPageNumber(pageNr);\n controller.currentPageChanged();\n }\n var actionHandlers = {\n \"sorting\": function (action) {\n execServerAction(action.Id);\n },\n \"toggleVisibility\": function (action) {\n execServerAction(action.Id);\n },\n \"navigateToReport\": function (action) {\n var args = action.Value;\n onServerActionStarted();\n controller.setReportSource({\n report: args.Report,\n parameters: fixDataContractJsonSerializer(args.ParameterValues)\n });\n controller.refreshReport(false);\n },\n \"navigateToUrl\": function (action) {\n var args = action.Value;\n window.open(args.Url, args.Target);\n },\n \"navigateToBookmark\": function (action) {\n var id = action.Value;\n var page = getPageForBookmark(bookmarkNodes, id);\n controller.navigateToPage(page, {\n type: \"bookmark\",\n id\n });\n },\n \"customAction\": function (action) {}\n };\n function onInteractiveActionExecuting(interactiveActionArgs) {\n controller.interactiveActionExecuting(interactiveActionArgs);\n }\n function executeReportAction(interactiveActionArgs) {\n var action = interactiveActionArgs.action;\n var handler = actionHandlers[action.Type];\n if (typeof handler === \"function\") {\n window.setTimeout(function () {\n onInteractiveActionExecuting(interactiveActionArgs);\n if (!interactiveActionArgs.cancel) {\n handler(action);\n }\n }, 0);\n }\n }\n function onServerActionStarted() {\n controller.serverActionStarted();\n }\n function onReportActionEnter(args) {\n controller.interactiveActionEnter({\n action: args.action,\n element: args.element\n });\n }\n function onReportActionLeave(args) {\n controller.interactiveActionLeave({\n action: args.action,\n element: args.element\n });\n }\n function onClientExpired() {\n clientHasExpired = true;\n controller.clientExpired();\n }\n function onReportToolTipOpening(args) {\n controller.toolTipOpening(args);\n }\n function getSearchResultsAsync(args) {\n if (!args.searchToken || args.searchToken === \"\") {\n return Promise.resolve(null);\n }\n return client.getSearchResults(clientId, reportInstanceId, reportDocumentId, args.searchToken, args.matchCase, args.matchWholeWord, args.useRegex).catch(handleSearchResultsError);\n }\n function handleSearchResultsError(xhrData) {\n if (!isSystemArgumentException(xhrData.xhr)) {\n handleRequestError(xhrData, null, true);\n throw null;\n }\n var exceptionDetails = parseJSON(xhrData.xhr.responseText);\n throw exceptionDetails.exceptionMessage;\n }\n function appendInvalidReportParameterNames(invalidParameters) {\n var errorElement = document.querySelector(\".trv-pages-area .trv-error-message\");\n var invalidParametersHolder = document.createElement(\"ul\");\n for (var index = 0; index < invalidParameters.length; index++) {\n var invalidParameterText = document.createElement(\"li\");\n invalidParameterText.classList.add(invalidParameters[index].name);\n invalidParameterText.innerText = stringFormat(\"{0} ({1})\", [invalidParameters[index].text, invalidParameters[index].name]);\n invalidParametersHolder.appendChild(invalidParameterText);\n }\n errorElement.appendChild(invalidParametersHolder);\n }\n controller.Events = {\n ERROR: \"error\",\n EXPORT_STARTED: \"exportStarted\",\n EXPORT_DOCUMENT_READY: \"exportDocumentReady\",\n PRINT_STARTED: \"printStarted\",\n PRINT_DOCUMENT_READY: \"printDocumentReady\",\n BEFORE_LOAD_PARAMETERS: \"beforeLoadParameters\",\n LOADED_REPORT_CHANGE: \"loadedReportChange\",\n BEFORE_LOAD_REPORT: \"beforeLoadReport\",\n BEGIN_LOAD_REPORT: \"beginLoadReport\",\n REPORT_LOAD_COMPLETE: \"reportLoadComplete\",\n REPORT_LOAD_PROGRESS: \"reportLoadProgress\",\n REPORT_LOAD_FAIL: \"reportLoadFail\",\n BEGIN_LOAD_PAGE: \"beginLoadPage\",\n PAGE_READY: \"pageReady\",\n VIEW_MODE_CHANGED: \"viewModeChanged\",\n PAGE_MODE_CHANGED: \"pageModeChanged\",\n PRINT_MODE_CHANGED: \"printModeChanged\",\n REPORT_SOURCE_CHANGED: \"reportSourceChanged\",\n NAVIGATE_TO_PAGE: \"navigateToPage\",\n CURRENT_PAGE_CHANGED: \"currentPageChanged\",\n GET_DOCUMENT_MAP_STATE: \"trv.GET_DOCUMENT_MAP_STATE\",\n SET_DOCUMENT_MAP_VISIBLE: \"trv.SET_DOCUMENT_MAP_VISIBLE\",\n GET_PARAMETER_AREA_STATE: \"trv.GET_PARAMETER_AREA_STATE\",\n SET_PARAMETER_AREA_VISIBLE: \"trv.SET_PARAMETER_AREA_VISIBLE\",\n SCALE_CHANGED: \"scaleChanged\",\n SCALE_MODE_CHANGED: \"scaleModeChanged\",\n SERVER_ACTION_STARTED: \"serverActionStarted\",\n SET_TOGGLE_SIDE_MENU: \"trv.SET_TOGGLE_SIDE_MENU\",\n GET_TOGGLE_SIDE_MENU: \"trv.GET_TOGGLE_SIDE_MENU\",\n UPDATE_UI: \"trv.UPDATE_UI\",\n CSS_LOADED: \"cssLoaded\",\n RELOAD_PARAMETERS: \"reloadParameters\",\n INTERACTIVE_ACTION_EXECUTING: \"interactiveActionExecuting\",\n INTERACTIVE_ACTION_ENTER: \"interactiveActionEnter\",\n INTERACTIVE_ACTION_LEAVE: \"interactiveActionLeave\",\n UPDATE_UI_INTERNAL: \"trv.UPDATE_UI_INTERNAL\",\n CLIENT_EXPIRED: \"clientExpired\",\n TOOLTIP_OPENING: \"tooltipOpening\",\n TOOLTIP_CLOSING: \"tooltipClosing\",\n PAGE_NUMBER: \"trv.PAGE_NUMBER\",\n PAGE_COUNT: \"trv.PAGE_COUNT\",\n GET_SEARCH_DIALOG_STATE: \"trv.GET_SEARCH_DIALOG_STATE\",\n GET_SEND_EMAIL_DIALOG_STATE: \"trv.GET_SEND_EMAIL_DIALOG_STATE\",\n SET_SEARCH_DIALOG_VISIBLE: \"trv.SET_SEARCH_DIALOG_VISIBLE\",\n SET_SEND_EMAIL_DIALOG_VISIBLE: \"trv.SET_SEND_EMAIL_DIALOG_VISIBLE\",\n SEND_EMAIL_STARTED: \"sendEmailStarted\",\n SEND_EMAIL_READY: \"sendEmailDocumentReady\",\n SHOW_NOTIFICATION: \"trv.SHOW_NOTIFICATION\",\n HIDE_NOTIFICATION: \"trv.HIDE_NOTIFICATION\",\n UI_STATE: \"trv.UI_STATE\",\n SCROLL_PAGE_READY: \"scrollPageReady\",\n UPDATE_SCROLL_PAGE_DIMENSIONS_READY: \"trv.UPDATE_SCROLL_PAGE_DIMENSIONS_READY\",\n MISSING_OR_INVALID_PARAMETERS: \"missingOrInvalidParameters\",\n RENDERING_STOPPED: \"renderingStopped\"\n };\n $.extend(controller, {\n getPageData: function (pageNumber) {\n if (loader) {\n return loader.getPageData(pageNumber);\n }\n return;\n },\n getReportSource: function () {\n if (report === null) {\n return null;\n }\n return {\n report,\n parameters: $.extend({}, parameterValues)\n };\n },\n setReportSource: function (rs) {\n if (rs === null) {\n report = parameterValues = null;\n clearReportState();\n changeReportSource(rs);\n return this;\n }\n report = rs.report;\n parameterValues = rs.parameters;\n changeReportSource(rs);\n return this;\n },\n updateSettings: function (settings2) {\n options.settings = $.extend({}, settings2, options.settings);\n },\n clearReportSource: function () {\n report = parameterValues = null;\n clearReportState();\n changeReportSource(void 0);\n return this;\n },\n getReportDocumentId: function () {\n return reportDocumentId;\n },\n setReportDocumentId: function (documentId) {\n reportDocumentId = documentId;\n },\n setParameters: function (paramValues) {\n parameterValues = paramValues;\n },\n setProcessedParameter: function (processedParamValues) {\n processedParameterValues = processedParamValues;\n },\n getPageCount: function () {\n return pageCount;\n },\n getCurrentPageNumber: function () {\n return currentPageNumber;\n },\n setCurrentPageNumber: function (pageNo) {\n var num = tryParseInt(pageNo);\n if (num !== currentPageNumber) {\n currentPageNumber = num;\n changePageNumber(num);\n }\n return this;\n },\n getScale: function () {\n return settings.getScale();\n },\n setScale: function (scale) {\n if (settings.getScale() !== scale) {\n settings.setScale(scale);\n controller.scaleChanged(scale);\n controller.setScaleMode(ScaleModes.SPECIFIC);\n }\n return controller;\n },\n getScaleMode: function () {\n return settings.getScaleMode();\n },\n setScaleMode: function (scaleMode) {\n if (settings.getScaleMode() !== scaleMode) {\n settings.setScaleMode(scaleMode);\n controller.scaleModeChanged(scaleMode);\n }\n return controller;\n },\n getViewMode: function () {\n return viewMode;\n },\n setViewMode: function (vm) {\n if (viewMode !== vm) {\n viewMode = vm;\n controller.viewModeChanged(vm);\n if (report) {\n controller.refreshReportCore(false, reportDocumentId);\n }\n }\n return controller;\n },\n getPageMode: function () {\n return pageMode;\n },\n setPageMode: function (psm) {\n if (pageMode !== psm) {\n pageMode = psm;\n controller.pageModeChanged(psm);\n if (report) {\n controller.refreshReportCore(false, reportDocumentId);\n }\n }\n return controller;\n },\n getPrintMode: function () {\n return printMode;\n },\n setPrintMode: function (pm) {\n if (printMode !== pm) {\n printMode = pm;\n controller.printModeChanged(pm);\n }\n return controller;\n },\n previewReport: function (ignoreCache, baseDocumentId, actionId) {\n controller.loadedReportChange();\n controller.refreshReportCore(ignoreCache, baseDocumentId, actionId);\n },\n refreshReportCore: function (ignoreCache, baseDocumentId, actionId) {\n loadReportAsync(ignoreCache, baseDocumentId, actionId);\n },\n stopRendering: function () {\n throwIfNoReport();\n throwIfNoReportInstance();\n throwIfNoReportDocument();\n client.deleteReportDocument(clientId, reportInstanceId, reportDocumentId).catch(handleRequestError).then(function () {\n if (loader) {\n loader.cancel();\n }\n resetPageNumbers();\n controller.renderingStopped();\n });\n },\n getReportParameters: function () {\n if (!parameterValues) {\n return [];\n }\n var paramsToBeExposed = {};\n for (var key in processedParameterValues) {\n var processedParam = processedParameterValues[key];\n var paramValue = parameterValues[key];\n if (processedParam && processedParam.availableValues) {\n if (processedParam.multivalue) {\n paramsToBeExposed[key] = addMultiComboParam(processedParam, paramValue, key);\n } else {\n paramsToBeExposed[key] = addSingleComboParam(processedParam, paramValue, key);\n }\n } else {\n paramsToBeExposed[key] = paramValue;\n }\n }\n return paramsToBeExposed;\n },\n refreshReport: function (ignoreCache, baseDocumentId, actionId) {\n controller.loadedReportChange();\n if (clientHasExpired) {\n clientHasExpired = false;\n clearClientId();\n }\n if (!report) {\n controller.raiseError(stringResources.noReport);\n return;\n }\n var loadParametersPromise = controller.loadParameters(null);\n loadParametersPromise.then(function (parameters) {\n var parameterValues2 = {};\n var invalidParameters = [];\n var hasError = false;\n Array.from(parameters || []).forEach(parameter => {\n try {\n var value = parameterValidators.validate(parameter, parameter.value);\n parameterValues2[parameter.id] = value;\n } catch (e) {\n hasError = true;\n invalidParameters.push(parameter);\n return;\n }\n });\n if (hasError) {\n controller.raiseError(stringResources.missingOrInvalidParameter);\n appendInvalidReportParameterNames(invalidParameters);\n controller.missingOrInvalidParameters();\n } else {\n controller.setParameters(parameterValues2);\n controller.refreshReportCore(ignoreCache, baseDocumentId, actionId);\n }\n });\n controller.reloadParameters(loadParametersPromise);\n },\n exportReport: function (format, deviceInfo) {\n exportReport(format, deviceInfo);\n },\n sendReport: function (args) {\n sendReport(args);\n },\n printReport: function () {\n printReport();\n },\n getReportPage: function (pageNumber) {\n getReportPage(pageNumber);\n },\n executeReportAction: function (interactiveActionArgs) {\n executeReportAction(interactiveActionArgs);\n },\n reportActionEnter: function (args) {\n onReportActionEnter(args);\n },\n reportActionLeave: function (args) {\n onReportActionLeave(args);\n },\n reportToolTipOpening: function (args) {\n onReportToolTipOpening(args);\n },\n loadParameters: function (paramValues) {\n if (report === null) {\n return {};\n }\n controller.beforeLoadParameters(paramValues === null);\n return loadParametersAsync(report, paramValues);\n },\n getDocumentFormats: function () {\n return getDocumentFormatsAsync();\n },\n getServiceVersion: function () {\n return getServiceVersionAsync();\n },\n setAuthenticationToken: function (token) {\n client.setAccessToken(token);\n },\n clientId: function () {\n return clientId;\n },\n onReportLoadComplete: function (info) {\n pageCount = info.pageCount;\n bookmarkNodes = info.bookmarkNodes;\n renderingExtensions = info.renderingExtensions;\n setStateReportSource(controller.getReportSource());\n controller.reportLoadComplete(info);\n },\n raiseError: function (...args) {\n var errorMessage = formatError(args);\n controller.error(errorMessage);\n },\n getSearchResults: function (args, results) {\n return getSearchResultsAsync(args);\n },\n // --- E V E N T S ---\n on: function (eventName, handler) {\n eventEmitter.on(eventName, handler);\n return controller;\n },\n trigger: function (eventName, ...args) {\n eventEmitter.trigger(eventName, ...args);\n return controller;\n },\n showNotification: function (...args) {\n return eventFactory(controller.Events.SHOW_NOTIFICATION, args);\n },\n hideNotification: function (...args) {\n return eventFactory(controller.Events.HIDE_NOTIFICATION, args);\n },\n setUIState: function (...args) {\n return eventFactory(controller.Events.UI_STATE, args);\n },\n error: function (...args) {\n return eventFactory(controller.Events.ERROR, args);\n },\n reloadParameters: function (...args) {\n return eventFactory(controller.Events.RELOAD_PARAMETERS, args);\n },\n exportStarted: function (...args) {\n return eventFactory(controller.Events.EXPORT_STARTED, args);\n },\n exportReady: function (...args) {\n return eventFactory(controller.Events.EXPORT_DOCUMENT_READY, args);\n },\n sendEmailStarted: function (...args) {\n return eventFactory(controller.Events.SEND_EMAIL_STARTED, args);\n },\n sendEmailReady: function (...args) {\n return eventFactory(controller.Events.SEND_EMAIL_READY, args);\n },\n printStarted: function (...args) {\n return eventFactory(controller.Events.PRINT_STARTED, args);\n },\n printReady: function (...args) {\n return eventFactory(controller.Events.PRINT_DOCUMENT_READY, args);\n },\n beforeLoadParameters: function (...args) {\n return eventFactory(controller.Events.BEFORE_LOAD_PARAMETERS, args);\n },\n loadedReportChange: function (...args) {\n return eventFactory(controller.Events.LOADED_REPORT_CHANGE, args);\n },\n beforeLoadReport: function (...args) {\n return eventFactory(controller.Events.BEFORE_LOAD_REPORT, args);\n },\n beginLoadReport: function (...args) {\n return eventFactory(controller.Events.BEGIN_LOAD_REPORT, args);\n },\n reportLoadComplete: function (...args) {\n return eventFactory(controller.Events.REPORT_LOAD_COMPLETE, args);\n },\n reportLoadProgress: function (...args) {\n return eventFactory(controller.Events.REPORT_LOAD_PROGRESS, args);\n },\n reportLoadFail: function (...args) {\n return eventFactory(controller.Events.REPORT_LOAD_FAIL, args);\n },\n beginLoadPage: function (...args) {\n return eventFactory(controller.Events.BEGIN_LOAD_PAGE, args);\n },\n pageReady: function (...args) {\n return eventFactory(controller.Events.PAGE_READY, args);\n },\n viewModeChanged: function (...args) {\n return eventFactory(controller.Events.VIEW_MODE_CHANGED, args);\n },\n pageModeChanged: function (...args) {\n return eventFactory(controller.Events.PAGE_MODE_CHANGED, args);\n },\n printModeChanged: function (...args) {\n return eventFactory(controller.Events.PRINT_MODE_CHANGED, args);\n },\n reportSourceChanged: function (...args) {\n return eventFactory(controller.Events.REPORT_SOURCE_CHANGED, args);\n },\n navigateToPage: function (...args) {\n return eventFactory(controller.Events.NAVIGATE_TO_PAGE, args);\n },\n currentPageChanged: function (...args) {\n return eventFactory(controller.Events.CURRENT_PAGE_CHANGED, args);\n },\n getDocumentMapState: function (...args) {\n return eventFactory(controller.Events.GET_DOCUMENT_MAP_STATE, args);\n },\n setDocumentMapVisible: function (...args) {\n return eventFactory(controller.Events.SET_DOCUMENT_MAP_VISIBLE, args);\n },\n getParametersAreaState: function (...args) {\n return eventFactory(controller.Events.GET_PARAMETER_AREA_STATE, args);\n },\n setParametersAreaVisible: function (...args) {\n return eventFactory(controller.Events.SET_PARAMETER_AREA_VISIBLE, args);\n },\n setSideMenuVisible: function (...args) {\n return eventFactory(controller.Events.SET_TOGGLE_SIDE_MENU, args);\n },\n getSideMenuVisible: function (...args) {\n return eventFactory(controller.Events.GET_TOGGLE_SIDE_MENU, args);\n },\n scaleChanged: function (...args) {\n return eventFactory(controller.Events.SCALE_CHANGED, args);\n },\n scaleModeChanged: function (...args) {\n return eventFactory(controller.Events.SCALE_MODE_CHANGED, args);\n },\n serverActionStarted: function (...args) {\n return eventFactory(controller.Events.SERVER_ACTION_STARTED, args);\n },\n cssLoaded: function (...args) {\n return eventFactory(controller.Events.CSS_LOADED, args);\n },\n interactiveActionExecuting: function (...args) {\n return eventFactory(controller.Events.INTERACTIVE_ACTION_EXECUTING, args);\n },\n interactiveActionEnter: function (...args) {\n return eventFactory(controller.Events.INTERACTIVE_ACTION_ENTER, args);\n },\n interactiveActionLeave: function (...args) {\n return eventFactory(controller.Events.INTERACTIVE_ACTION_LEAVE, args);\n },\n updateUI: function (...args) {\n return eventFactory(controller.Events.UPDATE_UI, args);\n },\n updateUIInternal: function (...args) {\n return eventFactory(controller.Events.UPDATE_UI_INTERNAL, args);\n },\n toolTipOpening: function (...args) {\n return eventFactory(controller.Events.TOOLTIP_OPENING, args);\n },\n pageNumberChange: function (...args) {\n return eventFactory(controller.Events.PAGE_NUMBER, args);\n },\n pageCountChange: function (...args) {\n return eventFactory(controller.Events.PAGE_COUNT, args);\n },\n getSearchDialogState: function (...args) {\n return eventFactory(controller.Events.GET_SEARCH_DIALOG_STATE, args);\n },\n getSendEmailDialogState: function (...args) {\n return eventFactory(controller.Events.GET_SEND_EMAIL_DIALOG_STATE, args);\n },\n setSearchDialogVisible: function (...args) {\n return eventFactory(controller.Events.SET_SEARCH_DIALOG_VISIBLE, args);\n },\n setSendEmailDialogVisible: function (...args) {\n return eventFactory(controller.Events.SET_SEND_EMAIL_DIALOG_VISIBLE, args);\n },\n scrollPageReady: function (...args) {\n return eventFactory(controller.Events.SCROLL_PAGE_READY, args);\n },\n updatePageDimensionsReady: function (...args) {\n return eventFactory(controller.Events.UPDATE_SCROLL_PAGE_DIMENSIONS_READY, args);\n },\n missingOrInvalidParameters: function (...args) {\n return eventFactory(controller.Events.MISSING_OR_INVALID_PARAMETERS, args);\n },\n renderingStopped: function (...args) {\n return eventFactory(controller.Events.RENDERING_STOPPED, args);\n },\n clientExpired: function (...args) {\n return eventFactory(controller.Events.CLIENT_EXPIRED, args);\n },\n dispose: function () {\n stopSentinel();\n this.serviceClientSentinel = null;\n }\n });\n return controller;\n }\n function addSingleComboParam(processedParam, paramValue, key) {\n try {\n var nameValuePair = processedParam.availableValues.find(obj => {\n return obj[\"value\"] === paramValue;\n });\n if (!nameValuePair) {\n throw new Error(`The available values of parameter ${key} do not contain Value property that equals ${paramValue}`);\n }\n return {\n valueMember: paramValue,\n displayMember: nameValuePair[\"name\"]\n };\n } catch (e) {\n logError(e);\n }\n }\n function addMultiComboParam(processedParam, paramValue, key) {\n var paramArr = [];\n for (var i in paramValue) {\n paramArr.push(addSingleComboParam(processedParam, paramValue[i], key));\n }\n return paramArr;\n }\n const Events$1 = {\n EXPORT_BEGIN: \"EXPORT_BEGIN\",\n EXPORT_END: \"EXPORT_END\",\n PRINT_BEGIN: \"PRINT_BEGIN\",\n PRINT_END: \"PRINT_END\",\n RENDERING_BEGIN: \"RENDERING_BEGIN\",\n RENDERING_END: \"RENDERING_END\",\n PAGE_READY: \"PAGE_READY\",\n ERROR: \"ERROR\",\n UPDATE_UI: \"UPDATE_UI\",\n INTERACTIVE_ACTION_EXECUTING: \"INTERACTIVE_ACTION_EXECUTING\",\n INTERACTIVE_ACTION_ENTER: \"INTERACTIVE_ACTION_ENTER\",\n INTERACTIVE_ACTION_LEAVE: \"INTERACTIVE_ACTION_LEAVE\",\n VIEWER_TOOLTIP_OPENING: \"VIEWER_TOOLTIP_OPENING\",\n SEND_EMAIL_BEGIN: \"SEND_EMAIL_BEGIN\",\n SEND_EMAIL_END: \"SEND_EMAIL_END\"\n };\n function HistoryManager(options) {\n var controller = options.controller;\n if (!controller) {\n throw \"No controller (telerikReporting.reportViewerController) has been specified.\";\n }\n var settings = options.settings;\n var history = settings.getHistory() || {\n records: [],\n position: -1\n };\n controller.loadedReportChange(function () {\n addToHistory(true);\n }).currentPageChanged(function () {\n updatePageInfo();\n }).reportLoadComplete(function (event, args) {\n addToHistory(false);\n }).clientExpired(function () {\n var records = history.records;\n for (var i = 0; i < records.length; i++) {\n records[i].reportDocumentId = null;\n }\n });\n function getCurrentRecord() {\n var records = history.records;\n if (records.length > 0) {\n return records[history.position];\n }\n return null;\n }\n function pushRecord(rec) {\n var records = history.records;\n var position = history.position;\n records = Array.prototype.slice.call(records, 0, position + 1);\n records.push(rec);\n history.records = records;\n history.position = records.length - 1;\n saveSettings();\n }\n function saveSettings() {\n settings.setHistory(history);\n }\n function updatePageInfo() {\n var currentRecord = getCurrentRecord();\n if (currentRecord) {\n currentRecord.pageNumber = controller.getCurrentPageNumber();\n currentRecord.viewMode = controller.getViewMode();\n currentRecord.reportDocumentId = controller.getReportDocumentId();\n saveSettings();\n }\n }\n function addToHistory(temp) {\n removeTempRecordsFromHistory();\n var currentRecord = getCurrentRecord();\n var rs = controller.getReportSource();\n if (!currentRecord || !reportSourcesAreEqual(currentRecord.reportSource, rs)) {\n pushRecord({\n reportSource: rs,\n pageNumber: 1,\n temp\n });\n }\n }\n function exec(currentRecord) {\n controller.setReportDocumentId(currentRecord.reportDocumentId);\n controller.setViewMode(currentRecord.viewMode);\n controller.setReportSource(currentRecord.reportSource);\n controller.refreshReport(false, currentRecord.reportDocumentId);\n controller.navigateToPage(currentRecord.pageNumber);\n }\n function canMove(step) {\n var position = history.position;\n var length = history.records.length;\n var newPos = position + step;\n return 0 <= newPos && newPos < length;\n }\n function move(step) {\n var position = history.position;\n var length = history.records.length;\n var newPos = position + step;\n if (newPos < 0) {\n newPos = 0;\n } else if (newPos >= length) {\n newPos = length - 1;\n }\n if (newPos != position) {\n history.position = newPos;\n saveSettings();\n exec(getCurrentRecord());\n }\n }\n function removeTempRecordsFromHistory() {\n var lastIndex = history.records.length - 1;\n while (lastIndex >= 0) {\n if (history.records[lastIndex].temp === true) {\n history.records.splice(lastIndex, 1);\n if (history.position >= lastIndex) {\n history.position--;\n }\n } else {\n break;\n }\n lastIndex--;\n }\n }\n return {\n back: function () {\n move(-1);\n },\n forward: function () {\n move(1);\n },\n canMoveBack: function () {\n return canMove(-1);\n },\n canMoveForward: function () {\n return canMove(1);\n },\n loadCurrent: function () {\n var rec = getCurrentRecord();\n if (rec) {\n exec(rec);\n }\n return Boolean(rec);\n }\n };\n }\n function TouchBehavior(dom, options) {\n var startDistance;\n var ignoreTouch;\n init(dom);\n function init(element) {\n if (typeof $.fn.kendoTouch === \"function\") {\n try {\n $(element).mousedown(function () {\n ignoreTouch = true;\n }).mouseup(function () {\n ignoreTouch = false;\n }).kendoTouch({\n multiTouch: true,\n enableSwipe: true,\n swipe: function (e) {\n if (!ignoreTouch) {\n onSwipe(e);\n }\n },\n gesturestart: function (e) {\n if (!ignoreTouch) {\n onGestureStart(e);\n }\n },\n gestureend: function (e) {\n if (!ignoreTouch) {\n onGestureEnd(e);\n }\n },\n gesturechange: function (e) {\n if (!ignoreTouch) {\n onGestureChange(e);\n }\n },\n doubletap: function (e) {\n if (!ignoreTouch) {\n onDoubleTap(e);\n }\n },\n touchstart: function (e) {\n if (!ignoreTouch) {\n fire(\"touchstart\");\n }\n }\n });\n } catch (e) {\n console.error(\"Instantiation of Kendo Touch threw an exception\", e);\n throw e;\n }\n }\n }\n function onDoubleTap(e) {\n fire(\"doubletap\", e);\n }\n function onGestureStart(e) {\n startDistance = kendo.touchDelta(e.touches[0], e.touches[1]).distance;\n }\n function onGestureEnd(e) {}\n function onGestureChange(e) {\n var current = kendo.touchDelta(e.touches[0], e.touches[1]).distance;\n onPinch({\n distance: current,\n lastDistance: startDistance\n });\n startDistance = current;\n }\n function onSwipe(e) {\n fire(\"swipe\", e);\n }\n function onPinch(e) {\n fire(\"pinch\", e);\n }\n function fire(func, args) {\n var handler = options[func];\n if (typeof handler === \"function\") {\n handler(args);\n }\n }\n }\n var Scroll = {\n controller: {},\n $placeholder: null,\n $pageContainer: null,\n pageContainer: null,\n $pageWrapper: null,\n pageWrapper: null,\n viewMode: null,\n loadedPage: {},\n scrollInProgress: false,\n enabled: false,\n pageCount: 0,\n additionalTopOffset: 130,\n pageDistance: 20,\n oldScrollTopPosition: 0,\n skeletonTemplate: '
          ',\n /**\n * Initialize the scroll object\n * Takes two parameters\n * - placeholder - PageArea dom element\n * - options - PageArea options\n */\n init: function init(placeholder, options) {\n var that = this;\n that.$placeholder = $(\"[data-selector='\" + options.viewerSelector + \"']\").find(placeholder);\n that.$pageContainer = this.$placeholder.find(\".trv-page-container\");\n that.pageContainer = this.$pageContainer[0];\n that.$pageWrapper = this.$placeholder.find(\".trv-page-wrapper\");\n that.pageWrapper = this.$pageWrapper[0];\n that.controller = options.controller;\n that.viewMode = null;\n that.loadedPage = {};\n that.scrollInProgress = false;\n that.enabled = false;\n that.pageCount = 0;\n that.controller.scaleChanged(function (e, args) {\n if (that.enabled) {\n setTimeout(function () {\n that._loadMorePages();\n that._keepCurrentPageInToView();\n }, 100);\n }\n }).loadedReportChange(function (event) {\n if (that.enabled) {\n that.disable();\n if (event.type !== \"loadedReportChange\") {\n setTimeout(function () {\n that.controller.getPageData(1).then(function (newPage) {\n that.renderPage(newPage);\n });\n });\n }\n }\n }).viewModeChanged(function (args) {\n if (that.enabled) {\n that.disable();\n }\n }).interactiveActionExecuting(function (e, args) {\n var actionType = args.action.Type;\n if (that.enabled && (actionType === \"sorting\" || actionType === \"toggleVisibility\")) {\n that.disable();\n }\n }).updatePageDimensionsReady(function (event, args) {\n if (that.enabled && that._currentPageNumber() > 0) {\n that._keepCurrentPageInToView();\n }\n }).pageCountChange(function (event, args) {\n if (that.enabled && that.pageCount !== args) {\n if (that._currentPageNumber() > 0 && !that.scrollInProgress) {\n that._loadMorePages();\n }\n if (args > 1) {\n that._initEvents();\n }\n that.pageCount = args;\n }\n });\n },\n /**\n * Returns true, when Telerik Report Viewer pageMode is set to CONTINUOUS_SCROLL or it is unset\n */\n isEnabled: function isEnabled() {\n return this.enabled;\n },\n disable: function disable() {\n this.$pageWrapper.empty();\n this.enabled = false;\n this.loadedPage = {};\n this.pageCount = 0;\n this.$placeholder.removeClass(\"scrollable\");\n this._unbind();\n },\n enable: function () {\n this.enabled = true;\n this.$placeholder.addClass(\"scrollable\");\n this._initEvents();\n },\n /**\n * Handle the page rendering called from the PageArea\n * Takes one parameter\n * page - the page object\n */\n renderPage: function renderPage(page) {\n var that = this;\n var pageViewMode = that.controller.getViewMode();\n var renderedPage = that.$placeholder.find('[data-page=\"' + page.pageNumber + '\"]');\n if (!that.enabled) {\n that.enabled = true;\n that.$placeholder.addClass(\"scrollable\");\n if (pageViewMode !== that.viewMode || !renderedPage.length) {\n that._updatePageArea(page);\n } else {\n that._render(page, true);\n this.$pageContainer.scrollTop(3);\n that._setCurrentPage(page.pageNumber);\n }\n that.viewMode = that.controller.getViewMode();\n that._loadMorePages();\n } else {\n if (pageViewMode !== that.viewMode || !renderedPage.length) {\n that._updatePageArea(page);\n } else {\n that._navigateToPage(page, renderedPage);\n }\n that.viewMode = that.controller.getViewMode();\n }\n },\n /**\n * Trigger scrolling animation to the specific element.\n */\n navigateToElement: function navigateToElement(offsetTop, pageNumber) {\n var that = this;\n that.scrollInProgress = true;\n if (that._isSkeletonScreen(null, pageNumber)) {\n that.controller.getPageData(pageNumber).then(function (newPage) {\n that._render(newPage, false);\n that.$pageContainer.animate({\n scrollTop: offsetTop\n }, 500, function () {\n that._setCurrentPage(pageNumber);\n setTimeout(function () {\n that.scrollInProgress = false;\n }, 100);\n });\n });\n } else {\n that.$pageContainer.animate({\n scrollTop: offsetTop\n }, 500, function () {\n that._setCurrentPage(pageNumber);\n setTimeout(function () {\n that.scrollInProgress = false;\n }, 100);\n });\n }\n },\n _setCurrentPage: function _setCurrentPage(pageNumber) {\n var that = this;\n if (pageNumber !== that._currentPageNumber()) {\n that.controller.setCurrentPageNumber(pageNumber);\n }\n if (that.controller.getPageCount() > 1) {\n that.$placeholder.find(\".k-state-default\").removeClass(\"k-state-default\");\n that.$placeholder.find('[data-page=\"' + pageNumber + '\"]').addClass(\"k-state-default\");\n }\n that._loadNextPreviousPage(pageNumber);\n },\n _updatePageArea: function _updatePageArea(page) {\n var that = this;\n var scrollTo = 0;\n var pageNumber = page.pageNumber;\n that.scrollInProgress = true;\n if (pageNumber > 1) {\n that._generateSkeletonScreens(pageNumber);\n }\n that._render(page, false);\n that._setCurrentPage(page.pageNumber);\n setTimeout(function () {\n scrollTo = pageNumber > 1 ? that.$placeholder.find('[data-page=\"' + pageNumber + '\"]').position().top : 0;\n that.$pageContainer.animate({\n scrollTop: scrollTo\n }, 0, function () {\n that.scrollInProgress = false;\n });\n }, 100);\n },\n _navigateToPage: function _navigateToPage(page, renderedPage) {\n var that = this;\n that.scrollInProgress = true;\n var scrollTo = renderedPage.position().top;\n var pages = that.$placeholder.find(\".trv-report-page\");\n var pageNumber = page.pageNumber;\n $(pages[0]).height();\n if (that._isSkeletonScreen(renderedPage, pageNumber)) {\n that.controller.getPageData(pageNumber).then(function (newPage) {\n that._render(newPage, false);\n that.$pageContainer.animate({\n scrollTop: scrollTo\n }, 500, function () {\n setTimeout(function () {\n that._setCurrentPage(newPage.pageNumber);\n that.scrollInProgress = false;\n });\n });\n });\n } else {\n that._updatePageContent(page, renderedPage);\n that.$pageContainer.animate({\n scrollTop: scrollTo\n }, 500, function () {\n setTimeout(function () {\n that._setCurrentPage(page.pageNumber);\n that.scrollInProgress = false;\n });\n });\n }\n },\n _updatePageContent: function _updatePageContent(page, renderedPage) {\n this._updatePageStyle(page);\n var pageNumber = page.pageNumber;\n var wrapper = $($.parseHTML(page.pageContent));\n var $pageContent = wrapper.find(\"div.sheet\");\n var $page = this.$placeholder.find('[data-page=\"' + pageNumber + '\"]');\n $pageContent.css(\"margin\", 0);\n $page.append($pageContent).append($('
          '));\n renderedPage.replaceWith($page);\n this.controller.scrollPageReady({\n page,\n target: $page\n });\n },\n _currentPageNumber: function _currentPageNumber() {\n return this.controller.getCurrentPageNumber();\n },\n _isSkeletonScreen: function _isSkeletonScreen(page, pageNumber) {\n if (!page) {\n page = this.$placeholder.find('[data-page=\"' + pageNumber + '\"]');\n }\n return page.hasClass(\"trv-skeleton-\" + pageNumber);\n },\n _addSkeletonScreen: function _addSkeletonScreen(pageNumber, position) {\n var that = this;\n var pageStyleNumber = position ? parseInt(pageNumber + 1) : parseInt(pageNumber - 1);\n var pageStyleBaseDom = that.$placeholder.find('[data-page=\"' + pageStyleNumber + '\"]');\n var pageStyle = pageStyleBaseDom.attr(\"style\");\n var contentStyle = pageStyleBaseDom.find(\"sheet\").attr(\"style\");\n var skeletonEl = stringFormat(that.skeletonTemplate, [pageNumber, pageStyle, contentStyle]);\n if (position) {\n that.$pageWrapper.prepend(skeletonEl);\n } else {\n that.$pageWrapper.append(skeletonEl);\n }\n },\n _generateSkeletonScreens: function _generateSkeletonScreens(upToPageNumber) {\n var that = this;\n var skeletonEl = \"\";\n var pageStyleBaseDom = this.$placeholder.find('[data-page=\"1\"]');\n var pageStyle = pageStyleBaseDom.attr(\"style\");\n var contentStyle = pageStyleBaseDom.find(\"sheet\").attr(\"style\");\n var lastPage = that.$placeholder.find(\".trv-report-page\").last().attr(\"data-page\");\n var index = lastPage ? parseInt(lastPage) + 1 : 1;\n for (index; index < upToPageNumber; index++) {\n skeletonEl = skeletonEl + stringFormat(that.skeletonTemplate, [index, pageStyle, contentStyle]);\n }\n that.$pageWrapper.append($(skeletonEl));\n },\n _loadMorePages: function _loadMorePages() {\n var that = this;\n var pageCount = that.controller.getPageCount();\n var isViewPortBiggerThanPageHeight = that.$pageContainer.innerHeight() > that.$pageWrapper.innerHeight();\n if (pageCount > 1) {\n if (isViewPortBiggerThanPageHeight) {\n that.scrollInProgress = true;\n var lastPage = parseInt(that.$placeholder.find(\".trv-report-page\").last().attr(\"data-page\"));\n var nextPage = lastPage + 1;\n if (nextPage <= pageCount) {\n that.controller.getPageData(nextPage).then(function (newPage) {\n that._render(newPage, false);\n that._loadMorePages();\n that.scrollInProgress = false;\n });\n }\n } else {\n that._loadVisiblePages();\n that.scrollInProgress = false;\n }\n }\n },\n _loadVisiblePages: function _loadVisiblePages() {\n var that = this;\n var pages = that.$placeholder.find(\".trv-report-page\");\n Array.from(pages).forEach(value => {\n var pageItem = $(value);\n var pageNumber = parseInt(pageItem.attr(\"data-page\"));\n if (that._scrolledInToView(pageItem) && that._isSkeletonScreen(pageItem, pageNumber)) {\n that.controller.getPageData(pageNumber).then(newPage => {\n that._render(newPage, false);\n });\n }\n });\n },\n _scrolledInToView: function _scrolledInToView(elem) {\n var pageCoords = elem[0].getBoundingClientRect();\n var parentCoords = elem.closest(\".trv-pages-area\")[0].getBoundingClientRect();\n var parentTop = parentCoords.top;\n var parentBottom = parentCoords.top + parentCoords.height;\n var pageTop = pageCoords.top;\n var pageBottom = pageTop + elem.outerHeight(true);\n var additionalTopOffset = this.additionalTopOffset + parentTop;\n var topVisible = pageTop > 0 && pageTop < parentBottom;\n var bottomVisible = pageBottom < parentBottom && pageBottom > additionalTopOffset;\n return topVisible || bottomVisible;\n },\n _render: function _render(page, empty) {\n var that = this;\n var pageNumber = page.pageNumber;\n var pageItem = that.$placeholder.find('[data-page=\"' + pageNumber + '\"]');\n if (!empty && pageItem && pageItem.length && !that._isSkeletonScreen(pageItem, pageNumber)) {\n return;\n }\n that.loadedPage[pageNumber] = page;\n that._updatePageStyle(page);\n var wrapper = $($.parseHTML(page.pageContent));\n var $pageContent = wrapper.find(\"div.sheet\");\n var $page = $('
          ');\n $pageContent.css(\"margin\", 0);\n $page.append($pageContent).append($('
          '));\n if (empty) {\n that.$pageWrapper.empty();\n }\n that.$pageWrapper.removeData().data(\"pageNumber\", pageNumber);\n var $skeletonPage = that.$placeholder.find(\".trv-skeleton-\" + pageNumber);\n if ($skeletonPage.length) {\n $skeletonPage.replaceWith($page);\n } else {\n that.$pageWrapper.append($page);\n }\n that.controller.scrollPageReady({\n page,\n target: $page\n });\n },\n _updatePageStyle: function _updatePageStyle(page) {\n var that = this;\n var lastLoadedPage = that.loadedPage[that._lastLoadedPage()] || page;\n var styleId = \"trv-\" + that.controller.clientId() + \"-styles\";\n var pageStyles;\n $(\"#\" + styleId).remove();\n pageStyles = $(\"\");\n pageStyles.append(lastLoadedPage.pageStyles);\n pageStyles.appendTo(\"head\");\n },\n _lastLoadedPage: function _lastLoadedPage() {\n var that = this;\n var lastKey;\n for (var key in that.loadedPage) {\n if (that.loadedPage.hasOwnProperty(key)) {\n lastKey = key;\n }\n }\n return lastKey;\n },\n _loadNextPreviousPage: function _loadNextPreviousPage(pageNumber) {\n var that = this;\n var nextPage;\n var previousPage;\n var nextItem;\n var previousItem;\n if (pageNumber < that.controller.getPageCount()) {\n nextPage = pageNumber + 1;\n nextItem = that.$placeholder.find('[data-page=\"' + nextPage + '\"]');\n }\n if (pageNumber > 1) {\n previousPage = pageNumber - 1;\n previousItem = that.$placeholder.find('[data-page=\"' + previousPage + '\"]');\n }\n if (previousItem && previousItem.length && that._isSkeletonScreen(previousItem, previousPage)) {\n that.controller.getPageData(previousPage).then(function (newPage) {\n that._render(newPage, false);\n });\n }\n if (nextItem && nextItem.length && that._isSkeletonScreen(nextItem, nextPage)) {\n that.controller.getPageData(nextPage).then(function (newPage) {\n that._render(newPage, false);\n });\n }\n },\n _clickPage: function _clickPage(pageDom) {\n var that = this;\n var currentPage = that._currentPageNumber();\n var pageNumber = parseInt(pageDom.attr(\"data-page\"));\n if (currentPage !== pageNumber) {\n if (that._isSkeletonScreen(pageDom, pageNumber)) {\n that.controller.getPageData(pageNumber).then(function (newPage) {\n that._render(newPage, false, true);\n that._setCurrentPage(newPage.pageNumber);\n });\n } else {\n that._setCurrentPage(pageNumber);\n }\n }\n },\n _initEvents: function _initEvents() {\n var that = this;\n that.$pageContainer.off(\"click\", \".trv-report-page\").on(\"click\", \".trv-report-page\", function (e) {\n that._clickPage($(e.currentTarget));\n });\n that.$pageContainer.scroll(function () {\n var pages = that.$placeholder.find(\".trv-report-page\");\n var scrollPosition = parseInt((that.$pageContainer.scrollTop() + that.$pageContainer.innerHeight()).toFixed(0));\n if (!that.scrollInProgress && that.oldScrollTopPosition !== scrollPosition) {\n if (that.oldScrollTopPosition > scrollPosition) {\n that._scrollUp(pages);\n } else {\n that._scrollDown(pages, scrollPosition);\n }\n }\n that.oldScrollTopPosition = scrollPosition;\n });\n that.$pageContainer.scroll(function () {\n var pages = that.$placeholder.find(\".trv-report-page\");\n var scrollPosition = parseInt((that.$pageContainer.scrollTop() + that.$pageContainer.innerHeight()).toFixed(0));\n if (!that.scrollInProgress && pages.length && that.oldScrollTopPosition !== scrollPosition) {\n that._advanceCurrentPage(pages);\n }\n });\n },\n _unbind: function () {\n var that = this;\n that.$pageContainer.off(\"click\", \".trv-report-page\");\n that.$pageContainer.off(\"scroll\");\n },\n _advanceCurrentPage: function _advanceCurrentPage(pages) {\n var that = this;\n var newCurrentPage = that._findNewCurrentPage(pages);\n var pageNumber;\n var currentPageNumber = that._currentPageNumber();\n var currentPageIsInToView = that._scrolledInToView(that.$placeholder.find('[data-page=\"' + currentPageNumber + '\"]'));\n if (newCurrentPage !== -1) {\n newCurrentPage = $(newCurrentPage);\n pageNumber = parseInt(newCurrentPage.attr(\"data-page\"));\n if (currentPageNumber !== pageNumber && !currentPageIsInToView) {\n if (that._isSkeletonScreen(newCurrentPage, pageNumber)) {\n that.controller.getPageData(pageNumber).then(function (newPage) {\n that._render(newPage, false, true);\n that._setCurrentPage(newPage.pageNumber);\n });\n } else {\n that._setCurrentPage(pageNumber);\n }\n }\n } else {\n console.log(\"Page not found - \", newCurrentPage);\n }\n },\n // Binary search\n _findNewCurrentPage: function _findNewCurrentPage(pages) {\n var that = this;\n var middleIndex = Math.floor(pages.length / 2);\n var result = that._findPageInViewPort(middleIndex, pages);\n if (pages.length === 1) {\n return pages[0];\n }\n if (result === 0) {\n return pages[middleIndex];\n } else if (result < 0 && pages.length > 1) {\n return that._findNewCurrentPage(pages.splice(middleIndex, Number.MAX_VALUE));\n } else if (result > 0 && pages.length > 1) {\n return that._findNewCurrentPage(pages.splice(0, middleIndex));\n }\n return -1;\n },\n _findPageInViewPort: function _findPageInViewPort(index, pages) {\n var pageItem = this.$placeholder.find(pages[index]);\n var pageCoords = pageItem[0].getBoundingClientRect();\n var parentCoords = pageItem.closest(\".trv-pages-area\")[0].getBoundingClientRect();\n var parentTop = parentCoords.top;\n parentCoords.top + parentCoords.height;\n var pageTop = pageCoords.top;\n var pageBottom = pageTop + pageItem.outerHeight(true);\n var additionalTopOffset = this.additionalTopOffset + parentTop;\n var isCurentPage = pageTop <= additionalTopOffset && additionalTopOffset < pageBottom;\n if (isCurentPage) {\n return 0;\n }\n if (pageBottom < additionalTopOffset) {\n return -1;\n }\n return 1;\n },\n _scrollDown: function _scrollDown(pages, scrollPosition) {\n var that = this;\n if (scrollPosition >= that.pageContainer.scrollHeight - 5) {\n var lastPage = parseInt($(pages[pages.length - 1]).attr(\"data-page\"));\n var nextPage = lastPage + 1;\n if (that._currentPageNumber() < nextPage && nextPage <= that.controller.getPageCount()) {\n that._addSkeletonScreen(nextPage, false);\n that.controller.getPageData(nextPage).then(function (newPage) {\n that._render(newPage, false);\n });\n }\n } else {\n that._advanceCurrentPage(pages);\n that._loadVisiblePages();\n }\n },\n _scrollUp: function _scrollUp(pages) {\n var that = this;\n if (that.$pageContainer.scrollTop() === 0) {\n var firstPage = $(pages[0]);\n var pageNumber = parseInt(firstPage.attr(\"data-page\"));\n var previousPage = pageNumber - 1;\n if (that._currentPageNumber() > previousPage && previousPage >= 1) {\n that._addSkeletonScreen(previousPage, true);\n that.controller.getPageData(previousPage).then(function (newPage) {\n that._render(newPage, false);\n that.$pageContainer.scrollTop(3);\n });\n }\n } else {\n that._advanceCurrentPage(pages);\n that._loadVisiblePages();\n }\n },\n _keepCurrentPageInToView: function _keepCurrentPageInToView() {\n var that = this;\n var currentPage = that.$placeholder.find('[data-page=\"' + that._currentPageNumber() + '\"]');\n var currentPagePosition = currentPage.position().top;\n var currentPageHeight = currentPage.innerHeight();\n var pageContainerHeight = that.$pageContainer.innerHeight();\n var emptyView;\n that.scrollInProgress = true;\n if (currentPageHeight < pageContainerHeight) {\n emptyView = (pageContainerHeight - currentPageHeight) / 2;\n currentPagePosition = parseInt(currentPagePosition - emptyView);\n }\n that.$pageContainer.animate({\n scrollTop: currentPagePosition\n }, 0, function () {\n setTimeout(function () {\n that.scrollInProgress = false;\n }, 100);\n });\n }\n };\n var UIFreezeCoordinator = {\n $placeholder: null,\n $scrollableContainer: null,\n // Holds all items initial position per container\n itemsInitialState: {},\n // Holds the bounds of the frozen areas by X per container\n xFrozenAreasBounds: {},\n // Holds the bounds of the frozen areas by Y per container\n yFrozenAreasBounds: {},\n freezeMaxZIndex: {},\n zIndex: 1,\n // Holds default background-color value per container\n freezeBGColor: {},\n // Holds whether freezing has been applied per container.\n currentlyFrozenContainer: {\n vertical: {},\n horizontal: {}\n },\n isInitialize: false,\n scaleFactor: null,\n /**\n * Initialize the uiFreezeCoordinator object\n * Takes one parameter\n * - $placeholder - PageArea jQuery DOM element\n */\n init: function ($placeholder) {\n this.$placeholder = $placeholder;\n this.$scrollableContainer = $placeholder.find(\".trv-page-container\");\n if (this.isInitialize) {\n this.reset($placeholder);\n }\n this._attachToScrollEvent();\n this.isInitialize = true;\n },\n reset: function ($placeholder) {\n this.$placeholder = $placeholder;\n this.$scrollableContainer = $placeholder.find(\".trv-page-container\");\n this.itemsInitialState = {};\n this.xFrozenAreasBounds = {};\n this.yFrozenAreasBounds = {};\n this.currentlyfreezedContainer = {\n vertical: {},\n horizontal: {}\n };\n },\n setScaleFactor: function (scale) {\n this.scaleFactor = scale;\n },\n /**\n * Initializing scroll listener\n */\n _attachToScrollEvent: function () {\n var thisInstance = this;\n this.$scrollableContainer.scroll(function updateFreezeUIOnScroll() {\n var $freezeItems = thisInstance.$scrollableContainer.find(\"div[data-sticky-id]\");\n if ($freezeItems.length) {\n var tableIDs = $freezeItems.map(function (index2, $element) {\n return $($element).attr(\"data-sticky-id\");\n }).get();\n var uniqueIDs = tableIDs.filter(function (item, index2) {\n return index2 === tableIDs.indexOf(item);\n });\n var scrollableContainerScrollTop = thisInstance.$scrollableContainer.scrollTop();\n var scrollableContainerScrollLeft = thisInstance.$scrollableContainer.scrollLeft();\n for (var index = 0; index < uniqueIDs.length; index++) {\n var freezeItemsContainerID = uniqueIDs[index];\n if (!thisInstance.itemsInitialState[freezeItemsContainerID]) {\n thisInstance._saveFreezeItemsInitialState(freezeItemsContainerID);\n }\n thisInstance._updateFreezeItemsOnScroll(freezeItemsContainerID, scrollableContainerScrollTop, scrollableContainerScrollLeft);\n }\n }\n });\n },\n _saveFreezeItemsInitialState: function (freezeItemsContainerID) {\n var $allFreezeItems = $(\"[data-sticky-direction][data-sticky-id='\" + freezeItemsContainerID + \"']\");\n var $freezeActions = $(\"[data-reporting-action][data-sticky-id='\" + freezeItemsContainerID + \"']\");\n var yAreaBounds;\n var xAreaBounds;\n this.itemsInitialState[freezeItemsContainerID] = {};\n this.freezeBGColor[freezeItemsContainerID] = $(\"[data-id='\" + freezeItemsContainerID + \"']\").attr(\"data-sticky-bg-color\");\n for (var index = 0; index < $allFreezeItems.length; index++) {\n var $item = $($allFreezeItems[index]);\n var scrollDirection = $item.attr(\"data-sticky-direction\");\n var itemID = $item.attr(\"data-id\");\n var itemPosition = $item.position();\n var scaledItemPosition = {\n top: itemPosition.top / this.scaleFactor,\n left: itemPosition.left / this.scaleFactor\n };\n var itemBounds = rectangle(scaledItemPosition.left, scaledItemPosition.top, $item.outerWidth(true) * this.scaleFactor, $item.outerHeight(true) * this.scaleFactor);\n switch (scrollDirection) {\n case \"Vertical\":\n yAreaBounds = yAreaBounds ? yAreaBounds.union(itemBounds) : itemBounds;\n break;\n case \"Horizontal\":\n xAreaBounds = xAreaBounds ? xAreaBounds.union(itemBounds) : itemBounds;\n break;\n }\n this._saveFreezeItemInitialState(freezeItemsContainerID, $item, itemID, scaledItemPosition);\n }\n this.freezeMaxZIndex[freezeItemsContainerID] = $freezeActions.length ? $freezeActions.css(\"zIndex\") : this.zIndex;\n this.yFrozenAreasBounds[freezeItemsContainerID] = yAreaBounds;\n this.xFrozenAreasBounds[freezeItemsContainerID] = xAreaBounds;\n },\n /**\n * Save the freeze UI item initial position based on the wrapper element and current page\n * - freezeItemsContainerID - string. A parent/wrapper element identifier\n * - $item - JQuery DOM element of the freezed item\n * - itemID - string. A ID of the freeze UI item\n * - position - object. Contains the top and left values\n */\n _saveFreezeItemInitialState: function (freezeItemsContainerID, $item, itemID, position) {\n var itemBgColor = $item.css(\"background-color\");\n var hasInitialBgColor = this._hasSetBgColor(itemBgColor);\n var itemState = {\n top: position.top,\n left: position.left,\n zIndex: $item.css(\"zIndex\"),\n hasBgColor: hasInitialBgColor\n };\n this.itemsInitialState[freezeItemsContainerID][itemID] = itemState;\n },\n _updateFreezeItemsOnScroll: function (freezeItemsContainerID, scrollableContainerScrollTop, scrollableContainerScrollLeft) {\n var $elementWrapper = $(\"div[data-id='\" + freezeItemsContainerID + \"']\");\n if (this._isInScrollVisibleArea($elementWrapper)) {\n var $pageContainer = $elementWrapper.closest(\".trv-report-page\");\n var pageContainerPosition = $pageContainer.position();\n var pageContainerMargin = parseFloat($pageContainer.css(\"margin-top\"));\n var pageContainerTopOffset = parseFloat($pageContainer.css(\"padding-top\"));\n var pageContainerLeftOffset = parseFloat($pageContainer.css(\"padding-left\"));\n var pageContainerBorderTopWidth = parseFloat($pageContainer.css(\"border-top-width\"));\n var pageContainerBorderLeftWidth = parseFloat($pageContainer.css(\"border-left-width\"));\n var $rowHeaders = $(\"[data-sticky-direction*='Horizontal'][data-sticky-id='\" + freezeItemsContainerID + \"']\");\n var $colHeaders = $(\"[data-sticky-direction*='Vertical'][data-sticky-id='\" + freezeItemsContainerID + \"']\");\n var hasFixRow = $rowHeaders.length > 0;\n var hasFixColumn = $colHeaders.length > 0;\n var elementWrapperPosition = $elementWrapper.position();\n var elementWrapperTopPosition = elementWrapperPosition.top + pageContainerPosition.top + pageContainerMargin + pageContainerTopOffset + pageContainerBorderTopWidth;\n var elementWrapperLeftPosition = elementWrapperPosition.left + pageContainerLeftOffset + pageContainerBorderLeftWidth;\n var verticalMoveOffset = scrollableContainerScrollTop - elementWrapperTopPosition;\n var horizontalMoveOffset = scrollableContainerScrollLeft - elementWrapperLeftPosition;\n if (hasFixColumn && verticalMoveOffset > 0) {\n if (scrollableContainerScrollTop <= $elementWrapper.outerHeight() * this.scaleFactor + elementWrapperTopPosition - this.yFrozenAreasBounds[freezeItemsContainerID].height) {\n this.currentlyFrozenContainer.vertical[freezeItemsContainerID] = true;\n this._updateUIElementsPosition($colHeaders, \"top\", verticalMoveOffset / this.scaleFactor, freezeItemsContainerID);\n }\n } else {\n if (this.currentlyFrozenContainer.vertical[freezeItemsContainerID]) {\n delete this.currentlyFrozenContainer.vertical[freezeItemsContainerID];\n this._updateUIElementsPosition($colHeaders, \"top\", -1, freezeItemsContainerID);\n }\n }\n if (hasFixRow && horizontalMoveOffset > 0) {\n if (scrollableContainerScrollLeft <= $elementWrapper.outerWidth() * this.scaleFactor + elementWrapperLeftPosition - this.xFrozenAreasBounds[freezeItemsContainerID].width) {\n this.currentlyFrozenContainer.horizontal[freezeItemsContainerID] = true;\n this._updateUIElementsPosition($rowHeaders, \"left\", horizontalMoveOffset / this.scaleFactor, freezeItemsContainerID);\n }\n } else {\n if (this.currentlyFrozenContainer.horizontal[freezeItemsContainerID]) {\n delete this.currentlyFrozenContainer.horizontal[freezeItemsContainerID];\n this._updateUIElementsPosition($rowHeaders, \"left\", -1, freezeItemsContainerID);\n }\n }\n } else {\n if (this.currentlyFrozenContainer.horizontal[freezeItemsContainerID] || this.currentlyFrozenContainer.vertical[freezeItemsContainerID]) {\n this._resetToDefaultPosition(freezeItemsContainerID);\n }\n }\n },\n /**\n * Move all freeze items to their initial position\n * Takes one parameters\n * - freezeItemsContainerID - string. A parent/wrapper element identifier\n */\n _resetToDefaultPosition: function (freezeItemsContainerID) {\n var $rowHeaders = $(\"[data-sticky-direction*='Horizontal'][data-sticky-id='\" + freezeItemsContainerID + \"']\");\n var $colHeaders = $(\"[data-sticky-direction*='Vertical'][data-sticky-id='\" + freezeItemsContainerID + \"']\");\n this._updateUIElementsPosition($colHeaders, \"top\", -1, freezeItemsContainerID);\n this._updateUIElementsPosition($rowHeaders, \"left\", -1, freezeItemsContainerID);\n delete this.currentlyFrozenContainer.horizontal[freezeItemsContainerID];\n delete this.currentlyFrozenContainer.vertical[freezeItemsContainerID];\n },\n /**\n * Update the freeze elements position\n * Takes four parameters\n * - targetElements -Array. Collection of DOM element, that has a freeze attribute\n * - position - string. Indicates which position property to be updated - top or left\n * - offset - integer. The value of the increase that should be applied.\n * If it is negative number, should not move the items and it should set their initial position\n * - freezeItemsContainerID - string. A parent/wrapper element identifier\n */\n _updateUIElementsPosition: function (targetElements, position, offset, freezeItemsContainerID) {\n for (var index = 0; index < targetElements.length; index++) {\n var $item = $(targetElements[index]);\n var itemFreezeDirection = $item.attr(\"data-sticky-direction\");\n var isFrozenBothDirection = itemFreezeDirection.indexOf(\",\") > 0;\n var itemID = $item.attr(\"data-id\");\n var itemInitialState = this.itemsInitialState[freezeItemsContainerID][itemID];\n var itemNewPostion = itemInitialState[position];\n var initialZIndex = itemInitialState[\"zIndex\"];\n var hasInitialBgColor = itemInitialState[\"hasBgColor\"];\n var zIndexValue = 1;\n var maxZIndex = this.freezeMaxZIndex[freezeItemsContainerID] ? this.freezeMaxZIndex[freezeItemsContainerID] : zIndexValue;\n if (isFrozenBothDirection) {\n zIndexValue = initialZIndex !== \"auto\" ? initialZIndex : maxZIndex + 2;\n } else {\n zIndexValue = initialZIndex !== \"auto\" ? initialZIndex + 1 : maxZIndex;\n }\n var newStyleRules = {\n \"z-index\": zIndexValue\n };\n if (offset >= 0) {\n itemNewPostion = itemNewPostion + offset;\n } else {\n newStyleRules[\"z-index\"] = initialZIndex;\n }\n if (!hasInitialBgColor) {\n this._applyBgColorOnScroll($item, isFrozenBothDirection, hasInitialBgColor, offset >= 0, freezeItemsContainerID);\n }\n newStyleRules[position] = itemNewPostion + \"px\";\n $item.css(newStyleRules);\n }\n },\n // eslint-disable-next-line max-params\n _applyBgColorOnScroll: function ($item, isItemFrozenBothDirection, hasInitialBgColor, shouldApplyBGColor, freezeItemsContainerID) {\n if ($item.is(\"img\")) {\n return true;\n }\n if (isItemFrozenBothDirection && this._isFrozen(freezeItemsContainerID) && !hasInitialBgColor) {\n $item.css(\"background-color\", this.freezeBGColor[freezeItemsContainerID]);\n return true;\n }\n if (shouldApplyBGColor) {\n $item.css(\"background-color\", this.freezeBGColor[freezeItemsContainerID]);\n } else {\n $item.css(\"background-color\", \"initial\");\n }\n },\n _hasSetBgColor: function (bgColorValue) {\n return getColorAlphaValue(bgColorValue) > 0;\n },\n _isFrozen: function (freezeItemsContainerID) {\n return this.currentlyFrozenContainer.horizontal[freezeItemsContainerID] || this.currentlyFrozenContainer.vertical[freezeItemsContainerID];\n },\n /**\n * Checks if an UI element is in the visible part of the scrollable container\n * Takes one parameters\n * - $element - JQuery DOM element\n */\n _isInScrollVisibleArea: function ($element) {\n var $page = $element.closest(\".trv-report-page\");\n var elementPosition = $element.position();\n return this._isVisibleVertically($element, $page, elementPosition) && this._isVisibleHorizontally($element, $page, elementPosition);\n },\n _isVisibleHorizontally: function ($element, $page, elementPosition) {\n var pageLeftOffset = parseFloat($page.css(\"padding-left\"));\n var scrollableContainerLeftScrollPosition = this.$scrollableContainer.scrollLeft();\n var scrollableContainerWidth = this.$scrollableContainer.width();\n var elementWidth = $element.outerWidth(true) * this.scaleFactor;\n var elementLeftOffset = elementPosition.left + pageLeftOffset;\n return elementLeftOffset > scrollableContainerLeftScrollPosition - elementWidth && elementLeftOffset < scrollableContainerLeftScrollPosition + elementWidth + scrollableContainerWidth;\n },\n _isVisibleVertically: function ($element, $page, elementPosition) {\n var pageTopOffset = parseFloat($page.css(\"padding-top\"));\n var pagePosition = $page.position();\n var scrollableContainerTopScrollPosition = this.$scrollableContainer.scrollTop();\n var scrollableContainerHeight = this.$scrollableContainer.height();\n var elementHeight = $element.outerHeight(true) * this.scaleFactor;\n var elementTopOffset = elementPosition.top + pageTopOffset + pagePosition.top;\n return elementTopOffset > scrollableContainerTopScrollPosition - elementHeight && elementTopOffset < scrollableContainerTopScrollPosition + elementHeight + scrollableContainerHeight;\n }\n };\n var defaultOptions$5 = {};\n function PagesArea(placeholder, options, otherOptions) {\n options = $.extend({}, defaultOptions$5, options, otherOptions);\n var controller = options.controller;\n if (!controller) throw \"No controller (telerikReportViewer.reportViewerController) has been specified.\";\n var $placeholder = $(placeholder);\n var $pageContainer = $placeholder.find(\".trv-page-container\");\n var pageContainer = $pageContainer[0];\n var $pageWrapper = $placeholder.find(\".trv-page-wrapper\");\n var pageWrapper = $pageWrapper[0];\n var $errorMessage = $placeholder.find(\".trv-error-message\");\n var actions;\n var pendingElement;\n var pageScaleMode = controller.getScaleMode();\n var pageScale = controller.getScale();\n var minPageScale = 0.1;\n var maxPageScale = 8;\n var documentReady = true;\n var navigateToPageOnDocReady;\n var navigateToElementOnDocReady;\n var isNewReportSource;\n var showErrorTimeoutId;\n var showPageAreaImage = false;\n var reportPageIsLoaded = false;\n var pageAreaImageStyle = '.trv-page-container {background: #ffffff url(\"{0}\") no-repeat center 50px}';\n var pageAreaImageID = \"trv-initial-image-styles\";\n var scroll = $.extend({}, Scroll);\n var uiFreezeCoordinator = null;\n init();\n if (scroll) {\n scroll.init(placeholder, options);\n }\n function init() {\n replaceStringResources($placeholder);\n }\n function replaceStringResources($pagesArea) {\n $pagesArea.attr(\"aria-label\", stringResources[$pagesArea.attr(\"aria-label\")]);\n }\n $(window).on(\"resize\", function (event, args) {\n if (shouldAutosizePage()) {\n updatePageDimensions();\n }\n });\n enableTouch($placeholder);\n function clearPendingTimeoutIds() {\n if (showErrorTimeoutId) {\n window.clearTimeout(showErrorTimeoutId);\n }\n }\n function invalidateCurrentlyLoadedPage() {\n var page = findPage(navigateToPageOnDocReady);\n if (page) {\n pageNo(page, -1);\n }\n }\n function navigateWhenPageAvailable(pageNumber, pageCount) {\n if (pageNumber && pageNumber <= pageCount) {\n navigateToPage(pageNumber, navigateToElementOnDocReady);\n }\n }\n function navigateOnLoadComplete(pageNumber, pageCount) {\n if (pageNumber) {\n pageNumber = Math.min(pageNumber, pageCount);\n navigateToPage(pageNumber, navigateToElementOnDocReady);\n }\n }\n function clearPage() {\n clear(isNewReportSource);\n isNewReportSource = false;\n }\n controller.pageModeChanged(function () {\n if (controller.getPageMode() === PageModes.CONTINUOUS_SCROLL) {\n scroll.enable();\n } else {\n scroll.disable();\n }\n controller.refreshReport(true);\n }).reportSourceChanged(function () {\n isNewReportSource = true;\n navigateToPageOnDocReady = null;\n navigateToElementOnDocReady = null;\n documentReady = false;\n }).beforeLoadParameters(function (event, initial) {\n if (initial) {\n showError(stringResources.loadingReport);\n }\n }).beforeLoadReport(function () {\n documentReady = false;\n if (!navigateToPageOnDocReady) {\n navigateToPageOnDocReady = 1;\n }\n clearPendingTimeoutIds();\n clear();\n disablePagesArea(true);\n showError(stringResources.loadingReport);\n }).beginLoadReport(function (event, args) {\n documentReady = true;\n invalidateCurrentlyLoadedPage();\n }).reportLoadProgress(function (event, args) {\n navigateWhenPageAvailable(navigateToPageOnDocReady, args.pageCount);\n showError(stringFormat(stringResources.loadingReportPagesInProgress, [args.pageCount]));\n }).reportLoadComplete(function (event, args) {\n if (0 === args.pageCount) {\n clearPage();\n showError(stringResources.noPageToDisplay);\n } else {\n navigateOnLoadComplete(navigateToPageOnDocReady, args.pageCount);\n showError(stringFormat(stringResources.loadedReportPagesComplete, [args.pageCount]));\n showErrorTimeoutId = window.setTimeout(showError, 2e3);\n enableInteractivity();\n }\n if (args.containsFrozenContent && !uiFreezeCoordinator) {\n uiFreezeCoordinator = $.extend({}, UIFreezeCoordinator);\n if (controller.getViewMode() === ViewModes.INTERACTIVE) {\n uiFreezeCoordinator.init($placeholder);\n }\n }\n }).navigateToPage(function (event, pageNumber, targetElement) {\n navigateToPage(pageNumber, targetElement);\n }).pageReady(function (event, page) {\n if (controller.getPageMode() === PageModes.SINGLE_PAGE) {\n if (scroll.isEnabled()) {\n scroll.disable();\n }\n setPageContent(page);\n } else {\n scroll.renderPage(page);\n }\n if (!reportPageIsLoaded) {\n reportPageIsLoaded = true;\n }\n if (showPageAreaImage) {\n clearPageAreaImage();\n }\n if (controller.getViewMode() === ViewModes.INTERACTIVE && uiFreezeCoordinator) {\n uiFreezeCoordinator.init($placeholder);\n }\n disablePagesArea(false);\n }).error(function (event, error) {\n disablePagesArea(false);\n clearPage();\n showError(error);\n }).showNotification(function (event, args) {\n showError(stringResources[args.stringResources]);\n }).hideNotification(function (event, args) {\n showError();\n }).scaleChanged(function (event, scale) {\n setPageScale({\n scale,\n scaleMode: controller.getScaleMode()\n });\n }).scaleModeChanged(function (event, scaleMode) {\n setPageScale({\n scale: controller.getScale(),\n scaleMode\n });\n }).serverActionStarted(function () {\n disablePagesArea(true);\n showError(stringResources.loadingReport);\n }).scrollPageReady(function (event, args) {\n setScrollablePage(args);\n }).missingOrInvalidParameters(function (event, args) {\n if (options.initialPageAreaImageUrl && !reportPageIsLoaded) {\n clearPage();\n setPageAreaImage();\n }\n }).renderingStopped(function () {\n clear(true);\n showError(stringResources.renderingCanceled);\n });\n controller.setDocumentMapVisible(function () {\n if (shouldAutosizePage()) {\n setTimeout(function () {\n updatePageDimensions();\n });\n }\n }).setParametersAreaVisible(function () {\n if (shouldAutosizePage()) {\n setTimeout(function () {\n updatePageDimensions();\n });\n }\n });\n function enableTouch(dom) {\n var allowSwipeLeft;\n var allowSwipeRight;\n TouchBehavior(dom, {\n swipe: function (e) {\n var pageNumber = controller.getCurrentPageNumber();\n if (allowSwipeLeft && e.direction === \"left\") {\n if (pageNumber < controller.getPageCount()) {\n controller.navigateToPage(pageNumber + 1);\n }\n } else if (allowSwipeRight && e.direction === \"right\") {\n if (pageNumber > 1) {\n controller.navigateToPage(pageNumber - 1);\n }\n }\n },\n pinch: function (e) {\n var page = getCurrentPage();\n var scale = $(page).data(\"pageScale\") || pageScale;\n var f = e.distance / e.lastDistance;\n setPageScale({\n scale: scale * f,\n scaleMode: ScaleModes.SPECIFIC\n });\n },\n doubletap: function (e) {\n options.commands.toggleZoomMode.exec();\n },\n touchstart: function (e) {\n var el = pageWrapper;\n allowSwipeRight = 0 === el.scrollLeft;\n allowSwipeLeft = el.scrollWidth - el.offsetWidth === el.scrollLeft;\n }\n });\n }\n function shouldAutosizePage() {\n return -1 !== [ScaleModes.FIT_PAGE, ScaleModes.FIT_PAGE_WIDTH].indexOf(pageScaleMode);\n }\n function updatePageDimensions() {\n for (var i = 0, children = $pageContainer.find(\".trv-report-page\"), len = children.length; i < len; i++) {\n var pageNumber = parseInt($(children[i]).attr(\"data-page\"));\n setPageDimensions(children[i], pageScaleMode, pageScale, pageNumber);\n }\n controller.updatePageDimensionsReady();\n }\n function setPageScale({\n scale,\n scaleMode\n }) {\n pageScale = scale || pageScale;\n pageScaleMode = scaleMode || pageScaleMode;\n pageScale = Math.max(minPageScale, Math.min(maxPageScale, pageScale));\n updatePageDimensions();\n }\n function clear(clearPageWrapper) {\n disableInteractivity();\n pendingElement = void 0;\n if (clearPageWrapper) {\n $pageWrapper.empty();\n }\n showError();\n }\n function getCurrentPage() {\n return findPage(controller.getCurrentPageNumber());\n }\n function findPage(pageNumber) {\n var result;\n var allPages = $pageContainer.find(\".trv-report-page\");\n if (controller.getPageMode() === PageModes.SINGLE_PAGE) {\n result = Array.from(allPages).find(page => {\n return pageNo(page) === pageNumber;\n });\n } else {\n result = Array.from(allPages).find(page => {\n var dataPageNumber = parseInt($(page).attr(\"data-page\"));\n return dataPageNumber === pageNumber;\n });\n }\n return result;\n }\n function navigateToPage(pageNumber, targetElement) {\n if (documentReady) {\n navigateToPageCore(pageNumber, targetElement);\n } else {\n navigateToPageOnDocumentReady(pageNumber, targetElement);\n }\n }\n function navigateToPageOnDocumentReady(pageNumber, targetElement) {\n navigateToPageOnDocReady = pageNumber;\n navigateToElementOnDocReady = targetElement;\n }\n function navigateToPageCore(pageNumber, targetElement) {\n var page = findPage(pageNumber);\n if (page) {\n if (targetElement) {\n navigateToElement(targetElement, pageNumber);\n }\n if (scroll.isEnabled() && !targetElement) {\n scroll.navigateToElement(page.offsetTop, pageNumber);\n }\n } else {\n pendingElement = targetElement;\n beginLoadPage(pageNumber);\n }\n }\n function navigateToElement(targetElement, pageNumber) {\n if (targetElement) {\n var el = $pageContainer.find(\"[data-\" + targetElement.type + \"-id=\" + targetElement.id + \"]\")[0];\n if (el) {\n if (options.enableAccessibility) {\n var $nextFocusable = findNextFocusableElement($(el));\n if ($nextFocusable) {\n $nextFocusable.focus();\n }\n }\n var container = $pageContainer[0];\n var offsetTop = 0;\n var offsetLeft = 0;\n while (el && el !== container) {\n if ($(el).is(\".trv-page-wrapper\")) {\n var scale = $(el).data(\"pageScale\");\n if (typeof scale === \"number\") {\n offsetTop *= scale;\n offsetLeft *= scale;\n }\n }\n offsetTop += el.offsetTop;\n offsetLeft += el.offsetLeft;\n el = el.offsetParent;\n }\n if (scroll.isEnabled() && pageNumber) {\n scroll.navigateToElement(offsetTop, pageNumber);\n } else {\n container.scrollTop = offsetTop;\n container.scrollLeft = offsetLeft;\n }\n } else {\n if (scroll.isEnabled() && pageNumber) {\n scroll.navigateToElement($placeholder.find('[data-page=\"' + pageNumber + '\"]')[0].offsetTop, pageNumber);\n }\n }\n }\n }\n function findNextFocusableElement(element) {\n if (!element || element.length === 0) {\n return null;\n }\n var num = tryParseInt(element.attr(\"tabindex\"));\n if (!isNaN(num) && num > -1) {\n return element;\n }\n return findNextFocusableElement(element.next());\n }\n function disablePagesArea(disable) {\n (disable ? $.fn.addClass : $.fn.removeClass).call($placeholder, \"trv-loading\");\n }\n function showError(error) {\n $errorMessage.text(error);\n (error ? $.fn.addClass : $.fn.removeClass).call($placeholder, \"trv-error\");\n }\n function pageNo(page, no) {\n var $page = page.$ ? page : $(page);\n var dataKey = \"pageNumber\";\n if (no === void 0) {\n return $page.data(dataKey);\n }\n $page.data(dataKey, no);\n return page;\n }\n function beginLoadPage(pageNumber) {\n disablePagesArea(true);\n window.setTimeout(controller.getReportPage.bind(controller, pageNumber), 1);\n navigateToPageOnDocReady = null;\n }\n function setPageDimensions(page, scaleMode, scale$1, pageNumber) {\n var $target = $(page);\n var $page = pageNumber ? $target : $target.find(\"div.trv-report-page\");\n var $pageContent = $page.find(\"div.sheet\");\n var $pageSkeletonContent = $page.find(\"div.trv-skeleton-wrapper\");\n var pageContent = $pageContent[0] || $pageSkeletonContent[0];\n var pageSkeletonContent = $pageSkeletonContent[0];\n if (!pageContent) {\n return;\n }\n var pageWidth;\n var pageHeight;\n var box = $target.data(\"box\");\n if (!box) {\n var margins = getMargins($target);\n var borders = getBorderWidth($page);\n var padding = getPadding($page);\n box = {\n padLeft: margins.left + borders.left + padding.left,\n padRight: margins.right + borders.right + padding.right,\n padTop: margins.top + borders.top + padding.top,\n padBottom: margins.bottom + borders.bottom + padding.bottom\n };\n $target.data(\"box\", box);\n }\n if ($target.data(\"pageWidth\") === void 0) {\n pageWidth = pageContent.offsetWidth;\n pageHeight = pageContent.offsetHeight;\n $target.data(\"pageWidth\", pageWidth);\n $target.data(\"pageHeight\", pageHeight);\n } else {\n pageWidth = $target.data(\"pageWidth\");\n pageHeight = $target.data(\"pageHeight\");\n }\n var scrollBarV = pageHeight > pageWidth && scaleMode === ScaleModes.FIT_PAGE_WIDTH ? 20 : 0;\n var scaleW = (pageContainer.clientWidth - scrollBarV - box.padLeft - box.padRight) / pageWidth;\n var scaleH = (pageContainer.clientHeight - 1 - box.padTop - box.padBottom) / pageHeight;\n if (scaleMode === ScaleModes.FIT_PAGE_WIDTH) {\n scale$1 = scaleW;\n } else if (!scale$1 || scaleMode === ScaleModes.FIT_PAGE) {\n scale$1 = Math.min(scaleW, scaleH);\n }\n if (uiFreezeCoordinator) {\n uiFreezeCoordinator.setScaleFactor(scale$1);\n }\n $target.data(\"pageScale\", scale$1);\n $page.data(\"pageScale\", scale$1);\n if (!pageSkeletonContent) {\n scale($pageContent, scale$1, scale$1);\n }\n $page.css({\n \"height\": scale$1 * pageHeight,\n \"width\": scale$1 * pageWidth\n });\n }\n function enableInteractivity() {\n $pageContainer.on(\"click\", \"[data-reporting-action]\", onInteractiveItemClick);\n $pageContainer.on(\"mouseenter\", \"[data-reporting-action]\", onInteractiveItemEnter);\n $pageContainer.on(\"mouseleave\", \"[data-reporting-action]\", onInteractiveItemLeave);\n $pageContainer.on(\"mouseenter\", \"[data-tooltip-title],[data-tooltip-text]\", onToolTipItemEnter);\n $pageContainer.on(\"mouseleave\", \"[data-tooltip-title],[data-tooltip-text]\", onToolTipItemLeave);\n }\n function disableInteractivity() {\n $pageContainer.off(\"click\", \"[data-reporting-action]\", onInteractiveItemClick);\n $pageContainer.off(\"mouseenter\", \"[data-reporting-action]\", onInteractiveItemEnter);\n $pageContainer.off(\"mouseleave\", \"[data-reporting-action]\", onInteractiveItemLeave);\n $pageContainer.off(\"mouseenter\", \"[data-tooltip-title],[data-tooltip-text]\", onToolTipItemEnter);\n $pageContainer.off(\"mouseleave\", \"[data-tooltip-title],[data-tooltip-text]\", onToolTipItemLeave);\n }\n function onInteractiveItemClick(event) {\n var $eventTarget = $(this);\n var actionId = $eventTarget.attr(\"data-reporting-action\");\n var action = getAction(actionId);\n if (action) {\n navigateToPageOnDocReady = getNavigateToPageOnDocReady(event, action.Type);\n controller.executeReportAction({\n element: event.currentTarget,\n action,\n cancel: false\n });\n }\n event.stopPropagation();\n }\n function getNavigateToPageOnDocReady(event, actionType) {\n if (scroll.isEnabled() && (actionType === \"sorting\" || actionType === \"toggleVisibility\")) {\n return $(event.target).closest(\".trv-report-page\").attr(\"data-page\") || controller.getCurrentPageNumber();\n }\n return controller.getCurrentPageNumber();\n }\n function onInteractiveItemEnter(args) {\n var $t = $(this);\n var actionId = $t.attr(\"data-reporting-action\");\n var a = getAction(actionId);\n if (a !== null && args.currentTarget === this) {\n controller.reportActionEnter({\n element: args.currentTarget,\n action: a\n });\n }\n }\n function onInteractiveItemLeave(args) {\n var $t = $(this);\n var actionId = $t.attr(\"data-reporting-action\");\n var a = getAction(actionId);\n if (a !== null && args.currentTarget === this) {\n controller.reportActionLeave({\n element: args.currentTarget,\n action: a\n });\n }\n }\n function getAction(actionId) {\n if (actions) {\n return Array.from(actions).find(function (action) {\n return action.Id === actionId;\n });\n }\n return null;\n }\n function onToolTipItemEnter(args) {\n var $t = $(this);\n var title = $t.attr(\"data-tooltip-title\");\n var text = $t.attr(\"data-tooltip-text\");\n if (!title && !text) {\n return;\n }\n var toolTipArgs = {\n element: args.currentTarget,\n toolTip: {\n title: title || \"\",\n text: text || \"\"\n },\n cancel: false\n };\n controller.reportToolTipOpening(toolTipArgs);\n if (toolTipArgs.cancel) {\n return;\n }\n var content = applyToolTipTemplate(toolTipArgs);\n var viewportElement = args.currentTarget.viewportElement;\n var ktt = getToolTip($t, content);\n ktt.show($t);\n if (viewportElement && viewportElement.nodeName === \"svg\") {\n positionToolTip(ktt, args);\n }\n }\n function applyToolTipTemplate(toolTipArgs) {\n var toolTipTemplate = options.templates[\"trv-pages-area-kendo-tooltip\"];\n var $container = $(toolTipTemplate);\n var $titleSpan = $container.find(\".trv-pages-area-kendo-tooltip-title\");\n var $textSpan = $container.find(\".trv-pages-area-kendo-tooltip-text\");\n $titleSpan.html(replaceNewLineSymbols(toolTipArgs.toolTip.title));\n $textSpan.html(replaceNewLineSymbols(toolTipArgs.toolTip.text));\n return $container.clone().wrap(\"

          \").parent().html();\n }\n function replaceNewLineSymbols(tooltipText) {\n tooltipText = escapeHtml(tooltipText);\n tooltipText = tooltipText.replaceAll(\"\\r\\n\", \"
          \");\n tooltipText = tooltipText.replaceAll(\"\\n\", \"
          \");\n return tooltipText;\n }\n function positionToolTip(toolTip, e) {\n var x = e.pageX;\n var y = e.pageY;\n var container = toolTip.popup.element.closest(\"[role=region]\");\n container.css({\n left: x + 10,\n top: y + 5\n });\n }\n function getToolTip(target, toolTipContent) {\n var ktt = target.data(\"kendoTooltip\");\n if (!ktt) {\n try {\n ktt = target.kendoTooltip({\n content: toolTipContent,\n autohide: true,\n callout: false\n }).data(\"kendoTooltip\");\n } catch (e) {\n console.error(\"Instantiation of Kendo Tooltip threw an exception\", e);\n throw e;\n }\n }\n return ktt;\n }\n function onToolTipItemLeave(args) {\n var $t = $(this);\n var toolTip = $t.data(\"kendoTooltip\");\n if (toolTip) {\n toolTip.hide();\n }\n }\n function updatePageStyle(page) {\n var styleId = \"trv-\" + controller.clientId() + \"-styles\";\n $(\"#\" + styleId).remove();\n var pageStyles = $(\"\");\n pageStyles.append(page.pageStyles);\n pageStyles.appendTo(\"head\");\n }\n function setPageContent(page) {\n actions = JSON.parse(page.pageActions);\n updatePageStyle(page);\n var pageNumber = page.pageNumber;\n var wrapper = $($.parseHTML(page.pageContent));\n var $pageContent = wrapper.find(\"div.sheet\");\n var $page = $('

          ');\n $pageContent.css(\"margin\", 0);\n $page.append($pageContent).append($('
          '));\n var $target = $pageWrapper.empty().removeData().data(\"pageNumber\", pageNumber).append($page);\n controller.setCurrentPageNumber(pageNumber);\n if (controller.getViewMode() === ViewModes.INTERACTIVE) {\n $placeholder.removeClass(\"printpreview\");\n $placeholder.addClass(\"interactive\");\n } else {\n $placeholder.removeClass(\"interactive\");\n $placeholder.addClass(\"printpreview\");\n }\n setPageDimensions($target, pageScaleMode, pageScale);\n $pageContainer.scrollTop(0);\n $pageContainer.scrollLeft(0);\n navigateToElement(pendingElement);\n }\n function setScrollablePage(args) {\n var pageActions = JSON.parse(args.page.pageActions);\n if (!actions) {\n actions = pageActions;\n } else {\n actions = actions.concat(pageActions);\n }\n if (controller.getViewMode() === ViewModes.INTERACTIVE) {\n $placeholder.removeClass(\"printpreview\");\n $placeholder.addClass(\"interactive\");\n } else {\n $placeholder.removeClass(\"interactive\");\n $placeholder.addClass(\"printpreview\");\n }\n setPageDimensions(args.target, pageScaleMode, pageScale, args.page.pageNumber);\n }\n function setPageAreaImage() {\n var pageStyles = $(\"\");\n clearPageAreaImage();\n pageStyles.append(stringFormat(pageAreaImageStyle, [options.initialPageAreaImageUrl]));\n pageStyles.appendTo(\"head\");\n showPageAreaImage = true;\n }\n function clearPageAreaImage() {\n $(\"#\" + pageAreaImageID).remove();\n }\n }\n var parameterEditorsMatch = {\n // AvailableValues PROVIDED, MultiValue is TRUE and trv.parameters.editors.multiSelect is unset\n MultiSelect: function (parameter, editorsType) {\n return Boolean(parameter.availableValues) && parameter.multivalue && (!editorsType || !editorsType.multiSelect || editorsType.multiSelect !== ParameterEditorTypes.COMBO_BOX);\n },\n // AvailableValues PROVIDED, MultiValue is TRUE and trv.parameters.editors.multiSelect is set to COMBO_BOX\n MultiSelectCombo: function (parameter, editorsType) {\n return Boolean(parameter.availableValues) && parameter.multivalue && editorsType && editorsType.multiSelect && editorsType.multiSelect === ParameterEditorTypes.COMBO_BOX;\n },\n // AvailableValues PROVIDED, MultiValue is FALSE and trv.parameters.editors.singleSelect is unset\n SingleSelect: function (parameter, editorsType) {\n return Boolean(parameter.availableValues) && !parameter.multivalue && (!editorsType || !editorsType.singleSelect || editorsType.singleSelect !== ParameterEditorTypes.COMBO_BOX);\n },\n // AvailableValues PROVIDED, MultiValue is FALSE and trv.parameters.editors.singleSelect is set to COMBO_BOX\n SingleSelectCombo: function (parameter, editorsType) {\n return Boolean(parameter.availableValues) && !parameter.multivalue && editorsType && editorsType.singleSelect && editorsType.singleSelect === ParameterEditorTypes.COMBO_BOX;\n },\n // AvailableValues NOT PROVIDED and MultiValue is TRUE\n MultiValue: function (parameter) {\n return Boolean(parameter.multivalue);\n },\n DateTime: function (parameter) {\n return parameter.type === ParameterTypes.DATETIME;\n },\n String: function (parameter) {\n return parameter.type === ParameterTypes.STRING;\n },\n Number: function (parameter) {\n switch (parameter.type) {\n case ParameterTypes.INTEGER:\n case ParameterTypes.FLOAT:\n return true;\n default:\n return false;\n }\n },\n Boolean: function (parameter) {\n return parameter.type === ParameterTypes.BOOLEAN;\n },\n Default: function (parameter) {\n return true;\n }\n };\n var multivalueUtils = function () {\n var lineSeparator = \"\\n\";\n return {\n formatValue: function (value) {\n var text = \"\";\n if (value) {\n [].concat(value).forEach(function (val) {\n if (text.length > 0) {\n text += lineSeparator;\n }\n text += val;\n });\n }\n return text;\n },\n parseValues: function (text) {\n return (\"\" + text).split(lineSeparator);\n }\n };\n }();\n function integerInputBehavior(input) {\n function isValid(newValue) {\n return /^(\\-|\\+)?([0-9]*)$/.test(newValue);\n }\n function onKeyPress(event) {\n if (isSpecialKey(event.keyCode)) {\n return true;\n }\n return isValid($(input).val() + String.fromCharCode(event.charCode));\n }\n function onPaste(event) {}\n function attach(input2) {\n $(input2).on(\"keypress\", onKeyPress).on(\"paste\", onPaste);\n }\n function detach(input2) {\n $(input2).off(\"keypress\", onKeyPress).off(\"paste\", onPaste);\n }\n attach(input);\n return {\n dispose: function () {\n detach(input);\n }\n };\n }\n function floatInputBehavior(input) {\n function isValid(newValue) {\n return /^(\\-|\\+)?([0-9]*(\\.[0-9]*)?)$/.test(newValue);\n }\n function onKeyPress(event) {\n if (isSpecialKey(event.keyCode)) {\n return true;\n }\n return isValid($(input).val() + String.fromCharCode(event.charCode));\n }\n function onPaste(event) {}\n function attach(input2) {\n $(input2).on(\"keypress\", onKeyPress).on(\"paste\", onPaste);\n }\n function detach(input2) {\n $(input2).off(\"keypress\", onKeyPress).off(\"paste\", onPaste);\n }\n attach(input);\n return {\n dispose: function () {\n detach(input);\n }\n };\n }\n function applyClass(apply, cssClass, item) {\n var fn = apply ? $.fn.addClass : $.fn.removeClass;\n fn.call(item, cssClass);\n }\n function enableItem(item, enable) {\n applyClass(!enable, \"k-disabled\", item);\n }\n function selectItem(item, select) {\n applyClass(select, \"k-selected\", item);\n item.attr(\"aria-selected\", select);\n }\n function addAccessibilityAttributes(editor, type, caption, additionalInfo, error) {\n if (!additionalInfo) {\n additionalInfo = \"\";\n }\n var label = stringFormat(\"{0}. {1} {2}. {3}\", [caption, type, stringResources.ariaLabelParameter, additionalInfo]);\n editor.attr(\"aria-label\", label);\n setAccessibilityErrorAttributes(editor, error);\n }\n var containerTabIndex;\n var editorsIndex = 0;\n function setEditorTabIndex(editor) {\n if (!containerTabIndex) {\n var $container = $(\"div.trv-parameters-area-content\");\n if ($container.length > 0) {\n var tabIndexAttr = $container.attr(\"tabIndex\");\n if (tabIndexAttr) {\n containerTabIndex = tryParseInt(tabIndexAttr);\n }\n }\n if (!containerTabIndex || isNaN(containerTabIndex)) {\n containerTabIndex = 300;\n }\n }\n var wrapper = editor.closest(\".trv-parameter-value\");\n var selectAll = wrapper.find(\".trv-select-all\");\n var clearSelection = wrapper.find(\".trv-select-none\");\n var widgetParent = editor.closest(\".k-widget\");\n var hasFocusableElement = widgetParent.find(\".k-input\");\n var isComboWidget = hasFocusableElement && hasFocusableElement.length;\n if (selectAll && selectAll.length) {\n selectAll.attr(\"tabindex\", containerTabIndex + ++editorsIndex);\n }\n if (clearSelection && clearSelection.length) {\n clearSelection.attr(\"tabindex\", containerTabIndex + ++editorsIndex);\n }\n if (isComboWidget) {\n hasFocusableElement.attr(\"tabindex\", containerTabIndex + ++editorsIndex);\n } else {\n editor.attr(\"tabindex\", containerTabIndex + ++editorsIndex);\n }\n }\n function setAccessibilityErrorAttributes(editor, error) {\n var errToken = stringFormat(\" {0}:\", [stringResources.ariaLabelErrorMessage]);\n var label = editor.attr(\"aria-label\");\n if (!label) {\n return;\n }\n var errIdx = label.indexOf(errToken);\n if (errIdx > -1) {\n label = label.substring(0, errIdx);\n }\n if (error && error !== \"\") {\n editor.attr(\"aria-required\", true);\n editor.attr(\"aria-invalid\", true);\n label += errToken + error;\n } else {\n editor.removeAttr(\"aria-invalid\");\n }\n editor.attr(\"aria-label\", label);\n }\n function navigatableEnabledForList(enableAccessibility) {\n return kendo.version >= \"2017.3.1018\" || enableAccessibility;\n }\n var ParameterEditors = [{\n match: parameterEditorsMatch.MultiSelect,\n createEditor: function (placeholder, options) {\n var $placeholder = $(placeholder);\n var enabled = true;\n $placeholder.html(options.templates[\"trv-parameter-editor-available-values-multiselect\"]);\n var $list = $placeholder.find(\".trv-list\");\n var $selectAll = $placeholder.find(\".trv-select-all\");\n var $selectNone = $placeholder.find(\".trv-select-none\");\n var listView;\n var parameter;\n var updateTimeout;\n var valueChangeCallback = options.parameterChanged;\n var initialized;\n $selectAll.text(stringResources[$selectAll.text()]);\n $selectAll.click(function (e) {\n e.preventDefault();\n if (!enabled) return;\n setSelectedItems(parameter.availableValues.map(function (av) {\n return av.value;\n }));\n });\n $selectNone.text(stringResources[$selectNone.text()]);\n $selectNone.click(function (e) {\n e.preventDefault();\n if (!enabled) return;\n setSelectedItems([]);\n });\n function onSelectionChanged(selection) {\n if (initialized) {\n applyAriaSelected(selection);\n notifyParameterChanged(selection);\n }\n }\n function applyAriaSelected(selection) {\n var children = $list.find(\".trv-listviewitem\");\n Array.from(children).forEach(item => {\n var $item = $(item);\n var isSelected = selection.filter($item).length > 0;\n $item.attr(\"aria-selected\", isSelected);\n });\n }\n function notifyParameterChanged(selection) {\n var availableValues = parameter.availableValues;\n var values = $.map(selection, function (item) {\n return availableValues[$(item).index()].value;\n });\n clearPendingChange();\n var immediateUpdate = !parameter.autoRefresh && !parameter.childParameters;\n updateTimeout = window.setTimeout(function () {\n if (!areEqualArrays(parameter.value, values)) {\n valueChangeCallback(parameter, values);\n }\n updateTimeout = null;\n }, immediateUpdate ? 0 : 1e3);\n }\n function clearPendingChange() {\n if (updateTimeout) {\n window.clearTimeout(updateTimeout);\n }\n }\n function getSelectedItems() {\n return $(listView.element).find(\".k-selected\");\n }\n function onItemClick(e) {\n if (!enabled) return;\n var clickedItem = $(e.target);\n var selectedItems = listView.select();\n if (clickedItem.hasClass(\"k-selected\")) {\n selectedItems.splice($.inArray(clickedItem[0], selectedItems), 1);\n } else {\n selectedItems.push(clickedItem);\n }\n listView.clearSelection();\n listView.select(selectedItems);\n listView.trigger(\"change\");\n }\n function onChange(e) {\n onSelectionChanged(getSelectedItems());\n }\n function onKeydown(event) {\n if (!enabled) return;\n if (event.which !== 32) {\n return;\n }\n var focused = listView.element.find(\".k-focus\");\n if (focused.length > 0) {\n focused.toggleClass(\"k-selected\");\n onSelectionChanged(getSelectedItems());\n event.preventDefault();\n }\n }\n function init() {\n setEditorTabIndex($list);\n setSelectedItems(parameter.value);\n listView.element.off().on(\"touch click\", \".trv-listviewitem\", onItemClick);\n listView.element.on(\"keydown\", onKeydown);\n initialized = true;\n }\n function clear() {\n initialized = false;\n if (listView) {\n listView.element.off(\"touch click\", \".trv-listviewitem\", onItemClick);\n listView.element.off(\"keydown\", onKeydown);\n }\n }\n function setSelectedItems(items) {\n setSelectedItemsCore(items);\n onSelectionChanged(getSelectedItems());\n }\n function setSelectedItemsCore(items) {\n if (!Array.isArray(items)) {\n items = [items];\n }\n var children = $list.find(\".trv-listviewitem\");\n $.each(parameter.availableValues, (i, av) => {\n var selected = false;\n $.each(items, (j, v) => {\n var availableValue = av.value;\n if (v instanceof Date) {\n availableValue = parseToLocalDate(av.value);\n }\n selected = areEqual(v, availableValue);\n return !selected;\n });\n selectItem($(children[i]), selected);\n });\n }\n return {\n beginEdit: function (param) {\n clear();\n parameter = param;\n try {\n listView = $list.kendoListView({\n template: kendo.template('
          ${name}
          '),\n dataSource: {\n data: parameter.availableValues\n },\n selectable: \"MULTIPLE\",\n navigatable: navigatableEnabledForList(options.enableAccessibility),\n change: onChange\n }).data(\"kendoListView\");\n } catch (e) {\n console.error(\"Instantiation of Kendo ListView as MultiSelect parameter editor threw an exception\", e);\n throw e;\n }\n init();\n },\n enable: function (enable) {\n enabled = enable;\n enableItem($list, enabled);\n },\n clearPendingChange,\n addAccessibility: function (param) {\n var info = stringFormat(stringResources.ariaLabelParameterInfo, [param.availableValues.length]);\n addAccessibilityAttributes($list, stringResources.ariaLabelMultiSelect, param.text, info, param.Error);\n $list.attr(\"aria-multiselectable\", \"true\");\n var items = $list.find(\".trv-listviewitem\");\n Array.from(items).forEach(item => {\n $(item).attr(\"aria-label\", item.innerText);\n });\n },\n setAccessibilityErrorState: function (param) {\n setAccessibilityErrorAttributes($list, param.Error);\n },\n destroy: function () {\n listView.destroy();\n }\n };\n }\n }, {\n match: parameterEditorsMatch.MultiSelectCombo,\n createEditor: function (placeholder, options) {\n var $placeholder = $(placeholder);\n var enabled = true;\n var selector = \".trv-combo\";\n var template = \"trv-parameter-editor-available-values-multiselect-combo\";\n var valueChangeCallback = options.parameterChanged;\n var $editorDom;\n var $selectNone;\n var $selectAll;\n var editor;\n var updateTimeout;\n var popUpIsClosed = true;\n var parameter;\n $placeholder.html(options.templates[template]);\n $editorDom = $placeholder.find(selector);\n $selectNone = $placeholder.find(\".trv-select-none\");\n if ($selectNone) {\n $selectNone.text(stringResources[$selectNone.text()]);\n $selectNone.click(function (e) {\n e.preventDefault();\n editor.value([]);\n editor.trigger(\"change\");\n });\n }\n $selectAll = $placeholder.find(\".trv-select-all\");\n if ($selectAll) {\n $selectAll.text(stringResources[$selectAll.text()]);\n $selectAll.click(function (e) {\n e.preventDefault();\n if (!enabled) return;\n var values = $.map(parameter.availableValues, function (dataItem) {\n return dataItem.value;\n });\n editor.value(values);\n editor.trigger(\"change\");\n });\n }\n function onSelectionChanged(selection) {\n notifyParameterChanged(selection);\n }\n function notifyParameterChanged(values) {\n clearPendingChange();\n var immediateUpdate = !parameter.autoRefresh && !parameter.childParameters;\n updateTimeout = window.setTimeout(function () {\n if (!areEqualArrays(parameter.value, values)) {\n valueChangeCallback(parameter, values);\n }\n updateTimeout = null;\n }, immediateUpdate ? 0 : 1e3);\n }\n function clearPendingChange() {\n if (updateTimeout) {\n window.clearTimeout(updateTimeout);\n }\n }\n function getSelectedItems() {\n return editor.value();\n }\n function onChange() {\n if (popUpIsClosed) {\n onSelectionChanged(getSelectedItems());\n }\n }\n function init() {\n setEditorTabIndex($editorDom);\n editor.bind(\"change\", onChange);\n }\n function reset() {\n if (editor) {\n editor.unbind(\"change\", onChange);\n }\n }\n return {\n beginEdit: function (param) {\n reset();\n parameter = param;\n try {\n editor = $editorDom.kendoMultiSelect({\n itemTemplate: '
          ${name}
          ',\n dataSource: parameter.availableValues,\n dataTextField: \"name\",\n dataValueField: \"value\",\n value: parameter.value,\n filter: \"contains\",\n autoClose: false,\n open: function () {\n popUpIsClosed = false;\n },\n close: function (e) {\n popUpIsClosed = true;\n onChange();\n },\n autoWidth: true,\n clearButton: false\n }).data(\"kendoMultiSelect\");\n } catch (e) {\n console.error(\"Instantiation of Kendo MultiSelect as MultiSelectCombo parameter editor threw an exception\", e);\n throw e;\n }\n init();\n },\n enable: function (enable) {\n enabled = enable;\n editor.enable(enable);\n },\n clearPendingChange,\n addAccessibility: function (param) {\n var $accessibilityDom = editor.input;\n var info = stringFormat(stringResources.ariaLabelParameterInfo, [param.availableValues.length]);\n addAccessibilityAttributes($accessibilityDom, stringResources.ariaLabelMultiSelect, param.text, info, param.Error);\n var items = editor.items();\n Array.from(items).forEach(item => {\n $(item).attr(\"aria-label\", item.innerText);\n });\n },\n setAccessibilityErrorState: function (param) {\n setAccessibilityErrorAttributes($editorDom, param.Error);\n },\n destroy: function () {\n editor.destroy();\n }\n };\n }\n }, {\n match: parameterEditorsMatch.SingleSelect,\n createEditor: function (placeholder, options) {\n var $placeholder = $(placeholder);\n var enabled = true;\n $placeholder.html(options.templates[\"trv-parameter-editor-available-values\"]);\n var $list = $placeholder.find(\".trv-list\");\n var $selectNone = $placeholder.find(\".trv-select-none\");\n var listView;\n var parameter;\n var valueChangeCallback = options.parameterChanged;\n if ($selectNone) {\n $selectNone.text(stringResources[$selectNone.text()]);\n $selectNone.click(function (e) {\n e.preventDefault();\n listView.clearSelection();\n listView.trigger(\"change\");\n });\n }\n function onSelectionChanged(selection) {\n notifyParameterChanged(selection);\n }\n function notifyParameterChanged(selection) {\n var availableValues = parameter.availableValues;\n var values = $.map(selection, function (item) {\n return availableValues[$(item).index()].value;\n });\n if (Array.isArray(values)) {\n values = values[0];\n }\n valueChangeCallback(parameter, values);\n }\n function getSelectedItems() {\n return listView.select();\n }\n function onChange() {\n onSelectionChanged(getSelectedItems());\n }\n function init() {\n setEditorTabIndex($list);\n setSelectedItems(parameter.value);\n listView.bind(\"change\", onChange);\n }\n function reset() {\n if (listView) {\n listView.unbind(\"change\", onChange);\n }\n }\n function setSelectedItems(value) {\n var items = $list.find(\".trv-listviewitem\");\n $.each(parameter.availableValues, (i, av) => {\n var availableValue = av.value;\n if (value instanceof Date) {\n availableValue = parseToLocalDate(av.value);\n }\n if (areEqual(value, availableValue)) {\n listView.select(items[i]);\n return false;\n }\n return true;\n });\n }\n return {\n beginEdit: function (param) {\n reset();\n parameter = param;\n try {\n listView = $list.kendoListView({\n template: '
          ${name}
          ',\n dataSource: {\n data: parameter.availableValues\n },\n selectable: true,\n navigatable: navigatableEnabledForList(options.enableAccessibility)\n }).data(\"kendoListView\");\n } catch (e) {\n console.error(\"Instantiation of Kendo ListView as SingleSelect parameter editor threw an exception\", e);\n throw e;\n }\n init();\n },\n enable: function (enable) {\n enabled = enable;\n enableItem($list, enabled);\n if (enabled) {\n listView.bind(\"change\", onChange);\n $list.addClass(\"k-selectable\");\n } else {\n listView.unbind(\"change\", onChange);\n $list.removeClass(\"k-selectable\");\n }\n },\n addAccessibility: function (param) {\n var info = stringFormat(stringResources.ariaLabelParameterInfo, [param.availableValues.length]);\n addAccessibilityAttributes($list, stringResources.ariaLabelSingleValue, param.text, info, param.Error);\n var items = $list.find(\".trv-listviewitem\");\n Array.from(items).forEach(item => {\n $(item).attr(\"aria-label\", item.innerText);\n });\n },\n setAccessibilityErrorState: function (param) {\n setAccessibilityErrorAttributes($list, param.Error);\n },\n destroy: function () {\n listView.destroy();\n }\n };\n }\n }, {\n match: parameterEditorsMatch.SingleSelectCombo,\n createEditor: function (placeholder, options) {\n var $placeholder = $(placeholder);\n var selector = \".trv-combo\";\n var template = \"trv-parameter-editor-available-values-combo\";\n var valueChangeCallback = options.parameterChanged;\n var $editorDom;\n var $selectNone;\n var editor;\n var parameter;\n $placeholder.html(options.templates[template]);\n $editorDom = $placeholder.find(selector);\n $selectNone = $placeholder.find(\".trv-select-none\");\n if ($selectNone) {\n $selectNone.text(stringResources[$selectNone.text()]);\n $selectNone.click(function (e) {\n e.preventDefault();\n editor.value(\"\");\n editor.trigger(\"change\");\n });\n }\n function onSelectionChanged(selection, value) {\n notifyParameterChanged(selection, value);\n }\n function notifyParameterChanged(selection, value) {\n var values = value || \"\";\n var availableValues;\n if (!value && selection >= 0) {\n availableValues = parameter.availableValues;\n values = availableValues[selection].value;\n }\n valueChangeCallback(parameter, values);\n }\n function getSelectedItems() {\n return editor.select();\n }\n function onChange(e) {\n onSelectionChanged(getSelectedItems(), this.value());\n }\n function init() {\n setEditorTabIndex($editorDom);\n editor.bind(\"change\", onChange);\n }\n function reset() {\n if (editor) {\n editor.unbind(\"change\", onChange);\n }\n }\n return {\n beginEdit: function (param) {\n reset();\n parameter = param;\n try {\n editor = $editorDom.kendoComboBox({\n template: '
          ${name}
          ',\n dataSource: parameter.availableValues,\n dataTextField: \"name\",\n dataValueField: \"value\",\n value: parameter.value,\n filter: \"contains\",\n suggest: true,\n clearButton: false\n }).data(\"kendoComboBox\");\n } catch (e) {\n console.error(\"Instantiation of Kendo ComboBox as SingleSelectCombo parameter editor threw an exception\", e);\n throw e;\n }\n init();\n },\n enable: function (enable) {\n editor.enable(enable);\n },\n addAccessibility: function (param) {\n var $accessibilityDom = editor.input;\n var info = stringFormat(stringResources.ariaLabelParameterInfo, [param.availableValues.length]);\n addAccessibilityAttributes($accessibilityDom, stringResources.ariaLabelSingleValue, param.text, info, param.Error);\n var items = editor.items();\n Array.from(items).forEach(item => {\n $(item).attr(\"aria-label\", item.innerText);\n });\n },\n setAccessibilityErrorState: function (param) {\n setAccessibilityErrorAttributes($editorDom, param.Error);\n },\n destroy: function () {\n editor.destroy();\n }\n };\n }\n }, {\n match: parameterEditorsMatch.MultiValue,\n createEditor: function (placeholder, options) {\n var $placeholder = $(placeholder);\n var parameter;\n $placeholder.html(options.templates[\"trv-parameter-editor-multivalue\"]);\n var $textArea = $placeholder.find(\"textarea\").on(\"change\", function () {\n if (options.parameterChanged) {\n options.parameterChanged(parameter, multivalueUtils.parseValues(this.value));\n }\n });\n function setValue(value) {\n parameter.value = value;\n $textArea.val(multivalueUtils.formatValue(value));\n }\n return {\n beginEdit: function (param) {\n parameter = param;\n setValue(param.value);\n setEditorTabIndex($textArea);\n },\n enable: function (enable) {\n enableItem($textArea, enable);\n $textArea.prop(\"disabled\", !enable);\n },\n addAccessibility: function (param) {\n addAccessibilityAttributes($textArea, stringResources.ariaLabelMultiValue, param.text, null, param.Error);\n },\n setAccessibilityErrorState: function (param) {\n setAccessibilityErrorAttributes($textArea, param.Error);\n }\n };\n }\n }, {\n match: parameterEditorsMatch.DateTime,\n createEditor: function (placeholder, options) {\n var $placeholder = $(placeholder);\n var parameter;\n $placeholder.html(options.templates[\"trv-parameter-editor-datetime\"]);\n try {\n var $dateTimePicker = $placeholder.find(\"input[type=datetime]\").kendoDatePicker({\n change: function () {\n var handler = options.parameterChanged;\n if (handler) {\n var dtv = this.value();\n if (null !== dtv) {\n dtv = adjustTimezone(dtv);\n }\n handler(parameter, dtv);\n }\n }\n });\n var dateTimePicker = $dateTimePicker.data(\"kendoDatePicker\");\n } catch (e) {\n console.error(\"Instantiation of Kendo DatePicker as DateTime parameter editor threw an exception\", e);\n throw e;\n }\n function setValue(value) {\n parameter.value = value;\n var dt = null;\n try {\n if (value) {\n dt = unadjustTimezone(value);\n }\n } catch (e) {\n dt = null;\n }\n dateTimePicker.value(dt);\n }\n return {\n beginEdit: function (param) {\n parameter = param;\n setValue(param.value);\n setEditorTabIndex($dateTimePicker);\n },\n enable: function (enable) {\n dateTimePicker.enable(enable);\n enableItem($dateTimePicker, enable);\n },\n addAccessibility: function (param) {\n addAccessibilityAttributes($dateTimePicker, stringResources.ariaLabelParameterDateTime, param.text, null, param.Error);\n $dateTimePicker.attr(\"aria-live\", \"assertive\");\n },\n setAccessibilityErrorState: function (param) {\n setAccessibilityErrorAttributes($dateTimePicker, param.Error);\n },\n destroy: function () {\n dateTimePicker.destroy();\n }\n };\n }\n }, {\n match: parameterEditorsMatch.String,\n createEditor: function (placeholder, options) {\n var $placeholder = $(placeholder);\n var parameter;\n $placeholder.html(options.templates[\"trv-parameter-editor-text\"]);\n var $input = $placeholder.find('input[type=\"text\"]').change(function () {\n if (options.parameterChanged) {\n options.parameterChanged(parameter, $input.val());\n }\n });\n function setValue(value) {\n parameter.value = value;\n $input.val(value);\n }\n return {\n beginEdit: function (param) {\n parameter = param;\n setValue(param.value);\n setEditorTabIndex($input);\n },\n enable: function (enabled) {\n $input.prop(\"disabled\", !enabled);\n enableItem($input, enabled);\n },\n addAccessibility: function (param) {\n addAccessibilityAttributes($input, stringResources.ariaLabelParameterString, param.text, null, param.Error);\n $input.attr(\"aria-live\", \"assertive\");\n },\n setAccessibilityErrorState: function (param) {\n setAccessibilityErrorAttributes($input, param.Error);\n }\n };\n }\n }, {\n match: parameterEditorsMatch.Number,\n createEditor: function (placeholder, options) {\n var $placeholder = $(placeholder);\n var parameter;\n var inputBehavior;\n $placeholder.html(options.templates[\"trv-parameter-editor-number\"]);\n var $input = $placeholder.find(\"input[type=number]\").on(\"change\", function () {\n if (options.parameterChanged) {\n options.parameterChanged(parameter, $input.val());\n }\n });\n return {\n beginEdit: function (param) {\n if (inputBehavior) {\n inputBehavior.dispose();\n }\n parameter = param;\n $input.val(parameter.value);\n if (parameter.type === ParameterTypes.INTEGER) {\n inputBehavior = integerInputBehavior($input);\n } else {\n inputBehavior = floatInputBehavior($input);\n }\n setEditorTabIndex($input);\n },\n enable: function (enable) {\n $input.prop(\"disabled\", !enable);\n enableItem($input, enable);\n },\n addAccessibility: function (param) {\n addAccessibilityAttributes($input, stringResources.ariaLabelParameterNumerical, param.text, null, param.Error);\n $input.attr(\"aria-live\", \"assertive\");\n },\n setAccessibilityErrorState: function (param) {\n setAccessibilityErrorAttributes($input, param.Error);\n }\n };\n }\n }, {\n match: parameterEditorsMatch.Boolean,\n createEditor: function (placeholder, options) {\n var $placeholder = $(placeholder);\n var parameter;\n $placeholder.html(options.templates[\"trv-parameter-editor-boolean\"]);\n var $input = $placeholder.find(\"input[type=checkbox]\").on(\"change\", function () {\n if (options.parameterChanged) {\n options.parameterChanged(parameter, this.checked);\n }\n });\n function setValue(value) {\n parameter.value = value;\n $input[0].checked = value === true;\n }\n return {\n beginEdit: function (param) {\n parameter = param;\n setValue(param.value);\n setEditorTabIndex($input);\n },\n enable: function (enable) {\n enableItem($input, enable);\n $input.attr(\"disabled\", !enable);\n },\n addAccessibility: function (param) {\n addAccessibilityAttributes($input, stringResources.ariaLabelParameterBoolean, param.text, null, param.Error);\n $input.attr(\"aria-live\", \"assertive\");\n },\n setAccessibilityErrorState: function (param) {\n setAccessibilityErrorAttributes($input, param.Error);\n }\n };\n }\n }, {\n match: parameterEditorsMatch.Default,\n createEditor: function (placeholder, options) {\n var $placeholder = $(placeholder);\n $placeholder.html('
          ');\n return {\n beginEdit: function (parameter) {\n $placeholder.find(\".trv-parameter-editor-generic\").text(parameter.Error ? \"(error)\" : parameter.value);\n },\n enable: function (enable) {}\n };\n }\n }];\n function PerspectiveManager(dom, controller) {\n var smallMenu = dom.querySelectorAll ? dom.querySelectorAll(\".trv-menu-small\")[0] : false;\n var perspectives = {\n \"small\": {\n documentMapVisible: false,\n parametersAreaVisible: false,\n onDocumentMapVisibleChanged: function (e, args) {\n if (args.visible) {\n controller.setParametersAreaVisible({\n visible: false\n });\n }\n },\n onParameterAreaVisibleChanged: function (e, args) {\n if (args.visible) {\n controller.setDocumentMapVisible({\n visible: false\n });\n }\n },\n onBeforeLoadReport: function () {\n controller.setParametersAreaVisible({\n visible: false\n });\n controller.setDocumentMapVisible({\n visible: false\n });\n },\n onNavigateToPage: function () {\n controller.setParametersAreaVisible({\n visible: false\n });\n controller.setDocumentMapVisible({\n visible: false\n });\n }\n },\n \"large\": {\n documentMapVisible: true,\n parametersAreaVisible: true\n }\n };\n var currentPerspective;\n function init() {\n currentPerspective = getPerspective();\n initStateFromController(perspectives[\"large\"]);\n }\n function setPerspective(beforeApplyState) {\n var perspective = getPerspective();\n if (perspective !== currentPerspective) {\n var oldState = perspectives[currentPerspective];\n var newState = perspectives[perspective];\n currentPerspective = perspective;\n if (beforeApplyState) {\n beforeApplyState.call(void 0, oldState, newState);\n }\n applyState(newState);\n }\n }\n function onDocumentMapVisibleChanged(e, args) {\n dispatch(\"onDocumentMapVisibleChanged\", arguments);\n }\n function onParameterAreaVisibleChanged(e, args) {\n dispatch(\"onParameterAreaVisibleChanged\", arguments);\n }\n function onBeforeLoadReport() {\n dispatch(\"onBeforeLoadReport\", arguments);\n }\n function onNavigateToPage() {\n dispatch(\"onNavigateToPage\", arguments);\n }\n function onReportLoadComplete() {\n dispatch(\"onReportLoadComplete\", arguments);\n }\n function onWindowResize() {\n setPerspective(function (oldState, newState) {\n initStateFromController(oldState);\n });\n }\n function onCssLoaded() {\n setPerspective(null);\n }\n function dispatch(func, args) {\n var activePerspective = perspectives[currentPerspective];\n var handler = activePerspective[func];\n if (typeof handler === \"function\") {\n handler.apply(activePerspective, args);\n }\n }\n function attach() {\n window.addEventListener(\"resize\", onWindowResize);\n controller.setDocumentMapVisible(onDocumentMapVisibleChanged);\n controller.setParametersAreaVisible(onParameterAreaVisibleChanged);\n controller.beforeLoadReport(onBeforeLoadReport);\n controller.navigateToPage(onNavigateToPage);\n controller.reportLoadComplete(onReportLoadComplete);\n controller.cssLoaded(onCssLoaded);\n }\n function dispose() {\n window.removeEventListener(\"resize\", onWindowResize);\n }\n function getPerspective() {\n var windowWidthInEm = $(window).width() / parseFloat($(\"body\").css(\"font-size\"));\n var windowMinWidth = 40.5;\n return smallMenu && windowWidthInEm <= windowMinWidth ? \"small\" : \"large\";\n }\n function initStateFromController(state) {\n state.documentMapVisible = documentMapVisible();\n state.parametersAreaVisible = parametersAreaVisible();\n }\n function applyState(state) {\n documentMapVisible(state.documentMapVisible);\n parametersAreaVisible(state.parametersAreaVisible);\n }\n function documentMapVisible() {\n if (arguments.length === 0) {\n var args1 = {};\n controller.getDocumentMapState(args1);\n return args1.visible;\n }\n controller.setDocumentMapVisible({\n visible: Boolean(arguments[0])\n });\n return this;\n }\n function parametersAreaVisible() {\n if (arguments.length === 0) {\n var args1 = {};\n controller.getParametersAreaState(args1);\n return args1.visible;\n }\n controller.setParametersAreaVisible({\n visible: Boolean(arguments[0])\n });\n return this;\n }\n init();\n return {\n attach,\n dispose\n };\n }\n var __defProp$5 = Object.defineProperty;\n var __getOwnPropSymbols = Object.getOwnPropertySymbols;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __propIsEnum = Object.prototype.propertyIsEnumerable;\n var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\n var __spreadValues = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop)) __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n };\n var JSON_CONTENT_TYPE = \"application/json; charset=UTF-8\";\n var URLENCODED_CONTENT_TYPE = \"application/x-www-form-urlencoded; charset=UTF-8\";\n var HTTP_GET = \"GET\";\n var HTTP_POST = \"POST\";\n var HTTP_DELETE = \"DELETE\";\n var defaultOptions$4 = {};\n function getHeaders(authorizationToken) {\n const headers = {\n \"Accept\": \"application/json, text/javascript, */*; q=0.01\"\n };\n if (authorizationToken) {\n headers[\"Authorization\"] = \"Bearer \" + authorizationToken;\n }\n return headers;\n }\n function ServiceClient(options) {\n options = $.extend({}, defaultOptions$4, options);\n var baseUrl = rTrim(options.serviceUrl || options.baseUrl, \"\\\\/\");\n var loginPromise;\n var _ajax = $ajax;\n function validateClientID(clientID) {\n if (!clientID) {\n throw \"Invalid clientID\";\n }\n }\n function urlFromTemplate(template, args) {\n args = $.extend({}, {\n baseUrl\n }, args);\n return stringFormat(template, args);\n }\n function login() {\n if (!loginPromise) {\n var loginInfo = options.loginInfo;\n if (loginInfo && loginInfo.url && (loginInfo.username || loginInfo.password)) {\n const endPoint = loginInfo.url;\n loginPromise = _ajax(endPoint, {\n method: HTTP_POST,\n data: {\n grant_type: \"password\",\n username: loginInfo.username,\n password: loginInfo.password\n },\n dataType: \"json\",\n contentType: URLENCODED_CONTENT_TYPE\n }).then(function (result) {\n return result.access_token;\n });\n } else {\n loginPromise = Promise.resolve();\n }\n }\n return loginPromise;\n }\n return {\n _urlFromTemplate: urlFromTemplate,\n registerClient: function (settings) {\n const endPoint = `${baseUrl}/clients`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_POST,\n dataType: \"json\",\n // Used to avoid Chrome caching functionality for simple async requests\n // when the first request is not completed the second request is not send\n // and the same response is used for both of the request. In this case the\n // second client is not registered to the service and the same clientId is used.\n data: JSON.stringify({\n timeStamp: Date.now()\n })\n }, settings));\n }).then(function (clientData) {\n if (clientData.Message) {\n throw clientData.Message;\n }\n return clientData.clientId;\n });\n },\n unregisterClient: function (clientID, settings) {\n validateClientID(clientID);\n const endPoint = `${baseUrl}/clients/${clientID}`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_DELETE\n }, settings));\n });\n },\n getParameters: function (clientID, report, parameterValues, settings) {\n validateClientID(clientID);\n const endPoint = `${baseUrl}/clients/${clientID}/parameters`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_POST,\n contentType: JSON_CONTENT_TYPE,\n dataType: \"json\",\n data: JSON.stringify({\n report,\n parameterValues\n })\n }, settings));\n });\n },\n createReportInstance: function (clientID, report, parameterValues, settings) {\n validateClientID(clientID);\n const endPoint = `${baseUrl}/clients/${clientID}/instances`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_POST,\n contentType: JSON_CONTENT_TYPE,\n dataType: \"json\",\n data: JSON.stringify({\n report,\n parameterValues\n })\n }, settings));\n }).then(function (instanceData) {\n return instanceData.instanceId;\n });\n },\n deleteReportInstance: function (clientID, instanceID, settings) {\n validateClientID(clientID);\n const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_DELETE\n }, settings));\n });\n },\n // eslint-disable-next-line max-params\n createReportDocument: function (clientID, instanceID, format, deviceInfo, useCache, baseDocumentID, actionID, settings) {\n validateClientID(clientID);\n const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents`;\n return login().then(function (authorizationToken) {\n deviceInfo = deviceInfo || {};\n deviceInfo[\"BasePath\"] = baseUrl;\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_POST,\n contentType: JSON_CONTENT_TYPE,\n dataType: \"json\",\n data: JSON.stringify({\n format,\n deviceInfo,\n useCache,\n baseDocumentID,\n actionID\n })\n }, settings));\n }).then(function (documentData) {\n return documentData.documentId;\n });\n },\n // eslint-disable-next-line max-params\n sendDocument: function (clientID, instanceID, documentID, mailArgs, settings) {\n validateClientID(clientID);\n const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents/${documentID}/send`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_POST,\n contentType: JSON_CONTENT_TYPE,\n data: JSON.stringify({\n from: mailArgs.from,\n to: mailArgs.to,\n cc: mailArgs.cc,\n subject: mailArgs.subject,\n body: mailArgs.body\n })\n }, settings));\n });\n },\n deleteReportDocument: function (clientID, instanceID, documentID, settings) {\n validateClientID(clientID);\n const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents/${documentID}`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_DELETE\n }, settings));\n });\n },\n getDocumentInfo: function (clientID, instanceID, documentID, settings) {\n validateClientID(clientID);\n const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents/${documentID}/info`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_GET,\n dataType: \"json\"\n }, settings));\n });\n },\n // eslint-disable-next-line max-params\n getPage: function (clientID, instanceID, documentID, pageNumber, settings) {\n validateClientID(clientID);\n const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents/${documentID}/pages/${pageNumber}`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_GET,\n dataType: \"json\"\n }, settings));\n });\n },\n get: function (url) {\n return _ajax(url, {\n method: HTTP_GET\n });\n },\n formatDocumentUrl: function (clientID, instanceID, documentID, queryString) {\n var url = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents/${documentID}`;\n if (queryString) {\n url += \"?\" + queryString;\n }\n return url;\n },\n getDocumentFormats: function (settings) {\n const endPoint = `${baseUrl}/formats`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_GET,\n dataType: \"json\"\n }, settings));\n });\n },\n getServiceVersion: function (settings) {\n const endPoint = `${baseUrl}/version`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_GET,\n dataType: \"json\"\n }, settings));\n });\n },\n // eslint-disable-next-line max-params\n getResource: function (clientID, instanceID, documentID, resourceID, settings) {\n validateClientID(clientID);\n const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents/${documentID}/resources/${resourceID}`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_GET,\n dataType: (settings == null ? void 0 : settings.dataType) || \"json\"\n }, settings));\n });\n },\n // eslint-disable-next-line max-params\n getSearchResults: function (clientID, instanceID, documentID, searchToken, matchCase, matchWholeWord, useRegex, settings) {\n validateClientID(clientID);\n const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents/${documentID}/search`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_POST,\n contentType: JSON_CONTENT_TYPE,\n dataType: \"json\",\n data: JSON.stringify({\n searchToken,\n matchCase,\n matchWholeWord,\n useRegularExpressions: useRegex\n })\n }, settings));\n });\n },\n setAccessToken: function (accessToken) {\n loginPromise = Promise.resolve(accessToken);\n },\n login,\n keepClientAlive: function (clientID, settings) {\n const endPoint = `${baseUrl}/clients/keepAlive/${clientID}`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_POST\n }, settings));\n });\n },\n getClientsSessionTimeoutSeconds: function (settings) {\n const endPoint = `${baseUrl}/clients/sessionTimeout`;\n return login().then(function (authorizationToken) {\n return _ajax(endPoint, __spreadValues({\n headers: getHeaders(authorizationToken),\n method: HTTP_GET\n }, settings));\n }).then(function (sessionTimeoutData) {\n return sessionTimeoutData.clientSessionTimeout;\n });\n }\n };\n }\n function UIController(options) {\n var stateFlags = {\n ExportInProgress: 1 << 0,\n PrintInProgress: 1 << 1,\n RenderInProgress: 1 << 2\n };\n function getState(flags) {\n return (state & flags) != 0;\n }\n function setState(flags, value) {\n if (value) {\n state |= flags;\n } else {\n state &= ~flags;\n }\n }\n var controller = options.controller;\n var historyManager = options.history;\n var state = 0;\n var refreshUI;\n var commands = options.commands;\n if (!controller) {\n throw \"No controller (telerikReporting.ReportViewerController) has been specified.\";\n }\n function getDocumentMapState() {\n var args = {};\n controller.getDocumentMapState(args);\n return args;\n }\n function getParametersAreaState() {\n var args = {};\n controller.getParametersAreaState(args);\n return args;\n }\n function getSearchDialogState() {\n var args = {};\n controller.getSearchDialogState(args);\n return args;\n }\n function getSendEmailDialogState() {\n var args = {};\n controller.getSendEmailDialogState(args);\n return args;\n }\n function updateUI() {\n if (!refreshUI) {\n refreshUI = true;\n window.setTimeout(function () {\n try {\n updateUICore();\n } finally {\n refreshUI = false;\n }\n }, 10);\n }\n }\n function updateUICore() {\n var rs = controller.getReportSource();\n var pageCount = controller.getPageCount();\n var currentPageNumber = controller.getCurrentPageNumber();\n var hasReport = rs && rs.report;\n var hasPages = hasReport && pageCount > 0;\n var nextPage = hasPages && currentPageNumber < pageCount;\n var prevPage = hasPages && currentPageNumber > 1;\n var hasPage = hasPages && currentPageNumber;\n var documentMapState = getDocumentMapState();\n var parametersAreaState = getParametersAreaState();\n var searchDialogState = getSearchDialogState();\n var sendEmailDialogState = getSendEmailDialogState();\n var renderInProgress = getState(stateFlags.RenderInProgress);\n var printInProgress = getState(stateFlags.PrintInProgress);\n var exportInProgress = getState(stateFlags.ExportInProgress);\n commands.goToFirstPage.enabled(prevPage);\n commands.goToPrevPage.enabled(prevPage);\n commands.stopRendering.enabled(hasReport && renderInProgress);\n commands.goToLastPage.enabled(nextPage);\n commands.goToNextPage.enabled(nextPage);\n commands.goToPage.enabled(hasPages);\n commands.print.enabled(hasPages && !renderInProgress && !printInProgress);\n commands.export.enabled(hasPages && !renderInProgress && !exportInProgress);\n commands.refresh.enabled(hasReport);\n commands.historyBack.enabled(historyManager && historyManager.canMoveBack());\n commands.historyForward.enabled(historyManager && historyManager.canMoveForward());\n commands.toggleDocumentMap.enabled(hasReport && documentMapState.enabled).checked(documentMapState.enabled && documentMapState.visible);\n commands.toggleParametersArea.enabled(hasReport && parametersAreaState.enabled).checked(parametersAreaState.enabled && parametersAreaState.visible);\n commands.togglePrintPreview.enabled(hasPages).checked(controller.getViewMode() == ViewModes.PRINT_PREVIEW);\n commands.pageMode.enabled(hasPages).checked(controller.getPageMode() == PageModes.CONTINUOUS_SCROLL);\n commands.zoom.enabled(hasPage);\n commands.zoomIn.enabled(hasPage);\n commands.zoomOut.enabled(hasPage);\n commands.toggleZoomMode.enabled(hasPage).checked(controller.getScaleMode() == ScaleModes.FIT_PAGE || controller.getScaleMode() == ScaleModes.FIT_PAGE_WIDTH);\n commands.toggleSearchDialog.enabled(hasPages).checked(searchDialogState.visible);\n commands.toggleSendEmailDialog.enabled(hasPages).checked(sendEmailDialogState.visible);\n controller.updateUI(null);\n controller.pageNumberChange(currentPageNumber);\n controller.pageCountChange(pageCount);\n }\n controller.setParametersAreaVisible(updateUI);\n controller.setDocumentMapVisible(updateUI);\n controller.updateUIInternal(updateUI);\n controller.setSearchDialogVisible(updateUI);\n controller.setSendEmailDialogVisible(updateUI);\n controller.scaleModeChanged(updateUI);\n controller.currentPageChanged(updateUI);\n controller.beforeLoadReport(function () {\n setState(stateFlags.RenderInProgress, true);\n updateUI();\n });\n controller.reportLoadProgress(updateUI);\n controller.reportLoadComplete(function () {\n setState(stateFlags.RenderInProgress, false);\n updateUI();\n });\n controller.reportSourceChanged(updateUI);\n controller.viewModeChanged(updateUI);\n controller.pageModeChanged(function () {\n updateUI();\n });\n controller.setUIState(function (event, args) {\n setState(stateFlags[args.operationName], args.inProgress);\n updateUI();\n });\n controller.error(function () {\n setState(stateFlags.ExportInProgress, false);\n setState(stateFlags.PrintInProgress, false);\n setState(stateFlags.RenderInProgress, false);\n updateUI();\n });\n controller.renderingStopped(function () {\n setState(stateFlags.RenderInProgress, false);\n updateUI();\n });\n updateUI();\n }\n var defaultOptions$3 = {};\n function DocumentMapArea(placeholder, options, otherOptions) {\n options = $.extend({}, defaultOptions$3, options, otherOptions);\n var controller = options.controller;\n if (!controller) {\n throw \"No controller (telerikReporting.reportViewerController) has been specified.\";\n }\n var $placeholder = $(placeholder);\n var $documentMap;\n var documentMapVisible = options.documentMapVisible !== false;\n var enableAccessibility = options.enableAccessibility;\n var currentReport = null;\n var documentMapNecessary = false;\n init();\n function init() {\n $documentMap = $('
          ');\n $documentMap.appendTo(placeholder);\n attach();\n replaceStringResources($placeholder);\n }\n function onTreeViewSelectionChanged(e) {\n var documentMapNode = this.dataItem(e.node);\n var page = documentMapNode.page;\n var id = documentMapNode.id;\n controller.navigateToPage(page, {\n type: \"bookmark\",\n id\n });\n }\n function onTreeViewNodeExpand(e) {\n if (enableAccessibility) {\n window.setTimeout(function () {\n setNodeAccessibilityAttributes(e.node);\n }, 100);\n }\n }\n function setNodeAccessibilityAttributes(node) {\n var $items = $(node).find(\"li\");\n Array.from($items).forEach(item => {\n var $li = $(item);\n $li.attr(\"aria-label\", $li[0].innerText);\n });\n }\n function clearDocumentMap() {\n displayDocumentMap([]);\n }\n function displayDocumentMap(documentMap) {\n var hasDocumentMap = documentMap && !$.isEmptyObject(documentMap);\n var $treeView = $documentMap.data(\"kendoTreeView\");\n if (!$treeView) {\n try {\n $documentMap.kendoTreeView({\n dataTextField: \"text\",\n select: onTreeViewSelectionChanged\n });\n $treeView = $documentMap.data(\"kendoTreeView\");\n } catch (e) {\n console.error(\"Instantiation of Kendo TreeView as Document Map threw an exception\", e);\n throw e;\n }\n }\n $treeView.setDataSource(documentMap);\n if (enableAccessibility) {\n setAccessibilityAttributes($treeView);\n }\n showDocumentMap(hasDocumentMap);\n }\n function setAccessibilityAttributes(treeView) {\n treeView.bind(\"expand\", onTreeViewNodeExpand);\n treeView.element.attr(\"aria-label\", stringResources.ariaLabelDocumentMap);\n var listItems = treeView.element.find(\"ul\");\n Array.from(listItems).forEach(list => {\n setNodeAccessibilityAttributes(list);\n });\n if (documentMapNecessary) {\n setSplitbarAccessibilityAttributes();\n }\n }\n function setSplitbarAccessibilityAttributes() {\n var splitbar = $placeholder.next();\n if (options.documentMapAreaPosition === DocumentMapAreaPositions.RIGHT) {\n splitbar = $placeholder.prev();\n }\n splitbar.attr(\"aria-label\", stringResources.ariaLabelDocumentMapSplitter);\n }\n function isVisible() {\n var args = {};\n controller.getDocumentMapState(args);\n return args.visible;\n }\n function beginLoad() {\n $placeholder.addClass(\"trv-loading\");\n }\n function endLoad() {\n $placeholder.removeClass(\"trv-loading\");\n }\n function showDocumentMap(show) {\n var splitter = GlobalSettings.viewerInstances.find(element => element.id === options.viewerSelector + \"-document-map-splitter\").instance;\n var sibling = $placeholder.next();\n if (options.documentMapAreaPosition === DocumentMapAreaPositions.RIGHT) {\n sibling = $placeholder.prev();\n }\n if (splitter) {\n (documentMapNecessary ? $.fn.removeClass : $.fn.addClass).call(sibling, \"trv-hidden\");\n splitter.toggle(\".trv-document-map\", show);\n }\n }\n function attach() {\n controller.beginLoadReport(function () {\n beginLoad();\n var r = controller.getReportSource().report;\n var clearMapItems = currentReport !== r || !isVisible();\n currentReport = r;\n if (clearMapItems) {\n clearDocumentMap();\n }\n }).reportLoadComplete(function (event, args) {\n if (args.documentMapAvailable) {\n documentMapNecessary = true;\n displayDocumentMap(args.documentMapNodes);\n controller.setDocumentMapVisible({\n enabled: true,\n visible: documentMapVisible\n });\n } else {\n documentMapNecessary = false;\n showDocumentMap(documentMapNecessary);\n }\n endLoad();\n }).error(function (event, error) {\n endLoad();\n clearDocumentMap();\n }).renderingStopped(function () {\n documentMapNecessary = false;\n showDocumentMap(false);\n });\n controller.setDocumentMapVisible(function (event, args) {\n documentMapVisible = args.visible;\n showDocumentMap(documentMapVisible && documentMapNecessary);\n }).getDocumentMapState(function (event, args) {\n args.enabled = documentMapNecessary;\n args.visible = documentMapVisible;\n });\n }\n function replaceStringResources($documentMap2) {\n var $documentMapOverlay = $documentMap2.find(\".trv-document-map-overlay\");\n if (!$documentMapOverlay) {\n return;\n }\n $documentMapOverlay.attr(\"aria-label\", stringResources[$documentMapOverlay.attr(\"aria-label\")]);\n }\n }\n var defaultOptions$2 = {};\n var Events = {\n PARAMETERS_READY: \"pa.parametersReady\",\n ERROR: \"pa.Error\"\n };\n function ParametersArea(placeholder, options, otherOptions) {\n options = $.extend({}, defaultOptions$2, options, otherOptions);\n var parametersArea = {};\n var $parametersArea = $(parametersArea);\n var editors = {};\n var controller = options.controller;\n if (!controller) {\n throw \"No controller (telerikReporting.reportViewerController) has been specified.\";\n }\n var parameterEditors = [].concat(options.parameterEditors, ParameterEditors);\n var recentParameterValues;\n var parameters;\n var initialParameterValues;\n var processedParameterValues = void 0;\n var $placeholder = $(placeholder);\n var $content = $placeholder.find(\".trv-parameters-area-content\");\n var $errorMessage = $placeholder.find(\".trv-error-message\");\n var $previewButton = $placeholder.find(\".trv-parameters-area-preview-button\");\n $previewButton.text(stringResources[$previewButton.text()]);\n $previewButton.attr(\"aria-label\", stringResources[$previewButton.attr(\"aria-label\")]);\n $previewButton.on(\"click\", function (e) {\n e.preventDefault();\n if (allParametersValid()) {\n applyParameters();\n }\n });\n var parameterContainerTemplate = options.templates[\"trv-parameter\"];\n var parametersAreaVisible = options.parametersAreaVisible !== false;\n var enableAccessibility = options.enableAccessibility;\n init();\n function init() {\n replaceStringResources($placeholder);\n }\n function replaceStringResources($paramsArea) {\n var $previewButton2 = $paramsArea.find(\".trv-parameters-area-preview-button\");\n if (!$previewButton2) {\n return;\n }\n $previewButton2.attr(\"aria-label\", stringResources[$previewButton2.attr(\"aria-label\")]);\n $previewButton2.text(stringResources[$previewButton2.text()]);\n }\n function toggleElementDisplay(el, shouldHide) {\n el.style.display = shouldHide ? \"none\" : \"\";\n }\n function createParameterContainer() {\n return $(parameterContainerTemplate);\n }\n function createParameterUI(parameter) {\n var $container = createParameterContainer();\n var $editorPlaceholder = $container.find(\".trv-parameter-value\");\n var $title = $container.find(\".trv-parameter-title\");\n var $error = $container.find(\".trv-parameter-error\");\n var $errorMessage2 = $container.find(\".trv-parameter-error-message\");\n var $useDefaultValueCheckbox = $container.find(\".trv-parameter-use-default input\");\n var editorsTypes = options.parameters && options.parameters.editors ? options.parameters.editors : null;\n var editorFactory = selectParameterEditorFactory(parameter, editorsTypes);\n var parameterText = escapeHtml(parameter.text);\n var isHiddenParameter = !parameter.isVisible;\n if (isHiddenParameter) {\n parameterText += \" [hidden]\";\n }\n $title.html(parameterText).attr(\"title\", parameterText);\n $errorMessage2.text(parameter.Error);\n (parameter.Error ? $.fn.show : $.fn.hide).call($error);\n var editor = editorFactory.createEditor($editorPlaceholder, {\n templates: options.templates,\n parameterChanged: function (parameter2, newValue) {\n var invalidParameterLI = document.querySelector(\".trv-pages-area .trv-error-message ul li.\" + parameter2.name);\n try {\n newValue = ParameterValidators.validate(parameter2, newValue);\n $error.hide();\n if (invalidParameterLI) {\n toggleElementDisplay(invalidParameterLI, true);\n }\n onParameterChanged(parameter2, newValue);\n } catch (error) {\n if (invalidParameterLI) {\n toggleElementDisplay(invalidParameterLI, false);\n }\n parameter2.Error = error;\n parameter2.value = [];\n $errorMessage2.text(error);\n $error.show();\n enablePreviewButton(false);\n } finally {\n setAccessibilityErrorState(parameter2);\n }\n },\n enableAccessibility\n });\n editors[parameter.id] = editor;\n editor.beginEdit(parameter);\n if (enableAccessibility && !isHiddenParameter) {\n editor.addAccessibility(parameter);\n }\n if ($useDefaultValueCheckbox.length > 0) {\n $useDefaultValueCheckbox.on(\"click\", function () {\n var useDefaultValue = $(this).is(\":checked\");\n if (useDefaultValue) {\n delete recentParameterValues[parameter.id];\n delete initialParameterValues[parameter.id];\n invalidateChildParameters(parameter);\n updateParameters(onLoadParametersSuccess);\n } else {\n recentParameterValues[parameter.id] = parameter.value;\n initialParameterValues[parameter.id] = parameter.value;\n }\n editor.enable(!useDefaultValue);\n raiseParametersReady();\n });\n var hasInitialValues = initialParameterValues !== null;\n if (hasInitialValues) {\n if (!(parameter.id in initialParameterValues)) {\n $useDefaultValueCheckbox.prop(\"checked\", true);\n editor.enable(false);\n }\n } else if (isHiddenParameter) {\n $useDefaultValueCheckbox.prop(\"checked\", true);\n editor.enable(false);\n }\n }\n return $container;\n }\n function setAccessibilityErrorState(parameter) {\n var editor = editors[parameter.id];\n if (!editor || !enableAccessibility) {\n return;\n }\n editor.setAccessibilityErrorState(parameter);\n }\n function enablePreviewButton(enabled) {\n if (enabled) {\n $previewButton.prop(\"disabled\", false);\n $previewButton.removeClass(\"k-disabled\");\n } else {\n $previewButton.prop(\"disabled\", true);\n $previewButton.addClass(\"k-disabled\");\n }\n }\n function selectParameterEditorFactory(parameter, editorsType) {\n var factory = Array.from(parameterEditors).find(editor => {\n return editor.match(parameter, editorsType);\n });\n return factory;\n }\n function showError(error) {\n $errorMessage.text(error);\n (error ? $.fn.addClass : $.fn.removeClass).call($placeholder, \"trv-error\");\n }\n function showPreviewButton() {\n (allParametersAutoRefresh() ? $.fn.removeClass : $.fn.addClass).call($placeholder, \"preview\");\n }\n function allParametersAutoRefresh() {\n var allAuto = Array.from(parameters).every(parameter => {\n return !parameter.isVisible || parameter.autoRefresh;\n });\n return allAuto;\n }\n function allParametersValid() {\n var allValid = Array.from(parameters).every(parameter => {\n return !parameter.Error;\n });\n return allValid;\n }\n function clearEditors() {\n Object.entries(editors).forEach(([key, editor]) => {\n if (typeof editor.destroy === \"function\") {\n editor.destroy();\n }\n });\n editors = {};\n }\n function fill(newParameters) {\n recentParameterValues = {};\n processedParameterValues = {};\n parameters = newParameters || [];\n clearEditors();\n var $parameterContainer;\n var $tempContainer = $(\"
          \");\n Array.from(parameters).forEach(parameter => {\n try {\n parameter.value = ParameterValidators.validate(parameter, parameter.value);\n } catch (e) {\n parameter.Error = parameter.Error || e;\n }\n var hasError = Boolean(parameter.Error);\n var hasValue = !hasError;\n if (hasValue) {\n recentParameterValues[parameter.id] = parameter.value;\n } else {\n parameter.Error = stringResources.invalidParameter;\n }\n if (parameter.availableValues) {\n processedParameterValues[parameter.id] = {\n valueMember: parameter.value,\n displayMember: parameter.label,\n availableValues: parameter.availableValues,\n multivalue: parameter.multivalue\n };\n } else {\n processedParameterValues[parameter.id] = parameter.value;\n }\n if (parameter.isVisible || options.showHiddenParameters) {\n $parameterContainer = createParameterUI(parameter);\n if ($parameterContainer) {\n $tempContainer.append($parameterContainer);\n }\n }\n });\n if (initialParameterValues !== void 0) {\n if (null === initialParameterValues) {\n initialParameterValues = {};\n Array.from(parameters).forEach(parameter => {\n if (parameter.isVisible) {\n initialParameterValues[parameter.id] = parameter.value;\n } else {\n delete recentParameterValues[parameter.id];\n }\n });\n } else {\n Array.from(parameters).forEach(parameter => {\n if (!(parameter.id in initialParameterValues)) {\n delete recentParameterValues[parameter.id];\n }\n });\n }\n }\n $content.empty();\n if (parameters.length > 0) {\n $content.append($tempContainer.children());\n if (enableAccessibility) {\n $content.attr(\"aria-label\", \"Parameters area. Contains \" + parameters.length + \" parameters.\");\n }\n }\n showPreviewButton();\n var allValid = allParametersValid();\n enablePreviewButton(allValid);\n applyProcessedParameters();\n }\n function applyParameters() {\n controller.setParameters($.extend({}, recentParameterValues));\n controller.previewReport(false);\n }\n function applyProcessedParameters() {\n controller.setProcessedParameter($.extend({}, processedParameterValues));\n }\n function allParametersValidForAutoRefresh() {\n var triggerAutoUpdate = true;\n for (var i = parameters.length - 1; triggerAutoUpdate && i >= 0; i--) {\n var p = parameters[i];\n triggerAutoUpdate = p.id in recentParameterValues && (Boolean(p.autoRefresh) || !p.isVisible);\n }\n return triggerAutoUpdate;\n }\n function raiseParametersReady() {\n parametersArea.parametersReady(recentParameterValues);\n }\n function tryRefreshReport() {\n raiseParametersReady();\n if (allParametersValidForAutoRefresh()) {\n applyParameters();\n }\n }\n function invalidateChildParameters(parameter) {\n if (parameter.childParameters) {\n Array.from(parameter.childParameters).forEach(parameterId => {\n var childParameter = getParameterById(parameterId);\n if (childParameter) {\n invalidateChildParameters(childParameter);\n }\n delete recentParameterValues[parameterId];\n resetPendingParameterChange(parameterId);\n });\n }\n }\n function resetPendingParameterChange(parameterId) {\n if (editors) {\n var editor = editors[parameterId];\n if (editor && typeof editor.clearPendingChange === \"function\") {\n editor.clearPendingChange();\n }\n }\n }\n function onParameterChanged(parameter, newValue) {\n delete parameter[\"Error\"];\n parameter.value = newValue;\n recentParameterValues[parameter.id] = newValue;\n if (initialParameterValues !== void 0) {\n if (parameter.id in initialParameterValues) {\n recentParameterValues[parameter.id] = newValue;\n }\n } else {\n recentParameterValues[parameter.id] = newValue;\n }\n invalidateChildParameters(parameter);\n if (parameter.childParameters) {\n updateParameters(tryRefreshReport);\n } else {\n var allValid = allParametersValid();\n enablePreviewButton(allValid);\n if (allValid) {\n var errorMsg = document.querySelector(\".trv-pages-area .trv-error-message\");\n if ($previewButton.is(\":visible\") && errorMsg) {\n errorMsg.textContent = stringResources.tryReportPreview;\n }\n tryRefreshReport();\n }\n }\n }\n function getParameterById(parameterId) {\n if (parameters) {\n for (var i = 0; i < parameters.length; i++) {\n var p = parameters[i];\n if (p.id === parameterId) {\n return p;\n }\n }\n }\n return null;\n }\n function hasVisibleParameters(params) {\n if (!params || null === params) {\n return false;\n }\n var hasVisible = Array.from(params).some(parameter => {\n return parameter.isVisible;\n });\n return hasVisible;\n }\n var loadingCount = 0;\n function beginLoad() {\n loadingCount++;\n $placeholder.addClass(\"trv-loading\");\n }\n function endLoad() {\n if (loadingCount > 0) {\n if (0 === --loadingCount) {\n $placeholder.removeClass(\"trv-loading\");\n }\n }\n }\n var parametersAreaNecessary = false;\n function onLoadParametersComplete(params, successAction) {\n parametersAreaNecessary = hasVisibleParameters(params);\n if (!parametersAreaNecessary) {\n showParametersArea(false);\n }\n fill(params);\n showError(\"\");\n if (parametersAreaNecessary && parametersAreaVisible) {\n showParametersArea(true);\n if (enableAccessibility) {\n setSplitbarAccessibilityAttributes();\n }\n }\n controller.updateUIInternal();\n if (typeof successAction === \"function\") {\n successAction();\n }\n endLoad();\n }\n function updateParameters(successAction) {\n acceptParameters(controller.loadParameters(recentParameterValues), successAction);\n }\n function acceptParameters(controllerLoadParametersPromise, successAction) {\n beginLoad();\n controllerLoadParametersPromise.then(function (parameters2) {\n onLoadParametersComplete(parameters2, successAction);\n }).catch(function (error) {\n endLoad();\n clear();\n if (!$placeholder.hasClass(\"trv-hidden\")) {\n showError(error);\n }\n parametersArea.error(error);\n });\n }\n function getEventHandlerFromArguments(args) {\n var arg0;\n if (args && args.length) {\n arg0 = args[0];\n }\n if (typeof arg0 === \"function\") {\n return arg0;\n }\n return null;\n }\n function eventFactory(event, args) {\n var h = getEventHandlerFromArguments(args);\n if (h) {\n $parametersArea.on(event, h);\n } else {\n $parametersArea.trigger(event, args);\n }\n return controller;\n }\n function onLoadParametersSuccess() {\n if (initialParameterValues === null) {\n initialParameterValues = $.extend({}, recentParameterValues);\n }\n raiseParametersReady();\n }\n function showParametersArea(show) {\n var splitter = GlobalSettings.viewerInstances.find(element => element.id === options.viewerSelector + \"-parameters-splitter\").instance;\n var sibling = $placeholder.prev();\n if (options.parametersAreaPosition === ParametersAreaPositions.TOP || options.parametersAreaPosition === ParametersAreaPositions.LEFT) {\n sibling = $placeholder.next();\n }\n if (splitter) {\n (parametersAreaNecessary ? $.fn.removeClass : $.fn.addClass).call(sibling, \"trv-hidden\");\n splitter.toggle(\".trv-parameters-area\", show);\n }\n }\n function setSplitbarAccessibilityAttributes() {\n var splitbar = $placeholder.prev();\n var tabIndex = $placeholder.find(\".trv-parameters-area-content\").attr(\"tabIndex\");\n if (options.parametersAreaPosition === ParametersAreaPositions.TOP || options.parametersAreaPosition === ParametersAreaPositions.LEFT) {\n splitbar = $placeholder.next();\n }\n splitbar.attr(\"aria-label\", stringResources.ariaLabelParametersAreaSplitter);\n splitbar.attr(\"tabIndex\", tabIndex);\n }\n function onReloadParameters(event, controllerLoadParametersPromise) {\n showError();\n $content.empty();\n acceptParameters(controllerLoadParametersPromise, onLoadParametersSuccess);\n }\n controller.reloadParameters(onReloadParameters).beforeLoadReport(function () {\n loadingCount = 0;\n beginLoad();\n }).error(endLoad).pageReady(endLoad);\n controller.getParametersAreaState(function (event, args) {\n var parametersAreaNecessary2 = false;\n if (parameters) {\n parametersAreaNecessary2 = hasVisibleParameters(parameters);\n }\n args.enabled = parametersAreaNecessary2;\n args.visible = parametersAreaVisible;\n }).setParametersAreaVisible(function (event, args) {\n parametersAreaVisible = args.visible;\n showParametersArea(args.visible && hasVisibleParameters(parameters));\n });\n function clear() {\n fill([]);\n }\n $.extend(parametersArea, {\n allParametersValid: function () {\n return allParametersValid();\n },\n clear: function () {\n clear();\n },\n error: function () {\n return eventFactory(Events.ERROR, arguments);\n },\n parametersReady: function () {\n return eventFactory(Events.PARAMETERS_READY, arguments);\n },\n fill: function (parameters2) {\n return fill(parameters2);\n },\n setParameters: function (parameterValues) {\n initialParameterValues = null === parameterValues ? null : $.extend({}, parameterValues);\n }\n });\n return parametersArea;\n }\n var lastSelectedMenuItem;\n var lastSelectedSubmenuItem;\n function MainMenu(dom, rootOptions, otherOptions) {\n var options = $.extend({}, rootOptions, otherOptions);\n var menu = $(dom).data(\"kendoMenu\");\n var childrenL1 = dom.childNodes;\n var controller = options.controller;\n var enableAccessibility = options.enableAccessibility;\n if (!controller) {\n throw \"No controller (telerikReporting.ReportViewerController) has been specified.\";\n }\n if (!menu) {\n init();\n }\n controller.reportLoadComplete(function (e, args) {\n if (!enableAccessibility) {\n if (menu && menu._oldHoverItem) {\n menu._oldHoverItem.toggleClass(\"k-focus\");\n }\n }\n if (!args.renderingExtensions) {\n controller.getDocumentFormats().then(fillFormats);\n } else {\n fillFormats(args.renderingExtensions);\n }\n });\n function init() {\n try {\n menu = $(dom).kendoMenu().data(\"kendoMenu\");\n } catch (e) {\n console.error(\"Instantiation of Kendo Menu as Main Menu threw an exception\", e);\n throw e;\n }\n menu.bind(\"activate\", onSubmenuActivate);\n menu.bind(\"deactivate\", onSubmenuDeactivate);\n menu.element.off(\"keydown\", onMenuKeyDown);\n menu.element.on(\"keydown\", onMenuKeyDown);\n if (options.enableAccessibility) {\n setTabIndexes();\n }\n replaceStringResources();\n }\n function setTabIndexes() {\n var $menus = $('[data-role=\"telerik_ReportViewer_MainMenu\"]');\n Array.from($menus).forEach(menu2 => {\n var $menuArea = $(menu2);\n var listItems = $menuArea.find(\"li\");\n var menuTabIndex = 0;\n var tabIndexAttr = $menuArea.attr(\"tabIndex\");\n if (tabIndexAttr) {\n menuTabIndex = tryParseInt(tabIndexAttr);\n if (!menuTabIndex || isNaN(menuTabIndex)) {\n menuTabIndex = 0;\n }\n }\n setMenuItemsTabIndexes(listItems, menuTabIndex);\n var pager = listItems.find('input[data-role=\"telerik_ReportViewer_PageNumberInput\"]');\n if (pager.length > 0) {\n pager.attr(\"tabindex\", menuTabIndex);\n }\n });\n }\n function setMenuItemsTabIndexes(listItems, menuTabIndex) {\n Array.from(listItems).forEach(item => {\n var $item = $(item);\n $item.attr(\"tabindex\", menuTabIndex);\n $item.on(\"focus\", event => {\n $item.addClass(\"k-focus\");\n });\n $item.on(\"blur\", event => {\n $item.removeClass(\"k-focus\");\n });\n var anchor = $item.children(\"a\");\n if (anchor.length > 0) {\n var $anchor = $(anchor);\n $anchor.attr(\"tabindex\", -1);\n $item.attr(\"title\", $anchor.attr(\"title\"));\n }\n $item.off(\"keydown\");\n $item.on(\"keydown\", function (event) {\n if (event.which == kendo.keys.ENTER) {\n clickOnMenuItem($item);\n lastSelectedMenuItem = $item;\n }\n });\n });\n }\n function fillFormats(formats) {\n Array.from($(dom).find(\"ul[data-command-list=export-format-list]\")).forEach(list => {\n var $list = $(list);\n var $parent = $list.parents(\"li\");\n var tabIndex = enableAccessibility ? $parent.attr(\"tabindex\") : -1;\n if (!tabIndex) {\n tabIndex = 1;\n }\n $list.empty();\n Array.from(formats).forEach(format => {\n var ariaLabel = enableAccessibility ? stringFormat('aria-label=\"{localizedName}\" ', format) : \" \";\n var li = \"
        • {localizedName}
        • ', format);\n menu.append(li, $parent);\n });\n if (enableAccessibility) {\n setInternalListAccessibilityKeyEvents($parent.find(\"li\"));\n }\n });\n }\n function setInternalListAccessibilityKeyEvents(listItems) {\n Array.from(listItems).forEach(item => {\n var $item = $(item);\n $item.off(\"keydown\");\n $item.on(\"keydown\", event => {\n switch (event.which) {\n case kendo.keys.ENTER:\n clickOnMenuItem($item);\n break;\n case kendo.keys.UP:\n var $prev = $item.prev();\n if ($prev.length > 0) {\n $prev.trigger(\"focus\");\n } else {\n $item.parents(\"li\").trigger(\"focus\");\n }\n break;\n case kendo.keys.DOWN:\n var $next = $item.next();\n if ($next.length > 0) {\n $next.trigger(\"focus\");\n } else {\n $item.parent().children(\"li\").first().trigger(\"focus\");\n }\n break;\n }\n });\n });\n }\n function clickOnMenuItem(item) {\n if (isItemExportContainer(item)) {\n clickOnExportDropdown();\n } else if (item && item.length > 0) {\n var anchor = item.children(\"a\");\n if (anchor.length > 0) {\n anchor.click();\n }\n }\n }\n function clickOnExportDropdown() {\n var dropDownItemID = \"#trv-main-menu-export-command\";\n var mainMenu = $(\"[data-role='telerik_ReportViewer_MainMenu']\").data(\"kendoMenu\");\n mainMenu.open(dropDownItemID);\n }\n function onSubmenuActivate(e) {\n var $item = $(e.item);\n focusOnFirstSubmenuItem($item);\n }\n function onSubmenuDeactivate(e) {\n lastSelectedSubmenuItem = void 0;\n }\n function focusOnFirstSubmenuItem(parentItem) {\n if (lastSelectedMenuItem && lastSelectedMenuItem.is(parentItem)) {\n window.setTimeout(function () {\n var li = parentItem.find(\"li\");\n if (li.length > 0) {\n li[0].focus();\n }\n }, 100);\n }\n }\n function onMenuKeyDown(e) {\n switch (e.which) {\n case kendo.keys.ENTER:\n if (!enableAccessibility) {\n var $item = getFocusedItem();\n if ($item.length > 0) {\n if (isItemExportContainer($item) && lastSelectedSubmenuItem) {\n $item = lastSelectedSubmenuItem;\n }\n clickOnMenuItem($item);\n }\n }\n break;\n case kendo.keys.RIGHT:\n enableAccessibility ? focusNextItemAccessibilitySelection() : focusNextItemNativeMenuSelection();\n break;\n case kendo.keys.LEFT:\n enableAccessibility ? focusPreviousItemAccessibilitySelection() : focusPreviousItemNativeMenuSelection();\n break;\n case kendo.keys.DOWN:\n case kendo.keys.UP:\n if (!enableAccessibility) {\n lastSelectedSubmenuItem = getKendoFocusedNestedItem();\n }\n }\n }\n function getFocusedItem() {\n var $item;\n var focusedItem = document.activeElement;\n if (focusedItem && focusedItem.localName == \"li\") {\n var items = $(childrenL1).filter(\"li.k-item\");\n for (var i = 0; i < items.length; i++) {\n var listItem = items[i];\n if (focusedItem === listItem) {\n $item = $(listItem);\n break;\n }\n }\n } else if (focusedItem && focusedItem.localName == \"input\") {\n $item = $(focusedItem).closest(\"li.k-item\");\n } else {\n $item = menu.element.children(\"li.k-item.k-focus\");\n if ($item.length === 0) {\n $item = menu.element.children(\"li.k-item\").first();\n }\n }\n return $item;\n }\n function focusNextItemAccessibilitySelection() {\n var $item = getFocusedItem();\n if (!$item || !$item.length > 0) {\n return;\n }\n var $next = $item.next();\n if ($next.css(\"display\") == \"none\") {\n $next = $next.next();\n }\n if (!$next.length > 0) {\n $next = $(childrenL1).filter(\"li.k-item\").first();\n }\n $next.focus();\n }\n var lastKendoFocusedItem;\n function focusNextItemNativeMenuSelection() {\n var allItems = menu.element.children(\"li.k-item\");\n var $focused = allItems.filter(\".k-focus\");\n if (kendo.version >= \"2017.3.913\") {\n lastKendoFocusedItem = $focused;\n return;\n }\n if ($focused.hasClass(\"k-disabled\")) {\n if (!lastKendoFocusedItem || $focused.is(lastKendoFocusedItem)) {\n var $next = $focused.next();\n if (!$next.length > 0) {\n $next = allItems.first();\n }\n $focused.toggleClass(\"k-focus\");\n $next.toggleClass(\"k-focus\");\n lastKendoFocusedItem = $next;\n menu._oldHoverItem = $next;\n } else {\n lastKendoFocusedItem = $focused;\n }\n } else {\n menu._oldHoverItem = $focused;\n lastKendoFocusedItem = $focused;\n }\n }\n function focusPreviousItemAccessibilitySelection() {\n var $item = getFocusedItem();\n if (!$item || !$item.length > 0) {\n return;\n }\n var $prev = $item.prev();\n if ($prev.css(\"display\") == \"none\") {\n $prev = $prev.prev();\n }\n if (!$prev.length > 0) {\n $prev = $(childrenL1).filter(\"li.k-item\").last();\n }\n $prev.focus();\n }\n function focusPreviousItemNativeMenuSelection() {\n var $focused = menu.element.children(\"li.k-item.k-focus\");\n lastKendoFocusedItem = $focused;\n }\n function getKendoFocusedNestedItem() {\n var $focused = menu.element.find('li.k-item.k-focus [data-command=\"telerik_ReportViewer_export\"]');\n if ($focused.length === 1) {\n return $focused.parent(\"li\");\n }\n return void 0;\n }\n function isItemExportContainer(item) {\n if (item.length === 0) {\n return;\n }\n var id = item.attr(\"id\");\n return id == \"trv-main-menu-export-command\" || id == \"trv-side-menu-export-command\";\n }\n function replaceStringResources() {\n var menuAreas = findMenuArea();\n if (!menuAreas) {\n return;\n }\n Array.from(menuAreas).forEach(menu2 => {\n var $menu = $(menu2);\n var menuItems = $menu.children(\"li.k-item\");\n $menu.attr(\"aria-label\", stringResources[$menu.attr(\"aria-label\")]);\n Array.from(menuItems).forEach(menuItem => {\n var $menuItem = $(menuItem);\n $menuItem.attr(\"aria-label\", stringResources[$menuItem.attr(\"aria-label\")]);\n if (!$menuItem.hasClass(\"trv-report-pager\")) {\n var $a = $menuItem.find(\"a\");\n if ($a) {\n $a.attr(\"title\", stringResources[$a.attr(\"title\")]);\n }\n } else {\n $menuItem.attr(\"title\", stringResources[$menuItem.attr(\"title\")]);\n }\n });\n });\n }\n function findMenuArea() {\n return $(\"ul[data-role=telerik_ReportViewer_MainMenu]\");\n }\n }\n var defaultOptions$1 = {};\n function replaceStringResources$1($search) {\n if (!$search) {\n return;\n }\n var $searchCaption = $search.find(\".trv-search-dialog-caption-label\");\n var $searchOptions = $search.find(\".trv-search-dialog-search-options\");\n var $searchStopButton = $search.find(\"a[data-command='telerik_ReportViewer_searchDialog_StopSearch']\");\n var $searchMatchCaseButton = $search.find(\"a[data-command='telerik_ReportViewer_searchDialog_MatchCase']\");\n var $searchMatchWholeWordButton = $search.find(\"a[data-command='telerik_ReportViewer_searchDialog_MatchWholeWord']\");\n var $searchUseRegexButton = $search.find(\"a[data-command='telerik_ReportViewer_searchDialog_UseRegex']\");\n var $searchNavigateUpButton = $search.find(\"a[data-command='telerik_ReportViewer_searchDialog_NavigateUp']\");\n var $searchNavigateDownButton = $search.find(\"a[data-command='telerik_ReportViewer_searchDialog_NavigateDown']\");\n replaceAttribute$1($search, \"aria-label\");\n replaceAttribute$1($searchOptions, \"aria-label\");\n replaceText$1($searchCaption);\n replaceTitleAndAriaLabel($searchStopButton);\n replaceTitleAndAriaLabel($searchMatchCaseButton);\n replaceTitleAndAriaLabel($searchMatchWholeWordButton);\n replaceTitleAndAriaLabel($searchUseRegexButton);\n replaceTitleAndAriaLabel($searchNavigateUpButton);\n replaceTitleAndAriaLabel($searchNavigateDownButton);\n }\n function replaceTitleAndAriaLabel($a) {\n replaceAttribute$1($a, \"title\");\n replaceAttribute$1($a, \"aria-label\");\n }\n function replaceText$1($el) {\n if ($el) {\n $el.text(stringResources[$el.text()]);\n }\n }\n function replaceAttribute$1($el, attribute) {\n if ($el) {\n $el.attr(attribute, stringResources[$el.attr(attribute)]);\n }\n }\n class Search {\n constructor(element, options, viewerOptions) {\n this.options = $.extend({}, defaultOptions$1, options);\n this.viewerOptions = viewerOptions;\n this.element = element;\n this.controller = this.options.controller;\n this.initialized = false;\n this.dialogVisible = false;\n this.$element;\n this.$inputBox;\n this.$searchOptionsPlaceholder;\n this.searchOptionsMenu;\n this.$stopSearchPlaceholder;\n this.stopSearchMenu;\n this.$navigationPlaceholder;\n this.navigationMenu;\n this.$resultsLabel;\n this.$resultsPlaceholder;\n this.kendoComboBox;\n this.kendoSearchDialog;\n this.stopSearchCommand;\n this.optionsCommandSet;\n this.navigationCommandSet;\n this.searchResults;\n this.mruList = [];\n this.inputComboRebinding;\n this.searchMetadataRequested;\n this.searchMetadataLoaded;\n this.pendingHighlightItem;\n this.windowLocation;\n this.reportViewerWrapper = $(\"[data-selector='\" + this.viewerOptions.viewerSelector + \"']\").find(\".trv-report-viewer\");\n this.lastSearch = \"\";\n this.highlightManager = {\n // the results that are found, but not selected (highlighted)\n shadedClassName: \"trv-search-dialog-shaded-result\",\n // the result that is currently selected (highlighted)\n highlightedClassName: \"trv-search-dialog-highlighted-result\",\n current: null,\n elements: []\n };\n if (!this.controller) {\n throw \"No controller (telerikReporting.ReportViewerController) has been specified.\";\n }\n this.controller.pageReady(this.onPageReady.bind(this)).scrollPageReady(this.onPageReady.bind(this)).beginLoadReport(this.closeAndClear.bind(this)).viewModeChanged(this.closeAndClear.bind(this));\n this.controller.setSendEmailDialogVisible((event, args) => {\n if (args.visible && this.dialogVisible) {\n this.toggle(!this.dialogVisible);\n }\n }).getSearchDialogState((event, args) => {\n args.visible = this.dialogVisible;\n }).setSearchDialogVisible((event, args) => {\n this.toggleSearchDialog(args.visible);\n });\n $(window).on(\"resize\", () => {\n if (this.kendoSearchDialog && this.kendoSearchDialog.options.visible) {\n this.storeDialogPosition();\n this.adjustDialogPosition();\n }\n });\n }\n closeAndClear() {\n if (this.searchMetadataRequested) {\n return;\n }\n this.toggle(false);\n this.searchMetadataLoaded = false;\n }\n toggleSearchDialog(show) {\n this.dialogVisible = show;\n if (show) {\n var searchMetadataOnDemand = this.viewerOptions.searchMetadataOnDemand;\n if (searchMetadataOnDemand && !this.searchMetadataLoaded) {\n this.searchMetadataRequested = true;\n this.controller.reportLoadComplete((event, args) => {\n if (this.searchMetadataRequested) {\n this.toggle(true);\n this.searchMetadataRequested = false;\n }\n });\n this.controller.refreshReport(true);\n return;\n }\n }\n this.toggle(show);\n }\n toggle(show) {\n this.dialogVisible = show;\n if (show) {\n this.searchMetadataLoaded = true;\n this.ensureInitialized();\n this.kendoSearchDialog.open();\n this.kendoComboBox.value(\"\");\n this.updateResultsUI(null);\n this.toggleErrorLabel(false, null);\n } else {\n this.clearColoredItems();\n if (this.kendoSearchDialog && this.kendoSearchDialog.options.visible) {\n this.kendoSearchDialog.close();\n }\n }\n }\n ensureInitialized() {\n if (!this.initialized) {\n this.$element = $(this.element);\n this.$inputBox = this.$element.find(\".trv-search-dialog-input-box\");\n this.$resultsLabel = this.$element.find(\".trv-search-dialog-results-label\");\n this.$resultsPlaceholder = this.$element.find(\".trv-search-dialog-results-area\");\n this.initResultsArea();\n replaceStringResources$1(this.$element);\n try {\n this.$searchOptionsPlaceholder = this.$element.find(\".trv-search-dialog-search-options\").kendoMenu();\n this.$stopSearchPlaceholder = this.$element.find(\".trv-search-dialog-stopsearch-placeholder\").kendoMenu();\n this.$navigationPlaceholder = this.$element.find(\".trv-search-dialog-navigational-buttons\").kendoMenu();\n } catch (error) {\n console.error(\"Instantiation of Kendo Menu for Search Dialog threw an exception\", error);\n throw error;\n }\n this.searchOptionsMenu = this.$searchOptionsPlaceholder.data(\"kendoMenu\");\n this.stopSearchMenu = this.$stopSearchPlaceholder.data(\"kendoMenu\");\n this.navigationMenu = this.$navigationPlaceholder.data(\"kendoMenu\");\n this.searchOptionsMenu.element.on(\"keydown\", this.onKeyDown);\n this.stopSearchMenu.element.on(\"keydown\", this.onKeyDown);\n this.navigationMenu.element.on(\"keydown\", this.onKeyDown);\n this.overrideDefaultMenuStyling(\".trv-search-dialog-search-options\");\n try {\n this.kendoComboBox = this.$inputBox.kendoComboBox({\n dataTextField: \"value\",\n dataValueField: \"value\",\n dataSource: this.mruList,\n contentElement: \"\",\n change: this.kendoComboBoxSelect.bind(this),\n ignoreCase: false,\n // the actual search-when-typing performs on this event.\n filtering: this.onInputFiltering.bind(this),\n filter: \"startswith\",\n delay: 1e3,\n open: event => {\n if (this.inputComboRebinding) {\n event.preventDefault();\n }\n },\n select: this.processComboBoxEvent.bind(this)\n }).data(\"kendoComboBox\");\n } catch (error) {\n console.error(\"Instantiation of Kendo ComboBox as search input threw an exception\", error);\n throw error;\n }\n try {\n this.kendoSearchDialog = this.reportViewerWrapper.find(\".trv-search-window\").kendoWindow({\n title: stringResources.searchDialogTitle,\n height: 390,\n width: 310,\n minWidth: 310,\n minHeight: 390,\n maxHeight: 700,\n scrollable: false,\n close: () => {\n this.storeDialogPosition();\n this.lastSearch = \"\";\n },\n open: () => {\n this.adjustDialogPosition();\n },\n deactivate: () => {\n this.controller.setSearchDialogVisible({\n visible: false\n });\n },\n activate: () => {\n this.kendoComboBox.input.focus();\n }\n }).data(\"kendoWindow\");\n } catch (error) {\n console.error(\"Instantiation of Kendo Window for Search dialog threw an exception\", error);\n throw error;\n }\n this.kendoSearchDialog.wrapper.addClass(\"trv-search\");\n this.initCommands();\n this.initialized = true;\n }\n }\n overrideDefaultMenuStyling(kendoMenuSelector) {\n var menuItems = $(kendoMenuSelector).find(\".k-menu-item\");\n for (var i = 0; i < menuItems.length; i++) {\n $(menuItems[i]).removeClass(\"k-item\");\n }\n }\n onKeyDown(event) {\n var item = $(event.target).find(\".k-focus\");\n if (event.keyCode === 13 && item && item.length > 0) {\n var anchor = item.children(\"a\");\n if (anchor.length > 0) {\n anchor.click();\n }\n }\n }\n storeDialogPosition() {\n var kendoWindow = this.kendoSearchDialog.element.parent(\".k-window\");\n this.windowLocation = kendoWindow.offset();\n }\n adjustDialogPosition() {\n var windowWidth = $(window).innerWidth();\n var windowHeight = $(window).innerHeight();\n var kendoWindow = this.kendoSearchDialog.wrapper;\n var width = kendoWindow.outerWidth(true);\n var height = kendoWindow.outerHeight(true);\n var padding = 10;\n if (!this.windowLocation) {\n var reportViewerCoords = this.reportViewerWrapper[0].getBoundingClientRect();\n kendoWindow.css({\n top: reportViewerCoords.top + padding,\n left: reportViewerCoords.right - width - padding\n });\n this.kendoSearchDialog.setOptions({\n position: {\n top: reportViewerCoords.top + padding,\n left: reportViewerCoords.right - width - padding\n }\n });\n } else {\n var left = this.windowLocation.left;\n var top = this.windowLocation.top;\n var right = left + width;\n var bottom = top + height;\n if (right > windowWidth - padding) {\n left = Math.max(padding, windowWidth - width - padding);\n kendoWindow.css({\n left\n });\n this.kendoSearchDialog.setOptions({\n position: {\n left\n }\n });\n }\n if (bottom > windowHeight - padding) {\n top = Math.max(padding, windowHeight - height - padding);\n kendoWindow.css({\n top\n });\n this.kendoSearchDialog.setOptions({\n position: {\n top\n }\n });\n }\n }\n }\n processComboBoxEvent(event) {\n if (!(window.event || window.event.type)) {\n return;\n }\n var evt = window.event;\n if (evt.type === \"keydown\") {\n event.preventDefault();\n if (evt.keyCode === 40) {\n this.moveListSelection(1);\n }\n if (evt.keyCode === 38) {\n this.moveListSelection(-1);\n }\n }\n }\n initCommands() {\n this.optionsCommandSet = {\n \"searchDialog_MatchCase\": new Command(),\n \"searchDialog_MatchWholeWord\": new Command(),\n \"searchDialog_UseRegex\": new Command()\n };\n Object.entries(this.optionsCommandSet).forEach(([commandName, command]) => {\n command.exec = () => {\n this.toggleCommand(command);\n };\n });\n Binder.attachCommands(this.$searchOptionsPlaceholder, this.optionsCommandSet, this.viewerOptions);\n this.stopSearchCommand = new Command(() => {\n this.stopSearch();\n });\n Binder.attachCommands(this.$stopSearchPlaceholder, {\n \"searchDialog_StopSearch\": this.stopSearchCommand\n }, this.viewerOptions);\n this.navigationCommandSet = {\n \"searchDialog_NavigateUp\": new Command(() => {\n this.moveListSelection(-1);\n }),\n \"searchDialog_NavigateDown\": new Command(() => {\n this.moveListSelection(1);\n })\n };\n Binder.attachCommands(this.$navigationPlaceholder, this.navigationCommandSet, this.viewerOptions);\n }\n initResultsArea() {\n try {\n this.$resultsPlaceholder.kendoListView({\n selectable: true,\n navigatable: true,\n dataSource: {},\n contentElement: \"\",\n template: \"
          #: description # \" + stringResources.searchDialogPageText + \" #:page#
          \",\n change: event => {\n var listView = event.sender;\n var index = listView.select().index();\n var view = listView.dataSource.view();\n var dataItem = view[index];\n this.onSelectedItem(dataItem);\n this.updateUI(index, view.length);\n }\n });\n } catch (error) {\n console.error(\"Instantiation of Kendo ListView as search result area threw an exception\", error);\n throw error;\n }\n }\n stopSearch() {\n this.setStopButtonEnabledState(false);\n }\n toggleCommand(cmd) {\n cmd.checked(!cmd.checked());\n this.searchForCurrentToken();\n }\n setStopButtonEnabledState(enabledState) {\n this.stopSearchCommand.enabled(enabledState);\n }\n onPageReady(args, page) {\n if (this.dialogVisible) {\n this.colorPageElements(this.searchResults);\n }\n }\n onInputFiltering(event) {\n event.preventDefault();\n if (event.filter && event.filter.value !== this.lastSearch) {\n this.lastSearch = event.filter.value;\n this.searchForToken(this.lastSearch);\n }\n }\n kendoComboBoxSelect(event) {\n var newValue = event.sender.value();\n if (newValue && this.lastSearch !== newValue) {\n this.lastSearch = newValue;\n this.searchForToken(this.lastSearch);\n }\n }\n searchForCurrentToken() {\n if (this.kendoComboBox) {\n this.searchForToken(this.kendoComboBox.value());\n }\n }\n searchForToken(token) {\n this.onSearchStarted();\n this.addToMRU(token);\n this.controller.getSearchResults({\n searchToken: token,\n matchCase: this.optionsCommandSet.searchDialog_MatchCase.checked(),\n matchWholeWord: this.optionsCommandSet.searchDialog_MatchWholeWord.checked(),\n useRegex: this.optionsCommandSet.searchDialog_UseRegex.checked()\n }).then(results => {\n this.updateResultsUI(results, null);\n }).catch(errorMessage => {\n if (errorMessage) {\n this.updateResultsUI(null, errorMessage);\n }\n });\n }\n onSearchStarted() {\n this.$resultsLabel.text(stringResources.searchDialogSearchInProgress);\n this.clearColoredItems();\n this.searchResults = null;\n this.setStopButtonEnabledState(true);\n this.toggleErrorLabel(false, null);\n }\n updateResultsUI(results, error) {\n this.setStopButtonEnabledState(false);\n if (error) {\n this.toggleErrorLabel(true, error);\n }\n this.displayResultsList(results);\n this.searchResults = results;\n if (results && results.length > 0) {\n this.colorPageElements(results);\n this.selectFirstElement();\n } else {\n this.updateUI(-1, 0);\n }\n }\n addToMRU(token) {\n if (!token || token === \"\") {\n return;\n }\n var exists = this.mruList.filter(mru => {\n return mru.value === token;\n });\n if (exists && exists.length > 0) {\n return;\n }\n this.mruList.unshift({\n value: token\n });\n if (this.mruList.length > 10) {\n this.mruList.pop();\n }\n this.inputComboRebinding = true;\n this.kendoComboBox.dataSource.data(this.mruList);\n this.kendoComboBox.select(item => {\n return item.value === token;\n });\n this.inputComboRebinding = false;\n }\n displayResultsList(results) {\n var $listView = this.$resultsPlaceholder.data(\"kendoListView\");\n if (!results) {\n results = [];\n }\n $listView.dataSource.data(results);\n }\n colorPageElements(results) {\n if (!results || results.length === 0) {\n return;\n }\n var $parent = this.$element.parent();\n var $pageContainer = $parent.find(\".trv-page-container\");\n var elements = $pageContainer.find(\"[data-search-id]\");\n Array.from(results).forEach(result => {\n var $searchElement = elements.filter(\"[data-search-id=\" + result.id + \"]\");\n if ($searchElement) {\n $searchElement.addClass(this.highlightManager.shadedClassName);\n this.highlightManager.elements.push($searchElement);\n }\n });\n this.highlightItem(this.pendingHighlightItem);\n this.pendingHighlightItem = null;\n }\n highlightItem(item) {\n if (item) {\n var currentItemId = item.id;\n var newHighlighted = $(this.highlightManager.elements.filter(i => {\n return i.attr(\"data-search-id\") === currentItemId;\n })).first();\n if (newHighlighted) {\n this.highlightManager.current = newHighlighted[0];\n if (this.highlightManager.current) {\n var current = $(\"[data-search-id='\" + currentItemId + \"']\");\n current.removeClass(this.highlightManager.shadedClassName);\n current.addClass(this.highlightManager.highlightedClassName);\n }\n }\n }\n }\n selectFirstElement() {\n var $listView = this.$resultsPlaceholder.data(\"kendoListView\");\n var first = $listView.element.children().first();\n $listView.select(first);\n $listView.trigger(\"change\");\n }\n onSelectedItem(item) {\n if (!item) {\n return;\n }\n if (this.highlightManager.current) {\n this.highlightManager.current.removeClass(this.highlightManager.highlightedClassName);\n this.highlightManager.current.addClass(this.highlightManager.shadedClassName);\n }\n if (item.page === this.controller.getCurrentPageNumber()) {\n this.highlightItem(item);\n } else {\n if (this.controller.getPageMode() !== PageModes.CONTINUOUS_SCROLL) {\n this.clearColoredItems();\n } else {\n this.highlightItem(item);\n }\n }\n this.pendingHighlightItem = item;\n this.controller.navigateToPage(item.page, {\n type: \"search\",\n id: item.id\n });\n }\n updateUI(index, count) {\n var str = count === 0 ? stringResources.searchDialogNoResultsLabel : stringFormat(stringResources.searchDialogResultsFormatLabel, [index + 1, count]);\n this.$resultsLabel.text(str);\n var allowMoveUp = index > 0;\n var allowMoveDown = index < count - 1;\n this.navigationCommandSet.searchDialog_NavigateUp.enabled(allowMoveUp);\n this.navigationCommandSet.searchDialog_NavigateDown.enabled(allowMoveDown);\n }\n clearColoredItems() {\n if (this.highlightManager.elements && this.highlightManager.elements.length > 0) {\n Array.from(this.highlightManager.elements).forEach($element => {\n $element.removeClass(this.highlightManager.shadedClassName);\n });\n }\n if (this.highlightManager.current) {\n this.highlightManager.current.removeClass(this.highlightManager.highlightedClassName);\n }\n this.highlightManager.elements = [];\n this.highlightManager.current = null;\n }\n moveListSelection(offset) {\n var $listView = this.$resultsPlaceholder.data(\"kendoListView\");\n var $selected = $listView.select();\n if (!$selected) {\n $selected = $listView.element.children().first();\n $listView.select($selected);\n $listView.trigger(\"change\");\n } else {\n var index = $listView.select().trigger(\"change\").index();\n var view = $listView.dataSource.view();\n var newIndex = Math.min(view.length - 1, Math.max(0, index + offset));\n if (newIndex !== index) {\n var dataItem = view[newIndex];\n var element = $listView.element.find('[data-uid=\"' + dataItem.uid + '\"]');\n if (element) {\n $listView.select(element);\n $listView.trigger(\"change\");\n this.scrollIfNeeded(element[0], $listView.element[0]);\n }\n }\n }\n }\n scrollIfNeeded(element, container) {\n if (element.offsetTop - element.clientHeight < container.scrollTop) {\n element.scrollIntoView();\n } else {\n var offsetBottom = element.offsetTop + element.offsetHeight;\n var scrollBottom = container.scrollTop + container.offsetHeight;\n if (offsetBottom > scrollBottom) {\n container.scrollTop = offsetBottom - container.offsetHeight;\n }\n }\n }\n toggleErrorLabel(show, message) {\n var $errorIcon = this.$searchOptionsPlaceholder.find(\"i[data-role='telerik_ReportViewer_SearchDialog_Error']\");\n if (!$errorIcon || $errorIcon.length === 0) {\n console.log(message);\n return;\n }\n var menuItem = this.$searchOptionsPlaceholder.data(\"kendoMenu\").element.find(\"li\").last();\n if (show) {\n $errorIcon[0].title = message;\n menuItem.show();\n } else {\n menuItem.hide();\n }\n }\n }\n var defaultOptions = {};\n function replaceStringResources($sendEmailDialog) {\n if (!$sendEmailDialog) {\n return;\n }\n var labels = $sendEmailDialog.find(\".trv-replace-string\");\n var ariaLabel = $sendEmailDialog.find(\"[aria-label]\");\n var titles = $sendEmailDialog.find(\"[title]\");\n if (labels.length) {\n Array.from(labels).forEach(element => {\n replaceText($(element));\n });\n }\n if (ariaLabel.length) {\n Array.from(ariaLabel).forEach(element => {\n replaceAttribute($(element), \"aria-label\");\n });\n }\n if (titles.length) {\n Array.from(titles).forEach(element => {\n replaceAttribute($(element), \"title\");\n });\n }\n }\n function replaceText($el) {\n if ($el) {\n $el.text(stringResources[$el.text()]);\n }\n }\n function replaceAttribute($el, attribute) {\n if ($el) {\n $el.attr(attribute, stringResources[$el.attr(attribute)]);\n }\n }\n function SendEmail(placeholder, options, viewerOptions) {\n options = $.extend({}, defaultOptions, options);\n var controller = options.controller;\n var initialized = false;\n var dialogVisible = false;\n var $placeholder;\n var kendoSendEmailDialog;\n var selector = viewerOptions.viewerSelector;\n var inputFrom;\n var inputTo;\n var inputCC;\n var inputSubject;\n var docFormat;\n var docFormatEl;\n var bodyEditorEl;\n var bodyEditor;\n var docFormatList;\n var optionsCommandSet;\n var windowLocation;\n var reportViewerWrapper = $(\"[data-selector='\" + selector + \"']\").find(\".trv-report-viewer\");\n if (!controller) {\n throw \"No controller (telerikReporting.ReportViewerController) has been specified.\";\n }\n if (!viewerOptions.sendEmail || !viewerOptions.sendEmail.enabled) {\n var toolbarSendEmailItem = $(\"[data-selector='\" + selector + \"']\").find(\"a[data-command='telerik_ReportViewer_toggleSendEmailDialog']\").closest(\".k-item \");\n toolbarSendEmailItem.hide();\n return;\n }\n controller.beginLoadReport(closeAndClear).viewModeChanged(closeAndClear);\n controller.getSendEmailDialogState(function (event, args) {\n args.visible = dialogVisible;\n }).setSendEmailDialogVisible(function (event, args) {\n toggle(args.visible);\n }).setSearchDialogVisible(function (event, args) {\n if (args.visible && dialogVisible) {\n toggle(!dialogVisible);\n }\n });\n controller.getDocumentFormats().then(function (formats) {\n docFormatList = formats;\n });\n function closeAndClear() {\n toggle(false);\n }\n function toggle(show) {\n dialogVisible = show;\n if (show) {\n ensureInitialized();\n setDefaultValues(viewerOptions.sendEmail);\n kendoSendEmailDialog.open();\n } else {\n if (kendoSendEmailDialog && kendoSendEmailDialog.options.visible) {\n kendoSendEmailDialog.close();\n }\n }\n }\n function getBody() {\n return bodyEditor ? bodyEditor.value() : \"\";\n }\n function ensureInitialized() {\n if (!initialized) {\n $placeholder = $(placeholder);\n inputFrom = $placeholder.find(\"[name='from']\");\n inputTo = $placeholder.find(\"[name='to']\");\n inputCC = $placeholder.find(\"[name='cc']\");\n inputSubject = $placeholder.find(\"[name='subject']\");\n docFormatEl = $placeholder.find(\"[name='format']\");\n bodyEditorEl = $placeholder.find(\"textarea\");\n setAttrs();\n initCommands();\n replaceStringResources($placeholder);\n try {\n kendoSendEmailDialog = reportViewerWrapper.find(\".trv-send-email-window\").kendoWindow({\n title: stringResources.sendEmailDialogTitle,\n minWidth: 350,\n minHeight: 350,\n maxHeight: 900,\n modal: true,\n close: function () {\n storeDialogPosition();\n clearValidation();\n },\n open: function () {\n adjustDialogSize();\n adjustDialogPosition();\n },\n deactivate: function () {\n controller.setSendEmailDialogVisible({\n visible: false\n });\n },\n activate: function () {\n kendoSendEmailDialog.wrapper.find(\".trv-send-email-fields input[type='email']:visible\").first().focus();\n setTimeout(function () {\n setValidation();\n }, 250);\n }\n }).data(\"kendoWindow\");\n } catch (error) {\n console.error(\"Instantiation of Kendo Window for Send Email dialog threw an exception\", error);\n throw error;\n }\n kendoSendEmailDialog.wrapper.addClass(\"trv-send-email\");\n try {\n docFormat = docFormatEl.kendoComboBox({\n dataTextField: \"localizedName\",\n dataValueField: \"name\",\n dataSource: docFormatList || [],\n filter: \"startswith\",\n dataBound: function () {\n this.select(0);\n this.trigger(\"change\");\n }\n }).data(\"kendoComboBox\");\n } catch (error) {\n console.error(\"Instantiation of Kendo ComboBox as document format selector threw an exception\", error);\n throw error;\n }\n $placeholder.on(\"keydown\", '[name=\"format_input\"]', function (event) {\n var tabkey = 9;\n if (event.keyCode === tabkey && bodyEditor) {\n setTimeout(function () {\n bodyEditor.focus();\n });\n }\n });\n try {\n bodyEditor = bodyEditorEl.kendoEditor({\n tools: [\"bold\", \"italic\", \"underline\", \"strikethrough\", \"justifyLeft\", \"justifyCenter\", \"justifyRight\", \"justifyFull\", \"insertUnorderedList\", \"insertOrderedList\", \"indent\", \"outdent\", \"createLink\", \"unlink\", \"cleanFormatting\", \"formatting\", \"fontName\", \"fontSize\", \"foreColor\", \"backColor\", \"subscript\", \"superscript\"]\n }).data(\"kendoEditor\");\n } catch (error) {\n console.error(\"Instantiation of Kendo Editor for Email body editor threw an exception\", error);\n throw error;\n }\n setDefaultValues(viewerOptions.sendEmail);\n initialized = true;\n }\n }\n $(window).resize(function () {\n if (kendoSendEmailDialog && kendoSendEmailDialog.options.visible) {\n storeDialogPosition();\n adjustDialogSize();\n adjustDialogPosition();\n }\n });\n function setAttrs() {\n $placeholder.find(\".trv-send-email-field input\").each(function () {\n var el = $(this);\n var attrName = el.attr(\"name\");\n el.attr(\"id\", selector + \"-\" + attrName);\n });\n $placeholder.find(\".trv-send-email-label label\").each(function () {\n var el = $(this);\n var attrName = el.attr(\"for\");\n el.attr(\"for\", selector + \"-\" + attrName);\n });\n }\n function storeDialogPosition() {\n var kendoWindow = kendoSendEmailDialog.element.parent(\".k-window\");\n windowLocation = kendoWindow.offset();\n }\n function adjustDialogSize() {\n var kendoWindow = kendoSendEmailDialog.element.parent(\".k-window\");\n var windowWidth = $(window).width();\n var kendoWindowWidth = 350;\n if (windowWidth > 800) {\n kendoWindowWidth = 720;\n }\n kendoWindow.css({\n width: kendoWindowWidth\n });\n kendoSendEmailDialog.refresh({\n width: kendoWindowWidth\n });\n }\n function adjustDialogPosition() {\n if (!windowLocation) {\n kendoSendEmailDialog.center();\n } else {\n var padding = 10;\n var windowWidth = $(window).innerWidth();\n var windowHeight = $(window).innerHeight();\n var kendoWindow = kendoSendEmailDialog.wrapper;\n var width = kendoWindow.outerWidth(true);\n var height = kendoWindow.outerHeight(true);\n var left = windowLocation.left;\n var top = windowLocation.top;\n var right = left + width;\n var bottom = top + height;\n if (right > windowWidth - padding) {\n left = Math.max(padding, windowWidth - width - padding);\n kendoWindow.css({\n left\n });\n kendoSendEmailDialog.setOptions({\n position: {\n left\n }\n });\n }\n if (bottom > windowHeight - padding) {\n top = Math.max(padding, windowHeight - height - padding);\n kendoWindow.css({\n top\n });\n kendoSendEmailDialog.setOptions({\n position: {\n top\n }\n });\n }\n }\n }\n function initCommands() {\n optionsCommandSet = {\n \"sendEmail_Cancel\": new Command(function () {\n closeWindow();\n }),\n \"sendEmail_Send\": new Command(function () {\n sendingEmail();\n })\n };\n Binder.attachCommands($placeholder.find(\".trv-send-email-actions\"), optionsCommandSet, viewerOptions);\n }\n function sendingEmail(cmd, args) {\n var sendEmailArgs = {\n from: inputFrom.val(),\n to: inputTo.val(),\n cc: inputCC.val(),\n subject: inputSubject.val(),\n format: docFormat.value(),\n body: getBody(),\n deviceInfo: {}\n };\n if (validateFields()) {\n controller.sendReport(sendEmailArgs);\n closeWindow();\n }\n }\n function setValidation() {\n inputFrom.off(\"blur\").on(\"blur\", function (event) {\n if (!isEmpty($(this))) {\n isValidEmail($(this), false);\n }\n });\n inputTo.off(\"blur\").on(\"blur\", function (event) {\n if (!isEmpty($(this))) {\n isValidEmail($(this), true);\n }\n });\n inputCC.off(\"blur\").on(\"blur\", function (event) {\n if ($(this).val().length) {\n isValidEmail($(this), true);\n } else {\n hideError($(this));\n }\n });\n }\n function validateFields() {\n var fromIsValid = isEmpty(inputFrom) || !isValidEmail(inputFrom, false);\n var toIsValid = isEmpty(inputTo) || !isValidEmail(inputTo, true);\n var ccIsValid = inputCC.val().length && !isValidEmail(inputCC, true);\n var hasFormat = docFormat.value().length;\n if (!hasFormat) {\n showError(docFormatEl, \"data-required-msg\");\n }\n if (fromIsValid || toIsValid || ccIsValid || !hasFormat) {\n return false;\n }\n return true;\n }\n function setDefaultValues(sendEmail) {\n inputFrom.val(sendEmail && sendEmail.from || \"\");\n inputTo.val(sendEmail && sendEmail.to || \"\");\n inputCC.val(sendEmail && sendEmail.cc || \"\");\n inputSubject.val(sendEmail && sendEmail.subject || \"\");\n if (sendEmail && sendEmail.format) {\n docFormat.value(sendEmail.format);\n } else {\n docFormat.select(0);\n }\n docFormat.trigger(\"change\");\n bodyEditor.value(sendEmail && sendEmail.body || \"\");\n }\n function isEmpty($el) {\n if (!$el.val().length) {\n showError($el, \"data-required-msg\");\n return true;\n }\n hideError($el);\n return false;\n }\n function showError($el, tag) {\n var validationMsg = stringResources[$el.attr(tag)];\n $('[data-for=\"' + $el.attr(\"name\") + '\"]').addClass(\"-visible\").text(validationMsg);\n }\n function hideError($el) {\n $('[data-for=\"' + $el.attr(\"name\") + '\"]').removeClass(\"-visible\");\n }\n function isValidEmail($el, moreThenOneEmail) {\n var inputValue = $el.val();\n if (moreThenOneEmail) {\n var listEmailsAddress = inputValue.split(/[\\s,;]+/);\n for (var i = 0; i < listEmailsAddress.length; i++) {\n if (!_validateEmail(listEmailsAddress[i].trim(), $el)) {\n return false;\n }\n }\n return true;\n }\n return _validateEmail(inputValue, $el);\n }\n function _validateEmail(email, $el) {\n var regexEmail = /\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*/;\n if (email.indexOf(\",\") > -1 || email.indexOf(\";\") > -1) {\n showError($el, \"data-single-email-msg\");\n return false;\n }\n if (!regexEmail.test(email)) {\n showError($el, \"data-email-msg\");\n return false;\n }\n return true;\n }\n function closeWindow() {\n kendoSendEmailDialog.close();\n }\n function clearValidation() {\n $(\".k-invalid-msg\").removeClass(\"-visible\");\n }\n }\n function SideMenu(dom, rootOptions, otherOptions) {\n var options = $.extend({}, rootOptions, otherOptions);\n var menu = $(dom).data(\"kendoMenu\");\n var enableAccessibility = options.enableAccessibility;\n var DEFAULT_TABINDEX = 3;\n var panelBar;\n var sideMenuVisible = false;\n var controller = options.controller;\n if (!controller) {\n throw \"No controller (telerikReporting.ReportViewerController) has been specified.\";\n }\n if (!menu) {\n init(dom);\n }\n function init(root) {\n var $root = $(root);\n try {\n panelBar = $root.children(\"ul\").kendoPanelBar().data(\"kendoPanelBar\");\n } catch (e) {\n console.error(\"Instantiation of Kendo PanelBar as side menu threw an exception\", e);\n throw e;\n }\n panelBar.bind(\"expand\", onSubmenuOpen);\n panelBar.element.off(\"keydown\", onPanelKeyDown);\n panelBar.element.on(\"keydown\", onPanelKeyDown);\n setTabIndexes($root);\n enableCloseOnClick($root);\n $root.click(function (e) {\n if (e.target == root) {\n controller.setSideMenuVisible({\n visible: !sideMenuVisible\n });\n }\n });\n replaceStringResources();\n }\n controller.setSideMenuVisible(function (event, args) {\n setSideMenuVisibility();\n if (enableAccessibility) {\n panelBar.element.focus();\n }\n sideMenuVisible = args.visible;\n if (!sideMenuVisible) {\n panelBar.collapse($(\"#trv-side-menu-export-command\"));\n }\n }).getSideMenuVisible(function (event, args) {\n args.visible = sideMenuVisible;\n });\n function setSideMenuVisibility() {\n var $root = panelBar.element.parent();\n var hidden = $root.position().left < 0 || !$root.is(\":visible\");\n if (hidden) {\n $root.show();\n } else {\n window.setTimeout(function () {\n $root.hide();\n }, 500);\n }\n }\n function onSubmenuOpen(e) {\n var $item = $(e.item);\n panelBar.unbind(\"expand\", onSubmenuOpen);\n panelBar.append({\n text: stringResources.loadingFormats,\n spriteCssClass: \"k-icon k-loading\"\n }, $item);\n options.controller.getDocumentFormats().then(fillFormats).then(function () {\n panelBar.expand($item);\n }).then(function () {\n panelBar.bind(\"expand\", onSubmenuOpen);\n });\n }\n function fillFormats(formats) {\n Array.from($(dom).find(\"ul[data-command-list=export-format-list]\")).forEach(list => {\n var $list = $(list);\n var $parent = $list.parents(\"li\");\n var tabIndex = $parent.attr(\"tabindex\");\n if (!tabIndex) {\n tabIndex = DEFAULT_TABINDEX;\n }\n $list.empty();\n Array.from(formats).forEach(format => {\n var ariaLabel = enableAccessibility ? stringFormat('aria-label=\"{localizedName}\" ', format) : \" \";\n var li = \"
        • {localizedName}
        • ', format);\n panelBar.append(li, $parent);\n });\n setListItemsTabIndex($parent.find(\"li\"), tabIndex);\n enableCloseOnClick($parent);\n });\n }\n function enableCloseOnClick(root) {\n Array.from(root.find(\"li\")).forEach(listItem => {\n var isLeaf = $(listItem).children(\"ul\").length === 0;\n if (isLeaf) {\n $(listItem).children(\"a\").on(\"click\", event => {\n controller.setSideMenuVisible({\n visible: !sideMenuVisible\n });\n });\n }\n });\n }\n function setTabIndexes(root) {\n if (!root) {\n return;\n }\n var $list = root.children(\"ul\");\n var parentTabIndex = root.attr(\"tabindex\");\n var listIndex = parentTabIndex ? parentTabIndex : DEFAULT_TABINDEX;\n setListItemsTabIndex($list, listIndex);\n }\n function setListItemsTabIndex(list, tabIndex) {\n list.attr(\"tabindex\", tabIndex);\n var items = list.find(\"li\");\n Array.from(items).forEach(item => {\n var $item = $(item);\n $item.attr(\"tabindex\", tabIndex);\n var anchor = $item.children(\"a\");\n if (anchor.length > 0) {\n var $anchor = $(anchor);\n $anchor.attr(\"tabindex\", -1);\n }\n $item.on(\"focus\", event => {\n var anchor2 = $item.children(\"a\");\n if (anchor2.length > 0) {\n anchor2.addClass(\"k-focus\");\n }\n });\n $item.on(\"blur\", event => {\n var anchor2 = $item.children(\"a\");\n if (anchor2.length > 0) {\n anchor2.removeClass(\"k-focus\");\n }\n });\n $item.off(\"keydown\", onItemKeyDown);\n $item.on(\"keydown\", onItemKeyDown);\n });\n }\n function onPanelKeyDown(e) {\n if (e.which == kendo.keys.ENTER) {\n var $item;\n var isSelectedFocusedItem = false;\n var focusedItem = document.activeElement;\n if (focusedItem && focusedItem.localName == \"li\") {\n var items = panelBar.element.find(\"li.k-item\");\n for (var i = 0; i < items.length; i++) {\n var listItem = items[i];\n if (focusedItem === listItem) {\n $item = $(listItem);\n isSelectedFocusedItem = true;\n break;\n }\n }\n } else {\n $item = panelBar.select();\n }\n if (!$item || !$item.length > 0) {\n return;\n }\n handleItemSelect($item, isSelectedFocusedItem);\n }\n }\n function onItemKeyDown(e) {\n if (e.which == kendo.keys.ENTER) {\n handleItemSelect($(e.target), false);\n }\n }\n function handleItemSelect(item, handleExpandCollapse) {\n if (!item.length > 0) {\n return;\n }\n var isLeaf = item.children(\"ul\").length === 0;\n if (!isLeaf) {\n if (handleExpandCollapse) {\n if (item.hasClass(\"k-active\")) {\n panelBar.collapse(item);\n } else {\n panelBar.expand(item);\n }\n }\n } else {\n var $anchor = item.find(\"a\");\n if ($anchor.length > 0) {\n $anchor[0].click();\n }\n }\n }\n function replaceStringResources() {\n var menuAreas = findMenuArea();\n if (!menuAreas) {\n return;\n }\n Array.from(menuAreas).forEach(menu2 => {\n var $menu = $(menu2);\n var menuItems = $menu.children(\"li.k-panelbar-header\");\n $menu.attr(\"aria-label\", stringResources[$menu.attr(\"aria-label\")]);\n Array.from(menuItems).forEach(menuItem => {\n var $menuItem = $(menuItem);\n var $a = $menuItem.find(\"a\");\n $menuItem.attr(\"aria-label\", stringResources[$menuItem.attr(\"aria-label\")]);\n if ($a) {\n var $span = $a.find(\"span:not(.k-icon)\");\n $a.attr(\"title\", stringResources[$a.attr(\"title\")]);\n if ($span) {\n $span.text(stringResources[$span.text()]);\n }\n }\n });\n });\n }\n function findMenuArea() {\n return $(\"div[data-role=telerik_ReportViewer_SideMenu] > ul\");\n }\n }\n var __defProp$4 = Object.defineProperty;\n var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\n var __publicField$4 = (obj, key, value) => {\n __defNormalProp$4(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n };\n class MemStorage {\n // #endregion\n // #region constructor\n constructor() {\n // #region fields\n __publicField$4(this, \"_data\", {});\n this._data = {};\n }\n // #endregion\n // #region properties\n get length() {\n return Object.keys(this._data).length;\n }\n // #endregion\n // #region methods\n getItem(key) {\n return this._data[key] || null;\n }\n setItem(key, value) {\n this._data[key] = value;\n }\n removeItem(key) {\n delete this._data[key];\n }\n key(index) {\n return Object.keys(this._data)[index] || null;\n }\n clear() {\n this._data = {};\n }\n // #endregion\n }\n const TemplateCache = function () {\n var cache = {};\n return {\n load: function (url, serviceUrl, client) {\n var p = cache[url];\n if (!p) {\n cache[url] = p = client.get(url).then(function (html) {\n var templates = {};\n var styleSheets = [];\n var baseUri = rTrim(serviceUrl, \"\\\\/\") + \"/\";\n html = replaceAll(html, \"{service}/\", baseUri);\n html = replaceAll(html, \"{service}\", baseUri);\n var viewerTemplate = $(\"
          \").html(html);\n Array.from(viewerTemplate.find(\"template\")).forEach(element => {\n var $element = $(element);\n templates[$element.attr(\"id\")] = trim($element.html(), \"\\n \t\");\n });\n Array.from(viewerTemplate.find(\"link\")).forEach(element => {\n styleSheets.push(trim(element.outerHTML, \"\\n \t\"));\n });\n styleSheets = filterUniqueLastOccurrence(styleSheets);\n return {\n templates,\n styleSheets\n };\n });\n }\n return p;\n }\n };\n }();\n var __defProp$3 = Object.defineProperty;\n var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\n var __publicField$3 = (obj, key, value) => {\n __defNormalProp$3(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n };\n class ReportViewerSettings {\n // #endregion\n // #region constructor\n constructor(id, storage, defaultSettings) {\n // #region fields\n __publicField$3(this, \"_id\");\n __publicField$3(this, \"_storage\");\n __publicField$3(this, \"_defaults\");\n this._id = id;\n this._storage = storage;\n this._defaults = defaultSettings || {};\n }\n // #endregion\n // #region methods\n formatKey(key) {\n return this._id + \"_\" + key;\n }\n getItem(key) {\n var value = this._storage.getItem(this.formatKey(key));\n if (typeof value === \"string\") {\n try {\n value = JSON.parse(value);\n } catch (e) {\n value = null;\n }\n }\n return value !== null && value !== void 0 ? value : this._defaults[key];\n }\n setItem(key, value) {\n var formattedKey = this.formatKey(key);\n this._storage.setItem(formattedKey, JSON.stringify(value));\n }\n // #endregion\n // #region accessors\n getViewMode() {\n return this.getItem(\"viewMode\");\n }\n setViewMode(value) {\n this.setItem(\"viewMode\", value);\n }\n getPageMode() {\n return this.getItem(\"pageMode\");\n }\n setPageMode(value) {\n this.setItem(\"pageMode\", value);\n }\n getPrintMode() {\n return this.getItem(\"printMode\");\n }\n setPrintMode(value) {\n this.setItem(\"printMode\", value);\n }\n getScale() {\n return this.getItem(\"scale\");\n }\n setScale(value) {\n this.setItem(\"scale\", value);\n }\n getScaleMode() {\n return this.getItem(\"scaleMode\");\n }\n setScaleMode(value) {\n this.setItem(\"scaleMode\", value);\n }\n getDocumentMapVisible() {\n return this.getItem(\"documentMapVisible\");\n }\n setDocumentMapVisible(value) {\n this.setItem(\"documentMapVisible\", value);\n }\n getParametersAreaVisible() {\n return this.getItem(\"parametersAreaVisible\");\n }\n setParametersAreaVisible(value) {\n this.setItem(\"parametersAreaVisible\", value);\n }\n getHistory() {\n return this.getItem(\"history\");\n }\n setHistory(value) {\n this.setItem(\"history\", value);\n }\n getClientId() {\n return this.getItem(\"clientId\");\n }\n setClientId(value) {\n this.setItem(\"clientId\", value);\n }\n getReportSource() {\n return this.getItem(\"reportSource\");\n }\n setReportSource(value) {\n this.setItem(\"reportSource\", value);\n }\n getPageNumber() {\n return this.getItem(\"pageNumber\");\n }\n setPageNumber(value) {\n this.setItem(\"pageNumber\", value);\n }\n getEnableAccessibility() {\n return this.getItem(\"enableAccessibility\");\n }\n setEnableAccessibility(value) {\n this.setItem(\"enableAccessibility\", value);\n }\n getAccessibilityKeyMap() {\n return this.getItem(\"accessibilityKeyMap\");\n }\n setAccessibilityKeyMap(value) {\n this.setItem(\"accessibilityKeyMap\", value);\n }\n getSearchMetadataOnDemand() {\n return this.getItem(\"searchMetadataOnDemand\");\n }\n setSearchMetadataOnDemand(value) {\n this.setItem(\"searchMetadataOnDemand\", value);\n }\n getKeepClientAlive() {\n return this.getItem(\"keepClientAlive\");\n }\n setKeepClientAlive(value) {\n this.setItem(\"keepClientAlive\", value);\n }\n // #endregion\n }\n var __defProp$2 = Object.defineProperty;\n var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\n var __publicField$2 = (obj, key, value) => {\n __defNormalProp$2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n };\n class BaseComponent {\n // #endregion\n // #region constructor\n constructor(element, options) {\n // #region fields\n __publicField$2(this, \"element\");\n __publicField$2(this, \"$element\");\n __publicField$2(this, \"options\");\n this.element = element;\n this.$element = $(element);\n this.options = options;\n }\n // #endregion\n }\n var __defProp$1 = Object.defineProperty;\n var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\n var __publicField$1 = (obj, key, value) => {\n __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n };\n class LinkButton extends BaseComponent {\n // #endregion\n // #region constructor\n constructor(element, options) {\n super(element, options);\n // #region fields\n __publicField$1(this, \"cmd\");\n var dataCommand = this.$element.attr(\"data-command\");\n if (dataCommand) {\n this.cmd = this.options.commands[dataCommand];\n }\n if (this.cmd) {\n this.$element.on(\"click\", event => {\n if (this.cmd.enabled()) {\n this.cmd.exec($(this).attr(\"data-command-parameter\"));\n } else {\n event.preventDefault();\n }\n });\n $(this.cmd).on(\"enabledChanged\", event => {\n (this.cmd.enabled() ? $.fn.removeClass : $.fn.addClass).call(this.$element, \"disabled\");\n }).on(\"checkedChanged\", event => {\n (this.cmd.checked() ? $.fn.addClass : $.fn.removeClass).call(this.$element, \"checked\");\n });\n }\n }\n // #endregion\n }\n var __defProp = Object.defineProperty;\n var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n }) : obj[key] = value;\n var __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n };\n class PageNumberInput extends BaseComponent {\n // #endregion\n // #region constructor\n constructor(element, options) {\n super(element, options);\n // #region fields\n __publicField(this, \"cmd\");\n __publicField(this, \"_numeric\");\n this.cmd = this.options.commands[\"goToPage\"];\n this._numeric = new kendo.ui.NumericTextBox(this.element, {\n format: \"0\",\n decimals: 0,\n min: 0,\n spinners: false,\n change: this._onChange.bind(this),\n spin: this._onChange.bind(this)\n });\n this._numeric._text[0].dataset.role = \"telerik_ReportViewer_PageNumberInput\";\n this._numeric.element[0].dataset.role = \"\";\n this.options.controller.on(\"reportLoadComplete\", (event, reportInfo) => {\n this._numeric.max(reportInfo.pageCount);\n this._numeric.min(Math.min(1, reportInfo.pageCount));\n this._numeric.value(Math.min(1, reportInfo.pageCount));\n }).on(\"loadedReportChange\", event => {\n this._numeric.min(0);\n this._numeric.max(0);\n this._numeric.value(0);\n }).on(\"renderingStopped\", event => {\n this._numeric.min(0);\n this._numeric.max(0);\n this._numeric.value(0);\n }).pageNumberChange((event, value) => {\n this._numeric.value(value);\n });\n }\n // #endregion\n // #region event handlers\n _onChange(event, data) {\n var val = this._numeric.value();\n var num = tryParseInt(val);\n if (!isNaN(num)) {\n this.cmd.exec(num);\n }\n }\n _onSpin(event, data) {\n return this._onChange(event, data);\n }\n // #endregion\n }\n class PageCountLabel extends BaseComponent {\n // #region constructor\n constructor(element, options) {\n super(element, options);\n this.options.controller.pageCountChange((event, value) => {\n this.$element.text(value);\n });\n }\n // #endregion\n }\n const Instances = GlobalSettings.viewerInstances;\n function getDefaultOptions(serviceUrl, version) {\n return {\n id: null,\n serviceUrl: null,\n trvTemplateUrl: rTrim(serviceUrl, \"\\\\/\") + \"/resources/templates/telerikReportViewerTemplate-\" + version + \".html/\",\n reportSource: null,\n reportServer: null,\n authenticationToken: null,\n sendEmail: null,\n scale: 1,\n scaleMode: ScaleModes.FIT_PAGE,\n viewMode: ViewModes.INTERACTIVE,\n pageMode: PageModes.CONTINUOUS_SCROLL,\n parametersAreaPosition: ParametersAreaPositions.RIGHT,\n documentMapAreaPosition: DocumentMapAreaPositions.LEFT,\n parameters: {\n editors: {\n multiSelect: ParameterEditorTypes.LIST_VIEW,\n singleSelect: ParameterEditorTypes.LIST_VIEW\n }\n },\n persistSession: false,\n parameterEditors: [],\n disabledButtonClass: null,\n checkedButtonClass: null,\n parametersAreaVisible: true,\n documentMapVisible: true,\n enableAccessibility: false,\n searchMetadataOnDemand: false,\n initialPageAreaImageUrl: null,\n keepClientAlive: true\n };\n }\n function ReportViewer(dom, options) {\n var svcApiUrl = options.serviceUrl;\n var reportServerUrlSVCApiUrl = \"\";\n if (options.reportServer) {\n reportServerUrlSVCApiUrl = rTrim(options.reportServer.url, \"\\\\/\");\n svcApiUrl = reportServerUrlSVCApiUrl + \"/api/reports\";\n }\n var $placeholder = $(dom);\n var templates = {};\n var persistanceKey = options.id || `trv_${dom.id}`;\n var accessibility;\n var settings = {};\n var client = {};\n var controller = {};\n var perspectiveManager = {};\n var history = {};\n var commands = {};\n var viewer = {};\n var serviceClientOptions = {};\n var reportServerUrl = \"\";\n options.viewerSelector = \"reportViewer-\" + generateGuidString();\n $placeholder.attr(\"data-selector\", options.viewerSelector);\n if (!validateOptions(options)) {\n return;\n }\n var version = \"18.2.24.924\";\n options = $.extend({}, getDefaultOptions(svcApiUrl, version), options);\n settings = new ReportViewerSettings(persistanceKey, options.persistSession ? window.sessionStorage : new MemStorage(), {\n scale: options.scale,\n scaleMode: options.scaleMode,\n printMode: options.printMode ? options.printMode : options.directPrint,\n enableAccessibility: options.enableAccessibility,\n searchMetadataOnDemand: options.searchMetadataOnDemand,\n sendEmail: options.sendEmail,\n parametersAreaPosition: options.parametersAreaPosition,\n documentMapAreaPosition: options.documentMapAreaPosition,\n keepClientAlive: options.keepClientAlive\n });\n if (options.reportServer) {\n reportServerUrl = rTrim(options.reportServer.url, \"\\\\/\");\n serviceClientOptions.serviceUrl = reportServerUrl + \"/api/reports\";\n serviceClientOptions.loginInfo = {\n url: reportServerUrl + \"/Token\",\n username: options.reportServer.username,\n password: options.reportServer.password\n };\n } else {\n serviceClientOptions.serviceUrl = options.serviceUrl;\n }\n client = new ServiceClient(serviceClientOptions);\n controller = options.controller;\n if (!controller) {\n controller = new ReportViewerController({\n serviceClient: client,\n settings\n });\n } else {\n controller.updateSettings(settings);\n }\n history = new HistoryManager({\n controller,\n settings\n });\n commands = new CommandSet({\n controller,\n history\n });\n new UIController({\n controller,\n history,\n commands\n });\n viewer = {\n stringResources,\n refreshReport: function (ignoreCache) {\n if (arguments.length === 0) {\n ignoreCache = true;\n }\n controller.refreshReport(ignoreCache);\n return viewer;\n },\n reportSource: function (rs) {\n if (rs || rs === null) {\n controller.setReportSource(rs);\n controller.refreshReport(false);\n return viewer;\n }\n return controller.getReportSource();\n },\n clearReportSource: function () {\n controller.clearReportSource();\n return viewer;\n },\n viewMode: function (vm) {\n if (vm) {\n controller.setViewMode(vm);\n return viewer;\n }\n return controller.getViewMode();\n },\n pageMode: function (psm) {\n if (psm) {\n controller.setPageMode(psm);\n return viewer;\n }\n return controller.getPageMode();\n },\n printMode: function (pm) {\n if (pm) {\n controller.setPrintMode(pm);\n return viewer;\n }\n return controller.getPrintMode();\n },\n scale: function ({\n scale,\n scaleMode\n } = {}) {\n if (scale || scaleMode) {\n controller.setScale(scale || controller.getScale());\n controller.setScaleMode(scaleMode || controller.getScaleMode());\n return viewer;\n }\n return {\n scale: controller.getScale(),\n scaleMode: controller.getScaleMode()\n };\n },\n currentPage: function () {\n return controller.getCurrentPageNumber();\n },\n pageCount: function () {\n return controller.getPageCount();\n },\n parametersAreaVisible: function (visible) {\n controller.setParametersAreaVisible({\n visible\n });\n },\n getReportParameters: function () {\n return controller.getReportParameters();\n },\n authenticationToken: function (token) {\n if (token) {\n controller.setAuthenticationToken(token);\n }\n return viewer;\n },\n bind: function (eventName, eventHandler) {\n eventBinder(eventName, eventHandler, true);\n },\n unbind: function (eventName, eventHandler) {\n eventBinder(eventName, eventHandler, false);\n },\n accessibilityKeyMap: function (keyMap) {\n if (accessibility) {\n if (keyMap) {\n accessibility.setKeyMap(keyMap);\n return viewer;\n }\n return accessibility.getKeyMap();\n }\n return void 0;\n },\n commands,\n dispose: function () {\n controller.dispose();\n if (perspectiveManager) {\n perspectiveManager.dispose();\n }\n }\n };\n function validateOptions(options2) {\n if (!options2) {\n $placeholder.text(\"The report viewer configuration options are not initialized.\");\n return false;\n }\n if (options2.reportServer) {\n if (!options2.reportServer.url) {\n $placeholder.text(\"The report server URL is not specified.\");\n return false;\n }\n } else {\n if (!options2.serviceUrl) {\n $placeholder.text(\"The serviceUrl is not specified.\");\n return false;\n }\n }\n return true;\n }\n function eventBinder(eventName, eventHandler, bind) {\n if (typeof eventHandler === \"function\") {\n if (bind) {\n $(viewer).on(eventName, {\n sender: viewer\n }, eventHandler);\n } else {\n $(viewer).off(eventName, eventHandler);\n }\n } else if (!eventHandler && !bind) {\n $(viewer).off(eventName);\n }\n }\n function attachEvents() {\n var eventMap = {\n EXPORT_BEGIN: controller.Events.EXPORT_STARTED,\n EXPORT_END: controller.Events.EXPORT_DOCUMENT_READY,\n PRINT_BEGIN: controller.Events.PRINT_STARTED,\n PRINT_END: controller.Events.PRINT_DOCUMENT_READY,\n RENDERING_BEGIN: controller.Events.BEFORE_LOAD_REPORT,\n RENDERING_END: controller.Events.REPORT_LOAD_COMPLETE,\n PAGE_READY: controller.Events.PAGE_READY,\n ERROR: controller.Events.ERROR,\n UPDATE_UI: controller.Events.UPDATE_UI,\n INTERACTIVE_ACTION_EXECUTING: controller.Events.INTERACTIVE_ACTION_EXECUTING,\n INTERACTIVE_ACTION_ENTER: controller.Events.INTERACTIVE_ACTION_ENTER,\n INTERACTIVE_ACTION_LEAVE: controller.Events.INTERACTIVE_ACTION_LEAVE,\n VIEWER_TOOLTIP_OPENING: controller.Events.TOOLTIP_OPENING,\n SEND_EMAIL_BEGIN: controller.Events.SEND_EMAIL_STARTED,\n SEND_EMAIL_END: controller.Events.SEND_EMAIL_READY\n };\n var $viewer = $(viewer);\n for (const [viewerEvent, controllerEvent] of Object.entries(eventMap)) {\n controller.on(controllerEvent, function (e, args) {\n $viewer.trigger(viewerEvent, args);\n });\n }\n }\n function attachEventHandlers() {\n eventBinder(Events$1.EXPORT_BEGIN, options.exportBegin, true);\n eventBinder(Events$1.EXPORT_END, options.exportEnd, true);\n eventBinder(Events$1.PRINT_BEGIN, options.printBegin, true);\n eventBinder(Events$1.PRINT_END, options.printEnd, true);\n eventBinder(Events$1.RENDERING_BEGIN, options.renderingBegin, true);\n eventBinder(Events$1.RENDERING_END, options.renderingEnd, true);\n eventBinder(Events$1.PAGE_READY, options.pageReady, true);\n eventBinder(Events$1.ERROR, options.error, true);\n eventBinder(Events$1.UPDATE_UI, options.updateUi, true);\n eventBinder(Events$1.INTERACTIVE_ACTION_EXECUTING, options.interactiveActionExecuting, true);\n eventBinder(Events$1.INTERACTIVE_ACTION_ENTER, options.interactiveActionEnter, true);\n eventBinder(Events$1.INTERACTIVE_ACTION_LEAVE, options.interactiveActionLeave, true);\n eventBinder(Events$1.VIEWER_TOOLTIP_OPENING, options.viewerToolTipOpening, true);\n eventBinder(Events$1.SEND_EMAIL_BEGIN, options.sendEmailBegin, true);\n eventBinder(Events$1.SEND_EMAIL_END, options.sendEmailEnd, true);\n }\n function init() {\n $placeholder.html(templates[\"trv-report-viewer\"]);\n Binder.bind($placeholder, {\n controller,\n commands,\n templates\n }, options);\n perspectiveManager = new PerspectiveManager(dom, controller);\n perspectiveManager.attach();\n initSplitter();\n attachEvents();\n attachEventHandlers();\n initFromStorage();\n initAccessibility(options);\n }\n function initSplitter() {\n var parameterAreaPaneOptions = {\n max: \"500px\",\n min: \"50px\",\n size: \"210px\",\n collapsible: true\n };\n var parameterAreaTemplate = $placeholder.find(\".trv-parameters-area\");\n var parameterAreaPanes = [{}];\n var documentMapPaneOptions = {\n max: \"500px\",\n min: \"50px\",\n size: \"210px\",\n collapsible: true,\n collapsed: true\n };\n var documentMapTemplate = $placeholder.find(\".trv-document-map\");\n var documentMapPanes = [{}];\n var orientation = \"horizontal\";\n if (options.documentMapAreaPosition === DocumentMapAreaPositions.RIGHT) {\n documentMapTemplate.insertAfter($placeholder.find(\".trv-pages-area\"));\n documentMapPanes.push(documentMapPaneOptions);\n } else {\n documentMapPanes.unshift(documentMapPaneOptions);\n }\n if (options.parametersAreaPosition === ParametersAreaPositions.TOP || options.parametersAreaPosition === ParametersAreaPositions.BOTTOM) {\n orientation = \"vertical\";\n parameterAreaTemplate.addClass(\"-vertical\");\n parameterAreaPaneOptions.size = \"130px\";\n }\n if (options.parametersAreaPosition === ParametersAreaPositions.LEFT || options.parametersAreaPosition === ParametersAreaPositions.TOP) {\n parameterAreaTemplate.insertBefore($placeholder.find(\".trv-document-map-splitter\"));\n parameterAreaPanes.unshift(parameterAreaPaneOptions);\n } else {\n parameterAreaPanes.push(parameterAreaPaneOptions);\n }\n try {\n var documentMapSplitter = $placeholder.find(\".trv-document-map-splitter\").kendoSplitter({\n panes: documentMapPanes,\n expand: function (e) {\n setSplitterPaneVisibility(e.pane, true);\n },\n collapse: function (e) {\n setSplitterPaneVisibility(e.pane, false);\n },\n resize: function (e) {}\n }).data(\"kendoSplitter\");\n } catch (e) {\n console.error(\"Instantiation of Kendo Splitter as Document Map splitter threw an exception\", e);\n throw e;\n }\n try {\n var parametersSplitter = $placeholder.find(\".trv-parameters-splitter\").kendoSplitter({\n panes: parameterAreaPanes,\n orientation,\n expand: function (e) {\n setSplitterPaneVisibility(e.pane, true);\n },\n collapse: function (e) {\n setSplitterPaneVisibility(e.pane, false);\n },\n resize: function (e) {}\n }).data(\"kendoSplitter\");\n } catch (e) {\n console.error(\"Instantiation of Kendo Splitter as Parameters area splitter threw an exception\", e);\n throw e;\n }\n var parametersSplitterInstance = {\n id: options.viewerSelector + \"-parameters-splitter\",\n instance: parametersSplitter\n };\n var documentMapSplitterInstance = {\n id: options.viewerSelector + \"-document-map-splitter\",\n instance: documentMapSplitter\n };\n Instances.push(parametersSplitterInstance);\n Instances.push(documentMapSplitterInstance);\n }\n function setSplitterPaneVisibility(pane, visible) {\n var paneID = $(pane).attr(\"data-id\");\n switch (paneID) {\n case \"trv-document-map\":\n controller.setDocumentMapVisible({\n visible\n });\n break;\n case \"trv-parameters-area\":\n controller.setParametersAreaVisible({\n visible\n });\n break;\n }\n }\n function initFromStorage() {\n var vm = settings.getViewMode();\n var psm = settings.getPageMode();\n var pm = settings.getPrintMode();\n var s = settings.getScale();\n var sm = settings.getScaleMode();\n var dm = settings.getDocumentMapVisible();\n var pa = settings.getParametersAreaVisible();\n settings.getAccessibilityKeyMap();\n controller.setViewMode(vm ? vm : options.viewMode);\n controller.setPageMode(psm ? psm : options.pageMode);\n controller.setPrintMode(pm ? pm : options.printMode);\n controller.setScale(s ? s : options.scale);\n controller.setScaleMode(sm ? sm : options.scaleMode);\n controller.setDocumentMapVisible({\n visible: dm ? dm : options.documentMapVisible\n });\n controller.setParametersAreaVisible({\n visible: pa ? pa : options.parametersAreaVisible\n });\n controller.printModeChanged(function () {\n settings.setPrintMode(controller.getPrintMode());\n });\n controller.viewModeChanged(function () {\n settings.setViewMode(controller.getViewMode());\n });\n controller.pageModeChanged(function () {\n settings.setPageMode(controller.getPageMode());\n });\n controller.scaleChanged(function (event, scale) {\n settings.setScale(scale);\n });\n controller.scaleModeChanged(function (event, scaleMode) {\n settings.setScaleMode(scaleMode);\n });\n controller.setSideMenuVisible(function (event, args) {\n window.setTimeout(function () {\n (args.visible ? $.fn.addClass : $.fn.removeClass).call($placeholder, \"trv-side-menu-visible\");\n }, 1);\n });\n controller.setDocumentMapVisible(function () {\n var args = {};\n controller.getDocumentMapState(args);\n settings.setDocumentMapVisible(args.visible);\n });\n controller.setParametersAreaVisible(function () {\n var args = {};\n controller.getParametersAreaState(args);\n settings.setParametersAreaVisible(args.visible);\n });\n }\n function initAccessibility(options2) {\n if (options2.enableAccessibility) {\n accessibility = new Accessibility({\n controller,\n templates\n });\n var am = options2.accessibilityKeyMap;\n if (am) {\n accessibility.setKeyMap(am);\n }\n settings.contentTabIndex = getTemplateContentTabIndex();\n }\n }\n function getTemplateContentTabIndex() {\n var pageAreaSelector = \"div.trv-pages-area\";\n try {\n var $pagesArea = $placeholder.find(pageAreaSelector);\n if ($pagesArea.length === 0) {\n throw \"Selector \" + pageAreaSelector + \" did not return a result.\";\n }\n return parseInt($pagesArea.attr(\"tabindex\"));\n } catch (e) {\n if (console) console.log(e);\n return 0;\n }\n }\n function start() {\n var pendingRefresh = false;\n init();\n controller.reportLoadComplete(function () {\n if (options.documentMapVisible === false) {\n controller.setDocumentMapVisible({\n visible: false\n });\n }\n });\n var rs = settings.getReportSource();\n if (rs !== void 0) {\n controller.setReportSource(rs);\n var pageNumber = settings.getPageNumber();\n if (pageNumber !== void 0) {\n controller.navigateToPage(pageNumber);\n }\n pendingRefresh = true;\n } else {\n if (options.viewMode) {\n controller.setViewMode(options.viewMode);\n }\n if (options.pageMode) {\n controller.setPageMode(options.pageMode);\n }\n if (options.reportSource) {\n controller.setReportSource(options.reportSource);\n pendingRefresh = true;\n }\n }\n if (typeof options.ready === \"function\") {\n options.ready.call(viewer);\n }\n if (pendingRefresh) {\n controller.refreshReport(false);\n }\n }\n function loadStyleSheets(styleSheets) {\n if (!styleSheets) return Promise.resolve();\n var $head = $(\"head\");\n var currentStyleLinks = $head.find(\"link\").map(function (i, e) {\n return e.outerHTML;\n }).toArray();\n var promises = [];\n Array.from(styleSheets).forEach(element => {\n if (currentStyleLinks.indexOf(element) === -1) {\n promises.push(new Promise(function (resolve, reject) {\n var $link = $(element);\n $link.on(\"load\", resolve);\n $link.on(\"onerror\", function () {\n logError(\"error loading stylesheet \" + element);\n resolve();\n });\n $head.append($link);\n }));\n }\n });\n return Promise.all(promises).then(controller.cssLoaded);\n }\n function browserSupportsAllFeatures() {\n return window.Promise;\n }\n function ensureKendo(version2) {\n if (window.kendo) {\n return Promise.resolve();\n }\n var kendoUrl = rTrim(svcApiUrl, \"\\\\/\") + \"/resources/js/telerikReportViewer.kendo-\" + version2 + \".min.js/\";\n return loadScript(kendoUrl).catch(function (errorData) {\n logError(\"Kendo could not be loaded automatically. Make sure 'options.serviceUrl' / 'options.reportServer.url' is correct and accessible. The error is: \" + errorData.error);\n });\n }\n function main(version2) {\n ensureKendo(version2).then(function () {}).then(function () {\n viewer.authenticationToken(options.authenticationToken);\n controller.getServiceVersion().catch(function (ex) {\n var errorOutput = isApplicationExceptionInstance(ex) ? ex.exceptionMessage : stringFormat(stringResources.errorServiceUrl, [escapeHtml(svcApiUrl)]);\n $placeholder.text(errorOutput);\n return Promise.reject();\n }).then(function (data) {\n if (data !== version2) {\n $placeholder.text(stringFormat(stringResources.errorServiceVersion, [data, version2]));\n return Promise.reject();\n }\n TemplateCache.load(options.trvTemplateUrl, svcApiUrl, client).catch(function () {\n $placeholder.text(stringFormat(stringResources.errorLoadingTemplates, [escapeHtml(options.trvTemplateUrl)]));\n return Promise.reject();\n }).then(function (result) {\n templates = result.templates;\n return loadStyleSheets(result.styleSheets);\n }).then(start);\n });\n });\n }\n if (browserSupportsAllFeatures()) {\n main(version);\n } else {\n throw \"The current browser does not support the Promise feature which is required for using the Report Viewer.\";\n }\n return viewer;\n }\n var pluginName = \"telerik_ReportViewer\";\n $.fn[pluginName] = function (options) {\n if (this.selector && !options.selector) {\n options.selector = this.selector;\n }\n return this.each(function () {\n if (!$.data(this, pluginName)) {\n $.data(this, pluginName, new ReportViewer(this, options));\n }\n });\n };\n const plugins = [{\n name: \"telerik_ReportViewer_DocumentMapArea\",\n constructor: DocumentMapArea\n }, {\n name: \"telerik_ReportViewer_MainMenu\",\n constructor: MainMenu\n }, {\n name: \"telerik_ReportViewer_PagesArea\",\n constructor: PagesArea\n }, {\n name: \"telerik_ReportViewer_ParametersArea\",\n constructor: ParametersArea\n }, {\n name: \"telerik_ReportViewer_SearchDialog\",\n constructor: Search\n }, {\n name: \"telerik_ReportViewer_SendEmail\",\n constructor: SendEmail\n }, {\n name: \"telerik_ReportViewer_SideMenu\",\n constructor: SideMenu\n }, {\n name: \"telerik_ReportViewer_LinkButton\",\n constructor: LinkButton\n }, {\n name: \"telerik_ReportViewer_PageNumberInput\",\n constructor: PageNumberInput\n }, {\n name: \"telerik_ReportViewer_PageCountLabel\",\n constructor: PageCountLabel\n }];\n plugins.forEach(plugin => {\n $.fn[plugin.name] = function (options, otherOptions) {\n return this.each(function () {\n if (!$.data(this, plugin.name)) {\n $.data(this, plugin.name, new plugin.constructor(this, options, otherOptions));\n }\n });\n };\n });\n exports.Accessibility = Accessibility;\n exports.Binder = Binder;\n exports.CommandSet = CommandSet;\n exports.DocumentMapAreaPositions = DocumentMapAreaPositions;\n exports.Events = Events$1;\n exports.GlobalSettings = GlobalSettings;\n exports.HistoryManager = HistoryManager;\n exports.PageModes = PageModes;\n exports.PagesArea = PagesArea;\n exports.ParameterEditorTypes = ParameterEditorTypes;\n exports.ParameterEditors = ParameterEditors;\n exports.ParameterTypes = ParameterTypes;\n exports.ParameterValidators = ParameterValidators;\n exports.ParametersArea = ParametersArea;\n exports.ParametersAreaPositions = ParametersAreaPositions;\n exports.PerspectiveManager = PerspectiveManager;\n exports.PrintManager = PrintManager;\n exports.PrintModes = PrintModes;\n exports.ReportViewer = ReportViewer;\n exports.ReportViewerController = ReportViewerController;\n exports.ScaleModes = ScaleModes;\n exports.Scroll = Scroll;\n exports.ServiceClient = ServiceClient;\n exports.TouchBehavior = TouchBehavior;\n exports.UIController = UIController;\n exports.UIFreezeCoordinator = UIFreezeCoordinator;\n exports.ViewModes = ViewModes;\n exports.domUtils = domUtils;\n exports.parameterEditorsMatch = parameterEditorsMatch;\n exports.utils = utils;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n return exports;\n}({});\nmodule.exports = {\n ReportViewer: telerikReportViewer.ReportViewer\n};","/**\n * Tween.js - Licensed under the MIT license\n * https://github.com/tweenjs/tween.js\n * ----------------------------------------------\n *\n * See https://github.com/tweenjs/tween.js/graphs/contributors for the full list of contributors.\n * Thank you all, you're awesome!\n */\n\nvar _Group = function () {\n this._tweens = {};\n this._tweensAddedDuringUpdate = {};\n};\n_Group.prototype = {\n getAll: function () {\n return Object.keys(this._tweens).map(function (tweenId) {\n return this._tweens[tweenId];\n }.bind(this));\n },\n removeAll: function () {\n this._tweens = {};\n },\n add: function (tween) {\n this._tweens[tween.getId()] = tween;\n this._tweensAddedDuringUpdate[tween.getId()] = tween;\n },\n remove: function (tween) {\n delete this._tweens[tween.getId()];\n delete this._tweensAddedDuringUpdate[tween.getId()];\n },\n update: function (time, preserve) {\n var tweenIds = Object.keys(this._tweens);\n if (tweenIds.length === 0) {\n return false;\n }\n time = time !== undefined ? time : TWEEN.now();\n\n // Tweens are updated in \"batches\". If you add a new tween during an update, then the\n // new tween will be updated in the next batch.\n // If you remove a tween during an update, it may or may not be updated. However,\n // if the removed tween was added during the current batch, then it will not be updated.\n while (tweenIds.length > 0) {\n this._tweensAddedDuringUpdate = {};\n for (var i = 0; i < tweenIds.length; i++) {\n var tween = this._tweens[tweenIds[i]];\n if (tween && tween.update(time) === false) {\n tween._isPlaying = false;\n if (!preserve) {\n delete this._tweens[tweenIds[i]];\n }\n }\n }\n tweenIds = Object.keys(this._tweensAddedDuringUpdate);\n }\n return true;\n }\n};\nvar TWEEN = new _Group();\nTWEEN.Group = _Group;\nTWEEN._nextId = 0;\nTWEEN.nextId = function () {\n return TWEEN._nextId++;\n};\n\n// Include a performance.now polyfill.\n// In node.js, use process.hrtime.\nif (typeof self === 'undefined' && typeof process !== 'undefined' && process.hrtime) {\n TWEEN.now = function () {\n var time = process.hrtime();\n\n // Convert [seconds, nanoseconds] to milliseconds.\n return time[0] * 1000 + time[1] / 1000000;\n };\n}\n// In a browser, use self.performance.now if it is available.\nelse if (typeof self !== 'undefined' && self.performance !== undefined && self.performance.now !== undefined) {\n // This must be bound, because directly assigning this function\n // leads to an invocation exception in Chrome.\n TWEEN.now = self.performance.now.bind(self.performance);\n}\n// Use Date.now if it is available.\nelse if (Date.now !== undefined) {\n TWEEN.now = Date.now;\n}\n// Otherwise, use 'new Date().getTime()'.\nelse {\n TWEEN.now = function () {\n return new Date().getTime();\n };\n}\nTWEEN.Tween = function (object, group) {\n this._object = object;\n this._valuesStart = {};\n this._valuesEnd = {};\n this._valuesStartRepeat = {};\n this._duration = 1000;\n this._repeat = 0;\n this._repeatDelayTime = undefined;\n this._yoyo = false;\n this._isPlaying = false;\n this._reversed = false;\n this._delayTime = 0;\n this._startTime = null;\n this._easingFunction = TWEEN.Easing.Linear.None;\n this._interpolationFunction = TWEEN.Interpolation.Linear;\n this._chainedTweens = [];\n this._onStartCallback = null;\n this._onStartCallbackFired = false;\n this._onUpdateCallback = null;\n this._onRepeatCallback = null;\n this._onCompleteCallback = null;\n this._onStopCallback = null;\n this._group = group || TWEEN;\n this._id = TWEEN.nextId();\n};\nTWEEN.Tween.prototype = {\n getId: function () {\n return this._id;\n },\n isPlaying: function () {\n return this._isPlaying;\n },\n to: function (properties, duration) {\n this._valuesEnd = properties;\n if (duration !== undefined) {\n this._duration = duration;\n }\n return this;\n },\n duration: function duration(d) {\n this._duration = d;\n return this;\n },\n start: function (time) {\n this._group.add(this);\n this._isPlaying = true;\n this._onStartCallbackFired = false;\n this._startTime = time !== undefined ? typeof time === 'string' ? TWEEN.now() + parseFloat(time) : time : TWEEN.now();\n this._startTime += this._delayTime;\n for (var property in this._valuesEnd) {\n // Check if an Array was provided as property value\n if (this._valuesEnd[property] instanceof Array) {\n if (this._valuesEnd[property].length === 0) {\n continue;\n }\n\n // Create a local copy of the Array with the start value at the front\n this._valuesEnd[property] = [this._object[property]].concat(this._valuesEnd[property]);\n }\n\n // If `to()` specifies a property that doesn't exist in the source object,\n // we should not set that property in the object\n if (this._object[property] === undefined) {\n continue;\n }\n\n // Save the starting value.\n this._valuesStart[property] = this._object[property];\n if (this._valuesStart[property] instanceof Array === false) {\n this._valuesStart[property] *= 1.0; // Ensures we're using numbers, not strings\n }\n this._valuesStartRepeat[property] = this._valuesStart[property] || 0;\n }\n return this;\n },\n stop: function () {\n if (!this._isPlaying) {\n return this;\n }\n this._group.remove(this);\n this._isPlaying = false;\n if (this._onStopCallback !== null) {\n this._onStopCallback(this._object);\n }\n this.stopChainedTweens();\n return this;\n },\n end: function () {\n this.update(Infinity);\n return this;\n },\n stopChainedTweens: function () {\n for (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {\n this._chainedTweens[i].stop();\n }\n },\n group: function (group) {\n this._group = group;\n return this;\n },\n delay: function (amount) {\n this._delayTime = amount;\n return this;\n },\n repeat: function (times) {\n this._repeat = times;\n return this;\n },\n repeatDelay: function (amount) {\n this._repeatDelayTime = amount;\n return this;\n },\n yoyo: function (yoyo) {\n this._yoyo = yoyo;\n return this;\n },\n easing: function (easingFunction) {\n this._easingFunction = easingFunction;\n return this;\n },\n interpolation: function (interpolationFunction) {\n this._interpolationFunction = interpolationFunction;\n return this;\n },\n chain: function () {\n this._chainedTweens = arguments;\n return this;\n },\n onStart: function (callback) {\n this._onStartCallback = callback;\n return this;\n },\n onUpdate: function (callback) {\n this._onUpdateCallback = callback;\n return this;\n },\n onRepeat: function onRepeat(callback) {\n this._onRepeatCallback = callback;\n return this;\n },\n onComplete: function (callback) {\n this._onCompleteCallback = callback;\n return this;\n },\n onStop: function (callback) {\n this._onStopCallback = callback;\n return this;\n },\n update: function (time) {\n var property;\n var elapsed;\n var value;\n if (time < this._startTime) {\n return true;\n }\n if (this._onStartCallbackFired === false) {\n if (this._onStartCallback !== null) {\n this._onStartCallback(this._object);\n }\n this._onStartCallbackFired = true;\n }\n elapsed = (time - this._startTime) / this._duration;\n elapsed = this._duration === 0 || elapsed > 1 ? 1 : elapsed;\n value = this._easingFunction(elapsed);\n for (property in this._valuesEnd) {\n // Don't update properties that do not exist in the source object\n if (this._valuesStart[property] === undefined) {\n continue;\n }\n var start = this._valuesStart[property] || 0;\n var end = this._valuesEnd[property];\n if (end instanceof Array) {\n this._object[property] = this._interpolationFunction(end, value);\n } else {\n // Parses relative end values with start as base (e.g.: +10, -3)\n if (typeof end === 'string') {\n if (end.charAt(0) === '+' || end.charAt(0) === '-') {\n end = start + parseFloat(end);\n } else {\n end = parseFloat(end);\n }\n }\n\n // Protect against non numeric properties.\n if (typeof end === 'number') {\n this._object[property] = start + (end - start) * value;\n }\n }\n }\n if (this._onUpdateCallback !== null) {\n this._onUpdateCallback(this._object, elapsed);\n }\n if (elapsed === 1) {\n if (this._repeat > 0) {\n if (isFinite(this._repeat)) {\n this._repeat--;\n }\n\n // Reassign starting values, restart by making startTime = now\n for (property in this._valuesStartRepeat) {\n if (typeof this._valuesEnd[property] === 'string') {\n this._valuesStartRepeat[property] = this._valuesStartRepeat[property] + parseFloat(this._valuesEnd[property]);\n }\n if (this._yoyo) {\n var tmp = this._valuesStartRepeat[property];\n this._valuesStartRepeat[property] = this._valuesEnd[property];\n this._valuesEnd[property] = tmp;\n }\n this._valuesStart[property] = this._valuesStartRepeat[property];\n }\n if (this._yoyo) {\n this._reversed = !this._reversed;\n }\n if (this._repeatDelayTime !== undefined) {\n this._startTime = time + this._repeatDelayTime;\n } else {\n this._startTime = time + this._delayTime;\n }\n if (this._onRepeatCallback !== null) {\n this._onRepeatCallback(this._object);\n }\n return true;\n } else {\n if (this._onCompleteCallback !== null) {\n this._onCompleteCallback(this._object);\n }\n for (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {\n // Make the chained tweens start exactly at the time they should,\n // even if the `update()` method was called way past the duration of the tween\n this._chainedTweens[i].start(this._startTime + this._duration);\n }\n return false;\n }\n }\n return true;\n }\n};\nTWEEN.Easing = {\n Linear: {\n None: function (k) {\n return k;\n }\n },\n Quadratic: {\n In: function (k) {\n return k * k;\n },\n Out: function (k) {\n return k * (2 - k);\n },\n InOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k;\n }\n return -0.5 * (--k * (k - 2) - 1);\n }\n },\n Cubic: {\n In: function (k) {\n return k * k * k;\n },\n Out: function (k) {\n return --k * k * k + 1;\n },\n InOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k * k;\n }\n return 0.5 * ((k -= 2) * k * k + 2);\n }\n },\n Quartic: {\n In: function (k) {\n return k * k * k * k;\n },\n Out: function (k) {\n return 1 - --k * k * k * k;\n },\n InOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k * k * k;\n }\n return -0.5 * ((k -= 2) * k * k * k - 2);\n }\n },\n Quintic: {\n In: function (k) {\n return k * k * k * k * k;\n },\n Out: function (k) {\n return --k * k * k * k * k + 1;\n },\n InOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k * k * k * k;\n }\n return 0.5 * ((k -= 2) * k * k * k * k + 2);\n }\n },\n Sinusoidal: {\n In: function (k) {\n return 1 - Math.cos(k * Math.PI / 2);\n },\n Out: function (k) {\n return Math.sin(k * Math.PI / 2);\n },\n InOut: function (k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n },\n Exponential: {\n In: function (k) {\n return k === 0 ? 0 : Math.pow(1024, k - 1);\n },\n Out: function (k) {\n return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\n },\n InOut: function (k) {\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if ((k *= 2) < 1) {\n return 0.5 * Math.pow(1024, k - 1);\n }\n return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\n }\n },\n Circular: {\n In: function (k) {\n return 1 - Math.sqrt(1 - k * k);\n },\n Out: function (k) {\n return Math.sqrt(1 - --k * k);\n },\n InOut: function (k) {\n if ((k *= 2) < 1) {\n return -0.5 * (Math.sqrt(1 - k * k) - 1);\n }\n return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n }\n },\n Elastic: {\n In: function (k) {\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n return -Math.pow(2, 10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI);\n },\n Out: function (k) {\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n return Math.pow(2, -10 * k) * Math.sin((k - 0.1) * 5 * Math.PI) + 1;\n },\n InOut: function (k) {\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n k *= 2;\n if (k < 1) {\n return -0.5 * Math.pow(2, 10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI);\n }\n return 0.5 * Math.pow(2, -10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI) + 1;\n }\n },\n Back: {\n In: function (k) {\n var s = 1.70158;\n return k * k * ((s + 1) * k - s);\n },\n Out: function (k) {\n var s = 1.70158;\n return --k * k * ((s + 1) * k + s) + 1;\n },\n InOut: function (k) {\n var s = 1.70158 * 1.525;\n if ((k *= 2) < 1) {\n return 0.5 * (k * k * ((s + 1) * k - s));\n }\n return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n }\n },\n Bounce: {\n In: function (k) {\n return 1 - TWEEN.Easing.Bounce.Out(1 - k);\n },\n Out: function (k) {\n if (k < 1 / 2.75) {\n return 7.5625 * k * k;\n } else if (k < 2 / 2.75) {\n return 7.5625 * (k -= 1.5 / 2.75) * k + 0.75;\n } else if (k < 2.5 / 2.75) {\n return 7.5625 * (k -= 2.25 / 2.75) * k + 0.9375;\n } else {\n return 7.5625 * (k -= 2.625 / 2.75) * k + 0.984375;\n }\n },\n InOut: function (k) {\n if (k < 0.5) {\n return TWEEN.Easing.Bounce.In(k * 2) * 0.5;\n }\n return TWEEN.Easing.Bounce.Out(k * 2 - 1) * 0.5 + 0.5;\n }\n }\n};\nTWEEN.Interpolation = {\n Linear: function (v, k) {\n var m = v.length - 1;\n var f = m * k;\n var i = Math.floor(f);\n var fn = TWEEN.Interpolation.Utils.Linear;\n if (k < 0) {\n return fn(v[0], v[1], f);\n }\n if (k > 1) {\n return fn(v[m], v[m - 1], m - f);\n }\n return fn(v[i], v[i + 1 > m ? m : i + 1], f - i);\n },\n Bezier: function (v, k) {\n var b = 0;\n var n = v.length - 1;\n var pw = Math.pow;\n var bn = TWEEN.Interpolation.Utils.Bernstein;\n for (var i = 0; i <= n; i++) {\n b += pw(1 - k, n - i) * pw(k, i) * v[i] * bn(n, i);\n }\n return b;\n },\n CatmullRom: function (v, k) {\n var m = v.length - 1;\n var f = m * k;\n var i = Math.floor(f);\n var fn = TWEEN.Interpolation.Utils.CatmullRom;\n if (v[0] === v[m]) {\n if (k < 0) {\n i = Math.floor(f = m * (1 + k));\n }\n return fn(v[(i - 1 + m) % m], v[i], v[(i + 1) % m], v[(i + 2) % m], f - i);\n } else {\n if (k < 0) {\n return v[0] - (fn(v[0], v[0], v[1], v[1], -f) - v[0]);\n }\n if (k > 1) {\n return v[m] - (fn(v[m], v[m], v[m - 1], v[m - 1], f - m) - v[m]);\n }\n return fn(v[i ? i - 1 : 0], v[i], v[m < i + 1 ? m : i + 1], v[m < i + 2 ? m : i + 2], f - i);\n }\n },\n Utils: {\n Linear: function (p0, p1, t) {\n return (p1 - p0) * t + p0;\n },\n Bernstein: function (n, i) {\n var fc = TWEEN.Interpolation.Utils.Factorial;\n return fc(n) / fc(i) / fc(n - i);\n },\n Factorial: function () {\n var a = [1];\n return function (n) {\n var s = 1;\n if (a[n]) {\n return a[n];\n }\n for (var i = n; i > 1; i--) {\n s *= i;\n }\n a[n] = s;\n return s;\n };\n }(),\n CatmullRom: function (p0, p1, p2, p3, t) {\n var v0 = (p2 - p0) * 0.5;\n var v1 = (p3 - p1) * 0.5;\n var t2 = t * t;\n var t3 = t * t2;\n return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;\n }\n }\n};\n\n// UMD (Universal Module Definition)\n(function (root) {\n if (typeof define === 'function' && define.amd) {\n // AMD\n define([], function () {\n return TWEEN;\n });\n } else if (typeof module !== 'undefined' && typeof exports === 'object') {\n // Node.js\n module.exports = TWEEN;\n } else if (root !== undefined) {\n // Global variable\n root.TWEEN = TWEEN;\n }\n})(this);","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function (window, document, exportName, undefined) {\n 'use strict';\n\n var VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\n var TEST_ELEMENT = document.createElement('div');\n var TYPE_FUNCTION = 'function';\n var round = Math.round;\n var abs = Math.abs;\n var now = Date.now;\n\n /**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\n function setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n }\n\n /**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\n function invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n }\n\n /**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\n function each(obj, iterator, context) {\n var i;\n if (!obj) {\n return;\n }\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n }\n\n /**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\n function deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function () {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '').replace(/^\\s+at\\s+/gm, '').replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n }\n\n /**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\n var assign;\n if (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n } else {\n assign = Object.assign;\n }\n\n /**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\n var extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || merge && dest[keys[i]] === undefined) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n }, 'extend', 'Use `assign`.');\n\n /**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\n var merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n }, 'merge', 'Use `assign`.');\n\n /**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\n function inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n if (properties) {\n assign(childP, properties);\n }\n }\n\n /**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\n function bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n }\n\n /**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\n function boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n }\n\n /**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\n function ifUndefined(val1, val2) {\n return val1 === undefined ? val2 : val1;\n }\n\n /**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\n function addEventListeners(target, types, handler) {\n each(splitStr(types), function (type) {\n target.addEventListener(type, handler, false);\n });\n }\n\n /**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\n function removeEventListeners(target, types, handler) {\n each(splitStr(types), function (type) {\n target.removeEventListener(type, handler, false);\n });\n }\n\n /**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\n function hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n }\n\n /**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\n function inStr(str, find) {\n return str.indexOf(find) > -1;\n }\n\n /**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\n function splitStr(str) {\n return str.trim().split(/\\s+/g);\n }\n\n /**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\n function inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if (findByKey && src[i][findByKey] == find || !findByKey && src[i] === find) {\n return i;\n }\n i++;\n }\n return -1;\n }\n }\n\n /**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\n function toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n }\n\n /**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\n function uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n return results;\n }\n\n /**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\n function prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = prefix ? prefix + camelProp : property;\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n }\n\n /**\n * get a unique id\n * @returns {number} uniqueId\n */\n var _uniqueId = 1;\n function uniqueId() {\n return _uniqueId++;\n }\n\n /**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\n function getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return doc.defaultView || doc.parentWindow || window;\n }\n var MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n var SUPPORT_TOUCH = 'ontouchstart' in window;\n var SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\n var SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n var INPUT_TYPE_TOUCH = 'touch';\n var INPUT_TYPE_PEN = 'pen';\n var INPUT_TYPE_MOUSE = 'mouse';\n var INPUT_TYPE_KINECT = 'kinect';\n var COMPUTE_INTERVAL = 25;\n var INPUT_START = 1;\n var INPUT_MOVE = 2;\n var INPUT_END = 4;\n var INPUT_CANCEL = 8;\n var DIRECTION_NONE = 1;\n var DIRECTION_LEFT = 2;\n var DIRECTION_RIGHT = 4;\n var DIRECTION_UP = 8;\n var DIRECTION_DOWN = 16;\n var DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\n var DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\n var DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n var PROPS_XY = ['x', 'y'];\n var PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n /**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\n function Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function (ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n this.init();\n }\n Input.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function () {},\n /**\n * bind the events\n */\n init: function () {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n /**\n * unbind the events\n */\n destroy: function () {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n };\n\n /**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\n function createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new Type(manager, inputHandler);\n }\n\n /**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\n function inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = eventType & INPUT_START && pointersLen - changedPointersLen === 0;\n var isFinal = eventType & (INPUT_END | INPUT_CANCEL) && pointersLen - changedPointersLen === 0;\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n manager.recognize(input);\n manager.session.prevInput = input;\n }\n\n /**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\n function computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = abs(overallVelocity.x) > abs(overallVelocity.y) ? overallVelocity.x : overallVelocity.y;\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n input.maxPointers = !session.prevInput ? input.pointers.length : input.pointers.length > session.prevInput.maxPointers ? input.pointers.length : session.prevInput.maxPointers;\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n }\n function computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n }\n\n /**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\n function computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity,\n velocityX,\n velocityY,\n direction;\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = abs(v.x) > abs(v.y) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n }\n\n /**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\n function simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n }\n\n /**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\n function getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n var x = 0,\n y = 0,\n i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n }\n\n /**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\n function getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n }\n\n /**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\n function getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n }\n\n /**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\n function getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.sqrt(x * x + y * y);\n }\n\n /**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\n function getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n }\n\n /**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\n function getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n }\n\n /**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\n function getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n }\n var MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n };\n var MOUSE_ELEMENT_EVENTS = 'mousedown';\n var MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n /**\n * Mouse events input\n * @constructor\n * @extends Input\n */\n function MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n }\n inherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n });\n var POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n };\n\n // in IE10 the pointer types is defined as an enum\n var IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n };\n var POINTER_ELEMENT_EVENTS = 'pointerdown';\n var POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n // IE10 has prefixed support, and case-sensitive\n if (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n }\n\n /**\n * Pointer events input\n * @constructor\n * @extends Input\n */\n function PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n Input.apply(this, arguments);\n this.store = this.manager.session.pointerEvents = [];\n }\n inherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n var isTouch = pointerType == INPUT_TYPE_TOUCH;\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n });\n var SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n };\n var SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\n var SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n /**\n * Touch events input\n * @constructor\n * @extends Input\n */\n function SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n Input.apply(this, arguments);\n }\n inherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n if (!this.started) {\n return;\n }\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n });\n\n /**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\n function normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n return [all, changed];\n }\n var TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n };\n var TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n /**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\n function TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n Input.apply(this, arguments);\n }\n inherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n });\n\n /**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\n function getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function (touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n if (!changedTargetTouches.length) {\n return;\n }\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true), changedTargetTouches];\n }\n\n /**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\n var DEDUP_TIMEOUT = 2500;\n var DEDUP_DISTANCE = 25;\n function TouchMouseInput() {\n Input.apply(this, arguments);\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n this.primaryTouch = null;\n this.lastTouches = [];\n }\n inherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = inputData.pointerType == INPUT_TYPE_TOUCH,\n isMouse = inputData.pointerType == INPUT_TYPE_MOUSE;\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n this.callback(manager, inputEvent, inputData);\n },\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n });\n function recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n }\n function setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {\n x: touch.clientX,\n y: touch.clientY\n };\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function () {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n }\n function isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX,\n y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x),\n dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n }\n var PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\n var NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n // magical touchAction value\n var TOUCH_ACTION_COMPUTE = 'compute';\n var TOUCH_ACTION_AUTO = 'auto';\n var TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\n var TOUCH_ACTION_NONE = 'none';\n var TOUCH_ACTION_PAN_X = 'pan-x';\n var TOUCH_ACTION_PAN_Y = 'pan-y';\n var TOUCH_ACTION_MAP = getTouchActionProps();\n\n /**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\n function TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n }\n TouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function (value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n /**\n * just re-set the touchAction value\n */\n update: function () {\n this.set(this.manager.options.touchAction);\n },\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function () {\n var actions = [];\n each(this.manager.recognizers, function (recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function (input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n if (hasNone || hasPanY && direction & DIRECTION_HORIZONTAL || hasPanX && direction & DIRECTION_VERTICAL) {\n return this.preventSrc(srcEvent);\n }\n },\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function (srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n };\n\n /**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\n function cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n return TOUCH_ACTION_AUTO;\n }\n function getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function (val) {\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n }\n\n /**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\n var STATE_POSSIBLE = 1;\n var STATE_BEGAN = 2;\n var STATE_CHANGED = 4;\n var STATE_ENDED = 8;\n var STATE_RECOGNIZED = STATE_ENDED;\n var STATE_CANCELLED = 16;\n var STATE_FAILED = 32;\n\n /**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\n function Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n this.id = uniqueId();\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n this.state = STATE_POSSIBLE;\n this.simultaneous = {};\n this.requireFail = [];\n }\n Recognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function (options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function (otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function (otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function (otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function (otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function () {\n return this.requireFail.length > 0;\n },\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function (otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function (input) {\n var self = this;\n var state = this.state;\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) {\n // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function (input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function () {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function (inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function (inputData) {},\n // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function () {},\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function () {}\n };\n\n /**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\n function stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n }\n\n /**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\n function directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n }\n\n /**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\n function getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n }\n\n /**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\n function AttrRecognizer() {\n Recognizer.apply(this, arguments);\n }\n inherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function (input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function (input) {\n var state = this.state;\n var eventType = input.eventType;\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n });\n\n /**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\n function PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n this.pX = null;\n this.pY = null;\n }\n inherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n getTouchAction: function () {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n directionTest: function (input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = x === 0 ? DIRECTION_NONE : x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = y === 0 ? DIRECTION_NONE : y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n attrTest: function (input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) && (this.state & STATE_BEGAN || !(this.state & STATE_BEGAN) && this.directionTest(input));\n },\n emit: function (input) {\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n var direction = directionStr(input.direction);\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n });\n\n /**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\n function PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n }\n inherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n getTouchAction: function () {\n return [TOUCH_ACTION_NONE];\n },\n attrTest: function (input) {\n return this._super.attrTest.call(this, input) && (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n emit: function (input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n });\n\n /**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\n function PressRecognizer() {\n Recognizer.apply(this, arguments);\n this._timer = null;\n this._input = null;\n }\n inherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251,\n // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n getTouchAction: function () {\n return [TOUCH_ACTION_AUTO];\n },\n process: function (input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function () {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n reset: function () {\n clearTimeout(this._timer);\n },\n emit: function (input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n if (input && input.eventType & INPUT_END) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n });\n\n /**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\n function RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n }\n inherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n getTouchAction: function () {\n return [TOUCH_ACTION_NONE];\n },\n attrTest: function (input) {\n return this._super.attrTest.call(this, input) && (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n });\n\n /**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\n function SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n }\n inherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n getTouchAction: function () {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n attrTest: function (input) {\n var direction = this.options.direction;\n var velocity;\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n return this._super.attrTest.call(this, input) && direction & input.offsetDirection && input.distance > this.options.threshold && input.maxPointers == this.options.pointers && abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n emit: function (input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n this.manager.emit(this.options.event, input);\n }\n });\n\n /**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\n function TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n this._timer = null;\n this._input = null;\n this.count = 0;\n }\n inherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300,\n // max time between the multi-tap taps\n time: 250,\n // max time of the pointer to be down (like finger on the screen)\n threshold: 9,\n // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n getTouchAction: function () {\n return [TOUCH_ACTION_MANIPULATION];\n },\n process: function (input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n this.reset();\n if (input.eventType & INPUT_START && this.count === 0) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n var validInterval = this.pTime ? input.timeStamp - this.pTime < options.interval : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function () {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n failTimeout: function () {\n this._timer = setTimeoutContext(function () {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n reset: function () {\n clearTimeout(this._timer);\n },\n emit: function () {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n });\n\n /**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\n function Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n }\n\n /**\n * @const {string}\n */\n Hammer.VERSION = '2.0.7';\n\n /**\n * default settings\n * @namespace\n */\n Hammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {\n enable: false\n }], [PinchRecognizer, {\n enable: false\n }, ['rotate']], [SwipeRecognizer, {\n direction: DIRECTION_HORIZONTAL\n }], [PanRecognizer, {\n direction: DIRECTION_HORIZONTAL\n }, ['swipe']], [TapRecognizer], [TapRecognizer, {\n event: 'doubletap',\n taps: 2\n }, ['tap']], [PressRecognizer]],\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n };\n var STOP = 1;\n var FORCED_STOP = 2;\n\n /**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\n function Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n this.options.inputTarget = this.options.inputTarget || element;\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n toggleCssProps(this, true);\n each(this.options.recognizers, function (item) {\n var recognizer = this.add(new item[0](item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n }\n Manager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function (options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function (force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function (inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || curRecognizer && curRecognizer.state & STATE_RECOGNIZED) {\n curRecognizer = session.curRecognizer = null;\n }\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && (\n // 1\n !curRecognizer || recognizer == curRecognizer ||\n // 2\n recognizer.canRecognizeWith(curRecognizer))) {\n // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function (recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function (recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n this.touchAction.update();\n return recognizer;\n },\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function (recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n return this;\n },\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function (events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n var handlers = this.handlers;\n each(splitStr(events), function (event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function (events, handler) {\n if (events === undefined) {\n return;\n }\n var handlers = this.handlers;\n each(splitStr(events), function (event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function (event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n data.type = event;\n data.preventDefault = function () {\n data.srcEvent.preventDefault();\n };\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function () {\n this.element && toggleCssProps(this, false);\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n };\n\n /**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\n function toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function (value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n }\n\n /**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\n function triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n }\n assign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n });\n\n // this prevents errors when Hammer is loaded in the presence of an AMD\n // style loader but by script tag, not by the loader.\n var freeGlobal = typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}; // jshint ignore:line\n freeGlobal.Hammer = Hammer;\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return Hammer;\n });\n } else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n } else {\n window[exportName] = Hammer;\n }\n})(window, document, 'Hammer');","'use strict';\n\n/**\n * @license Angular v\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\nconst global = globalThis;\n// __Zone_symbol_prefix global can be used to override the default zone\n// symbol prefix with a custom one if needed.\nfunction __symbol__(name) {\n const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n return symbolPrefix + name;\n}\nfunction initZone() {\n const performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n let ZoneImpl = /*#__PURE__*/(() => {\n class ZoneImpl {\n // tslint:disable-next-line:require-internal-with-underscore\n static {\n this.__symbol__ = __symbol__;\n }\n static assertZonePatched() {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' + 'has been overwritten.\\n' + 'Most likely cause is that a Promise polyfill has been loaded ' + 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' + 'If you must load one, do so before loading zone.js.)');\n }\n }\n static get root() {\n let zone = ZoneImpl.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n }\n static get current() {\n return _currentZoneFrame.zone;\n }\n static get currentTask() {\n return _currentTask;\n }\n // tslint:disable-next-line:require-internal-with-underscore\n static __load_patch(name, fn, ignoreDuplicate = false) {\n if (patches.hasOwnProperty(name)) {\n // `checkDuplicate` option is defined from global variable\n // so it works for all modules.\n // `ignoreDuplicate` can work for the specified module\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (!ignoreDuplicate && checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n } else if (!global['__Zone_disable_' + name]) {\n const perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, ZoneImpl, _api);\n performanceMeasure(perfName, perfName);\n }\n }\n get parent() {\n return this._parent;\n }\n get name() {\n return this._name;\n }\n constructor(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate = new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n get(key) {\n const zone = this.getZoneWith(key);\n if (zone) return zone._properties[key];\n }\n getZoneWith(key) {\n let current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n }\n fork(zoneSpec) {\n if (!zoneSpec) throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n }\n wrap(callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n const _callback = this._zoneDelegate.intercept(this, callback, source);\n const zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n }\n run(callback, applyThis, applyArgs, source) {\n _currentZoneFrame = {\n parent: _currentZoneFrame,\n zone: this\n };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n } finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runGuarded(callback, applyThis = null, applyArgs, source) {\n _currentZoneFrame = {\n parent: _currentZoneFrame,\n zone: this\n };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n } catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n } finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runTask(task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n const zoneTask = task;\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n const {\n type,\n data: {\n isPeriodic = false,\n isRefreshable = false\n } = {}\n } = task;\n if (task.state === notScheduled && (type === eventTask || type === macroTask)) {\n return;\n }\n const reEntryGuard = task.state != running;\n reEntryGuard && zoneTask._transitionTo(running, scheduled);\n const previousTask = _currentTask;\n _currentTask = zoneTask;\n _currentZoneFrame = {\n parent: _currentZoneFrame,\n zone: this\n };\n try {\n if (type == macroTask && task.data && !isPeriodic && !isRefreshable) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, zoneTask, applyThis, applyArgs);\n } catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n } finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n const state = task.state;\n if (state !== notScheduled && state !== unknown) {\n if (type == eventTask || isPeriodic || isRefreshable && state === scheduling) {\n reEntryGuard && zoneTask._transitionTo(scheduled, running, scheduling);\n } else {\n const zoneDelegates = zoneTask._zoneDelegates;\n this._updateTaskCount(zoneTask, -1);\n reEntryGuard && zoneTask._transitionTo(notScheduled, running, notScheduled);\n if (isRefreshable) {\n zoneTask._zoneDelegates = zoneDelegates;\n }\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n }\n scheduleTask(task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n let newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n const zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n } catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n }\n scheduleMicroTask(source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n }\n scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n }\n scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n }\n cancelTask(task) {\n if (task.zone != this) throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n if (task.state !== scheduled && task.state !== running) {\n return;\n }\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n } catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = -1;\n return task;\n }\n _updateTaskCount(task, count) {\n const zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (let i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n }\n }\n return ZoneImpl;\n })();\n const DELEGATE_ZS = {\n name: '',\n onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task)\n };\n class _ZoneDelegate {\n get zone() {\n return this._zone;\n }\n constructor(zone, parentDelegate, zoneSpec) {\n this._taskCounts = {\n 'microTask': 0,\n 'macroTask': 0,\n 'eventTask': 0\n };\n this._zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this._zone : parentDelegate._forkCurrZone);\n this._interceptZS = zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt = zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone = zoneSpec && (zoneSpec.onIntercept ? this._zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt = zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this._zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS = zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt = zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone = zoneSpec && (zoneSpec.onHandleError ? this._zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS = zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone = zoneSpec && (zoneSpec.onScheduleTask ? this._zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS = zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt = zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone = zoneSpec && (zoneSpec.onInvokeTask ? this._zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS = zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt = zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone = zoneSpec && (zoneSpec.onCancelTask ? this._zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = this._zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this._zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this._zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this._zone;\n }\n }\n }\n fork(targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) : new ZoneImpl(targetZone, zoneSpec);\n }\n intercept(targetZone, callback, source) {\n return this._interceptZS ? this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) : callback;\n }\n invoke(targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) : callback.apply(applyThis, applyArgs);\n }\n handleError(targetZone, error) {\n return this._handleErrorZS ? this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) : true;\n }\n scheduleTask(targetZone, task) {\n let returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n if (!returnTask) returnTask = task;\n } else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n } else if (task.type == microTask) {\n scheduleMicroTask(task);\n } else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n }\n invokeTask(targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) : task.callback.apply(applyThis, applyArgs);\n }\n cancelTask(targetZone, task) {\n let value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n } else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n }\n hasTask(targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS && this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n } catch (err) {\n this.handleError(targetZone, err);\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _updateTaskCount(type, count) {\n const counts = this._taskCounts;\n const prev = counts[type];\n const next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n const isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this._zone, isEmpty);\n }\n }\n }\n class ZoneTask {\n constructor(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n const self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n } else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n static invokeTask(task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n } finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n }\n get zone() {\n return this._zone;\n }\n get state() {\n return this._state;\n }\n cancelScheduleRequest() {\n this._transitionTo(notScheduled, scheduling);\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _transitionTo(toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n } else {\n throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? \" or '\" + fromState2 + \"'\" : ''}, was '${this._state}'.`);\n }\n }\n toString() {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n } else {\n return Object.prototype.toString.call(this);\n }\n }\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n toJSON() {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const symbolSetTimeout = __symbol__('setTimeout');\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n let _microTaskQueue = [];\n let _isDrainingMicrotaskQueue = false;\n let nativeMicroTaskQueuePromise;\n function nativeScheduleMicroTask(func) {\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n let nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, func);\n } else {\n global[symbolSetTimeout](func, 0);\n }\n }\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n nativeScheduleMicroTask(drainMicroTaskQueue);\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n const queue = _microTaskQueue;\n _microTaskQueue = [];\n for (let i = 0; i < queue.length; i++) {\n const task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n } catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const NO_ZONE = {\n name: 'NO ZONE'\n };\n const notScheduled = 'notScheduled',\n scheduling = 'scheduling',\n scheduled = 'scheduled',\n running = 'running',\n canceling = 'canceling',\n unknown = 'unknown';\n const microTask = 'microTask',\n macroTask = 'macroTask',\n eventTask = 'eventTask';\n const patches = {};\n const _api = {\n symbol: __symbol__,\n currentZoneFrame: () => _currentZoneFrame,\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: () => !ZoneImpl[__symbol__('ignoreConsoleErrorUncaughtError')],\n patchEventTarget: () => [],\n patchOnProperties: noop,\n patchMethod: () => noop,\n bindArguments: () => [],\n patchThen: () => noop,\n patchMacroTask: () => noop,\n patchEventPrototype: () => noop,\n isIEOrEdge: () => false,\n getGlobalObjects: () => undefined,\n ObjectDefineProperty: () => noop,\n ObjectGetOwnPropertyDescriptor: () => undefined,\n ObjectCreate: () => undefined,\n ArraySlice: () => [],\n patchClass: () => noop,\n wrapWithCurrentZone: () => noop,\n filterProperties: () => [],\n attachOriginToPatched: () => noop,\n _redefineProperty: () => noop,\n patchCallbacks: () => noop,\n nativeScheduleMicroTask: nativeScheduleMicroTask\n };\n let _currentZoneFrame = {\n parent: null,\n zone: new ZoneImpl(null, null)\n };\n let _currentTask = null;\n let _numberOfNestedTaskFrames = 0;\n function noop() {}\n performanceMeasure('Zone', 'Zone');\n return ZoneImpl;\n}\nfunction loadZone() {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n const global = globalThis;\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone'] && (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function')) {\n throw new Error('Zone already loaded.');\n }\n // Initialize global `Zone` constant.\n global['Zone'] ??= initZone();\n return global['Zone'];\n}\n\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nconst ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nconst ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nconst ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nconst ObjectCreate = Object.create;\n/** Array.prototype.slice */\nconst ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nconst ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nconst REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nconst ZONE_SYMBOL_ADD_EVENT_LISTENER = __symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nconst ZONE_SYMBOL_REMOVE_EVENT_LISTENER = __symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nconst TRUE_STR = 'true';\n/** false string const */\nconst FALSE_STR = 'false';\n/** Zone symbol prefix string const. */\nconst ZONE_SYMBOL_PREFIX = __symbol__('');\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nconst zoneSymbol = __symbol__;\nconst isWindowExists = typeof window !== 'undefined';\nconst internalWindow = isWindowExists ? window : undefined;\nconst _global = isWindowExists && internalWindow || globalThis;\nconst REMOVE_ATTRIBUTE = 'removeAttribute';\nfunction bindArguments(args, source) {\n for (let i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n const source = prototype.constructor['name'];\n for (let i = 0; i < fnNames.length; i++) {\n const name = fnNames[i];\n const delegate = prototype[name];\n if (delegate) {\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n if (!isPropertyWritable(prototypeDesc)) {\n continue;\n }\n prototype[name] = (delegate => {\n const patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nconst isWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope;\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isNode = !('nw' in _global) && typeof _global.process !== 'undefined' && _global.process.toString() === '[object process]';\nconst isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isMix = typeof _global.process !== 'undefined' && _global.process.toString() === '[object process]' && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\nconst zoneSymbolEventNames$1 = {};\nconst enableBeforeunloadSymbol = zoneSymbol('enable_beforeunload');\nconst wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n let eventNameSymbol = zoneSymbolEventNames$1[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n const target = this || event.target || _global;\n const listener = target[eventNameSymbol];\n let result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signature\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n const errorEvent = event;\n result = listener && listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n } else {\n result = listener && listener.apply(this, arguments);\n if (\n // https://github.com/angular/angular/issues/47579\n // https://www.w3.org/TR/2011/WD-html5-20110525/history.html#beforeunloadevent\n // This is the only specific case we should check for. The spec defines that the\n // `returnValue` attribute represents the message to show the user. When the event\n // is created, this attribute must be set to the empty string.\n event.type === 'beforeunload' &&\n // To prevent any breaking changes resulting from this change, given that\n // it was already causing a significant number of failures in G3, we have hidden\n // that behavior behind a global configuration flag. Consumers can enable this\n // flag explicitly if they want the `beforeunload` event to be handled as defined\n // in the specification.\n _global[enableBeforeunloadSymbol] &&\n // The IDL event definition is `attribute DOMString returnValue`, so we check whether\n // `typeof result` is a string.\n typeof result === 'string') {\n event.returnValue = result;\n } else if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = {\n enumerable: true,\n configurable: true\n };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n const originalDescGet = desc.get;\n const originalDescSet = desc.set;\n // slice(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.slice(2);\n let eventNameSymbol = zoneSymbolEventNames$1[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n const previousValue = target[eventNameSymbol];\n if (typeof previousValue === 'function') {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n originalDescSet && originalDescSet.call(target, null);\n target[eventNameSymbol] = newValue;\n if (typeof newValue === 'function') {\n target.addEventListener(eventName, wrapFn, false);\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n const listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n } else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n let value = originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (let i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n } else {\n const onProperties = [];\n for (const prop in obj) {\n if (prop.slice(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (let j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nconst originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n const OriginalClass = _global[className];\n if (!OriginalClass) return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n const a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n const instance = new OriginalClass(function () {});\n let prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob') continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n } else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n } else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n })(prop);\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction patchMethod(target, name, patchFn) {\n let proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n const delegateName = zoneSymbol(name);\n let delegate = null;\n if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n const patchDelegate = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n let setNative = null;\n function scheduleTask(task) {\n const data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, delegate => function (self, args) {\n const meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n } else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n });\n}\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nlet isDetectedIEOrEdge = false;\nlet ieOrEdge = false;\nfunction isIE() {\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n } catch (error) {}\n return false;\n}\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n } catch (error) {}\n return ieOrEdge;\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nfunction isNumber(value) {\n return typeof value === 'number';\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\n// Note that passive event listeners are now supported by most modern browsers,\n// including Chrome, Firefox, Safari, and Edge. There's a pending change that\n// would remove support for legacy browsers by zone.js. Removing `passiveSupported`\n// from the codebase will reduce the final code size for existing apps that still use zone.js.\nlet passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n const options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n }\n });\n // Note: We pass the `options` object as the event handler too. This is not compatible with the\n // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler\n // without an actual handler.\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n } catch (err) {\n passiveSupported = false;\n }\n}\n// an identifier to tell ZoneTask do not create a new invoke closure\nconst OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n};\nconst zoneSymbolEventNames = {};\nconst globalSources = {};\nconst EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\nconst IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\nfunction prepareEventNames(eventName, eventNameToString) {\n const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n}\nfunction patchEventTarget(_global, api, apis, patchOptions) {\n const ADD_EVENT_LISTENER = patchOptions && patchOptions.add || ADD_EVENT_LISTENER_STR;\n const REMOVE_EVENT_LISTENER = patchOptions && patchOptions.rm || REMOVE_EVENT_LISTENER_STR;\n const LISTENERS_EVENT_LISTENER = patchOptions && patchOptions.listeners || 'eventListeners';\n const REMOVE_ALL_LISTENERS_EVENT_LISTENER = patchOptions && patchOptions.rmAll || 'removeAllListeners';\n const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n const PREPEND_EVENT_LISTENER = 'prependListener';\n const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n const invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n const delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = event => delegate.handleEvent(event);\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n // need to try/catch error here, otherwise, the error in one event listener\n // will break the executions of the other event listeners. Also error will\n // not remove the event listener when `once` options is true.\n let error;\n try {\n task.invoke(task, target, [event]);\n } catch (err) {\n error = err;\n }\n const options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n }\n return error;\n };\n function globalCallback(context, event, isCapture) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = context || event.target || _global;\n const tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]];\n if (tasks) {\n const errors = [];\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n const err = invokeTask(tasks[0], target, event);\n err && errors.push(err);\n } else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n const err = invokeTask(copyTasks[i], target, event);\n err && errors.push(err);\n }\n }\n // Since there is only one error, we don't need to schedule microTask\n // to throw the error.\n if (errors.length === 1) {\n throw errors[0];\n } else {\n for (let i = 0; i < errors.length; i++) {\n const err = errors[i];\n api.nativeScheduleMicroTask(() => {\n throw err;\n });\n }\n }\n }\n }\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const globalZoneAwareCallback = function (event) {\n return globalCallback(this, event, false);\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n const globalZoneAwareCaptureCallback = function (event) {\n return globalCallback(this, event, true);\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n let useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n const validateHandler = patchOptions && patchOptions.vh;\n let checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n let returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n let proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n const eventNameToString = patchOptions && patchOptions.eventNameToString;\n // We use a shared global `taskData` to pass data for `scheduleEventTask`,\n // eliminating the need to create a new object solely for passing data.\n // WARNING: This object has a static lifetime, meaning it is not created\n // each time `addEventListener` is called. It is instantiated only once\n // and captured by reference inside the `addEventListener` and\n // `removeEventListener` functions. Do not add any new properties to this\n // object, as doing so would necessitate maintaining the information\n // between `addEventListener` calls.\n const taskData = {};\n const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] = proto[REMOVE_EVENT_LISTENER];\n const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] = proto[LISTENERS_EVENT_LISTENER];\n const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] = proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n let nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] = proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return {\n capture: options,\n passive: true\n };\n }\n if (!options) {\n return {\n passive: true\n };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return {\n ...options,\n passive: true\n };\n }\n return options;\n }\n const customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n /**\n * In the context of events and listeners, this function will be\n * called at the end by `cancelTask`, which, in turn, calls `task.cancelFn`.\n * Cancelling a task is primarily used to remove event listeners from\n * the task target.\n */\n const customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n const symbolEventNames = zoneSymbolEventNames[task.eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (task.removeAbortListener) {\n task.removeAbortListener();\n task.removeAbortListener = null;\n }\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n const customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n const compareTaskCallbackVsDelegate = function (task, delegate) {\n const typeOfDelegate = typeof delegate;\n return typeOfDelegate === 'function' && task.callback === delegate || typeOfDelegate === 'object' && task.originalDelegate === delegate;\n };\n const compare = patchOptions && patchOptions.diff ? patchOptions.diff : compareTaskCallbackVsDelegate;\n const unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')];\n const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n function copyEventListenerOptions(options) {\n if (typeof options === 'object' && options !== null) {\n // We need to destructure the target `options` object since it may\n // be frozen or sealed (possibly provided implicitly by a third-party\n // library), or its properties may be readonly.\n const newOptions = {\n ...options\n };\n // The `signal` option was recently introduced, which caused regressions in\n // third-party scenarios where `AbortController` was directly provided to\n // `addEventListener` as options. For instance, in cases like\n // `document.addEventListener('keydown', callback, abortControllerInstance)`,\n // which is valid because `AbortController` includes a `signal` getter, spreading\n // `{...options}` wouldn't copy the `signal`. Additionally, using `Object.create`\n // isn't feasible since `AbortController` is a built-in object type, and attempting\n // to create a new object directly with it as the prototype might result in\n // unexpected behavior.\n if (options.signal) {\n newOptions.signal = options.signal;\n }\n return newOptions;\n }\n return options;\n }\n const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n return function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n let delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n let isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n const options = copyEventListenerOptions(buildEventListenerOptions(arguments[2], passive));\n const signal = options?.signal;\n if (signal?.aborted) {\n // the signal is an aborted one, just return without attaching the event listener.\n return;\n }\n if (unpatchedEvents) {\n // check unpatched list\n for (let i = 0; i < unpatchedEvents.length; i++) {\n if (eventName === unpatchedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n } else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const once = options && typeof options === 'object' ? options.once : false;\n const zone = Zone.current;\n let symbolEventNames = zoneSymbolEventNames[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames[eventName];\n }\n const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n let existingTasks = target[symbolEventName];\n let isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (let i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n } else {\n existingTasks = target[symbolEventName] = [];\n }\n let source;\n const constructorName = target.constructor['name'];\n const targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource + (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // In the code below, `options` should no longer be reassigned; instead, it\n // should only be mutated. This is because we pass that object to the native\n // `addEventListener`.\n // It's generally recommended to use the same object reference for options.\n // This ensures consistency and avoids potential issues.\n taskData.options = options;\n if (once) {\n // When using `addEventListener` with the `once` option, we don't pass\n // the `once` option directly to the native `addEventListener` method.\n // Instead, we keep the `once` setting and handle it ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n if (signal) {\n // When using `addEventListener` with the `signal` option, we don't pass\n // the `signal` option directly to the native `addEventListener` method.\n // Instead, we keep the `signal` setting and handle it ourselves.\n taskData.options.signal = undefined;\n }\n // The `scheduleEventTask` function will ultimately call `customScheduleGlobal`,\n // which in turn calls the native `addEventListener`. This is why `taskData.options`\n // is updated before scheduling the task, as `customScheduleGlobal` uses\n // `taskData.options` to pass it to the native `addEventListener`.\n const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n if (signal) {\n // after task is scheduled, we need to store the signal back to task.options\n taskData.options.signal = signal;\n // Wrapping `task` in a weak reference would not prevent memory leaks. Weak references are\n // primarily used for preventing strong references cycles. `onAbort` is always reachable\n // as it's an event listener, so its closure retains a strong reference to the `task`.\n const onAbort = () => task.zone.cancelTask(task);\n nativeListener.call(signal, 'abort', onAbort, {\n once: true\n });\n // We need to remove the `abort` listener when the event listener is going to be removed,\n // as it creates a closure that captures `task`. This closure retains a reference to the\n // `task` object even after it goes out of scope, preventing `task` from being garbage\n // collected.\n task.removeAbortListener = () => signal.removeEventListener('abort', onAbort);\n }\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n taskData.options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n } else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const options = arguments[2];\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler && !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && target[symbolEventName];\n // `existingTasks` may not exist if the `addEventListener` was called before\n // it was patched by zone.js. Please refer to the attached issue for\n // clarification, particularly after the `if` condition, before calling\n // the native `removeEventListener`.\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates with capture=false were removed\n // https:// github.com/angular/angular/issues/31643\n // https://github.com/angular/angular/issues/54581\n if (!capture && typeof eventName === 'string') {\n const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n // In all other conditions, when `addEventListener` is called after being\n // patched by zone.js, we would always find an event task on the `EventTarget`.\n // This will trigger `cancelFn` on the `existingTask`, leading to `customCancelGlobal`,\n // which ultimately removes an event listener and cleans up the abort listener\n // (if an `AbortSignal` was provided when scheduling a task).\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // https://github.com/angular/zone.js/issues/930\n // We may encounter a situation where the `addEventListener` was\n // called on the event target before zone.js is loaded, resulting\n // in no task being stored on the event target due to its invocation\n // of the native implementation. In this scenario, we simply need to\n // invoke the native `removeEventListener`.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const listeners = [];\n const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (let i = 0; i < tasks.length; i++) {\n const task = tasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (!eventName) {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n } else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n if (symbolEventNames) {\n const symbolEventName = symbolEventNames[FALSE_STR];\n const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n const tasks = target[symbolEventName];\n const captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n const removeTasks = tasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n const removeTasks = captureTasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n let results = [];\n for (let i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n if (!eventName) {\n const foundTasks = [];\n for (let prop in target) {\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n const tasks = target[prop];\n if (tasks) {\n for (let i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n let symbolEventName = zoneSymbolEventNames[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames[eventName];\n }\n const captureFalseTasks = target[symbolEventName[FALSE_STR]];\n const captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n } else {\n return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) : captureFalseTasks.slice();\n }\n}\nfunction patchEventPrototype(global, api) {\n const Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', delegate => function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n });\n }\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nfunction patchQueueMicrotask(global, api) {\n api.patchMethod(global, 'queueMicrotask', delegate => {\n return function (self, args) {\n Zone.current.scheduleMicroTask('queueMicrotask', args[0]);\n };\n });\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nconst taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n let setNative = null;\n let clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n const tasksByHandleId = {};\n function scheduleTask(task) {\n const data = task.data;\n data.args[0] = function () {\n return task.invoke.apply(this, arguments);\n };\n const handleOrId = setNative.apply(window, data.args);\n // Whlist on Node.js when get can the ID by using `[Symbol.toPrimitive]()` we do\n // to this so that we do not cause potentally leaks when using `setTimeout`\n // since this can be periodic when using `.refresh`.\n if (isNumber(handleOrId)) {\n data.handleId = handleOrId;\n } else {\n data.handle = handleOrId;\n // On Node.js a timeout and interval can be restarted over and over again by using the `.refresh` method.\n data.isRefreshable = isFunction(handleOrId.refresh);\n }\n return task;\n }\n function clearTask(task) {\n const {\n handle,\n handleId\n } = task.data;\n return clearNative.call(window, handle ?? handleId);\n }\n setNative = patchMethod(window, setName, delegate => function (self, args) {\n if (isFunction(args[0])) {\n const options = {\n isRefreshable: false,\n isPeriodic: nameSuffix === 'Interval',\n delay: nameSuffix === 'Timeout' || nameSuffix === 'Interval' ? args[1] || 0 : undefined,\n args: args\n };\n const callback = args[0];\n args[0] = function timer() {\n try {\n return callback.apply(this, arguments);\n } finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n // https://github.com/angular/angular/issues/40387\n // Cleanup tasksByHandleId should be handled before scheduleTask\n // Since some zoneSpec may intercept and doesn't trigger\n // scheduleFn(scheduleTask) provided here.\n const {\n handle,\n handleId,\n isPeriodic,\n isRefreshable\n } = options;\n if (!isPeriodic && !isRefreshable) {\n if (handleId) {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[handleId];\n } else if (handle) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n handle[taskSymbol] = null;\n }\n }\n }\n };\n const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n const {\n handleId,\n handle,\n isRefreshable,\n isPeriodic\n } = task.data;\n if (handleId) {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handleId] = task;\n } else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n if (isRefreshable && !isPeriodic) {\n const originalRefresh = handle.refresh;\n handle.refresh = function () {\n const {\n zone,\n state\n } = task;\n if (state === 'notScheduled') {\n task._state = 'scheduled';\n zone._updateTaskCount(task, 1);\n } else if (state === 'running') {\n task._state = 'scheduling';\n }\n return originalRefresh.call(this);\n };\n }\n }\n return handle ?? handleId ?? task;\n } else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n });\n clearNative = patchMethod(window, cancelName, delegate => function (self, args) {\n const id = args[0];\n let task;\n if (isNumber(id)) {\n // non nodejs env.\n task = tasksByHandleId[id];\n delete tasksByHandleId[id];\n } else {\n // nodejs env ?? other environments.\n task = id?.[taskSymbol];\n if (task) {\n id[taskSymbol] = null;\n } else {\n task = id;\n }\n }\n if (task?.type) {\n if (task.cancelFn) {\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n } else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n });\n}\nfunction patchCustomElements(_global, api) {\n const {\n isBrowser,\n isMix\n } = api.getGlobalObjects();\n if (!isBrowser && !isMix || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n // https://html.spec.whatwg.org/multipage/custom-elements.html#concept-custom-element-definition-lifecycle-callbacks\n const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback', 'formAssociatedCallback', 'formDisabledCallback', 'formResetCallback', 'formStateRestoreCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n}\nfunction eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n const {\n eventNames,\n zoneSymbolEventNames,\n TRUE_STR,\n FALSE_STR,\n ZONE_SYMBOL_PREFIX\n } = api.getGlobalObjects();\n // predefine all __zone_symbol__ + eventName + true/false string\n for (let i = 0; i < eventNames.length; i++) {\n const eventName = eventNames[i];\n const falseEventName = eventName + FALSE_STR;\n const trueEventName = eventName + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n const EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n}\nfunction patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n}\n\n/**\n * @fileoverview\n * @suppress {globalThis}\n */\nfunction filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n const tip = ignoreProperties.filter(ip => ip.target === target);\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n const targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1);\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n const filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\n/**\n * Get all event name properties which the event name startsWith `on`\n * from the target object itself, inherited properties are not considered.\n */\nfunction getOnEventNames(target) {\n return Object.getOwnPropertyNames(target).filter(name => name.startsWith('on') && name.length > 2).map(name => name.substring(2));\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n let patchTargets = [];\n if (isBrowser) {\n const internalWindow = window;\n patchTargets = patchTargets.concat(['Document', 'SVGElement', 'Element', 'HTMLElement', 'HTMLBodyElement', 'HTMLMediaElement', 'HTMLFrameSetElement', 'HTMLFrameElement', 'HTMLIFrameElement', 'HTMLMarqueeElement', 'Worker']);\n const ignoreErrorProperties = isIE() ? [{\n target: internalWindow,\n ignoreProperties: ['error']\n }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, getOnEventNames(internalWindow), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n }\n patchTargets = patchTargets.concat(['XMLHttpRequest', 'XMLHttpRequestEventTarget', 'IDBIndex', 'IDBRequest', 'IDBOpenDBRequest', 'IDBDatabase', 'IDBTransaction', 'IDBCursor', 'WebSocket']);\n for (let i = 0; i < patchTargets.length; i++) {\n const target = _global[patchTargets[i]];\n target && target.prototype && patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties);\n }\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nfunction patchBrowser(Zone) {\n Zone.__load_patch('legacy', global => {\n const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n });\n Zone.__load_patch('timers', global => {\n const set = 'set';\n const clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n });\n Zone.__load_patch('requestAnimationFrame', global => {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n });\n Zone.__load_patch('blocking', (global, Zone) => {\n const blockingMethods = ['alert', 'prompt', 'confirm'];\n for (let i = 0; i < blockingMethods.length; i++) {\n const name = blockingMethods[i];\n patchMethod(global, name, (delegate, symbol, name) => {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n });\n Zone.__load_patch('EventTarget', (global, Zone, api) => {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]);\n }\n });\n Zone.__load_patch('MutationObserver', (global, Zone, api) => {\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n });\n Zone.__load_patch('IntersectionObserver', (global, Zone, api) => {\n patchClass('IntersectionObserver');\n });\n Zone.__load_patch('FileReader', (global, Zone, api) => {\n patchClass('FileReader');\n });\n Zone.__load_patch('on_property', (global, Zone, api) => {\n propertyDescriptorPatch(api, global);\n });\n Zone.__load_patch('customElements', (global, Zone, api) => {\n patchCustomElements(global, api);\n });\n Zone.__load_patch('XHR', (global, Zone) => {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n const XHR_TASK = zoneSymbol('xhrTask');\n const XHR_SYNC = zoneSymbol('xhrSync');\n const XHR_LISTENER = zoneSymbol('xhrListener');\n const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n const XHR_URL = zoneSymbol('xhrURL');\n const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n const XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n const READY_STATE_CHANGE = 'readystatechange';\n const SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n const data = task.data;\n const target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n const listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n const newListener = target[XHR_LISTENER] = () => {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n // Also if the request failed without response (status = 0), the load event handler\n // will not be triggered, in that case, we should also invoke the placeholder callback\n // to close the XMLHttpRequest::send macroTask.\n // https://github.com/angular/angular/issues/38795\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n if (target.status !== 0 && loadTasks && loadTasks.length > 0) {\n const oriInvoke = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n for (let i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke.call(task);\n }\n };\n loadTasks.push(task);\n } else {\n task.invoke();\n }\n } else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n const storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() {}\n function clearTask(task) {\n const data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n });\n const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n } else {\n const options = {\n target: self,\n url: self[XHR_URL],\n isPeriodic: false,\n args: args,\n aborted: false\n };\n const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted && task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n });\n const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n const task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || task.data && task.data.aborted) {\n return;\n }\n task.zone.cancelTask(task);\n } else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n });\n }\n });\n Zone.__load_patch('geolocation', global => {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n });\n Zone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n const eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(eventTask => {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n const evt = new PromiseRejectionEvent(evtName, {\n promise: e.promise,\n reason: e.rejection\n });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] = findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] = findPromiseRejectionHandler('rejectionhandled');\n }\n });\n Zone.__load_patch('queueMicrotask', (global, Zone, api) => {\n patchQueueMicrotask(global, api);\n });\n}\nfunction patchPromise(Zone) {\n Zone.__load_patch('ZoneAwarePromise', (global, Zone, api) => {\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n const ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n const className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n const __symbol__ = api.symbol;\n const _uncaughtPromiseErrors = [];\n const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] !== false;\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n const creationTrace = '__creationTrace__';\n api.onUnhandledError = e => {\n if (api.showUncaughtError()) {\n const rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n } else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = () => {\n while (_uncaughtPromiseErrors.length) {\n const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(() => {\n if (uncaughtPromiseError.throwOriginal) {\n throw uncaughtPromiseError.rejection;\n }\n throw uncaughtPromiseError;\n });\n } catch (error) {\n handleUnhandledRejection(error);\n }\n }\n };\n const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n } catch (err) {}\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n const symbolState = __symbol__('state');\n const symbolValue = __symbol__('value');\n const symbolFinally = __symbol__('finally');\n const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n const symbolParentPromiseState = __symbol__('parentPromiseState');\n const source = 'Promise.then';\n const UNRESOLVED = null;\n const RESOLVED = true;\n const REJECTED = false;\n const REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return v => {\n try {\n resolvePromise(promise, state, v);\n } catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n const once = function () {\n let wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n const TYPE_ERROR = 'Promise resolved with itself';\n const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n const onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n let then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n } catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise && value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) && value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n } else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n } catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n }\n } else {\n promise[symbolState] = state;\n const queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n const trace = Zone.currentTask && Zone.currentTask.data && Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: trace\n });\n }\n }\n for (let i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n let uncaughtPromiseError = value;\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) + (value && value.stack ? '\\n' + value.stack : ''));\n } catch (err) {\n uncaughtPromiseError = err;\n }\n if (isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // use the value instead of wrapping it.\n uncaughtPromiseError.throwOriginal = true;\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n const handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, {\n rejection: promise[symbolValue],\n promise: promise\n });\n }\n } catch (err) {}\n promise[symbolState] = REJECTED;\n for (let i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n const promiseState = promise[symbolState];\n const delegate = promiseState ? typeof onFulfilled === 'function' ? onFulfilled : forwardResolution : typeof onRejected === 'function' ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, () => {\n try {\n const parentPromiseValue = promise[symbolValue];\n const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ? [] : [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n } catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n const noop = function () {};\n const AggregateError = global.AggregateError;\n class ZoneAwarePromise {\n static toString() {\n return ZONE_AWARE_PROMISE_TO_STRING;\n }\n static resolve(value) {\n if (value instanceof ZoneAwarePromise) {\n return value;\n }\n return resolvePromise(new this(null), RESOLVED, value);\n }\n static reject(error) {\n return resolvePromise(new this(null), REJECTED, error);\n }\n static withResolvers() {\n const result = {};\n result.promise = new ZoneAwarePromise((res, rej) => {\n result.resolve = res;\n result.reject = rej;\n });\n return result;\n }\n static any(values) {\n if (!values || typeof values[Symbol.iterator] !== 'function') {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n const promises = [];\n let count = 0;\n try {\n for (let v of values) {\n count++;\n promises.push(ZoneAwarePromise.resolve(v));\n }\n } catch (err) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n if (count === 0) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n let finished = false;\n const errors = [];\n return new ZoneAwarePromise((resolve, reject) => {\n for (let i = 0; i < promises.length; i++) {\n promises[i].then(v => {\n if (finished) {\n return;\n }\n finished = true;\n resolve(v);\n }, err => {\n errors.push(err);\n count--;\n if (count === 0) {\n finished = true;\n reject(new AggregateError(errors, 'All promises were rejected'));\n }\n });\n }\n });\n }\n static race(values) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n resolve(value);\n }\n function onReject(error) {\n reject(error);\n }\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n }\n static all(values) {\n return ZoneAwarePromise.allWithCallback(values);\n }\n static allSettled(values) {\n const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: value => ({\n status: 'fulfilled',\n value\n }),\n errorCallback: err => ({\n status: 'rejected',\n reason: err\n })\n });\n }\n static allWithCallback(values, callback) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n let unresolvedCount = 2;\n let valueIndex = 0;\n const resolvedValues = [];\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n const curValueIndex = valueIndex;\n try {\n value.then(value => {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, err => {\n if (!callback) {\n reject(err);\n } else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n } catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n }\n constructor(executor) {\n const promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n const onceWrapper = once();\n executor && executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED)));\n } catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n get [Symbol.toStringTag]() {\n return 'Promise';\n }\n get [Symbol.species]() {\n return ZoneAwarePromise;\n }\n then(onFulfilled, onRejected) {\n // We must read `Symbol.species` safely because `this` may be anything. For instance, `this`\n // may be an object without a prototype (created through `Object.create(null)`); thus\n // `this.constructor` will be undefined. One of the use cases is SystemJS creating\n // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty\n // object and copies promise properties into that object (within the `getOrCreateLoad`\n // function). The zone.js then checks if the resolved value has the `then` method and\n // invokes it with the `value` context. Otherwise, this will throw an error: `TypeError:\n // Cannot read properties of undefined (reading 'Symbol(Symbol.species)')`.\n let C = this.constructor?.[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n } else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n }\n catch(onRejected) {\n return this.then(null, onRejected);\n }\n finally(onFinally) {\n // See comment on the call to `then` about why thee `Symbol.species` is safely accessed.\n let C = this.constructor?.[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n } else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n }\n }\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n const NativePromise = global[symbolPromise] = global['Promise'];\n global['Promise'] = ZoneAwarePromise;\n const symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n const proto = Ctor.prototype;\n const prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n const originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n const wrapped = new ZoneAwarePromise((resolve, reject) => {\n originalThen.call(this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function (self, args) {\n let resultPromise = fn.apply(self, args);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n let ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n patchMethod(global, 'fetch', delegate => zoneify(delegate));\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n });\n}\nfunction patchToString(Zone) {\n // override Function.prototype.toString to make zone.js patched function\n // look like native function\n Zone.__load_patch('toString', global => {\n // patch Func.prototype.toString to let them look like native\n const originalFunctionToString = Function.prototype.toString;\n const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n const PROMISE_SYMBOL = zoneSymbol('Promise');\n const ERROR_SYMBOL = zoneSymbol('Error');\n const newFunctionToString = function toString() {\n if (typeof this === 'function') {\n const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n } else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n const nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n const nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n const originalObjectToString = Object.prototype.toString;\n const PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (typeof Promise === 'function' && this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n });\n}\nfunction patchCallbacks(api, target, targetName, method, callbacks) {\n const symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n const nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n const source = `${targetName}.${method}::` + callback;\n const prototype = opts.prototype;\n // Note: the `patchCallbacks` is used for patching the `document.registerElement` and\n // `customElements.define`. We explicitly wrap the patching code into try-catch since\n // callbacks may be already patched by other web components frameworks (e.g. LWC), and they\n // make those properties non-writable. This means that patching callback will throw an error\n // `cannot assign to read-only property`. See this code as an example:\n // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186\n // We don't want to stop the application rendering if we couldn't patch some\n // callback, e.g. `attributeChangedCallback`.\n try {\n if (prototype.hasOwnProperty(callback)) {\n const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n } else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n } else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n } catch {\n // Note: we leave the catch block empty since there's no way to handle the error related\n // to non-writable property.\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n}\nfunction patchUtil(Zone) {\n Zone.__load_patch('util', (global, Zone, api) => {\n // Collect native event names by looking at properties\n // on the global namespace, e.g. 'onclick'.\n const eventNames = getOnEventNames(global);\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS`\n // to define which events will not be patched by `Zone.js`. In newer version (>=0.9.0), we\n // change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep the name consistent with\n // angular repo. The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be\n // supported for backwards compatibility.\n const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] = global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = () => ({\n globalSources,\n zoneSymbolEventNames,\n eventNames,\n isBrowser,\n isMix,\n isNode,\n TRUE_STR,\n FALSE_STR,\n ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR,\n REMOVE_EVENT_LISTENER_STR\n });\n });\n}\nfunction patchCommon(Zone) {\n patchPromise(Zone);\n patchToString(Zone);\n patchUtil(Zone);\n}\nconst Zone$1 = loadZone();\npatchCommon(Zone$1);\npatchBrowser(Zone$1);","/**\n * @license Angular v18.2.13\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, AnimationMetadataType, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError, Injectable } from '@angular/core';\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new ɵRuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new ɵRuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new ɵRuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new ɵRuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode && `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new ɵRuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new ɵRuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new ɵRuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new ɵRuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode && \"animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))\");\n}\nfunction invalidDefinition() {\n return new ɵRuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new ɵRuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode && `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new ɵRuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidProperty(prop) {\n return new ɵRuntimeError(3009 /* RuntimeErrorCode.INVALID_PROPERTY */, ngDevMode && `The provided animation property \"${prop}\" is not a supported CSS property for animations`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new ɵRuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode && `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new ɵRuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new ɵRuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new ɵRuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new ɵRuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new ɵRuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new ɵRuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode && `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new ɵRuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new ɵRuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new ɵRuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode && `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.map(err => err.message).join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode && `Unable to animate due to the following errors:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode && `Unable to build the animation due to the following errors: ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && \"The requested animation doesn't exist or has already been destroyed\");\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode && `Unable to create the animation due to the following errors:${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode && `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode && `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode && `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode && `Unable to process animations due to the following failed trigger transitions\\n ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode && `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map(err => err.message).join('\\n- ')}`);\n}\n\n/**\n * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = /*#__PURE__*/new Set(['-moz-outline-radius', '-moz-outline-radius-bottomleft', '-moz-outline-radius-bottomright', '-moz-outline-radius-topleft', '-moz-outline-radius-topright', '-ms-grid-columns', '-ms-grid-rows', '-webkit-line-clamp', '-webkit-text-fill-color', '-webkit-text-stroke', '-webkit-text-stroke-color', 'accent-color', 'all', 'backdrop-filter', 'background', 'background-color', 'background-position', 'background-size', 'block-size', 'border', 'border-block-end', 'border-block-end-color', 'border-block-end-width', 'border-block-start', 'border-block-start-color', 'border-block-start-width', 'border-bottom', 'border-bottom-color', 'border-bottom-left-radius', 'border-bottom-right-radius', 'border-bottom-width', 'border-color', 'border-end-end-radius', 'border-end-start-radius', 'border-image-outset', 'border-image-slice', 'border-image-width', 'border-inline-end', 'border-inline-end-color', 'border-inline-end-width', 'border-inline-start', 'border-inline-start-color', 'border-inline-start-width', 'border-left', 'border-left-color', 'border-left-width', 'border-radius', 'border-right', 'border-right-color', 'border-right-width', 'border-start-end-radius', 'border-start-start-radius', 'border-top', 'border-top-color', 'border-top-left-radius', 'border-top-right-radius', 'border-top-width', 'border-width', 'bottom', 'box-shadow', 'caret-color', 'clip', 'clip-path', 'color', 'column-count', 'column-gap', 'column-rule', 'column-rule-color', 'column-rule-width', 'column-width', 'columns', 'filter', 'flex', 'flex-basis', 'flex-grow', 'flex-shrink', 'font', 'font-size', 'font-size-adjust', 'font-stretch', 'font-variation-settings', 'font-weight', 'gap', 'grid-column-gap', 'grid-gap', 'grid-row-gap', 'grid-template-columns', 'grid-template-rows', 'height', 'inline-size', 'input-security', 'inset', 'inset-block', 'inset-block-end', 'inset-block-start', 'inset-inline', 'inset-inline-end', 'inset-inline-start', 'left', 'letter-spacing', 'line-clamp', 'line-height', 'margin', 'margin-block-end', 'margin-block-start', 'margin-bottom', 'margin-inline-end', 'margin-inline-start', 'margin-left', 'margin-right', 'margin-top', 'mask', 'mask-border', 'mask-position', 'mask-size', 'max-block-size', 'max-height', 'max-inline-size', 'max-lines', 'max-width', 'min-block-size', 'min-height', 'min-inline-size', 'min-width', 'object-position', 'offset', 'offset-anchor', 'offset-distance', 'offset-path', 'offset-position', 'offset-rotate', 'opacity', 'order', 'outline', 'outline-color', 'outline-offset', 'outline-width', 'padding', 'padding-block-end', 'padding-block-start', 'padding-bottom', 'padding-inline-end', 'padding-inline-start', 'padding-left', 'padding-right', 'padding-top', 'perspective', 'perspective-origin', 'right', 'rotate', 'row-gap', 'scale', 'scroll-margin', 'scroll-margin-block', 'scroll-margin-block-end', 'scroll-margin-block-start', 'scroll-margin-bottom', 'scroll-margin-inline', 'scroll-margin-inline-end', 'scroll-margin-inline-start', 'scroll-margin-left', 'scroll-margin-right', 'scroll-margin-top', 'scroll-padding', 'scroll-padding-block', 'scroll-padding-block-end', 'scroll-padding-block-start', 'scroll-padding-bottom', 'scroll-padding-inline', 'scroll-padding-inline-end', 'scroll-padding-inline-start', 'scroll-padding-left', 'scroll-padding-right', 'scroll-padding-top', 'scroll-snap-coordinate', 'scroll-snap-destination', 'scrollbar-color', 'shape-image-threshold', 'shape-margin', 'shape-outside', 'tab-size', 'text-decoration', 'text-decoration-color', 'text-decoration-thickness', 'text-emphasis', 'text-emphasis-color', 'text-indent', 'text-shadow', 'text-underline-offset', 'top', 'transform', 'transform-origin', 'translate', 'vertical-align', 'visibility', 'width', 'word-spacing', 'z-index', 'zoom']);\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(normalizer, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach(kf => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = isSameOffset && previousKeyframe || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue = normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return {\n element,\n triggerName,\n fromState,\n toState,\n phaseName,\n totalTime,\n disabled: !!disabled\n };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nconst documentElement = /* @__PURE__ */(() => typeof document === 'undefined' ? null : document.documentElement)();\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host || null; // consider host to support shadow DOM\n if (parent === documentElement) {\n return null;\n }\n return parent;\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? 'WebkitAppearance' in _CACHED_BODY.style : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nfunction containsElement(elm1, elm2) {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n}\nfunction invokeQuery(element, selector, multi) {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n}\nfunction hypenatePropsKeys(original) {\n const newMap = new Map();\n original.forEach((val, prop) => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newMap.set(newProp, val);\n });\n return newMap;\n}\n\n/**\n * @publicApi\n *\n * `AnimationDriver` implentation for Noop animations\n */\nlet NoopAnimationDriver = /*#__PURE__*/(() => {\n class NoopAnimationDriver {\n /**\n * @returns Whether `prop` is a valid CSS property\n */\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n /**\n *\n * @returns Whether elm1 contains elm2.\n */\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n /**\n * @returns Rhe parent of the given element or `null` if the element is the `document`\n */\n getParentElement(element) {\n return getParentElement(element);\n }\n /**\n * @returns The result of the query selector on the element. The array will contain up to 1 item\n * if `multi` is `false`.\n */\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n /**\n * @returns The `defaultValue` or empty string\n */\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n /**\n * @returns An `NoopAnimationPlayer`\n */\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n static {\n this.ɵfac = function NoopAnimationDriver_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NoopAnimationDriver)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NoopAnimationDriver,\n factory: NoopAnimationDriver.ɵfac\n });\n }\n }\n return NoopAnimationDriver;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * @publicApi\n */\nclass AnimationDriver {\n /**\n * @deprecated Use the NoopAnimationDriver class.\n */\n static {\n this.NOOP = /*#__PURE__*/new NoopAnimationDriver();\n }\n}\nclass AnimationStyleNormalizer {}\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n }\n}\nconst ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number') return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2) return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default:\n // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ? timings : parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return {\n duration: 0,\n delay: 0,\n easing: ''\n };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n } else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return {\n duration,\n delay,\n easing\n };\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map(kf => new Map(Object.entries(kf)));\n}\nfunction normalizeStyles(styles) {\n return Array.isArray(styles) ? new Map(...styles) : new Map(styles);\n}\nfunction setStyles(element, styles, formerStyles) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n}\nfunction eraseStyles(element, styles) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1) return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(varName => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = /*#__PURE__*/new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = `${value}`;\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach(prop => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case AnimationMetadataType.Trigger:\n return visitor.visitTrigger(node, context);\n case AnimationMetadataType.State:\n return visitor.visitState(node, context);\n case AnimationMetadataType.Transition:\n return visitor.visitTransition(node, context);\n case AnimationMetadataType.Sequence:\n return visitor.visitSequence(node, context);\n case AnimationMetadataType.Group:\n return visitor.visitGroup(node, context);\n case AnimationMetadataType.Animate:\n return visitor.visitAnimate(node, context);\n case AnimationMetadataType.Keyframes:\n return visitor.visitKeyframes(node, context);\n case AnimationMetadataType.Style:\n return visitor.visitStyle(node, context);\n case AnimationMetadataType.Reference:\n return visitor.visitReference(node, context);\n case AnimationMetadataType.AnimateChild:\n return visitor.visitAnimateChild(node, context);\n case AnimationMetadataType.AnimateRef:\n return visitor.visitAnimateRef(node, context);\n case AnimationMetadataType.Query:\n return visitor.visitQuery(node, context);\n case AnimationMetadataType.Stagger:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\n}\nconst DIMENSIONAL_PROP_SET = /*#__PURE__*/new Set(['width', 'height', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight', 'left', 'top', 'bottom', 'right', 'fontSize', 'outlineWidth', 'outlineOffset', 'paddingTop', 'paddingLeft', 'paddingBottom', 'paddingRight', 'marginTop', 'marginLeft', 'marginBottom', 'marginRight', 'borderRadius', 'borderWidth', 'borderTopWidth', 'borderLeftWidth', 'borderRightWidth', 'borderBottomWidth', 'textIndent', 'perspective']);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n } else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\n }\n}\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings.filter(Boolean).map(warning => warning).join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\n }\n}\nconst ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(str => parseInnerTransitionStr(str, expressions, errors));\n } else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n return;\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = /*#__PURE__*/new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = /*#__PURE__*/new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\nconst SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = /*#__PURE__*/new RegExp(`s*${SELF_TOKEN}s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = context.queryCount = 0;\n let depCount = context.depCount = 0;\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach(def => {\n this._resetContextStyleTimingState(context);\n if (def.type == AnimationMetadataType.State) {\n const stateDef = def;\n const name = stateDef.name;\n name.toString().split(/\\s*,\\s*/).forEach(n => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n } else if (def.type == AnimationMetadataType.Transition) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n } else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: AnimationMetadataType.Trigger,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = metadata.options && metadata.options.params || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach(style => {\n if (style instanceof Map) {\n style.forEach(value => {\n extractStyleParams(value).forEach(sub => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n context.errors.push(invalidState(metadata.name, [...missingSubs.values()]));\n }\n }\n return {\n type: AnimationMetadataType.State,\n name: metadata.name,\n style: styleAst,\n options: astParams ? {\n params: astParams\n } : null\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: AnimationMetadataType.Transition,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitSequence(metadata, context) {\n return {\n type: AnimationMetadataType.Sequence,\n steps: metadata.steps.map(s => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map(step => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: AnimationMetadataType.Group,\n steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == AnimationMetadataType.Keyframes) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n } else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: AnimationMetadataType.Animate,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n } else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n } else {\n styles.push(new Map(Object.entries(styleTuple)));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach(styleData => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: AnimationMetadataType.Style,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(tuple => {\n if (typeof tuple === 'string') return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime && endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, {\n startTime,\n endTime\n });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = {\n type: AnimationMetadataType.Keyframes,\n styles: [],\n options: null\n };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map(styles => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n } else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? i == limit ? 1 : generatedOffset * i : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: AnimationMetadataType.Reference,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: AnimationMetadataType.AnimateChild,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: AnimationMetadataType.AnimateRef,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = metadata.options || {};\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector = parentSelector.length ? parentSelector + ' ' + selector : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: AnimationMetadataType.Query,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full' ? {\n duration: 0,\n delay: 0,\n easing: 'full'\n } : resolveTiming(metadata.timings, context.errors, true);\n return {\n type: AnimationMetadataType.Stagger,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find(token => token == SELF_TOKEN) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR).replace(/@\\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.slice(1)).replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? {\n ...obj\n } : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = new Map();\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string') return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(styleTuple => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n } else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = {\n ...options\n };\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n } else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return {\n duration,\n delay,\n easing\n };\n}\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline\n };\n}\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\n }\n}\nconst ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = /*#__PURE__*/new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = /*#__PURE__*/new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter(timeline => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ? timelines.map(timeline => timeline.buildKeyframes()) : [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {\n for (const animationRefOptions of animationsRefsOptions) {\n const animationDelay = animationRefOptions?.delay;\n if (animationDelay) {\n const animationDelayValue = typeof animationDelay === 'number' ? animationDelay : resolveTimingValue(interpolateParams(animationDelay, animationRefOptions?.params ?? {}, context.errors));\n innerContext.delayNextStep(animationDelayValue);\n }\n }\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(instruction => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime = Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == AnimationMetadataType.Style) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(s => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(s => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n } else {\n return {\n duration: ast.duration,\n delay: ast.delay,\n easing: ast.easing\n };\n }\n }\n visitAnimate(ast, context) {\n const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == AnimationMetadataType.Keyframes) {\n this.visitKeyframes(style, context);\n } else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = timings && timings.easing || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n } else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = context.currentTimeline.duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(step => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = ast.options || {};\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay && (context.previousNode.type === AnimationMetadataType.Style || startTime == 0 && context.currentTimeline.hasCurrentStyleProperties())) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime = tl.currentTime - startingTime + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options) return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach(name => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = options['params'] = {};\n Object.keys(oldParams).forEach(name => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) {\n // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) : elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this.easing = null;\n this._previousKeyframe = new Map();\n this._currentKeyframe = new Map();\n this._keyframes = new Map();\n this._styleSummary = new Map();\n this._localTimelineStyles = new Map();\n this._pendingStyles = new Map();\n this._backFill = new Map();\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n } else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, {\n time: this.currentTime,\n value\n });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = options && options.params || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0) return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = new Map([...this._backFill, ...keyframe]);\n finalKeyframe.forEach((value, prop) => {\n if (value === ɵPRE_STYLE) {\n preStyleProps.add(prop);\n } else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = [...preStyleProps.values()];\n const postProps = [...postStyleProps.values()];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = {\n duration: timings.duration,\n delay: timings.delay,\n easing: timings.easing\n };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let {\n delay,\n duration,\n easing\n } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = new Map(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = new Map(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n delay=1000, duration=1000, keyframes = 0 .5 1\n turns into\n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = new Map(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach(token => {\n if (token === '*') {\n allProperties ??= allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n } else {\n for (let [prop, val] of token) {\n styles.set(prop, val);\n }\n }\n });\n return styles;\n}\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors\n };\n}\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName?.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: this.ast.options?.delay\n };\n const timelines = skipAstBuild ? [] : buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach(tl => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(tl => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach(prop => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach(prop => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, [...queriedElements.values()], preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const allowedNonAnimatableProps = new Set([\n // 'easing' is a utility/synthetic prop we use to represent\n // easing functions, it represents a property of the animation\n // which is not animatable but different values can be used\n // in different steps\n 'easing']);\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({\n keyframes\n }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n const entriesToCheck = Array.from(keyframe.entries()).filter(([prop]) => !allowedNonAnimatableProps.has(prop));\n for (const [prop, value] of entriesToCheck) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n } else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` + ' not animatable properties: ' + Array.from(invalidNonAnimatableProps).join(', ') + '\\n' + '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(fn => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = {\n ...defaults\n };\n Object.entries(userParams).forEach(([key, value]) => {\n if (value != null) {\n result[key] = value;\n }\n });\n return result;\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = applyParamDefaults(params, this.defaultParams);\n this.styles.styles.forEach(value => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(prop, val);\n });\n }\n });\n return finalStyles;\n }\n}\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = new Map();\n ast.states.forEach(ast => {\n const defaultParams = ast.options && ast.options.params || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(ast => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find(f => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = {\n type: AnimationMetadataType.Sequence,\n steps: [],\n options: null\n };\n const transition = {\n type: AnimationMetadataType.Transition,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n } else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\n }\n}\nconst EMPTY_INSTRUCTION_MAP = /*#__PURE__*/new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = new Map();\n this._playersById = new Map();\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n } else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._normalizer, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(inst => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach(prop => styles.set(prop, null));\n });\n } else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map(i => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => {};\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = args[0] || {};\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n }\n}\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n get params() {\n return this.options.params;\n }\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n // we drop the value property from options.\n const {\n value,\n ...options\n } = input;\n this.options = options;\n } else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach(prop => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = /*#__PURE__*/new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = new Map();\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = {\n name,\n phase,\n callback\n };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n } else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = new Map());\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n } else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach(player => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback) return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition\n });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach(stateMap => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter(entry => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(player => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(elm => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG]) return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(ns => ns.triggerLeaveAnimation(elm, context, false, true));\n } else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach(elm => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach(listener => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName)) return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true)) return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n } else {\n let parent = element;\n while (parent = parent.parentNode) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n } else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach(entry => {\n const player = entry.player;\n if (player.destroyed) return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach(listener => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n } else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach(p => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n}\nclass TransitionAnimationEngine {\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n constructor(bodyNode, driver, _normalizer) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => {};\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach(ns => {\n ns.players.forEach(player => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n } else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n } else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId) return;\n this.afterFlush(() => {});\n this.afterFlushAnimationsDone(() => {\n const ns = this._fetchNamespace(namespaceId);\n this.namespacesByHostElement.delete(ns.hostElement);\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n ns.destroy(context);\n delete this._namespaceLookup[namespaceId];\n });\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element)) return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n } else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, context) {\n if (isElementNode(element)) {\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n } else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n } else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => {};\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(element => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0) return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(element => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach(player => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n } else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(player => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise(resolve => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n } else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (element.classList?.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length && (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n } finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n } else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(fn => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach(fn => fn());\n });\n } else {\n quietFns.forEach(fn => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach(node => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(elm => mergedLeaveNodes.add(elm));\n } else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n allLeaveNodes.forEach(element => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues && details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach(tl => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = {\n instruction,\n player,\n element\n };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(element => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach(instruction => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach(player => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach(entry => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(player => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(prevPlayer => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter(node => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(node => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach(node => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...(post?.entries() ?? []), ...(pre?.entries() ?? [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(entry => {\n const {\n element,\n player,\n instruction\n } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while (elm = elm.parentNode) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(parent => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n } else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n } else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach(player => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(player => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n } else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation) continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter(p => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n } else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(player => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n } else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(player => {\n if (player.queued) return;\n if (!isRemovalAnimation && player.triggerName != triggerName) return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(player => {\n if (namespaceId && namespaceId != player.namespaceId) return false;\n if (triggerName && triggerName != player.triggerName) return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(player => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map(timelineInstruction => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried) return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY).map(p => p.getRealPlayer())).filter(p => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this._normalizer, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(player => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(element => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = new Map();\n this.destroyed = false;\n this.parentPlayer = null;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer) return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach(callback => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach(element => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach(prop => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach(element => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach(root => rootMap.set(root, []));\n if (nodes.length == 0) return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node) return NULL_NODE;\n let root = localRootMap.get(node);\n if (root) return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) {\n // ngIf inside @trigger\n root = parent;\n } else if (nodeSet.has(parent)) {\n // ngIf inside ngIf\n root = NULL_NODE;\n } else {\n // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(node => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n element.classList?.add(className);\n}\nfunction removeClass(element, className) {\n element.classList?.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n } else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length) return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop]) return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry) return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(data => preEntry.add(data));\n } else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\nclass AnimationEngine {\n constructor(doc, _driver, _normalizer) {\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => {};\n this._transitionEngine = new TransitionAnimationEngine(doc.body, _driver, _normalizer);\n this._timelineEngine = new TimelineAnimationEngine(doc.body, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context) {\n this._transitionEngine.removeNode(namespaceId, element, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n } else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return [...this._transitionEngine.players, ...this._timelineEngine.players];\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n afterFlushAnimationsDone(cb) {\n this._transitionEngine.afterFlushAnimationsDone(cb);\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n } else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return startStyles || endStyles ? new SpecialCasedStyles(element, startStyles, endStyles) : null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n static {\n this.initialStylesByElement = /*#__PURE__*/new WeakMap();\n }\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* SpecialCasedStylesState.Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = new Map());\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n}\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = new Map();\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized) return;\n this._initialized = true;\n const keyframes = this.keyframes;\n // @ts-expect-error overwriting a readonly property\n this.domPlayer = this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n const onFinish = () => this._onFinish();\n this.domPlayer.addEventListener('finish', onFinish);\n this.onDestroy(() => {\n // We must remove the `finish` event listener once an animation has completed all its\n // iterations. This action is necessary to prevent a memory leak since the listener captures\n // `this`, creating a closure that prevents `this` from being garbage collected.\n this.domPlayer.removeEventListener('finish', onFinish);\n });\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n } else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach(frame => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n return element.animate(this._convertKeyframesToObject(keyframes), options);\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n // tsc is complaining with TS2362 without the conversion to number\n return +(this.domPlayer.currentTime ?? 0) / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return computeStyle(element, prop);\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = {\n duration,\n delay,\n fill\n };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = previousPlayers.filter(player => player instanceof WebAnimationsPlayer);\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(player => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map(styles => new Map(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\n }\n}\nfunction createEngine(type, doc) {\n // TODO: find a way to make this tree shakable.\n if (type === 'noop') {\n return new AnimationEngine(doc, new NoopAnimationDriver(), new NoopAnimationStyleNormalizer());\n }\n return new AnimationEngine(doc, new WebAnimationsDriver(), new WebAnimationsStyleNormalizer());\n}\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) : startingStyles;\n const dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) : destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\n }\n return result;\n }\n}\nconst ANIMATION_PREFIX = '@';\nconst DISABLE_ANIMATIONS_FLAG = '@.disabled';\nclass BaseAnimationRenderer {\n constructor(namespaceId, delegate, engine, _onDestroy) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this._onDestroy = _onDestroy;\n // We need to explicitly type this property because of an api-extractor bug\n // See https://github.com/microsoft/rushstack/issues/4390\n this.ɵtype = 0 /* AnimationRendererType.Regular */;\n }\n get data() {\n return this.delegate.data;\n }\n destroyNode(node) {\n this.delegate.destroyNode?.(node);\n }\n destroy() {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.engine.afterFlushAnimationsDone(() => {\n // Call the renderer destroy method after the animations has finished as otherwise\n // styles will be removed too early which will cause an unstyled animation.\n queueMicrotask(() => {\n this.delegate.destroy();\n });\n });\n this._onDestroy?.();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n }\n insertBefore(parent, newChild, refChild, isMove = true) {\n this.delegate.insertBefore(parent, newChild, refChild);\n // If `isMove` true than we should animate this insert.\n this.engine.onInsert(this.namespaceId, newChild, parent, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n // Prior to the changes in #57203, this method wasn't being called at all by `core` if the child\n // doesn't have a parent. There appears to be some animation-specific downstream logic that\n // depends on the null check happening before the animation engine. This check keeps the old\n // behavior while allowing `core` to not have to check for the parent element anymore.\n if (this.parentNode(oldChild)) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate);\n }\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n } else {\n this.delegate.setProperty(el, name, value);\n }\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n }\n disableAnimations(element, value) {\n this.engine.disableAnimations(element, value);\n }\n}\nclass AnimationRenderer extends BaseAnimationRenderer {\n constructor(factory, namespaceId, delegate, engine, onDestroy) {\n super(namespaceId, delegate, engine, onDestroy);\n this.factory = factory;\n this.namespaceId = namespaceId;\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, value);\n } else {\n this.engine.process(this.namespaceId, el, name.slice(1), value);\n }\n } else {\n this.delegate.setProperty(el, name, value);\n }\n }\n listen(target, eventName, callback) {\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n const element = resolveElementFromTarget(target);\n let name = eventName.slice(1);\n let phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name.charAt(0) != ANIMATION_PREFIX) {\n [name, phase] = parseTriggerCallbackName(name);\n }\n return this.engine.listen(this.namespaceId, element, name, phase, event => {\n const countId = event['_data'] || -1;\n this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n }\n}\nfunction resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n}\nfunction parseTriggerCallbackName(triggerName) {\n const dotIndex = triggerName.indexOf('.');\n const trigger = triggerName.substring(0, dotIndex);\n const phase = triggerName.slice(dotIndex + 1);\n return [trigger, phase];\n}\nclass AnimationRendererFactory {\n constructor(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n this._cdRecurDepth = 0;\n engine.onRemovalComplete = (element, delegate) => {\n delegate?.removeChild(null, element);\n };\n }\n createRenderer(hostElement, type) {\n const EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n const delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type?.data?.['animation']) {\n const cache = this._rendererCache;\n let renderer = cache.get(delegate);\n if (!renderer) {\n // Ensure that the renderer is removed from the cache on destroy\n // since it may contain references to detached DOM nodes.\n const onRendererDestroy = () => cache.delete(delegate);\n renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine, onRendererDestroy);\n // only cache this result when the base renderer is used\n cache.set(delegate, renderer);\n }\n return renderer;\n }\n const componentId = type.id;\n const namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n const registerTrigger = trigger => {\n if (Array.isArray(trigger)) {\n trigger.forEach(registerTrigger);\n } else {\n this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);\n }\n };\n const animationTriggers = type.data['animation'];\n animationTriggers.forEach(registerTrigger);\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n }\n begin() {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n }\n _scheduleCountTask() {\n queueMicrotask(() => {\n this._microtaskId++;\n });\n }\n /** @internal */\n scheduleListenerCallback(count, fn, data) {\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(() => fn(data));\n return;\n }\n const animationCallbacksBuffer = this._animationCallbacksBuffer;\n if (animationCallbacksBuffer.length == 0) {\n queueMicrotask(() => {\n this._zone.run(() => {\n animationCallbacksBuffer.forEach(tuple => {\n const [fn, data] = tuple;\n fn(data);\n });\n this._animationCallbacksBuffer = [];\n });\n });\n }\n animationCallbacksBuffer.push([fn, data]);\n }\n end() {\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component instead has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(() => {\n this._scheduleCountTask();\n this.engine.flush(this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n }\n whenRenderingDone() {\n return this.engine.whenRenderingDone();\n }\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, NoopAnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationRenderer as ɵAnimationRenderer, AnimationRendererFactory as ɵAnimationRendererFactory, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, BaseAnimationRenderer as ɵBaseAnimationRenderer, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, camelCaseToDashCase as ɵcamelCaseToDashCase, containsElement as ɵcontainsElement, createEngine as ɵcreateEngine, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty, validateWebAnimatableStyleProperty as ɵvalidateWebAnimatableStyleProperty };\n","/**\n * @license Angular v18.2.13\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE, NgModule, ɵperformanceMarkFeature } from '@angular/core';\nexport { ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2, BrowserModule } from '@angular/platform-browser';\nimport * as i1 from '@angular/animations/browser';\nimport { ɵAnimationEngine, ɵWebAnimationsStyleNormalizer, ɵAnimationRendererFactory, ɵAnimationStyleNormalizer, AnimationDriver, ɵWebAnimationsDriver, NoopAnimationDriver } from '@angular/animations/browser';\nimport { DOCUMENT } from '@angular/common';\nlet InjectableAnimationEngine = /*#__PURE__*/(() => {\n class InjectableAnimationEngine extends ɵAnimationEngine {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(doc, driver, normalizer) {\n super(doc, driver, normalizer);\n }\n ngOnDestroy() {\n this.flush();\n }\n static {\n this.ɵfac = function InjectableAnimationEngine_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InjectableAnimationEngine)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1.AnimationDriver), i0.ɵɵinject(i1.ɵAnimationStyleNormalizer));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InjectableAnimationEngine,\n factory: InjectableAnimationEngine.ɵfac\n });\n }\n }\n return InjectableAnimationEngine;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction instantiateDefaultStyleNormalizer() {\n return new ɵWebAnimationsStyleNormalizer();\n}\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new ɵAnimationRendererFactory(renderer, engine, zone);\n}\nconst SHARED_ANIMATION_PROVIDERS = [{\n provide: ɵAnimationStyleNormalizer,\n useFactory: instantiateDefaultStyleNormalizer\n}, {\n provide: ɵAnimationEngine,\n useClass: InjectableAnimationEngine\n}, {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [ɵDomRendererFactory2, ɵAnimationEngine, NgZone]\n}];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nconst BROWSER_ANIMATIONS_PROVIDERS = [{\n provide: AnimationDriver,\n useFactory: () => new ɵWebAnimationsDriver()\n}, {\n provide: ANIMATION_MODULE_TYPE,\n useValue: 'BrowserAnimations'\n}, ...SHARED_ANIMATION_PROVIDERS];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nconst BROWSER_NOOP_ANIMATIONS_PROVIDERS = [{\n provide: AnimationDriver,\n useClass: NoopAnimationDriver\n}, {\n provide: ANIMATION_MODULE_TYPE,\n useValue: 'NoopAnimations'\n}, ...SHARED_ANIMATION_PROVIDERS];\n\n/**\n * Exports `BrowserModule` with additional dependency-injection providers\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\nlet BrowserAnimationsModule = /*#__PURE__*/(() => {\n class BrowserAnimationsModule {\n /**\n * Configures the module based on the specified object.\n *\n * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\n * @see {@link BrowserAnimationsModuleConfig}\n *\n * @usageNotes\n * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\n * function as follows:\n * ```\n * @NgModule({\n * imports: [BrowserAnimationsModule.withConfig(config)]\n * })\n * class MyNgModule {}\n * ```\n */\n static withConfig(config) {\n return {\n ngModule: BrowserAnimationsModule,\n providers: config.disableAnimations ? BROWSER_NOOP_ANIMATIONS_PROVIDERS : BROWSER_ANIMATIONS_PROVIDERS\n };\n }\n static {\n this.ɵfac = function BrowserAnimationsModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BrowserAnimationsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BrowserAnimationsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n imports: [BrowserModule]\n });\n }\n }\n return BrowserAnimationsModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Returns the set of dependency-injection providers\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideAnimations() {\n ɵperformanceMarkFeature('NgEagerAnimations');\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideAnimations` call results in app code.\n return [...BROWSER_ANIMATIONS_PROVIDERS];\n}\n/**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\nlet NoopAnimationsModule = /*#__PURE__*/(() => {\n class NoopAnimationsModule {\n static {\n this.ɵfac = function NoopAnimationsModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NoopAnimationsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NoopAnimationsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n imports: [BrowserModule]\n });\n }\n }\n return NoopAnimationsModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Returns the set of dependency-injection providers\n * to disable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to bootstrap an application using\n * the `bootstrapApplication` function, but you need to disable animations\n * (for example, when running tests).\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideNoopAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideNoopAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideNoopAnimations` call results in app code.\n return [...BROWSER_NOOP_ANIMATIONS_PROVIDERS];\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BrowserAnimationsModule, NoopAnimationsModule, provideAnimations, provideNoopAnimations, InjectableAnimationEngine as ɵInjectableAnimationEngine };\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n\tapiKey: \"5d46e2e019e07e3456a7f1257caeef75\",\r\n\tapiUrl: \"https://api.openweathermap.org/data/2.5\",\r\n\tproduction: false,\r\n\tname: \"test\",\r\n\tenvironmentId: 3\r\n};\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n\tapiKey: \"5d46e2e019e07e3456a7f1257caeef75\",\r\n\tapiUrl: \"https://api.openweathermap.org/data/2.5\",\r\n\tproduction: false,\r\n\tname: \"beta\",\r\n\tenvironmentId: 2\r\n};\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","export const environment = {\r\n\tproduction: true,\r\n\tapiKey: \"5d46e2e019e07e3456a7f1257caeef75\",\r\n\tapiUrl: \"https://api.openweathermap.org/data/2.5\",\r\n\tname: \"prod\",\r\n\tenvironmentId: 1\r\n};\r\n","/**\r\n * Exception thrown when the passed in argument\r\n * is out of range.\r\n */\nexport class ArgumentOutOfRangeException extends RangeError {\n constructor(paramName) {\n super(`${paramName} was out of range.` + ` Must be non-negative and less than the size of the collection.`);\n this.paramName = paramName;\n this.name = `ArgumentOutOfRangeException`;\n this.stack = this.stack || new Error().stack;\n }\n}","/**\r\n * @private\r\n */\nexport const ErrorString = Object.freeze({\n MoreThanOneElement: `Sequence contains more than one element`,\n MoreThanOneMatchingElement: `Sequence contains more than one matching element`,\n NoElements: `Sequence contains no elements`,\n NoMatch: `Sequence contains no matching element`\n});","/**\r\n * Invalid Operation Exception\r\n */\nexport class InvalidOperationException extends Error {\n constructor(message) {\n super(message);\n this.name = `InvalidOperationException`;\n this.stack = this.stack || new Error().stack;\n }\n}","/**\r\n * Does strict (===) comparison between two values.\r\n * @param x left value\r\n * @param y right value\r\n * @returns Whether or not the two values are strictly equal\r\n */\nexport const StrictEqualityComparer = (x, y) => x === y;","/* eslint-disable @typescript-eslint/naming-convention */\n/**\r\n * Array backed Enumerable\r\n */\nexport class ArrayEnumerable extends Array {}","/* eslint-disable @typescript-eslint/no-empty-interface */\n/* eslint-disable @typescript-eslint/naming-convention */\n/**\r\n * The class behind IAsyncEnumerable\r\n * @private\r\n */\nexport class BasicAsyncEnumerable {\n constructor(iterator) {\n this.iterator = iterator;\n //\n }\n [Symbol.asyncIterator]() {\n return this.iterator();\n }\n}","/* eslint-disable @typescript-eslint/naming-convention, @typescript-eslint/no-empty-interface */\n/**\r\n * Base implementation of IParallelEnumerable\r\n * @private\r\n */\nexport class BasicParallelEnumerable {\n constructor(dataFunc) {\n this.dataFunc = dataFunc;\n }\n [Symbol.asyncIterator]() {\n const {\n dataFunc\n } = this;\n async function* iterator() {\n switch (dataFunc.type) {\n case 1 /* ArrayOfPromises */:\n for (const value of dataFunc.generator()) {\n yield value;\n }\n break;\n case 2 /* PromiseOfPromises */:\n for (const value of await dataFunc.generator()) {\n yield value;\n }\n break;\n case 0 /* PromiseToArray */:\n default:\n for (const value of await dataFunc.generator()) {\n yield value;\n }\n break;\n }\n }\n return iterator();\n }\n}","/* eslint-disable @typescript-eslint/no-empty-interface */\n/**\r\n * Basic Enumerable. Usually returned from the Enumerable class.\r\n * @private\r\n */\nexport class BasicEnumerable {\n constructor(iterator) {\n this.iterator = iterator;\n //\n }\n [Symbol.iterator]() {\n return this.iterator();\n }\n}","import { ArrayEnumerable } from \"../sync/ArrayEnumerable\";\n/**\r\n * Binds LINQ method to a built in array type\r\n * @param jsArray Built In JS Array Type\r\n */\nexport const bindArray = jsArray => {\n var _a;\n const arrayEnumerablePrototype = ArrayEnumerable.prototype;\n const bindToPrototype = jsArray.prototype;\n const propertyNames = Object.getOwnPropertyNames(arrayEnumerablePrototype);\n for (const prop of propertyNames) {\n bindToPrototype[prop] = (_a = bindToPrototype[prop]) !== null && _a !== void 0 ? _a : arrayEnumerablePrototype[prop];\n }\n};","import { ArgumentOutOfRangeException, ErrorString, InvalidOperationException } from \"../shared\";\nimport { ArrayEnumerable } from \"../sync/ArrayEnumerable\";\nimport { BasicEnumerable } from '../sync/BasicEnumerable';\n/**\r\n * @private\r\n */\nexport const bindArrayEnumerable = () => {\n var _a;\n const {\n prototype\n } = ArrayEnumerable;\n const propertyNames = Object.getOwnPropertyNames(BasicEnumerable.prototype);\n for (const prop of propertyNames) {\n prototype[prop] = (_a = prototype[prop]) !== null && _a !== void 0 ? _a : BasicEnumerable.prototype[prop];\n }\n prototype.all = function (predicate) {\n return this.every(predicate);\n };\n prototype.any = function (predicate) {\n if (predicate) {\n return this.some(predicate);\n } else {\n return this.length !== 0;\n }\n };\n prototype.count = function (predicate) {\n if (predicate) {\n // eslint-disable-next-line no-shadow\n let count = 0;\n for (let i = 0; i < this.length; i++) {\n if (predicate(this[i]) === true) {\n count++;\n }\n }\n return count;\n } else {\n return this.length;\n }\n };\n prototype.elementAt = function (index) {\n if (index < 0 || index >= this.length) {\n throw new ArgumentOutOfRangeException(\"index\");\n }\n return this[index];\n };\n prototype.elementAtOrDefault = function (index) {\n return this[index] || null;\n };\n prototype.first = function (predicate) {\n if (predicate) {\n const value = this.find(predicate);\n if (value === undefined) {\n throw new InvalidOperationException(ErrorString.NoMatch);\n } else {\n return value;\n }\n } else {\n if (this.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return this[0];\n }\n };\n prototype.firstOrDefault = function (predicate) {\n if (predicate) {\n const value = this.find(predicate);\n if (value === undefined) {\n return null;\n } else {\n return value;\n }\n } else {\n return this.length === 0 ? null : this[0];\n }\n };\n prototype.last = function (predicate) {\n if (predicate) {\n for (let i = this.length - 1; i >= 0; i--) {\n const value = this[i];\n if (predicate(value) === true) {\n return value;\n }\n }\n throw new InvalidOperationException(ErrorString.NoMatch);\n } else {\n if (this.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return this[this.length - 1];\n }\n };\n prototype.lastOrDefault = function (predicate) {\n if (predicate) {\n for (let i = this.length - 1; i >= 0; i--) {\n const value = this[i];\n if (predicate(value) === true) {\n return value;\n }\n }\n return null;\n } else {\n return this.length === 0 ? null : this[this.length - 1];\n }\n };\n prototype.max = function (selector) {\n if (this.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n if (selector) {\n // eslint-disable-next-line no-shadow\n let max = Number.NEGATIVE_INFINITY;\n for (let i = 0; i < this.length; i++) {\n max = Math.max(selector(this[i]), max);\n }\n return max;\n } else {\n return Math.max.apply(null, this);\n }\n };\n prototype.min = function (selector) {\n if (this.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n if (selector) {\n // eslint-disable-next-line no-shadow\n let min = Number.POSITIVE_INFINITY;\n for (let i = 0; i < this.length; i++) {\n min = Math.min(selector(this[i]), min);\n }\n return min;\n } else {\n return Math.min.apply(null, this);\n }\n };\n prototype.reverse = function () {\n Array.prototype.reverse.apply(this);\n return this;\n };\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nexport const aggregate = (source, seedOrFunc, func, resultSelector) => {\n if (resultSelector) {\n if (!func) {\n throw new ReferenceError(`TAccumulate function is undefined`);\n }\n return aggregate3(source, seedOrFunc, func, resultSelector);\n } else if (func) {\n return aggregate2(source, seedOrFunc, func);\n } else {\n return aggregate1(source, seedOrFunc);\n }\n};\nconst aggregate1 = (source, func) => {\n let aggregateValue;\n for (const value of source) {\n if (aggregateValue) {\n aggregateValue = func(aggregateValue, value);\n } else {\n aggregateValue = value;\n }\n }\n if (aggregateValue === undefined) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return aggregateValue;\n};\nconst aggregate2 = (source, seed, func) => {\n let aggregateValue = seed;\n for (const value of source) {\n aggregateValue = func(aggregateValue, value);\n }\n return aggregateValue;\n};\nconst aggregate3 = (source, seed, func, resultSelector) => {\n let aggregateValue = seed;\n for (const value of source) {\n aggregateValue = func(aggregateValue, value);\n }\n return resultSelector(aggregateValue);\n};","/**\r\n * Determines whether all elements of a sequence satisfy a condition.\r\n * @param source An Iterable that contains the elements to apply the predicate to.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns ``true`` if every element of the source sequence passes the test in the specified predicate,\r\n * or if the sequence is empty; otherwise, ``false``.\r\n */\nexport const all = (source, predicate) => {\n for (const item of source) {\n if (predicate(item) === false) {\n return false;\n }\n }\n return true;\n};","/**\r\n * Determines whether all elements of a sequence satisfy a condition.\r\n * @param source An Iterable that contains the elements to apply the predicate to.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns ``true`` if every element of the source sequence passes the test in the specified predicate,\r\n * or if the sequence is empty; otherwise, ``false``.\r\n */\nexport const allAsync = async (source, predicate) => {\n for (const item of source) {\n if ((await predicate(item)) === false) {\n return false;\n }\n }\n return true;\n};","/**\r\n * Determines whether a sequence contains any elements.\r\n * If predicate is specified, determines whether any element of a sequence satisfies a condition.\r\n * @param source The Iterable to check for emptiness or apply the predicate to.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns true if the source sequence contains any elements or passes the test specified; otherwise, false.\r\n */\nexport const any = (source, predicate) => {\n if (predicate) {\n return any2(source, predicate);\n } else {\n return any1(source);\n }\n};\nconst any1 = source => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const _ of source) {\n return true;\n }\n return false;\n};\nconst any2 = (source, predicate) => {\n for (const item of source) {\n if (predicate(item) === true) {\n return true;\n }\n }\n return false;\n};","/**\r\n * Determines whether any element of a sequence satisfies a condition.\r\n * @param source An IEnumerable whose elements to apply the predicate to.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns true if the source sequence contains any elements or passes the test specified; otherwise, false.\r\n */\nexport const anyAsync = async (source, predicate) => {\n for (const item of source) {\n if ((await predicate(item)) === true) {\n return true;\n }\n }\n return false;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\nexport const fromAsync = promisesOrIterable => {\n if (Array.isArray(promisesOrIterable)) {\n if (promisesOrIterable.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return new BasicAsyncEnumerable(async function* () {\n for await (const value of promisesOrIterable) {\n yield value;\n }\n });\n } else {\n return new BasicAsyncEnumerable(promisesOrIterable);\n }\n};","import { fromAsync } from \"../../async/static/fromAsync\";\n/**\r\n * Converts the iterable to an @see {IAsyncEnumerable}\r\n * @param source The Iterable to convert\r\n * @returns An IAsyncEnumerable\r\n */\nexport const asAsync = source => {\n async function* generator() {\n for (const value of source) {\n yield value;\n }\n }\n return fromAsync(generator);\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\nexport const fromParallel = (type, generator) => {\n return new BasicParallelEnumerable({\n generator,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n type\n });\n};","import { fromParallel } from \"../../parallel/static/fromParallel\";\n/**\r\n * Converts an iterable to @see {IParallelEnumerable}\r\n * @param source Sequence to convert\r\n * @returns An IParallelEnumerable\r\n */\nexport const asParallel = source => {\n const generator = async () => {\n const array = [];\n for (const value of source) {\n array.push(value);\n }\n return array;\n };\n return fromParallel(0 /* PromiseToArray */, generator);\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nexport const average = (source, selector) => {\n if (selector) {\n return average2(source, selector);\n } else {\n return average1(source);\n }\n};\nconst average1 = source => {\n let value;\n let count;\n for (const item of source) {\n value = (value || 0) + item;\n count = (count || 0) + 1;\n }\n if (value === undefined) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return value / count;\n};\nconst average2 = (source, func) => {\n let value;\n let count;\n for (const item of source) {\n value = (value || 0) + func(item);\n count = (count || 0) + 1;\n }\n if (value === undefined) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return value / count;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Computes the average of a sequence of values\r\n * that are obtained by invoking a transform function on each element of the input sequence.\r\n * @param source A sequence of values to calculate the average of.\r\n * @param selector A transform function to apply to each element.\r\n * @throws {InvalidOperationException} source contains no elements.\r\n * @returns Avarage of the sequence of values\r\n */\nexport const averageAsync = async (source, selector) => {\n let value;\n let count;\n for (const item of source) {\n value = (value || 0) + (await selector(item));\n count = (count || 0) + 1;\n }\n if (value === undefined) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return value / count;\n};","import { BasicEnumerable } from \"../BasicEnumerable\";\n/**\r\n * Concatenates two sequences.\r\n * @param first The first sequence to concatenate.\r\n * @param second The sequence to concatenate to the first sequence.\r\n * @returns An IEnumerable that contains the concatenated elements of the two input sequences.\r\n */\nexport const concatenate = (first, second) => {\n function* iterator() {\n yield* first;\n yield* second;\n }\n return new BasicEnumerable(iterator);\n};","import { StrictEqualityComparer } from \"../../shared\";\n/**\r\n * Determines whether a sequence contains a specified element by using the specified or default IEqualityComparer.\r\n * @param source A sequence in which to locate a value.\r\n * @param value The value to locate in the sequence.\r\n * @param comparer An equality comparer to compare values. Optional.\r\n * @returns true if the source sequence contains an element that has the specified value; otherwise, false.\r\n */\nexport const contains = (source, value, comparer = StrictEqualityComparer) => {\n for (const item of source) {\n if (comparer(value, item)) {\n return true;\n }\n }\n return false;\n};","/**\r\n * Determines whether a sequence contains a specified element by using the specified or default IEqualityComparer.\r\n * @param source A sequence in which to locate a value.\r\n * @param value The value to locate in the sequence.\r\n * @param comparer An equality comparer to compare values. Optional.\r\n * @returns true if the source sequence contains an element that has the specified value; otherwise, false.\r\n */\nexport const containsAsync = async (source, value, comparer) => {\n for (const item of source) {\n if (await comparer(value, item)) {\n return true;\n }\n }\n return false;\n};","/**\r\n * Returns the number of elements in a sequence\r\n * or represents how many elements in the specified sequence satisfy a condition\r\n * if the predicate is specified.\r\n * @param source A sequence that contains elements to be counted.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @returns The number of elements in the input sequence.\r\n */\nexport const count = (source, predicate) => {\n if (predicate) {\n return count2(source, predicate);\n } else {\n return count1(source);\n }\n};\nconst count1 = source => {\n // eslint-disable-next-line no-shadow\n let count = 0;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const _ of source) {\n count++;\n }\n return count;\n};\nconst count2 = (source, predicate) => {\n // eslint-disable-next-line no-shadow\n let count = 0;\n for (const value of source) {\n if (predicate(value) === true) {\n count++;\n }\n }\n return count;\n};","/**\r\n * Returns the number of elements in a sequence\r\n * or represents how many elements in the specified sequence satisfy a condition\r\n * if the predicate is specified.\r\n * @param source A sequence that contains elements to be counted.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns The number of elements in the input sequence.\r\n */\nexport const countAsync = async (source, predicate) => {\n let count = 0;\n for (const value of source) {\n if ((await predicate(value)) === true) {\n count++;\n }\n }\n return count;\n};","import { StrictEqualityComparer } from \"../../shared\";\nimport { BasicEnumerable } from \"../BasicEnumerable\";\n/**\r\n * Returns distinct elements from a sequence by using the default or specified equality comparer to compare values.\r\n * @param source The sequence to remove duplicate elements from.\r\n * @param comparer An IEqualityComparer to compare values. Optional. Defaults to Strict Equality Comparison.\r\n * @returns An IEnumerable that contains distinct elements from the source sequence.\r\n */\nexport const distinct = (source, comparer = StrictEqualityComparer) => {\n function* iterator() {\n const distinctElements = [];\n for (const item of source) {\n const foundItem = distinctElements.find(x => comparer(x, item));\n if (!foundItem) {\n distinctElements.push(item);\n yield item;\n }\n }\n }\n return new BasicEnumerable(iterator);\n};","import { fromAsync } from \"../../async/static/fromAsync\";\n/**\r\n * Returns distinct elements from a sequence by using the specified equality comparer to compare values.\r\n * @param source The sequence to remove duplicate elements from.\r\n * @param comparer An IAsyncEqualityComparer to compare values.\r\n * @returns An IAsyncEnumerable that contains distinct elements from the source sequence.\r\n */\nexport const distinctAsync = (source, comparer) => {\n async function* iterator() {\n const distinctElements = [];\n outerLoop: for (const item of source) {\n for (const distinctElement of distinctElements) {\n const found = await comparer(distinctElement, item);\n if (found) {\n continue outerLoop;\n }\n }\n distinctElements.push(item);\n yield item;\n }\n }\n return fromAsync(iterator);\n};","import { BasicEnumerable } from \"../BasicEnumerable\";\n/**\r\n * Performs a specified action on each element of the Iterable\r\n * @param source The source to iterate\r\n * @param action The action to take an each element\r\n * @returns A new IEnumerable that executes the action lazily as you iterate.\r\n */\nexport const each = (source, action) => {\n function* generator() {\n for (const value of source) {\n action(value);\n yield value;\n }\n }\n return new BasicEnumerable(generator);\n};","import { fromAsync } from \"../../async/static/fromAsync\";\n/**\r\n * Performs a specified action on each element of the Iterable\r\n * @param source The source to iterate\r\n * @param action The action to take an each element\r\n * @returns A new IAsyncEnumerable that executes the action lazily as you iterate.\r\n */\nexport const eachAsync = (source, action) => {\n async function* generator() {\n for (const value of source) {\n await action(value);\n yield value;\n }\n }\n return fromAsync(generator);\n};","import { ArgumentOutOfRangeException } from \"../../shared\";\n/**\r\n * Returns the element at a specified index in a sequence.\r\n * @param source An IEnumerable to return an element from.\r\n * @param index The zero-based index of the element to retrieve.\r\n * @throws {ArgumentOutOfRangeException}\r\n * index is less than 0 or greater than or equal to the number of elements in source.\r\n * @returns The element at the specified position in the source sequence.\r\n */\nexport const elementAt = (source, index) => {\n if (index < 0) {\n throw new ArgumentOutOfRangeException(\"index\");\n }\n let i = 0;\n for (const item of source) {\n if (index === i++) {\n return item;\n }\n }\n throw new ArgumentOutOfRangeException(\"index\");\n};","/**\r\n * Returns the element at a specified index in a sequence or a default value if the index is out of range.\r\n * @param source An IEnumerable to return an element from.\r\n * @param index The zero-based index of the element to retrieve.\r\n * @returns\r\n * null if the index is outside the bounds of the source sequence;\r\n * otherwise, the element at the specified position in the source sequence.\r\n */\nexport const elementAtOrDefault = (source, index) => {\n let i = 0;\n for (const item of source) {\n if (index === i++) {\n return item;\n }\n }\n return null;\n};","import { StrictEqualityComparer } from \"../../shared\";\nimport { BasicEnumerable } from \"../BasicEnumerable\";\n/**\r\n * Produces the set difference of two sequences by using the comparer provided\r\n * or EqualityComparer to compare values.\r\n * @param first An IEnumerable whose elements that are not also in second will be returned.\r\n * @param second An IEnumerable whose elements that also occur in the first sequence\r\n * will cause those elements to be removed from the returned sequence.\r\n * @param comparer An IEqualityComparer to compare values. Optional.\r\n * @returns A sequence that contains the set difference of the elements of two sequences.\r\n */\nexport const except = (first, second, comparer = StrictEqualityComparer) => {\n function* iterator() {\n const secondArray = [...second];\n for (const firstItem of first) {\n let exists = false;\n for (let j = 0; j < secondArray.length; j++) {\n const secondItem = secondArray[j];\n if (comparer(firstItem, secondItem) === true) {\n exists = true;\n break;\n }\n }\n if (exists === false) {\n yield firstItem;\n }\n }\n }\n return new BasicEnumerable(iterator);\n};","import { fromAsync } from \"../../async/static/fromAsync\";\n/**\r\n * Produces the set difference of two sequences by using the comparer provided to compare values.\r\n * @param first An IEnumerable whose elements that are not also in second will be returned.\r\n * @param second An IEnumerable whose elements that also occur in the first sequence\r\n * will cause those elements to be removed from the returned sequence.\r\n * @param comparer An IAsyncEqualityComparer to compare values.\r\n * @returns A sequence that contains the set difference of the elements of two sequences.\r\n */\nexport const exceptAsync = (first, second, comparer) => {\n async function* iterator() {\n const secondArray = [...second];\n for (const firstItem of first) {\n let exists = false;\n for (let j = 0; j < secondArray.length; j++) {\n const secondItem = secondArray[j];\n if ((await comparer(firstItem, secondItem)) === true) {\n exists = true;\n break;\n }\n }\n if (exists === false) {\n yield firstItem;\n }\n }\n }\n return fromAsync(iterator);\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns first element in sequence that satisfies predicate otherwise\r\n * returns the first element in the sequence.\r\n * @param source An Iterable to return an element from.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @throws {InvalidOperationException} No elements in Iteration matching predicate\r\n * @returns The first element in the sequence\r\n * or the first element that passes the test in the specified predicate function.\r\n */\nexport const first = (source, predicate) => {\n if (predicate) {\n return first2(source, predicate);\n } else {\n return first1(source);\n }\n};\nconst first1 = source => {\n // eslint-disable-next-line no-shadow\n const first = source[Symbol.iterator]().next();\n if (first.done === true) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return first.value;\n};\nconst first2 = (source, predicate) => {\n for (const value of source) {\n if (predicate(value) === true) {\n return value;\n }\n }\n throw new InvalidOperationException(ErrorString.NoMatch);\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the first element in a sequence that satisfies a specified condition.\r\n * @param source An Iterable to return an element from.\r\n * @param predicate A function to test each element for a condition.\r\n * @throws {InvalidOperationException} No elements in Iteration matching predicate\r\n * @returns The first element in the sequence that passes the test in the specified predicate function.\r\n */\nexport const firstAsync = async (source, predicate) => {\n for (const value of source) {\n if ((await predicate(value)) === true) {\n return value;\n }\n }\n throw new InvalidOperationException(ErrorString.NoMatch);\n};","/**\r\n * Returns first element in sequence that satisfies predicate otherwise\r\n * returns the first element in the sequence. Returns null if no value found.\r\n * @param source An Iterable to return an element from.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @returns The first element in the sequence\r\n * or the first element that passes the test in the specified predicate function.\r\n * Returns null if no value found.\r\n */\nexport const firstOrDefault = (source, predicate) => {\n if (predicate) {\n return firstOrDefault2(source, predicate);\n } else {\n return firstOrDefault1(source);\n }\n};\nconst firstOrDefault1 = source => {\n const first = source[Symbol.iterator]().next();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return first.value || null;\n};\nconst firstOrDefault2 = (source, predicate) => {\n for (const value of source) {\n if (predicate(value) === true) {\n return value;\n }\n }\n return null;\n};","/**\r\n * Returns the first element of the sequence that satisfies a condition or a default value if no such element is found.\r\n * @param source An Iterable to return an element from.\r\n * @param predicate An async function to test each element for a condition.\r\n * @returns null if source is empty or if no element passes the test specified by predicate;\r\n * otherwise, the first element in source that passes the test specified by predicate.\r\n */\nexport const firstOrDefaultAsync = async (source, predicate) => {\n for (const value of source) {\n if ((await predicate(value)) === true) {\n return value;\n }\n }\n return null;\n};","import { ArrayEnumerable } from \"./ArrayEnumerable\";\n/**\r\n * Key to Values Enumeration\r\n * @private\r\n */\nexport class Grouping extends ArrayEnumerable {\n constructor(key, startingItem) {\n super(1);\n this.key = key;\n this[0] = startingItem;\n }\n}","import { BasicEnumerable } from \"../BasicEnumerable\";\nimport { Grouping } from \"../Grouping\";\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match */\n/**\r\n * Group and Iterable Based on a Generic Key and an equality comparer\r\n * @param source Iteration\r\n * @param keySelector Key Selector\r\n * @param comparer Key Comparer\r\n * @private\r\n */\nexport const groupBy_0 = (source, keySelector, comparer) => {\n return function* generate() {\n const keyMap = new Array();\n for (const value of source) {\n const key = keySelector(value);\n let found = false;\n for (let i = 0; i < keyMap.length; i++) {\n const group = keyMap[i];\n if (comparer(group.key, key)) {\n group.push(value);\n found = true;\n break;\n }\n }\n if (found === false) {\n keyMap.push(new Grouping(key, value));\n }\n }\n for (const keyValue of keyMap) {\n yield keyValue;\n }\n };\n};\n/**\r\n * @private\r\n */\nexport const groupBy_0_Simple = (source, keySelector) => {\n return function* iterator() {\n const keyMap = {};\n for (const value of source) {\n const key = keySelector(value);\n const grouping = keyMap[key];\n if (grouping) {\n grouping.push(value);\n } else {\n keyMap[key] = new Grouping(key, value);\n }\n }\n // eslint-disable-next-line guard-for-in\n for (const value in keyMap) {\n yield keyMap[value];\n }\n };\n};\n/**\r\n * @private\r\n */\nexport const groupBy_1_Simple = (source, keySelector, elementSelector) => {\n function* generate() {\n const keyMap = {};\n for (const value of source) {\n const key = keySelector(value);\n const grouping = keyMap[key];\n const element = elementSelector(value);\n if (grouping) {\n grouping.push(element);\n } else {\n keyMap[key] = new Grouping(key, element);\n }\n }\n /* eslint-disable guard-for-in */\n for (const value in keyMap) {\n yield keyMap[value];\n }\n /* eslint-enable guard-for-in */\n }\n return new BasicEnumerable(generate);\n};\n/**\r\n * @private\r\n */\nexport const groupBy_1 = (source, keySelector, elementSelector, comparer) => {\n function* generate() {\n const keyMap = new Array();\n for (const value of source) {\n const key = keySelector(value);\n let found = false;\n for (let i = 0; i < keyMap.length; i++) {\n const group = keyMap[i];\n if (comparer(group.key, key)) {\n group.push(elementSelector(value));\n found = true;\n break;\n }\n }\n if (found === false) {\n const element = elementSelector(value);\n keyMap.push(new Grouping(key, element));\n }\n }\n for (const keyValue of keyMap) {\n yield keyValue;\n }\n }\n return new BasicEnumerable(generate);\n};","import { BasicEnumerable } from \"../BasicEnumerable\";\nimport { groupBy_0, groupBy_0_Simple } from \"./groupByShared\";\nexport const groupBy = (source, keySelector, comparer) => {\n let iterable;\n if (comparer) {\n iterable = groupBy_0(source, keySelector, comparer);\n } else {\n iterable = groupBy_0_Simple(source, keySelector);\n }\n return new BasicEnumerable(iterable);\n};","import { fromAsync } from \"../../async/static/fromAsync\";\nimport { Grouping } from \"../Grouping\";\nexport const groupByAsync = (source, keySelector, comparer) => {\n if (comparer) {\n return groupByAsync_0(source, keySelector, comparer);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return groupByAsync_0_Simple(source, keySelector);\n }\n};\nconst groupByAsync_0_Simple = (source, keySelector) => {\n async function* iterator() {\n const keyMap = {};\n for (const value of source) {\n const key = await keySelector(value);\n const grouping = keyMap[key];\n if (grouping) {\n grouping.push(value);\n } else {\n keyMap[key] = new Grouping(key, value);\n }\n }\n // eslint-disable-next-line guard-for-in\n for (const value in keyMap) {\n yield keyMap[value];\n }\n }\n return fromAsync(iterator);\n};\nconst groupByAsync_0 = (source, keySelector, comparer) => {\n async function* generate() {\n const keyMap = new Array();\n for (const value of source) {\n const key = await keySelector(value);\n let found = false;\n for (let i = 0; i < keyMap.length; i++) {\n const group = keyMap[i];\n if ((await comparer(group.key, key)) === true) {\n group.push(value);\n found = true;\n break;\n }\n }\n if (found === false) {\n keyMap.push(new Grouping(key, value));\n }\n }\n for (const keyValue of keyMap) {\n yield keyValue;\n }\n }\n return fromAsync(generate);\n};","import { groupBy_1, groupBy_1_Simple } from \"./groupByShared\";\nexport const groupByWithSel = (source, keySelector, elementSelector, comparer) => {\n if (comparer) {\n return groupBy_1(source, keySelector, elementSelector, comparer);\n } else {\n return groupBy_1_Simple(source, keySelector, elementSelector);\n }\n};","import { StrictEqualityComparer } from \"../../shared\";\nimport { BasicEnumerable } from \"../BasicEnumerable\";\n/**\r\n * Produces the set intersection of two sequences by using the specified IEqualityComparer to compare values.\r\n * If no comparer is selected, uses the StrictEqualityComparer.\r\n * @param first An IEnumerable whose distinct elements that also appear in second will be returned.\r\n * @param second An Iterable whose distinct elements that also appear in the first sequence will be returned.\r\n * @param comparer An IEqualityComparer to compare values. Optional.\r\n * @returns A sequence that contains the elements that form the set intersection of two sequences.\r\n */\nexport const intersect = (first, second, comparer = StrictEqualityComparer) => {\n function* iterator() {\n const firstResults = [...first.distinct(comparer)];\n if (firstResults.length === 0) {\n return;\n }\n const secondResults = [...second];\n for (let i = 0; i < firstResults.length; i++) {\n const firstValue = firstResults[i];\n for (let j = 0; j < secondResults.length; j++) {\n const secondValue = secondResults[j];\n if (comparer(firstValue, secondValue) === true) {\n yield firstValue;\n break;\n }\n }\n }\n }\n return new BasicEnumerable(iterator);\n};","import { fromAsync } from \"../../async/static/fromAsync\";\n/**\r\n * Produces the set intersection of two sequences by using the specified IAsyncEqualityComparer to compare values.\r\n * @param first An IEnumerable whose distinct elements that also appear in second will be returned.\r\n * @param second An Iterable whose distinct elements that also appear in the first sequence will be returned.\r\n * @param comparer An IAsyncEqualityComparer to compare values.\r\n * @returns A sequence that contains the elements that form the set intersection of two sequences.\r\n */\nexport const intersectAsync = (first, second, comparer) => {\n async function* iterator() {\n const firstResults = [];\n for await (const item of first.distinctAsync(comparer)) {\n firstResults.push(item);\n }\n if (firstResults.length === 0) {\n return;\n }\n const secondResults = [...second];\n for (let i = 0; i < firstResults.length; i++) {\n const firstValue = firstResults[i];\n for (let j = 0; j < secondResults.length; j++) {\n const secondValue = secondResults[j];\n if ((await comparer(firstValue, secondValue)) === true) {\n yield firstValue;\n break;\n }\n }\n }\n }\n return fromAsync(iterator);\n};","import { StrictEqualityComparer } from \"../../shared\";\nimport { BasicEnumerable } from \"../BasicEnumerable\";\n// TODO: join Async\n/**\r\n * Correlates the elements of two sequences based on matching keys.\r\n * A specified IEqualityComparer is used to compare keys or the strict equality comparer.\r\n * @param outer The first sequence to join.\r\n * @param inner The sequence to join to the first sequence.\r\n * @param outerKeySelector A function to extract the join key from each element of the first sequence.\r\n * @param innerKeySelector A function to extract the join key from each element of the second sequence.\r\n * @param resultSelector A function to create a result element from two matching elements.\r\n * @param comparer An IEqualityComparer to hash and compare keys. Optional.\r\n * @returns An IEnumerable that has elements of type TResult that\r\n * are obtained by performing an inner join on two sequences.\r\n */\nexport const join = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer = StrictEqualityComparer) => {\n function* iterator() {\n const innerArray = [...inner];\n for (const o of outer) {\n const outerKey = outerKeySelector(o);\n for (const i of innerArray) {\n const innerKey = innerKeySelector(i);\n if (comparer(outerKey, innerKey) === true) {\n yield resultSelector(o, i);\n }\n }\n }\n }\n return new BasicEnumerable(iterator);\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the last element of a sequence.\r\n * If predicate is specified, the last element of a sequence that satisfies a specified condition.\r\n * @param source An Iterable to return the last element of.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @throws {InvalidOperationException} The source sequence is empty.\r\n * @returns The value at the last position in the source sequence\r\n * or the last element in the sequence that passes the test in the specified predicate function.\r\n */\nexport const last = (source, predicate) => {\n if (predicate) {\n return last2(source, predicate);\n } else {\n return last1(source);\n }\n};\nconst last1 = source => {\n let lastItem;\n for (const value of source) {\n lastItem = value;\n }\n if (!lastItem) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return lastItem;\n};\nconst last2 = (source, predicate) => {\n let lastItem;\n for (const value of source) {\n if (predicate(value) === true) {\n lastItem = value;\n }\n }\n if (!lastItem) {\n throw new InvalidOperationException(ErrorString.NoMatch);\n }\n return lastItem;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the last element of a sequence that satisfies a specified condition.\r\n * @param source An Iterable to return the last element of.\r\n * @param predicate A function to test each element for a condition.\r\n * @throws {InvalidOperationException} The source sequence is empty.\r\n * @returns The last element in the sequence that passes the test in the specified predicate function.\r\n */\nexport const lastAsync = async (source, predicate) => {\n let last;\n for (const value of source) {\n if ((await predicate(value)) === true) {\n last = value;\n }\n }\n if (!last) {\n throw new InvalidOperationException(ErrorString.NoMatch);\n }\n return last;\n};","/**\r\n * Returns the last element of a sequence.\r\n * If predicate is specified, the last element of a sequence that satisfies a specified condition.\r\n * @param source An Iterable to return the last element of.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @returns The value at the last position in the source sequence\r\n * or the last element in the sequence that passes the test in the specified predicate function.\r\n */\nexport const lastOrDefault = (source, predicate) => {\n if (predicate) {\n return lastOrDefault2(source, predicate);\n } else {\n return lastOrDefault1(source);\n }\n};\nconst lastOrDefault1 = source => {\n let last = null;\n for (const value of source) {\n last = value;\n }\n return last;\n};\nconst lastOrDefault2 = (source, predicate) => {\n let last = null;\n for (const value of source) {\n if (predicate(value) === true) {\n last = value;\n }\n }\n return last;\n};","/**\r\n * Returns the last element of a sequence that satisfies a specified condition.\r\n * @param source An Iterable to return the last element of.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns The last element in the sequence that passes the test in the specified predicate function.\r\n * Null if no elements.\r\n */\nexport const lastOrDefaultAsync = async (source, predicate) => {\n let last = null;\n for (const value of source) {\n if ((await predicate(value)) === true) {\n last = value;\n }\n }\n return last;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nexport const max = (source, selector) => {\n if (selector) {\n return max2(source, selector);\n } else {\n return max1(source);\n }\n};\nconst max1 = source => {\n let maxItem = null;\n for (const item of source) {\n maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, item);\n }\n if (maxItem === null) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return maxItem;\n }\n};\nconst max2 = (source, selector) => {\n let maxItem = null;\n for (const item of source) {\n maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, selector(item));\n }\n if (maxItem === null) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return maxItem;\n }\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Invokes an async transform function on each element of a sequence and returns the maximum value.\r\n * @param source A sequence of values to determine the maximum value of.\r\n * @param selector A transform function to apply to each element.\r\n * @throws {InvalidOperationException} source contains no elements.\r\n * @returns The maximum value in the sequence.\r\n */\nexport const maxAsync = async (source, selector) => {\n let max = null;\n for (const item of source) {\n max = Math.max(max || Number.NEGATIVE_INFINITY, await selector(item));\n }\n if (max === null) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return max;\n }\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nexport const min = (source, selector) => {\n if (selector) {\n return min2(source, selector);\n } else {\n return min1(source);\n }\n};\nconst min1 = source => {\n let minItem = null;\n for (const item of source) {\n minItem = Math.min(minItem || Number.POSITIVE_INFINITY, item);\n }\n if (minItem === null) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return minItem;\n }\n};\nconst min2 = (source, selector) => {\n let minItem = null;\n for (const item of source) {\n minItem = Math.min(minItem || Number.POSITIVE_INFINITY, selector(item));\n }\n if (minItem === null) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return minItem;\n }\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Invokes a transform function on each element of a sequence and returns the minimum value.\r\n * @param source A sequence of values to determine the minimum value of.\r\n * @param selector A transform function to apply to each element.\r\n * @throws {InvalidOperationException} source contains no elements.\r\n * @returns The minimum value in the sequence.\r\n */\nexport const minAsync = async (source, selector) => {\n let min = null;\n for (const item of source) {\n min = Math.min(min || Number.POSITIVE_INFINITY, await selector(item));\n }\n if (min === null) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return min;\n }\n};","import { BasicEnumerable } from \"../BasicEnumerable\";\n/**\r\n * Applies a type filter to a source iteration\r\n * @param source Iteration to Filtery by Type\r\n * @param type Either value for typeof or a consturctor function\r\n * @returns Values that match the type string or are instance of type\r\n */\nexport const ofType = (source, type) => {\n const typeCheck = typeof type === \"string\" ? x => typeof x === type : x => x instanceof type;\n function* iterator() {\n for (const item of source) {\n if (typeCheck(item)) {\n yield item;\n }\n }\n }\n return new BasicEnumerable(iterator);\n};","/**\r\n * Converts values to a key values map.\r\n * @param source Async Iterable\r\n * @param keySelector Async Key Selector for Map\r\n * @returns Promise for a Map for Key to Values\r\n */\nexport const asAsyncKeyMap = async (source, keySelector) => {\n const map = new Map();\n for await (const item of source) {\n const key = await keySelector(item);\n const currentMapping = map.get(key);\n if (currentMapping) {\n currentMapping.push(item);\n } else {\n map.set(key, [item]);\n }\n }\n return map;\n};","import { asAsyncKeyMap } from \"./asAsyncKeyMap\";\n/**\r\n * Sorts values in an Async Iterable based on key and a key comparer.\r\n * @param source Async Iterable\r\n * @param keySelector Async Key Selector\r\n * @param ascending Ascending or Descending Sort\r\n * @param comparer Key Comparer for Sorting. Optional.\r\n * @returns Async Iterable Iterator of arrays\r\n */\nexport async function* asAsyncSortedKeyValues(source, keySelector, ascending, comparer) {\n const map = await asAsyncKeyMap(source, keySelector);\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\n if (ascending) {\n for (let i = 0; i < sortedKeys.length; i++) {\n yield map.get(sortedKeys[i]);\n }\n } else {\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\n yield map.get(sortedKeys[i]);\n }\n }\n}","/**\r\n * Converts values to a key values map.\r\n * @param source Iterable\r\n * @param keySelector Async Key Selector for Map\r\n * @returns Promise for a Map for Key to Values\r\n */\nexport const asAsyncKeyMapSync = async (source, keySelector) => {\n const map = new Map();\n for (const item of source) {\n const key = await keySelector(item);\n const currentMapping = map.get(key);\n if (currentMapping) {\n currentMapping.push(item);\n } else {\n map.set(key, [item]);\n }\n }\n return map;\n};","import { asAsyncKeyMapSync } from \"./asAsyncKeyMapSync\";\n/**\r\n * Sorts values in an Async Iterable based on key and a key comparer.\r\n * @param source Iterable\r\n * @param keySelector Async Key Selector\r\n * @param ascending Ascending or Descending Sort\r\n * @param comparer Key Comparer for Sorting. Optional.\r\n * @returns Async Iterable Iterator of arrays\r\n */\nexport async function* asAsyncSortedKeyValuesSync(source, keySelector, ascending, comparer) {\n const map = await asAsyncKeyMapSync(source, keySelector);\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\n if (ascending) {\n for (let i = 0; i < sortedKeys.length; i++) {\n yield map.get(sortedKeys[i]);\n }\n } else {\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\n yield map.get(sortedKeys[i]);\n }\n }\n}","/**\r\n * Converts values to a key values map.\r\n * @param source Async Iterable\r\n * @param keySelector Key Selector for Map\r\n * @returns Promise for a Map for Key to Values\r\n */\nexport const asKeyMap = async (source, keySelector) => {\n const map = new Map();\n for await (const item of source) {\n const key = keySelector(item);\n const currentMapping = map.get(key);\n if (currentMapping) {\n currentMapping.push(item);\n } else {\n map.set(key, [item]);\n }\n }\n return map;\n};","import { asKeyMap } from \"./asKeyMap\";\n/**\r\n * Sorts values in an Iterable based on key and a key comparer.\r\n * @param source Async Iterable\r\n * @param keySelector Key Selector\r\n * @param ascending Ascending or Descending Sort\r\n * @param comparer Key Comparer for Sorting. Optional.\r\n * @returns Async Iterable Iterator\r\n */\nexport async function* asSortedKeyValues(source, keySelector, ascending, comparer) {\n const map = await asKeyMap(source, keySelector);\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\n if (ascending) {\n for (let i = 0; i < sortedKeys.length; i++) {\n yield map.get(sortedKeys[i]);\n }\n } else {\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\n yield map.get(sortedKeys[i]);\n }\n }\n}","/**\r\n * Converts values to a key values map.\r\n * @param source Iterable\r\n * @param keySelector Key Selector for Map\r\n * @returns Map for Key to Values\r\n */\nexport const asKeyMapSync = (source, keySelector) => {\n const map = new Map();\n for (const item of source) {\n const key = keySelector(item);\n const currentMapping = map.get(key);\n if (currentMapping) {\n currentMapping.push(item);\n } else {\n map.set(key, [item]);\n }\n }\n return map;\n};","import { asKeyMapSync } from \"./asKeyMapSync\";\n/**\r\n * Sorts values in an Iterable based on key and a key comparer.\r\n * @param source Iterable\r\n * @param keySelector Key Selector\r\n * @param ascending Ascending or Descending Sort\r\n * @param comparer Key Comparer for Sorting. Optional.\r\n */\nexport function* asSortedKeyValuesSync(source, keySelector, ascending, comparer) {\n const map = asKeyMapSync(source, keySelector);\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\n if (ascending) {\n for (let i = 0; i < sortedKeys.length; i++) {\n yield map.get(sortedKeys[i]);\n }\n } else {\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\n yield map.get(sortedKeys[i]);\n }\n }\n}","import { asAsyncSortedKeyValues } from \"./_ordered/asAsyncSortedKeyValues\";\nimport { asAsyncSortedKeyValuesSync } from \"./_ordered/asAsyncSortedKeyValuesSync\";\nimport { asSortedKeyValues } from \"./_ordered/asSortedKeyValues\";\nimport { asSortedKeyValuesSync } from \"./_ordered/asSortedKeyValuesSync\";\nimport { BasicAsyncEnumerable } from \"./BasicAsyncEnumerable\";\n/**\r\n * Ordered Async Enumerable\r\n */\nexport class OrderedAsyncEnumerable extends BasicAsyncEnumerable {\n constructor(orderedPairs) {\n super(async function* () {\n for await (const orderedPair of orderedPairs()) {\n yield* orderedPair;\n }\n });\n this.orderedPairs = orderedPairs;\n }\n static generateAsync(source, keySelector, ascending, comparer) {\n let orderedPairs;\n if (source instanceof OrderedAsyncEnumerable) {\n orderedPairs = async function* () {\n for await (const pair of source.orderedPairs()) {\n yield* asAsyncSortedKeyValuesSync(pair, keySelector, ascending, comparer);\n }\n };\n } else {\n orderedPairs = () => asAsyncSortedKeyValues(source, keySelector, ascending, comparer);\n }\n return new OrderedAsyncEnumerable(orderedPairs);\n }\n static generate(source, keySelector, ascending, comparer) {\n let orderedPairs;\n if (source instanceof OrderedAsyncEnumerable) {\n orderedPairs = async function* () {\n for await (const pair of source.orderedPairs()) {\n yield* asSortedKeyValuesSync(pair, keySelector, ascending, comparer);\n }\n };\n } else {\n orderedPairs = () => asSortedKeyValues(source, keySelector, ascending, comparer);\n }\n return new OrderedAsyncEnumerable(orderedPairs);\n }\n thenBy(keySelector, comparer) {\n return OrderedAsyncEnumerable.generate(this, keySelector, true, comparer);\n }\n thenByAsync(keySelector, comparer) {\n return OrderedAsyncEnumerable.generateAsync(this, keySelector, true, comparer);\n }\n thenByDescending(keySelector, comparer) {\n return OrderedAsyncEnumerable.generate(this, keySelector, false, comparer);\n }\n thenByDescendingAsync(keySelector, comparer) {\n return OrderedAsyncEnumerable.generateAsync(this, keySelector, false, comparer);\n }\n}","/**\r\n * Converts values to a key values map.\r\n * @param source Iterable\r\n * @param keySelector Key Selector for Map\r\n * @returns Map for Key to Values\r\n */\nexport const asKeyMap = (source, keySelector) => {\n const map = new Map();\n for (const item of source) {\n const key = keySelector(item);\n const currentMapping = map.get(key);\n if (currentMapping) {\n currentMapping.push(item);\n } else {\n map.set(key, [item]);\n }\n }\n return map;\n};","import { asKeyMap } from \"./asKeyMap\";\n/**\r\n * Sorts values in an Iterable based on key and a key comparer.\r\n * @param source Iterable\r\n * @param keySelector Key Selector\r\n * @param ascending Ascending or Descending Sort\r\n * @param comparer Key Comparer for Sorting. Optional.\r\n */\nexport function* asSortedKeyValues(source, keySelector, ascending, comparer) {\n const map = asKeyMap(source, keySelector);\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\n if (ascending) {\n for (let i = 0; i < sortedKeys.length; i++) {\n yield map.get(sortedKeys[i]);\n }\n } else {\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\n yield map.get(sortedKeys[i]);\n }\n }\n}","/**\r\n * Converts values to a key values map.\r\n * @param source Iterable\r\n * @param keySelector Async Key Selector for Map\r\n * @returns Map for Key to Values\r\n */\nexport const asKeyMapAsync = async (source, keySelector) => {\n const map = new Map();\n for (const item of source) {\n const key = await keySelector(item);\n const currentMapping = map.get(key);\n if (currentMapping) {\n currentMapping.push(item);\n } else {\n map.set(key, [item]);\n }\n }\n return map;\n};","import { asKeyMapAsync } from \"./asKeyMapAsync\";\n/**\r\n * Sorts values in an Iterable based on key and a key comparer.\r\n * @param source Iterable\r\n * @param keySelector Async Key Selector\r\n * @param ascending Ascending or Descending Sort\r\n * @param comparer Key Comparer for Sorting. Optional.\r\n * @returns Async Iterable Iterator\r\n */\nexport async function* asSortedKeyValuesAsync(source, keySelector, ascending, comparer) {\n const map = await asKeyMapAsync(source, keySelector);\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\n if (ascending) {\n for (let i = 0; i < sortedKeys.length; i++) {\n yield map.get(sortedKeys[i]);\n }\n } else {\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\n yield map.get(sortedKeys[i]);\n }\n }\n}","import { OrderedAsyncEnumerable } from \"../async/OrderedAsyncEnumerable\";\nimport { asSortedKeyValues } from \"./_ordered/asSortedKeyValues\";\nimport { asSortedKeyValuesAsync } from \"./_ordered/asSortedKeyValuesAsync\";\nimport { BasicEnumerable } from \"./BasicEnumerable\";\n/**\r\n * Represents Ordered Enumeration\r\n * @private\r\n */\nexport class OrderedEnumerable extends BasicEnumerable {\n constructor(orderedPairs) {\n super(function* () {\n for (const orderedPair of orderedPairs()) {\n yield* orderedPair;\n }\n });\n this.orderedPairs = orderedPairs;\n }\n // #region Sync\n static generate(source, keySelector, ascending, comparer) {\n let orderedPairs;\n if (source instanceof OrderedEnumerable) {\n orderedPairs = function* () {\n for (const pair of source.orderedPairs()) {\n yield* asSortedKeyValues(pair, keySelector, ascending, comparer);\n }\n };\n } else {\n orderedPairs = () => asSortedKeyValues(source, keySelector, ascending, comparer);\n }\n return new OrderedEnumerable(orderedPairs);\n }\n // #endregion\n // #region Async\n static generateAsync(source, keySelector, ascending, comparer) {\n let orderedPairs;\n if (source instanceof OrderedEnumerable) {\n orderedPairs = async function* () {\n for (const pair of source.orderedPairs()) {\n yield* asSortedKeyValuesAsync(pair, keySelector, ascending, comparer);\n }\n };\n } else {\n orderedPairs = () => asSortedKeyValuesAsync(source, keySelector, ascending, comparer);\n }\n return new OrderedAsyncEnumerable(orderedPairs);\n }\n // #endregion\n thenBy(keySelector, comparer) {\n return OrderedEnumerable.generate(this, keySelector, true, comparer);\n }\n thenByAsync(keySelector, comparer) {\n return OrderedEnumerable.generateAsync(this, keySelector, true, comparer);\n }\n thenByDescending(keySelector, comparer) {\n return OrderedEnumerable.generate(this, keySelector, false, comparer);\n }\n thenByDescendingAsync(keySelector, comparer) {\n return OrderedEnumerable.generateAsync(this, keySelector, false, comparer);\n }\n}","import { OrderedEnumerable } from \"../OrderedEnumerable\";\n/**\r\n * Sorts the elements of a sequence in ascending order by using a specified or default comparer.\r\n * @param source A sequence of values to order.\r\n * @param keySelector A function to extract a key from an element.\r\n * @param comparer An IComparer to compare keys. Optional.\r\n * @returns An IOrderedEnumerable whose elements are sorted according to a key.\r\n */\nexport const orderBy = (source, keySelector, comparer) => {\n return OrderedEnumerable.generate(source, keySelector, true, comparer);\n};","import { OrderedEnumerable } from \"../OrderedEnumerable\";\n/**\r\n * Sorts the elements of a sequence in ascending order by using a specified comparer.\r\n * @param source A sequence of values to order.\r\n * @param keySelector An async function to extract a key from an element.\r\n * @param comparer An IComparer to compare keys.\r\n * @returns An IOrderedAsyncEnumerable whose elements are sorted according to a key.\r\n */\nexport const orderByAsync = (source, keySelector, comparer) => {\n return OrderedEnumerable.generateAsync(source, keySelector, true, comparer);\n};","import { OrderedEnumerable } from \"../OrderedEnumerable\";\n/**\r\n * Sorts the elements of a sequence in descending order by using a specified or default comparer.\r\n * @param source A sequence of values to order.\r\n * @param keySelector A function to extract a key from an element.\r\n * @param comparer An IComparer to compare keys. Optional.\r\n * @returns An IOrderedEnumerable whose elements are sorted in descending order according to a key.\r\n */\nexport const orderByDescending = (source, keySelector, comparer) => {\n return OrderedEnumerable.generate(source, keySelector, false, comparer);\n};","import { OrderedEnumerable } from \"../OrderedEnumerable\";\n/**\r\n * Sorts the elements of a sequence in descending order by using a specified comparer.\r\n * @param source A sequence of values to order.\r\n * @param keySelector An async function to extract a key from an element.\r\n * @param comparer An IComparer to compare keys.\r\n * @returns An IOrderedAsyncEnumerable whose elements are sorted in descending order according to a key.\r\n */\nexport const orderByDescendingAsync = (source, keySelector, comparer) => {\n return OrderedEnumerable.generateAsync(source, keySelector, false, comparer);\n};","/**\r\n * Paritions the Iterable into a tuple of failing and passing arrays\r\n * based on the predicate.\r\n * @param source Elements to Partition\r\n * @param predicate Pass / Fail condition\r\n * @returns [pass, fail]\r\n */\nexport const partition = (source, predicate) => {\n const fail = [];\n const pass = [];\n for (const value of source) {\n if (predicate(value) === true) {\n pass.push(value);\n } else {\n fail.push(value);\n }\n }\n return [pass, fail];\n};","/**\r\n * Paritions the Iterable into a tuple of failing and passing arrays\r\n * based on the predicate.\r\n * @param source Elements to Partition\r\n * @param predicate Pass / Fail condition\r\n * @returns [pass, fail]\r\n */\nexport const partitionAsync = async (source, predicate) => {\n const fail = [];\n const pass = [];\n for (const value of source) {\n if ((await predicate(value)) === true) {\n pass.push(value);\n } else {\n fail.push(value);\n }\n }\n return [pass, fail];\n};","import { BasicEnumerable } from \"../BasicEnumerable\";\n/**\r\n * Inverts the order of the elements in a sequence.\r\n * @param source A sequence of values to reverse.\r\n * @returns A sequence whose elements correspond to those of the input sequence in reverse order.\r\n */\nexport const reverse = source => {\n function* iterator() {\n const array = [...source];\n for (let i = array.length - 1; i >= 0; i--) {\n yield array[i];\n }\n }\n return new BasicEnumerable(iterator);\n};","import { BasicEnumerable } from \"../BasicEnumerable\";\n/**\r\n * Projects each element of a sequence into a new form.\r\n * @param source A sequence of values to invoke a transform function on.\r\n * @param selector A key of TSource.\r\n * @returns\r\n * An IEnumerable whose elements are the result of getting the value from the key on each element of source.\r\n */\nexport const select = (source, selector) => {\n if (typeof selector === \"function\") {\n const {\n length\n } = selector;\n if (length === 1) {\n return select1(source, selector);\n } else {\n return select2(source, selector);\n }\n } else {\n return select3(source, selector);\n }\n};\nconst select1 = (source, selector) => {\n function* iterator() {\n for (const value of source) {\n yield selector(value);\n }\n }\n return new BasicEnumerable(iterator);\n};\nconst select2 = (source, selector) => {\n function* iterator() {\n let index = 0;\n for (const value of source) {\n yield selector(value, index);\n index++;\n }\n }\n return new BasicEnumerable(iterator);\n};\nconst select3 = (source, key) => {\n function* iterator() {\n for (const value of source) {\n yield value[key];\n }\n }\n return new BasicEnumerable(iterator);\n};","import { fromAsync } from \"../../async/static/fromAsync\";\nexport const selectAsync = (source, selector) => {\n if (typeof selector === \"function\") {\n if (selector.length === 1) {\n return selectAsync1(source, selector);\n } else {\n return selectAsync2(source, selector);\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return selectAsync3(source, selector);\n }\n};\nconst selectAsync1 = (source, selector) => {\n async function* iterator() {\n for (const value of source) {\n yield selector(value);\n }\n }\n return fromAsync(iterator);\n};\nconst selectAsync2 = (source, selector) => {\n async function* iterator() {\n let index = 0;\n for (const value of source) {\n yield selector(value, index);\n index++;\n }\n }\n return fromAsync(iterator);\n};\nconst selectAsync3 = (source, key) => {\n async function* iterator() {\n for (const value of source) {\n yield value[key];\n }\n }\n return fromAsync(iterator);\n};","import { BasicEnumerable } from \"../BasicEnumerable\";\nexport const selectMany = (source, selector) => {\n if (typeof selector === \"function\") {\n if (selector.length === 1) {\n return selectMany1(source, selector);\n } else {\n return selectMany2(source, selector);\n }\n } else {\n return selectMany3(source, selector);\n }\n};\nconst selectMany1 = (source, selector) => {\n function* iterator() {\n for (const value of source) {\n for (const selectorValue of selector(value)) {\n yield selectorValue;\n }\n }\n }\n return new BasicEnumerable(iterator);\n};\nconst selectMany2 = (source, selector) => {\n function* iterator() {\n let index = 0;\n for (const value of source) {\n for (const selectorValue of selector(value, index)) {\n yield selectorValue;\n }\n index++;\n }\n }\n return new BasicEnumerable(iterator);\n};\nconst selectMany3 = (source, selector) => {\n function* iterator() {\n for (const value of source) {\n for (const selectorValue of value[selector]) {\n yield selectorValue;\n }\n }\n }\n return new BasicEnumerable(iterator);\n};","import { fromAsync } from \"../../async/static/fromAsync\";\n/**\r\n * Projects each element of a sequence to an IAsyncEnumerable and flattens the resulting sequences into one sequence.\r\n * @param source A sequence of values to project.\r\n * @param selector A transform function to apply to each element.\r\n * @returns An IAsyncEnumerable whose elements are the result of invoking the\r\n * one-to-many transform function on each element of the input sequence.\r\n */\nexport const selectManyAsync = (source, selector) => {\n if (selector.length === 1) {\n return selectManyAsync1(source, selector);\n } else {\n return selectManyAsync2(source, selector);\n }\n};\nconst selectManyAsync1 = (source, selector) => {\n async function* generator() {\n for (const value of source) {\n const innerValues = await selector(value);\n for (const innerValue of innerValues) {\n yield innerValue;\n }\n }\n }\n return fromAsync(generator);\n};\nconst selectManyAsync2 = (source, selector) => {\n async function* generator() {\n let index = 0;\n for (const value of source) {\n const innerValues = await selector(value, index);\n for (const innerValue of innerValues) {\n yield innerValue;\n }\n index++;\n }\n }\n return fromAsync(generator);\n};","import { StrictEqualityComparer } from \"../../shared\";\n/**\r\n * Determines whether or not two sequences are equal\r\n * @param first first iterable\r\n * @param second second iterable\r\n * @param comparer Compare function to use, by default is @see {StrictEqualityComparer}\r\n * @returns Whether or not the two iterables are equal\r\n */\nexport const sequenceEquals = (first, second, comparer = StrictEqualityComparer) => {\n const firstIterator = first[Symbol.iterator]();\n const secondIterator = second[Symbol.iterator]();\n let firstResult = firstIterator.next();\n let secondResult = secondIterator.next();\n while (!firstResult.done && !secondResult.done) {\n if (!comparer(firstResult.value, secondResult.value)) {\n return false;\n }\n firstResult = firstIterator.next();\n secondResult = secondIterator.next();\n }\n return firstResult.done === true && secondResult.done === true;\n};","/**\r\n * Compares two sequences to see if they are equal using a async comparer function.\r\n * @param first First Sequence\r\n * @param second Second Sequence\r\n * @param comparer Async Comparer\r\n * @returns Whether or not the two iterations are equal\r\n */\nexport const sequenceEqualsAsync = async (first, second, comparer) => {\n const firstIterator = first[Symbol.iterator]();\n const secondIterator = second[Symbol.iterator]();\n let firstResult = firstIterator.next();\n let secondResult = secondIterator.next();\n while (!firstResult.done && !secondResult.done) {\n if ((await comparer(firstResult.value, secondResult.value)) === false) {\n return false;\n }\n firstResult = firstIterator.next();\n secondResult = secondIterator.next();\n }\n return firstResult.done === true && secondResult.done === true;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the only element of a sequence that satisfies a specified condition (if specified),\r\n * and throws an exception if more than one such element exists.\r\n * @param source An Iterable to return a single element from.\r\n * @param predicate A function to test an element for a condition. (Optional)\r\n * @throws {InvalidOperationException} No element satisfies the condition in predicate. OR\r\n * More than one element satisfies the condition in predicate. OR\r\n * The source sequence is empty.\r\n * @returns The single element of the input sequence that satisfies a condition.\r\n */\nexport const single = (source, predicate) => {\n if (predicate) {\n return single2(source, predicate);\n } else {\n return single1(source);\n }\n};\nconst single1 = source => {\n let hasValue = false;\n let singleValue = null;\n for (const value of source) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n if (hasValue === false) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return singleValue;\n};\nconst single2 = (source, predicate) => {\n let hasValue = false;\n let singleValue = null;\n for (const value of source) {\n if (predicate(value)) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n }\n if (hasValue === false) {\n throw new InvalidOperationException(ErrorString.NoMatch);\n }\n return singleValue;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the only element of a sequence that satisfies a specified condition,\r\n * and throws an exception if more than one such element exists.\r\n * @param source An Iterable to return a single element from.\r\n * @param predicate A function to test an element for a condition.\r\n * @throws {InvalidOperationException}\r\n * No element satisfies the condition in predicate. OR\r\n * More than one element satisfies the condition in predicate. OR\r\n * The source sequence is empty.\r\n * @returns The single element of the input sequence that satisfies a condition.\r\n */\nexport const singleAsync = async (source, predicate) => {\n let hasValue = false;\n let singleValue = null;\n for (const value of source) {\n if (await predicate(value)) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n }\n if (hasValue === false) {\n throw new InvalidOperationException(ErrorString.NoMatch);\n }\n return singleValue;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * If predicate is specified returns the only element of a sequence that satisfies a specified condition,\r\n * ootherwise returns the only element of a sequence. Returns a default value if no such element exists.\r\n * @param source An Iterable to return a single element from.\r\n * @param predicate A function to test an element for a condition. Optional.\r\n * @throws {InvalidOperationException}\r\n * If predicate is specified more than one element satisfies the condition in predicate,\r\n * otherwise the input sequence contains more than one element.\r\n * @returns The single element of the input sequence that satisfies the condition,\r\n * or null if no such element is found.\r\n */\nexport const singleOrDefault = (source, predicate) => {\n if (predicate) {\n return singleOrDefault2(source, predicate);\n } else {\n return singleOrDefault1(source);\n }\n};\nconst singleOrDefault1 = source => {\n let hasValue = false;\n let singleValue = null;\n for (const value of source) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n return singleValue;\n};\nconst singleOrDefault2 = (source, predicate) => {\n let hasValue = false;\n let singleValue = null;\n for (const value of source) {\n if (predicate(value)) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n }\n return singleValue;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the only element of a sequence that satisfies a specified condition.\r\n * Returns a default value if no such element exists.\r\n * @param source An Iterable to return a single element from.\r\n * @param predicate A function to test an element for a condition. Optional.\r\n * @throws {InvalidOperationException}\r\n * If predicate is specified more than one element satisfies the condition in predicate,\r\n * otherwise the input sequence contains more than one element.\r\n * @returns The single element of the input sequence that satisfies the condition,\r\n * or null if no such element is found.\r\n */\nexport const singleOrDefaultAsync = async (source, predicate) => {\n let hasValue = false;\n let singleValue = null;\n for (const value of source) {\n if (await predicate(value)) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n }\n return singleValue;\n};","import { BasicEnumerable } from \"../BasicEnumerable\";\n/**\r\n * Bypasses a specified number of elements in a sequence and then returns the remaining elements.\r\n * @param source An Iterable to return elements from.\r\n * @param count The number of elements to skip before returning the remaining elements.\r\n * @returns An IEnumerable that contains the elements that occur after the specified index in the input sequence.\r\n */\nexport const skip = (source, count) => {\n function* iterator() {\n let i = 0;\n for (const item of source) {\n if (i++ >= count) {\n yield item;\n }\n }\n }\n return new BasicEnumerable(iterator);\n};","import { BasicEnumerable } from \"../BasicEnumerable\";\n/**\r\n * Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.\r\n * The element's index is used in the logic of the predicate function.\r\n * @param source An Iterable to return elements from.\r\n * @param predicate A function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IEnumerable that contains the elements from the input sequence starting at the first element\r\n * in the linear series that does not pass the test specified by predicate.\r\n */\nexport const skipWhile = (source, predicate) => {\n if (predicate.length === 1) {\n return skipWhile1(source, predicate);\n } else {\n return skipWhile2(source, predicate);\n }\n};\nconst skipWhile1 = (source, predicate) => {\n function* iterator() {\n let skip = true;\n for (const item of source) {\n if (skip === false) {\n yield item;\n } else if (predicate(item) === false) {\n skip = false;\n yield item;\n }\n }\n }\n return new BasicEnumerable(iterator);\n};\nconst skipWhile2 = (source, predicate) => {\n function* iterator() {\n let index = 0;\n let skip = true;\n for (const item of source) {\n if (skip === false) {\n yield item;\n } else if (predicate(item, index) === false) {\n skip = false;\n yield item;\n }\n index++;\n }\n }\n return new BasicEnumerable(iterator);\n};","import { fromAsync } from \"../../async/static/fromAsync\";\n/**\r\n * Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.\r\n * The element's index is used in the logic of the predicate function.\r\n * @param source An Iterable to return elements from.\r\n * @param predicate A function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IAsyncEnumerable that contains the elements from the input sequence starting\r\n * at the first element in the linear series that does not pass the test specified by predicate.\r\n */\nexport const skipWhileAsync = (source, predicate) => {\n if (predicate.length === 1) {\n return skipWhileAsync1(source, predicate);\n } else {\n return skipWhileAsync2(source, predicate);\n }\n};\nconst skipWhileAsync1 = (source, predicate) => {\n async function* iterator() {\n let skip = true;\n for (const item of source) {\n if (skip === false) {\n yield item;\n } else if ((await predicate(item)) === false) {\n skip = false;\n yield item;\n }\n }\n }\n return fromAsync(iterator);\n};\nconst skipWhileAsync2 = (source, predicate) => {\n async function* iterator() {\n let index = 0;\n let skip = true;\n for (const item of source) {\n if (skip === false) {\n yield item;\n } else if ((await predicate(item, index)) === false) {\n skip = false;\n yield item;\n }\n index++;\n }\n }\n return fromAsync(iterator);\n};","export const sum = (source, selector) => {\n if (selector) {\n return sum2(source, selector);\n } else {\n return sum1(source);\n }\n};\nconst sum1 = source => {\n let total = 0;\n for (const value of source) {\n total += value;\n }\n return total;\n};\nconst sum2 = (source, selector) => {\n let total = 0;\n for (const value of source) {\n total += selector(value);\n }\n return total;\n};","/**\r\n * Computes the sum of the sequence of numeric values that are obtained by invoking a transform function\r\n * on each element of the input sequence.\r\n * @param source A sequence of values that are used to calculate a sum.\r\n * @param selector A transform function to apply to each element.\r\n * @returns The sum of the projected values.\r\n */\nexport const sumAsync = async (source, selector) => {\n let sum = 0;\n for (const value of source) {\n sum += await selector(value);\n }\n return sum;\n};","import { BasicEnumerable } from \"../BasicEnumerable\";\n/**\r\n * Returns a specified number of contiguous elements from the start of a sequence.\r\n * @param source The sequence to return elements from.\r\n * @param amount The number of elements to return.\r\n * @returns An IEnumerable that contains the specified number of elements from the start of the input sequence.\r\n */\nexport const take = (source, amount) => {\n function* iterator() {\n // negative amounts should yield empty\n let amountLeft = amount > 0 ? amount : 0;\n for (const item of source) {\n if (amountLeft-- === 0) {\n break;\n } else {\n yield item;\n }\n }\n }\n return new BasicEnumerable(iterator);\n};","import { BasicEnumerable } from \"../BasicEnumerable\";\n/**\r\n * Returns elements from a sequence as long as a specified condition is true.\r\n * The element's index is used in the logic of the predicate function.\r\n * @param source The sequence to return elements from.\r\n * @param predicate A function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IEnumerable that contains elements from the input sequence\r\n * that occur before the element at which the test no longer passes.\r\n */\nexport const takeWhile = (source, predicate) => {\n if (predicate.length === 1) {\n return takeWhile1(source, predicate);\n } else {\n return takeWhile2(source, predicate);\n }\n};\nconst takeWhile1 = (source, predicate) => {\n /**\r\n * @internal\r\n */\n function* iterator() {\n for (const item of source) {\n if (predicate(item)) {\n yield item;\n } else {\n break;\n }\n }\n }\n return new BasicEnumerable(iterator);\n};\nconst takeWhile2 = (source, predicate) => {\n function* iterator() {\n let index = 0;\n for (const item of source) {\n if (predicate(item, index++)) {\n yield item;\n } else {\n break;\n }\n }\n }\n return new BasicEnumerable(iterator);\n};","import { fromAsync } from \"../../async/static/fromAsync\";\n/**\r\n * Returns elements from a sequence as long as a specified condition is true.\r\n * The element's index is used in the logic of the predicate function.\r\n * @param source The sequence to return elements from.\r\n * @param predicate A async function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IAsyncEnumerable that contains elements from the input sequence\r\n * that occur before the element at which the test no longer passes.\r\n */\nexport const takeWhileAsync = (source, predicate) => {\n if (predicate.length === 1) {\n return takeWhileAsync1(source, predicate);\n } else {\n return takeWhileAsync2(source, predicate);\n }\n};\nconst takeWhileAsync1 = (source, predicate) => {\n async function* iterator() {\n for (const item of source) {\n if (await predicate(item)) {\n yield item;\n } else {\n break;\n }\n }\n }\n return fromAsync(iterator);\n};\nconst takeWhileAsync2 = (source, predicate) => {\n async function* iterator() {\n let index = 0;\n for (const item of source) {\n if (await predicate(item, index++)) {\n yield item;\n } else {\n break;\n }\n }\n }\n return fromAsync(iterator);\n};","/**\r\n * Creates an array from a Iterable.\r\n * @param source An Iterable to create an array from.\r\n * @returns An array of elements\r\n */\nexport const toArray = source => {\n return [...source];\n};","/**\r\n * Converts an Iterable to a Map.\r\n * @param source An Iterable to convert.\r\n * @param selector A function to serve as a key selector.\r\n * @returns Map\r\n */\nexport const toMap = (source, selector) => {\n const map = new Map();\n for (const value of source) {\n const key = selector(value);\n const array = map.get(key);\n if (array === undefined) {\n map.set(key, [value]);\n } else {\n array.push(value);\n }\n }\n return map;\n};","/**\r\n * Converts an Iterable to a Map.\r\n * @param source An Iterable to convert.\r\n * @param selector An async function to serve as a key selector.\r\n * @returns A promise for Map\r\n */\nexport const toMapAsync = async (source, selector) => {\n const map = new Map();\n for (const value of source) {\n const key = await selector(value);\n const array = map.get(key);\n if (array === undefined) {\n map.set(key, [value]);\n } else {\n array.push(value);\n }\n }\n return map;\n};","/**\r\n * Converts the Iteration to an Object. Duplicate values will be overriden.\r\n * @param source An Iterable to filter.\r\n * @param selector A function to determine the Key based on the value.\r\n * @returns KVP Object\r\n */\nexport const toObject = (source, selector) => {\n const map = {};\n for (const value of source) {\n map[selector(value)] = value;\n }\n return map;\n};","/**\r\n * Converts the Iteration to an Object. Duplicate values will be overriden.\r\n * @param source An Iterable to filter.\r\n * @param selector A async function to determine the Key based on the value.\r\n * @returns Promise for Mapping of Key to Value derived from the source iterable\r\n */\nexport const toObjectAsync = async (source, selector) => {\n const map = {};\n for (const value of source) {\n map[await selector(value)] = value;\n }\n return map;\n};","/**\r\n * Converts the Itertion to a Set\r\n * @param source Iteration\r\n * @returns Set containing the iteration values\r\n */\nexport const toSet = source => {\n return new Set(source);\n};","import { BasicEnumerable } from \"../BasicEnumerable\";\n/**\r\n * Produces the set union of two sequences by using scrict equality comparison or a specified IEqualityComparer.\r\n * @param first An Iterable whose distinct elements form the first set for the union.\r\n * @param second An Iterable whose distinct elements form the second set for the union.\r\n * @param comparer The IEqualityComparer to compare values. Optional.\r\n * @returns An IEnumerable that contains the elements from both input sequences, excluding duplicates.\r\n */\nexport const union = (first, second, comparer) => {\n if (comparer) {\n return union2(first, second, comparer);\n } else {\n return union1(first, second);\n }\n};\nconst union1 = (first, second) => {\n function* iterator() {\n const set = new Set();\n for (const item of first) {\n if (set.has(item) === false) {\n yield item;\n set.add(item);\n }\n }\n for (const item of second) {\n if (set.has(item) === false) {\n yield item;\n set.add(item);\n }\n }\n }\n return new BasicEnumerable(iterator);\n};\nconst union2 = (first, second, comparer) => {\n function* iterator() {\n const result = [];\n for (const source of [first, second]) {\n for (const value of source) {\n let exists = false;\n for (const resultValue of result) {\n if (comparer(value, resultValue) === true) {\n exists = true;\n break;\n }\n }\n if (exists === false) {\n yield value;\n result.push(value);\n }\n }\n }\n }\n return new BasicEnumerable(iterator);\n};","import { fromAsync } from \"../../async/static/fromAsync\";\n/**\r\n * Produces the set union of two sequences by using a specified IAsyncEqualityComparer.\r\n * @param first An Iterable whose distinct elements form the first set for the union.\r\n * @param second An Iterable whose distinct elements form the second set for the union.\r\n * @param comparer The IAsyncEqualityComparer to compare values.\r\n * @returns An IAsyncEnumerable that contains the elements from both input sequences, excluding duplicates.\r\n */\nexport const unionAsync = (first, second, comparer) => {\n async function* iterator() {\n const result = [];\n for (const source of [first, second]) {\n for (const value of source) {\n let exists = false;\n for (const resultValue of result) {\n if ((await comparer(value, resultValue)) === true) {\n exists = true;\n break;\n }\n }\n if (exists === false) {\n yield value;\n result.push(value);\n }\n }\n }\n }\n return fromAsync(iterator);\n};","import { BasicEnumerable } from \"../BasicEnumerable\";\n/**\r\n * Filters a sequence of values based on a predicate.\r\n * Each element's index is used in the logic of the predicate function.\r\n * @param source An Iterable to filter.\r\n * @param predicate A function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IEnumerable that contains elements from the input sequence that satisfy the condition.\r\n */\nexport const where = (source, predicate) => {\n if (predicate.length === 1) {\n return where1(source, predicate);\n } else {\n return where2(source, predicate);\n }\n};\nconst where1 = (source, predicate) => {\n function* iterator() {\n for (const item of source) {\n if (predicate(item) === true) {\n yield item;\n }\n }\n }\n return new BasicEnumerable(iterator);\n};\nconst where2 = (source, predicate) => {\n function* iterator() {\n let i = 0;\n for (const item of source) {\n if (predicate(item, i++) === true) {\n yield item;\n }\n }\n }\n return new BasicEnumerable(iterator);\n};","import { fromAsync } from \"../../async/static/fromAsync\";\n/**\r\n * Filters a sequence of values based on a predicate.\r\n * Each element's index is used in the logic of the predicate function.\r\n * @param source An Iterable to filter.\r\n * @param predicate A async function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IAsyncEnumerable that contains elements from the input sequence that satisfy the condition.\r\n */\nexport const whereAsync = (source, predicate) => {\n if (predicate.length === 1) {\n return whereAsync1(source, predicate);\n } else {\n return whereAsync2(source, predicate);\n }\n};\nconst whereAsync1 = (source, predicate) => {\n async function* generator() {\n for (const item of source) {\n if ((await predicate(item)) === true) {\n yield item;\n }\n }\n }\n return fromAsync(generator);\n};\nconst whereAsync2 = (source, predicate) => {\n async function* generator() {\n let i = 0;\n for (const item of source) {\n if ((await predicate(item, i++)) === true) {\n yield item;\n }\n }\n }\n return fromAsync(generator);\n};","import { BasicEnumerable } from \"../BasicEnumerable\";\nexport const zip = (source, second, resultSelector) => {\n if (resultSelector) {\n return zip2(source, second, resultSelector);\n } else {\n return zip1(source, second);\n }\n};\nconst zip1 = (source, second) => {\n function* iterator() {\n const firstIterator = source[Symbol.iterator]();\n const secondIterator = second[Symbol.iterator]();\n while (true) {\n const a = firstIterator.next();\n const b = secondIterator.next();\n if (a.done && b.done) {\n break;\n } else {\n yield [a.value, b.value];\n }\n }\n }\n return new BasicEnumerable(iterator);\n};\nconst zip2 = (source, second, resultSelector) => {\n function* iterator() {\n const firstIterator = source[Symbol.iterator]();\n const secondIterator = second[Symbol.iterator]();\n while (true) {\n const a = firstIterator.next();\n const b = secondIterator.next();\n if (a.done && b.done) {\n break;\n } else {\n yield resultSelector(a.value, b.value);\n }\n }\n }\n return new BasicEnumerable(iterator);\n};","import { fromAsync } from \"../../async/static/fromAsync\";\n/**\r\n * Applies a specified async function to the corresponding elements of two sequences,\r\n * producing a sequence of the results.\r\n * @param first The first sequence to merge.\r\n * @param second The second sequence to merge.\r\n * @param resultSelector An async function that specifies how to merge the elements from the two sequences.\r\n * @returns An IAsyncEnumerable that contains merged elements of two input sequences.\r\n */\nexport const zipAsync = (first, second, resultSelector) => {\n async function* generator() {\n const firstIterator = first[Symbol.iterator]();\n const secondIterator = second[Symbol.iterator]();\n while (true) {\n const a = firstIterator.next();\n const b = secondIterator.next();\n if (a.done && b.done) {\n break;\n } else {\n yield resultSelector(a.value, b.value);\n }\n }\n }\n return fromAsync(generator);\n};","import { aggregate } from \"./../sync/_private/aggregate\";\nimport { all } from \"./../sync/_private/all\";\nimport { allAsync } from \"./../sync/_private/allAsync\";\nimport { any } from \"./../sync/_private/any\";\nimport { anyAsync } from \"./../sync/_private/anyAsync\";\nimport { asAsync } from \"./../sync/_private/asAsync\";\nimport { asParallel } from \"./../sync/_private/asParallel\";\nimport { average } from \"./../sync/_private/average\";\nimport { averageAsync } from \"./../sync/_private/averageAsync\";\nimport { concatenate } from \"../sync/_private/concatenate\";\nimport { contains } from \"./../sync/_private/contains\";\nimport { containsAsync } from \"./../sync/_private/containsAsync\";\nimport { count } from \"./../sync/_private/count\";\nimport { countAsync } from \"./../sync/_private/countAsync\";\nimport { distinct } from \"./../sync/_private/distinct\";\nimport { distinctAsync } from \"./../sync/_private/distinctAsync\";\nimport { each } from \"./../sync/_private/each\";\nimport { eachAsync } from \"./../sync/_private/eachAsync\";\nimport { elementAt } from \"./../sync/_private/elementAt\";\nimport { elementAtOrDefault } from \"./../sync/_private/elementAtOrDefault\";\nimport { except } from \"./../sync/_private/except\";\nimport { exceptAsync } from \"./../sync/_private/exceptAsync\";\nimport { first } from \"./../sync/_private/first\";\nimport { firstAsync } from \"./../sync/_private/firstAsync\";\nimport { firstOrDefault } from \"./../sync/_private/firstOrDefault\";\nimport { firstOrDefaultAsync } from \"./../sync/_private/firstOrDefaultAsync\";\nimport { groupBy } from \"./../sync/_private/groupBy\";\nimport { groupByAsync } from \"./../sync/_private/groupByAsync\";\nimport { groupByWithSel } from \"./../sync/_private/groupByWithSel\";\nimport { intersect } from \"./../sync/_private/intersect\";\nimport { intersectAsync } from \"./../sync/_private/intersectAsync\";\nimport { join } from \"./../sync/_private/join\";\nimport { last } from \"./../sync/_private/last\";\nimport { lastAsync } from \"./../sync/_private/lastAsync\";\nimport { lastOrDefault } from \"./../sync/_private/lastOrDefault\";\nimport { lastOrDefaultAsync } from \"./../sync/_private/lastOrDefaultAsync\";\nimport { max } from \"./../sync/_private/max\";\nimport { maxAsync } from \"./../sync/_private/maxAsync\";\nimport { min } from \"./../sync/_private/min\";\nimport { minAsync } from \"./../sync/_private/minAsync\";\nimport { ofType } from \"./../sync/_private/ofType\";\nimport { orderBy } from \"./../sync/_private/orderBy\";\nimport { orderByAsync } from \"./../sync/_private/orderByAsync\";\nimport { orderByDescending } from \"./../sync/_private/orderByDescending\";\nimport { orderByDescendingAsync } from \"./../sync/_private/orderByDescendingAsync\";\nimport { partition } from \"./../sync/_private/partition\";\nimport { partitionAsync } from \"./../sync/_private/partitionAsync\";\nimport { reverse } from \"./../sync/_private/reverse\";\nimport { select } from \"./../sync/_private/select\";\nimport { selectAsync } from \"./../sync/_private/selectAsync\";\nimport { selectMany } from \"./../sync/_private/selectMany\";\nimport { selectManyAsync } from \"./../sync/_private/selectManyAsync\";\nimport { sequenceEquals } from \"./../sync/_private/sequenceEquals\";\nimport { sequenceEqualsAsync } from \"./../sync/_private/sequenceEqualsAsync\";\nimport { single } from \"./../sync/_private/single\";\nimport { singleAsync } from \"./../sync/_private/singleAsync\";\nimport { singleOrDefault } from \"./../sync/_private/singleOrDefault\";\nimport { singleOrDefaultAsync } from \"./../sync/_private/singleOrDefaultAsync\";\nimport { skip } from \"./../sync/_private/skip\";\nimport { skipWhile } from \"./../sync/_private/skipWhile\";\nimport { skipWhileAsync } from \"./../sync/_private/skipWhileAsync\";\nimport { sum } from \"./../sync/_private/sum\";\nimport { sumAsync } from \"./../sync/_private/sumAsync\";\nimport { take } from \"./../sync/_private/take\";\nimport { takeWhile } from \"./../sync/_private/takeWhile\";\nimport { takeWhileAsync } from \"./../sync/_private/takeWhileAsync\";\nimport { toArray } from \"./../sync/_private/toArray\";\nimport { toMap } from \"./../sync/_private/toMap\";\nimport { toMapAsync } from \"./../sync/_private/toMapAsync\";\nimport { toObject } from \"./../sync/_private/toObject\";\nimport { toObjectAsync } from \"./../sync/_private/toObjectAsync\";\nimport { toSet } from \"./../sync/_private/toSet\";\nimport { union } from \"./../sync/_private/union\";\nimport { unionAsync } from \"./../sync/_private/unionAsync\";\nimport { where } from \"./../sync/_private/where\";\nimport { whereAsync } from \"./../sync/_private/whereAsync\";\nimport { zip } from \"./../sync/_private/zip\";\nimport { zipAsync } from \"./../sync/_private/zipAsync\";\n/* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-assignment */\n/**\r\n * Binds LINQ methods to an iterable type\r\n * @param object Iterable Type\r\n */\nexport const bindLinq = object => {\n const prototype = object.prototype;\n // The static methods take an IEnumerable as first argument\n // when wrapping the first argument becomes `this`\n const bind = (func, key) => {\n const wrapped = function (...params) {\n return func(this, ...params);\n };\n Object.defineProperty(wrapped, \"length\", {\n value: func.length - 1\n });\n prototype[key] = wrapped;\n };\n bind(aggregate, \"aggregate\");\n bind(all, \"all\");\n bind(allAsync, \"allAsync\");\n bind(any, \"any\");\n bind(anyAsync, \"anyAsync\");\n bind(asAsync, \"asAsync\");\n bind(asParallel, \"asParallel\");\n bind(average, \"average\");\n bind(averageAsync, \"averageAsync\");\n bind(concatenate, \"concatenate\");\n bind(contains, \"contains\");\n bind(containsAsync, \"containsAsync\");\n bind(count, \"count\");\n bind(countAsync, \"countAsync\");\n bind(distinct, \"distinct\");\n bind(distinctAsync, \"distinctAsync\");\n bind(each, \"each\");\n bind(eachAsync, \"eachAsync\");\n bind(elementAt, \"elementAt\");\n bind(elementAtOrDefault, \"elementAtOrDefault\");\n bind(except, \"except\");\n bind(exceptAsync, \"exceptAsync\");\n bind(first, \"first\");\n bind(firstAsync, \"firstAsync\");\n bind(firstOrDefault, \"firstOrDefault\");\n bind(firstOrDefaultAsync, \"firstOrDefaultAsync\");\n bind(groupBy, \"groupBy\");\n bind(groupByAsync, \"groupByAsync\");\n bind(groupByWithSel, \"groupByWithSel\");\n bind(intersect, \"intersect\");\n bind(intersectAsync, \"intersectAsync\");\n bind(join, \"joinByKey\");\n bind(last, \"last\");\n bind(lastAsync, \"lastAsync\");\n bind(lastOrDefault, \"lastOrDefault\");\n bind(lastOrDefaultAsync, \"lastOrDefaultAsync\");\n bind(max, \"max\");\n bind(maxAsync, \"maxAsync\");\n bind(min, \"min\");\n bind(minAsync, \"minAsync\");\n bind(ofType, \"ofType\");\n bind(orderBy, \"orderBy\");\n bind(orderByAsync, \"orderByAsync\");\n bind(orderByDescending, \"orderByDescending\");\n bind(orderByDescendingAsync, \"orderByDescendingAsync\");\n bind(reverse, \"reverse\");\n bind(select, \"select\");\n bind(selectAsync, \"selectAsync\");\n bind(selectMany, \"selectMany\");\n bind(selectManyAsync, \"selectManyAsync\");\n bind(sequenceEquals, \"sequenceEquals\");\n bind(sequenceEqualsAsync, \"sequenceEqualsAsync\");\n bind(single, \"single\");\n bind(singleAsync, \"singleAsync\");\n bind(singleOrDefault, \"singleOrDefault\");\n bind(singleOrDefaultAsync, \"singleOrDefaultAsync\");\n bind(skip, \"skip\");\n bind(skipWhile, \"skipWhile\");\n bind(skipWhileAsync, \"skipWhileAsync\");\n bind(sum, \"sum\");\n bind(sumAsync, \"sumAsync\");\n bind(take, \"take\");\n bind(takeWhile, \"takeWhile\");\n bind(takeWhileAsync, \"takeWhileAsync\");\n bind(toArray, \"toArray\");\n bind(toMap, \"toMap\");\n bind(toMapAsync, \"toMapAsync\");\n bind(toObject, \"toObject\");\n bind(toObjectAsync, \"toObjectAsync\");\n bind(partition, \"partition\");\n bind(partitionAsync, \"partitionAsync\");\n bind(toSet, \"toSet\");\n bind(union, \"union\");\n bind(unionAsync, \"unionAsync\");\n bind(where, \"where\");\n bind(whereAsync, \"whereAsync\");\n bind(zip, \"zip\");\n bind(zipAsync, \"zipAsync\");\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nexport const aggregate = (source, seedOrFunc, func, resultSelector) => {\n if (resultSelector) {\n if (!func) {\n throw new ReferenceError(`TAccumulate function is undefined`);\n }\n return aggregate3(source, seedOrFunc, func, resultSelector);\n } else if (func) {\n return aggregate2(source, seedOrFunc, func);\n } else {\n return aggregate1(source, seedOrFunc);\n }\n};\nconst aggregate1 = async (source, func) => {\n let aggregateValue;\n for await (const value of source) {\n if (aggregateValue) {\n aggregateValue = func(aggregateValue, value);\n } else {\n aggregateValue = value;\n }\n }\n if (aggregateValue === undefined) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return aggregateValue;\n};\nconst aggregate2 = async (source, seed, func) => {\n let aggregateValue = seed;\n for await (const value of source) {\n aggregateValue = func(aggregateValue, value);\n }\n return aggregateValue;\n};\nconst aggregate3 = async (source, seed, func, resultSelector) => {\n let aggregateValue = seed;\n for await (const value of source) {\n aggregateValue = func(aggregateValue, value);\n }\n return resultSelector(aggregateValue);\n};","/**\r\n * Determines whether all elements of a sequence satisfy a condition.\r\n * @param source An AsyncIterable that contains the elements to apply the predicate to.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns ``true`` if every element of the source sequence passes the test in the specified predicate,\r\n * or if the sequence is empty; otherwise, ``false``.\r\n */\nexport const all = async (source, predicate) => {\n for await (const item of source) {\n if (predicate(item) === false) {\n return false;\n }\n }\n return true;\n};","/**\r\n * Determines whether all elements of a sequence satisfy a condition.\r\n * @param source An AsyncIterable that contains the elements to apply the predicate to.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns Whether all elements of a sequence satisfy the condition.\r\n */\nexport const allAsync = async (source, predicate) => {\n for await (const item of source) {\n if ((await predicate(item)) === false) {\n return false;\n }\n }\n return true;\n};","/**\r\n * Determines whether a sequence contains any elements.\r\n * If predicate is specified, determines whether any element of a sequence satisfies a condition.\r\n * @param source The AsyncIterable to check for emptiness or apply the predicate to.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns ``true`` if every element of the source sequence passes the test in the specified predicate,\r\n * or if the sequence is empty; otherwise, ``false``.\r\n */\nexport const any = (source, predicate) => {\n if (predicate) {\n return any2(source, predicate);\n } else {\n return any1(source);\n }\n};\nconst any1 = async source => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for await (const _ of source) {\n return true;\n }\n return false;\n};\nconst any2 = async (source, predicate) => {\n for await (const item of source) {\n if (predicate(item) === true) {\n return true;\n }\n }\n return false;\n};","/**\r\n * Determines whether any element of a sequence satisfies a condition.\r\n * @param source An AsyncIterable whose elements to apply the predicate to.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns ``true`` if every element of the source sequence passes the test in the specified predicate,\r\n * or if the sequence is empty; otherwise, ``false``.\r\n */\nexport const anyAsync = async (source, predicate) => {\n for await (const item of source) {\n if ((await predicate(item)) === true) {\n return true;\n }\n }\n return false;\n};","import { fromParallel } from \"../../parallel/static/fromParallel\";\n/**\r\n * Converts an async iterable to a Parallel Enumerable.\r\n * @param source AsyncIterable to convert to IParallelEnumerable\r\n * @returns Parallel Enumerable of source\r\n */\nexport const asParallel = source => {\n const generator = async () => {\n const data = [];\n for await (const value of source) {\n data.push(value);\n }\n return data;\n };\n return fromParallel(0 /* PromiseToArray */, generator);\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nexport const average = (source, selector) => {\n if (selector) {\n return average2(source, selector);\n } else {\n return average1(source);\n }\n};\nconst average1 = async source => {\n let value;\n let count;\n for await (const item of source) {\n value = (value || 0) + item;\n count = (count || 0) + 1;\n }\n if (value === undefined) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return value / count;\n};\nconst average2 = async (source, func) => {\n let value;\n let count;\n for await (const item of source) {\n value = (value || 0) + func(item);\n count = (count || 0) + 1;\n }\n if (value === undefined) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return value / count;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Computes the average of a sequence of values\r\n * that are obtained by invoking an async transform function on each element of the input sequence.\r\n * @param source A sequence of values to calculate the average of.\r\n * @param selector A transform function to apply to each element.\r\n * @throws {InvalidOperationException} source contains no elements.\r\n * @returns The average value (from the selector) of the specified async sequence\r\n */\nexport const averageAsync = async (source, selector) => {\n let value;\n let count;\n for await (const item of source) {\n value = (value || 0) + (await selector(item));\n count = (count || 0) + 1;\n }\n if (value === undefined) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return value / count;\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Concatenates two sequences.\r\n * @param first The first sequence to concatenate.\r\n * @param second The sequence to concatenate to the first sequence.\r\n * @returns An IAsyncEnumerable that contains the concatenated elements of the two input sequences.\r\n */\nexport const concatenate = (first, second) => {\n async function* iterator() {\n yield* first;\n yield* second;\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { StrictEqualityComparer } from \"../../shared\";\n/**\r\n * Determines whether a sequence contains a specified element by using the specified or default IEqualityComparer.\r\n * @param source A sequence in which to locate a value.\r\n * @param value The value to locate in the sequence.\r\n * @param comparer An equality comparer to compare values. Optional.\r\n * @returns Whether a sequence contains a specified element\r\n */\nexport const contains = async (source, value, comparer = StrictEqualityComparer) => {\n for await (const item of source) {\n if (comparer(value, item)) {\n return true;\n }\n }\n return false;\n};","/**\r\n * Determines whether a sequence contains a specified element by using the specified or default IEqualityComparer.\r\n * @param source A sequence in which to locate a value.\r\n * @param value The value to locate in the sequence.\r\n * @param comparer An equality comparer to compare values. Optional.\r\n * @returns Whether or not the async sequence contains the specified value\r\n */\nexport const containsAsync = async (source, value, comparer) => {\n for await (const item of source) {\n if (await comparer(value, item)) {\n return true;\n }\n }\n return false;\n};","/**\r\n * Returns the number of elements in a sequence\r\n * or represents how many elements in the specified sequence satisfy a condition\r\n * if the predicate is specified.\r\n * @param source A sequence that contains elements to be counted.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @returns The number of elements in the input sequence.\r\n */\nexport const count = (source, predicate) => {\n if (predicate) {\n return count2(source, predicate);\n } else {\n return count1(source);\n }\n};\nconst count1 = async source => {\n let total = 0;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for await (const _ of source) {\n total++;\n }\n return total;\n};\nconst count2 = async (source, predicate) => {\n let total = 0;\n for await (const value of source) {\n if (predicate(value) === true) {\n total++;\n }\n }\n return total;\n};","/**\r\n * Returns the number of elements in a sequence\r\n * or represents how many elements in the specified sequence satisfy a condition\r\n * if the predicate is specified.\r\n * @param source A sequence that contains elements to be counted.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @returns The number of elements in the sequence.\r\n */\nexport const countAsync = async (source, predicate) => {\n let count = 0;\n for await (const value of source) {\n if ((await predicate(value)) === true) {\n count++;\n }\n }\n return count;\n};","import { StrictEqualityComparer } from \"../../shared\";\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Returns distinct elements from a sequence by using the default or specified equality comparer to compare values.\r\n * @param source The sequence to remove duplicate elements from.\r\n * @param comparer An IEqualityComparer to compare values. Optional. Defaults to Strict Equality Comparison.\r\n * @returns An IAsyncEnumerable that contains distinct elements from the source sequence.\r\n */\nexport const distinct = (source, comparer = StrictEqualityComparer) => {\n async function* iterator() {\n const distinctElements = [];\n for await (const item of source) {\n const foundItem = distinctElements.find(x => comparer(x, item));\n if (!foundItem) {\n distinctElements.push(item);\n yield item;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Returns distinct elements from a sequence by using the specified equality comparer to compare values.\r\n * @param source The sequence to remove duplicate elements from.\r\n * @param comparer An IAsyncEqualityComparer to compare values.\r\n * @returns An IAsyncEnumerable that contains distinct elements from the source sequence.\r\n */\nexport const distinctAsync = (source, comparer) => {\n async function* iterator() {\n const distinctElements = [];\n outerLoop: for await (const item of source) {\n for (const distinctElement of distinctElements) {\n const found = await comparer(distinctElement, item);\n if (found) {\n continue outerLoop;\n }\n }\n distinctElements.push(item);\n yield item;\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Performs a specified action on each element of the Iterable\r\n * @param source The source to iterate\r\n * @param action The action to take an each element\r\n * @returns A new IAsyncEnumerable that executes the action lazily as you iterate.\r\n */\nexport const each = (source, action) => {\n async function* iterator() {\n for await (const value of source) {\n action(value);\n yield value;\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Performs a specified action on each element of the AsyncIterable\r\n * @param source The source to iterate\r\n * @param action The action to take an each element\r\n * @returns A new IAsyncEnumerable that executes the action lazily as you iterate.\r\n */\nexport const eachAsync = (source, action) => {\n async function* iterator() {\n for await (const value of source) {\n await action(value);\n yield value;\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { ArgumentOutOfRangeException } from \"../../shared\";\n/**\r\n * Returns the element at a specified index in a sequence.\r\n * @param source An IEnumerable to return an element from.\r\n * @param index The zero-based index of the element to retrieve.\r\n * @throws {ArgumentOutOfRangeException}\r\n * index is less than 0 or greater than or equal to the number of elements in source.\r\n * @returns Element at the specified index in the sequence.\r\n */\nexport const elementAt = async (source, index) => {\n if (index < 0) {\n throw new ArgumentOutOfRangeException(\"index\");\n }\n let i = 0;\n for await (const item of source) {\n if (index === i++) {\n return item;\n }\n }\n throw new ArgumentOutOfRangeException(\"index\");\n};","/**\r\n * Returns the element at a specified index in a sequence or a default value if the index is out of range.\r\n * @param source An IEnumerable to return an element from.\r\n * @param index The zero-based index of the element to retrieve.\r\n * @returns\r\n * default(TSource) if the index is outside the bounds of the source sequence;\r\n * otherwise, the element at the specified position in the source sequence.\r\n */\nexport const elementAtOrDefault = async (source, index) => {\n let i = 0;\n for await (const item of source) {\n if (index === i++) {\n return item;\n }\n }\n return null;\n};","import { StrictEqualityComparer } from \"../../shared\";\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Produces the set difference of two sequences by using the comparer provided\r\n * or EqualityComparer to compare values.\r\n * @param first An AsyncIterable whose elements that are not also in second will be returned.\r\n * @param second An AsyncIterable whose elements that also occur in the first sequence\r\n * will cause those elements to be removed from the returned sequence.\r\n * @param comparer An IEqualityComparer to compare values. Optional.\r\n * @returns A sequence that contains the set difference of the elements of two sequences.\r\n */\nexport const except = (first, second, comparer = StrictEqualityComparer) => {\n async function* iterator() {\n // TODO: async eq of [...second] ?\n const secondArray = [];\n for await (const x of second) {\n secondArray.push(x);\n }\n for await (const firstItem of first) {\n let exists = false;\n for (let j = 0; j < secondArray.length; j++) {\n const secondItem = secondArray[j];\n if (comparer(firstItem, secondItem) === true) {\n exists = true;\n break;\n }\n }\n if (exists === false) {\n yield firstItem;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Produces the set difference of two sequences by using the comparer provided to compare values.\r\n * @param first An AsyncIterable whose elements that are not also in second will be returned.\r\n * @param second An AsyncIterable whose elements that also occur in the first sequence\r\n * will cause those elements to be removed from the returned sequence.\r\n * @param comparer An IAsyncEqualityComparer to compare values.\r\n * @returns A sequence that contains the set difference of the elements of two sequences.\r\n */\nexport const exceptAsync = (first, second, comparer) => {\n async function* iterator() {\n // TODO: async eq of [...second] ?\n const secondArray = [];\n for await (const x of second) {\n secondArray.push(x);\n }\n for await (const firstItem of first) {\n let exists = false;\n for (let j = 0; j < secondArray.length; j++) {\n const secondItem = secondArray[j];\n if ((await comparer(firstItem, secondItem)) === true) {\n exists = true;\n break;\n }\n }\n if (exists === false) {\n yield firstItem;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the first element of a sequence.\r\n * If predicate is specified, returns the first element in a sequence that satisfies a specified condition.\r\n * @param source The AsyncIterable to return the first element of.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @throws {InvalidOperationException} The source sequence is empty.\r\n * @returns The first element in the specified sequence.\r\n * If predicate is specified,\r\n * the first element in the sequence that passes the test in the specified predicate function.\r\n */\nexport const first = (source, predicate) => {\n if (predicate) {\n return first2(source, predicate);\n } else {\n return first1(source);\n }\n};\nconst first1 = async source => {\n const firstElement = await source[Symbol.asyncIterator]().next();\n if (firstElement.done === true) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return firstElement.value;\n};\nconst first2 = async (source, predicate) => {\n for await (const value of source) {\n if (predicate(value) === true) {\n return value;\n }\n }\n throw new InvalidOperationException(ErrorString.NoMatch);\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the first element in a sequence that satisfies a specified condition.\r\n * @param source An AsyncIterable to return an element from.\r\n * @param predicate An async function to test each element for a condition.\r\n * @throws {InvalidOperationException} No elements in Iteration matching predicate\r\n * @returns The first element in the sequence that passes the test in the specified predicate function.\r\n */\nexport const firstAsync = async (source, predicate) => {\n for await (const value of source) {\n if ((await predicate(value)) === true) {\n return value;\n }\n }\n throw new InvalidOperationException(ErrorString.NoMatch);\n};","/**\r\n * Returns first element in sequence that satisfies predicate otherwise\r\n * returns the first element in the sequence. Returns null if no value found.\r\n * @param source An AsyncIterable to return an element from.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @returns The first element in the sequence\r\n * or the first element that passes the test in the specified predicate function.\r\n * Returns null if no value found.\r\n */\nexport const firstOrDefault = (source, predicate) => {\n if (predicate) {\n return firstOrDefault2(source, predicate);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return firstOrDefault1(source);\n }\n};\nconst firstOrDefault1 = async source => {\n const first = await source[Symbol.asyncIterator]().next();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return first.value || null;\n};\nconst firstOrDefault2 = async (source, predicate) => {\n for await (const value of source) {\n if (predicate(value) === true) {\n return value;\n }\n }\n return null;\n};","/**\r\n * Returns first element in sequence that satisfies. Returns null if no value found.\r\n * @param source An AsyncIterable to return an element from.\r\n * @param predicate An async function to test each element for a condition.\r\n * @returns The first element that passes the test in the specified predicate function.\r\n * Returns null if no value found.\r\n */\nexport const firstOrDefaultAsync = async (source, predicate) => {\n for await (const value of source) {\n if ((await predicate(value)) === true) {\n return value;\n }\n }\n return null;\n};","import { Grouping } from \"../../sync/Grouping\";\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\nexport const groupBy = (source, keySelector, comparer) => {\n if (comparer) {\n return groupBy_0(source, keySelector, comparer);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return groupBy_0_Simple(source, keySelector);\n }\n};\nconst groupBy_0 = (source, keySelector, comparer) => {\n async function* generate() {\n const keyMap = new Array();\n for await (const value of source) {\n const key = keySelector(value);\n let found = false;\n for (let i = 0; i < keyMap.length; i++) {\n const group = keyMap[i];\n if (comparer(group.key, key)) {\n group.push(value);\n found = true;\n break;\n }\n }\n if (found === false) {\n keyMap.push(new Grouping(key, value)); // TODO\n }\n }\n for (const g of keyMap) {\n yield g;\n }\n }\n return new BasicAsyncEnumerable(generate);\n};\nconst groupBy_0_Simple = (source, keySelector) => {\n async function* iterator() {\n const keyMap = {};\n for await (const value of source) {\n const key = keySelector(value);\n const grouping = keyMap[key];\n if (grouping) {\n grouping.push(value);\n } else {\n keyMap[key] = new Grouping(key, value);\n }\n }\n // eslint-disable-next-line guard-for-in\n for (const value in keyMap) {\n yield keyMap[value];\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { Grouping } from \"../../sync/Grouping\";\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\nexport const groupByAsync = (source, keySelector, comparer) => {\n if (comparer) {\n return groupByAsync_0(source, keySelector, comparer);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return groupByAsync_0_Simple(source, keySelector);\n }\n};\nconst groupByAsync_0_Simple = (source, keySelector) => {\n async function* iterator() {\n const keyMap = {}; // TODO\n for await (const value of source) {\n const key = await keySelector(value);\n const grouping = keyMap[key];\n if (grouping) {\n grouping.push(value);\n } else {\n keyMap[key] = new Grouping(key, value);\n }\n }\n // eslint-disable-next-line guard-for-in\n for (const value in keyMap) {\n yield keyMap[value];\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};\nconst groupByAsync_0 = (source, keySelector, comparer) => {\n async function* generate() {\n const keyMap = new Array();\n for await (const value of source) {\n const key = await keySelector(value);\n let found = false;\n for (let i = 0; i < keyMap.length; i++) {\n const group = keyMap[i];\n if ((await comparer(group.key, key)) === true) {\n group.push(value);\n found = true;\n break;\n }\n }\n if (found === false) {\n keyMap.push(new Grouping(key, value));\n }\n }\n for (const keyValue of keyMap) {\n yield keyValue;\n }\n }\n return new BasicAsyncEnumerable(generate);\n};","import { Grouping } from \"../../sync/Grouping\";\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\nexport const groupByWithSel = (source, keySelector, elementSelector, comparer) => {\n if (comparer) {\n return groupBy1(source, keySelector, elementSelector, comparer);\n } else {\n return groupBy1Simple(source, keySelector, elementSelector);\n }\n};\nconst groupBy1Simple = (source, keySelector, elementSelector) => {\n async function* generate() {\n const keyMap = {};\n for await (const value of source) {\n const key = keySelector(value);\n const grouping = keyMap[key];\n const element = elementSelector(value);\n if (grouping) {\n grouping.push(element);\n } else {\n keyMap[key] = new Grouping(key, element);\n }\n }\n // eslint-disable-next-line guard-for-in\n for (const value in keyMap) {\n yield keyMap[value];\n }\n }\n return new BasicAsyncEnumerable(generate);\n};\nconst groupBy1 = (source, keySelector, elementSelector, comparer) => {\n async function* generate() {\n const keyMap = new Array();\n for await (const value of source) {\n const key = keySelector(value);\n let found = false;\n for (let i = 0; i < keyMap.length; i++) {\n const group = keyMap[i];\n if (comparer(group.key, key)) {\n group.push(elementSelector(value));\n found = true;\n break;\n }\n }\n if (found === false) {\n const element = elementSelector(value);\n keyMap.push(new Grouping(key, element)); // TODO\n }\n }\n for (const value of keyMap) {\n yield value;\n }\n }\n return new BasicAsyncEnumerable(generate);\n};","import { StrictEqualityComparer } from \"../../shared\";\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Produces the set intersection of two sequences by using the specified IEqualityComparer to compare values.\r\n * If not comparer is specified, uses the @see {StrictEqualityComparer}\r\n * @param first An IAsyncEnumerable whose distinct elements that also appear in second will be returned.\r\n * @param second An IAsyncEnumerable whose distinct elements that also appear in the first sequence will be returned.\r\n * @param comparer An IAsyncEqualityComparer to compare values. Optional.\r\n * @returns A sequence that contains the elements that form the set intersection of two sequences.\r\n */\nexport const intersect = (first, second, comparer = StrictEqualityComparer) => {\n async function* iterator() {\n const firstResults = await first.distinct(comparer).toArray();\n if (firstResults.length === 0) {\n return;\n }\n const secondResults = await second.toArray();\n for (let i = 0; i < firstResults.length; i++) {\n const firstValue = firstResults[i];\n for (let j = 0; j < secondResults.length; j++) {\n const secondValue = secondResults[j];\n if (comparer(firstValue, secondValue) === true) {\n yield firstValue;\n break;\n }\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Produces the set intersection of two sequences by using the specified IAsyncEqualityComparer to compare values.\r\n * @param first An IAsyncEnumerable whose distinct elements that also appear in second will be returned.\r\n * @param second An IAsyncEnumerable whose distinct elements that also appear in the first sequence will be returned.\r\n * @param comparer An IAsyncEqualityComparer to compare values.\r\n * @returns A sequence that contains the elements that form the set intersection of two sequences.\r\n */\nexport const intersectAsync = (first, second, comparer) => {\n async function* iterator() {\n const firstResults = await first.distinctAsync(comparer).toArray();\n if (firstResults.length === 0) {\n return;\n }\n const secondResults = await second.toArray();\n for (let i = 0; i < firstResults.length; i++) {\n const firstValue = firstResults[i];\n for (let j = 0; j < secondResults.length; j++) {\n const secondValue = secondResults[j];\n if ((await comparer(firstValue, secondValue)) === true) {\n yield firstValue;\n break;\n }\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { StrictEqualityComparer } from \"../../shared\";\nimport { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Correlates the elements of two sequences based on matching keys.\r\n * A specified IEqualityComparer is used to compare keys or the strict equality comparer.\r\n * @param outer The first sequence to join.\r\n * @param inner The sequence to join to the first sequence.\r\n * @param outerKeySelector A function to extract the join key from each element of the first sequence.\r\n * @param innerKeySelector A function to extract the join key from each element of the second sequence.\r\n * @param resultSelector A function to create a result element from two matching elements.\r\n * @param comparer An IEqualityComparer to hash and compare keys. Optional.\r\n * @returns An IAsyncEnumerable that has elements of type TResult that\r\n * are obtained by performing an inner join on two sequences.\r\n */\nexport const join = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer = StrictEqualityComparer) => {\n async function* iterator() {\n const innerArray = [];\n for await (const i of inner) {\n innerArray.push(i);\n }\n for await (const o of outer) {\n const outerKey = outerKeySelector(o);\n for (const i of innerArray) {\n const innerKey = innerKeySelector(i);\n if (comparer(outerKey, innerKey) === true) {\n yield resultSelector(o, i);\n }\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the last element of a sequence.\r\n * If predicate is specified, the last element of a sequence that satisfies a specified condition.\r\n * @param source An AsyncIterable to return the last element of.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @throws {InvalidOperationException} The source sequence is empty.\r\n * @returns The value at the last position in the source sequence\r\n * or the last element in the sequence that passes the test in the specified predicate function.\r\n */\nexport const last = (source, predicate) => {\n if (predicate) {\n return last2(source, predicate);\n } else {\n return last1(source);\n }\n};\nconst last1 = async source => {\n let lastItem = null;\n for await (const value of source) {\n lastItem = value;\n }\n if (!lastItem) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return lastItem;\n};\nconst last2 = async (source, predicate) => {\n let lastItem = null;\n for await (const value of source) {\n if (predicate(value) === true) {\n lastItem = value;\n }\n }\n if (!lastItem) {\n throw new InvalidOperationException(ErrorString.NoMatch);\n }\n return lastItem;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the last element of a sequence that satisfies a specified condition.\r\n * @param source An AsyncIterable to return the last element of.\r\n * @param predicate A function to test each element for a condition.\r\n * @throws {InvalidOperationException} The source sequence is empty.\r\n * @returns The last element in the sequence that passes the test in the specified predicate function.\r\n */\nexport const lastAsync = async (source, predicate) => {\n let last = null;\n for await (const value of source) {\n if ((await predicate(value)) === true) {\n last = value;\n }\n }\n if (!last) {\n throw new InvalidOperationException(ErrorString.NoMatch);\n }\n return last;\n};","/**\r\n * Returns the last element of a sequence.\r\n * If predicate is specified, the last element of a sequence that satisfies a specified condition.\r\n * @param source An AsyncIterable to return the last element of.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @returns The value at the last position in the source sequence\r\n * or the last element in the sequence that passes the test in the specified predicate function.\r\n */\nexport const lastOrDefault = (source, predicate) => {\n if (predicate) {\n return lastOrDefault2(source, predicate);\n } else {\n return lastOrDefault1(source);\n }\n};\nconst lastOrDefault1 = async source => {\n let last = null;\n for await (const value of source) {\n last = value;\n }\n return last;\n};\nconst lastOrDefault2 = async (source, predicate) => {\n let last = null;\n for await (const value of source) {\n if (predicate(value) === true) {\n last = value;\n }\n }\n return last;\n};","/**\r\n * Returns the last element of a sequence that satisfies a specified condition.\r\n * @param source An AsyncIterable to return the last element of.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns The last element in the sequence that passes the test in the specified predicate function.\r\n * Null if no elements.\r\n */\nexport const lastOrDefaultAsync = async (source, predicate) => {\n let last = null;\n for await (const value of source) {\n if ((await predicate(value)) === true) {\n last = value;\n }\n }\n return last;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nexport const max = (source, selector) => {\n if (selector) {\n return max2(source, selector);\n } else {\n return max1(source);\n }\n};\nconst max1 = async source => {\n let maxItem = null;\n for await (const item of source) {\n maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, item);\n }\n if (maxItem === null) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return maxItem;\n }\n};\nconst max2 = async (source, selector) => {\n let maxItem = null;\n for await (const item of source) {\n maxItem = Math.max(maxItem || Number.NEGATIVE_INFINITY, selector(item));\n }\n if (maxItem === null) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return maxItem;\n }\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Invokes an async transform function on each element of a sequence and returns the maximum value.\r\n * @param source A sequence of values to determine the maximum value of.\r\n * @param selector A transform function to apply to each element.\r\n * @throws {InvalidOperationException} source contains no elements.\r\n * @returns The maximum value in the sequence.\r\n */\nexport const maxAsync = async (source, selector) => {\n let max = null;\n for await (const item of source) {\n max = Math.max(max || Number.NEGATIVE_INFINITY, await selector(item));\n }\n if (max === null) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return max;\n }\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nexport const min = (source, selector) => {\n if (selector) {\n return min2(source, selector);\n } else {\n return min1(source);\n }\n};\nconst min1 = async source => {\n let minValue = null;\n for await (const item of source) {\n minValue = Math.min(minValue || Number.POSITIVE_INFINITY, item);\n }\n if (minValue === null) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return minValue;\n }\n};\nconst min2 = async (source, selector) => {\n let minValue = null;\n for await (const item of source) {\n minValue = Math.min(minValue || Number.POSITIVE_INFINITY, selector(item));\n }\n if (minValue === null) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return minValue;\n }\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Invokes a transform function on each element of a sequence and returns the minimum value.\r\n * @param source A sequence of values to determine the minimum value of.\r\n * @param selector A transform function to apply to each element.\r\n * @throws {InvalidOperationException} source contains no elements.\r\n * @returns The minimum value in the sequence.\r\n */\nexport const minAsync = async (source, selector) => {\n let min = null;\n for await (const item of source) {\n min = Math.min(min || Number.POSITIVE_INFINITY, await selector(item));\n }\n if (min === null) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return min;\n }\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Applies a type filter to a source iteration\r\n * @param source Async Iteration to Filtery by Type\r\n * @param type Either value for typeof or a consturctor function\r\n * @returns Values that match the type string or are instance of type\r\n */\nexport const ofType = (source, type) => {\n const typeCheck = typeof type === \"string\" ? x => typeof x === type : x => x instanceof type;\n async function* iterator() {\n for await (const item of source) {\n if (typeCheck(item)) {\n yield item;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { OrderedAsyncEnumerable } from \"../OrderedAsyncEnumerable\";\n/**\r\n * Sorts the elements of a sequence in ascending order by using a specified or default comparer.\r\n * @param source A sequence of values to order.\r\n * @param keySelector A function to extract a key from an element.\r\n * @param comparer An IComparer to compare keys. Optional.\r\n * @returns An IOrderedAsyncEnumerable whose elements are sorted according to a key.\r\n */\nexport const orderBy = (source, keySelector, comparer) => {\n return OrderedAsyncEnumerable.generate(source, keySelector, true, comparer);\n};","import { OrderedAsyncEnumerable } from \"../OrderedAsyncEnumerable\";\n/**\r\n * Sorts the elements of a sequence in ascending order by using a specified comparer.\r\n * @param source A sequence of values to order.\r\n * @param keySelector An async function to extract a key from an element.\r\n * @param comparer An IComparer to compare keys.\r\n * @returns An IOrderedAsyncEnumerable whose elements are sorted according to a key.\r\n */\nexport const orderByAsync = (source, keySelector, comparer) => {\n return OrderedAsyncEnumerable.generateAsync(source, keySelector, true, comparer);\n};","import { OrderedAsyncEnumerable } from \"../OrderedAsyncEnumerable\";\n/**\r\n * Sorts the elements of a sequence in descending order by using a specified or default comparer.\r\n * @param source A sequence of values to order.\r\n * @param keySelector A function to extract a key from an element.\r\n * @param comparer An IComparer to compare keys. Optional.\r\n * @returns An IOrderedAsyncEnumerable whose elements are sorted in descending order according to a key.\r\n */\nexport const orderByDescending = (source, keySelector, comparer) => {\n return OrderedAsyncEnumerable.generate(source, keySelector, false, comparer);\n};","import { OrderedAsyncEnumerable } from \"../OrderedAsyncEnumerable\";\n/**\r\n * Sorts the elements of an async sequence in descending order by using a specified comparer.\r\n * @param source A sequence of values to order.\r\n * @param keySelector An async function to extract a key from an element.\r\n * @param comparer An IComparer to compare keys.\r\n * @returns An IOrderedAsyncEnumerable whose elements are sorted in descending order according to a key.\r\n */\nexport const orderByDescendingAsync = (source, keySelector, comparer) => {\n return OrderedAsyncEnumerable.generateAsync(source, keySelector, false, comparer);\n};","/**\r\n * Paritions the AsyncIterable into a tuple of failing and passing arrays\r\n * based on the predicate.\r\n * @param source Elements to Partition\r\n * @param predicate Pass / Fail condition\r\n * @returns [pass, fail]\r\n */\nexport const partition = async (source, predicate) => {\n const fail = [];\n const pass = [];\n for await (const value of source) {\n if (predicate(value) === true) {\n pass.push(value);\n } else {\n fail.push(value);\n }\n }\n return [pass, fail];\n};","/**\r\n * Paritions the AsyncIterable into a tuple of failing and passing arrays\r\n * based on the predicate.\r\n * @param source Elements to Partition\r\n * @param predicate Pass / Fail condition\r\n * @returns [pass, fail]\r\n */\nexport const partitionAsync = async (source, predicate) => {\n const fail = [];\n const pass = [];\n for await (const value of source) {\n if ((await predicate(value)) === true) {\n pass.push(value);\n } else {\n fail.push(value);\n }\n }\n return [pass, fail];\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Inverts the order of the elements in a sequence.\r\n * @param source A sequence of values to reverse.\r\n * @returns A sequence whose elements correspond to those of the input sequence in reverse order.\r\n */\nexport const reverse = source => {\n async function* iterator() {\n const values = [];\n for await (const value of source) {\n values.push(value);\n }\n for (let i = values.length - 1; i >= 0; i--) {\n yield values[i];\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\nexport const select = (source, selector) => {\n if (typeof selector === \"function\") {\n if (selector.length === 1) {\n return select1(source, selector);\n } else {\n return select2(source, selector);\n }\n } else {\n return select3(source, selector);\n }\n};\nconst select1 = (source, selector) => {\n async function* iterator() {\n for await (const value of source) {\n yield selector(value);\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};\nconst select2 = (source, selector) => {\n async function* iterator() {\n let index = 0;\n for await (const value of source) {\n yield selector(value, index);\n index++;\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};\nconst select3 = (source, key) => {\n async function* iterator() {\n for await (const value of source) {\n yield value[key];\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\nexport const selectAsync = (source, selector) => {\n if (typeof selector === \"string\") {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return selectAsync2(source, selector);\n } else {\n return selectAsync1(source, selector);\n }\n};\nconst selectAsync1 = (source, selector) => {\n async function* iterator() {\n for await (const value of source) {\n yield selector(value);\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};\nconst selectAsync2 = (source, key) => {\n async function* iterator() {\n for await (const value of source) {\n yield value[key];\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\nexport const selectMany = (source, selector) => {\n if (typeof selector === \"function\") {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (selector.length === 1) {\n return selectMany1(source, selector);\n } else {\n return selectMany2(source, selector);\n }\n } else {\n return selectMany3(source, selector);\n }\n};\nconst selectMany1 = (source, selector) => {\n async function* iterator() {\n for await (const value of source) {\n for (const selectorValue of selector(value)) {\n yield selectorValue;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};\nconst selectMany2 = (source, selector) => {\n async function* iterator() {\n let index = 0;\n for await (const value of source) {\n for (const selectorValue of selector(value, index)) {\n yield selectorValue;\n }\n index++;\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};\nconst selectMany3 = (source, selector) => {\n async function* iterator() {\n for await (const value of source) {\n for (const selectorValue of value[selector]) {\n yield selectorValue;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Projects each element of a sequence to an IAsyncEnumerable and flattens the resulting sequences into one sequence.\r\n * @param source A sequence of values to project.\r\n * @param selector A transform function to apply to each element.\r\n * @returns An IAsyncEnumerable whose elements are the result of invoking the\r\n * one-to-many transform function on each element of the input sequence.\r\n */\nexport const selectManyAsync = (source, selector) => {\n if (selector.length === 1) {\n const iterator = async function* () {\n for await (const value of source) {\n const many = await selector(value);\n for (const innerValue of many) {\n yield innerValue;\n }\n }\n };\n return new BasicAsyncEnumerable(iterator);\n } else {\n const iterator = async function* () {\n let index = 0;\n for await (const value of source) {\n const many = await selector(value, index);\n for (const innerValue of many) {\n yield innerValue;\n }\n index++;\n }\n };\n return new BasicAsyncEnumerable(iterator);\n }\n};","import { StrictEqualityComparer } from \"../../shared\";\n/**\r\n * Compares two async iterations to see if they are equal using a comparer function.\r\n * @param first First Sequence\r\n * @param second Second Sequence\r\n * @param comparer Comparer\r\n * @returns Whether or not the two iterations are equal\r\n */\nexport const sequenceEquals = async (first, second, comparer = StrictEqualityComparer) => {\n const firstIterator = first[Symbol.asyncIterator]();\n const secondIterator = second[Symbol.asyncIterator]();\n let results = await Promise.all([firstIterator.next(), secondIterator.next()]);\n let firstResult = results[0];\n let secondResult = results[1];\n while (!firstResult.done && !secondResult.done) {\n if (!comparer(firstResult.value, secondResult.value)) {\n return false;\n }\n results = await Promise.all([firstIterator.next(), secondIterator.next()]);\n firstResult = results[0];\n secondResult = results[1];\n }\n return firstResult.done === true && secondResult.done === true;\n};","/**\r\n * Compares two async iterables to see if they are equal using a async comparer function.\r\n * @param first First Sequence\r\n * @param second Second Sequence\r\n * @param comparer Async Comparer\r\n * @returns Whether or not the two iterations are equal\r\n */\nexport const sequenceEqualsAsync = async (first, second, comparer) => {\n const firstIterator = first[Symbol.asyncIterator]();\n const secondIterator = second[Symbol.asyncIterator]();\n let results = await Promise.all([firstIterator.next(), secondIterator.next()]);\n let firstResult = results[0];\n let secondResult = results[1];\n while (!firstResult.done && !secondResult.done) {\n if ((await comparer(firstResult.value, secondResult.value)) === false) {\n return false;\n }\n results = await Promise.all([firstIterator.next(), secondIterator.next()]);\n firstResult = results[0];\n secondResult = results[1];\n }\n return firstResult.done === true && secondResult.done === true;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the only element of a sequence that satisfies a specified condition (if specified),\r\n * and throws an exception if more than one such element exists.\r\n * @param source An AsyncIterable to return a single element from.\r\n * @param predicate A function to test an element for a condition. (Optional)\r\n * @throws {InvalidOperationException} No element satisfies the condition in predicate. OR\r\n * More than one element satisfies the condition in predicate. OR\r\n * The source sequence is empty.\r\n * @returns The single element of the input sequence that satisfies a condition.\r\n */\nexport const single = (source, predicate) => {\n if (predicate) {\n return single2(source, predicate);\n } else {\n return single1(source);\n }\n};\nconst single1 = async source => {\n let hasValue = false;\n let singleValue = null;\n for await (const value of source) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n if (hasValue === false) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return singleValue;\n};\nconst single2 = async (source, predicate) => {\n let hasValue = false;\n let singleValue = null;\n for await (const value of source) {\n if (predicate(value)) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n }\n if (hasValue === false) {\n throw new InvalidOperationException(ErrorString.NoMatch);\n }\n return singleValue;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the only element of a sequence that satisfies a specified condition,\r\n * and throws an exception if more than one such element exists.\r\n * @param source An AsyncIterable to return a single element from.\r\n * @param predicate A function to test an element for a condition.\r\n * @throws {InvalidOperationException}\r\n * No element satisfies the condition in predicate. OR\r\n * More than one element satisfies the condition in predicate. OR\r\n * The source sequence is empty.\r\n * @returns The single element of the input sequence that satisfies a condition.\r\n */\nexport const singleAsync = async (source, predicate) => {\n let hasValue = false;\n let singleValue = null;\n for await (const value of source) {\n if (await predicate(value)) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n }\n if (hasValue === false) {\n throw new InvalidOperationException(ErrorString.NoMatch);\n }\n return singleValue;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * If predicate is specified returns the only element of a sequence that satisfies a specified condition,\r\n * ootherwise returns the only element of a sequence. Returns a default value if no such element exists.\r\n * @param source An AsyncIterable to return a single element from.\r\n * @param predicate A function to test an element for a condition. Optional.\r\n * @throws {InvalidOperationException}\r\n * If predicate is specified more than one element satisfies the condition in predicate,\r\n * otherwise the input sequence contains more than one element.\r\n * @returns The single element of the input sequence that satisfies the condition,\r\n * or null if no such element is found.\r\n */\nexport const singleOrDefault = (source, predicate) => {\n if (predicate) {\n return singleOrDefault2(source, predicate);\n } else {\n return singleOrDefault1(source);\n }\n};\nconst singleOrDefault1 = async source => {\n let hasValue = false;\n let singleValue = null;\n for await (const value of source) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n return singleValue;\n};\nconst singleOrDefault2 = async (source, predicate) => {\n let hasValue = false;\n let singleValue = null;\n for await (const value of source) {\n if (predicate(value)) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n }\n return singleValue;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the only element of a sequence that satisfies a specified condition.\r\n * Returns a default value if no such element exists.\r\n * @param source An AsyncIterable to return a single element from.\r\n * @param predicate A function to test an element for a condition. Optional.\r\n * @throws {InvalidOperationException}\r\n * If predicate is specified more than one element satisfies the condition in predicate,\r\n * otherwise the input sequence contains more than one element.\r\n * @returns The single element of the input sequence that satisfies the condition,\r\n * or null if no such element is found.\r\n */\nexport const singleOrDefaultAsync = async (source, predicate) => {\n let hasValue = false;\n let singleValue = null;\n for await (const value of source) {\n if (await predicate(value)) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n }\n return singleValue;\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Bypasses a specified number of elements in a sequence and then returns the remaining elements.\r\n * @param source An AsyncIterable to return elements from.\r\n * @param count The number of elements to skip before returning the remaining elements.\r\n * @returns\r\n * An IAsyncEnumerable that contains the elements that occur after the specified index in the input sequence.\r\n */\nexport const skip = (source, count) => {\n async function* iterator() {\n let i = 0;\n for await (const item of source) {\n if (i++ >= count) {\n yield item;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.\r\n * The element's index is used in the logic of the predicate function.\r\n * @param source An AsyncIterable to return elements from.\r\n * @param predicate A function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IAsyncEnumerable that contains the elements from the input sequence starting at the first element\r\n * in the linear series that does not pass the test specified by predicate.\r\n */\nexport const skipWhile = (source, predicate) => {\n if (predicate.length === 1) {\n return skipWhile1(source, predicate);\n } else {\n return skipWhile2(source, predicate);\n }\n};\nconst skipWhile1 = (source, predicate) => {\n async function* iterator() {\n let skip = true;\n for await (const item of source) {\n if (skip === false) {\n yield item;\n } else if (predicate(item) === false) {\n skip = false;\n yield item;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};\nconst skipWhile2 = (source, predicate) => {\n async function* iterator() {\n let index = 0;\n let skip = true;\n for await (const item of source) {\n if (skip === false) {\n yield item;\n } else if (predicate(item, index) === false) {\n skip = false;\n yield item;\n }\n index++;\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.\r\n * The element's index is used in the logic of the predicate function.\r\n * @param source An AsyncIterable to return elements from.\r\n * @param predicate A function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IAsyncEnumerable that contains the elements from the input sequence starting\r\n * at the first element in the linear series that does not pass the test specified by predicate.\r\n */\nexport const skipWhileAsync = (source, predicate) => {\n if (predicate.length === 1) {\n return skipWhileAsync1(source, predicate);\n } else {\n return skipWhileAsync2(source, predicate);\n }\n};\nconst skipWhileAsync1 = (source, predicate) => {\n async function* iterator() {\n let skip = true;\n for await (const item of source) {\n if (skip === false) {\n yield item;\n } else if ((await predicate(item)) === false) {\n skip = false;\n yield item;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};\nconst skipWhileAsync2 = (source, predicate) => {\n async function* iterator() {\n let index = 0;\n let skip = true;\n for await (const item of source) {\n if (skip === false) {\n yield item;\n } else if ((await predicate(item, index)) === false) {\n skip = false;\n yield item;\n }\n index++;\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","export const sum = (source, selector) => {\n if (selector) {\n return sum2(source, selector);\n } else {\n return sum1(source);\n }\n};\nconst sum1 = async source => {\n let total = 0;\n for await (const value of source) {\n total += value;\n }\n return total;\n};\nconst sum2 = async (source, selector) => {\n let total = 0;\n for await (const value of source) {\n total += selector(value);\n }\n return total;\n};","/**\r\n * Computes the sum of the sequence of numeric values that are obtained by invoking a transform function\r\n * on each element of the input async sequence.\r\n * @param source A sequence of values that are used to calculate a sum.\r\n * @param selector A transform function to apply to each element.\r\n * @returns The sum of values (from the selector) of the async sequence\r\n */\nexport const sumAsync = async (source, selector) => {\n let sum = 0;\n for await (const value of source) {\n sum += await selector(value);\n }\n return sum;\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Returns a specified number of contiguous elements from the start of a sequence.\r\n * @param source The sequence to return elements from.\r\n * @param amount The number of elements to return.\r\n * @returns An IAsyncEnumerable that contains the specified number of elements from the start of the input sequence.\r\n */\nexport const take = (source, amount) => {\n async function* iterator() {\n // negative amounts should yield empty\n let amountLeft = amount > 0 ? amount : 0;\n for await (const item of source) {\n if (amountLeft-- === 0) {\n break;\n } else {\n yield item;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Returns elements from a sequence as long as a specified condition is true.\r\n * The element's index is used in the logic of the predicate function.\r\n * @param source The sequence to return elements from.\r\n * @param predicate A function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IAsyncEnumerable that contains elements from the input sequence\r\n * that occur before the element at which the test no longer passes.\r\n */\nexport const takeWhile = (source, predicate) => {\n if (predicate.length === 1) {\n return takeWhile1(source, predicate);\n } else {\n return takeWhile2(source, predicate);\n }\n};\nconst takeWhile1 = (source, predicate) => {\n async function* iterator() {\n for await (const item of source) {\n if (predicate(item)) {\n yield item;\n } else {\n break;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};\nconst takeWhile2 = (source, predicate) => {\n async function* iterator() {\n let index = 0;\n for await (const item of source) {\n if (predicate(item, index++)) {\n yield item;\n } else {\n break;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Returns elements from a sequence as long as a specified condition is true.\r\n * The element's index is used in the logic of the predicate function.\r\n * @param source The sequence to return elements from.\r\n * @param predicate A async function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IAsyncEnumerable that contains elements from the input sequence\r\n * that occur before the element at which the test no longer passes.\r\n */\nexport const takeWhileAsync = (source, predicate) => {\n if (predicate.length === 1) {\n return takeWhileAsync1(source, predicate);\n } else {\n return takeWhileAsync2(source, predicate);\n }\n};\nconst takeWhileAsync1 = (source, predicate) => {\n async function* iterator() {\n for await (const item of source) {\n if (await predicate(item)) {\n yield item;\n } else {\n break;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};\nconst takeWhileAsync2 = (source, predicate) => {\n async function* iterator() {\n let index = 0;\n for await (const item of source) {\n if (await predicate(item, index++)) {\n yield item;\n } else {\n break;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","/**\r\n * Creates an array from a AsyncIterable.\r\n * @param source An AsyncIterable to create an array from.\r\n * @returns An array of elements\r\n */\nexport const toArray = async source => {\n const array = [];\n for await (const item of source) {\n array.push(item);\n }\n return array;\n};","/**\r\n * Converts an AsyncIterable to a Map.\r\n * @param source An Iterable to convert.\r\n * @param selector A function to serve as a key selector.\r\n * @returns A promise for Map\r\n */\nexport const toMap = async (source, selector) => {\n const map = new Map();\n for await (const value of source) {\n const key = selector(value);\n const array = map.get(key);\n if (array === undefined) {\n map.set(key, [value]);\n } else {\n array.push(value);\n }\n }\n return map;\n};","/**\r\n * Converts an AsyncIterable to a Map.\r\n * @param source An Iterable to convert.\r\n * @param selector An async function to serve as a key selector.\r\n * @returns A promise for Map\r\n */\nexport const toMapAsync = async (source, selector) => {\n const map = new Map();\n for await (const value of source) {\n const key = await selector(value);\n const array = map.get(key);\n if (array === undefined) {\n map.set(key, [value]);\n } else {\n array.push(value);\n }\n }\n return map;\n};","/**\r\n * Converts an Async Iterable to a key value pair object\r\n * @param source Iteration to Convert to an Object\r\n * @param selector Key Selector\r\n * @returns KVP Object Promise\r\n */\nexport const toObject = async (source, selector) => {\n const map = {};\n for await (const value of source) {\n map[selector(value)] = value;\n }\n return map;\n};","/**\r\n * Converts the Iteration to an Object. Duplicate values will be overriden.\r\n * @param source An AsyncIterable to filter.\r\n * @param selector A async function to determine the Key based on the value.\r\n * @returns Promise for Mapping of Key to Value derived from the source iterable\r\n */\nexport const toObjectAsync = async (source, selector) => {\n const map = {};\n for await (const value of source) {\n map[await selector(value)] = value;\n }\n return map;\n};","/**\r\n * Converts the Async Itertion to a Set\r\n * @param source Iteration\r\n * @returns Set containing the iteration values\r\n */\nexport const toSet = async source => {\n const set = new Set();\n for await (const item of source) {\n set.add(item);\n }\n return set;\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Produces the set union of two sequences by using scrict equality comparison or a specified IEqualityComparer.\r\n * @param first An AsyncIterable whose distinct elements form the first set for the union.\r\n * @param second An AsyncIterable whose distinct elements form the second set for the union.\r\n * @param comparer The IEqualityComparer to compare values. Optional.\r\n * @returns An IAsyncEnumerable that contains the elements from both input sequences, excluding duplicates.\r\n */\nexport const union = (first, second, comparer) => {\n if (comparer) {\n return union2(first, second, comparer);\n } else {\n return union1(first, second);\n }\n};\nconst union1 = (first, second) => {\n async function* iterator() {\n const set = new Set();\n for await (const item of first) {\n if (set.has(item) === false) {\n yield item;\n set.add(item);\n }\n }\n for await (const item of second) {\n if (set.has(item) === false) {\n yield item;\n set.add(item);\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};\nconst union2 = (first, second, comparer) => {\n async function* iterator() {\n const result = [];\n for (const source of [first, second]) {\n for await (const value of source) {\n let exists = false;\n for (const resultValue of result) {\n if (comparer(value, resultValue) === true) {\n exists = true;\n break;\n }\n }\n if (exists === false) {\n yield value;\n result.push(value);\n }\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Produces the set union of two sequences by using a specified IAsyncEqualityComparer.\r\n * @param first An AsyncIterable whose distinct elements form the first set for the union.\r\n * @param second An AsyncIterable whose distinct elements form the second set for the union.\r\n * @param comparer The IAsyncEqualityComparer to compare values.\r\n * @returns An IAsyncEnumerable that contains the elements from both input sequences, excluding duplicates.\r\n */\nexport const unionAsync = (first, second, comparer) => {\n async function* iterator() {\n const result = [];\n for (const source of [first, second]) {\n for await (const value of source) {\n let exists = false;\n for (const resultValue of result) {\n if ((await comparer(value, resultValue)) === true) {\n exists = true;\n break;\n }\n }\n if (exists === false) {\n yield value;\n result.push(value);\n }\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Filters a sequence of values based on a predicate.\r\n * Each element's index is used in the logic of the predicate function.\r\n * @param source An AsyncIterable to filter.\r\n * @param predicate A function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IAsyncEnumerable that contains elements from the input sequence that satisfy the condition.\r\n */\nexport const where = (source, predicate) => {\n if (predicate.length === 1) {\n return where1(source, predicate);\n } else {\n return where2(source, predicate);\n }\n};\nconst where1 = (source, predicate) => {\n async function* iterator() {\n for await (const item of source) {\n if (predicate(item) === true) {\n yield item;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};\nconst where2 = (source, predicate) => {\n async function* iterator() {\n let i = 0;\n for await (const item of source) {\n if (predicate(item, i++) === true) {\n yield item;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Filters a sequence of values based on a predicate.\r\n * Each element's index is used in the logic of the predicate function.\r\n * @param source An AsyncIterable to filter.\r\n * @param predicate A async function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IAsyncEnumerable that contains elements from the input sequence that satisfy the condition.\r\n */\nexport const whereAsync = (source, predicate) => {\n if (predicate.length === 1) {\n return whereAsync1(source, predicate);\n } else {\n return whereAsync2(source, predicate);\n }\n};\nconst whereAsync1 = (source, predicate) => {\n async function* iterator() {\n for await (const item of source) {\n if ((await predicate(item)) === true) {\n yield item;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};\nconst whereAsync2 = (source, predicate) => {\n async function* iterator() {\n let i = 0;\n for await (const item of source) {\n if ((await predicate(item, i++)) === true) {\n yield item;\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\nexport const zip = (first, second, resultSelector) => {\n if (resultSelector) {\n return zip2(first, second, resultSelector);\n } else {\n return zip1(first, second);\n }\n};\nconst zip1 = (source, second) => {\n async function* iterator() {\n const firstIterator = source[Symbol.asyncIterator]();\n const secondIterator = second[Symbol.asyncIterator]();\n while (true) {\n const result = await Promise.all([firstIterator.next(), secondIterator.next()]);\n const a = result[0];\n const b = result[1];\n if (a.done && b.done) {\n break;\n } else {\n yield [a.value, b.value];\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};\nconst zip2 = (source, second, resultSelector) => {\n async function* iterator() {\n const firstIterator = source[Symbol.asyncIterator]();\n const secondIterator = second[Symbol.asyncIterator]();\n while (true) {\n const result = await Promise.all([firstIterator.next(), secondIterator.next()]);\n const a = result[0];\n const b = result[1];\n if (a.done && b.done) {\n break;\n } else {\n yield resultSelector(a.value, b.value);\n }\n }\n }\n return new BasicAsyncEnumerable(iterator);\n};","import { BasicAsyncEnumerable } from \"../BasicAsyncEnumerable\";\n/**\r\n * Applies a specified async function to the corresponding elements of two sequences,\r\n * producing a sequence of the results.\r\n * @param first The first sequence to merge.\r\n * @param second The second sequence to merge.\r\n * @param resultSelector An async function that specifies how to merge the elements from the two sequences.\r\n * @returns An IAsyncEnumerable that contains merged elements of two input sequences.\r\n */\nexport const zipAsync = (first, second, resultSelector) => {\n async function* generator() {\n const firstIterator = first[Symbol.asyncIterator]();\n const secondIterator = second[Symbol.asyncIterator]();\n while (true) {\n const results = await Promise.all([firstIterator.next(), secondIterator.next()]);\n const firstNext = results[0];\n const secondNext = results[1];\n if (firstNext.done || secondNext.done) {\n break;\n } else {\n yield resultSelector(firstNext.value, secondNext.value);\n }\n }\n }\n return new BasicAsyncEnumerable(generator);\n};","import { aggregate } from \"./../async/_private/aggregate\";\nimport { all } from \"./../async/_private/all\";\nimport { allAsync } from \"./../async/_private/allAsync\";\nimport { any } from \"./../async/_private/any\";\nimport { anyAsync } from \"./../async/_private/anyAsync\";\nimport { asParallel } from \"./../async/_private/asParallel\";\nimport { average } from \"./../async/_private/average\";\nimport { averageAsync } from \"./../async/_private/averageAsync\";\nimport { concatenate } from \"../async/_private/concatenate\";\nimport { contains } from \"./../async/_private/contains\";\nimport { containsAsync } from \"./../async/_private/containsAsync\";\nimport { count } from \"./../async/_private/count\";\nimport { countAsync } from \"./../async/_private/countAsync\";\nimport { distinct } from \"./../async/_private/distinct\";\nimport { distinctAsync } from \"./../async/_private/distinctAsync\";\nimport { each } from \"./../async/_private/each\";\nimport { eachAsync } from \"./../async/_private/eachAsync\";\nimport { elementAt } from \"./../async/_private/elementAt\";\nimport { elementAtOrDefault } from \"./../async/_private/elementAtOrDefault\";\nimport { except } from \"./../async/_private/except\";\nimport { exceptAsync } from \"./../async/_private/exceptAsync\";\nimport { first } from \"./../async/_private/first\";\nimport { firstAsync } from \"./../async/_private/firstAsync\";\nimport { firstOrDefault } from \"./../async/_private/firstOrDefault\";\nimport { firstOrDefaultAsync } from \"./../async/_private/firstOrDefaultAsync\";\nimport { groupBy } from \"./../async/_private/groupBy\";\nimport { groupByAsync } from \"./../async/_private/groupByAsync\";\nimport { groupByWithSel } from \"./../async/_private/groupByWithSel\";\nimport { intersect } from \"./../async/_private/intersect\";\nimport { intersectAsync } from \"./../async/_private/intersectAsync\";\nimport { join } from \"./../async/_private/join\";\nimport { last } from \"./../async/_private/last\";\nimport { lastAsync } from \"./../async/_private/lastAsync\";\nimport { lastOrDefault } from \"./../async/_private/lastOrDefault\";\nimport { lastOrDefaultAsync } from \"./../async/_private/lastOrDefaultAsync\";\nimport { max } from \"./../async/_private/max\";\nimport { maxAsync } from \"./../async/_private/maxAsync\";\nimport { min } from \"./../async/_private/min\";\nimport { minAsync } from \"./../async/_private/minAsync\";\nimport { ofType } from \"./../async/_private/ofType\";\nimport { orderBy } from \"./../async/_private/orderBy\";\nimport { orderByAsync } from \"./../async/_private/orderByAsync\";\nimport { orderByDescending } from \"./../async/_private/orderByDescending\";\nimport { orderByDescendingAsync } from \"./../async/_private/orderByDescendingAsync\";\nimport { partition } from \"./../async/_private/partition\";\nimport { partitionAsync } from \"./../async/_private/partitionAsync\";\nimport { reverse } from \"./../async/_private/reverse\";\nimport { select } from \"./../async/_private/select\";\nimport { selectAsync } from \"./../async/_private/selectAsync\";\nimport { selectMany } from \"./../async/_private/selectMany\";\nimport { selectManyAsync } from \"./../async/_private/selectManyAsync\";\nimport { sequenceEquals } from \"./../async/_private/sequenceEquals\";\nimport { sequenceEqualsAsync } from \"./../async/_private/sequenceEqualsAsync\";\nimport { single } from \"./../async/_private/single\";\nimport { singleAsync } from \"./../async/_private/singleAsync\";\nimport { singleOrDefault } from \"./../async/_private/singleOrDefault\";\nimport { singleOrDefaultAsync } from \"./../async/_private/singleOrDefaultAsync\";\nimport { skip } from \"./../async/_private/skip\";\nimport { skipWhile } from \"./../async/_private/skipWhile\";\nimport { skipWhileAsync } from \"./../async/_private/skipWhileAsync\";\nimport { sum } from \"./../async/_private/sum\";\nimport { sumAsync } from \"./../async/_private/sumAsync\";\nimport { take } from \"./../async/_private/take\";\nimport { takeWhile } from \"./../async/_private/takeWhile\";\nimport { takeWhileAsync } from \"./../async/_private/takeWhileAsync\";\nimport { toArray } from \"./../async/_private/toArray\";\nimport { toMap } from \"./../async/_private/toMap\";\nimport { toMapAsync } from \"./../async/_private/toMapAsync\";\nimport { toObject } from \"./../async/_private/toObject\";\nimport { toObjectAsync } from \"./../async/_private/toObjectAsync\";\nimport { toSet } from \"./../async/_private/toSet\";\nimport { union } from \"./../async/_private/union\";\nimport { unionAsync } from \"./../async/_private/unionAsync\";\nimport { where } from \"./../async/_private/where\";\nimport { whereAsync } from \"./../async/_private/whereAsync\";\nimport { zip } from \"./../async/_private/zip\";\nimport { zipAsync } from \"./../async/_private/zipAsync\";\n/* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-assignment */\n/**\r\n * Binds LINQ methods to an iterable type\r\n * @param object Iterable Type\r\n */\nexport const bindLinqAsync = object => {\n const prototype = object.prototype;\n const bind = (func, key) => {\n const wrapped = function (...params) {\n return func(this, ...params);\n };\n Object.defineProperty(wrapped, \"length\", {\n value: func.length - 1\n });\n prototype[key] = wrapped;\n };\n bind(aggregate, \"aggregate\");\n bind(all, \"all\");\n bind(allAsync, \"allAsync\");\n bind(any, \"any\");\n bind(anyAsync, \"anyAsync\");\n bind(asParallel, \"asParallel\");\n bind(average, \"average\");\n bind(averageAsync, \"averageAsync\");\n bind(concatenate, \"concatenate\");\n bind(contains, \"contains\");\n bind(containsAsync, \"containsAsync\");\n bind(count, \"count\");\n bind(countAsync, \"countAsync\");\n bind(distinct, \"distinct\");\n bind(distinctAsync, \"distinctAsync\");\n bind(each, \"each\");\n bind(eachAsync, \"eachAsync\");\n bind(elementAt, \"elementAt\");\n bind(elementAtOrDefault, \"elementAtOrDefault\");\n bind(except, \"except\");\n bind(exceptAsync, \"exceptAsync\");\n bind(first, \"first\");\n bind(firstAsync, \"firstAsync\");\n bind(firstOrDefault, \"firstOrDefault\");\n bind(firstOrDefaultAsync, \"firstOrDefaultAsync\");\n bind(groupBy, \"groupBy\");\n bind(groupByAsync, \"groupByAsync\");\n bind(groupByWithSel, \"groupByWithSel\");\n bind(intersect, \"intersect\");\n bind(intersectAsync, \"intersectAsync\");\n bind(join, \"joinByKey\");\n bind(last, \"last\");\n bind(lastAsync, \"lastAsync\");\n bind(lastOrDefault, \"lastOrDefault\");\n bind(lastOrDefaultAsync, \"lastOrDefaultAsync\");\n bind(max, \"max\");\n bind(maxAsync, \"maxAsync\");\n bind(min, \"min\");\n bind(minAsync, \"minAsync\");\n bind(ofType, \"ofType\");\n bind(orderBy, \"orderBy\");\n bind(orderByAsync, \"orderByAsync\");\n bind(orderByDescending, \"orderByDescending\");\n bind(orderByDescendingAsync, \"orderByDescendingAsync\");\n bind(partition, \"partition\");\n bind(partitionAsync, \"partitionAsync\");\n bind(reverse, \"reverse\");\n bind(select, \"select\");\n bind(selectAsync, \"selectAsync\");\n bind(selectMany, \"selectMany\");\n bind(selectManyAsync, \"selectManyAsync\");\n bind(sequenceEquals, \"sequenceEquals\");\n bind(sequenceEqualsAsync, \"sequenceEqualsAsync\");\n bind(single, \"single\");\n bind(singleAsync, \"singleAsync\");\n bind(singleOrDefault, \"singleOrDefault\");\n bind(singleOrDefaultAsync, \"singleOrDefaultAsync\");\n bind(skip, \"skip\");\n bind(skipWhile, \"skipWhile\");\n bind(skipWhileAsync, \"skipWhileAsync\");\n bind(sum, \"sum\");\n bind(sumAsync, \"sumAsync\");\n bind(take, \"take\");\n bind(takeWhile, \"takeWhile\");\n bind(takeWhileAsync, \"takeWhileAsync\");\n bind(toArray, \"toArray\");\n bind(toMap, \"toMap\");\n bind(toMapAsync, \"toMapAsync\");\n bind(toObject, \"toObject\");\n bind(toObjectAsync, \"toObjectAsync\");\n bind(toSet, \"toSet\");\n bind(union, \"union\");\n bind(unionAsync, \"unionAsync\");\n bind(where, \"where\");\n bind(whereAsync, \"whereAsync\");\n bind(zip, \"zip\");\n bind(zipAsync, \"zipAsync\");\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nexport const aggregate = (source, seedOrFunc, func, resultSelector) => {\n if (resultSelector) {\n if (!func) {\n throw new ReferenceError(`TAccumulate function is undefined`);\n }\n return aggregate3(source, seedOrFunc, func, resultSelector);\n } else if (func) {\n return aggregate2(source, seedOrFunc, func);\n } else {\n return aggregate1(source, seedOrFunc);\n }\n};\nconst aggregate1 = async (source, func) => {\n let aggregateValue;\n for await (const value of source) {\n if (aggregateValue) {\n aggregateValue = func(aggregateValue, value);\n } else {\n aggregateValue = value;\n }\n }\n if (aggregateValue === undefined) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return aggregateValue;\n};\nconst aggregate2 = async (source, seed, func) => {\n let aggregateValue = seed;\n for await (const value of source) {\n aggregateValue = func(aggregateValue, value);\n }\n return aggregateValue;\n};\nconst aggregate3 = async (source, seed, func, resultSelector) => {\n let aggregateValue = seed;\n for await (const value of source) {\n aggregateValue = func(aggregateValue, value);\n }\n return resultSelector(aggregateValue);\n};","/* eslint-disable */\n/**\r\n * @private Don't use directly.\r\n */\nexport const nextIteration = (source, onfulfilled) => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const generator = () => dataFunc.generator().then(x => {\n const convValues = new Array(x.length);\n for (let i = 0; i < x.length; i++) {\n convValues[i] = onfulfilled(x[i]);\n }\n return convValues;\n });\n return {\n generator,\n type: 0 /* PromiseToArray */\n };\n }\n case 1 /* ArrayOfPromises */:\n {\n const generator = () => {\n const previousData = dataFunc.generator();\n const newPromises = new Array(previousData.length);\n for (let i = 0; i < previousData.length; i++) {\n newPromises[i] = previousData[i].then(onfulfilled);\n }\n return newPromises;\n };\n return {\n generator,\n type: 1 /* ArrayOfPromises */\n };\n }\n case 2 /* PromiseOfPromises */:\n {\n const generator = async () => {\n const previousData = await dataFunc.generator();\n const newPromises = new Array(previousData.length);\n for (let i = 0; i < previousData.length; i++) {\n newPromises[i] = previousData[i].then(onfulfilled);\n }\n return newPromises;\n };\n return {\n generator,\n type: 2 /* PromiseOfPromises */\n };\n }\n }\n};","import { nextIteration } from \"./_nextIteration\";\n/**\r\n * Determines whether all elements of a sequence satisfy a condition.\r\n * @param source An IParallelEnumerable that contains the elements to apply the predicate to.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns ``true`` if every element of the source sequence passes the test in the specified predicate,\r\n * or if the sequence is empty; otherwise, ``false``.\r\n */\nexport const all = (source, predicate) => {\n const nextIter = nextIteration(source, x => {\n if (!predicate(x)) {\n throw new Error(String(false));\n }\n return true;\n });\n switch (nextIter.type) {\n case 0 /* PromiseToArray */:\n return nextIter.generator().then(() => true, () => false);\n case 1 /* ArrayOfPromises */:\n return Promise.all(nextIter.generator()).then(() => true, () => false);\n case 2 /* PromiseOfPromises */:\n return nextIter.generator().then(Promise.all.bind(Promise)).then(() => true, () => false);\n }\n};","/* eslint-disable */\n/**\r\n * @private Next Iteration for Parallel Enumerable\r\n */\nexport const nextIterationAsync = (source, onfulfilled) => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const generator = async () => {\n const results = await dataFunc.generator();\n const newPromises = new Array(results.length);\n for (let i = 0; i < results.length; i++) {\n newPromises[i] = onfulfilled(results[i]);\n }\n return newPromises;\n };\n return {\n generator,\n type: 2 /* PromiseOfPromises */\n };\n }\n case 1 /* ArrayOfPromises */:\n {\n const generator = () => {\n const promises = dataFunc.generator();\n return promises.map(async promise => {\n const value = await promise;\n return await onfulfilled(value);\n });\n };\n return {\n generator,\n type: 1 /* ArrayOfPromises */\n };\n }\n case 2 /* PromiseOfPromises */:\n {\n const generator = async () => {\n const promises = await dataFunc.generator();\n return promises.map(promise => promise.then(onfulfilled));\n };\n return {\n generator,\n type: 2 /* PromiseOfPromises */\n };\n }\n }\n};","import { nextIterationAsync } from \"./_nextIterationAsync\";\n/**\r\n * Determines whether all elements of a sequence satisfy a condition.\r\n * @param source An IParallelEnumerable that contains the elements to apply the predicate to.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns ``true`` if every element of the source sequence passes the test in the specified predicate,\r\n * or if the sequence is empty; otherwise, ``false``.\r\n */\nexport const allAsync = (source, predicate) => {\n const nextIter = nextIterationAsync(source, async x => {\n if ((await predicate(x)) === false) {\n throw new Error(String(false));\n }\n return true;\n });\n switch (nextIter.type) {\n case 1 /* ArrayOfPromises */:\n return Promise.all(nextIter.generator()).then(() => true, () => false);\n case 2 /* PromiseOfPromises */:\n return nextIter.generator().then(Promise.all.bind(Promise)).then(() => true, () => false);\n }\n};","import { nextIteration } from \"./_nextIteration\";\n/**\r\n * Determines whether a sequence contains any elements.\r\n * If predicate is specified, determines whether any element of a sequence satisfies a condition.\r\n * @param source The IEnumerable to check for emptiness or apply the predicate to.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns Whether or not the sequence contains any elements or contains any elements matching the predicate\r\n */\nexport const any = (source, predicate) => {\n if (predicate) {\n return any2(source, predicate);\n } else {\n return any1(source);\n }\n};\nconst any1 = async source => {\n const dataFunc = source.dataFunc;\n let values;\n switch (dataFunc.type) {\n case 1 /* ArrayOfPromises */:\n values = dataFunc.generator();\n return values.length !== 0;\n case 0 /* PromiseToArray */:\n case 2 /* PromiseOfPromises */:\n values = await dataFunc.generator();\n return values.length !== 0;\n }\n};\nconst any2 = async (source, predicate) => {\n const dataFunc = nextIteration(source, predicate);\n let values;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n values = await dataFunc.generator();\n return values.includes(true);\n case 1 /* ArrayOfPromises */:\n values = await Promise.all(dataFunc.generator());\n return values.includes(true);\n case 2 /* PromiseOfPromises */:\n values = await Promise.all(await dataFunc.generator());\n return values.includes(true);\n }\n};","import { nextIterationAsync } from \"./_nextIterationAsync\";\n/**\r\n * Determines whether any element of a sequence satisfies a condition.\r\n * @param source An IParallelEnumerable whose elements to apply the predicate to.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns Whether or not the parallel sequence contains any value (from the predicate)\r\n */\nexport const anyAsync = async (source, predicate) => {\n const nextIter = nextIterationAsync(source, predicate);\n let promises;\n switch (nextIter.type) {\n case 1 /* ArrayOfPromises */:\n promises = nextIter.generator();\n if (promises.length === 0) {\n return false;\n }\n return new Promise((resolve, reject) => {\n let resolvedCount = 0;\n for (const promise of promises) {\n promise.then(value => {\n resolvedCount++;\n if (value) {\n resolve(true);\n } else if (resolvedCount === promises.length) {\n resolve(false);\n }\n }, reject);\n }\n });\n case 2 /* PromiseOfPromises */:\n promises = await nextIter.generator();\n if (Promise.length === 0) {\n return false;\n }\n const values = await Promise.all(promises);\n return values.includes(true);\n }\n};","import { fromAsync } from \"../../async/static/fromAsync\";\n/**\r\n * Converts a IEnumerable enumerable to an async one.\r\n * @param source A parallel IEnumerable\r\n * @returns IAsyncEnumerable\r\n */\nexport const asAsync = source => {\n async function* generator() {\n for await (const value of source) {\n yield value;\n }\n }\n return fromAsync(generator);\n};","/**\r\n * @private\r\n */\nexport const typeDataToArray = async dataFunc => {\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n return await dataFunc.generator();\n case 1 /* ArrayOfPromises */:\n return await Promise.all(dataFunc.generator());\n case 2 /* PromiseOfPromises */:\n const data = await dataFunc.generator();\n return await Promise.all(data);\n }\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nimport { nextIteration } from \"./_nextIteration\";\nimport { typeDataToArray } from \"./_typeDataToArray\";\nexport const average = async (source, selector) => {\n let data;\n if (selector) {\n data = nextIteration(source, selector);\n } else {\n data = source.dataFunc;\n }\n const values = await typeDataToArray(data);\n if (values.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n let sum = 0;\n for (const item of values) {\n sum += item;\n }\n return sum / values.length;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nimport { nextIterationAsync } from \"./_nextIterationAsync\";\nimport { typeDataToArray } from \"./_typeDataToArray\";\n/**\r\n * Computes the average of a sequence of values\r\n * that are obtained by invoking a transform function on each element of the input sequence.\r\n * @param source A sequence of values to calculate the average of.\r\n * @param selector A transform function to apply to each element.\r\n * @throws {InvalidOperationException} source contains no elements.\r\n * @returns Average value (from the selector) of this parallel sequence\r\n */\nexport const averageAsync = async (source, selector) => {\n const nextIter = nextIterationAsync(source, selector);\n const values = await typeDataToArray(nextIter);\n if (values.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n let value = 0;\n for (const selectedValue of values) {\n value += selectedValue;\n }\n return value / values.length;\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Concatenates two sequences.\r\n * @param first The first sequence to concatenate.\r\n * @param second The sequence to concatenate to the first sequence.\r\n * @returns An IParallelEnumerable that contains the concatenated elements of the two input sequences.\r\n */\nexport const concatenate = (first, second) => {\n const generator = async () => {\n const [firstData, secondData] = await Promise.all([first.toArray(), second.toArray()]);\n return [...firstData, ...secondData];\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { StrictEqualityComparer } from \"../../shared\";\nimport { nextIteration } from \"./_nextIteration\";\n/**\r\n * Determines whether a sequence contains a specified element by using the specified or default IEqualityComparer.\r\n * @param source A sequence in which to locate a value.\r\n * @param value The value to locate in the sequence.\r\n * @param comparer An equality comparer to compare values. Optional.\r\n * @returns Whether or not source contains the specified value\r\n */\nexport const contains = async (source, value, comparer = StrictEqualityComparer) => {\n let values;\n if (comparer) {\n values = nextIteration(source, x => comparer(value, x));\n } else {\n values = nextIteration(source, x => x === value);\n }\n switch (values.type) {\n case 0 /* PromiseToArray */:\n {\n const data = await values.generator();\n return data.some(x => x);\n }\n case 1 /* ArrayOfPromises */:\n {\n const data = await Promise.all(values.generator());\n return data.some(x => x);\n }\n case 2 /* PromiseOfPromises */:\n {\n const data = await Promise.all(await values.generator());\n return data.some(x => x);\n }\n }\n};","import { nextIterationAsync } from \"./_nextIterationAsync\";\n/**\r\n * Determines whether a sequence contains a specified element by using the specified or default IEqualityComparer.\r\n * @param source A sequence in which to locate a value.\r\n * @param value The value to locate in the sequence.\r\n * @param comparer An equality comparer to compare values. Optional.\r\n * @returns Whether or not the specified parallel sequence contains a value\r\n */\nexport const containsAsync = async (source, value, comparer) => {\n const values = nextIterationAsync(source, x => comparer(value, x));\n switch (values.type) {\n case 1 /* ArrayOfPromises */:\n {\n const data = await Promise.all(values.generator());\n return data.some(x => x);\n }\n case 2 /* PromiseOfPromises */:\n {\n const data = await Promise.all(await values.generator());\n return data.some(x => x);\n }\n }\n};","/**\r\n * Returns the number of elements in a sequence\r\n * or represents how many elements in the specified sequence satisfy a condition\r\n * if the predicate is specified.\r\n * @param source A sequence that contains elements to be counted.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @returns The number of elements in the input sequence.\r\n */\nexport const count = (source, predicate) => {\n if (predicate) {\n return count2(source, predicate);\n } else {\n return count1(source);\n }\n};\nconst count1 = async source => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n case 2 /* PromiseOfPromises */:\n const arrayData = await source.toArray();\n return arrayData.length;\n case 1 /* ArrayOfPromises */:\n const promises = dataFunc.generator();\n return promises.length;\n }\n};\nconst count2 = async (source, predicate) => {\n const values = await source.toArray();\n let totalCount = 0;\n for (let i = 0; i < values.length; i++) {\n if (predicate(values[i]) === true) {\n totalCount++;\n }\n }\n return totalCount;\n};","import { nextIterationAsync } from \"./_nextIterationAsync\";\n/**\r\n * Returns how many elements in the specified sequence satisfy a condition\r\n * @param source A sequence that contains elements to be counted.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns How many elements in the specified sequence satisfy the provided predicate.\r\n */\nexport const countAsync = async (source, predicate) => {\n const data = nextIterationAsync(source, predicate);\n let countPromise;\n switch (data.type) {\n case 1 /* ArrayOfPromises */:\n countPromise = Promise.all(data.generator());\n break;\n case 2 /* PromiseOfPromises */:\n countPromise = Promise.all(await data.generator());\n break;\n }\n let totalCount = 0;\n for (const value of await countPromise) {\n if (value) {\n totalCount++;\n }\n }\n return totalCount;\n};","import { StrictEqualityComparer } from \"../../shared\";\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Returns distinct elements from a sequence by using the default or specified equality comparer to compare values.\r\n * @param source The sequence to remove duplicate elements from.\r\n * @param comparer An IEqualityComparer to compare values. Optional. Defaults to Strict Equality Comparison.\r\n * @returns An IParallelEnumerable that contains distinct elements from the source sequence.\r\n */\nexport const distinct = (source, comparer = StrictEqualityComparer) => {\n const generator = async () => {\n const distinctElements = [];\n for (const item of await source.toArray()) {\n const foundItem = distinctElements.find(x => comparer(x, item));\n if (!foundItem) {\n distinctElements.push(item);\n }\n }\n return distinctElements;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Returns distinct elements from a sequence by using the specified equality comparer to compare values.\r\n * @param source The sequence to remove duplicate elements from.\r\n * @param comparer An IAsyncEqualityComparer to compare values.\r\n * @returns An IParallelEnumerable that contains distinct elements from the source sequence.\r\n */\nexport const distinctAsync = (source, comparer) => {\n const generator = async () => {\n const distinctElements = [];\n outerLoop: for (const item of await source.toArray()) {\n for (const distinctElement of distinctElements) {\n const found = await comparer(distinctElement, item);\n if (found) {\n continue outerLoop;\n }\n }\n distinctElements.push(item);\n }\n return distinctElements;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\nimport { nextIteration } from \"./_nextIteration\";\n/**\r\n * Performs a specified action on each element of the IParallelEnumerable\r\n * @param source The source to iterate\r\n * @param action The action to take an each element\r\n * @returns A new IParallelEnumerable that executes the action lazily as you iterate.\r\n */\nexport const each = (source, action) => {\n return new BasicParallelEnumerable(nextIteration(source, x => {\n action(x);\n return x;\n }));\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\nimport { nextIterationAsync } from \"./_nextIterationAsync\";\n/**\r\n * Performs a specified action on each element of the IParallelEnumerable\r\n * @param source The source to iterate\r\n * @param action The action to take an each element\r\n * @returns A new IParallelEnumerable that executes the action lazily as you iterate.\r\n */\nexport const eachAsync = (source, action) => {\n const dataFunc = nextIterationAsync(source, async x => {\n await action(x);\n return x;\n });\n return new BasicParallelEnumerable(dataFunc);\n};","import { ArgumentOutOfRangeException } from \"../../shared\";\n/**\r\n * Returns the element at a specified index in a sequence.\r\n * @param source An IEnumerable to return an element from.\r\n * @param index The zero-based index of the element to retrieve.\r\n * @throws {ArgumentOutOfRangeException}\r\n * index is less than 0 or greater than or equal to the number of elements in source.\r\n * @returns The element at the specified index in the sequence.\r\n */\nexport const elementAt = async (source, index) => {\n if (index < 0) {\n throw new ArgumentOutOfRangeException(\"index\");\n }\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const values = await dataFunc.generator();\n if (index >= values.length) {\n throw new ArgumentOutOfRangeException(\"index\");\n } else {\n return values[index];\n }\n }\n case 1 /* ArrayOfPromises */:\n {\n const promises = dataFunc.generator();\n if (index >= promises.length) {\n throw new ArgumentOutOfRangeException(\"index\");\n } else {\n return await promises[index];\n }\n }\n case 2 /* PromiseOfPromises */:\n {\n const promises = await dataFunc.generator();\n if (index >= promises.length) {\n throw new ArgumentOutOfRangeException(\"index\");\n } else {\n return await promises[index];\n }\n }\n }\n};","/**\r\n * Returns the element at a specified index in a sequence or a default value if the index is out of range.\r\n * @param source An IEnumerable to return an element from.\r\n * @param index The zero-based index of the element to retrieve.\r\n * @returns\r\n * default(TSource) if the index is outside the bounds of the source sequence;\r\n * otherwise, the element at the specified position in the source sequence.\r\n */\nexport const elementAtOrDefault = async (source, index) => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const values = await dataFunc.generator();\n if (index >= values.length) {\n return null;\n } else {\n return values[index];\n }\n }\n case 1 /* ArrayOfPromises */:\n {\n const promises = dataFunc.generator();\n if (index >= promises.length) {\n return null;\n } else {\n return await promises[index];\n }\n }\n case 2 /* PromiseOfPromises */:\n {\n const promises = await dataFunc.generator();\n if (index >= promises.length) {\n return null;\n } else {\n return await promises[index];\n }\n }\n }\n};","import { StrictEqualityComparer } from \"../../shared\";\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Produces the set difference of two sequences by using the comparer provided\r\n * or EqualityComparer to compare values.\r\n * @param first An IAsyncParallel whose elements that are not also in second will be returned.\r\n * @param second An IAsyncParallel whose elements that also occur in the first sequence\r\n * will cause those elements to be removed from the returned sequence.\r\n * @param comparer An IEqualityComparer to compare values. Optional.\r\n * @returns A sequence that contains the set difference of the elements of two sequences.\r\n */\nexport const except = (first, second, comparer = StrictEqualityComparer) => {\n const generator = async () => {\n const [firstValues, secondValues] = await Promise.all([first.toArray(), second.toArray()]);\n const resultValues = [];\n for (const firstItem of firstValues) {\n let exists = false;\n for (let j = 0; j < secondValues.length; j++) {\n const secondItem = secondValues[j];\n if (comparer(firstItem, secondItem) === true) {\n exists = true;\n break;\n }\n }\n if (exists === false) {\n resultValues.push(firstItem);\n }\n }\n return resultValues;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Produces the set difference of two sequences by using the comparer provided to compare values.\r\n * @param first An IAsyncParallel whose elements that are not also in second will be returned.\r\n * @param second An IAsyncParallel whose elements that also occur in the first sequence\r\n * will cause those elements to be removed from the returned sequence.\r\n * @param comparer An IAsyncEqualityComparer to compare values.\r\n * @returns A sequence that contains the set difference of the elements of two sequences.\r\n */\nexport const exceptAsync = (first, second, comparer) => {\n const generator = async () => {\n const [firstValues, secondValues] = await Promise.all([first.toArray(), second.toArray()]);\n const resultValues = [];\n for (const firstItem of firstValues) {\n let exists = false;\n for (let j = 0; j < secondValues.length; j++) {\n const secondItem = secondValues[j];\n if ((await comparer(firstItem, secondItem)) === true) {\n exists = true;\n break;\n }\n }\n if (exists === false) {\n resultValues.push(firstItem);\n }\n }\n return resultValues;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { typeDataToArray } from \"./_typeDataToArray\";\n/**\r\n * Creates an array from a IParallelEnumerable.\r\n * @param source An IParallelEnumerable to create an array from.\r\n * @returns An array of elements\r\n */\nexport const toArray = source => {\n return typeDataToArray(source.dataFunc);\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nimport { toArray } from \"./toArray\";\n/**\r\n * Returns the first element of a sequence.\r\n * If predicate is specified, returns the first element in a sequence that satisfies a specified condition.\r\n * @param source The IParallelEnumerable to return the first element of.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @throws {InvalidOperationException} The source sequence is empty.\r\n * @returns The first element in the specified sequence.\r\n * If predicate is specified,\r\n * the first element in the sequence that passes the test in the specified predicate function.\r\n */\nexport const first = (source, predicate) => {\n if (predicate) {\n return first2(source, predicate);\n } else {\n return first1(source);\n }\n};\nconst first1 = async source => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const values = await dataFunc.generator();\n if (values.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return values[0];\n }\n }\n case 1 /* ArrayOfPromises */:\n {\n const promises = dataFunc.generator();\n if (promises.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return await promises[0];\n }\n }\n case 2 /* PromiseOfPromises */:\n {\n const promises = await dataFunc.generator();\n if (promises.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return await promises[0];\n }\n }\n }\n};\nconst first2 = async (source, predicate) => {\n const data = await toArray(source);\n for (const value of data) {\n if (predicate(value) === true) {\n return value;\n }\n }\n throw new InvalidOperationException(ErrorString.NoMatch);\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nimport { toArray } from \"./toArray\";\n/**\r\n * Returns the first element in a sequence that satisfies a specified condition.\r\n * @param source An IParallelEnumerable to return an element from.\r\n * @param predicate An async function to test each element for a condition.\r\n * @throws {InvalidOperationException} No elements in Iteration matching predicate\r\n * @returns The first element in the sequence that passes the test in the specified predicate function.\r\n */\nexport const firstAsync = async (source, predicate) => {\n const data = await toArray(source);\n for (const value of data) {\n if ((await predicate(value)) === true) {\n return value;\n }\n }\n throw new InvalidOperationException(ErrorString.NoMatch);\n};","import { toArray } from \"./toArray\";\n/**\r\n * Returns first element in sequence that satisfies predicate otherwise\r\n * returns the first element in the sequence. Returns null if no value found.\r\n * @param source An IParallelEnumerable to return an element from.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @returns The first element in the sequence\r\n * or the first element that passes the test in the specified predicate function.\r\n * Returns null if no value found.\r\n */\nexport const firstOrDefault = (source, predicate) => {\n if (predicate) {\n return firstOrDefault2(source, predicate);\n } else {\n return firstOrDefault1(source);\n }\n};\nconst firstOrDefault1 = async source => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const values = await dataFunc.generator();\n if (values.length === 0) {\n return null;\n } else {\n return values[0];\n }\n }\n case 1 /* ArrayOfPromises */:\n {\n const promises = dataFunc.generator();\n if (promises.length === 0) {\n return null;\n } else {\n return await promises[0];\n }\n }\n case 2 /* PromiseOfPromises */:\n {\n const promises = await dataFunc.generator();\n if (promises.length === 0) {\n return null;\n } else {\n return await promises[0];\n }\n }\n }\n};\nconst firstOrDefault2 = async (source, predicate) => {\n const data = await toArray(source);\n for (const value of data) {\n if (predicate(value) === true) {\n return value;\n }\n }\n return null;\n};","import { toArray } from \"./toArray\";\n/**\r\n * Returns first element in sequence that satisfies. Returns null if no value found.\r\n * @param source An IParallelEnumerable to return an element from.\r\n * @param predicate An async function to test each element for a condition.\r\n * @returns The first element that passes the test in the specified predicate function.\r\n * Returns null if no value found.\r\n */\nexport const firstOrDefaultAsync = async (source, predicate) => {\n const data = await toArray(source);\n for (const value of data) {\n if ((await predicate(value)) === true) {\n return value;\n }\n }\n return null;\n};","import { Grouping } from \"../../sync/Grouping\";\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\nexport const groupBy = (source, keySelector, comparer) => {\n if (comparer) {\n return groupBy_0(source, keySelector, comparer);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return groupBy_0_Simple(source, keySelector);\n }\n};\nconst groupBy_0_Simple = (source, keySelector) => {\n const generator = async () => {\n const keyMap = {};\n for (const value of await source.toArray()) {\n const key = keySelector(value);\n const grouping = keyMap[key]; // TODO\n if (grouping) {\n grouping.push(value);\n } else {\n keyMap[key] = new Grouping(key, value);\n }\n }\n const results = new Array();\n /* eslint-disable guard-for-in */\n for (const value in keyMap) {\n results.push(keyMap[value]);\n }\n /* eslint-enable guard-for-in */\n return results;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};\nconst groupBy_0 = (source, keySelector, comparer) => {\n const generator = async () => {\n const keyMap = new Array();\n for (const value of await source.toArray()) {\n const key = keySelector(value);\n let found = false;\n for (let i = 0; i < keyMap.length; i++) {\n const group = keyMap[i];\n if (comparer(group.key, key)) {\n group.push(value);\n found = true;\n break;\n }\n }\n if (found === false) {\n keyMap.push(new Grouping(key, value));\n }\n }\n const results = new Array();\n for (const g of keyMap) {\n results.push(g);\n }\n return results;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { Grouping } from \"../../sync/Grouping\";\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\nimport { nextIterationAsync } from \"./_nextIterationAsync\";\nexport const groupByAsync = (source, keySelector, comparer) => {\n if (comparer) {\n return groupByAsync_0(source, keySelector, comparer);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return groupByAsync_0_Simple(source, keySelector);\n }\n};\nconst groupByAsync_0 = (source, keySelector, comparer) => {\n const generator = async () => {\n const typedData = nextIterationAsync(source, async value => {\n const key = await keySelector(value);\n return [key, value];\n });\n let values;\n switch (typedData.type) {\n case 1 /* ArrayOfPromises */:\n values = await Promise.all(typedData.generator());\n break;\n case 2 /* PromiseOfPromises */:\n values = await Promise.all(await typedData.generator());\n break;\n }\n const keyMap = new Array();\n for (const [key, value] of values) {\n let found = false;\n for (let i = 0; i < keyMap.length; i++) {\n const group = keyMap[i];\n if ((await comparer(group.key, key)) === true) {\n group.push(value);\n found = true;\n break;\n }\n }\n if (found === false) {\n keyMap.push(new Grouping(key, value));\n }\n }\n const results = new Array();\n for (const g of keyMap) {\n results.push(g);\n }\n return results;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};\nconst groupByAsync_0_Simple = (source, keySelector) => {\n const generator = async () => {\n const typedData = nextIterationAsync(source, async value => {\n const key = await keySelector(value);\n return [key, value];\n });\n let values;\n switch (typedData.type) {\n case 1 /* ArrayOfPromises */:\n values = await Promise.all(typedData.generator());\n break;\n case 2 /* PromiseOfPromises */:\n values = await Promise.all(await typedData.generator());\n break;\n }\n const keyMap = {};\n for (const [key, value] of values) {\n const grouping = keyMap[key];\n if (grouping) {\n grouping.push(value);\n } else {\n keyMap[key] = new Grouping(key, value);\n }\n }\n const results = new Array();\n /* eslint-disable guard-for-in */\n for (const value in keyMap) {\n results.push(keyMap[value]);\n }\n /* eslint-enable guard-for-in */\n return results;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { Grouping } from \"../../sync/Grouping\";\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\nexport const groupByWithSel = (source, keySelector, elementSelector, comparer) => {\n if (comparer) {\n return groupBy1(source, keySelector, elementSelector, comparer);\n } else {\n return groupBy1Simple(source, keySelector, elementSelector);\n }\n};\nconst groupBy1 = (source, keySelector, elementSelector, comparer) => {\n const generator = async () => {\n const keyMap = new Array();\n for await (const value of source) {\n const key = keySelector(value);\n let found = false;\n for (let i = 0; i < keyMap.length; i++) {\n const group = keyMap[i];\n if (comparer(group.key, key)) {\n group.push(elementSelector(value));\n found = true;\n break;\n }\n }\n if (found === false) {\n const element = elementSelector(value);\n keyMap.push(new Grouping(key, element));\n }\n }\n const results = new Array();\n for (const value of keyMap) {\n results.push(value);\n }\n return results;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};\nconst groupBy1Simple = (source, keySelector, elementSelector) => {\n // generate(): AsyncIterableIterator>\n const generator = async () => {\n const keyMap = {};\n for (const value of await source.toArray()) {\n const key = keySelector(value);\n const grouping = keyMap[key];\n const element = elementSelector(value);\n if (grouping) {\n grouping.push(element);\n } else {\n keyMap[key] = new Grouping(key, element);\n }\n }\n /* eslint-disable guard-for-in */\n const results = new Array();\n for (const value in keyMap) {\n results.push(keyMap[value]);\n }\n /* eslint-enable guard-for-in */\n return results;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { StrictEqualityComparer } from \"../../shared\";\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Produces the set intersection of two sequences by using the specified IEqualityComparer to compare values.\r\n * If not comparer is specified, uses the @see {StrictEqualityComparer}\r\n * @param first An IParallelEnumerable whose distinct elements that also appear in second will be returned.\r\n * @param second An IAsyncParallel whose distinct elements that also appear in the first sequence will be returned.\r\n * @param comparer An IAsyncEqualityComparer to compare values. Optional.\r\n * @returns A sequence that contains the elements that form the set intersection of two sequences.\r\n */\nexport const intersect = (first, second, comparer = StrictEqualityComparer) => {\n const generator = async () => {\n const firstResults = await first.distinct(comparer).toArray();\n if (firstResults.length === 0) {\n return [];\n }\n const secondResults = await second.toArray();\n const results = new Array();\n for (let i = 0; i < firstResults.length; i++) {\n const firstValue = firstResults[i];\n for (let j = 0; j < secondResults.length; j++) {\n const secondValue = secondResults[j];\n if (comparer(firstValue, secondValue) === true) {\n results.push(firstValue);\n break;\n }\n }\n }\n return results;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Produces the set intersection of two sequences by using the specified IAsyncEqualityComparer to compare values.\r\n * @param first An IParallelEnumerable whose distinct elements that also appear in second will be returned.\r\n * @param second An IAsyncParallel whose distinct elements that also appear in the first sequence will be returned.\r\n * @param comparer An IAsyncEqualityComparer to compare values.\r\n * @returns A sequence that contains the elements that form the set intersection of two sequences.\r\n */\nexport const intersectAsync = (first, second, comparer) => {\n const generator = async () => {\n const firstResults = await first.distinctAsync(comparer).toArray();\n if (firstResults.length === 0) {\n return [];\n }\n const secondResults = await second.toArray();\n const results = new Array();\n for (let i = 0; i < firstResults.length; i++) {\n const firstValue = firstResults[i];\n for (let j = 0; j < secondResults.length; j++) {\n const secondValue = secondResults[j];\n if ((await comparer(firstValue, secondValue)) === true) {\n results.push(firstValue);\n break;\n }\n }\n }\n return results;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { StrictEqualityComparer } from \"../../shared\";\nimport { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Correlates the elements of two sequences based on matching keys.\r\n * A specified IEqualityComparer is used to compare keys or the strict equality comparer.\r\n * @param outer The first sequence to join.\r\n * @param inner The sequence to join to the first sequence.\r\n * @param outerKeySelector A function to extract the join key from each element of the first sequence.\r\n * @param innerKeySelector A function to extract the join key from each element of the second sequence.\r\n * @param resultSelector A function to create a result element from two matching elements.\r\n * @param comparer An IEqualityComparer to hash and compare keys. Optional.\r\n * @returns An IParallelEnumerable that has elements of type TResult that\r\n * are obtained by performing an inner join on two sequences.\r\n */\nexport const join = (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer = StrictEqualityComparer) => {\n const generator = async () => {\n const [innerArray, outerArray] = await Promise.all([inner.toArray(), outer.toArray()]);\n const results = new Array();\n for (const o of outerArray) {\n const outerKey = outerKeySelector(o);\n for (const i of innerArray) {\n const innerKey = innerKeySelector(i);\n if (comparer(outerKey, innerKey) === true) {\n results.push(resultSelector(o, i));\n }\n }\n }\n return results;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the last element of a sequence.\r\n * If predicate is specified, the last element of a sequence that satisfies a specified condition.\r\n * @param source An IParallelEnumerable to return the last element of.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @throws {InvalidOperationException} The source sequence is empty.\r\n * @returns The value at the last position in the source sequence\r\n * or the last element in the sequence that passes the test in the specified predicate function.\r\n */\nexport const last = (source, predicate) => {\n if (predicate) {\n return last2(source, predicate);\n } else {\n return last1(source);\n }\n};\nconst last1 = async source => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const values = await dataFunc.generator();\n if (values.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return values[values.length - 1];\n }\n }\n case 1 /* ArrayOfPromises */:\n {\n const promises = dataFunc.generator();\n if (promises.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return await promises[promises.length - 1];\n }\n }\n case 2 /* PromiseOfPromises */:\n {\n const promises = await dataFunc.generator();\n if (promises.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n } else {\n return await promises[promises.length - 1];\n }\n }\n }\n};\nconst last2 = async (source, predicate) => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const values = await dataFunc.generator();\n // Promise Array - Predicate\n for (let i = values.length - 1; i >= 0; i--) {\n const value = values[i];\n if (predicate(value)) {\n return value;\n }\n }\n break;\n }\n case 1 /* ArrayOfPromises */:\n {\n const promises = dataFunc.generator();\n // Promise Array - Predicate\n for (let i = promises.length - 1; i >= 0; i--) {\n const value = await promises[i];\n if (predicate(value)) {\n return value;\n }\n }\n break;\n }\n case 2 /* PromiseOfPromises */:\n {\n const promises = await dataFunc.generator();\n // Promise Array - Predicate\n for (let i = promises.length - 1; i >= 0; i--) {\n const value = await promises[i];\n if (predicate(value)) {\n return value;\n }\n }\n break;\n }\n }\n throw new InvalidOperationException(ErrorString.NoMatch);\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\n/**\r\n * Returns the last element of a sequence that satisfies a specified condition.\r\n * @param source An IParallelEnumerable to return the last element of.\r\n * @param predicate A function to test each element for a condition.\r\n * @throws {InvalidOperationException} The source sequence is empty.\r\n * @returns The last element in the sequence that passes the test in the specified predicate function.\r\n */\nexport const lastAsync = async (source, predicate) => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const values = await dataFunc.generator();\n // Promise Array - Predicate\n for (let i = values.length - 1; i >= 0; i--) {\n const value = values[i];\n if ((await predicate(value)) === true) {\n return value;\n }\n }\n break;\n }\n case 1 /* ArrayOfPromises */:\n {\n const promises = dataFunc.generator();\n // Promise Array - Predicate\n for (let i = promises.length - 1; i >= 0; i--) {\n const value = await promises[i];\n if ((await predicate(value)) === true) {\n return value;\n }\n }\n break;\n }\n case 2 /* PromiseOfPromises */:\n {\n const promises = await dataFunc.generator();\n // Promise Array - Predicate\n for (let i = promises.length - 1; i >= 0; i--) {\n const value = await promises[i];\n if ((await predicate(value)) === true) {\n return value;\n }\n }\n break;\n }\n }\n throw new InvalidOperationException(ErrorString.NoMatch);\n};","/**\r\n * Returns the last element of a sequence.\r\n * If predicate is specified, the last element of a sequence that satisfies a specified condition.\r\n * @param source An IParallelEnumerable to return the last element of.\r\n * @param predicate A function to test each element for a condition. Optional.\r\n * @returns The value at the last position in the source sequence\r\n * or the last element in the sequence that passes the test in the specified predicate function.\r\n */\nexport const lastOrDefault = (source, predicate) => {\n if (predicate) {\n return lastOrDefault2(source, predicate);\n } else {\n return lastOrDefault1(source);\n }\n};\nconst lastOrDefault1 = async source => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const values = await dataFunc.generator();\n if (values.length === 0) {\n return null;\n } else {\n return values[values.length - 1];\n }\n }\n case 1 /* ArrayOfPromises */:\n {\n const promises = dataFunc.generator();\n if (promises.length === 0) {\n return null;\n } else {\n return await promises[promises.length - 1];\n }\n }\n case 2 /* PromiseOfPromises */:\n {\n const promises = await dataFunc.generator();\n if (promises.length === 0) {\n return null;\n } else {\n return await promises[promises.length - 1];\n }\n }\n }\n};\nconst lastOrDefault2 = async (source, predicate) => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const values = await dataFunc.generator();\n for (let i = values.length - 1; i >= 0; i--) {\n const value = values[i];\n if (predicate(value)) {\n return value;\n }\n }\n break;\n }\n case 1 /* ArrayOfPromises */:\n {\n const promises = dataFunc.generator();\n for (let i = promises.length - 1; i >= 0; i--) {\n const value = await promises[i];\n if (predicate(value)) {\n return value;\n }\n }\n break;\n }\n case 2 /* PromiseOfPromises */:\n {\n const promises = await dataFunc.generator();\n for (let i = promises.length - 1; i >= 0; i--) {\n const value = await promises[i];\n if (predicate(value)) {\n return value;\n }\n }\n break;\n }\n }\n return null;\n};","/**\r\n * Returns the last element of a sequence that satisfies a specified condition.\r\n * @param source An IParallelEnumerable to return the last element of.\r\n * @param predicate A function to test each element for a condition.\r\n * @returns The last element in the sequence that passes the test in the specified predicate function.\r\n * Null if no elements.\r\n */\nexport const lastOrDefaultAsync = async (source, predicate) => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const values = await dataFunc.generator();\n for (let i = values.length - 1; i >= 0; i--) {\n const value = values[i];\n if ((await predicate(value)) === true) {\n return value;\n }\n }\n break;\n }\n case 1 /* ArrayOfPromises */:\n {\n const promises = dataFunc.generator();\n for (let i = promises.length - 1; i >= 0; i--) {\n const value = await promises[i];\n if ((await predicate(value)) === true) {\n return value;\n }\n }\n break;\n }\n case 2 /* PromiseOfPromises */:\n {\n const promises = await dataFunc.generator();\n for (let i = promises.length - 1; i >= 0; i--) {\n const value = await promises[i];\n if ((await predicate(value)) === true) {\n return value;\n }\n }\n break;\n }\n }\n return null;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nimport { nextIteration } from \"./_nextIteration\";\nimport { typeDataToArray } from \"./_typeDataToArray\";\nexport const max = async (source, selector) => {\n let dataFunc;\n if (selector) {\n dataFunc = nextIteration(source, selector);\n } else {\n dataFunc = source.dataFunc;\n }\n const data = await typeDataToArray(dataFunc);\n if (data.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return Math.max.apply(null, data);\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nimport { nextIterationAsync } from \"./_nextIterationAsync\";\nimport { typeDataToArray } from \"./_typeDataToArray\";\n/**\r\n * Invokes an async transform function on each element of a sequence and returns the maximum value.\r\n * @param source A sequence of values to determine the maximum value of.\r\n * @param selector A transform function to apply to each element.\r\n * @throws {InvalidOperationException} source contains no elements.\r\n * @returns The maximum value in the sequence.\r\n */\nexport const maxAsync = async (source, selector) => {\n const dataFunc = nextIterationAsync(source, selector);\n const maxInfo = await typeDataToArray(dataFunc);\n if (maxInfo.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return Math.max.apply(null, maxInfo);\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nimport { nextIteration } from \"./_nextIteration\";\nimport { typeDataToArray } from \"./_typeDataToArray\";\nexport const min = async (source, selector) => {\n let dataFunc;\n if (selector) {\n dataFunc = nextIteration(source, selector);\n } else {\n dataFunc = source.dataFunc;\n }\n const data = await typeDataToArray(dataFunc);\n if (data.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return Math.min.apply(null, data);\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nimport { nextIterationAsync } from \"./_nextIterationAsync\";\nimport { typeDataToArray } from \"./_typeDataToArray\";\n/**\r\n * Invokes a transform function on each element of a sequence and returns the minimum value.\r\n * @param source A sequence of values to determine the minimum value of.\r\n * @param selector A transform function to apply to each element.\r\n * @throws {InvalidOperationException} source contains no elements.\r\n * @returns The minimum value in the sequence.\r\n */\nexport const minAsync = async (source, selector) => {\n const dataFunc = nextIterationAsync(source, selector);\n const maxInfo = await typeDataToArray(dataFunc);\n if (maxInfo.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return Math.min.apply(null, maxInfo);\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\nimport { nextIteration } from \"./_nextIteration\";\nimport { typeDataToArray } from \"./_typeDataToArray\";\n/**\r\n * Applies a type filter to a source iteration\r\n * @param source Async Iteration to Filtery by Type\r\n * @param type Either value for typeof or a consturctor function\r\n * @returns Values that match the type string or are instance of type\r\n */\nexport const ofType = (source, type) => {\n const typeCheck = typeof type === \"string\" ? x => [typeof x === type, x] : x => [x instanceof type, x];\n const generator = async () => {\n const dataFunc = nextIteration(source, typeCheck);\n const values = await typeDataToArray(dataFunc);\n const filteredValues = [];\n for (const [pass, value] of values) {\n if (pass) {\n filteredValues.push(value);\n }\n }\n return filteredValues;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","/**\r\n * Converts values to a key values map.\r\n * @param source Async Iterable\r\n * @param keySelector Async Key Selector for Map\r\n * @returns Promise for a Map for Key to Values\r\n */\nexport const asAsyncKeyMap = async (source, keySelector) => {\n const map = new Map();\n for await (const item of source) {\n const key = await keySelector(item);\n const currentMapping = map.get(key);\n if (currentMapping) {\n currentMapping.push(item);\n } else {\n map.set(key, [item]);\n }\n }\n return map;\n};","import { asAsyncKeyMap } from \"./asAsyncKeyMap\";\n/**\r\n * Sorts values in an Async Iterable based on key and a key comparer.\r\n * @param source Async Iterable\r\n * @param keySelector Async Key Selector\r\n * @param ascending Ascending or Descending Sort\r\n * @param comparer Key Comparer for Sorting. Optional.\r\n * @returns Async Iterable Iterator of arrays\r\n */\nexport async function* asAsyncSortedKeyValues(source, keySelector, ascending, comparer) {\n const map = await asAsyncKeyMap(source, keySelector);\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\n if (ascending) {\n for (let i = 0; i < sortedKeys.length; i++) {\n yield map.get(sortedKeys[i]);\n }\n } else {\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\n yield map.get(sortedKeys[i]);\n }\n }\n}","/**\r\n * Converts values to a key values map.\r\n * @param source Iterable\r\n * @param keySelector Async Key Selector for Map\r\n * @returns Promise for a Map for Key to Values\r\n */\nexport const asAsyncKeyMapSync = async (source, keySelector) => {\n const map = new Map();\n for (const item of source) {\n const key = await keySelector(item);\n const currentMapping = map.get(key);\n if (currentMapping) {\n currentMapping.push(item);\n } else {\n map.set(key, [item]);\n }\n }\n return map;\n};","import { asAsyncKeyMapSync } from \"./asAsyncKeyMapSync\";\n/**\r\n * Sorts values in an Async Iterable based on key and a key comparer.\r\n * @param source Iterable\r\n * @param keySelector Async Key Selector\r\n * @param ascending Ascending or Descending Sort\r\n * @param comparer Key Comparer for Sorting. Optional.\r\n * @returns Async Iterable Iterator of arrays\r\n */\nexport async function* asAsyncSortedKeyValuesSync(source, keySelector, ascending, comparer) {\n const map = await asAsyncKeyMapSync(source, keySelector);\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\n if (ascending) {\n for (let i = 0; i < sortedKeys.length; i++) {\n yield map.get(sortedKeys[i]);\n }\n } else {\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\n yield map.get(sortedKeys[i]);\n }\n }\n}","/**\r\n * Converts values to a key values map.\r\n * @param source Async Iterable\r\n * @param keySelector Key Selector for Map\r\n * @returns Promise for a Map for Key to Values\r\n */\nexport const asKeyMap = async (source, keySelector) => {\n const map = new Map();\n for await (const item of source) {\n const key = keySelector(item);\n const currentMapping = map.get(key);\n if (currentMapping) {\n currentMapping.push(item);\n } else {\n map.set(key, [item]);\n }\n }\n return map;\n};","import { asKeyMap } from \"./asKeyMap\";\n/**\r\n * Sorts values in an Iterable based on key and a key comparer.\r\n * @param source Async Iterable\r\n * @param keySelector Key Selector\r\n * @param ascending Ascending or Descending Sort\r\n * @param comparer Key Comparer for Sorting. Optional.\r\n * @returns Async Iterable Iterator\r\n */\nexport async function* asSortedKeyValues(source, keySelector, ascending, comparer) {\n const map = await asKeyMap(source, keySelector);\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\n if (ascending) {\n for (let i = 0; i < sortedKeys.length; i++) {\n yield map.get(sortedKeys[i]);\n }\n } else {\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\n yield map.get(sortedKeys[i]);\n }\n }\n}","/**\r\n * Converts values to a key values map.\r\n * @param source Iterable\r\n * @param keySelector Key Selector for Map\r\n * @returns Map for Key to Values\r\n */\nexport const asKeyMapSync = (source, keySelector) => {\n const map = new Map();\n for (const item of source) {\n const key = keySelector(item);\n const currentMapping = map.get(key);\n if (currentMapping) {\n currentMapping.push(item);\n } else {\n map.set(key, [item]);\n }\n }\n return map;\n};","import { asKeyMapSync } from \"./asKeyMapSync\";\n/**\r\n * Sorts values in an Iterable based on key and a key comparer.\r\n * @param source Iterable\r\n * @param keySelector Key Selector\r\n * @param ascending Ascending or Descending Sort\r\n * @param comparer Key Comparer for Sorting. Optional.\r\n * @returns Async Iterable Iterator\r\n */\nexport async function* asSortedKeyValuesSync(source, keySelector, ascending, comparer) {\n const map = asKeyMapSync(source, keySelector);\n const sortedKeys = [...map.keys()].sort(comparer ? comparer : undefined);\n if (ascending) {\n for (let i = 0; i < sortedKeys.length; i++) {\n yield map.get(sortedKeys[i]);\n }\n } else {\n for (let i = sortedKeys.length - 1; i >= 0; i--) {\n yield map.get(sortedKeys[i]);\n }\n }\n}","import { asAsyncSortedKeyValues } from \"./_ordered/asAsyncSortedKeyValues\";\nimport { asAsyncSortedKeyValuesSync } from \"./_ordered/asAsyncSortedKeyValuesSync\";\nimport { asSortedKeyValues } from \"./_ordered/asSortedKeyValues\";\nimport { asSortedKeyValuesSync } from \"./_ordered/asSortedKeyValuesSync\";\nimport { BasicParallelEnumerable } from \"./BasicParallelEnumerable\";\n/**\r\n * Ordered Parallel Enumerable\r\n * @private\r\n */\nexport class OrderedParallelEnumerable extends BasicParallelEnumerable {\n constructor(orderedPairs) {\n super({\n generator: async () => {\n const asyncVals = orderedPairs();\n const array = [];\n for await (const val of asyncVals) {\n array.push(...val);\n }\n return array;\n },\n type: 0 /* PromiseToArray */\n });\n this.orderedPairs = orderedPairs;\n }\n static generateAsync(source, keySelector, ascending, comparer) {\n let orderedPairs;\n if (source instanceof OrderedParallelEnumerable) {\n orderedPairs = async function* () {\n for await (const pair of source.orderedPairs()) {\n yield* asAsyncSortedKeyValuesSync(pair, keySelector, ascending, comparer);\n }\n };\n } else {\n orderedPairs = () => asAsyncSortedKeyValues(source, keySelector, ascending, comparer);\n }\n return new OrderedParallelEnumerable(orderedPairs);\n }\n static generate(source, keySelector, ascending, comparer) {\n let orderedPairs;\n if (source instanceof OrderedParallelEnumerable) {\n orderedPairs = async function* () {\n for await (const pair of source.orderedPairs()) {\n yield* asSortedKeyValuesSync(pair, keySelector, ascending, comparer);\n }\n };\n } else {\n orderedPairs = () => asSortedKeyValues(source, keySelector, ascending, comparer);\n }\n return new OrderedParallelEnumerable(orderedPairs);\n }\n thenBy(keySelector, comparer) {\n return OrderedParallelEnumerable.generate(this, keySelector, true, comparer);\n }\n thenByAsync(keySelector, comparer) {\n return OrderedParallelEnumerable.generateAsync(this, keySelector, true, comparer);\n }\n thenByDescending(keySelector, comparer) {\n return OrderedParallelEnumerable.generate(this, keySelector, false, comparer);\n }\n thenByDescendingAsync(keySelector, comparer) {\n return OrderedParallelEnumerable.generateAsync(this, keySelector, false, comparer);\n }\n}","import { OrderedParallelEnumerable } from \"../OrderedParallelEnumerable\";\n/**\r\n * Sorts the elements of a sequence in ascending order by using a specified or default comparer.\r\n * @param source A sequence of values to order.\r\n * @param keySelector A function to extract a key from an element.\r\n * @param comparer An IComparer to compare keys. Optional.\r\n * @returns An IOrderedParallelEnumerable whose elements are sorted according to a key.\r\n */\nexport const orderBy = (source, keySelector, comparer) => {\n return OrderedParallelEnumerable.generate(source, keySelector, true, comparer);\n};","import { OrderedParallelEnumerable } from \"../OrderedParallelEnumerable\";\n/**\r\n * Sorts the elements of a sequence in ascending order by using a specified comparer.\r\n * @param source A sequence of values to order.\r\n * @param keySelector An async function to extract a key from an element.\r\n * @param comparer An IComparer to compare keys.\r\n * @returns An IOrderedParallelEnumerable whose elements are sorted according to a key.\r\n */\nexport const orderByAsync = (source, keySelector, comparer) => {\n return OrderedParallelEnumerable.generateAsync(source, keySelector, true, comparer);\n};","import { OrderedParallelEnumerable } from \"../OrderedParallelEnumerable\";\n/**\r\n * Sorts the elements of a sequence in descending order by using a specified or default comparer.\r\n * @param source A sequence of values to order.\r\n * @param keySelector A function to extract a key from an element.\r\n * @param comparer An IComparer to compare keys. Optional.\r\n * @returns An IOrderedParallelEnumerable whose elements are sorted in descending order according to a key.\r\n */\nexport const orderByDescending = (source, keySelector, comparer) => {\n return OrderedParallelEnumerable.generate(source, keySelector, false, comparer);\n};","import { OrderedParallelEnumerable } from \"../OrderedParallelEnumerable\";\n/**\r\n * Sorts the elements of a sequence in descending order by using a specified comparer.\r\n * @param source A sequence of values to order.\r\n * @param keySelector An async function to extract a key from an element.\r\n * @param comparer An IComparer to compare keys.\r\n * @returns An IOrderedParallelEnumerable whose elements are sorted in descending order according to a key.\r\n */\nexport const orderByDescendingAsync = (source, keySelector, comparer) => {\n return OrderedParallelEnumerable.generateAsync(source, keySelector, false, comparer);\n};","import { nextIteration } from \"./_nextIteration\";\nimport { typeDataToArray } from \"./_typeDataToArray\";\n/**\r\n * Paritions the AsyncIterable into a tuple of failing and passing arrays\r\n * based on the predicate.\r\n * @param source Elements to Partition\r\n * @param predicate Pass / Fail condition\r\n * @returns [pass, fail]\r\n */\nexport const partition = async (source, predicate) => {\n const dataFunc = nextIteration(source, value => {\n return [predicate(value), value];\n });\n const values = await typeDataToArray(dataFunc);\n const fail = [];\n const pass = [];\n for (const [passed, value] of values) {\n if (passed) {\n pass.push(value);\n } else {\n fail.push(value);\n }\n }\n return [pass, fail];\n};","import { nextIterationAsync } from \"./_nextIterationAsync\";\nimport { typeDataToArray } from \"./_typeDataToArray\";\n/**\r\n * Paritions the AsyncIterable into a tuple of failing and passing arrays\r\n * based on the predicate.\r\n * @param source Elements to Partition\r\n * @param predicate Pass / Fail condition\r\n * @returns [pass, fail]\r\n */\nexport const partitionAsync = async (source, predicate) => {\n const dataFunc = nextIterationAsync(source, async value => {\n const passed = await predicate(value);\n return [passed, value];\n });\n const values = await typeDataToArray(dataFunc);\n const fail = [];\n const pass = [];\n for (const [passed, value] of values) {\n if (passed) {\n pass.push(value);\n } else {\n fail.push(value);\n }\n }\n return [pass, fail];\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Inverts the order of the elements in a sequence.\r\n * @param source A sequence of values to reverse.\r\n * @returns A sequence whose elements correspond to those of the input sequence in reverse order.\r\n */\nexport const reverse = source => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 1 /* ArrayOfPromises */:\n {\n const generator = () => {\n return dataFunc.generator().reverse();\n };\n return new BasicParallelEnumerable({\n generator,\n type: dataFunc.type\n });\n }\n case 2 /* PromiseOfPromises */:\n {\n const generator = async () => {\n const array = await dataFunc.generator();\n return array.reverse();\n };\n return new BasicParallelEnumerable({\n generator,\n type: dataFunc.type\n });\n }\n case 0 /* PromiseToArray */:\n {\n const generator = async () => {\n const array = await dataFunc.generator();\n return array.reverse();\n };\n return new BasicParallelEnumerable({\n generator,\n type: dataFunc.type\n });\n }\n }\n};","/* eslint-disable */\nexport const nextIterationWithIndex = (source, onfulfilled) => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const generator = () => dataFunc.generator().then(x => {\n const convValues = new Array(x.length);\n for (let i = 0; i < x.length; i++) {\n convValues[i] = onfulfilled(x[i], i);\n }\n return convValues;\n });\n return {\n generator,\n type: 0 /* PromiseToArray */\n };\n }\n case 1 /* ArrayOfPromises */:\n {\n const generator = () => {\n const previousData = dataFunc.generator();\n const newPromises = new Array(previousData.length);\n for (let i = 0; i < previousData.length; i++) {\n newPromises[i] = previousData[i].then(value => {\n return onfulfilled(value, i);\n });\n }\n return newPromises;\n };\n return {\n generator,\n type: 1 /* ArrayOfPromises */\n };\n }\n case 2 /* PromiseOfPromises */:\n {\n const generator = async () => {\n const previousData = await dataFunc.generator();\n const newPromises = new Array(previousData.length);\n for (let i = 0; i < previousData.length; i++) {\n newPromises[i] = previousData[i].then(value => onfulfilled(value, i));\n }\n return newPromises;\n };\n return {\n generator,\n type: 2 /* PromiseOfPromises */\n };\n }\n }\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\nimport { nextIteration } from \"./_nextIteration\";\nimport { nextIterationWithIndex } from \"./_nextIterationWithIndex\";\nexport const select = (source, key) => {\n if (typeof key === \"function\") {\n if (key.length === 1) {\n return new BasicParallelEnumerable(nextIteration(source, key));\n } else {\n return new BasicParallelEnumerable(nextIterationWithIndex(source, key));\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return new BasicParallelEnumerable(nextIteration(source, x => x[key]));\n }\n};","/* eslint-disable */\nexport const nextIterationWithIndexAsync = (source, onfulfilled) => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const generator = async () => {\n const results = await dataFunc.generator();\n const newPromises = new Array(results.length);\n for (let i = 0; i < results.length; i++) {\n newPromises[i] = onfulfilled(results[i], i);\n }\n return newPromises;\n };\n return {\n generator,\n type: 2 /* PromiseOfPromises */\n };\n }\n case 1 /* ArrayOfPromises */:\n {\n const generator = () => dataFunc.generator().map((promise, index) => promise.then(x => onfulfilled(x, index)));\n return {\n generator,\n type: 1 /* ArrayOfPromises */\n };\n }\n case 2 /* PromiseOfPromises */:\n {\n const generator = async () => {\n const promises = await dataFunc.generator();\n return promises.map((promise, index) => promise.then(x => onfulfilled(x, index)));\n };\n return {\n generator,\n type: 2 /* PromiseOfPromises */\n };\n }\n }\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\nimport { nextIterationAsync } from \"./_nextIterationAsync\";\nimport { nextIterationWithIndexAsync } from \"./_nextIterationWithIndexAsync\";\nexport const selectAsync = (source, keyOrSelector) => {\n let generator;\n if (typeof keyOrSelector === \"function\") {\n if (keyOrSelector.length === 1) {\n generator = nextIterationAsync(source, keyOrSelector);\n } else {\n generator = nextIterationWithIndexAsync(source, keyOrSelector);\n }\n } else {\n generator = nextIterationAsync(source, x => x[keyOrSelector]);\n }\n return new BasicParallelEnumerable(generator);\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\nimport { nextIteration } from \"./_nextIteration\";\nimport { nextIterationWithIndex } from \"./_nextIterationWithIndex\";\nexport const selectMany = (source, selector) => {\n const generator = async () => {\n let values;\n if (typeof selector === \"function\") {\n if (selector.length === 1) {\n values = nextIteration(source, selector);\n } else {\n values = nextIterationWithIndex(source, selector);\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n values = nextIteration(source, x => x[selector]);\n }\n const valuesArray = [];\n switch (values.type) {\n case 0 /* PromiseToArray */:\n {\n for (const outer of await values.generator()) {\n for (const y of outer) {\n valuesArray.push(y);\n }\n }\n break;\n }\n case 1 /* ArrayOfPromises */:\n {\n for (const outer of values.generator()) {\n for (const y of await outer) {\n valuesArray.push(y);\n }\n }\n break;\n }\n case 2 /* PromiseOfPromises */:\n {\n for (const outer of await values.generator()) {\n for (const y of await outer) {\n valuesArray.push(y);\n }\n }\n break;\n }\n }\n return valuesArray;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\nimport { nextIterationAsync } from \"./_nextIterationAsync\";\nimport { nextIterationWithIndexAsync } from \"./_nextIterationWithIndexAsync\";\n/**\r\n * Projects each element of a sequence to an IParallelEnumerable\r\n * and flattens the resulting sequences into one sequence.\r\n * @param source A sequence of values to project.\r\n * @param selector A transform function to apply to each element.\r\n * @returns An IParallelEnumerable whose elements are the result of invoking the\r\n * one-to-many transform function on each element of the input sequence.\r\n */\nexport const selectManyAsync = (source, selector) => {\n const generator = async () => {\n let values;\n if (selector.length === 1) {\n values = nextIterationAsync(source, selector);\n } else {\n values = nextIterationWithIndexAsync(source, selector);\n }\n const valuesArray = [];\n switch (values.type) {\n case 1 /* ArrayOfPromises */:\n {\n for (const outer of values.generator()) {\n for (const y of await outer) {\n valuesArray.push(y);\n }\n }\n break;\n }\n case 2 /* PromiseOfPromises */:\n {\n for (const outer of await values.generator()) {\n for (const y of await outer) {\n valuesArray.push(y);\n }\n }\n break;\n }\n }\n return valuesArray;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { StrictEqualityComparer } from \"../../shared\";\n/**\r\n * Compares two parallel sequences to see if they are equal using a comparer function.\r\n * @param first First Sequence\r\n * @param second Second Sequence\r\n * @param comparer Comparer\r\n * @returns Whether or not the two iterations are equal\r\n */\nexport const sequenceEquals = async (\n// eslint-disable-next-line no-shadow\nfirst, second, comparer = StrictEqualityComparer) => {\n const firstArray = await first.toArray();\n const secondArray = await second.toArray();\n if (firstArray.length !== secondArray.length) {\n return false;\n }\n for (let i = 0; i < firstArray.length; i++) {\n const firstResult = firstArray[i];\n const secondResult = secondArray[i];\n if (comparer(firstResult, secondResult) === false) {\n return false;\n }\n }\n return true;\n};","/**\r\n * Compares two parallel iterables to see if they are equal using a async comparer function.\r\n * @param first First Sequence\r\n * @param second Second Sequence\r\n * @param comparer Async Comparer\r\n * @returns Whether or not the two iterations are equal\r\n */\nexport const sequenceEqualsAsync = async (\n// eslint-disable-next-line no-shadow\nfirst, second, comparer) => {\n const firstArray = await first.toArray();\n const secondArray = await second.toArray();\n if (firstArray.length !== secondArray.length) {\n return false;\n }\n for (let i = 0; i < firstArray.length; i++) {\n const firstResult = firstArray[i];\n const secondResult = secondArray[i];\n if ((await comparer(firstResult, secondResult)) === false) {\n return false;\n }\n }\n return true;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nimport { toArray } from \"./toArray\";\n/**\r\n * Returns the only element of a sequence that satisfies a specified condition (if specified),\r\n * and throws an exception if more than one such element exists.\r\n * @param source An IParallelEnumerable to return a single element from.\r\n * @param predicate A function to test an element for a condition. (Optional)\r\n * @throws {InvalidOperationException} No element satisfies the condition in predicate. OR\r\n * More than one element satisfies the condition in predicate. OR\r\n * The source sequence is empty.\r\n * @returns The single element of the input sequence that satisfies a condition.\r\n */\nexport const single = (source, predicate) => {\n if (predicate) {\n return single2(source, predicate);\n } else {\n return single1(source);\n }\n};\nconst single1 = async source => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const results = await dataFunc.generator();\n if (results.length > 1) {\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\n } else if (results.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return results[0];\n }\n case 1 /* ArrayOfPromises */:\n {\n const results = dataFunc.generator();\n if (results.length > 1) {\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\n } else if (results.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return results[0];\n }\n case 2 /* PromiseOfPromises */:\n {\n const results = await dataFunc.generator();\n if (results.length > 1) {\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\n } else if (results.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return await results[0];\n }\n }\n};\nconst single2 = async (source, predicate) => {\n const results = await toArray(source);\n let hasValue = false;\n let singleValue = null;\n for (const value of results) {\n if (predicate(value)) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n }\n if (hasValue === false) {\n throw new InvalidOperationException(ErrorString.NoMatch);\n }\n return singleValue;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nimport { toArray } from \"./toArray\";\n/**\r\n * Returns the only element of a sequence that satisfies a specified condition,\r\n * and throws an exception if more than one such element exists.\r\n * @param source An IParallelEnumerable to return a single element from.\r\n * @param predicate A function to test an element for a condition.\r\n * @throws {InvalidOperationException}\r\n * No element satisfies the condition in predicate. OR\r\n * More than one element satisfies the condition in predicate. OR\r\n * The source sequence is empty.\r\n * @returns The single element of the input sequence that satisfies a condition.\r\n */\nexport const singleAsync = async (source, predicate) => {\n const results = await toArray(source);\n let hasValue = false;\n let singleValue = null;\n for (const value of results) {\n if ((await predicate(value)) === true) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneMatchingElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n }\n if (hasValue === false) {\n throw new InvalidOperationException(ErrorString.NoMatch);\n }\n return singleValue;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nimport { toArray } from \"./toArray\";\n/**\r\n * If predicate is specified returns the only element of a sequence that satisfies a specified condition,\r\n * ootherwise returns the only element of a sequence. Returns a default value if no such element exists.\r\n * @param source An IParallelEnumerable to return a single element from.\r\n * @param predicate A function to test an element for a condition. Optional.\r\n * @throws {InvalidOperationException}\r\n * If predicate is specified more than one element satisfies the condition in predicate,\r\n * otherwise the input sequence contains more than one element.\r\n * @returns The single element of the input sequence that satisfies the condition,\r\n * or null if no such element is found.\r\n */\nexport const singleOrDefault = (source, predicate) => {\n if (predicate) {\n return singleOrDefault2(source, predicate);\n } else {\n return singleOrDefault1(source);\n }\n};\nconst singleOrDefault1 = async source => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const results = await dataFunc.generator();\n if (results.length > 1) {\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\n } else if (results.length === 0) {\n return null;\n }\n return results[0];\n }\n case 1 /* ArrayOfPromises */:\n {\n const results = dataFunc.generator();\n if (results.length > 1) {\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\n } else if (results.length === 0) {\n return null;\n }\n return results[0];\n }\n case 2 /* PromiseOfPromises */:\n {\n const results = await dataFunc.generator();\n if (results.length > 1) {\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\n } else if (results.length === 0) {\n return null;\n }\n return await results[0];\n }\n }\n};\nconst singleOrDefault2 = async (source, predicate) => {\n const results = await toArray(source);\n let hasValue = false;\n let singleValue = null;\n for (const value of results) {\n if (predicate(value)) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n }\n return singleValue;\n};","import { ErrorString, InvalidOperationException } from \"../../shared\";\nimport { toArray } from \"./toArray\";\n/**\r\n * If predicate is specified returns the only element of a sequence that satisfies a specified condition,\r\n * ootherwise returns the only element of a sequence. Returns a default value if no such element exists.\r\n * @param source An IParallelEnumerable to return a single element from.\r\n * @param predicate A function to test an element for a condition. Optional.\r\n * @throws {InvalidOperationException}\r\n * If predicate is specified more than one element satisfies the condition in predicate,\r\n * otherwise the input sequence contains more than one element.\r\n * @returns The single element of the input sequence that satisfies the condition,\r\n * or null if no such element is found.\r\n */\nexport const singleOrDefaultAsync = async (source, predicate) => {\n const results = await toArray(source);\n let hasValue = false;\n let singleValue = null;\n for (const value of results) {\n if ((await predicate(value)) === true) {\n if (hasValue === true) {\n throw new InvalidOperationException(ErrorString.MoreThanOneElement);\n } else {\n hasValue = true;\n singleValue = value;\n }\n }\n }\n return singleValue;\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Bypasses a specified number of elements in a sequence and then returns the remaining elements.\r\n * @param source An IParallelEnumerable to return elements from.\r\n * @param count The number of elements to skip before returning the remaining elements.\r\n * @returns\r\n * An IParallelEnumerable that contains the elements that occur after the specified index in the input sequence.\r\n */\nexport const skip = (source, count) => {\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 0 /* PromiseToArray */:\n {\n const generator = async () => (await dataFunc.generator()).slice(count);\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n }\n case 1 /* ArrayOfPromises */:\n {\n const generator = () => dataFunc.generator().slice(count);\n return new BasicParallelEnumerable({\n generator,\n type: 1 /* ArrayOfPromises */\n });\n }\n case 2 /* PromiseOfPromises */:\n {\n const generator = async () => {\n const dataInner = await dataFunc.generator();\n return dataInner.slice(count);\n };\n const dataFuncNew = {\n generator,\n type: 2 /* PromiseOfPromises */\n };\n return new BasicParallelEnumerable(dataFuncNew);\n }\n }\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.\r\n * The element's index is used in the logic of the predicate function.\r\n * @param source An IAsyncParallel to return elements from.\r\n * @param predicate A function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IParallelEnumerable that contains the elements from the input sequence starting at the first element\r\n * in the linear series that does not pass the test specified by predicate.\r\n */\nexport const skipWhile = (source, predicate) => {\n const generator = async () => {\n const values = await source.toArray();\n let i = 0;\n for (; i < values.length; i++) {\n const value = values[i];\n if (predicate(value, i) === false) {\n break;\n }\n }\n const returnedValues = [];\n for (; i < values.length; i++) {\n returnedValues.push(values[i]);\n }\n return returnedValues;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.\r\n * The element's index is used in the logic of the predicate function.\r\n * @param source An IAsyncParallel to return elements from.\r\n * @param predicate A function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IParallelEnumerable that contains the elements from the input sequence starting\r\n * at the first element in the linear series that does not pass the test specified by predicate.\r\n */\nexport const skipWhileAsync = (source, predicate) => {\n const generator = async () => {\n const values = await source.toArray();\n let i = 0;\n for (; i < values.length; i++) {\n const value = values[i];\n if ((await predicate(value, i)) === false) {\n break;\n }\n }\n const returnedValues = [];\n for (; i < values.length; i++) {\n returnedValues.push(values[i]);\n }\n return returnedValues;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","export const sum = (source, selector) => {\n if (selector) {\n return sum2(source, selector);\n } else {\n return sum1(source);\n }\n};\nconst sum1 = async source => {\n let totalSum = 0;\n for (const value of await source.toArray()) {\n totalSum += value;\n }\n return totalSum;\n};\nconst sum2 = async (source, selector) => {\n let total = 0;\n for (const value of await source.toArray()) {\n total += selector(value);\n }\n return total;\n};","import { nextIterationAsync } from \"./_nextIterationAsync\";\nimport { typeDataToArray } from \"./_typeDataToArray\";\n/**\r\n * Computes the sum of the sequence of numeric values that are obtained by invoking a transform function\r\n * on each element of the input sequence.\r\n * @param source A sequence of values that are used to calculate a sum.\r\n * @param selector A transform function to apply to each element.\r\n * @returns Sum of the sequence\r\n */\nexport const sumAsync = async (source, selector) => {\n const dataFunc = nextIterationAsync(source, selector);\n const values = await typeDataToArray(dataFunc);\n let sum = 0;\n for (const value of values) {\n sum += value;\n }\n return sum;\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Returns a specified number of contiguous elements from the start of a sequence.\r\n * @param source The sequence to return elements from.\r\n * @param amount The number of elements to return.\r\n * @returns An IParallelEnumerable that contains the specified number of elements\r\n * from the start of the input sequence.\r\n */\nexport const take = (source, amount) => {\n const amountLeft = amount > 0 ? amount : 0;\n const dataFunc = source.dataFunc;\n switch (dataFunc.type) {\n case 1 /* ArrayOfPromises */:\n const generator1 = () => dataFunc.generator().splice(0, amountLeft);\n return new BasicParallelEnumerable({\n generator: generator1,\n type: 1 /* ArrayOfPromises */\n });\n case 2 /* PromiseOfPromises */:\n const generator2 = () => dataFunc.generator().then(x => x.splice(0, amountLeft));\n return new BasicParallelEnumerable({\n generator: generator2,\n type: 2 /* PromiseOfPromises */\n });\n case 0 /* PromiseToArray */:\n default:\n const generator3 = () => dataFunc.generator().then(x => x.splice(0, amountLeft));\n return new BasicParallelEnumerable({\n generator: generator3,\n type: 0 /* PromiseToArray */\n });\n }\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Returns elements from a sequence as long as a specified condition is true.\r\n * The element's index is used in the logic of the predicate function.\r\n * @param source The sequence to return elements from.\r\n * @param predicate A function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IAsyncEnumerable that contains elements from the input sequence\r\n * that occur before the element at which the test no longer passes.\r\n */\nexport const takeWhile = (source, predicate) => {\n const generator = async () => {\n const values = await source.toArray();\n const results = new Array();\n if (predicate.length === 1) {\n for (const value of values) {\n if (predicate(value) === true) {\n results.push(value);\n } else {\n break;\n }\n }\n } else {\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (predicate(value, i) === true) {\n results.push(value);\n } else {\n break;\n }\n }\n }\n return results;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Returns elements from a sequence as long as a specified condition is true.\r\n * The element's index is used in the logic of the predicate function.\r\n * @param source The sequence to return elements from.\r\n * @param predicate An async function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IParallelEnumerable that contains elements\r\n * from the input sequence that occur before the element at which the test no longer passes.\r\n */\nexport const takeWhileAsync = (source, predicate) => {\n const generator = async () => {\n const values = await source.toArray();\n const results = new Array();\n if (predicate.length === 1) {\n const sPredicate = predicate;\n for (const value of values) {\n if ((await sPredicate(value)) === true) {\n results.push(value);\n } else {\n break;\n }\n }\n } else {\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if ((await predicate(value, i)) === true) {\n results.push(value);\n } else {\n break;\n }\n }\n }\n return results;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { nextIteration } from \"./_nextIteration\";\nimport { typeDataToArray } from \"./_typeDataToArray\";\n/**\r\n * Converts an IParallelEnumerable to a Map.\r\n * @param source An IParallelEnumerable to convert.\r\n * @param selector A function to serve as a key selector.\r\n * @returns A promise for Map\r\n */\nexport const toMap = async (source, selector) => {\n const map = new Map();\n const dataFunc = nextIteration(source, value => {\n const key = selector(value);\n return [key, value];\n });\n const keyValues = await typeDataToArray(dataFunc);\n for (const [key, value] of keyValues) {\n const array = map.get(key);\n if (array === undefined) {\n map.set(key, [value]);\n } else {\n array.push(value);\n }\n }\n return map;\n};","import { nextIterationAsync } from \"./_nextIterationAsync\";\nimport { typeDataToArray } from \"./_typeDataToArray\";\n/**\r\n * Converts an IParallelEnumerable to a Map.\r\n * @param source An IParallelEnumerable to convert.\r\n * @param selector An async function to serve as a key selector.\r\n * @returns A promise for Map\r\n */\nexport const toMapAsync = async (source, selector) => {\n const map = new Map();\n const dataFunc = nextIterationAsync(source, async value => {\n const key = await selector(value);\n return [key, value];\n });\n const keyValues = await typeDataToArray(dataFunc);\n for (const [key, value] of keyValues) {\n const array = map.get(key);\n if (array === undefined) {\n map.set(key, [value]);\n } else {\n array.push(value);\n }\n }\n return map;\n};","import { typeDataToArray } from \"./_typeDataToArray\";\n/**\r\n * Converts an Async Iterable to a key value pair object\r\n * @param source IParallelEnumerable to Convert to an Object\r\n * @param selector Key Selector\r\n * @returns KVP Object\r\n */\nexport const toObject = async (source, selector) => {\n const dataFunc = source.dataFunc;\n const values = await typeDataToArray(dataFunc);\n const map = {};\n for (const value of values) {\n map[selector(value)] = value;\n }\n return map;\n};","import { nextIterationAsync } from \"./_nextIterationAsync\";\nimport { typeDataToArray } from \"./_typeDataToArray\";\n/**\r\n * Converts an Async Iterable to a key value pair object\r\n * @param source IParallelEnumerable to Convert to an Object\r\n * @param selector Async Key Selector\r\n * @returns KVP Object\r\n */\nexport const toObjectAsync = async (source, selector) => {\n const dataFunc = nextIterationAsync(source, async value => {\n const key = await selector(value);\n return [key, value];\n });\n const keyValues = await typeDataToArray(dataFunc);\n const map = {};\n for (const [key, value] of keyValues) {\n map[key] = value;\n }\n return map;\n};","import { typeDataToArray } from \"./_typeDataToArray\";\n/**\r\n * Converts the Async Itertion to a Set\r\n * @param source IParallelEnumerable\r\n * @returns Set containing the iteration values\r\n */\nexport const toSet = async source => {\n const dataFunc = source.dataFunc;\n const values = await typeDataToArray(dataFunc);\n return new Set(values);\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Produces the set union of two sequences by using scrict equality comparison or a specified IEqualityComparer.\r\n * @param first An IAsyncParallel whose distinct elements form the first set for the union.\r\n * @param second An IAsyncParallel whose distinct elements form the second set for the union.\r\n * @param comparer The IEqualityComparer to compare values. Optional.\r\n * @returns An IParallelEnumerable that contains the elements from both input sequences, excluding duplicates.\r\n */\nexport const union = (first, second, comparer) => {\n if (comparer) {\n return union2(first, second, comparer);\n } else {\n return union1(first, second);\n }\n};\nconst union1 = (first, second) => {\n const generator = async () => {\n const set = new Set();\n const secondPromise = second.toArray();\n for await (const item of first) {\n if (set.has(item) === false) {\n set.add(item);\n }\n }\n const secondValues = await secondPromise;\n for (const item of secondValues) {\n if (set.has(item) === false) {\n set.add(item);\n }\n }\n return [...set.keys()];\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};\nconst union2 = (\n// eslint-disable-next-line no-shadow\nfirst, second, comparer) => {\n const generator = async () => {\n const result = [];\n const values = await Promise.all([first.toArray(), second.toArray()]);\n for (const source of values) {\n for (const value of source) {\n let exists = false;\n for (const resultValue of result) {\n if (comparer(value, resultValue) === true) {\n exists = true;\n break;\n }\n }\n if (exists === false) {\n result.push(value);\n }\n }\n }\n return result;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Produces the set union of two sequences by using a specified IAsyncEqualityComparer.\r\n * @param first An AsyncIterable whose distinct elements form the first set for the union.\r\n * @param second An AsyncIterable whose distinct elements form the second set for the union.\r\n * @param comparer The IAsyncEqualityComparer to compare values.\r\n * @returns An IAsyncEnumerable that contains the elements from both input sequences, excluding duplicates.\r\n */\nexport const unionAsync = (\n// eslint-disable-next-line no-shadow\nfirst, second, comparer) => {\n const generator = async () => {\n const result = [];\n const values = await Promise.all([first.toArray(), second.toArray()]);\n for (const source of values) {\n for (const value of source) {\n let exists = false;\n for (const resultValue of result) {\n if ((await comparer(value, resultValue)) === true) {\n exists = true;\n break;\n }\n }\n if (exists === false) {\n result.push(value);\n }\n }\n }\n return result;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Filters a sequence of values based on a predicate.\r\n * Each element's index is used in the logic of the predicate function.\r\n * @param source An IAsyncParallel to filter.\r\n * @param predicate A function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IParallelEnumerable that contains elements from the input sequence that satisfy the condition.\r\n */\nexport const where = (source, predicate) => {\n const generator = async () => {\n const values = await source.toArray();\n return values.filter(predicate);\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\nimport { nextIterationWithIndexAsync } from \"./_nextIterationWithIndexAsync\";\nimport { typeDataToArray } from \"./_typeDataToArray\";\n/**\r\n * Filters a sequence of values based on a predicate.\r\n * Each element's index is used in the logic of the predicate function.\r\n * @param source An IAsyncParallel to filter.\r\n * @param predicate A async function to test each source element for a condition;\r\n * the second parameter of the function represents the index of the source element.\r\n * @returns An IParallelEnumerable that contains elements from the input sequence that satisfy the condition.\r\n */\nexport const whereAsync = (source, predicate) => {\n const generator = async () => {\n const dataFunc = nextIterationWithIndexAsync(source, async (value, index) => {\n const keep = await predicate(value, index);\n return [keep, value];\n });\n const valuesAsync = await typeDataToArray(dataFunc);\n const filteredValues = [];\n for (const [keep, value] of valuesAsync) {\n if (keep) {\n filteredValues.push(value);\n }\n }\n return filteredValues;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\nexport const zip = (first, second, resultSelector) => {\n if (resultSelector) {\n return zip2(first, second, resultSelector);\n } else {\n return zip1(first, second);\n }\n};\nconst zip1 = (source, second) => {\n const generator = async () => {\n const [left, right] = await Promise.all([source.toArray(), second.toArray()]);\n const maxLength = left.length > right.length ? left.length : right.length;\n const results = new Array(maxLength);\n for (let i = 0; i < maxLength; i++) {\n const a = left[i];\n const b = right[i];\n results[i] = [a, b];\n }\n return results;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};\nconst zip2 = (source, second, resultSelector) => {\n const generator = async () => {\n const [left, right] = await Promise.all([source.toArray(), second.toArray()]);\n const maxLength = left.length > right.length ? left.length : right.length;\n const results = new Array(maxLength);\n for (let i = 0; i < maxLength; i++) {\n const a = left[i];\n const b = right[i];\n results[i] = resultSelector(a, b);\n }\n return results;\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { BasicParallelEnumerable } from \"../BasicParallelEnumerable\";\n/**\r\n * Applies a specified async function to the corresponding elements of two sequences,\r\n * producing a sequence of the results.\r\n * @param first The first sequence to merge.\r\n * @param second The second sequence to merge.\r\n * @param resultSelector An async function that specifies how to merge the elements from the two sequences.\r\n * @returns An IAsyncEnumerable that contains merged elements of two input sequences.\r\n */\nexport const zipAsync = (first, second, resultSelector) => {\n const generator = async () => {\n const [left, right] = await Promise.all([first.toArray(), second.toArray()]);\n const maxLength = left.length > right.length ? left.length : right.length;\n const resultPromises = new Array(maxLength);\n for (let i = 0; i < maxLength; i++) {\n const a = left[i];\n const b = right[i];\n resultPromises[i] = resultSelector(a, b);\n }\n return Promise.all(resultPromises);\n };\n return new BasicParallelEnumerable({\n generator,\n type: 0 /* PromiseToArray */\n });\n};","import { aggregate } from \"./../parallel/_private/aggregate\";\nimport { all } from \"./../parallel/_private/all\";\nimport { allAsync } from \"./../parallel/_private/allAsync\";\nimport { any } from \"./../parallel/_private/any\";\nimport { anyAsync } from \"./../parallel/_private/anyAsync\";\nimport { asAsync } from \"./../parallel/_private/asAsync\";\nimport { average } from \"./../parallel/_private/average\";\nimport { averageAsync } from \"./../parallel/_private/averageAsync\";\nimport { concatenate } from \"../parallel/_private/concatenate\";\nimport { contains } from \"./../parallel/_private/contains\";\nimport { containsAsync } from \"./../parallel/_private/containsAsync\";\nimport { count } from \"./../parallel/_private/count\";\nimport { countAsync } from \"./../parallel/_private/countAsync\";\nimport { distinct } from \"./../parallel/_private/distinct\";\nimport { distinctAsync } from \"./../parallel/_private/distinctAsync\";\nimport { each } from \"./../parallel/_private/each\";\nimport { eachAsync } from \"./../parallel/_private/eachAsync\";\nimport { elementAt } from \"./../parallel/_private/elementAt\";\nimport { elementAtOrDefault } from \"./../parallel/_private/elementAtOrDefault\";\nimport { except } from \"./../parallel/_private/except\";\nimport { exceptAsync } from \"./../parallel/_private/exceptAsync\";\nimport { first } from \"./../parallel/_private/first\";\nimport { firstAsync } from \"./../parallel/_private/firstAsync\";\nimport { firstOrDefault } from \"./../parallel/_private/firstOrDefault\";\nimport { firstOrDefaultAsync } from \"./../parallel/_private/firstOrDefaultAsync\";\nimport { groupBy } from \"./../parallel/_private/groupBy\";\nimport { groupByAsync } from \"./../parallel/_private/groupByAsync\";\nimport { groupByWithSel } from \"./../parallel/_private/groupByWithSel\";\nimport { intersect } from \"./../parallel/_private/intersect\";\nimport { intersectAsync } from \"./../parallel/_private/intersectAsync\";\nimport { join } from \"./../parallel/_private/join\";\nimport { last } from \"./../parallel/_private/last\";\nimport { lastAsync } from \"./../parallel/_private/lastAsync\";\nimport { lastOrDefault } from \"./../parallel/_private/lastOrDefault\";\nimport { lastOrDefaultAsync } from \"./../parallel/_private/lastOrDefaultAsync\";\nimport { max } from \"./../parallel/_private/max\";\nimport { maxAsync } from \"./../parallel/_private/maxAsync\";\nimport { min } from \"./../parallel/_private/min\";\nimport { minAsync } from \"./../parallel/_private/minAsync\";\nimport { ofType } from \"./../parallel/_private/ofType\";\nimport { orderBy } from \"./../parallel/_private/orderBy\";\nimport { orderByAsync } from \"./../parallel/_private/orderByAsync\";\nimport { orderByDescending } from \"./../parallel/_private/orderByDescending\";\nimport { orderByDescendingAsync } from \"./../parallel/_private/orderByDescendingAsync\";\nimport { partition } from \"./../parallel/_private/partition\";\nimport { partitionAsync } from \"./../parallel/_private/partitionAsync\";\nimport { reverse } from \"./../parallel/_private/reverse\";\nimport { select } from \"./../parallel/_private/select\";\nimport { selectAsync } from \"./../parallel/_private/selectAsync\";\nimport { selectMany } from \"./../parallel/_private/selectMany\";\nimport { selectManyAsync } from \"./../parallel/_private/selectManyAsync\";\nimport { sequenceEquals } from \"./../parallel/_private/sequenceEquals\";\nimport { sequenceEqualsAsync } from \"./../parallel/_private/sequenceEqualsAsync\";\nimport { single } from \"./../parallel/_private/single\";\nimport { singleAsync } from \"./../parallel/_private/singleAsync\";\nimport { singleOrDefault } from \"./../parallel/_private/singleOrDefault\";\nimport { singleOrDefaultAsync } from \"./../parallel/_private/singleOrDefaultAsync\";\nimport { skip } from \"./../parallel/_private/skip\";\nimport { skipWhile } from \"./../parallel/_private/skipWhile\";\nimport { skipWhileAsync } from \"./../parallel/_private/skipWhileAsync\";\nimport { sum } from \"./../parallel/_private/sum\";\nimport { sumAsync } from \"./../parallel/_private/sumAsync\";\nimport { take } from \"./../parallel/_private/take\";\nimport { takeWhile } from \"./../parallel/_private/takeWhile\";\nimport { takeWhileAsync } from \"./../parallel/_private/takeWhileAsync\";\nimport { toArray } from \"./../parallel/_private/toArray\";\nimport { toMap } from \"./../parallel/_private/toMap\";\nimport { toMapAsync } from \"./../parallel/_private/toMapAsync\";\nimport { toObject } from \"./../parallel/_private/toObject\";\nimport { toObjectAsync } from \"./../parallel/_private/toObjectAsync\";\nimport { toSet } from \"./../parallel/_private/toSet\";\nimport { union } from \"./../parallel/_private/union\";\nimport { unionAsync } from \"./../parallel/_private/unionAsync\";\nimport { where } from \"./../parallel/_private/where\";\nimport { whereAsync } from \"./../parallel/_private/whereAsync\";\nimport { zip } from \"./../parallel/_private/zip\";\nimport { zipAsync } from \"./../parallel/_private/zipAsync\";\n/* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-assignment */\n/**\r\n * Binds LINQ methods to an iterable type\r\n * @param object Iterable Type\r\n */\nexport const bindLinqParallel = object => {\n const prototype = object.prototype;\n const bind = (func, key) => {\n const wrapped = function (...params) {\n return func(this, ...params);\n };\n Object.defineProperty(wrapped, \"length\", {\n value: func.length - 1\n });\n prototype[key] = wrapped;\n };\n bind(aggregate, \"aggregate\");\n bind(all, \"all\");\n bind(allAsync, \"allAsync\");\n bind(any, \"any\");\n bind(anyAsync, \"anyAsync\");\n bind(asAsync, \"asAsync\");\n bind(average, \"average\");\n bind(averageAsync, \"averageAsync\");\n bind(concatenate, \"concatenate\");\n bind(contains, \"contains\");\n bind(containsAsync, \"containsAsync\");\n bind(count, \"count\");\n bind(countAsync, \"countAsync\");\n bind(distinct, \"distinct\");\n bind(distinctAsync, \"distinctAsync\");\n bind(each, \"each\");\n bind(eachAsync, \"eachAsync\");\n bind(elementAt, \"elementAt\");\n bind(elementAtOrDefault, \"elementAtOrDefault\");\n bind(except, \"except\");\n bind(exceptAsync, \"exceptAsync\");\n bind(first, \"first\");\n bind(firstAsync, \"firstAsync\");\n bind(firstOrDefault, \"firstOrDefault\");\n bind(firstOrDefaultAsync, \"firstOrDefaultAsync\");\n bind(groupBy, \"groupBy\");\n bind(groupByAsync, \"groupByAsync\");\n bind(groupByWithSel, \"groupByWithSel\");\n bind(intersect, \"intersect\");\n bind(intersectAsync, \"intersectAsync\");\n bind(join, \"joinByKey\");\n bind(last, \"last\");\n bind(lastAsync, \"lastAsync\");\n bind(lastOrDefault, \"lastOrDefault\");\n bind(lastOrDefaultAsync, \"lastOrDefaultAsync\");\n bind(max, \"max\");\n bind(maxAsync, \"maxAsync\");\n bind(min, \"min\");\n bind(minAsync, \"minAsync\");\n bind(ofType, \"ofType\");\n bind(orderBy, \"orderBy\");\n bind(orderByAsync, \"orderByAsync\");\n bind(orderByDescending, \"orderByDescending\");\n bind(orderByDescendingAsync, \"orderByDescendingAsync\");\n bind(partition, \"partition\");\n bind(partitionAsync, \"partitionAsync\");\n bind(reverse, \"reverse\");\n bind(select, \"select\");\n bind(selectAsync, \"selectAsync\");\n bind(selectMany, \"selectMany\");\n bind(selectManyAsync, \"selectManyAsync\");\n bind(sequenceEquals, \"sequenceEquals\");\n bind(sequenceEqualsAsync, \"sequenceEqualsAsync\");\n bind(single, \"single\");\n bind(singleAsync, \"singleAsync\");\n bind(singleOrDefault, \"singleOrDefault\");\n bind(singleOrDefaultAsync, \"singleOrDefaultAsync\");\n bind(skip, \"skip\");\n bind(skipWhile, \"skipWhile\");\n bind(skipWhileAsync, \"skipWhileAsync\");\n bind(sum, \"sum\");\n bind(sumAsync, \"sumAsync\");\n bind(take, \"take\");\n bind(takeWhile, \"takeWhile\");\n bind(takeWhileAsync, \"takeWhileAsync\");\n bind(toArray, \"toArray\");\n bind(toMap, \"toMap\");\n bind(toMapAsync, \"toMapAsync\");\n bind(toObject, \"toObject\");\n bind(toObjectAsync, \"toObjectAsync\");\n bind(toSet, \"toSet\");\n bind(union, \"union\");\n bind(unionAsync, \"unionAsync\");\n bind(where, \"where\");\n bind(whereAsync, \"whereAsync\");\n bind(zip, \"zip\");\n bind(zipAsync, \"zipAsync\");\n};","import { ArgumentOutOfRangeException, ErrorString, InvalidOperationException } from \"../shared\";\nimport { BasicEnumerable } from '../sync/BasicEnumerable';\n/**\r\n * Adds LINQ methods to String prototype\r\n */\nexport const bindString = () => {\n var _a;\n const prototype = String.prototype;\n const propertyNames = Object.getOwnPropertyNames(BasicEnumerable.prototype);\n for (const prop of propertyNames) {\n prototype[prop] = (_a = prototype[prop]) !== null && _a !== void 0 ? _a : BasicEnumerable.prototype[prop];\n }\n prototype.first = function (predicate) {\n if (predicate) {\n for (let i = 0; i < this.length; i++) {\n const value = this[i];\n if (predicate(value) === true) {\n return value;\n }\n }\n throw new InvalidOperationException(ErrorString.NoMatch);\n }\n if (this.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return this[0];\n };\n prototype.firstOrDefault = function (predicate) {\n if (predicate) {\n for (let i = 0; i < this.length; i++) {\n const value = this[i];\n if (predicate(value) === true) {\n return value;\n }\n }\n return null;\n }\n return this.length === 0 ? null : this[0];\n };\n prototype.count = function (predicate) {\n if (predicate) {\n // eslint-disable-next-line no-shadow\n let count = 0;\n for (let i = 0; i < this.length; i++) {\n if (predicate(this[i]) === true) {\n count++;\n }\n }\n return count;\n } else {\n return this.length;\n }\n };\n prototype.elementAt = function (index) {\n if (index < 0 || index >= this.length) {\n throw new ArgumentOutOfRangeException(\"index\");\n }\n return this[index];\n };\n prototype.elementAtOrDefault = function (index) {\n return this[index] || null;\n };\n prototype.last = function (predicate) {\n if (predicate) {\n for (let i = this.length - 1; i >= 0; i--) {\n const value = this[i];\n if (predicate(value) === true) {\n return value;\n }\n }\n throw new InvalidOperationException(ErrorString.NoMatch);\n } else {\n if (this.length === 0) {\n throw new InvalidOperationException(ErrorString.NoElements);\n }\n return this[this.length - 1];\n }\n };\n prototype.lastOrDefault = function (predicate) {\n if (predicate) {\n for (let i = this.length - 1; i >= 0; i--) {\n const value = this[i];\n if (predicate(value) === true) {\n return value;\n }\n }\n return null;\n } else {\n return this.length === 0 ? null : this[this.length - 1];\n }\n };\n prototype.reverse = function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const outer = this;\n function* generator() {\n for (let i = outer.length - 1; i >= 0; i--) {\n yield outer[i];\n }\n }\n return new BasicEnumerable(generator);\n };\n};","import { bindArray } from \"./bindArray\";\nimport { bindString } from \"./bindString\";\nimport { bindLinq } from \"./bindLinq\";\n/**\r\n * Binds LINQ methods to Array Types, Map, Set, and String\r\n */\nexport const initializeLinq = () => {\n bindLinq(Map);\n bindLinq(Set);\n bindString();\n bindArray(Array);\n bindArray(Int8Array);\n bindArray(Int16Array);\n bindArray(Int32Array);\n bindArray(Uint8Array);\n bindArray(Uint8ClampedArray);\n bindArray(Uint16Array);\n bindArray(Uint32Array);\n bindArray(Float32Array);\n bindArray(Float64Array);\n};","import { BasicAsyncEnumerable } from \"../async/BasicAsyncEnumerable\";\nimport { BasicParallelEnumerable } from \"../parallel/BasicParallelEnumerable\";\nimport { BasicEnumerable } from \"../sync/BasicEnumerable\";\nimport { bindArray } from \"./bindArray\";\nimport { bindArrayEnumerable } from \"./bindArrayEnumerable\";\nimport { bindLinq } from \"./bindLinq\";\nimport { bindLinqAsync } from \"./bindLinqAsync\";\nimport { bindLinqParallel } from \"./bindLinqParallel\";\nimport { bindString } from \"./bindString\";\n// To avoid circular dependencies, we bind LINQ methods to classes here\nbindLinq(BasicEnumerable);\nbindLinqAsync(BasicAsyncEnumerable);\nbindLinqParallel(BasicParallelEnumerable);\n// Array Enumerable extends Array and has some custom optimizations\nbindArrayEnumerable();\nexport { bindLinq, bindLinqAsync, bindArray, bindString };\nexport { initializeLinq } from \"./initializeLinq\";","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router, Event, NavigationStart, NavigationEnd, NavigationCancel, NavigationError } from \"@angular/router\";\r\n\r\nimport { UtilityService } from \"projects/shared-lib/src/lib/services/utility.service\";\r\nimport { environment, environment as Test } from \"../environments/environment.test\";\r\nimport { environment as Beta } from \"../environments/environment.beta\";\r\nimport { environment as Prod } from \"../environments/environment.prod\";\r\n\r\nimport { initializeLinq, IEnumerable, ArrayEnumerable } from \"linq-to-typescript\";\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { IUser } from \"projects/shared-lib/src/lib/_models/user.model\";\r\nimport { IStepOption, TourAnchorMatMenuDirective, TourMatMenuModule, TourService } from \"ngx-ui-tour-md-menu\";\r\nimport { IGlobal } from \"projects/shared-lib/src/lib/_models/global.model\";\r\n\r\ndeclare global {\r\n\tinterface Array extends IEnumerable {\r\n\t\tconcat(items: IEnumerable): IEnumerable;\r\n\t\tconcat(...items: Array>): ArrayEnumerable;\r\n\t\tconcat(...items: Array>): ArrayEnumerable;\r\n\t}\r\n\tinterface Uint8Array extends IEnumerable {}\r\n\tinterface Uint8ClampedArray extends IEnumerable {}\r\n\tinterface Uint16Array extends IEnumerable {}\r\n\tinterface Uint32Array extends IEnumerable {}\r\n\tinterface Int8Array extends IEnumerable {}\r\n\tinterface Int16Array extends IEnumerable {}\r\n\tinterface Int32Array extends IEnumerable {}\r\n\tinterface Float32Array extends IEnumerable {}\r\n\tinterface Float64Array extends IEnumerable {}\r\n\tinterface Map extends IEnumerable<[K, V]> {}\r\n\tinterface Set extends IEnumerable {}\r\n\tinterface String extends IEnumerable {}\r\n}\r\n\r\n@Component({\r\n\tselector: \"app-root\",\r\n\ttemplateUrl: \"./app.component.html\",\r\n\tstyleUrls: [\"./app.component.scss\"]\r\n})\r\nexport class AppComponent implements OnInit {\r\n\tloading = false;\r\n\r\n\tconstructor(private router: Router, private utilityService: UtilityService, public dataService: DataService, public tourService: TourService) {\r\n\t\tinitializeLinq();\r\n\t\t\r\n\t\tGlobal.Initial = {\r\n\t\t\thref: window.location.href, //-- need full href to determine if we can travel to this route later after the user has been authenticated.\r\n\t\t\troute: window.location.href.indexOf(\"#\") > -1 ? window.location.href.split(\"#\").last() : null, //-- need the route so we can travel there after the user has been authenticated. --Kirk T. Sherer, November 17, 2023.\r\n\t\t\tbaseUrl: window.location.href.indexOf(\"#\") > -1 ? window.location.href.split(\"#\").first() : window.location.href\r\n\t\t};\r\n\t\t\r\n\t\tif (document.URL.indexOf(\"localhost\") > 0) {\r\n\t\t\tGlobal.Initial = {\r\n\t\t\t\thref: \"https://test.iopspro.com/\", //-- need full href to determine if we can travel to this route later after the user has been authenticated.\r\n\t\t\t\troute: window.location.href.indexOf(\"#\") > -1 ? window.location.href.split(\"#\").last() : null, //-- need the route so we can travel there after the user has been authenticated. --Kirk T. Sherer, November 17, 2023.\r\n\t\t\t\tbaseUrl: \"https://test.iopspro.com/\"\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif (Global.iOPSLogoImage.indexOf(\"http\") < 0) { //-- only set these images when we first come into the application.\r\n\t\t\tGlobal.LogosForApplicationTheme.Dark.iOPSLogo = Global.Initial.baseUrl + Global.LogosForApplicationTheme.Dark.iOPSLogo;\r\n\t\t\tGlobal.LogosForApplicationTheme.Dark.iOPSTinyLogo = Global.Initial.baseUrl + Global.LogosForApplicationTheme.Dark.iOPSTinyLogo;\r\n\t\t\tGlobal.LogosForApplicationTheme.Dark.CompanyTinyLogo = Global.Initial.baseUrl + Global.LogosForApplicationTheme.Dark.CompanyTinyLogo;\r\n\t\t\tGlobal.LogosForApplicationTheme.Dark.CompanyLogo = Global.Initial.baseUrl + Global.LogosForApplicationTheme.Dark.CompanyLogo;\r\n\t\t\t\r\n\t\t\tGlobal.LogosForApplicationTheme.Light.iOPSLogo = Global.Initial.baseUrl + Global.LogosForApplicationTheme.Light.iOPSLogo;\r\n\t\t\tGlobal.LogosForApplicationTheme.Light.iOPSTinyLogo = Global.Initial.baseUrl + Global.LogosForApplicationTheme.Light.iOPSTinyLogo;\r\n\t\t\tGlobal.LogosForApplicationTheme.Light.CompanyTinyLogo = Global.Initial.baseUrl + Global.LogosForApplicationTheme.Light.CompanyTinyLogo;\r\n\t\t\tGlobal.LogosForApplicationTheme.Light.CompanyLogo = Global.Initial.baseUrl + Global.LogosForApplicationTheme.Light.CompanyLogo;\r\n\t\r\n\t\t\tGlobal.iOPSLogoImage = Global.Initial.baseUrl + Global.iOPSLogoImage;\r\n\t\t\tGlobal.iOPSTinyLogoImage = Global.Initial.baseUrl + Global.iOPSTinyLogoImage;\r\n\t\t\tGlobal.CompanyTinyLogoImage = Global.Initial.baseUrl + Global.CompanyTinyLogoImage;\r\n\t\t\tGlobal.CompanyLogoImage = Global.Initial.baseUrl + Global.CompanyLogoImage;\r\n\t\t\tGlobal.imagesUrl = Global.Initial.baseUrl + Global.imagesUrl;\r\n\t\t\tGlobal.Data.thingApiUrl = Global.Data.thingApiIsLocal == true ? \"http://localhost:5044\" : Global.Initial.baseUrl + Global.Data.thingApiUrl;\r\n\t\t}\r\n\r\n\t\tvar globalObject: IGlobal = Global;\r\n\t\tconsole.log(\"Global = %O\", globalObject);\r\n\t\trouter.events.subscribe((routerEvent: Event) => {\r\n\t\t\tif (this.router.url != \"/authentication\" && this.router.url != \"/user/authentication\" && this.router.url != \"/user/login\" && this.router.url != \"/user/logout\" && this.router.url != \"/\" && this.router.url != \"/layout/user-settings\" && localStorage.getItem(\"currentUser\")) {\r\n\t\t\t\tthis.checkRouterEvent(routerEvent);\r\n\t\t\t\tif (Global?.User?.currentUser?.Id != null) {\r\n\t\t\t\t\tvar lastVisitedRoute: string = localStorage.getItem(\"lastVisitedRoute\");\r\n\t\t\t\t\tvar newlyVisitedRoute: string = this.router.url;\r\n\t\t\t\t\tlocalStorage.setItem(\"lastVisitedRoute\", this.router.url);\r\n\t\t\t\t\tlocalStorage.setItem(\"lastVisitedRouteTitle\", Global.CurrentMenuItem);\r\n\r\n\t\t\t\t\tif (lastVisitedRoute != newlyVisitedRoute) {\r\n\t\t\t\t\t\t//-- update SQL Server so we have the last route this user visited if we need to rebuild the local storage, but only if the routes are different. No need to\r\n\t\t\t\t\t\t//-- continually update SQL Server with the same route. --Kirk T. Sherer, May 11, 2023.\r\n\t\t\t\t\t\tvar sql: string = \"Security.User_UpdateLastVisitedRoute @UserId=\" + Global.User.currentUser.Id + \", @LastVisitedRoute='\" + this.router.url + \"', @LastVisitedRouteTitle='\" + Global.CurrentMenuItem + \"'\";\r\n\t\t\t\t\t\tthis.dataService.SQLActionAsPromise(sql).then((data: any) => {\r\n\t\t\t\t\t\t\tconsole.log(\"Route logged. URL: \" + this.router.url);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t}\r\n\t\t\t// console.log(\"this.router.url: \" + this.router.url + \", loading: \" + this.loading);\r\n\t\t});\r\n\r\n\t\t//Global.Data.dataServerIsLocal = false; //--only set this to true if you're testing a local version of the webAPI. \r\n\r\n\t\t\r\n\r\n\t\tvar environmentName = document.URL.indexOf(\"localhost\") > 0 || document.URL.indexOf(\"test\") > 0 ? (Global.Application?.Environment?.Name != null ? Global.Application.Environment.Name : \"test\") : document.URL.indexOf(\"beta\") > 0 ? \"beta\" : \"prod\";\r\n\t\tvar environmentId = null;\r\n\t\tvar version = null;\r\n\t\tswitch (environmentName) {\r\n\t\t\tcase \"test\":\r\n\t\t\t\tenvironmentId = Test.environmentId;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"beta\":\r\n\t\t\t\tenvironmentId = Beta.environmentId;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"prod\":\r\n\t\t\t\tenvironmentId = Prod.environmentId;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tGlobal.Application = {\r\n\t\t\tEnvironment: {\r\n\t\t\t\tName: environmentName,\r\n\t\t\t\tId: environmentId,\r\n\t\t\t\tVersion: version\r\n\t\t\t},\r\n\t\t\tType: \"desktop\"\r\n\t\t};\r\n\r\n\t\tconsole.log(\"app-component: Global = %O\", Global);\r\n\t}\r\n\r\n\tcheckRouterEvent(routerEvent: Event): void {\r\n\t\tif (routerEvent instanceof NavigationStart) {\r\n\t\t\tthis.loading = true;\r\n\t\t} else {\r\n\t\t\tif (routerEvent instanceof NavigationEnd || routerEvent instanceof NavigationCancel || routerEvent instanceof NavigationError) {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgm_authFailure() {\r\n\t\tconsole.error(\"Google Maps authentication error fired. Please investigate.\");\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tvar passwordToken = this.utilityService.GetQuerystringParameterByName(\"pwt\");\r\n\t\tif (passwordToken) {\r\n\t\t\tconsole.log(\"passwordToken = \" + passwordToken);\r\n\t\t\tGlobal.passwordToken = passwordToken;\r\n\t\t\tconsole.log(\"Global.passwordToken = \" + Global.passwordToken);\r\n\t\t\tthis.router.navigate([\"/forgot-password/\" + passwordToken]);\r\n\t\t}\r\n\t}\r\n}\r\n","\r\n\r\n\r\n \r\n \r\n\r\n \r\n

          \r\n\t\t\t\t\t{{step?.title}}\r\n \t\r\n\t\t\t\t\t\r\n\t\t\t\t

          \r\n
          \r\n\r\n\t\t\t

          \r\n \r\n\t\t\t

          \r\n\r\n\t\t\t

          \r\n \r\n \r\n chevron_left {{step?.prevBtnTitle}}\r\n \r\n \r\n {{step?.nextBtnTitle}} chevron_right\r\n \r\n \r\n {{step?.endBtnTitle}}\r\n \r\n \r\n\t\t\t

          \r\n
          \r\n
          \r\n
          \r\n\r\n
          \r\n\r\n\t\r\n\r\n\t\t
          \r\n\t\t\t\r\n\t\t
          \r\n\t
          \r\n
          \r\n","import { Component, OnInit, OnDestroy, NgZone, AfterViewInit } from \"@angular/core\";\r\n\r\nimport { Router } from \"@angular/router\";\r\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\r\n\r\nimport swal from \"sweetalert2\";\r\n\r\nimport { filter } from \"rxjs/operators\";\r\nimport { AuthenticationService } from \"projects/shared-lib/src/lib/services/authentication.service\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { SecurityService } from \"projects/shared-lib/src/lib/services/security.service\";\r\nimport { CacheUtilityService } from \"projects/shared-lib/src/lib/services/cache-utility.service\";\r\nimport { RouteToExternalUrlService } from \"projects/shared-lib/src/lib/services/route-to-external-url.service\";\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { IGlobal } from \"projects/shared-lib/src/lib/_models/global.model\";\r\n\r\n@Component({\r\n\tselector: \"app-login\",\r\n\ttemplateUrl: \"login.component.html\"\r\n})\r\nexport class LoginComponent implements OnInit, OnDestroy, AfterViewInit {\r\n\tpublic loginForm: FormGroup;\r\n\tprivate username: FormControl;\r\n\tprivate password: FormControl;\r\n\tpublic mouseoverLogin = false;\r\n\tpublic resetPasswordForm: FormGroup;\r\n\tprivate resetUsername: FormControl = null;\r\n\r\n\tpublic usernameHasNotBeenValued: boolean = true;\r\n\tpublic changePasswordHasBeenRequested: boolean = false;\r\n\tpublic currentUserIsLoggedIn: boolean = false;\r\n\tpublic currentUserIsBeingAuthenticated: boolean = false;\r\n\tloginProcessLoading: boolean = false;\r\n\tpublic componentName: string = \"login-component (desktop): \";\r\n\tpublic global: IGlobal = Global;\r\n\r\n\tconstructor(private authenticationService: AuthenticationService, private router: Router, private dataService: DataService, private securityService: SecurityService, private cacheUtilityService: CacheUtilityService, private zone: NgZone, private routeExternal: RouteToExternalUrlService) {}\r\n\r\n\tngOnInit() {\r\n\t\tconsole.log(this.componentName + \"Global = %O\", this.global);\r\n\t\tthis.dataService.ApplicationLoadingMessage(\"\", false);\r\n\t\tconsole.log(this.componentName + \"window.location = %O\", window.location);\r\n\t\tthis.username = new FormControl(\"\", Validators.required);\r\n\t\tthis.password = new FormControl(\"\", Validators.required);\r\n\t\tthis.resetUsername = new FormControl(\"\", Validators.required);\r\n\t\tthis.loginForm = new FormGroup({\r\n\t\t\tusername: this.username,\r\n\t\t\tpassword: this.password\r\n\t\t});\r\n\t\tthis.resetPasswordForm = new FormGroup({\r\n\t\t\tresetUsername: this.resetUsername\r\n\t\t});\r\n\r\n\t\tthis.setupLoginForm();\r\n\t}\r\n\r\n\tngAfterViewInit() {\r\n\t\tthis.global = Global;\r\n\t\tconsole.log(this.componentName + \"Global = %O\", this.global);\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tconsole.log(this.componentName + \"ngOnDestroy invoked...\");\r\n\t\tthis.removeLoginForm();\r\n\t}\r\n\r\n\tsetupLoginForm() {\r\n\t\tconst body = document.getElementsByTagName(\"body\")[0];\r\n\t\tbody.classList.add(\"login-page\");\r\n\t}\r\n\r\n\tremoveLoginForm() {\r\n\t\tconst body = document.getElementsByTagName(\"body\")[0];\r\n\t\tbody.classList.remove(\"login-page\");\r\n\t}\r\n\r\n\tlogin(formValues: any) {\r\n\t\tGlobal.User.loggingIntoLegacyApplication = false;\r\n\t\tthis.dataService.ApplicationLoadingMessage(this.componentName + \"Logging in User\", true);\r\n\r\n\t\tthis.loginProcessLoading = true;\r\n\t\tconsole.log(\"formValues = %O\", formValues);\r\n\t\tvar time0 = performance.now();\r\n\t\tthis.authenticationService\r\n\t\t\t.loginWithUsernameAndPassword(\r\n\t\t\t\tformValues.username,\r\n\t\t\t\tformValues.password\r\n\t\t\t)\r\n\t\t\t.then(\r\n\t\t\t\t(accessToken: any) => {\r\n\t\t\t\t\tvar time = performance.now() - time0;\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\tthis.componentName +\r\n\t\t\t\t\t\t\t\"time for authenticationService to authenticate user with username/password = \" +\r\n\t\t\t\t\t\t\ttime\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t!accessToken ||\r\n\t\t\t\t\t\t(accessToken && accessToken.length < 10)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t// -- login was invalid, so fire error about incorrect username / password.\r\n\t\t\t\t\t\tthis.invalidPasswordAlert();\r\n\t\t\t\t\t\tthis.currentUserIsBeingAuthenticated = false;\r\n\t\t\t\t\t\tthis.loginProcessLoading = false;\r\n\t\t\t\t\t\tthis.dataService.ApplicationLoadingMessage(\"\", false);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//-- user was successfully logged in. Send out the update to the 'isLoggedIn' status.\r\n\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\tthis.componentName +\r\n\t\t\t\t\t\t\t\t\"user access token value returned from logging in with username/password = \" +\r\n\t\t\t\t\t\t\t\taccessToken\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tthis.currentUserIsLoggedIn = true;\r\n\t\t\t\t\t\t// --login was valid, so navigate to the main layout.\r\n\t\t\t\t\t\tthis.securityService.processLoggedInUser(accessToken);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t(err: Error) => {\r\n\t\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\tthis.componentName +\r\n\t\t\t\t\t\t\t\t`user was not authorized. Error: ${err.message}`\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\tthis.invalidPasswordAlert();\r\n\t\t\t\t\tthis.currentUserIsBeingAuthenticated = false;\r\n\t\t\t\t\tthis.loginProcessLoading = false;\r\n\t\t\t\t\tthis.dataService.ApplicationLoadingMessage(\"\", false);\r\n\r\n\t\t\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\tinvalidPasswordAlert() {\r\n\t\tswal.fire({\r\n\t\t\ttitle: \"Incorrect\",\r\n\t\t\tposition: \"top\",\r\n\t\t\ttext: \"Username or Password is not valid.\"\r\n\t\t});\r\n\t}\r\n\r\n\tloginLegacy(formValues: any, event: Event) {\r\n\t\tconsole.log(this.componentName + \"legacy application login formValues = %O\", formValues);\r\n\t\tGlobal.User.loggingIntoLegacyApplication = true;\r\n\t\tthis.authenticationService.loginWithUsernameAndPassword(formValues.username, formValues.password).then((accessToken: any) => {\r\n\t\t\tif (!accessToken) {\r\n\t\t\t\t// -- login was invalid, so fire error about incorrect username / password.\r\n\t\t\t\tthis.dataService.ApplicationLoadingMessage(\"\", false);\r\n\r\n\t\t\t\tthis.invalidPasswordAlert();\r\n\t\t\t\tthis.currentUserIsBeingAuthenticated = false;\r\n\t\t\t\tthis.loginProcessLoading = false;\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log(this.componentName + \"user access token value returned = \" + accessToken);\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\tvar requestJSON: any = [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlabel: \"PersonAndSecurityRecord\",\r\n\t\t\t\t\t\tsqlStatement: \"Security.User_Login_PersonAndSecurityRecord @accessToken='\" + accessToken + \"'\"\r\n\t\t\t\t\t}\r\n\t\t\t\t];\r\n\t\t\t\tconsole.log(this.componentName + \"requestJSON = %O\", requestJSON);\r\n\r\n\t\t\t\tthis.dataService.SQLMultiAction(requestJSON, accessToken).then(\r\n\t\t\t\t\t(data: any) => {\r\n\t\t\t\t\t\tconsole.log(this.componentName + \"SQLMultiAction for requestJSON = %O\", data);\r\n\t\t\t\t\t\tvar collections: any = data;\r\n\t\t\t\t\t\tvar user: any = {};\r\n\r\n\t\t\t\t\t\tcollections.forEach((collection: any) => {\r\n\t\t\t\t\t\t\tswitch (collection.label) {\r\n\t\t\t\t\t\t\t\tcase \"PersonAndSecurityRecord\":\r\n\t\t\t\t\t\t\t\t\tvar personRecord = collection.data.first();\r\n\t\t\t\t\t\t\t\t\tconsole.log(this.componentName + \"personRecord = %O\", personRecord);\r\n\r\n\t\t\t\t\t\t\t\t\tfor (var field in personRecord) {\r\n\t\t\t\t\t\t\t\t\t\tif (field != \"OrganizationId\" && field != \"OrganizationName\") {\r\n\t\t\t\t\t\t\t\t\t\t\t//console.log(\"personRecord field = \" + field + \" = \" + personRecord[field]);\r\n\t\t\t\t\t\t\t\t\t\t\tuser[field] = personRecord[field];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tuser.Organization = { Id: personRecord[\"OrganizationId\"], Name: personRecord[\"OrganizationName\"] };\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif (!user.Username) {\r\n\t\t\t\t\t\t\t//-- invalid token. Just redirect to login screen. --Kirk T. Sherer, February 26, 2021.\r\n\t\t\t\t\t\t\tthis.authenticationService.logout();\r\n\t\t\t\t\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tlocalStorage.setItem(\"currentUser\", JSON.stringify(user));\r\n\t\t\t\t\t\t\tvar currentUser = localStorage.getItem(\"currentUser\");\r\n\t\t\t\t\t\t\tconsole.log(this.componentName + \"currentUser from localStorage: %O\", currentUser);\r\n\t\t\t\t\t\t\t// --login was valid, so navigate to the legacy application.\r\n\t\t\t\t\t\t\tvar url = document.URL.indexOf(\"localhost\") > 0 ? \"http://localhost:52656\" : window.location.protocol + \"//\" + window.location.host + \"/v1\";\r\n\t\t\t\t\t\t\tthis.loginProcessLoading = false;\r\n\t\t\t\t\t\t\tconsole.log(this.componentName + \"redirecting to legacy application...\");\r\n\r\n\t\t\t\t\t\t\tthis.routeExternal.routeToExternalUrl(url);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t(error: any) => {\r\n\t\t\t\t\t\tconsole.error(this.componentName + \"Error in MultiActionCondensed promise: %O\", error);\r\n\t\t\t\t\t\tif (error.status == 403 || error.status == 500) {\r\n\t\t\t\t\t\t\tconsole.log(this.componentName + \"access token \" + accessToken + \" is invalid. Redirecting to the login page.\");\r\n\t\t\t\t\t\t\tthis.authenticationService.logout();\r\n\t\t\t\t\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tswal.fire({\r\n\t\t\t\t\t\t\t\ttitle: \"Error connecting to Database\",\r\n\t\t\t\t\t\t\t\ttext: \"Your connection was unsucessful connecting to the database for iOPS. Please reload the application to re-connect to the database. If your problem persists, please contact your iOPS Administrator.\",\r\n\t\t\t\t\t\t\t\tshowCancelButton: false,\r\n\t\t\t\t\t\t\t\tconfirmButtonText: \"Reload\",\r\n\t\t\t\t\t\t\t\treverseButtons: false\r\n\t\t\t\t\t\t\t}).then(() => {\r\n\t\t\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t\t\t\t// this.authenticationService.logout();\r\n\t\t\t\t\t\t\t\t// this.router.navigate(['user/login']);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tvalidateUsername() {\r\n\t\tif (!this.username.untouched && this.username.valid) {\r\n\t\t\tthis.usernameHasNotBeenValued = false;\r\n\t\t}\r\n\t\treturn this.username.valid || this.username.untouched;\r\n\t}\r\n\r\n\tvalidatePassword() {\r\n\t\treturn this.password.valid || this.password.untouched;\r\n\t}\r\n\r\n\tresetPasswordByUsername(formValues) {\r\n\t\tconsole.log(this.componentName + \"resetPasswordByUsername invoked: formValues = %O\", formValues);\r\n\t\tthis.sendPasswordToken();\r\n\t}\r\n\r\n\tsendPasswordToken() {\r\n\t\tconsole.log(this.componentName + \"sendPasswordToken invoked...\");\r\n\t\tthis.changePasswordHasBeenRequested = true;\r\n\t\tconsole.log(this.componentName + \"changePasswordHasBeenRequested = \" + this.changePasswordHasBeenRequested);\r\n\t\tvar username = this.loginForm.value.username ? this.loginForm.value.username : this.resetPasswordForm.value.resetUsername;\r\n\t\tconsole.log(this.componentName + \"username = \" + username);\r\n\r\n\t\tif (username && username != \"\") {\r\n\t\t\tconsole.log(this.componentName + \"attempting to send reset password token...\");\r\n\t\t\tthis.dataService.RequestToResetPassword(username).then((data: any) => {\r\n\t\t\t\tconsole.log(this.componentName + \"sendPasswordToken: data.body = %O\", data.body);\r\n\t\t\t\tvar email = data.body.first();\r\n\t\t\t\tthis.sendAlertToUser(email);\r\n\t\t\t\tthis.changePasswordHasBeenRequested = false;\r\n\t\t\t\tthis.usernameHasNotBeenValued = true;\r\n\t\t\t\tthis.username = new FormControl(\"\", Validators.required);\r\n\t\t\t\tthis.password = new FormControl(\"\", Validators.required);\r\n\t\t\t\tthis.resetUsername = new FormControl(\"\", Validators.required);\r\n\t\t\t\tthis.resetPasswordForm.value.resetUsername = \"\";\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tsendAlertToUser(email: string) {\r\n\t\tif (email == undefined) {\r\n\t\t\tswal.fire({\r\n\t\t\t\ttitle: \"Password Change\",\r\n\t\t\t\tposition: \"center\",\r\n\t\t\t\thtml: \"Password Email sent to your email address.
          This password change token can be used only once.\"\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tswal.fire({\r\n\t\t\t\ttitle: \"Password Change\",\r\n\t\t\t\tposition: \"center\",\r\n\t\t\t\thtml: \"Password Email sent to \" + email + \"
          This password change token can be used only once.\"\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","
          \r\n\t\r\n\r\n\t
          \r\n\t\t
          \r\n\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t\t\t\"\"\r\n\t\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\t Request Account \r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\t Forgot Password? \r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t
          \r\n\t\t
          \r\n\t
          \r\n
          \r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { BehaviorSubject, Observable, of } from \"rxjs\";\r\nimport { tap, catchError } from \"rxjs/operators\";\r\n\r\nimport { IUser } from \"../_models/user.model\";\r\nimport { HttpHeaders } from \"@angular/common/http\";\r\nimport { UtilityService } from \"projects/shared-lib/src/lib/services/utility.service\";\r\nimport { SignalRCoreService } from \"projects/shared-lib/src/lib/services/signalr-core.service\";\r\nimport { Global } from \"../_constants/global.variables\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class AuthenticationService {\r\n\tprivate currentUserSubject: BehaviorSubject;\r\n\tpublic currentUser: Observable;\r\n\tpublic handleError: any;\r\n\tpublic routerEvents$: any;\r\n\tpublic serviceName: string = \"authentication-service: \";\r\n\r\n\tconstructor(private http: HttpClient, private utilityService: UtilityService, private signalRCore: SignalRCoreService, private dataService: DataService, private router: Router) {\r\n\t\tif (!Global.User?.isLoggedIn) {\r\n\t\t\tthis.dataService.setThemeBackToDefaultSettings();\r\n\t\t}\r\n\r\n\t\tconsole.log(\"webAPI URL: \" + Global.Data.dataServerUrl);\r\n\t\tconsole.log(\"SignalR.CoreUrl: \" + Global.SignalR.CoreUrl);\r\n\r\n\t\tthis.currentUserSubject = new BehaviorSubject(JSON.parse(localStorage.getItem(\"currentUser\")));\r\n\r\n\t\t// let localhostindex = document.URL.indexOf('localhost');\r\n\t\t// let testmobilesplit = document.URL.split('.iopsmobile.com')[0];\r\n\t\t// let testsplit = document.URL.split('.iopspro.com')[0];\r\n\t\t// console.log(this.serviceName + 'document.URL = ' + document.URL);\r\n\t\t// console.log(this.serviceName + 'localhostindex', localhostindex);\r\n\r\n\t\t// console.log(this.serviceName + 'testmobilesplit', testmobilesplit);\r\n\t\t// console.log(this.serviceName + 'testsplit', testsplit);\r\n\r\n\t\t//let testvar = document.URL.indexOf('localhost') > 0 || document.URL.indexOf('test') > 0 ? 'https://test.iopspro.com/DataServices/ODataV4' : 'https://iopspro.com/DataServices/ODataV4';\r\n\t\t//console.log(this.serviceName + 'evaluationvariable', testvar);\r\n\t\tthis.currentUserSubject = new BehaviorSubject(JSON.parse(localStorage.getItem(\"currentUser\")));\r\n\t\tthis.currentUser = this.currentUserSubject.asObservable();\r\n\t}\r\n\r\n\tpublic get currentUserValue(): IUser {\r\n\t\treturn this.currentUserSubject.value;\r\n\t}\r\n\r\n\tvalidatePasswordToken(passwordToken: string) {\r\n\t\treturn this.validatePasswordTokenHttpPost(passwordToken);\r\n\t}\r\n\r\n\tloginWithUsernameAndPassword(username: string, password: string) {\r\n\t\tthis.dataService.ApplicationLoadingMessage(\"Logging in User\", true);\r\n\t\tthis.signalRCore.LogActivity(\"Logging in as \" + username + \"...\", username);\r\n\t\tvar dataString = username + \"\\n\" + password;\r\n\t\treturn this.httpPost(dataString, \"username/password\");\r\n\t}\r\n\r\n\tresetApplicationToDefaultSettings() {\r\n\t\t// remove user from local storage and set current user to null\r\n\t\tlocalStorage.removeItem(\"currentUser\");\r\n\t\tGlobal.User.DebugMode = false;\r\n\t\tGlobal.User.Menu = null;\r\n\t\tGlobal.User.PermittedSites = null;\r\n\t\tGlobal.User.Privilege = null;\r\n\t\tGlobal.User.Role = null;\r\n\t\tGlobal.User.currentUser = null;\r\n\t\tGlobal.User.isAdmin = false;\r\n\t\tGlobal.User.isOrgAdmin = false;\r\n\t\tGlobal.User.isSiteAdmin = false;\r\n\t\tGlobal.User.isLoggedIn = false;\r\n\t\tGlobal.User.needToBuildMenu = true;\r\n\t\tGlobal.SignalR.ListOfTagNamePrefixes = null;\r\n\t\tGlobal.SignalR.ListOfAdditionalSignalRGroups = null;\r\n\t\tthis.currentUserSubject.next(null);\r\n\t\tif (this.signalRCore) {\r\n\t\t\tthis.signalRCore.stopHub();\r\n\t\t}\r\n\r\n\t\tthis.dataService.setThemeBackToDefaultSettings();\r\n\t}\r\n\r\n\tlogout() {\r\n\t\tGlobal.User.DebugMode && console.log(this.serviceName + \"LOGGING OUT...\");\r\n\t\tthis.signalRCore.LogActivity(\"Logging out...\");\r\n\t\tGlobal.User.isLoggedInAsDifferentUser = false;\r\n\t\tif (Global.User.currentUser != null) {\r\n\t\t\tvar sqlStatement = \"Security.User_Logout_ByUsername @Username='\" + Global.User.currentUser.Username + \"', @isMobile=\" + (Global.isMobile ? \"1\" : \"0\");\r\n\t\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\t\tthis.signalRCore.LogActivity(data);\r\n\t\t\t\tthis.resetApplicationToDefaultSettings();\r\n\t\t\t\tthis.router.navigate([\"login\"]);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.resetApplicationToDefaultSettings();\r\n\t\t\tthis.router.navigate([\"login\"]);\r\n\t\t}\r\n\t}\r\n\r\n\tloginUserWithAccessToken = function (accessToken) {\r\n\t\t//See if there is a password change token attached to the url.\r\n\r\n\t\tGlobal.User.DebugMode && console.log(this.serviceName + \"loginUserWithAccessToken: accessToken = \" + accessToken);\r\n\t\tvar dataString = this.utilityService.GetQuerystringParameterByName(\"pwt\");\r\n\t\tif (dataString) {\r\n\t\t\tlocalStorage.removeItem(\"currentUser\");\r\n\t\t\tthis.currentUserSubject.next(null);\r\n\t\t} else {\r\n\t\t\t//No password change token - get the last ODataAccessToken from the data store\r\n\t\t\tdataString = accessToken;\r\n\t\t\tthis.signalRCore.LogActivity(\"Logging in with access token...\");\r\n\t\t\treturn this.httpPost(dataString, \"accessToken\");\r\n\t\t}\r\n\t};\r\n\r\n\thttpPost = function (dataString: string, type: string) {\r\n\t\tlet httpOptions = {\r\n\t\t\theaders: new HttpHeaders({\r\n\t\t\t\t\"Content-Type\": \"application/json\",\r\n\t\t\t\tAuthorization: \"my-auth-token\"\r\n\t\t\t})\r\n\t\t};\r\n\r\n\t\tGlobal.User.DebugMode && console.log(this.serviceName + \"dataServerIsLocal = \" + Global.Data.dataServerIsLocal);\r\n\t\tGlobal.User.DebugMode && console.log(this.serviceName + \"this.apiUrl = \" + this.apiUrl);\r\n\t\tvar time0 = performance.now();\r\n\r\n\t\t// this.http.post(this.loginUrl, dataString, httpOptions).toPromise().then()\r\n\t\tlet promise = new Promise((resolve, reject) => {\r\n\t\t\t// let apiURL = `${this.apiRoot}?term=${term}&media=music&limit=20`;\r\n\t\t\tthis.http\r\n\t\t\t\t.post(this.dataService.loginUrl, dataString, httpOptions)\r\n\t\t\t\t.toPromise()\r\n\t\t\t\t.then(\r\n\t\t\t\t\t(accessTokenSentBackFromWebAPI) => {\r\n\t\t\t\t\t\t// Success\r\n\t\t\t\t\t\tvar time = performance.now() - time0;\r\n\t\t\t\t\t\tconsole.log(this.serviceName + \"time for webAPI to authenticate user with \" + type + \": \" + time + \" milliseconds.\");\r\n\t\t\t\t\t\tconsole.log(this.serviceName + \"Logged in user access token sent back from webAPI: \" + accessTokenSentBackFromWebAPI);\r\n\t\t\t\t\t\tif (accessTokenSentBackFromWebAPI) {\r\n\t\t\t\t\t\t\tGlobal.User.isLoggedIn = true;\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.serviceName + \"current user is logged in...\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tresolve(accessTokenSentBackFromWebAPI);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t(msg) => {\r\n\t\t\t\t\t\t// Error\r\n\t\t\t\t\t\treject(msg);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t});\r\n\t\treturn promise;\r\n\t};\r\n\r\n\tvalidatePasswordTokenHttpPost = function (passwordChangeToken: string) {\r\n\t\tlet httpOptions = {\r\n\t\t\theaders: new HttpHeaders({\r\n\t\t\t\t\"Content-Type\": \"application/json\",\r\n\t\t\t\tAuthorization: \"my-auth-token\"\r\n\t\t\t})\r\n\t\t};\r\n\r\n\t\tGlobal.User.DebugMode && console.log(this.serviceName + \"dataServerIsLocal = \" + Global.Data.dataServerIsLocal);\r\n\t\tGlobal.User.DebugMode && console.log(this.serviceName + \"this.passwordTokenValidationUrl = \" + this.passwordTokenValidationUrl);\r\n\t\tvar time0 = performance.now();\r\n\t\tconst http$ = this.http.post(this.passwordTokenValidationUrl, passwordChangeToken, httpOptions).pipe(\r\n\t\t\ttap((valid: any) => {\r\n\t\t\t\tvar time = performance.now() - time0;\r\n\t\t\t\tconsole.log(this.serviceName + \"time for webAPI to password token = \" + time + \" milliseconds.\");\r\n\t\t\t\tconsole.log(this.serviceName + \"Is password token valid? \" + valid);\r\n\t\t\t\treturn valid;\r\n\t\t\t}),\r\n\t\t\tcatchError((err) => of([]))\r\n\t\t);\r\n\t\treturn http$;\r\n\t};\r\n}\r\n","import { Injectable, NgZone } from \"@angular/core\";\r\nimport { IUser } from \"../_models/user.model\";\r\n\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { Router } from \"@angular/router\";\r\nimport { AuthenticationService } from \"./authentication.service\";\r\nimport { UtilityService } from \"./utility.service\";\r\nimport { CacheUtilityService } from \"./cache-utility.service\";\r\nimport { DataService } from \"./data.service\";\r\nimport moment from \"moment\";\r\nimport Swal from \"sweetalert2\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\n\r\nimport { SignalRCoreService } from \"./signalr-core.service\";\r\nimport { Global } from \"../_constants/global.variables\";\r\nimport { ReleaseNotesComponent } from \"../components/release-notes/release-notes.component\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { SnackbarBroadcastMessageComponent } from \"../components/snackbar-broadcast-message/snackbar-broadcast-message.component\";\r\nimport { IGlobal } from \"../_models/global.model\";\r\nimport { IAsset } from \"../_models/asset.model\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\"\r\n})\r\nexport class SecurityService {\r\n\tpublic currentUser: IUser;\r\n\tpublic currentUserIsLoggedIn$: Subject = new Subject();\r\n\tpublic redirectUrl: string;\r\n\tpublic serviceName: string = \"security-service: \";\r\n\tpublic lastVisitedRouteData: any;\r\n\r\n\tsystemMessage: { severity: string; message: string; active: boolean };\r\n\r\n\tconstructor(private signalRCore: SignalRCoreService, private authenticationService: AuthenticationService, private router: Router, private dataService: DataService, private cacheUtilityService: CacheUtilityService, private zone: NgZone, private utilityService: UtilityService, public dialog: MatDialog, private snackBar: MatSnackBar) {\r\n\t\tthis.currentUser = Global.User.currentUser;\r\n\t}\r\n\r\n\tgetCurrentUser() {\r\n\t\tthis.currentUser = JSON.parse(localStorage.getItem(\"currentUser\")) as IUser;\r\n\t\tGlobal.User.currentUser = this.currentUser;\r\n\r\n\t\treturn this.currentUser;\r\n\t}\r\n\r\n\tcurrentUserIsLoggedIn() {\r\n\t\tconsole.log(this.serviceName + \"Global.User = %O\", Global.User);\r\n\t\tconsole.log(this.serviceName + \"Global.User.isLoggedIn = \" + Global.User.isLoggedIn);\r\n\r\n\t\tif (Global && !Global.User.isLoggedIn && !Global.User.isBeingAuthenticated) {\r\n\t\t\tthis.authenticateUser();\r\n\t\t} else {\r\n\t\t\tthis.updateIsLoggedInUserStatus(true);\r\n\t\t}\r\n\t}\r\n\r\n\tupdateIsLoggedInUserStatus(isLoggedIn: boolean) {\r\n\t\tconsole.log(this.serviceName + \"updateIsLoggedInUserStatus: curentUserIsLoggedIn: \" + isLoggedIn);\r\n\t\tGlobal.User.isLoggedIn = isLoggedIn;\r\n\t\tthis.currentUserIsLoggedIn$.next(Global.User.isLoggedIn);\r\n\t\tthis.signalRCore.LogActivity(\"Current user is logged in.\");\r\n\t}\r\n\r\n\tget isAdmin(): boolean {\r\n\t\tif (!Global.User.currentUser) {\r\n\t\t\tthis.currentUser = JSON.parse(localStorage.getItem(\"currentUser\")) as IUser;\r\n\t\t\tGlobal.User.currentUser = this.currentUser;\r\n\t\t} else {\r\n\t\t\tthis.currentUser = Global.User.currentUser;\r\n\t\t}\r\n\r\n\t\treturn Global.User.isAdmin;\r\n\t}\r\n\r\n\tauthenticateUser() {\r\n\t\tconsole.log(this.serviceName + \"Global.Theme = \" + Global.Theme);\r\n\t\tconsole.log(this.serviceName + \"Global = %O\", Global);\r\n\t\tthis.dataService.ApplicationLoadingMessage(\"Logging in User\", true);\r\n\t\tif (!Global.User.isBeingAuthenticated) {\r\n\t\t\tthis.signalRCore.LogActivity(\"Global.User.isBeingAuthenticated is null. User is now being authenticated...\");\r\n\r\n\t\t\tGlobal.User.isBeingAuthenticated = true;\r\n\t\t\tconsole.log(this.serviceName + \"authenticating user...Global.User.isBeingAuthenticated = \" + Global.User.isBeingAuthenticated);\r\n\t\t\tconst currentUser = this.getCurrentUser();\r\n\r\n\t\t\tconsole.log(this.serviceName + \"currentUser = %O\", currentUser);\r\n\r\n\t\t\tif (currentUser && currentUser.ODataAccessToken) {\r\n\t\t\t\tconsole.log(this.serviceName + \"Logging in with access token '\" + currentUser.ODataAccessToken + \"'...\");\r\n\t\t\t\t//-- assuming the person is logged in so the login screen won't appear. --Kirk T. Sherer, March 1, 2021.\r\n\t\t\t\tthis.signalRCore.LogActivity(\"Logging in with access token...\");\r\n\r\n\t\t\t\tthis.dataService.ApplicationLoadingMessage(\"Logged In\", true);\r\n\t\t\t\tthis.processLoggedInUser(null, currentUser.Username); //-- processing the logged-in user if the access token is valid.\r\n\t\t\t\t//-----------------------------------------------------------------------------------------------------\r\n\t\t\t\t// NOTE: \tWe're no longer going to the webAPI to authenticate the user's access token. We're just\r\n\t\t\t\t//\t\t\tgoing to send the access token into the processLoggedInUser function and if the User\r\n\t\t\t\t//\t\t\trecord comes back with no valid Username defined, then we kick the user out to the login\r\n\t\t\t\t//\t\t\tscreen. --Kirk T. Sherer, March 1, 2021.\r\n\t\t\t\t//-----------------------------------------------------------------------------------------------------\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log(this.serviceName + \"Logging in with username / password since localStorage currentUser doesn't exist...\");\r\n\t\t\t\tconsole.log(this.serviceName + \"Navigating to /login...\");\r\n\t\t\t\tthis.signalRCore.LogActivity(\"Logging in with username / password since localStorage currentUser doesn't exist...\");\r\n\r\n\t\t\t\tif (Global.isMobile) {\r\n\t\t\t\t\tthis.router.navigate([\"login\"]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconsole.log(this.serviceName + \"User is currently being authenticated...\");\r\n\t\t\tthis.signalRCore.LogActivity(\"User is being authenticated...\");\r\n\t\t}\r\n\t}\r\n\r\n\tlogInAsDifferentUser(accessToken: string) {\r\n\t\tthis.signalRCore.LogActivity(\"User is logging in as a different user.\");\r\n\t\tGlobal.User.isBeingAuthenticated = true;\r\n\t\tthis.currentUser = null; //-- have to be sure this is cleared out to log in as a different user. --Kirk T. Sherer, September 7, 2021.\r\n\t\tthis.authenticationService.loginUserWithAccessToken(accessToken).then(\r\n\t\t\t(accessToken: any) => {\r\n\t\t\t\tif (!accessToken) {\r\n\t\t\t\t\t// -- login was invalid, so go to login with username/password.\r\n\t\t\t\t\tconsole.log(this.serviceName + \"Logging in with username / password since logging in with ODataAccessToken was invalid...\");\r\n\t\t\t\t\tconsole.log(this.serviceName + \"Navigating to /login...\");\r\n\t\t\t\t\tthis.signalRCore.LogActivity(\"Logging in with username / password since logging in with ODataAccessToken was invalid...\");\r\n\r\n\t\t\t\t\tif (Global.isMobile) {\r\n\t\t\t\t\t\tthis.router.navigate([\"login\"]);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//-- user was successfully logged in as another user. Send out the update to the 'isLoggedIn' status.\r\n\t\t\t\t\tconsole.log(this.serviceName + \"Logging in with access token '\" + accessToken + \"'...\");\r\n\t\t\t\t\tthis.signalRCore.LogActivity(\"Logging in with other user's access token...\");\r\n\t\t\t\t\tthis.processLoggedInUser(accessToken);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t(err: Error) => {\r\n\t\t\t\tconsole.error(`user was not authorized. Error: ${err}`);\r\n\t\t\t\tconsole.log(this.serviceName + \"Navigating to /login...\");\r\n\t\t\t\tthis.signalRCore.LogActivity(\"User was not authorized to log in as another user. Navigating to /login...\");\r\n\t\t\t\tif (Global.isMobile) {\r\n\t\t\t\t\tthis.router.navigate([\"login\"]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t() => {\r\n\t\t\t\tconsole.log(this.serviceName + \"All finished with user authentication.\");\r\n\t\t\t\tthis.signalRCore.LogActivity(\"All finished with user authentication.\");\r\n\t\t\t\tGlobal.User.isBeingAuthenticated = false;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\tprocessLoggedInUser(accessToken: string, username?: string) {\r\n\t\tthis.signalRCore.startHub();\r\n\t\tthis.dataService.ApplicationLoadingMessage(\"Preparing to connect to database\", true);\r\n\t\tthis.signalRCore.LogActivity(\"Preparing to connect to database.\");\r\n\t\tthis.signalRCore.LogActivity(\"Using \" + (Global.isMobile ? \"mobile\" : \"desktop\") + \" application.\");\r\n\t\tconsole.log(\"Using \" + (Global.isMobile ? \"mobile\" : \"desktop\") + \" application.\");\r\n\r\n\t\t//Connecting to User and Site Data\r\n\t\tvar time0 = performance.now();\r\n\t\tvar authorizedSitesAndPrivileges: any = [];\r\n\t\tvar mainMenuPrivileges: any = [];\r\n\t\tvar widgetsPerSite: any = [];\r\n\t\tvar authorizedSitesAndPrivilegesObject = {};\r\n\r\n\t\tvar widgetsPerSiteObject = {};\r\n\t\tvar listOfUserRolesAndPrivileges = {};\r\n\t\tvar listOfUserRoles = {};\r\n\t\tvar listOfUserPrivileges = {};\r\n\r\n\t\t// --login was valid, so navigate to the main layout.\r\n\t\tconsole.log(this.serviceName + \"processLoggedInUser invoked...\");\r\n\t\tvar accessTokenWithParameterName = accessToken != null ? \"@accessToken='\" + accessToken + \"'\" : \"\";\r\n\t\tvar usernameWithParameterName = username != null ? \"@Username='\" + username + \"'\" : \"\";\r\n\r\n\t\t//-- build out JSON object for SQLMultiAction first... --Kirk T. Sherer, February 10, 2021.\r\n\t\tvar requestJSON: any = [\r\n\t\t\t{\r\n\t\t\t\tlabel: \"PersonAndSecurityRecord\",\r\n\t\t\t\tsqlStatement: \"Security.User_Login_PersonAndSecurityRecord \" + accessTokenWithParameterName + usernameWithParameterName + \", @EnvironmentId=\" + Global.Application.Environment.Id + \", @isMobile=\" + (Global.isMobile ? \"1\" : \"0\")\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"ListOfUserRolesAndPrivileges\",\r\n\t\t\t\tsqlStatement: \"Security.User_Login_DistinctListOfUserRolesAndPrivileges\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"AuthorizedSitesAndPrivileges\",\r\n\t\t\t\tsqlStatement: username != null ?\r\n\t\t\t\t\t\"Security.User_Login_AuthorizedSitesRolesAndPrivilegesForUser_ByUsername @Username='\" + username + \"'\" : \"Security.User_Login_AuthorizedSitesRolesAndPrivilegesForUser @accessToken='\" + accessToken + \"'\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"MainMenuPrivileges\",\r\n\t\t\t\tsqlStatement: username != null ?\r\n\t\t\t\t\t\"Security.User_Login_MainMenuPrivilegesForUser_ByUsername @Username='\" + username + \"'\" : \"Security.User_Login_MainMenuPrivilegesForUser @accessToken='\" + accessToken + \"'\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"UserFavorites\",\r\n\t\t\t\tsqlStatement: username != null ?\r\n\t\t\t\t\t\"Security.User_Login_UserFavorites_ByUsername @Username='\" + username + \"'\" : \"Security.User_Login_UserFavorites @accessToken='\" + accessToken + \"'\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"WidgetsPerSite\",\r\n\t\t\t\tsqlStatement: username != null ?\r\n\t\t\t\t\t\"Security.User_Login_WidgetsPerSite_ByUsername @Username='\" + username + \"'\" : \"Security.User_Login_WidgetsPerSite @accessToken='\" + accessToken + \"'\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"Dashboards\",\r\n\t\t\t\tsqlStatement: \"Security.User_Login_DashboardsForUser \" + accessTokenWithParameterName + usernameWithParameterName + \", @isMobile=\" + Global.isMobile\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"DashboardTimeScopes\",\r\n\t\t\t\tsqlStatement: \"API.GetDashboardTimeScopes\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"TacticalDashboardUpdateIntervals\",\r\n\t\t\t\tsqlStatement: \"API.GetTacticalDashboardUpateIntervals\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"GeofencingZoneTypes\",\r\n\t\t\t\tsqlStatement: \"API.GeofencingGetAllZoneTypes\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"CacheUtilityData\",\r\n\t\t\t\tsqlStatement: username != null ?\r\n\t\t\t\t\t\"API.GetUserCachedTableData_Without_Major_Collections_ByUsername @Username='\" + username + \"'\" : \"API.GetUserCachedTableData_Without_Major_Collections @accessToken = '\" + accessToken + \"'\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"JBTStandardObservationsLessThan16000\",\r\n\t\t\t\tsqlStatement: \"API.GetUserCachedTableData_JBTStandardObservations_IDs_Less_Than_16000\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"JBTStandardObservationsBetween16000And55000\",\r\n\t\t\t\tsqlStatement: \"API.GetUserCachedTableData_JBTStandardObservations_IDs_Between_16000_And_55000\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"JBTStandardObservationsGreaterThan55000\",\r\n\t\t\t\tsqlStatement: \"API.GetUserCachedTableData_JBTStandardObservations_IDs_Greater_Than_55000\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"Assets\",\r\n\t\t\t\tsqlStatement: username != null ?\r\n\t\t\t\t\t\"API.GetUserCachedTableData_Assets_ByUsername @Username='\" + username + \"'\" : \"API.GetUserCachedTableData_Assets @accessToken = '\" + accessToken + \"'\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"AssetGraphics\",\r\n\t\t\t\tsqlStatement: username != null ?\r\n\t\t\t\t\t\"API.GetUserCachedTableData_AssetGraphics_ByUsername @Username='\" + username + \"'\" : \"API.GetUserCachedTableData_AssetGraphics @accessToken = '\" + accessToken + \"'\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"SystemsAndSystemGraphics\",\r\n\t\t\t\tsqlStatement: username != null ?\r\n\t\t\t\t\t\"API.GetUserCachedTableData_Systems_and_SystemGraphics_ByUsername @Username='\" + username + \"'\" : \"API.GetUserCachedTableData_Systems_and_SystemGraphics @accessToken = '\" + accessToken + \"'\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: \"GenericTacticalDashboardWidgets\",\r\n\t\t\t\tsqlStatement: \"API.GetListOfTacticalDashboardRepeatWidgetType\"\r\n\t\t\t},\r\n\r\n\t\t\t{\r\n\t\t\t\tlabel: \"UpdateLastLoginDate\",\r\n\t\t\t\tsqlStatement: username != null ?\r\n\t\t\t\t\t\"Security.User_UpdateLastLoginDate_ByUsername @Username='\" + username + \"'\" : \"Security.User_UpdateLastLoginDate @accessToken = '\" + accessToken + \"', @isMobile=\" + Global.isMobile //-- log the user's login date/time in SQL Server so we can track usage of the user accounts. This was in the PersonAndSecurityRecord stored procedure earlier. --Kirk T. Sherer, July 27, 2023.\r\n\t\t\t}\r\n\t\t];\r\n\t\tconsole.log(\"requestJSON = %O\", requestJSON);\r\n\r\n\t\ttry {\r\n\t\t\tthis.dataService.ApplicationLoadingMessage(\"Connecting to Database\", true);\r\n\r\n\t\t\tthis.dataService.SQLMultiAction(requestJSON, accessToken).then(\r\n\t\t\t\t(data: any) => {\r\n\t\t\t\t\t//logged in successfully\r\n\t\t\t\t\tthis.dataService.ApplicationLoadingMessage(\"\", false);\r\n\r\n\t\t\t\t\tthis.signalRCore.LogActivity(\"Execution of Multi Action successful.\");\r\n\t\t\t\t\tconsole.log(this.serviceName + \"SQLMultiAction for requestJSON = %O\", data);\r\n\t\t\t\t\tvar collections: any = data;\r\n\t\t\t\t\tvar user: any = {};\r\n\t\t\t\t\tuser.Menu = {\r\n\t\t\t\t\t\tDashboards: [],\r\n\t\t\t\t\t\tPrivileges: []\r\n\t\t\t\t\t};\r\n\t\t\t\t\tuser.Security = {\r\n\t\t\t\t\t\tAggregate: {\r\n\t\t\t\t\t\t\tCollections: {\r\n\t\t\t\t\t\t\t\tAssetIds: [],\r\n\t\t\t\t\t\t\t\tSiteIds: [],\r\n\t\t\t\t\t\t\t\tWidgetTypeIds: []\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tAllowedDashboardTypeIds: [],\r\n\t\t\t\t\t\tAllowedDashboardTypes: [\r\n\t\t\t\t\t\t\t{ Id: 1, Name: \"Standard\" },\r\n\t\t\t\t\t\t\t{ Id: 2, Name: \"Tactical\" }\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t};\r\n\t\t\t\t\tvar userTimer = performance.now();\r\n\t\t\t\t\tcollections.forEach((collection: any) => {\r\n\t\t\t\t\t\tswitch (collection.label) {\r\n\t\t\t\t\t\t\tcase \"PersonAndSecurityRecord\":\r\n\t\t\t\t\t\t\t\tif (!collection.data) {\r\n\t\t\t\t\t\t\t\t\tthis.signalRCore.LogActivity(\"Invalid User. Going back to login screen.\");\r\n\r\n\t\t\t\t\t\t\t\t\t//--this insures that if we don't receive anything for this person, we're headed back to the login screen. Thanks for the recommendation, Dylan.\r\n\t\t\t\t\t\t\t\t\tthis.authenticationService.resetApplicationToDefaultSettings();\r\n\t\t\t\t\t\t\t\t\tif (Global.isMobile) {\r\n\t\t\t\t\t\t\t\t\t\tthis.router.navigate([\"login\"]);\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tvar personRecord = collection.data.first(); //-- if we're here, we might have an inactive user since the token was valid.\r\n\t\t\t\t\t\t\t\t\tconsole.log(this.serviceName + \"personRecord = %O\", personRecord);\r\n\r\n\t\t\t\t\t\t\t\t\tif (personRecord == \"E\") {\r\n\t\t\t\t\t\t\t\t\t\t//-- we have an error in the person record instead of a data collection. Reload the application since it didn't finish bringing up the site.\r\n\t\t\t\t\t\t\t\t\t\tthis.signalRCore.LogActivity(\"Error in user validation. Reloading site....\");\r\n\t\t\t\t\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tthis.signalRCore.LogActivity(\"Valid user. Continuing user setup...\");\r\n\r\n\t\t\t\t\t\t\t\t\tfor (var field in personRecord) {\r\n\t\t\t\t\t\t\t\t\t\tif (field != \"OrganizationId\" && field != \"OrganizationName\" && field != \"EnvironmentVersion\") {\r\n\t\t\t\t\t\t\t\t\t\t\tswitch (field) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcase \"IsSystemAdministrator\":\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuser.IsSystemAdministrator = personRecord[field] == null ? false : personRecord[field] == 1;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\tcase \"IsOrganizationAdministrator\":\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuser.IsOrganizationAdministrator = personRecord[field] == null ? false : personRecord[field] == 1;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\tcase \"Rockstar\":\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuser.Rockstar = personRecord[field] == null ? false : personRecord[field] == 1;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\tcase \"UseProductionDataOnTest\":\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuser.UseProductionDataOnTest = personRecord[field] == null ? false : personRecord[field] == 1;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\tcase \"Active\":\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuser.Active = personRecord[field] == null ? false : personRecord[field] == 1;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\tcase \"ReturnToLastVisitedRoute\":\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuser.ReturnToLastVisitedRoute = personRecord[field] == null ? false : personRecord[field] == 1;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\tcase \"DarkTheme\": \r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuser.DarkTheme = personRecord[field] == null ? false : personRecord[field] == 1;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuser[field] = personRecord[field];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tconsole.log(this.serviceName + \"personRecord.DebugMode = \" + personRecord.DebugMode);\r\n\t\t\t\t\t\t\t\t\tGlobal.User.DebugMode = true;\r\n\t\t\t\t\t\t\t\t\tuser.Organization = {\r\n\t\t\t\t\t\t\t\t\t\tId: personRecord[\"OrganizationId\"],\r\n\t\t\t\t\t\t\t\t\t\tName: personRecord[\"OrganizationName\"],\r\n\t\t\t\t\t\t\t\t\t\tIsAdmin: user.IsOrganizationAdministrator,\r\n\t\t\t\t\t\t\t\t\t\tUsesAirportSites: personRecord[\"OrganizationUsesAirportSites\"] == 1\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\tuser.OrganizationUsesAirportSites = personRecord[\"OrganizationUsesAirportSites\"] == 1;\r\n\t\t\t\t\t\t\t\t\tGlobal.Application.Environment.Version = personRecord[\"EnvironmentVersion\"];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"ListOfUserRolesAndPrivileges\":\r\n\t\t\t\t\t\t\t\tlistOfUserRolesAndPrivileges = collection.data.first();\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"AuthorizedSitesAndPrivileges\":\r\n\t\t\t\t\t\t\t\tauthorizedSitesAndPrivileges = collection.data;\r\n\t\t\t\t\t\t\t\tif (!authorizedSitesAndPrivileges) {\r\n\t\t\t\t\t\t\t\t\tthis.authenticationService.resetApplicationToDefaultSettings();\r\n\t\t\t\t\t\t\t\t\tif (Global.isMobile) {\r\n\t\t\t\t\t\t\t\t\t\tthis.router.navigate([\"login\"]);\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tauthorizedSitesAndPrivileges.forEach((row: any) => {\r\n\t\t\t\t\t\t\t\t\tif (row) {\r\n\t\t\t\t\t\t\t\t\t\tauthorizedSitesAndPrivilegesObject[row.SiteId] = row;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"MainMenuPrivileges\":\r\n\t\t\t\t\t\t\t\tmainMenuPrivileges = collection.data.first().UserPrivileges;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"UserFavorites\":\r\n\t\t\t\t\t\t\t\tuser.UserFavorites = collection.data;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"WidgetsPerSite\":\r\n\t\t\t\t\t\t\t\t//console.log(\"collection.data = %O\", collection.data);\r\n\t\t\t\t\t\t\t\twidgetsPerSite = collection.data;\r\n\t\t\t\t\t\t\t\twidgetsPerSite.forEach((row: any) => {\r\n\t\t\t\t\t\t\t\t\tif (row) {\r\n\t\t\t\t\t\t\t\t\t\twidgetsPerSiteObject[row.Id] = row;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"Dashboards\":\r\n\t\t\t\t\t\t\t\tuser.Dashboards = collection.data;\r\n\t\t\t\t\t\t\t\tuser.DashboardsObject = {};\r\n\t\t\t\t\t\t\t\tcollection.data.forEach((dashboard: any) => {\r\n\t\t\t\t\t\t\t\t\tuser.DashboardsObject[dashboard.Id] = dashboard;\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"DashboardTimeScopes\":\r\n\t\t\t\t\t\t\t\tuser.DashboardTimeScopes = collection.data;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"TacticalDashboardUpdateIntervals\":\r\n\t\t\t\t\t\t\t\tuser.TacticalDashboardUpdateIntervals = collection.data;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"GeofencingZoneTypes\":\r\n\t\t\t\t\t\t\t\tuser.GeofencingZoneTypes = collection.data;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"CacheUtilityData\":\r\n\t\t\t\t\t\t\t\tthis.cacheUtilityService.returnedData = collection.data;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"JBTStandardObservationsLessThan16000\":\r\n\t\t\t\t\t\t\t\tthis.cacheUtilityService.jbtStandardObservationsLessThan16000 = collection.data;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"JBTStandardObservationsBetween16000And55000\":\r\n\t\t\t\t\t\t\t\tthis.cacheUtilityService.jbtStandardObservationsBetween16000And55000 = collection.data;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"JBTStandardObservationsGreaterThan55000\":\r\n\t\t\t\t\t\t\t\tthis.cacheUtilityService.jbtStandardObservationsGreaterThan55000 = collection.data;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"Assets\":\r\n\t\t\t\t\t\t\t\tthis.cacheUtilityService.assets = collection.data;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"AssetGraphics\":\r\n\t\t\t\t\t\t\t\tthis.cacheUtilityService.assetGraphics = collection.data;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"SystemsAndSystemGraphics\":\r\n\t\t\t\t\t\t\t\tthis.cacheUtilityService.systemsAndSystemGraphics = collection.data;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"GenericTacticalDashboardWidgets\":\r\n\t\t\t\t\t\t\t\tuser.GenericTacticalDashboardWidgets = collection.data;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tcase \"UpdateLastLoginDate\":\r\n\t\t\t\t\t\t\t\tthis.lastVisitedRouteData = collection.data;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tuser.DashboardTimeZones = [\r\n\t\t\t\t\t\t{ Id: 1, Description: \"User Time\" },\r\n\t\t\t\t\t\t{ Id: 2, Description: \"Site Time\" },\r\n\t\t\t\t\t\t{ Id: 3, Description: \"UTC Time\" }\r\n\t\t\t\t\t]; //-- don't need to pull this from SQL Server when it's just two items that won't change. --Kirk T. Sherer, March 3, 2022.\r\n\r\n\t\t\t\t\tvar timeToCreateUserObject = performance.now() - userTimer;\r\n\t\t\t\t\tconsole.log(this.serviceName + \"time for user object to be set up = \" + timeToCreateUserObject + \" milliseconds. user object = %O\", user);\r\n\t\t\t\t\tconsole.log(this.serviceName + \"this.cacheUtilityService.returnedData = %O\", this.cacheUtilityService.returnedData);\r\n\t\t\t\t\tthis.signalRCore.LogActivity(\"User object set up in \" + timeToCreateUserObject + \" milliseconds.\");\r\n\r\n\t\t\t\t\tif (!user.Username || !user.Active) {\r\n\t\t\t\t\t\t//-- invalid or inactive token. Just redirect to login screen. --Kirk T. Sherer, February 26, 2021.\r\n\t\t\t\t\t\tthis.signalRCore.LogActivity(\"User is not active. Redirecting to login screen.\");\r\n\r\n\t\t\t\t\t\tthis.authenticationService.resetApplicationToDefaultSettings();\r\n\t\t\t\t\t\tif (Global.isMobile) {\r\n\t\t\t\t\t\t\tthis.router.navigate([\"login\"]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//-- build out user security object -- Have to do this to add in the user privileges and roles they are assigned per site. --Kirk T. Sherer, October 21, 2021.\r\n\t\t\t\t\t\tuser.Security.AllowedDashboardTypeIds = widgetsPerSite\r\n\t\t\t\t\t\t\t.where((r: any) => {\r\n\t\t\t\t\t\t\t\treturn +r.dtId != -1;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.select((rec: any) => {\r\n\t\t\t\t\t\t\t\treturn +rec.dtId;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.distinct()\r\n\t\t\t\t\t\t\t.toArray();\r\n\t\t\t\t\t\tuser.Security.Aggregate.Collections.WidgetTypeIds = widgetsPerSite\r\n\t\t\t\t\t\t\t.select((widgetTypes: any) => {\r\n\t\t\t\t\t\t\t\treturn +widgetTypes.wtId;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.distinct()\r\n\t\t\t\t\t\t\t.toArray();\r\n\t\t\t\t\t\tuser.Security.Aggregate.Collections.WidgetTypeNames = widgetsPerSite\r\n\t\t\t\t\t\t\t.select((widgetTypeNames: any) => {\r\n\t\t\t\t\t\t\t\treturn widgetTypeNames.wtN;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.distinct()\r\n\t\t\t\t\t\t\t.toArray();\r\n\t\t\t\t\t\tuser.Security.Aggregate.Collections.SiteIds = authorizedSitesAndPrivileges\r\n\t\t\t\t\t\t\t.select((row: any) => {\r\n\t\t\t\t\t\t\t\treturn row.SiteId;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.distinct()\r\n\t\t\t\t\t\t\t.toArray();\r\n\t\t\t\t\t\tuser.Security.SiteIdsGroupedByWidgetTypeId = widgetsPerSite\r\n\t\t\t\t\t\t\t.groupBy((widgets: any) => {\r\n\t\t\t\t\t\t\t\treturn +widgets.wtId;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.toArray()\r\n\t\t\t\t\t\t\t.select((groupedByWidgets: any) => {\r\n\t\t\t\t\t\t\t\tvar firstRecord = groupedByWidgets.first();\r\n\t\t\t\t\t\t\t\tvar newRecord: any = {\r\n\t\t\t\t\t\t\t\t\tWidgetTypeId: +firstRecord.wtId,\r\n\t\t\t\t\t\t\t\t\tWidgetTypeName: firstRecord.wtN,\r\n\t\t\t\t\t\t\t\t\tDashboardTypeId: +firstRecord.dtId,\r\n\t\t\t\t\t\t\t\t\tSiteIdCollection: groupedByWidgets\r\n\t\t\t\t\t\t\t\t\t\t.select((rec: any) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn +rec.sId;\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t.toArray()\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\treturn newRecord;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.toArray();\r\n\t\t\t\t\t\tuser.Security.WidgetTypeIdsGroupedBySiteId = widgetsPerSite\r\n\t\t\t\t\t\t\t.groupBy((widgets: any) => {\r\n\t\t\t\t\t\t\t\treturn +widgets.sId;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.toArray()\r\n\t\t\t\t\t\t\t.select((formattedWidgets: any) => {\r\n\t\t\t\t\t\t\t\tvar firstRecord = formattedWidgets.first();\r\n\t\t\t\t\t\t\t\tvar newRecord: any = {\r\n\t\t\t\t\t\t\t\t\tSiteId: +firstRecord.sId,\r\n\t\t\t\t\t\t\t\t\tSiteName: firstRecord.sN,\r\n\t\t\t\t\t\t\t\t\tRole: authorizedSitesAndPrivilegesObject[+firstRecord.sId] != null ? authorizedSitesAndPrivilegesObject[+firstRecord.sId].UserRoles : \"Standard User\", //-- if we don't have the authorizedSitesAndPrivileges object for this site, just give them standard user access. --Kirk T. Sherer, November 4, 2021.\r\n\t\t\t\t\t\t\t\t\tPrivilege: authorizedSitesAndPrivilegesObject[+firstRecord.sId] != null ? authorizedSitesAndPrivilegesObject[+firstRecord.sId].UserPrivileges : \"Read\",\r\n\t\t\t\t\t\t\t\t\tWidgetTypeIdCollection: formattedWidgets\r\n\t\t\t\t\t\t\t\t\t\t.select((rec: any) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn +rec.wtId;\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t.toArray()\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\treturn newRecord;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.toArray();\r\n\r\n\t\t\t\t\t\tvar list: any = listOfUserRolesAndPrivileges;\r\n\t\t\t\t\t\tvar userRolesArray = list.UserRoles.split(\",\");\r\n\t\t\t\t\t\tvar userPrivsArray = list.UserPrivileges.split(\",\");\r\n\t\t\t\t\t\tvar mainMenuPrivsArray = list.UserPrivileges.split(\",\");\r\n\r\n\t\t\t\t\t\tuserRolesArray.forEach((role: string) => {\r\n\t\t\t\t\t\t\tlistOfUserRoles[role.replace(/\\s/g, \"\")] = false;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tuserPrivsArray.forEach((privilege: string) => {\r\n\t\t\t\t\t\t\tlistOfUserPrivileges[privilege.replace(/\\s/g, \"\")] = false;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tmainMenuPrivsArray.forEach((privilege: string) => {\r\n\t\t\t\t\t\t\tlistOfUserPrivileges[privilege.replace(/\\s/g, \"\")] = false;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tuser.Privilege = {};\r\n\t\t\t\t\t\tuser.Role = {};\r\n\t\t\t\t\t\tvar isSiteAdministrator = false;\r\n\t\t\t\t\t\tauthorizedSitesAndPrivileges.forEach((row: any) => {\r\n\t\t\t\t\t\t\tvar newObject = {};\r\n\t\t\t\t\t\t\tvar roles = {};\r\n\t\t\t\t\t\t\tvar privs = {};\r\n\t\t\t\t\t\t\tvar assignedUserRolesArray = row.UserRoles.split(\",\");\r\n\t\t\t\t\t\t\tvar assignedUserPrivsArray = row.UserPrivileges.split(\",\");\r\n\r\n\t\t\t\t\t\t\tuserRolesArray.forEach((role: string) => {\r\n\t\t\t\t\t\t\t\troles[role.replace(/\\s/g, \"\")] = false;\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tuserRolesArray.forEach((role: string) => {\r\n\t\t\t\t\t\t\t\tassignedUserRolesArray.forEach((assigned: string) => {\r\n\t\t\t\t\t\t\t\t\tif (assigned == role) {\r\n\t\t\t\t\t\t\t\t\t\troles[role.replace(/\\s/g, \"\")] = true;\r\n\t\t\t\t\t\t\t\t\t\tif (role == \"Administrator\" && isSiteAdministrator == false) {\r\n\t\t\t\t\t\t\t\t\t\t\tisSiteAdministrator = true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tuserPrivsArray.forEach((priv: string) => {\r\n\t\t\t\t\t\t\t\tprivs[priv.replace(/\\s/g, \"\")] = false;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tuserPrivsArray.forEach((priv: string) => {\r\n\t\t\t\t\t\t\t\tassignedUserPrivsArray.forEach((assigned: string) => {\r\n\t\t\t\t\t\t\t\t\tif (assigned == priv) {\r\n\t\t\t\t\t\t\t\t\t\tprivs[priv.replace(/\\s/g, \"\")] = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tuser.Privilege[row.SiteName] = privs;\r\n\t\t\t\t\t\t\tuser.Role[row.SiteName] = roles;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tvar mainMenuPrivilegesArray = mainMenuPrivileges.split(\",\");\r\n\t\t\t\t\t\tvar privs = {};\r\n\t\t\t\t\t\tmainMenuPrivsArray.forEach((priv: string) => {\r\n\t\t\t\t\t\t\tmainMenuPrivilegesArray.forEach((assigned: string) => {\r\n\t\t\t\t\t\t\t\tif (assigned == priv) {\r\n\t\t\t\t\t\t\t\t\tprivs[priv.replace(/\\s/g, \"\")] = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tuser.Menu.Privileges = privs;\r\n\r\n\t\t\t\t\t\tlocalStorage.setItem(\"currentUser\", JSON.stringify(user));\r\n\t\t\t\t\t\tconsole.log(this.serviceName + \"this.currentUser = %O\", this.currentUser);\r\n\t\t\t\t\t\tthis.signalRCore.LogActivity(\"User roles and privileges defined.\");\r\n\r\n\t\t\t\t\t\tvar currentUser = localStorage.getItem(\"currentUser\");\r\n\t\t\t\t\t\tGlobal.User.currentUser = JSON.parse(currentUser);\r\n\t\t\t\t\t\tGlobal.User.currentUser.DateLoggedIn = user.DateLoggedInMS;\r\n\t\t\t\t\t\tGlobal.User.currentUser.DateLoggedInFormatted = moment(user.DateLoggedInMS).format(\"YYYY-MM-DD HH:mm:ss\");\r\n\t\t\t\t\t\tGlobal.User.isAdmin = Global.User.currentUser.IsSystemAdministrator;\r\n\t\t\t\t\t\tGlobal.User.isOrgAdmin = Global.User.currentUser.IsOrganizationAdministrator && !Global.User.currentUser.IsSystemAdministrator;\r\n\t\t\t\t\t\tGlobal.User.isSiteAdmin = isSiteAdministrator && !Global.User.currentUser.IsSystemAdministrator && !Global.User.currentUser.IsOrganizationAdministrator;\r\n\t\t\t\t\t\tGlobal.User.Privilege = user.Privilege;\r\n\t\t\t\t\t\tGlobal.User.Role = user.Role;\r\n\t\t\t\t\t\tGlobal.User.Menu = user.Menu;\r\n\r\n\t\t\t\t\t\tconsole.log(this.serviceName + \"Global.User.currentUser = %O\", Global.User.currentUser);\r\n\t\t\t\t\t\tconsole.log(this.serviceName + \"Global = %O\", Global);\r\n\r\n\t\t\t\t\t\tGlobal.User.SidebarMini = user.SidebarMini;\r\n\t\t\t\t\t\tthis.dataService.updateDebugMode(user.DebugMode);\r\n\t\t\t\t\t\tvar localStorageUseProductionDataOnTest: string = localStorage.getItem(\"useProductionDataOnTest\");\r\n\t\t\t\t\t\tvar dbUseProductionDataOnTest: string = user.UseProductionDataOnTest == true ? \"1\" : \"0\";\r\n\t\t\t\t\t\tif (localStorageUseProductionDataOnTest != dbUseProductionDataOnTest) {\r\n\t\t\t\t\t\t\t//-- synching up the local storage value for UseProductionDataOnTest with the Database value for this user.\r\n\t\t\t\t\t\t\t//-- we're using the local storage version as the data source since it's what the user had set on their\r\n\t\t\t\t\t\t\t//-- browser / application. --Kirk T. Sherer, May 17, 2023.\r\n\t\t\t\t\t\t\tthis.dataService.updateUseProductionDataOnTest(localStorageUseProductionDataOnTest == \"1\" ? true : false, true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tGlobal.User.currentUser.GeofencingZoneTypes = user.GeofencingZoneTypes;\r\n\t\t\t\t\t\tGlobal.User.currentUser.UserFavorites = user.UserFavorites;\r\n\t\t\t\t\t\tthis.updateIsLoggedInUserStatus(true); //- need to set this here, after the user has been validated, before we allow SignalR to try to connect. --Kirk T. Sherer, November 29, 2023.\r\n\t\t\t\t\t\tthis.dataService.currentUserChanged$.next(Global.User.currentUser);\r\n\t\t\t\t\t\tthis.dataService.needToBuildMenu$.next(true);\r\n\r\n\t\t\t\t\t\t// Force Site Time when logged in as another user\r\n\t\t\t\t\t\tif (Global.User.isLoggedInAsDifferentUser == true) {\r\n\t\t\t\t\t\t\tGlobal.User.currentUser.Dashboards.forEach((dashboard) => {\r\n\t\t\t\t\t\t\t\tdashboard.TimeZoneId = 2;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//-- Theme settings, and isMobile is needed to determine if the user has set their overall mobile device setting to 'dark mode' in the 'prefersDarkTheme' setting.\r\n\t\t\t\t\t\tif (!Global.isMobile) {\r\n\t\t\t\t\t\t\t//-- DESKTOP ONLY --\r\n\t\t\t\t\t\t\tif (!user.MenuColor && !user.DarkTheme) {\r\n\t\t\t\t\t\t\t\tGlobal.User.MenuColor = user.OrganizationUsesAirportSites ? Global.DefaultColorForDesktopVersion_AirportSiteUsers : Global.DefaultColorForDesktopVersion; //--default to the iOPS default color since the user hasn't set this yet. --Kirk T. Sherer, May 5, 2020.\r\n\t\t\t\t\t\t\t\tGlobal.Theme = user.OrganizationUsesAirportSites ? Global.DefaultThemeForApplication_AirportSiteUsers : Global.DefaultThemeForApplication;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tGlobal.User.MenuColor = user.MenuColor;\r\n\t\t\t\t\t\t\t} \r\n\t\t\t\t\t\t\tif (user.MenuColor?.includes(\"dark\") || Global.User.MenuColor.includes(\"dark\")) {\r\n\t\t\t\t\t\t\t\tGlobal.Theme = \"dark\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse \r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tGlobal.Theme = \"light\";\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t//-- MOBILE ONLY -- NOTE: Mobile doesn't have individual colors. It's either dark theme or light theme, and if the user's mobile device has a default light or dark theme, then that's what mobile will be using. --Kirk T. Sherer, July 5, 2024.\r\n\t\t\t\t\t\t\tif (!user.MobileOnlyDarkTheme) {\r\n\t\t\t\t\t\t\t\tGlobal.Theme = \"light\";\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tGlobal.Theme = \"dark\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (Global.User.prefersDarkTheme && Global.Theme == \"light\") {\r\n\t\t\t\t\t\t\t\tGlobal.Theme = \"dark\";\r\n\t\t\t\t\t\t\t\tthis.dataService.setTheme(Global.Theme, true); //-- user has a mobile device that is set to Dark Mode on the device itself, so set the mobile theme to dark and update the setting in User Settings. --Kirk T. Sherer, November 25, 2020.\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tthis.dataService.setTheme(Global.Theme);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.dataService.initializeSiteWithUserPreferences();\r\n\r\n\t\t\t\t\t\tthis.zone.runOutsideAngular(() => {\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.serviceName + \"initializing cache utility service...\");\r\n\t\t\t\t\t\t\tthis.cacheUtilityService.initializeCacheUtilityService();\r\n\r\n\t\t\t\t\t\t\tthis.joinSignalRGroups().subscribe(\r\n\t\t\t\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.serviceName + \"Global.SignalR.joinedSignalRGroups: \" + data);\r\n\t\t\t\t\t\t\t\t\tthis.signalRCore.LogActivity(\"Joined SignalR Groups.\");\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t(err) => console.log(`${err}`)\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t// --next, navigate to first view, in this case 'dashboard'.\r\n\t\t\t\t\t\tconsole.log(this.serviceName + \"Global.User.currentUser.Dashboards = %O\", Global.User.currentUser.Dashboards);\r\n\t\t\t\t\t\tconsole.log(this.serviceName + \"Global.User.currentUser.DashboardsObject = %O\", Global.User.currentUser.DashboardsObject);\r\n\t\t\t\t\t\tthis.dataService.currentUserInitialLoadIsFinished$.next(true);\r\n\t\t\t\t\t\tvar totalTime = performance.now() - time0;\r\n\t\t\t\t\t\tconsole.log(this.serviceName + \"total time for user to be set up = \" + totalTime + \" milliseconds.\");\r\n\t\t\t\t\t\tconsole.log(this.serviceName + \"Global.User = %O\", Global.User);\r\n\t\t\t\t\t\tthis.signalRCore.LogActivity(\"Total time for user to be set up = \" + totalTime + \" milliseconds.\");\r\n\t\t\t\t\t\tthis.routeUserToStart(); //-- we didn't specify a dashboardId in the route, so just start at the user's first dashboard in their list. --Kirk T. Sherer, November 3, 2020.\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t(error: any) => {\r\n\t\t\t\t\tif (error.status == 403 || error.status == 500) {\r\n\t\t\t\t\t\tconsole.log(this.serviceName + \"access token \" + accessToken + \" is invalid. Redirecting to the login page.\");\r\n\t\t\t\t\t\tthis.signalRCore.LogActivity(\"Error with user account. Redirecting to login page.\");\r\n\r\n\t\t\t\t\t\tthis.authenticationService.resetApplicationToDefaultSettings();\r\n\t\t\t\t\t\tif (Global.isMobile) {\r\n\t\t\t\t\t\t\tthis.router.navigate([\"login\"]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.signalRCore.LogActivity(\"Unknown error in Multi Data Condensed. Reloading the application.\");\r\n\r\n\t\t\t\t\t\tif (error.statusText == \"Unknown Error\") {\r\n\t\t\t\t\t\t\t//-- Just log the error to the console since I can't repeat this on my machine. Once I can see the error, hopefully I can fix it. --Kirk T. Sherer, September 12, 2022.\r\n\t\t\t\t\t\t\tconsole.log(this.serviceName + \"Unknown Error in MultiDataCondensed = %O\", error);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tSwal.fire({\r\n\t\t\t\t\t\t\ttitle: \"Error connecting to Database\",\r\n\t\t\t\t\t\t\ttext: \"Your connection was unsucessful connecting to the database for iOPS. Please reload the application to re-connect to the database. If your problem persists, please contact your iOPS Administrator.\",\r\n\t\t\t\t\t\t\tshowCancelButton: false,\r\n\t\t\t\t\t\t\tconfirmButtonText: \"Reload\",\r\n\t\t\t\t\t\t\treverseButtons: false\r\n\t\t\t\t\t\t}).then(() => {\r\n\t\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t\t\t// this.authenticationService.logout();\r\n\t\t\t\t\t\t\t// this.router.navigate(['user/login']);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(this.serviceName + \"Error with SQLMultiAction: %O\", error);\r\n\t\t\tthis.signalRCore.LogActivity(\"Unknown error in Multi Action. Redirecting to login page.\");\r\n\t\t\tthis.authenticationService.resetApplicationToDefaultSettings();\r\n\t\t\tif (Global.isMobile) {\r\n\t\t\t\tthis.router.navigate([\"login\"]);\r\n\t\t\t} else {\r\n\t\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tjoinSignalRGroups(reconnect?: boolean) {\r\n\t\tvar joinSignalRGroups$ = new Observable((subscriber) => {\r\n\t\t\tlet currentUser = Global.User.currentUser;\r\n\t\t\t//console.log(\"currentUser = %O\", currentUser);\r\n\t\t\tif (!currentUser) {\r\n\t\t\t\tcurrentUser = JSON.parse(localStorage.getItem(\"currentUser\")) as IUser;\r\n\t\t\t\tGlobal.User.currentUser = currentUser;\r\n\t\t\t}\r\n\r\n\t\t\tthis.signalRCore.LogActivity(\"Joining SignalR Groups...\");\r\n\t\t\tconsole.log(\"<--- Joining SignalR Groups --->\");\r\n\r\n\t\t\tthis.signalRCore.joinGroups();\r\n\t\t\tsubscriber.next(Global.SignalR.joinedSignalRGroups);\r\n\t\t\tsubscriber.complete();\r\n\t\t});\r\n\r\n\t\treturn joinSignalRGroups$;\r\n\t}\r\n\r\n\trouteUserToStart() {\r\n\t\tvar dashboardsData = Global.User.currentUser.Dashboards;\r\n\t\tthis.signalRCore.LogActivity(\"Routing user to start...\");\r\n\r\n\t\t//-- before routing to the first dashboard, check to see if this user should see the release notes. If the user has set\r\n\t\t//-- the ViewReleaseNotesAtLogin to 'false' in their user record, then skip this step. Otherwise, display the release notes\r\n\t\t//-- in a dialog window. --Kirk T. Sherer, November 3, 2021.\r\n\t\tconsole.log(\"Global.User.currentUser.ViewReleaseNotesAtLogin = \" + Global.User.currentUser.ViewReleaseNotesAtLogin);\r\n\r\n\t\tvar lastVisitedRoute: string = this.lastVisitedRouteData?.first().LastVisitedRoute;\r\n\t\tif (lastVisitedRoute == \"/user/logout\" || lastVisitedRoute == \"/logout\" || lastVisitedRoute == \"/layout/user-settings\") {\r\n\t\t\tlastVisitedRoute = null;\r\n\t\t}\r\n\r\n\t\tvar global: IGlobal = Global;\r\n\t\tvar currentRoute: string = global.Initial.route;\r\n\r\n\t\tif (currentRoute == \"/user/logout\" || currentRoute == \"/logout\" || currentRoute == \"/layout/user-settings\") {\r\n\t\t\tcurrentRoute = null;\r\n\t\t}\r\n\r\n\t\tif (currentRoute && currentRoute != lastVisitedRoute && currentRoute != \"/\" && currentRoute != \"/user/authentication\" && currentRoute != \"/authentication\" && !Global.isMobile) {\r\n\t\t\t//-- if the user bookmarked or typed in a route and it's not equal to the last visited route, then we're going there. --Kirk T. Sherer, November 17, 2023.\r\n\t\t\tGlobal.User.isBeingAuthenticated = false;\r\n\t\t\tthis.router\r\n\t\t\t\t.navigate([currentRoute])\r\n\t\t\t\t.then((data: boolean) => {\r\n\t\t\t\t\tif (!data) {\r\n\t\t\t\t\t\t//-- User can't route to the typed-in or bookmarked route (i.e. promise returned 'false' condition), so route the user to the last visited route.\r\n\t\t\t\t\t\tthis.normalRoutingForUserWithoutBookmarkedRoute(lastVisitedRoute, dashboardsData);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//-- typed-in or bookmarked route was successful.\r\n\t\t\t\t\t\tconsole.log(this.serviceName + currentRoute + \" was successful. Routing is finished.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((e) => {\r\n\t\t\t\t\t//-- Error in routing to the current typed-in or bookmarked route, so route the user to the last visited route.\r\n\t\t\t\t\tthis.normalRoutingForUserWithoutBookmarkedRoute(lastVisitedRoute, dashboardsData);\r\n\t\t\t\t});\r\n\t\t} else if (Global.User.currentUser.StopSeeingReleaseNotes && Global.User.currentUser.ViewReleaseNotesAtLogin) {\r\n\t\t\tconsole.log(this.serviceName + \"routing user to release notes.\");\r\n\t\t\tGlobal.User.isBeingAuthenticated = false;\r\n\t\t\tthis.router\r\n\t\t\t\t.navigate([\"layout/releaseNotes\"])\r\n\t\t\t\t.then((data: boolean) => {\r\n\t\t\t\t\tif (!data) {\r\n\t\t\t\t\t\t//-- weren't able to route to the release notes, so go to the last visited route.\r\n\t\t\t\t\t\tthis.normalRoutingForUserWithoutBookmarkedRoute(lastVisitedRoute, dashboardsData);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//-- routing to the release notes was successful.\r\n\t\t\t\t\t\tconsole.log(this.serviceName + \"layout/releaseNotes route was successful. Routing is finished.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((e) => {\r\n\t\t\t\t\t//-- Error in routing to the release notes, so route the user to the last visited route.\r\n\t\t\t\t\tthis.normalRoutingForUserWithoutBookmarkedRoute(lastVisitedRoute, dashboardsData);\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\t//--User doesn't care to see the release notes, so route them to their last visited route.\r\n\t\t\tthis.normalRoutingForUserWithoutBookmarkedRoute(lastVisitedRoute, dashboardsData);\r\n\t\t}\r\n\t}\r\n\r\n\tnormalRoutingForUserWithoutBookmarkedRoute(lastVisitedRoute: string, data: any) {\r\n\t\tthis.signalRCore.LogActivity(\"Normal routing for user without bookmarked route...\");\r\n\r\n\t\tconst firstDashboard: any = data.find((d: any) => {\r\n\t\t\treturn d.IsMobile == Global.isMobile;\r\n\t\t});\r\n\r\n\t\tif (!Global.User.currentUser.ReturnToLastVisitedRoute || !lastVisitedRoute) {\r\n\t\t\tif (data.length > 0) {\r\n\t\t\t\tthis.routeUserToFirstDashboard(firstDashboard);\r\n\t\t\t} else {\r\n\t\t\t\tvar homeRoute = \"layout/dashboard-demo\";\r\n\t\t\t\tthis.utilityService.updateCurrentMenuItem(\"Demo Dashboard\");\r\n\t\t\t\tthis.utilityService.homeRoute$.next(homeRoute); //--homeRoute$ is used by the tabs on the bottom of the mobile application. --Kirk T. Sherer, March 27, 2024.\r\n\t\t\t\tGlobal.User.isBeingAuthenticated = false;\r\n\t\t\t\tconsole.log(this.serviceName + \"routing user to demo dashboard.\");\r\n\t\t\t\tthis.router.navigate([\"layout/dashboard-demo\"]); // -- go to demo dashboard since user doesn't have any dashboards yet. --Kirk T. Sherer, February 4, 2020.\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar lastVisitedRouteTitle: string = this.lastVisitedRouteData?.first().LastVisitedRouteTitle;\r\n\t\t\tif (!lastVisitedRouteTitle && lastVisitedRoute.indexOf(\"/\") > -1) {\r\n\t\t\t\tlastVisitedRouteTitle = lastVisitedRoute.split(\"/\")?.last(); //-- use the last portion of the route for the title since we don't currently have the last visited route's title. --Kirk T. Sherer, November 27, 2023.\r\n\t\t\t}\r\n\t\t\tthis.utilityService.updateCurrentMenuItem(lastVisitedRouteTitle);\r\n\t\t\tvar mobileVersionLastVisitedRoute = lastVisitedRoute.substring(0, 1) == \"/\" ? lastVisitedRoute.substring(1, lastVisitedRoute.length) : lastVisitedRoute; //-- removes the leading slash from the saved route.\r\n\r\n\t\t\tthis.utilityService.homeRoute$.next(mobileVersionLastVisitedRoute); //--homeRoute$ is used by the tabs on the bottom of the mobile application. --Kirk T. Sherer, March 27, 2024.\r\n\t\t\tGlobal.User.isBeingAuthenticated = false;\r\n\t\t\tconsole.log(this.serviceName + \"routing user to last visited route: \" + lastVisitedRoute);\r\n\t\t\tthis.router\r\n\t\t\t\t.navigate([lastVisitedRoute])\r\n\t\t\t\t.then((data: boolean) => {\r\n\t\t\t\t\tif (!data) {\r\n\t\t\t\t\t\t//-- weren't able to route to the user's last visited route, so go to the first dashboard.\r\n\t\t\t\t\t\tthis.routeUserToFirstDashboard(firstDashboard);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//-- routing to the user's last visited route was successful.\r\n\t\t\t\t\t\tconsole.log(this.serviceName + lastVisitedRoute + \" route was successful. Routing is finished.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((e) => {\r\n\t\t\t\t\t//-- Error in routing to the user's last visited route, so go to the first dashboard.\r\n\t\t\t\t\tthis.routeUserToFirstDashboard(firstDashboard);\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\trouteUserToFirstDashboard(firstDashboard: any) {\r\n\t\tthis.signalRCore.LogActivity(\"Routing user to first dashboard...\");\r\n\t\tif (firstDashboard !== undefined) {\r\n\t\t\tconst firstDashboardId: number = firstDashboard.Id;\r\n\t\t\tvar homeRoute = \"layout/dashboard/\" + firstDashboardId;\r\n\t\t\tthis.utilityService.updateCurrentMenuItem(firstDashboard.Name);\r\n\t\t\tthis.utilityService.homeRoute$.next(homeRoute); //--homeRoute$ is used by the tabs on the bottom of the mobile application. --Kirk T. Sherer, March 27, 2024.\r\n\t\t\tGlobal.User.isBeingAuthenticated = false;\r\n\t\t\tconsole.log(this.serviceName + \"routing user to first dashboard.\");\r\n\t\t\tthis.router\r\n\t\t\t\t.navigate([\"layout/dashboard/\" + firstDashboardId])\r\n\t\t\t\t.then((data: boolean) => {\r\n\t\t\t\t\tif (!data) {\r\n\t\t\t\t\t\t//-- weren't able to route to the user's first dashboard, so go to the demo dashboard route.\r\n\t\t\t\t\t\tthis.router.navigate([\"layout/dashboard-demo\"]);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//-- routing to the user's first dashboard was successful.\r\n\t\t\t\t\t\tconsole.log(this.serviceName + \"Routing to the user's first dashboard was successful. Routing is finished.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((e) => {\r\n\t\t\t\t\t//-- Error in routing to the user's first dashboard, so go to the demo dashboard route.\r\n\t\t\t\t\tthis.router.navigate([\"layout/dashboard-demo\"]);\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tvar homeRoute = \"layout/dashboard-demo\";\r\n\t\t\tthis.utilityService.updateCurrentMenuItem(\"Demo Dashboard\");\r\n\t\t\tthis.utilityService.homeRoute$.next(homeRoute); //--homeRoute$ is used by the tabs on the bottom of the mobile application. --Kirk T. Sherer, March 27, 2024.\r\n\t\t\tGlobal.User.isBeingAuthenticated = false;\r\n\t\t\tconsole.log(this.serviceName + \"routing user to demo dashboard.\");\r\n\t\t\tthis.router.navigate([\"layout/dashboard-demo\"]); // -- go to demo dashboard since user doesn't have any dashboards yet. --Kirk T. Sherer, February 4, 2020.\r\n\t\t}\r\n\t}\r\n\r\n\tasync buildDashboardsAndDashboardObjectForLoggedInUser(dashboardId?: string) {\r\n\t\tthis.signalRCore.LogActivity(\"build dashboards and dashboard object for user...\");\r\n\r\n\t\tvar dashboards = Global.User.currentUser.Dashboards;\r\n\t\tconsole.log(this.serviceName + \"dashboards for user = %O\", dashboards);\r\n\t\tif (dashboards) {\r\n\t\t\tGlobal.User.currentUser.DashboardsObject = {};\r\n\t\t\tdashboards.forEach((dashboard: any) => {\r\n\t\t\t\tGlobal.User.currentUser.DashboardsObject[dashboard.Id] = dashboard;\r\n\t\t\t});\r\n\t\t}\r\n\t\tconsole.log(this.serviceName + \"Routing to dashboard since logging in with ODataAccessToken was valid...\");\r\n\t\tconsole.log(this.serviceName + \"Global.User.currentUser = %O\", Global.User.currentUser);\r\n\t\treturn dashboardId;\r\n\t}\r\n\r\n\topenSnackBarMessage(messageObject: any) {\r\n\t\tthis.signalRCore.LogActivity(\"User opened snack bar message...\");\r\n\r\n\t\tthis.snackBar.openFromComponent(\r\n\t\t\tSnackbarBroadcastMessageComponent,\r\n\r\n\t\t\t{\r\n\t\t\t\tdata: messageObject,\r\n\t\t\t\tverticalPosition: \"top\",\r\n\t\t\t\thorizontalPosition: \"center\"\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport {\r\n\tMatSnackBarRef,\r\n\tMAT_SNACK_BAR_DATA,\r\n} from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n\tselector: 'lib-snackbar-broadcast-message',\r\n\ttemplateUrl: './snackbar-broadcast-message.component.html',\r\n\tstyleUrls: ['./snackbar-broadcast-message.component.scss'],\r\n})\r\nexport class SnackbarBroadcastMessageComponent implements OnInit {\r\n\tconstructor(\r\n\t\tpublic snackBarRef: MatSnackBarRef,\r\n\t\t@Inject(MAT_SNACK_BAR_DATA) public data: any\r\n\t) {}\r\n\r\n\tngOnInit(): void {}\r\n}\r\n","
          \r\n\t
          {{data.Message}}
          \r\n
          \r\n
          \r\n\r\n
          {{data.Description}}
          \r\n
          \r\n \r\n
          \r\n
          \r\n\r\n","import { ElementRef, Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class RouteToExternalUrlService {\r\n\r\n\tconstructor(private router: Router) { }\r\n\r\n\trouteToExternalUrl(url: string) {\r\n\t\tthis.router.navigate(['/go-to-v1', { externalUrl: url }], {\r\n\t\t\tskipLocationChange: true,\r\n\t\t});\r\n\t}\r\n\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\nimport { Router } from \"@angular/router\";\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { AuthenticationService } from 'projects/shared-lib/src/lib/services/authentication.service';\r\n\r\n@Component({\r\n\ttemplateUrl: \"logout.component.html\",\r\n})\r\nexport class LogoutComponent implements OnInit {\r\n\tconstructor(private authenticationService: AuthenticationService, private router: Router) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.logout();\r\n\t}\r\n\r\n\tlogout() {\r\n\t\tthis.authenticationService.logout();\r\n\t\tif (Global.isMobile) {\r\n\t\t\tthis.router.navigate([\"login\"]);\r\n\t\t} else {\r\n\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t}\r\n\t}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { AuthenticationService } from 'projects/shared-lib/src/lib/services/authentication.service';\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\nimport { SecurityService } from 'projects/shared-lib/src/lib/services/security.service';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\n\r\n\r\n\r\n\r\n@Component({\r\n\tselector: 'app-authentication',\r\n\ttemplateUrl: 'authentication.component.html',\r\n})\r\nexport class AuthenticationComponent implements OnInit {\r\n\tconstructor(\r\n\t\tprivate securityService: SecurityService,\r\n\t\tprivate authenticationService: AuthenticationService,\r\n\t\tprivate router: Router,\r\n\t\tpublic dataService: DataService\r\n\t) {}\r\n\r\n\tngOnInit() {\r\n\t\tif (!Global.passwordToken) {\r\n\t\t\t//-- if we made it here on a route, we should re-authenticate the user.\r\n\t\t\tconsole.log('re-authenticating the user...');\r\n\t\t\tthis.securityService.authenticateUser();\r\n\t\t} else {\r\n\t\t\tthis.authenticationService\r\n\t\t\t\t.validatePasswordToken(Global.passwordToken)\r\n\t\t\t\t.subscribe((passwordToken: any) => {\r\n\t\t\t\t\tif (passwordToken != 'No') {\r\n\t\t\t\t\t\tthis.router.navigate([\r\n\t\t\t\t\t\t\t'/forgot-password/' + Global.passwordToken,\r\n\t\t\t\t\t\t]);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.router.navigate(['user/login']); //-- return the user to the login screen since the password token is either invalid or expired. --Kirk T. Sherer, July 30, 2021.\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","import {\r\n\tComponent,\r\n\tOnInit,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tViewChildren,\r\n\tViewContainerRef,\r\n\tQueryList,\r\n\tOnDestroy,\r\n\tInput,\r\n} from \"@angular/core\";\r\n\r\nimport {\r\n\tCompactType,\r\n\tDisplayGrid,\r\n\tGridsterItem,\r\n\tGridsterComponentInterface,\r\n\tGridsterConfig,\r\n\tGridsterItemComponentInterface,\r\n\tGridType,\r\n} from \"angular-gridster2\";\r\nimport { DialogModalParentComponent } from '../dialog-modal-parent/dialog-modal-parent.component';\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nimport _ from \"lodash\";\r\n\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\nimport { Observable, Subscription, Subject, fromEvent } from \"rxjs\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { AddWidgetToDashboardComponent } from \"projects/shared-lib/src/lib/components/add-widget-to-dashboard/add-widget-to-dashboard.component\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { startWith, map } from \"rxjs/operators\";\r\nimport Swal from \"sweetalert2\";\r\nimport { FormControl, FormGroup } from \"@angular/forms\";\r\nimport { DashboardTimezonePopupConfirmationSettingsComponent } from \"projects/shared-lib/src/lib/components/dashboard-timezone-popup-confirmation-settings/dashboard-timezone-popup-confirmation-settings.component\";\r\nimport { DashboardTimescopePopupConfirmationSettingsComponent } from \"projects/shared-lib/src/lib/components/dashboard-timescope-popup-confirmation-settings/dashboard-timescope-popup-confirmation-settings.component\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { DashboardService } from \"projects/shared-lib/src/lib/services/dashboard.service\";\r\nimport { SignalRCoreService } from \"projects/shared-lib/src/lib/services/signalr-core.service\";\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { UtilityService } from \"projects/shared-lib/src/lib/services/utility.service\";\r\nimport { IDashboard } from \"projects/shared-lib/src/lib/_models/dashboard.model\";\r\nimport { IWidget } from \"projects/shared-lib/src/lib/_models/widget.model\";\r\nimport { FileUploadListComponent } from \"projects/shared-lib/src/lib/components/file-upload-list/file-upload-list.component\";\r\nimport {\r\n\tEditWidgetComponent,\r\n\tWidgetSettingsComponent,\r\n} from \"projects/shared-lib/src/public-api\";\r\nimport { WidgetIntervalSelectionPopupComponent } from \"../../components/widget-interval-selection-popup/widget-interval-selection-popup.component\";\r\nimport { WidgetTimeScopeSelectionPopupComponent } from \"../../components/widget-time-scope-selection-popup/widget-time-scope-selection-popup.component\";\r\nimport { WidgetSettingsPopupComponent } from \"../widget-settings-popup/widget-settings-popup.component\";\r\n\r\nimport { IGlobal } from \"../../_models/global.model\";\r\nimport $ from \"jquery\";\r\nimport { ScrollToWidgetComponent } from \"projects/shared-lib/src/lib/components/scroll-to-widget/scroll-to-widget.component\";\r\nimport { TacticalDashboardIntervalPopupConfirmationSettingsComponent } from \"projects/shared-lib/src/lib/components/tactical-dashboard-interval-popup-confirmation-settings/tactical-dashboard-interval-popup-confirmation-settings.component\";\r\nimport { DashboardCustomTimescopePopupConfirmationSettingsComponent } from \"../dashboard-custom-timescope-popup-confirmation-settings/dashboard-custom-timescope-popup-confirmation-settings.component\";\r\nimport {\r\n\tIStepOption,\r\n\tTourAnchorMatMenuDirective,\r\n\tTourMatMenuModule,\r\n\tTourService,\r\n} from \"ngx-ui-tour-md-menu\";\r\nimport { AlertManagementPopupComponent } from '../alert-management-popup/alert-management-popup.component';\r\n\r\n@Component({\r\n\tselector: \"lib-shared-dashboard\",\r\n\ttemplateUrl: \"./shared-dashboard.component.html\",\r\n\tstyleUrls: [\"./shared-dashboard.component.scss\"]\r\n})\r\nexport class SharedDashboardComponent implements OnInit {\r\n\t@ViewChildren(\"widgetElements\") widgetElements: QueryList;\r\n\r\n\t@ViewChildren(\"widgetsLazyLoadingSelector\", { read: ViewContainerRef })\r\n\twidgetsLazyLoadingSelector!: QueryList;\r\n\r\n\t@Input() widgetHeightChangedEvent: EventEmitter;\r\n\twidgetHeightChangedSubscription: Subscription;\r\n\r\n\toptions: GridsterConfig;\r\n\tdashboard: IDashboard;\r\n\tgridsterDashboard: Array;\r\n\tdashboardId: number;\r\n\tdashboardWidgets: any;\r\n\twidgets: IWidget[];\r\n\tprivate sub: any;\r\n\texpandedDashboardsSub: Subscription;\r\n\tcreatedWidgetSub: Subscription;\r\n\tasyncDashboards$: Observable;\r\n\tdashboardTitle: string;\r\n\tDialogRef: any;\r\n\tprivate static changed: Subject = new Subject();\r\n\tdashboardIndexInGlobalDashboardsArray: number;\r\n\tpublic widgetHeight$: Observable;\r\n\tpublic widget$: Observable;\r\n\tpublic height: number = 2.5;\r\n\ttagsToGraph: Array;\r\n\tDashboardTimeScopes: Array;\r\n\tdashboardObject: any;\r\n\tcurrentTimeScopeId: any;\r\n\tpublic widgetResizedEvent: EventEmitter = new EventEmitter();\r\n\tpublic tagGraphCreatedEvent: EventEmitter = new EventEmitter();\r\n\tpublic gseSummaryCreatedEvent: EventEmitter = new EventEmitter();\r\n\tpublic pcaSummaryCreatedEvent: EventEmitter = new EventEmitter();\r\n\tpublic pbbSummaryCreatedEvent: EventEmitter = new EventEmitter();\r\n\tpublic gpuSummaryCreatedEvent: EventEmitter = new EventEmitter();\r\n\tpublic ahuSummaryCreatedEvent: EventEmitter = new EventEmitter();\r\n\tpublic icsSummaryCreatedEvent: EventEmitter = new EventEmitter();\r\n\tpublic locateAllGSECreatedEvent: EventEmitter = new EventEmitter();\r\n\tpublic dashboardTimeScopeChanged: EventEmitter = new EventEmitter();\r\n\tpublic dashboardTimeZoneChanged: EventEmitter = new EventEmitter();\r\n\tpublic dashboardUpdateIntervalChanged: EventEmitter = new EventEmitter();\r\n\tprivate debugMode: boolean = false;\r\n\tcreateNewDashboardWidgetSubscriber: Subscription;\r\n\twidgetIsInViewSubscription: Subscription;\r\n\tsearchString: string;\r\n\tsearchObject: any;\r\n\tpublic fileImageData: any;\r\n\tpublic FileImageLibraryControlObject: any;\r\n\thiddenColumnCountSubscription: any;\r\n\thiddenColumnCountWidgetArray: any[];\r\n\tflightDataTimerSubscription: any;\r\n\tflightDataTimerWidgetArray: any[] = [];\r\n\tglobalObject: any;\r\n\tprivate swalWithBootstrapButtons: any;\r\n\teditedWidgetSub: any;\r\n\twidgetTimeChangedSub: any;\r\n\tdashboardLocked: boolean;\r\n\twidgetMovementRecentlyChanged: boolean = false;\r\n\tprivate componentName: string = \"dashboard\";\r\n\tDashboardTimeZones: any;\r\n\tcurrentTimeZoneId: any;\r\n\tcurrentDashboardTimeZoneName: String = \"\";\r\n\teditUpdateIntervalModal: any;\r\n\teditDashboardTimeZoneModal: any;\r\n\teditDashboardTimeScopeModal: any;\r\n\tgenericTacticalDashboardWidgetTypes: any[];\r\n\tcurrentUpdateIntervalName: any;\r\n\treloadedWidgetSub: Subscription;\r\n\tfileUploadListComponentAfterClosedSubscription: Subscription;\r\n\tdashboardWidgetClickedSubscription: any;\r\n\taddWidgetToDashboardAfterClosedSubscription: any;\r\n\teditDashboadTimeScopeModalAfterClosedSubscription: any;\r\n\teditDashboardTimeZoneModalAfterClosedSubscription: any;\r\n\teditDashboardUpdateIntervalModalSubscription: any;\r\n\tpublic global: IGlobal = Global;\r\n\tpublic viewportHeight: number;\r\n\tpublic viewportWidth: number;\r\n\tisDataLoading: boolean = true;\r\n\tdashboardOptionExecutedSubscription: Subscription;\r\n\tscrollToWidgetAfterClosedSubscription: any;\r\n\tcurrentDashboard: any;\r\n\tpublic updateIntervalId: any;\r\n\tstartDateTime: any;\r\n\tendDateTime: any;\r\n\tisTimeSelectionValid: boolean = true;\r\n\tmaxDate: Date;\r\n\tform: FormGroup;\r\n\teditDashboardCustomTimeScopeModal: any;\r\n\tgridsterType: GridType = GridType.Fixed;\r\n\tcurrentGridsterTypeId: any = 2;\r\n\tDashboardGridsterTypes: any = [];\r\n\r\n\tconstructor(public dataService: DataService, private route: ActivatedRoute, public dashboardService: DashboardService, public dialog: MatDialog, public toastr: ToastrService, public elementRef: ElementRef, private signalRCore: SignalRCoreService, private utilityService: UtilityService, public tourService: TourService) {\r\n\t\tthis.swalWithBootstrapButtons = Swal.mixin({\r\n\t\t\tcustomClass: {\r\n\t\t\t\tconfirmButton: \"btn btn-success\",\r\n\t\t\t\tcancelButton: \"btn btn-danger\"\r\n\t\t\t},\r\n\t\t\tbuttonsStyling: false\r\n\t\t});\r\n\t}\r\n\r\n\tfindHiddenColumnCount(widgetId) {\r\n\t\tlet columnCountObject = this.hiddenColumnCountWidgetArray.find((widgetObject) => {\r\n\t\t\treturn widgetObject.widgetId === widgetId;\r\n\t\t});\r\n\r\n\t\treturn columnCountObject;\r\n\t}\r\n\r\n\treturnHiddenColumnsAsString(widgetId) {\r\n\t\tlet object = this.findHiddenColumnCount(widgetId);\r\n\t\tvar hiddenColumnsAsString = \"\";\r\n\t\tif (object !== undefined) {\r\n\t\t\tobject.hiddenColumnArray.forEach((hiddenColumn, index) => {\r\n\t\t\t\tif (index !== 0) {\r\n\t\t\t\t\thiddenColumnsAsString = hiddenColumnsAsString + \", \";\r\n\t\t\t\t}\r\n\t\t\t\thiddenColumnsAsString = hiddenColumnsAsString + hiddenColumn.title;\r\n\t\t\t});\r\n\t\t\treturn hiddenColumnsAsString;\r\n\t\t}\r\n\t}\r\n\r\n\tfindFlightDataTimer(widgetId) {\r\n\t\tlet flightDataTimerObject = this.flightDataTimerWidgetArray.find((widgetObject) => {\r\n\t\t\treturn widgetObject.widgetId === widgetId;\r\n\t\t});\r\n\r\n\t\treturn flightDataTimerObject;\r\n\t}\r\n\r\n\r\n\r\n\r\n\tgetCountOfFilesUploadedForEntity(entity: any, entityId: number, entityType: string) {\r\n\t\tvar sqlStatement = \"API.FileImageManagement 'Count', '\" + entityType + \"', \" + entityId + \", @UserId = \" + Global.User.currentUser.Id;\r\n\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\tvar listOfFiles = data;\r\n\t\t\tentity.CountOfFilesUploaded = listOfFiles.length > 0\r\n\t\t\t\t\t? listOfFiles.first().CountOfFilesUploaded\r\n\t\t\t\t\t: 0;\r\n\t\t});\r\n\t}\r\n\r\n\topenAlertsPopup(widget) {\r\n\t\tlet alertLevel = \"asset\";\r\n\r\n\t\tlet assetObj;\r\n\t\tlet assetName;\r\n\t\tswitch (widget.AngularDirectiveName) {\r\n\t\t\tcase \"siteGateSummary\":\r\n\t\t\tcase \"gseOverview\":\r\n\t\t\tcase \"deicerOverview\":\r\n\t\t\tcase \"fuelLevel\":\r\n\t\t\tcase \"locateAllGSE\":\r\n\t\t\tcase \"fireTruckOverview\":\r\n\t\t\t\tif ( widget.WidgetSiteId == null && widget.SiteList == null && widget.VocationalSettingsJSON == null ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif(widget.VocationalSettingsJSON == null) {\r\n\t\t\t\t\talertLevel = \"site\";\r\n\t\t\t\t} else {\r\n\t\t\t\t\talertLevel = \"fleet\";\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"fireTruckOverviewAerial\":\r\n\t\t\t\tif ( widget.WidgetSiteId == null && widget.SiteList == null && widget.VocationalSettingsJSON == null ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif(widget.VocationalSettingsJSON == null) {\r\n\t\t\t\t\talertLevel = \"site\";\r\n\t\t\t\t} else {\r\n\t\t\t\t\talertLevel = \"fleet\";\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"fireTruckOverviewDriveline\":\r\n\t\t\t\tif ( widget.WidgetSiteId == null && widget.SiteList == null && widget.VocationalSettingsJSON == null ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif(widget.VocationalSettingsJSON == null) {\r\n\t\t\t\t\talertLevel = \"site\";\r\n\t\t\t\t} else {\r\n\t\t\t\t\talertLevel = \"fleet\";\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"pbbSummary\":\r\n\t\t\t\tassetName = \"PBB\";\r\n\t\t\t\tassetObj = this.findAssetByName(widget, assetName);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"pcaSummary\":\r\n\t\t\t\tassetName = \"PCA\";\r\n\t\t\t\tassetObj = this.findAssetByName(widget, assetName);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"ahuSummary\":\r\n\t\t\t\tassetName = \"AHU\";\r\n\t\t\t\tassetObj = this.findAssetByName(widget, assetName);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gpuSummary\":\r\n\t\t\t\tassetName = \"GPU\";\r\n\t\t\t\tassetObj = this.findAssetByName(widget, assetName);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gseSummary\":\r\n\t\t\t\tassetName = widget.WidgetAssetName;\r\n\t\t\t\tassetObj = this.findAssetById(widget, widget.WidgetAssetId);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tassetName = widget.WidgetAssetName;\r\n\t\t\t\tassetObj = widget.WidgetAssetId ? this.findAssetById(widget, widget.WidgetAssetId) : undefined;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tconst dlg = this.dialog.open(AlertManagementPopupComponent, {\r\n\t\t\twidth: Global.isMobile ? \"90%\" : \"40%\",\r\n\t\t\theight: Global.isMobile ? \"80%\" : \"70%\",\r\n\t\t\tdata: {\r\n\t\t\t\talertLevel: alertLevel,\r\n\t\t\t\twidget: widget,\r\n\t\t\t\titem: assetObj\r\n\t\t\t},\r\n\t\t\tmaxWidth: \"100vw\",\r\n\t\t\tmaxHeight: \"100vh\"\r\n\t\t});\r\n\t\tlet d = dlg.afterClosed().subscribe((result) => {});\r\n\t}\r\n\r\n\tcanUserSeeWidget(widget) {\r\n\t\tif (this.isUserAuthorizedToSeeWidget(widget.WidgetTypeId) === true && (widget.refreshComponent === undefined || widget.refreshComponent === false)) {\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tisUserAuthorizedToSeeWidget(widgetTypeId) {\r\n\t\tif (Global.User.isAdmin || Global.User.isOrgAdmin || Global.User.currentUser.Security.Aggregate.Collections.WidgetTypeIds.includes(parseInt(widgetTypeId))) {\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// return false;\r\n\t}\r\n\r\n\tlearnMoreAboutDisabledWidget() {\r\n\t\tthis.swalWithBootstrapButtons\r\n\t\t\t.fire({\r\n\t\t\t\ttitle: \"

          Widget Disabled

          \",\r\n\t\t\t\thtml: \"

          Why am I seeing this?


          Your organization no longer has access to this suite, which contains this widget type. Contact your support team to learn more.

          \",\r\n\t\t\t\t// icon: \"warning\", showCancelButton: true, confirmButtonText: \"Yes, delete it!\", cancelButtonText: \"No, cancel!\",\r\n\t\t\t\treverseButtons: true\r\n\t\t\t})\r\n\t\t\t.then(() => {\r\n\t\t\t\t// if (result.value) { // logic for deleting dashboard goes here. this.widgetDeleted.emit(true); // then alerting the user the dashboard has been deleted. this.swalWithBootstrapButtons.fire(\"Deleted!\", \"Your widget has been deleted.\", \"success\"); // _.remove(this.dashboards, function(n) { // return n.Id === dashboard.Id;\r\n\t\t\t\t// // });\r\n\t\t\t\t// } else if ( /* Read more about handling dismissals below */ result.dismiss === Swal.DismissReason.cancel\r\n\t\t\t\t// ) {\r\n\t\t\t\t// this.swalWithBootstrapButtons.fire(\"Cancelled\", \"Your widget has not been deleted.\", \"error\");\r\n\t\t\t\t// }\r\n\t\t\t});\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tGlobal.User.DebugMode && console.log(\"ngOnDestroy invoked...\");\r\n\r\n\t\tif (this.sub) {\r\n\t\t\tthis.sub.unsubscribe();\r\n\t\t}\r\n\t\tif (this.expandedDashboardsSub) {\r\n\t\t\tthis.expandedDashboardsSub.unsubscribe();\r\n\t\t}\r\n\t\tif (this.createdWidgetSub) {\r\n\t\t\tthis.createdWidgetSub.unsubscribe();\r\n\t\t}\r\n\t\tif (this.createNewDashboardWidgetSubscriber) {\r\n\t\t\tthis.createNewDashboardWidgetSubscriber.unsubscribe();\r\n\t\t}\r\n\t\tif (this.widgetIsInViewSubscription) {\r\n\t\t\tthis.widgetIsInViewSubscription.unsubscribe();\r\n\t\t}\r\n\t\tif (this.editedWidgetSub) {\r\n\t\t\tthis.editedWidgetSub.unsubscribe();\r\n\t\t}\r\n\t\tif (this.widgetTimeChangedSub) {\r\n\t\t\tthis.widgetTimeChangedSub.unsubscribe();\r\n\t\t}\r\n\t\tif (this.hiddenColumnCountSubscription) {\r\n\t\t\tthis.hiddenColumnCountSubscription.unsubscribe();\r\n\t\t}\r\n\r\n\t\tif (this.flightDataTimerSubscription) {\r\n\t\t\tthis.flightDataTimerSubscription.unsubscribe();\r\n\t\t}\r\n\t\tif (this.reloadedWidgetSub) {\r\n\t\t\tthis.reloadedWidgetSub.unsubscribe();\r\n\t\t}\r\n\t\tif (this.fileUploadListComponentAfterClosedSubscription) {\r\n\t\t\tthis.fileUploadListComponentAfterClosedSubscription.unsubscribe();\r\n\t\t}\r\n\t\tif (this.dashboardWidgetClickedSubscription) {\r\n\t\t\tthis.dashboardWidgetClickedSubscription.unsubscribe();\r\n\t\t}\r\n\t\tif (this.addWidgetToDashboardAfterClosedSubscription) {\r\n\t\t\tthis.addWidgetToDashboardAfterClosedSubscription.unsubscribe();\r\n\t\t}\r\n\t\tif (this.editDashboadTimeScopeModalAfterClosedSubscription) {\r\n\t\t\tthis.editDashboadTimeScopeModalAfterClosedSubscription.unsubscribe();\r\n\t\t}\r\n\t\tif (this.editDashboardTimeZoneModalAfterClosedSubscription) {\r\n\t\t\tthis.editDashboardTimeZoneModalAfterClosedSubscription.unsubscribe();\r\n\t\t}\r\n\t\tif (this.editDashboardUpdateIntervalModalSubscription) {\r\n\t\t\tthis.editDashboardUpdateIntervalModalSubscription.unsubscribe();\r\n\t\t}\r\n\t\tif (this.dashboardOptionExecutedSubscription) {\r\n\t\t\tthis.dashboardOptionExecutedSubscription.unsubscribe();\r\n\t\t}\r\n\t\tif (this.scrollToWidgetAfterClosedSubscription) {\r\n\t\t\tthis.scrollToWidgetAfterClosedSubscription.unsubscribe();\r\n\t\t}\r\n\t\tthis.dashboardWidgets = undefined;\r\n\r\n\t\tthis.dashboardService.closeAllOpenPopups();\r\n\t}\r\n\r\n\tscrollToWidget(widget) {\r\n\t\t//406292\r\n\t\tlet tempwidgetid = 406295;\r\n\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"widgetElements = %O\", this.widgetElements);\r\n\t\tconst elementToScrollInto = this.widgetElements.find((el) => {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"el = %O\", el);\r\n\t\t\treturn el.nativeElement.id === \"widget-header-\" + widget.value;\r\n\t\t});\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"elementToScrollInto = %O\", elementToScrollInto);\r\n\r\n\t\tif (elementToScrollInto !== undefined) {\r\n\t\t\telementToScrollInto.nativeElement.scrollIntoView();\r\n\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\ttype: \"success\",\r\n\t\t\t\tmessage: \"Scrolled to widget.\"\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tif (Global.User.currentUser.Username == \"dylan\") {\r\n\t\t\tthis.debugMode = true;\r\n\t\t}\r\n\t\tthis.genericTacticalDashboardWidgetTypes = Global.User.currentUser.GenericTacticalDashboardWidgets;\r\n\t\tthis.globalObject = Global;\r\n\t\tthis.hiddenColumnCountWidgetArray = [];\r\n\t\tthis.hiddenColumnCountSubscription = this.dashboardService.hiddenColumnCountChanged$.subscribe((data) => {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": hiddenColumnCountChanged = %O\", data);\r\n\t\t\tlet objectIndex = this.hiddenColumnCountWidgetArray.findIndex((widgetObject) => {\r\n\t\t\t\treturn widgetObject.widgetId === data.widgetId;\r\n\t\t\t});\r\n\t\t\tif (objectIndex !== -1) {\r\n\t\t\t\tthis.hiddenColumnCountWidgetArray.splice(objectIndex, 1, data);\r\n\t\t\t} else {\r\n\t\t\t\tthis.hiddenColumnCountWidgetArray.push(data);\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.dashboardOptionExecutedSubscription = this.dashboardService.dashboardOptionExecuted$.subscribe((data) => {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"dashboardOptionExecutedSubscription = %O\", data);\r\n\t\t\tif (data.title === \"Add Widget to Dashboard\") {\r\n\t\t\t\tlet dashboard = Global.User.currentUser.Dashboards.find((obj) => obj.Id == this.dashboardId);\r\n\r\n\t\t\t\tthis.DialogRef = this.dialog.open(AddWidgetToDashboardComponent, {\r\n\t\t\t\t\twidth: \"95%\",\r\n\t\t\t\t\theight: \"95%\"\r\n\t\t\t\t});\r\n\t\t\t\tthis.dashboardWidgetClickedSubscription = this.DialogRef.componentInstance.widgetClicked.subscribe((result) => {\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": widgetClicked = %O\", result);\r\n\t\t\t\t\tlet widget = _.clone(result);\r\n\r\n\t\t\t\t\t///Here we will add the ability to push the new widget into the grid. we will need to write functionality to update the db on the events that detect grid changes so that the new widget is added to db when those events fire\r\n\t\t\t\t\tthis.dashboardWidgets.push(\r\n\t\t\t\t\t\t_.assign(widget, {\r\n\t\t\t\t\t\t\tcols: widget.InitialWidth,\r\n\t\t\t\t\t\t\trows: widget.InitialHeight\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t);\r\n\t\t\t\t\tthis.signalRCore.LogActivity(\"Added \" + widget.WidgetTypeName + \" widget to dashboard.\");\r\n\t\t\t\t\t// this.toastr.success('Widget Successfully Added!');\r\n\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\ttype: \"success\",\r\n\t\t\t\t\t\tmessage: widget.WidgetTypeName + \" successfully added.\"\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.addWidgetToDashboardAfterClosedSubscription = this.DialogRef.afterClosed().subscribe(() => {\r\n\t\t\t\t\t// Global.User.DebugMode && console.log(this.componentName + \": The modal was closed\");\r\n\t\t\t\t\tthis.dashboardWidgetClickedSubscription && this.dashboardWidgetClickedSubscription.unsubscribe();\r\n\t\t\t\t\tthis.addWidgetToDashboardAfterClosedSubscription && this.addWidgetToDashboardAfterClosedSubscription.unsubscribe();\r\n\t\t\t\t});\r\n\t\t\t} else if (data.title === \"Scroll to Widget\") {\r\n\t\t\t\t// this.scrollToWidget(true);\r\n\t\t\t\tthis.DialogRef = this.dialog.open(ScrollToWidgetComponent, {\r\n\t\t\t\t\twidth: \"95%\",\r\n\t\t\t\t\theight: \"95%\",\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\twidgets: this.dashboardWidgets\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tthis.scrollToWidgetAfterClosedSubscription = this.DialogRef.afterClosed().subscribe((data) => {\r\n\t\t\t\t\tif (data !== undefined) {\r\n\t\t\t\t\t\tthis.scrollToWidget(data);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.scrollToWidgetAfterClosedSubscription && this.scrollToWidgetAfterClosedSubscription.unsubscribe();\r\n\t\t\t\t});\r\n\t\t\t} else if (data.title === \"Change Time Scope\") {\r\n\t\t\t\t// this.scrollToWidget(true);\r\n\t\t\t\tthis.currentTimeScopeId = data.id;\r\n\t\t\t\tthis.dashboardService.currentTimeScopeId = data.id;\r\n\t\t\t\tthis.changeDashboardTimeScope();\r\n\t\t\t} else if (data.title === \"Change Time Zone\") {\r\n\t\t\t\t// this.scrollToWidget(true);\r\n\t\t\t\tthis.currentTimeZoneId = data.id;\r\n\t\t\t\tthis.dashboardService.currentTimeZoneId = data.id;\r\n\t\t\t\tthis.changeDashboardTimeZone();\r\n\t\t\t} else if (data.title === \"Change Update Interval\") {\r\n\t\t\t\t// this.scrollToWidget(true);\r\n\t\t\t\tthis.updateIntervalId = data.id;\r\n\t\t\t\tthis.dashboardService.currentUpdateIntervalId = data.id;\r\n\t\t\t\tthis.changeDashboardUpdateInterval();\r\n\t\t\t} else if (data.title === \"Add Tags\") {\r\n\t\t\t\tthis.AddGraphWidgetToDashboard();\r\n\t\t\t} else if (data.title === \"Clear Tags\") {\r\n\t\t\t\tthis.ClearChartSelections();\r\n\t\t\t} else if (data.title === \"Custom TimeScope\") {\r\n\t\t\t\tthis.changeDashboardCustomTimeScope();\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.flightDataTimerSubscription = this.dashboardService.flightDataTimerTimerUpdated$.subscribe((data) => {\r\n\t\t\tlet objectIndex = this.flightDataTimerWidgetArray.findIndex((widgetObject) => {\r\n\t\t\t\treturn widgetObject.widgetId === data.widgetId;\r\n\t\t\t});\r\n\t\t\tif (objectIndex !== -1) {\r\n\t\t\t\tthis.flightDataTimerWidgetArray.splice(objectIndex, 1, data);\r\n\t\t\t} else {\r\n\t\t\t\tthis.flightDataTimerWidgetArray.push(data);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.searchObject = {};\r\n\r\n\t\tthis.dashboardService.dashboardTimeScopes = Global.User.currentUser.DashboardTimeScopes;\r\n\t\tthis.DashboardTimeScopes = this.dashboardService.dashboardTimeScopes;\r\n\t\tthis.DashboardGridsterTypes = this.dataService.cache.gridsterTypes.filter((gridsterType) => {\r\n\t\t\treturn gridsterType.Id == 2 || gridsterType.Id == 4;\r\n\t\t})\r\n\t\tGlobal.User.DebugMode && console.log(\"dashboard: Global.User.currentUser.DashboardTimeScopes data = %O\", this.DashboardTimeScopes);\r\n\r\n\t\tthis.DashboardTimeZones = Global.User.currentUser.DashboardTimeZones;\r\n\t\tGlobal.User.DebugMode && console.log(\"dashboard: this.dashboardObject = %O\", this.dashboardObject);\r\n\r\n\t\tthis.widgetHeight$ = fromEvent(this.elementRef.nativeElement, \"resize\").pipe(startWith(null), map(this.getHeight.bind(this)));\r\n\t\tthis.widgetIsInViewSubscription = this.dashboardService.widgetInViewChanged$.subscribe((data: any) => {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": this.dashboardService.widgetInViewChanged$ data = %O\", data);\r\n\t\t\t//Global.User.DebugMode && console.log(this.componentName + \": this.dashboardWidgets = %O\", this.dashboardWidgets);\r\n\t\t\tif (this.dashboardWidgets != undefined) {\r\n\t\t\t\t//-- Stephen was receiving an error on this next line since it expected dashboardWidgets to be defined and they weren't yet. --Kirk T. Sherer, November 3, 2021.\r\n\t\t\t\tlet index = this.dashboardWidgets.findIndex((widget: any) => {\r\n\t\t\t\t\treturn data.widgetId === widget.WidgetId;\r\n\t\t\t\t});\r\n\t\t\t\tif (index !== -1) {\r\n\t\t\t\t\tthis.dashboardWidgets[index].isWidgetInView = data.isInView;\r\n\t\t\t\t\t//now map widget and import\r\n\r\n\t\t\t\t\tif ((this.dashboardWidgets[index].widgetHasBeenLazyLoaded === false || _.isNil(this.dashboardWidgets[index].widgetHasBeenLazyLoaded)) && this.dashboardWidgets[index].isWidgetInView === true) {\r\n\t\t\t\t\t\tif (this.canUserSeeWidget(this.dashboardWidgets[index])) {\r\n\t\t\t\t\t\t\tthis.loadEditedOrCreatedWidget(index);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (data.isInView === true) {\r\n\t\t\t\t\t\tthis.dashboardWidgets[index].widgetHasBeenLazyLoaded = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.createNewDashboardWidgetSubscriber = this.dataService.createNewDashboardWidget$.subscribe((data: any) => {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": createNewDashboardWidget = %O\", data);\r\n\t\t\tthis.dashboardWidgets.push(data);\r\n\t\t});\r\n\r\n\t\t//subscribing to the route changes to get the dashboard id so we can go look up the contents of the dashboard.\r\n\t\tthis.expandedDashboardsSub = this.dashboardService._expandedDashboards.subscribe((returnedWidgets) => {\r\n\t\t\tvar newCollectionFinal = [];\r\n\t\t\tlet dashboardLocked = true;\r\n\t\t\tif (returnedWidgets.length === 0) {\r\n\t\t\t\tdashboardLocked = false;\r\n\t\t\t}\r\n\t\t\t_.forEach(returnedWidgets, (widget: any) => {\r\n\t\t\t\tif (widget.dragEnabled === true || widget.resizeEnabled === true) {\r\n\t\t\t\t\tdashboardLocked = false;\r\n\t\t\t\t}\r\n\t\t\t\tif (widget.WidgetTypeId !== null) {\r\n\t\t\t\t\twidget.cols = widget.Width;\r\n\t\t\t\t\twidget.rows = widget.Height;\r\n\t\t\t\t\twidget.x = widget.Col;\r\n\t\t\t\t\twidget.y = widget.Row;\r\n\t\t\t\t\tif (widget.FileUploadImageEnabled) {\r\n\t\t\t\t\t\tthis.setFileImageUploadSettings(widget);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": widget = %O\", widget);\r\n\r\n\t\t\t\t\t// Force Site Time when logged in as another user\r\n\t\t\t\t\tif (Global.User.isLoggedInAsDifferentUser == true) {\r\n\t\t\t\t\t\twidget.TimeZoneId = 2;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tnewCollectionFinal.push(widget);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": this.dashboardLocked = %O\", this.dashboardLocked);\r\n\t\t\tif (this.dashboardLocked === undefined) {\r\n\t\t\t\tthis.dashboardLocked = false;\r\n\t\t\t}\r\n\t\t\tthis.dashboardWidgets = newCollectionFinal;\r\n\t\t\tthis.dashboardLocked = dashboardLocked;\r\n\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": Global.User.currentUser.Dashboards = %O\", Global.User.currentUser.Dashboards);\r\n\r\n\t\t\tif (this.dashboardIndexInGlobalDashboardsArray !== undefined && Global.User.currentUser.Dashboards[this.dashboardIndexInGlobalDashboardsArray].widgets === undefined) {\r\n\t\t\t\tGlobal.User.currentUser.Dashboards[this.dashboardIndexInGlobalDashboardsArray].widgets = this.dashboardWidgets;\r\n\t\t\t}\r\n\r\n\t\t\tif (Global.User.currentUser.DashboardsObject[this.dashboardId].widgets === undefined) {\r\n\t\t\t\tGlobal.User.currentUser.DashboardsObject[this.dashboardId].widgets = this.dashboardWidgets;\r\n\t\t\t}\r\n\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": this.dashboardWidgets = %O\", this.dashboardWidgets);\r\n\r\n\t\t\tthis.dashboardTitle = Global.CurrentMenuItem;\r\n\t\t\t// Global.User.DebugMode && console.log(this.componentName + \": this.dashboardTitle = \" + this.dashboardTitle);\r\n\t\t});\r\n\r\n\t\tthis.editedWidgetSub = this.dashboardService._editedWidget.subscribe((editedWidget: any) => {\r\n\t\t\tif (!_.isEmpty(editedWidget)) {\r\n\t\t\t\tlet index = _.findIndex(this.dashboardWidgets, {\r\n\t\t\t\t\tWidgetId: editedWidget[0].WidgetId\r\n\t\t\t\t});\r\n\t\t\t\tif (index !== -1 && this.dashboardWidgets[index] && this.dashboardWidgets[index].FileUploadImageEnabled) {\r\n\t\t\t\t\tthis.setFileImageUploadSettings(this.dashboardWidgets[index]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// do this for GS Top 5 Alarms widget\r\n\t\t\t\tif (editedWidget[0].AngularDirectiveName == \"tGSTopFive\") {\r\n\t\t\t\t\tlet assetForDisplay = this.dataService.cache.assets.find((a) => {\r\n\t\t\t\t\t\treturn parseInt(a.Id) == parseInt(editedWidget[0].WidgetAssetId);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (assetForDisplay != undefined) {\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"assetForDisplay: %O\", assetForDisplay);\r\n\t\t\t\t\t\teditedWidget[0].WidgetAssetName = assetForDisplay.Site?.Name + \" \" + assetForDisplay.ParentSystem?.Name + \" \" + assetForDisplay.Name;\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"assetNameForDisplay: \" + editedWidget[0].WidgetAssetName);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.reloadedWidgetSub = this.dashboardService._reloadedWidget.subscribe((reloadedWidget: any) => {\r\n\t\t\tif (!_.isEmpty(reloadedWidget)) {\r\n\t\t\t\tlet index = _.findIndex(this.dashboardWidgets, {\r\n\t\t\t\t\tWidgetId: reloadedWidget.WidgetId\r\n\t\t\t\t});\r\n\t\t\t\tif (index !== -1 && this.dashboardWidgets[index] && this.dashboardWidgets[index].FileUploadImageEnabled) {\r\n\t\t\t\t\tthis.setFileImageUploadSettings(this.dashboardWidgets[index]);\r\n\t\t\t\t}\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"this.widgetsLazyLoadingSelector = %O\", this.widgetsLazyLoadingSelector);\r\n\t\t\t\t\tif (index !== -1) {\r\n\t\t\t\t\t\tthis.loadEditedOrCreatedWidget(index);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.widgetTimeChangedSub = this.dashboardService._widgetTimeChanged.subscribe((emitObject: any) => {\r\n\t\t\tif (!_.isEmpty(emitObject)) {\r\n\t\t\t\tif (emitObject.TimeChangeType === \"time zone\") {\r\n\t\t\t\t\tthis.dashboardTimeZoneChanged.emit(emitObject.data);\r\n\t\t\t\t} else if (emitObject.TimeChangeType === \"time scope\") {\r\n\t\t\t\t\tthis.dashboardTimeScopeChanged.emit(emitObject.data);\r\n\t\t\t\t} else if (emitObject.TimeChangeType === \"update interval\") {\r\n\t\t\t\t\tthis.dashboardUpdateIntervalChanged.emit(emitObject.data);\r\n\t\t\t\t}\r\n\t\t\t\t//determine if this was a time scope change or a time zone change, then emit\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.createdWidgetSub = this.dashboardService._createdWidget.subscribe((returnedWidget: any) => {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": returnedWidget = %O\", returnedWidget);\r\n\r\n\t\t\tif (!_.isEmpty(returnedWidget)) {\r\n\t\t\t\tlet index = this.dashboardWidgets.findIndex((widget: any) => {\r\n\t\t\t\t\treturn widget.WidgetId === null;\r\n\t\t\t\t});\r\n\t\t\t\tif (index !== -1) {\r\n\t\t\t\t\tObject.assign(this.dashboardWidgets[index], returnedWidget[0]);\r\n\r\n\t\t\t\t\tif (this.dashboardWidgets[index].FileUploadImageEnabled) {\r\n\t\t\t\t\t\tthis.setFileImageUploadSettings(this.dashboardWidgets[index]);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet newestAddedWidget = this.dashboardWidgets[index];\r\n\t\t\t\t\tif (newestAddedWidget.AngularDirectiveName === \"gseSummary\") {\r\n\t\t\t\t\t\tthis.gseSummaryCreatedEvent.emit({\r\n\t\t\t\t\t\t\tWidgetId: newestAddedWidget.WidgetId\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (newestAddedWidget.AngularDirectiveName === \"pcaSummary\") {\r\n\t\t\t\t\t\tthis.pcaSummaryCreatedEvent.emit({\r\n\t\t\t\t\t\t\tWidgetId: newestAddedWidget.WidgetId\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (newestAddedWidget.AngularDirectiveName === \"pbbSummary\") {\r\n\t\t\t\t\t\tthis.pbbSummaryCreatedEvent.emit({\r\n\t\t\t\t\t\t\tWidgetId: newestAddedWidget.WidgetId\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (newestAddedWidget.AngularDirectiveName === \"gpuSummary\") {\r\n\t\t\t\t\t\tthis.gpuSummaryCreatedEvent.emit({\r\n\t\t\t\t\t\t\tWidgetId: newestAddedWidget.WidgetId\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (newestAddedWidget.AngularDirectiveName === \"ahuSummary\") {\r\n\t\t\t\t\t\tthis.ahuSummaryCreatedEvent.emit({\r\n\t\t\t\t\t\t\tWidgetId: newestAddedWidget.WidgetId\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (newestAddedWidget.AngularDirectiveName === \"locateAllGSE\") {\r\n\t\t\t\t\t\tthis.locateAllGSECreatedEvent.emit({\r\n\t\t\t\t\t\t\tWidgetId: newestAddedWidget.WidgetId\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (newestAddedWidget.AngularDirectiveName === \"tagGraph\") {\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": this.dataService.tempTagsToChart = %O\", this.dataService.tempTagsToChart);\r\n\r\n\t\t\t\t\t\tlet tagIdsToAdd = [];\r\n\t\t\t\t\t\t_.forEach(this.dataService.tempTagsToChart, (TagId) => {\r\n\t\t\t\t\t\t\ttagIdsToAdd.push(TagId);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tlet tagIdsToAddString = tagIdsToAdd.join(\",\");\r\n\r\n\t\t\t\t\t\tlet statement = \"API.AddTagsToTagGraphByWidgetId \" + newestAddedWidget.WidgetId + \",'\" + tagIdsToAddString + \"'\";\r\n\r\n\t\t\t\t\t\tthis.dataService.SQLActionAsPromise(statement).then(() => {\r\n\t\t\t\t\t\t\tthis.dataService.tempTagsToChart.length = 0;\r\n\t\t\t\t\t\t\t//fire event emitter which means the tags are affiliated with the widget, so now we can initialize the tagGraph. Pass the widget id so that we can evaluate if this widget id is the right one since it will be broadcasted to all instances of tagGrahph components on the screen.\r\n\t\t\t\t\t\t\tthis.tagGraphCreatedEvent.emit({\r\n\t\t\t\t\t\t\t\tWidgetId: newestAddedWidget.WidgetId,\r\n\t\t\t\t\t\t\t\tDashboardTimeScopes: this.DashboardTimeScopes\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t//need to also get dashboard timescope if there is one, or set one by clicking buttons example of one. appears to be objects. vm.dashboard.DashboardTimeScope = { Id: 6 Description: \"24 Hours \" Days: 1\r\n\t\t\t\t\t\t// }\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (newestAddedWidget.isWidgetInView) {\r\n\t\t\t\t\t\tthis.loadEditedOrCreatedWidget(newestAddedWidget);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.dashboardLocked === true) {\r\n\t\t\t\t\t\tnewestAddedWidget.dragEnabled = !this.dashboardLocked;\r\n\t\t\t\t\t\tnewestAddedWidget.resizeEnabled = !this.dashboardLocked;\r\n\t\t\t\t\t\tthis.options.api.optionsChanged();\r\n\r\n\t\t\t\t\t\tthis.itemChange(newestAddedWidget);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.sub = this.route.params.subscribe((params) => {\r\n\t\t\tthis.dashboardId = +params[\"id\"];\r\n\r\n\r\n\t\t\tthis.dashboardService.closeAllOpenPopups();\r\n\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": this.dashboardId = \" + this.dashboardId);\r\n\r\n\t\t\tif (this.dashboardId !== undefined) {\r\n\t\t\t\tthis.currentDashboard = Global.User.currentUser.Dashboards.find((obj) => obj.Id == this.dashboardId);\r\n\t\t\t\tif (this.currentDashboard.CustomStartDate != null && this.currentDashboard.CustomEndDate != null) {\r\n\t\t\t\t\tthis.maxDate = new Date();\r\n\t\t\t\t\tlet startDate = new Date(this.currentDashboard.CustomStartDateMS);\r\n\t\t\t\t\tlet endDate = new Date(this.currentDashboard.CustomEndDateMS);\r\n\t\t\t\t\tthis.form = new FormGroup({\r\n\t\t\t\t\t\tstartDateTime: new FormControl(startDate),\r\n\t\t\t\t\t\tendDateTime: new FormControl(endDate)\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (Global.User.currentUser.Username == \"dylan\") {\r\n\t\t\t\t\tconsole.log(this.currentDashboard);\r\n\t\t\t\t}\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": Global.User.currentUser.Dashboards = %O\", Global.User.currentUser.Dashboards);\r\n\t\t\t\tthis.dashboardIndexInGlobalDashboardsArray = Global.User.currentUser.Dashboards.findIndex((obj) => obj.Id == this.dashboardId);\r\n\t\t\t\tif (Global.User.currentUser.Dashboards[this.dashboardIndexInGlobalDashboardsArray].widgets === undefined) {\r\n\t\t\t\t\tthis.dashboardService.loadAllExpandedDashboards(this.dashboardId);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tGlobal.User.currentUser.Dashboards[this.dashboardIndexInGlobalDashboardsArray].widgets.forEach((widget) => {\r\n\t\t\t\t\t\twidget.widgetHasBeenLazyLoaded = false;\r\n\t\t\t\t\t\twidget.isWidgetInView = false;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.dashboardWidgets = Global.User.currentUser.Dashboards[this.dashboardIndexInGlobalDashboardsArray].widgets;\r\n\t\t\t\t}\r\n\t\t\t\tthis.dashboardObject = Global.User.currentUser.Dashboards[this.dashboardIndexInGlobalDashboardsArray];\r\n\t\t\t\tconsole.log(\"shared-dashboard: dashboardObject = %O\", this.dashboardObject);\r\n\r\n\t\t\t\tthis.currentTimeZoneId = this.dashboardObject.TimeZoneId;\r\n\t\t\t\tthis.utilityService.updateCurrentMenuItem(this.dashboardObject.Name);\r\n\t\t\t\tthis.updateIntervalId = this.dashboardObject.UpdateIntervalId && 2; //-- defaulting this to Id number 2 for every 15 minutes since some dashboards don't have this set when they should. --Kirk T. Sherer, February 22, 2024.\r\n\t\t\t\tconsole.log(\"shared-dashboard: Global.User.currentUser.TacticalDashboardUpdateIntervals = %O\", Global.User.currentUser.TacticalDashboardUpdateIntervals);\r\n\t\t\t\tif (!_.isNil(this.updateIntervalId) && this.updateIntervalId !== 0) {\r\n\t\t\t\t\tthis.currentUpdateIntervalName = Global.User.currentUser.TacticalDashboardUpdateIntervals.find((tz) => tz.Id == this.updateIntervalId).Description;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!_.isNil(this.currentTimeZoneId) && this.currentTimeZoneId !== 0) {\r\n\t\t\t\t\tthis.currentDashboardTimeZoneName = this.DashboardTimeZones.find((tz) => tz.Id == this.currentTimeZoneId).Description;\r\n\t\t\t\t}\r\n\t\t\t\tif(_.isNil(this.dashboardObject.GridsterTypeId)) {\r\n\t\t\t\t\tthis.dashboardObject.GridsterTypeId = 2;\r\n\t\t\t\t}\r\n\t\t\t\tthis.currentGridsterTypeId = this.dashboardObject.GridsterTypeId ;\r\n\t\t\t\tthis.currentTimeScopeId = this.dashboardObject.TimeScopeId;\r\n\t\t\t\tthis.evaluateGridsterType();\r\n\r\n\t\t\t\tthis.dashboardService.currentDashboard = Global.User.currentUser.Dashboards[this.dashboardIndexInGlobalDashboardsArray];\r\n\t\t\t\tthis.dashboardService.currentDashboardId = this.dashboardId;\r\n\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": dashboardObject = %O\", this.dashboardObject);\r\n\r\n\t\t\t\tlet dashboardLocked = true;\r\n\t\t\t\tif (this.dashboardWidgets !== undefined) {\r\n\t\t\t\t\tif (this.dashboardWidgets.length === 0) {\r\n\t\t\t\t\t\tdashboardLocked = false;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.dashboardWidgets.forEach((widget: any) => {\r\n\t\t\t\t\t\t\tif (widget.dragEnabled === true || widget.resizeEnabled === true) {\r\n\t\t\t\t\t\t\t\tdashboardLocked = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.dashboardLocked = dashboardLocked;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.dashboardTitle = Global.CurrentMenuItem;\r\n\t\t\t// Global.User.DebugMode && console.log(this.componentName + \": current dashboard in this route: \" + this.dashboardId);\r\n\t\t});\r\n\r\n\t\tthis.viewportWidth = this.dashboardService.screenWidth;\r\n\t\tthis.viewportHeight = this.dashboardService.screenHeight - 50; //-- the minus 50 is so that we don't lose the bottom of the widgets. --Kirk T. Sherer, August 2, 2021.\r\n\r\n\t\tthis.options = {\r\n\t\t\tinitCallback: SharedDashboardComponent.gridInit, //callback to call after grid has initialized\r\n\t\t\tdestroyCallback: SharedDashboardComponent.gridDestroy, //callback to call after grid has destroyed\r\n\t\t\tgridSizeChangedCallback: this.gridSizeChanged.bind(this), //callback to call after grid has changed size cols/rows\r\n\t\t\titemChangeCallback: this.itemChange.bind(this), //callback to call for each item when is changes x, y, rows, cols\r\n\t\t\titemResizeCallback: this.itemResize.bind(this), //callback to call for each item when width/height changes\r\n\t\t\titemInitCallback: this.itemInit.bind(this), //callback to call for each item when is initialized\r\n\t\t\titemRemovedCallback: this.itemRemoved.bind(this), //callback to call for each item when is removed\r\n\t\t\titemValidateCallback: SharedDashboardComponent.itemValidate, //callback to call to validate item position/size. Return true if valid.\r\n\t\t\tcompactType: CompactType.CompactUp,\r\n\t\t\tmargin: 5,\r\n\t\t\touterMargin: false,\r\n\t\t\touterMarginTop: null,\r\n\t\t\touterMarginRight: null,\r\n\t\t\touterMarginBottom: null,\r\n\t\t\touterMarginLeft: null,\r\n\t\t\tuseTransformPositioning: false,\r\n\t\t\tmobileBreakpoint: Global.isMobile ? 5000 : 640,\r\n\t\t\tminCols: 1,\r\n\t\t\tmaxCols: 60,\r\n\t\t\theight: Global.isMobile || this.currentGridsterTypeId === 4 ? this.viewportHeight + \"px\" : \"2000px\",\r\n\t\t\twidth: Global.isMobile || this.currentGridsterTypeId === 4 ? this.viewportWidth + \"px\" : \"2000px\",\r\n\t\t\tminRows: 1,\r\n\t\t\tmaxRows: 100,\r\n\t\t\tmaxItemCols: 60,\r\n\t\t\tminItemCols: 1,\r\n\t\t\tmaxItemRows: 100,\r\n\t\t\tminItemRows: 1,\r\n\t\t\tmaxItemArea: 5000,\r\n\t\t\tminItemArea: 1,\r\n\t\t\tdefaultItemCols: 1,\r\n\t\t\tdefaultItemRows: 1,\r\n\t\t\tfixedColWidth: 60,\r\n\t\t\tfixedRowHeight: 60,\r\n\t\t\tsetGridSize: false, //leave as true so that this displays properly on mac. Sets the grid height to the size of its child components.\r\n\t\t\tkeepFixedHeightInMobile: false,\r\n\t\t\tkeepFixedWidthInMobile: false,\r\n\t\t\tscrollSensitivity: 10,\r\n\t\t\tscrollSpeed: 20,\r\n\t\t\tenableEmptyCellClick: false,\r\n\t\t\tenableEmptyCellContextMenu: false,\r\n\t\t\tenableEmptyCellDrop: false,\r\n\t\t\tenableEmptyCellDrag: false,\r\n\t\t\tenableOccupiedCellDrop: false,\r\n\t\t\temptyCellDragMaxCols: 50,\r\n\t\t\temptyCellDragMaxRows: 50,\r\n\t\t\tignoreMarginInRow: false,\r\n\t\t\tdraggable: {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\tignoreContent: true,\r\n\t\t\t\tdragHandleClass: \"drag-handler\"\r\n\t\t\t},\r\n\t\t\tresizable: {\r\n\t\t\t\tenabled: true\r\n\t\t\t},\r\n\t\t\tswap: false,\r\n\t\t\tpushItems: true,\r\n\t\t\tdisablePushOnDrag: false,\r\n\t\t\tdisablePushOnResize: false,\r\n\t\t\tpushDirections: {\r\n\t\t\t\tnorth: true,\r\n\t\t\t\teast: false,\r\n\t\t\t\tsouth: true,\r\n\t\t\t\twest: false\r\n\t\t\t},\r\n\t\t\tpushResizeItems: false,\r\n\t\t\tdisplayGrid: DisplayGrid.Always,\r\n\t\t\tdisableWindowResize: false,\r\n\t\t\tdisableWarnings: false,\r\n\t\t\tscrollToNewItems: false\r\n\t\t};\r\n\r\n\t\tthis.evaluateGridsterType();\r\n\r\n\r\n\t\tif (this.widgetHeightChangedEvent) {\r\n\t\t\tthis.widgetHeightChangedSubscription = this.widgetHeightChangedEvent.subscribe((data) => {\r\n\t\t\t\tthis.widgetHeightChanged(data);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tlet interval = setInterval(() => {\r\n\t\t\tif (this.dashboardWidgets != null) {\r\n\t\t\t\tthis.dashboardWidgets.forEach((widget) => {\r\n\t\t\t\t\tthis.widgetAlertNotificationColor(widget);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}, 10000);\r\n\r\n\t\t// old documentation\r\n\r\n\t\t// html String|HTMLElement The string of HTMLElement that represents the widget is going to be added. size_x Number The number of rows that the widget occupies. Defaults to 1. size_y Number The number of columns that the widget occupies. Defaults to 1. col Number The column the widget should start in. row Number The row the widget should start in.\r\n\t\tif (this.dashboardLocked === undefined) {\r\n\t\t\tthis.dashboardLocked = false;\r\n\t\t}\r\n\t\tthis.isDataLoading = false;\r\n\t}\r\n\r\n\tfindAssetByName(widget, assetName): any {\r\n\t\treturn this.dataService.cache.assets.find((a) => a.SiteId == widget.WidgetSiteId && (widget.WidgetGateSystemId == undefined || a.ParentSystemId == widget.WidgetGateSystemId) && a.Name == assetName);\r\n\t}\r\n\r\n\tfindAssetById(widget, assetId): any {\r\n\t\treturn this.dataService.cache.assets.find((a) => a.Id == assetId);\r\n\t}\r\n\r\n\twidgetAlertNotificationColor(widget): any {\r\n\t\tlet alertLevel = \"asset\";\r\n\t\twidget.alertNotificationTitle = \"Click to set alert management settings.\";\r\n\r\n\t\tlet assetObj;\r\n\t\tlet assetName;\r\n\t\tswitch (widget.AngularDirectiveName) {\r\n\t\t\tcase \"siteGateSummary\":\r\n\t\t\tcase \"gseOverview\":\r\n\t\t\tcase \"deicerOverview\":\r\n\t\t\tcase \"fuelLevel\":\r\n\t\t\tcase \"locateAllGSE\":\r\n\t\t\tcase \"fireTruckOverview\":\r\n\t\t\t\talertLevel = \"site\";\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase \"fireTruckOverviewAerial\":\r\n\t\t\t\t\talertLevel = \"site\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"fireTruckOverviewDriveline\":\r\n\t\t\t\t\t\talertLevel = \"site\";\r\n\t\t\t\t\t\tbreak;\r\n\t\t\tcase \"pbbSummary\":\r\n\t\t\t\tassetName = \"PBB\";\r\n\t\t\t\tassetObj = this.findAssetByName(widget, assetName);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"pcaSummary\":\r\n\t\t\t\tassetName = \"PCA\";\r\n\t\t\t\tassetObj = this.findAssetByName(widget, assetName);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"ahuSummary\":\r\n\t\t\t\tassetName = \"AHU\";\r\n\t\t\t\tassetObj = this.findAssetByName(widget, assetName);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gpuSummary\":\r\n\t\t\t\tassetName = \"GPU\";\r\n\t\t\t\tassetObj = this.findAssetByName(widget, assetName);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gseSummary\":\r\n\t\t\t\tassetName = widget.WidgetAssetName;\r\n\t\t\t\tassetObj = this.findAssetById(widget, widget.WidgetAssetId);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\treturn;\r\n\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tlet userAlert = [];\r\n\r\n\t\tif (alertLevel == \"asset\") {\r\n\t\t\t// disable the bell if no asset is selected\r\n\t\t\tif (assetObj == null) {\r\n\t\t\t\twidget.alertNotificationDisabled = true;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\twidget.alertNotificationDisabled = false;\r\n\t\t\t}\r\n\r\n\t\t\tuserAlert = this.dataService.cache.emailTagUsers.filter((a) => a.UserId == Global.User.currentUser.Id && (a.CriticalAssetId == assetObj.Id || a.AssetId == assetObj.Id || a.AlertAssetId == assetObj.Id));\r\n\r\n\t\t\t// set the title with alert info\r\n\t\t\tif (userAlert?.length > 0) {\r\n\t\t\t\tlet title = userAlert[0].CriticalAssetId == assetObj.Id ? \"Critical \" : \"\";\r\n\t\t\t\ttitle += \"Alert notifications set for \" + assetName;\r\n\t\t\t\tlet alertObject = this.GetAlertNotificationDetails(userAlert[0]);\r\n\r\n\t\t\t\tif (alertObject.Email == true && alertObject.TextMessage == true) {\r\n\t\t\t\t\ttitle += \" email and text delivery\";\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttitle += alertObject.Email == true ? \" email delivery\" : \"\";\r\n\t\t\t\t\ttitle += alertObject.TextMessage == true ? \" text delivery\" : \"\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttitle += \" on \" + alertObject.DaysSelected;\r\n\t\t\t\ttitle += \" during \" + alertObject.HoursSelected;\r\n\r\n\t\t\t\twidget.alertNotificationTitle = title;\r\n\t\t\t}\r\n\t\t} else if (alertLevel == \"site\") {\r\n\t\t\tif (widget.WidgetSiteId != null) {\r\n\t\t\t\tlet siteId = widget.WidgetSiteId;\r\n\t\t\t\tuserAlert = this.dataService.cache.emailTagUsers.filter((a) => a.UserId == Global.User.currentUser.Id && (a.CriticalSiteId == siteId || a.SiteId == siteId));\r\n\t\t\t\tlet title = this.GetAlertSummaryForSite(siteId, userAlert);\r\n\t\t\t\twidget.alertNotificationTitle = title != \"\" ? title : \"Click to set alert management settings.\";\r\n\t\t\t} else if (!Array.isArray(widget.SiteList) && widget.SiteList != null) {\r\n\t\t\t\tlet siteId = widget.SiteList;\r\n\t\t\t\tuserAlert = this.dataService.cache.emailTagUsers.filter((a) => a.UserId == Global.User.currentUser.Id && (a.CriticalSiteId == siteId || a.SiteId == siteId));\r\n\t\t\t\tlet title = this.GetAlertSummaryForSite(siteId, userAlert);\r\n\t\t\t\twidget.alertNotificationTitle = title != \"\" ? title : \"Click to set alert management settings.\";\r\n\t\t\t} else if (widget.SiteList?.length > 0) {\r\n\t\t\t\tlet alertNotificationTitle = [];\r\n\r\n\t\t\t\twidget.SiteList.forEach((siteId) => {\r\n\t\t\t\t\tlet userAlertForSite = this.dataService.cache.emailTagUsers.filter((a) => a.UserId == Global.User.currentUser.Id && (a.CriticalSiteId == siteId || a.SiteId == siteId));\r\n\t\t\t\t\tif (userAlertForSite && userAlertForSite.length > 0) {\r\n\t\t\t\t\t\tuserAlert.push(userAlertForSite[0]);\r\n\r\n\t\t\t\t\t\tlet title = this.GetAlertSummaryForSite(siteId, userAlertForSite);\r\n\t\t\t\t\t\tif (title != \"\") {\r\n\t\t\t\t\t\t\talertNotificationTitle.push(title);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (alertNotificationTitle.length > 0) {\r\n\t\t\t\t\twidget.alertNotificationTitle = alertNotificationTitle.join(\", \");\r\n\t\t\t\t}\r\n\t\t\t} else if (widget.VocationalSettingsJSON != null) {\r\n\t\t\t\tvar VocationalSettings = JSON.parse(widget.VocationalSettingsJSON);\r\n\t\t\t\t//Global.User.DebugMode && console.log(\"VocationalSettings \", VocationalSettings);\r\n\t\t\t\tlet fleetId = VocationalSettings.id;\r\n\r\n\t\t\t\tuserAlert = this.dataService.cache.emailTagUsers.filter((a) =>\r\n\t\t\t\t\t\t\t\t\ta.UserId == Global.User.currentUser.Id && (a.CriticalThingId == fleetId || a.ThingId == fleetId || a.AlertThingId == fleetId));\r\n\t\t\t\tlet title = this.GetAlertSummaryForFleet(fleetId, userAlert);\r\n\t\t\t\twidget.alertNotificationTitle = title != \"\" ? title : \"Click to set alert management settings.\";\r\n\r\n\t\t\t} else {\r\n\t\t\t\t// disable the bell if no site is selected\r\n\t\t\t\twidget.alertNotificationDisabled = true;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// set the color for the bell\r\n\t\tif (userAlert?.length > 0) {\r\n\t\t\twidget.alertNotificationColor = { color: \"green\" };\r\n\t\t} else {\r\n\t\t\twidget.alertNotificationColor = { color: \"white\" };\r\n\t\t}\r\n\t}\r\n\r\n\tGetAlertSummaryForSite(siteId, userAlert): any {\r\n\t\tlet title = \"\";\r\n\r\n\t\t// set the title with alert info\r\n\t\tif (userAlert?.length > 0) {\r\n\t\t\tlet siteName = this.dataService.cache.sitesObject[siteId].Name;\r\n\r\n\t\t\ttitle = userAlert[0].CriticalSiteId == siteId ? \"Critical \" : \"\";\r\n\t\t\ttitle += \"Alert notifications set for \" + siteName;\r\n\r\n\t\t\tlet alertObject = this.GetAlertNotificationDetails(userAlert[0]);\r\n\r\n\t\t\tif (alertObject.Email == true && alertObject.TextMessage == true) {\r\n\t\t\t\ttitle += \" email and text delivery\";\r\n\t\t\t} else {\r\n\t\t\t\ttitle += alertObject.Email == true ? \" email delivery\" : \"\";\r\n\t\t\t\ttitle += alertObject.TextMessage == true ? \" text delivery\" : \"\";\r\n\t\t\t}\r\n\r\n\t\t\ttitle += \" on \" + alertObject.DaysSelected;\r\n\t\t\ttitle += \" during \" + alertObject.HoursSelected;\r\n\t\t}\r\n\r\n\t\treturn title;\r\n\t}\r\n\r\n\tGetAlertSummaryForFleet(fleetId, userAlert): any {\r\n\t\tlet title = \"\";\r\n\r\n\t\tlet fleetName = \"\";\r\n\r\n\t\t// set the title with alert info\r\n\t\tif (userAlert?.length > 0) {\r\n\t\t\tthis.dataService.GetFleets().subscribe((data: any) => {\r\n\t\t\t\tif(data.length > 0) {\r\n\t\t\t\t\tlet myFleet = data.find((fleet) => {\r\n\t\t\t\t\t\treturn ( fleet.FleetId === fleetId );\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif(myFleet) {\r\n\r\n\t\t\t\t\t\tfleetName = myFleet.FleetName;\r\n\r\n\t\t\t\t\t\ttitle = userAlert[0].CriticalSiteId == fleetId ? \"Critical \" : \"\";\r\n\t\t\t\t\t\ttitle += \"Alert notifications set for \" + fleetName;\r\n\r\n\t\t\t\t\t\tlet alertObject = this.GetAlertNotificationDetails(userAlert[0]);\r\n\r\n\t\t\t\t\t\tif (alertObject.Email == true && alertObject.TextMessage == true) {\r\n\t\t\t\t\t\t\ttitle += \" email and text delivery\";\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ttitle += alertObject.Email == true ? \" email delivery\" : \"\";\r\n\t\t\t\t\t\t\ttitle += alertObject.TextMessage == true ? \" text delivery\" : \"\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttitle += \" on \" + alertObject.DaysSelected;\r\n\t\t\t\t\t\ttitle += \" during \" + alertObject.HoursSelected;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t}\r\n\r\n\t\treturn title;\r\n\t}\r\n\r\n\tGetAlertNotificationDetails(userAlert): any {\r\n\t\tlet alertObject: any = {\r\n\t\t\tsiteId: 0,\r\n\t\t\tsiteName: \"\",\r\n\t\t\tgateSystemId: 0,\r\n\t\t\tgateSystemName: \"\",\r\n\t\t\tcategory: \"\",\r\n\t\t\tEmail: 0\r\n\t\t};\r\n\r\n\t\t// delivery\r\n\t\talertObject.Email = userAlert.Email == 1 ? true : false;\r\n\t\talertObject.TextMessage = userAlert.TextMessage == 1 ? true : false;\r\n\r\n\t\t// set days\r\n\t\tif (userAlert.SendAllDays == 1) {\r\n\t\t\talertObject.DaysSelected = \"all days\";\r\n\t\t} else {\r\n\t\t\talertObject.DaysSelected = \"select days\";\r\n\t\t}\r\n\r\n\t\t// calc work hours\r\n\t\tlet hourToStart = userAlert.UserTimeZoneOffset + 8;\r\n\r\n\t\t// set hours\r\n\t\tif (userAlert.SendAllHours == 1) {\r\n\t\t\talertObject.HoursSelected = \"all Hours\";\r\n\t\t} else {\r\n\t\t\talertObject.HoursSelected = \"select Hours\";\r\n\t\t}\r\n\r\n\t\treturn alertObject;\r\n\t}\r\n\r\n\tchangeDashboardLockedToggle(event) {\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"event = %O\", event);\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"this.dashboardLocked = \" + this.dashboardLocked);\r\n\t\tif (this.widgetMovementRecentlyChanged === false) {\r\n\t\t\tif (this.dashboardWidgets !== undefined && this.dashboardWidgets.length > 0) {\r\n\t\t\t\tthis.dashboardWidgets.forEach((widget) => {\r\n\t\t\t\t\twidget.dragEnabled = !this.dashboardLocked;\r\n\t\t\t\t\twidget.resizeEnabled = !this.dashboardLocked;\r\n\t\t\t\t\tthis.itemChange(widget);\r\n\t\t\t\t});\r\n\t\t\t\tthis.options.api.optionsChanged();\r\n\t\t\t}\r\n\t\t} else if (this.widgetMovementRecentlyChanged === true) {\r\n\t\t\tthis.widgetMovementRecentlyChanged = false;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async loadEditedOrCreatedWidget(index) {\r\n\t\tawait this.mapWidget(this.dashboardWidgets[index]);\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.widgetsLazyLoadingSelector.map((vcr: any, i: number) => {\r\n\t\t\t\tlet dw = this.dashboardWidgets[index];\r\n\r\n\t\t\t\tif (vcr.element.nativeElement.parentElement.id !== null) {\r\n\t\t\t\t\tlet parentElementName = vcr.element.nativeElement.parentElement.id;\r\n\r\n\t\t\t\t\tif (parentElementName.includes(dw.AngularDirectiveName + dw.WidgetId)) {\r\n\t\t\t\t\t\tvcr.clear();\r\n\t\t\t\t\t\tconst { instance }: any = vcr.createComponent(dw.component[dw.ProperComponentName]);\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"DashboardTypeId = \" + dw.DashboardTypeId);\r\n\t\t\t\t\t\tswitch (dw.AngularDirectiveName) {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tcase \"mobileConditionedOverview\":\r\n\t\t\t\t\t\t\tcase \"fuelLevel\":\r\n\t\t\t\t\t\t\tcase \"deicerOverview\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tcase \"gseOverview\":\r\n\t\t\t\t\t\t\tcase \"locateAllGSE\":\r\n\t\t\t\t\t\t\tcase \"fireTruckOverview\":\r\n\t\t\t\t\t\t\tcase \"fireTruckOverviewAerial\":\r\n\t\t\t\t\t\t\tcase \"fireTruckOverviewDriveline\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tcase \"siteGateSummary\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"siteCameraView\":\r\n\t\t\t\t\t\t\tcase \"cameraView\":\r\n\t\t\t\t\t\t\tcase \"sabelData\":\r\n\t\t\t\t\t\t\tcase \"gseData\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\t// TODO instance.dashoardWidgetDeleted = dashboardWidgetToDelete()\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"weather\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"pbbSummary\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.pbbSummaryCreatedEvent = this.pbbSummaryCreatedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"pcaSummary\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.pcaSummaryCreatedEvent = this.pcaSummaryCreatedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"gsEquipmentHoursOfUsage\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeScopeChanged = this.dashboardTimeScopeChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"gsEquipmentUsage\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeScopeChanged = this.dashboardTimeScopeChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"gpuSummary\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.gpuSummaryCreatedEvent = this.gpuSummaryCreatedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"siteActiveAlarms\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"siteActiveCommsLoss\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"siteActiveWarnings\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.searchValue = this.searchObject;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"gseActiveAlarms\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"gseUserDefinedActiveAlarms\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"gsTopFiveAlarmTypesByEquipment\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeScopeChanged = this.dashboardTimeScopeChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"assetTracking\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"gseTopFiveAlarmTypes\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeScopeChanged = this.dashboardTimeScopeChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"gseTopFiveEquipmentAlarmTypes\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeScopeChanged = this.dashboardTimeScopeChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"gseSummary\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.gseSummaryCreatedEvent = this.gseSummaryCreatedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeScopeChanged = this.dashboardTimeScopeChanged;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"pcaDischargePerformance\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"tagGraph\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeScopeChanged = this.dashboardTimeScopeChanged;\r\n\t\t\t\t\t\t\t\tinstance.dashboard = this.dashboardObject;\r\n\t\t\t\t\t\t\t\tinstance.tagGraphCreatedEvent = this.tagGraphCreatedEvent;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"terminalOverview\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"canvas\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"rawTagDataForAsset\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"assetGeofencing\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"wheelChairSummary\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"wheelChairOverview\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"centralUnitsSummary\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"centralUnitsOverview\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"gsTopFiveAlarmTypes\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeScopeChanged = this.dashboardTimeScopeChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"gsPerfectHookup\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeScopeChanged = this.dashboardTimeScopeChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"gsPerfectHookupOpportunity\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeScopeChanged = this.dashboardTimeScopeChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"gsFlightSchedule\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"gsePeakReportData\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"alarmEmailSettingsForAsset\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"ahuSummary\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.ahuSummaryCreatedEvent = this.ahuSummaryCreatedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"intelligentChargingSystemSummary\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tinstance.icsSummaryCreatedEvent = this.icsSummaryCreatedEvent;\r\n\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"testGrid\":\r\n\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\tif (dw.DashboardTypeId === 2) {\r\n\t\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\t\tinstance.dashboardUpdateIntervalChanged = this.dashboardUpdateIntervalChanged;\r\n\t\t\t\t\t\t\t\t\tinstance.dashboardTimeScopeChanged = this.dashboardTimeScopeChanged;\r\n\t\t\t\t\t\t\t\t\tinstance.widgetResizedEvent = this.widgetResizedEvent;\r\n\t\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\tinstance.widgetObject = dw;\r\n\t\t\t\t\t\t\t\t\tinstance.dashboardTimeZoneChanged = this.dashboardTimeZoneChanged;\r\n\t\t\t\t\t\t\t\t\tinstance.dashboardTimeScopeChanged = this.dashboardTimeScopeChanged;\r\n\t\t\t\t\t\t\t\t\tinstance.dashboardUpdateIntervalChanged = this.dashboardUpdateIntervalChanged;\r\n\t\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}, 1000);\r\n\t}\r\n\r\n\tasync mapWidgets() {\r\n\t\tfor (const widget of this.dashboardWidgets) {\r\n\t\t\tawait this.mapWidget(widget);\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"widget = %O\", widget);\r\n\t\t}\r\n\r\n\t\t// for (const widget of this.widgets.map()) this.widgets.forEach((widget: any) => { widget.component = import('../widgets/gse-overview/gse-overview.component');\r\n\r\n\t\t// })\r\n\t}\r\n\r\n\tasync mapWidget(widget: any) {\r\n\t\tswitch (widget.AngularDirectiveName) {\r\n\t\t\tcase \"gseOverview\":\r\n\t\t\tcase \"mobileConditionedOverview\":\r\n\t\t\tcase \"fuelLevel\":\r\n\t\t\tcase \"deicerOverview\":\r\n\t\t\tcase \"fireTruckOverview\":\r\n\t\t\t\tcase \"fireTruckOverviewAerial\":\r\n\t\t\t\t\tcase \"fireTruckOverviewDriveline\":\r\n\t\t\t\twidget.ProperComponentName = \"AssetOverviewParentComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/asset-overview-parent/asset-overview-parent.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/asset-overview-parent/asset-overview-parent.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"locateAllGSE\":\r\n\t\t\t\twidget.ProperComponentName = \"LocateAllGseWidgetComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/locate-all-gse-widget/locate-all-gse-widget.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/locate-all-gse-widget/locate-all-gse-widget.component\");\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"siteGateSummary\":\r\n\t\t\t\twidget.ProperComponentName = \"SiteAllGateSummaryComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/site-all-gate-summary/site-all-gate-summary.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/site-all-gate-summary/site-all-gate-summary.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"siteCameraView\":\r\n\t\t\t\twidget.ProperComponentName = \"SiteCameraViewComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/site-camera-view/site-camera-view.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/site-camera-view/site-camera-view.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"weather\":\r\n\t\t\t\twidget.ProperComponentName = \"WeatherWidgetComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/weather-widget/weather-widget.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/weather-widget/weather-widget.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"pbbSummary\":\r\n\t\t\t\twidget.ProperComponentName = \"PbbSummaryComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/pbb-summary/pbb-summary.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/pbb-summary/pbb-summary.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"pcaSummary\":\r\n\t\t\t\twidget.ProperComponentName = \"PcaSummaryComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/pca-summary/pca-summary.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/pca-summary/pca-summary.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gsEquipmentHoursOfUsage\":\r\n\t\t\t\twidget.ProperComponentName = \"GsEquipmentHoursOfOperationComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gs-equipment-hours-of-operation/gs-equipment-hours-of-operation.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gs-equipment-hours-of-operation/gs-equipment-hours-of-operation.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gsEquipmentUsage\":\r\n\t\t\t\twidget.ProperComponentName = \"GsEquipmentCycleCountSummaryComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gs-equipment-cycle-count-summary/gs-equipment-cycle-count-summary.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gs-equipment-cycle-count-summary/gs-equipment-cycle-count-summary.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gpuSummary\":\r\n\t\t\t\twidget.ProperComponentName = \"GpuSummaryComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gpu-summary/gpu-summary.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gpu-summary/gpu-summary.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"siteActiveAlarms\":\r\n\t\t\t\twidget.ProperComponentName = \"SiteActiveAlarmsComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/site-active-alarms/site-active-alarms.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/site-active-alarms/site-active-alarms.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"siteActiveCommsLoss\":\r\n\t\t\t\twidget.ProperComponentName = \"SiteActiveCommsLossComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/site-active-comms-loss/site-active-comms-loss.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/site-active-comms-loss/site-active-comms-loss.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gseActiveAlarms\":\r\n\t\t\t\twidget.ProperComponentName = \"SiteActiveAlarmsComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/site-active-alarms/site-active-alarms.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/site-active-alarms/site-active-alarms.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gseUserDefinedActiveAlarms\":\r\n\t\t\t\twidget.ProperComponentName = \"GseOperationalAlarmsComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gse-operational-alarms/gse-operational-alarms.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gse-operational-alarms/gse-operational-alarms.component\");\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"assetTracking\":\r\n\t\t\t\twidget.ProperComponentName = \"AdveezSiteComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/adveez-site/adveez-site.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/adveez-site/adveez-site.component\");\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"gseSummary\":\r\n\t\t\t\twidget.ProperComponentName = \"AssetSummaryParentComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/asset-summary-parent/asset-summary-parent.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/asset-summary-parent/asset-summary-parent.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"pcaDischargePerformance\":\r\n\t\t\t\twidget.ProperComponentName = \"PcaDischargePerformanceComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/pca-discharge-performance/pca-discharge-performance.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/pca-discharge-performance/pca-discharge-performance.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"tagGraph\":\r\n\t\t\t\twidget.ProperComponentName = \"TagGraphComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/tag-graph/tag-graph.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/tag-graph/tag-graph.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"terminalOverview\":\r\n\t\t\t\twidget.ProperComponentName = \"TerminalOverviewComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/terminal-overview/terminal-overview.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/terminal-overview/terminal-overview.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"canvas\":\r\n\t\t\t\twidget.ProperComponentName = \"CanvasComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/canvas/canvas.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/canvas/canvas.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"rawTagDataForAsset\":\r\n\t\t\t\twidget.ProperComponentName = \"RawTagDataForAssetComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/raw-tag-data-for-asset/raw-tag-data-for-asset.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/raw-tag-data-for-asset/raw-tag-data-for-asset.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"assetGeofencing\":\r\n\t\t\t\twidget.ProperComponentName = \"AssetGeofencingComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/asset-geofencing/asset-geofencing.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/asset-geofencing/asset-geofencing.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"wheelChairSummary\":\r\n\t\t\t\twidget.ProperComponentName = \"WheelchairSummaryComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/wheelchair-summary/wheelchair-summary.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/wheelchair-summary/wheelchair-summary.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"wheelChairOverview\":\r\n\t\t\t\twidget.ProperComponentName = \"WheelchairOverviewComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/wheelchair-overview/wheelchair-overview.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/wheelchair-overview/wheelchair-overview.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"centralUnitsSummary\":\r\n\t\t\t\twidget.ProperComponentName = \"CentralunitsSummaryComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/centralunits-summary/centralunits-summary.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/centralunits-summary/centralunits-summary.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"centralUnitsOverview\":\r\n\t\t\t\twidget.ProperComponentName = \"CentralunitsOverviewComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/centralunits-overview/centralunits-overview.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/centralunits-overview/centralunits-overview.component\");\r\n\t\t\t\t(widget.deleteFunction = () => this.onDelete(widget)), (widget.editWidgetName = () => this.editWidgetName(widget));\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"gsPerfectHookup\":\r\n\t\t\t\twidget.ProperComponentName = \"PerfectTurnComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/perfect-turn/perfect-turn.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/perfect-turn/perfect-turn.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gsPerfectHookupOpportunity\":\r\n\t\t\t\twidget.ProperComponentName = \"PerfectTurnOpportunityComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/perfect-turn-opportunity/perfect-turn-opportunity.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/perfect-turn-opportunity/perfect-turn-opportunity.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gsFlightSchedule\":\r\n\t\t\t\twidget.ProperComponentName = \"FlightScheduleComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/flight-schedule/flight-schedule.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/flight-schedule/flight-schedule.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gsePeakReportData\":\r\n\t\t\t\twidget.ProperComponentName = \"GsePeakReportsDataComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gse-peak-reports-data/gse-peak-reports-data.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gse-peak-reports-data/gse-peak-reports-data.component\");\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"alarmEmailSettingsForAsset\":\r\n\t\t\t\twidget.ProperComponentName = \"AlertConfigurationComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/alert-configuration/alert-configuration.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/alert-configuration/alert-configuration.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"ahuSummary\":\r\n\t\t\t\twidget.ProperComponentName = \"AhuSummaryComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/ahu-summary/ahu-summary.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/ahu-summary/ahu-summary.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"intelligentChargingSystemSummary\":\r\n\t\t\t\twidget.ProperComponentName = \"IntelligentChargingSystemSummaryComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/intelligent-charging-system-summary/intelligent-charging-system-summary.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/intelligent-charging-system-summary/intelligent-charging-system-summary.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"testGrid\":\r\n\t\t\t\twidget.ProperComponentName = \"TestGridComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/test-grid/test-grid.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/test-grid/test-grid.component\");\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"cameraView\":\r\n\t\t\t\twidget.ProperComponentName = \"CameraViewComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/camera-view/camera-view.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/camera-view/camera-view.component\");\r\n\t\t\t\t(widget.deleteFunction = () => this.onDelete(widget)), (widget.editWidgetName = () => this.editWidgetName(widget)), (widget.siteChange = () => this.siteChange(widget)), (widget.systemChange = () => this.systemChange(widget)), (widget.assetChange = () => this.assetChange(widget));\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"sabelData\":\r\n\t\t\t\twidget.ProperComponentName = \"SabelDataComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/sabel-data/sabel-data.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/sabel-data/sabel-data.component\");\r\n\t\t\t\t(widget.deleteFunction = () => this.onDelete(widget)), (widget.editWidgetName = () => this.editWidgetName(widget)), (widget.siteChange = () => this.siteChange(widget)), (widget.systemChange = () => this.systemChange(widget)), (widget.assetChange = () => this.assetChange(widget));\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gseData\":\r\n\t\t\t\twidget.ProperComponentName = \"GSEDataComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gse-data/gse-data.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gse-data/gse-data.component\");\r\n\t\t\t\t(widget.deleteFunction = () => this.onDelete(widget)), (widget.editWidgetName = () => this.editWidgetName(widget)), (widget.siteChange = () => this.siteChange(widget)), (widget.assetChange = () => this.assetChange(widget));\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"outOfServiceAssets\":\r\n\t\t\t\twidget.ProperComponentName = \"GseOutOfServiceOrMaintenanceModeComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gse-out-of-service-or-maintenance-mode/gse-out-of-service-or-maintenance-mode.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gse-out-of-service-or-maintenance-mode/gse-out-of-service-or-maintenance-mode.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"availableAssets\":\r\n\t\t\t\twidget.ProperComponentName = \"GseAvailableAssetsComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gse-available-assets/gse-available-assets.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gse-available-assets/gse-available-assets.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"assetsInUse\":\r\n\t\t\t\twidget.ProperComponentName = \"GseAssetsInUseComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gse-assets-in-use/gse-assets-in-use.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gse-assets-in-use/gse-assets-in-use.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"tacticalEquipmentActiveAlarms\":\r\n\t\t\t\twidget.ProperComponentName = \"GseEquipmentActiveAlarmsComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gse-equipment-active-alarms/gse-equipment-active-alarms.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gse-equipment-active-alarms/gse-equipment-active-alarms.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"tacticalUserActiveAlarms\":\r\n\t\t\t\twidget.ProperComponentName = \"GseUserActiveAlarmsComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gse-user-active-alarms/gse-user-active-alarms.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gse-user-active-alarms/gse-user-active-alarms.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gsAssetsInUse\":\r\n\t\t\t\twidget.ProperComponentName = \"GsAssetsInUseComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gs-assets-in-use/gs-assets-in-use.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gs-assets-in-use/gs-assets-in-use.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gsAvailableAssets\":\r\n\t\t\t\twidget.ProperComponentName = \"GsAvailableAssetsComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gs-available-assets/gs-available-assets.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gs-available-assets/gs-available-assets.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gsOutOfService\":\r\n\t\t\t\twidget.ProperComponentName = \"GsOutOfServiceOrMaintenanceModeComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gs-out-of-service-or-maintenance-mode/gs-out-of-service-or-maintenance-mode.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gs-out-of-service-or-maintenance-mode/gs-out-of-service-or-maintenance-mode.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"pbbDocking\":\r\n\t\t\t\twidget.ProperComponentName = \"PbbDockingComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/pbb-docking/pbb-docking.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/pbb-docking/pbb-docking.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gsAlarmStatus\":\r\n\t\t\t\twidget.ProperComponentName = \"GsAlarmStatusComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gs-alarm-status/gs-alarm-status.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gs-alarm-status/gs-alarm-status.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gsCommsLoss\":\r\n\t\t\t\twidget.ProperComponentName = \"GsCommsLossComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gs-comms-loss/gs-comms-loss.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gs-comms-loss/gs-comms-loss.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"tGSTopFive\":\r\n\t\t\t\twidget.ProperComponentName = \"TacticalGstopFiveAlarmsComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/tactical-gstop-five-alarms/tactical-gstop-five-alarms.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/tactical-gstop-five-alarms/tactical-gstop-five-alarms.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"tGSETopFive\":\r\n\t\t\t\twidget.ProperComponentName = \"TacticalGsetopFiveAlarmsComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/tactical-gsetop-five-alarms/tactical-gsetop-five-alarms.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/tactical-gsetop-five-alarms/tactical-gsetop-five-alarms.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"tacticalFireEngineOverview\":\r\n\t\t\t\twidget.ProperComponentName = \"TacticalFireEngineOverviewComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/tactical-fire-engine-overview/tactical-fire-engine-overview.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/tactical-fire-engine-overview/tactical-fire-engine-overview.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"equipmentCycleCountSummary\":\r\n\t\t\t\twidget.ProperComponentName = \"EquipmentCycleCountSummaryComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/equipment-cycle-count-summary/equipment-cycle-count-summary.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/equipment-cycle-count-summary/equipment-cycle-count-summary.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gsEquipmentNotUsedLast\":\r\n\t\t\t\twidget.ProperComponentName = \"GsEquipmentNotUsedLastComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gs-equipment-not-used-last/gs-equipment-not-used-last.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gs-equipment-not-used-last/gs-equipment-not-used-last.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gseEquipmentNotUsedLast\":\r\n\t\t\t\twidget.ProperComponentName = \"GseEquipmentNotUsedLastComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gse-equipment-not-used-last/gse-equipment-not-used-last.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gse-equipment-not-used-last/gse-equipment-not-used-last.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"tacticalGSELevels\":\r\n\t\t\t\twidget.ProperComponentName = \"TacticalGseLevelsComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/tactical-gse-levels/tactical-gse-levels.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/tactical-gse-levels/tactical-gse-levels.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"tacticalFireTruckLevels\":\r\n\t\t\t\twidget.ProperComponentName = \"TacticalFireTruckLevelsComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/tactical-fire-truck-levels/tactical-fire-truck-levels.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/tactical-fire-truck-levels/tactical-fire-truck-levels.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"pcaNotMeetingPerformance\":\r\n\t\t\t\twidget.ProperComponentName = \"PcaNotMeetingPerformanceComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/pca-not-meeting-performance/pca-not-meeting-performance.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/pca-not-meeting-performance/pca-not-meeting-performance.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"tacticalOperationalAlerts\":\r\n\t\t\t\twidget.ProperComponentName = \"GseOperationalAlertsComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/gse-operational-alerts/gse-operational-alerts.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/gse-operational-alerts/gse-operational-alerts.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"tIntelligentChargingSystem\":\r\n\t\t\t\twidget.ProperComponentName = \"TacticalIntelligentChargingSystemComponent\";\r\n\t\t\t\tawait import(\"projects/shared-lib/src/lib/components/tactical-intelligent-charging-system/tactical-intelligent-charging-system.module\");\r\n\t\t\t\twidget.component = await import(\"projects/shared-lib/src/lib/components/tactical-intelligent-charging-system/tactical-intelligent-charging-system.component\");\r\n\t\t\t\tthis.settingsOnWidget(widget);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\t// widget.component = await import(`../widgets/${widget.name}/${widget.name}.component`);\r\n\t}\r\n\r\n\tsettingsOnWidget(widget: any) {\r\n\t\t(widget.deleteFunction = () => this.onDelete(widget)), \r\n\t\t(widget.editWidgetName = () => this.editWidgetName(widget)), \r\n\t\t(widget.editTimeScopeSettings = () => this.editTimeScopeSettings(widget)), \r\n\t\t(widget.editIntervalSettings = () => this.editIntervalSettings(widget)), \r\n\t\t(widget.editWidgetSettings = () => this.editWidgetSettings(widget)), \r\n\t\t(widget.invertResizeSetting = () => this.invertResizeSetting(widget)), \r\n\t\t(widget.invertDraggableSetting = () => this.invertDraggableSetting(widget)),\r\n\t\t(widget.invertRememberingOfSelectedTabIndex = () => this.widgetRememberSelectedTabIndexChanged(widget)),\r\n\t\t(widget.makeWidgetTaller = () => this.changeWidgetHeight(\"taller\", widget)), \r\n\t\t(widget.makeWidgetShorter = () => this.changeWidgetHeight(\"shorter\", widget));\r\n\t}\r\n\tfindWidgetTimeZoneName(TimeZoneId) {\r\n\t\tlet timeZoneName = this.DashboardTimeZones.find((tz) => TimeZoneId == tz.Id).Description;\r\n\t\treturn timeZoneName;\r\n\t}\r\n\r\n\tsetFileImageUploadSettings(widget: any) {\r\n\t\tvar service = this;\r\n\t\tvar entityId = widget.WidgetTypeName == \"Fleet Overview\" ? null : widget.WidgetAssetId == null ? (widget.WidgetTerminalSystemId == null ? widget.WidgetSiteId : widget.WidgetTerminalSystemId) : widget.WidgetAssetId;\r\n\t\tvar entityType = widget.WidgetTypeName == \"Fleet Overview\" ? \"AdveezAsset\" : widget.WidgetAssetId == null ? (widget.WidgetTerminalSystemId == null ? \"Site\" : \"System\") : \"Asset\";\r\n\t\tvar title: string = widget.WidgetTypeName == \"Fleet Overview\" ? \"Fleet Documentation\" : (widget.WidgetTypeName.indexOf(\"Fleet\") != -1 ? \"\" : widget.WidgetSiteName) + (widget.WidgetGateSystemName != null ? \" Gate \" + widget.WidgetGateSystemName : widget.WidgetAssetName == null ? (widget.WidgetTerminalName == null ? \" Site\" : \" Terminal \" + widget.WidgetTerminalName) : widget.WidgetAssetName) + \" Documentation\";\r\n\r\n\t\twidget.openFileImageUploadWindow = function () {\r\n\t\t\tvar sqlStatement = \"API.FileImageManagement @Type='List', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @UserId=\" + Global.User.currentUser.Id;\r\n\t\t\tservice.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": \" + sqlStatement + \" = %O\", data);\r\n\t\t\t\tservice.fileImageData = data;\r\n\t\t\t\tservice.FileImageLibraryControlObject = {\r\n\t\t\t\t\timageKeys: service.fileImageData.filter((i: any) => {\r\n\t\t\t\t\t\treturn i.ImageKey;\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t//---B\r\n\t\t\t\t\tremoveUploadFunction(deletedImageKey: string) {\r\n\t\t\t\t\t\tservice.dataService.SQLActionAsPromise(\"API.FileImageManagement @Type='Delete', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @ImageKey='\" + deletedImageKey + \"', @UserId=\" + Global.User.currentUser.Id).then((remainingFileImageKeyList: any) => {\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \": remainingFileImageKeyList after deletion: %O\", remainingFileImageKeyList);\r\n\t\t\t\t\t\t\tservice.FileImageLibraryControlObject.imageKeys = remainingFileImageKeyList;\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \": service.FileImageLibraryControlObject.imageKeys.length = \" + service.FileImageLibraryControlObject.imageKeys.length);\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \": service.FileImageLibraryControlObject = %O\", service.FileImageLibraryControlObject);\r\n\t\t\t\t\t\t\tservice.fileImageData = remainingFileImageKeyList;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\t\t\t\t\t//---B\r\n\t\t\t\t\taddUploadFunction(newImageKey: string) {\r\n\t\t\t\t\t\tservice.dataService.SQLActionAsPromise(\"API.FileImageManagement @Type='Add', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @ImageKey='\" + newImageKey + \"', @UserId=\" + Global.User.currentUser.Id).then((updatedFileImageKeyList: any) => {\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \": updatedFileImageKeyList after new file added: %O\", updatedFileImageKeyList);\r\n\t\t\t\t\t\t\tservice.FileImageLibraryControlObject.imageKeys = updatedFileImageKeyList;\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \": service.FileImageLibraryControlObject.imageKeys.length = \" + service.FileImageLibraryControlObject.imageKeys.length);\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \": service.FileImageLibraryControlObject = %O\", service.FileImageLibraryControlObject);\r\n\t\t\t\t\t\t\tservice.fileImageData = updatedFileImageKeyList;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmode: null,\r\n\t\t\t\t\tlistTitle: title,\r\n\t\t\t\t\tentityId: entityId,\r\n\t\t\t\t\tentityType: entityType,\r\n\t\t\t\t\tcloseUploadWindowFunction() {\r\n\t\t\t\t\t\tservice.FileImageLibraryControlObject = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tservice.openDialog(\"fileUpload\", widget);\r\n\t\t\t});\r\n\t\t};\r\n\t}\r\n\r\n\topenDialog(type: string, widget: any): void {\r\n\t\tvar innerWidth = window.innerWidth;\r\n\t\tif (type == \"fileUpload\") {\r\n\t\t\tconst dialogRef = this.dialog.open(FileUploadListComponent, {\r\n\t\t\t\twidth: \"70%\",\r\n\t\t\t\theight: \"70%\"\r\n\t\t\t});\r\n\r\n\t\t\tdialogRef.componentInstance.fileImageLibraryControlObject = this.FileImageLibraryControlObject;\r\n\r\n\t\t\tthis.fileUploadListComponentAfterClosedSubscription = dialogRef.afterClosed().subscribe(() => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": The dialog was closed\");\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": this.FileImageLibraryControlObject.imageKeys.length = \" + this.FileImageLibraryControlObject.imageKeys.length);\r\n\t\t\t\twidget.CountOfFilesUploaded = this.FileImageLibraryControlObject.imageKeys.length;\r\n\t\t\t\tthis.fileUploadListComponentAfterClosedSubscription.unsubscribe();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tdoKeywordFilter(searchValue: string, widgetId: any) {\r\n\t\tthis.searchString = searchValue.trim().toLocaleLowerCase();\r\n\t\tthis.searchObject = {\r\n\t\t\tsearchString: searchValue.trim().toLocaleLowerCase(),\r\n\t\t\twidgetId: widgetId\r\n\t\t};\r\n\t\t// this.searchObject.searchString = ; this.searchObject.widgetId = widgetId;\r\n\t}\r\n\r\n\tlogWidget(widget: any) {\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \": Clicked Widget data = %O\", widget);\r\n\t\t//this.widgetHeightChanged(widget);\r\n\t\tthis.signalRCore.LogActivity(\"User clicked on \" + widget.WidgetTypeName + \"...\");\r\n\t}\r\n\r\n\tinitializeTour(widget: any): void {\r\n\t\tthis.tourService.initialize([\r\n\t\t\t{\r\n\t\t\t\tanchorId: widget.WidgetId + \"-1\",\r\n\t\t\t\tcontent: \"Here you can click on the Site, Update Interval and Timescope areas to change the settings for this widget\",\r\n\t\t\t\ttitle: \"Settings\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tanchorId: widget.WidgetId + \"-2\",\r\n\t\t\t\tcontent: \"Navigate to different tabs & Widget Settings\",\r\n\t\t\t\ttitle: \"Navigation\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tanchorId: widget.WidgetId + \"-3\",\r\n\t\t\t\tcontent: \"Click on various tiles for more information\",\r\n\t\t\t\ttitle: \"Summary Info\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tanchorId: widget.WidgetId + \"-4\",\r\n\t\t\t\tcontent: \"Here you can click to change the height for this widget\",\r\n\t\t\t\ttitle: \"Change Height\"\r\n\t\t\t}\r\n\t\t]);\r\n\r\n\t\tthis.tourService.start();\r\n\t}\r\n\r\n\tgetHeight() {\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \": this.elementRef.nativeElement.innerHeight = \" + this.elementRef.nativeElement.innerHeight + \", this.elementRef.nativeElement.innerWidth = \" + this.elementRef.nativeElement.innerWidth);\r\n\r\n\t\treturn this.elementRef.nativeElement.innerHeight / this.height;\r\n\t}\r\n\r\n\titemChange(item: any) {\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \": item changed = %O\", item);\r\n\t\tlet itemCopy = item;\r\n\t\tif (!itemCopy.Id) {\r\n\t\t\t//if itemId doesn't exist, should be new widget, so let itemInit handle it.\r\n\t\t} else {\r\n\t\t\titemCopy.Width = itemCopy.cols;\r\n\t\t\titemCopy.Height = itemCopy.rows;\r\n\t\t\titemCopy.Col = itemCopy.x;\r\n\t\t\titemCopy.Row = itemCopy.y;\r\n\t\t\tthis.dashboardService.addOrUpdateDashboardWidgetItem(itemCopy);\r\n\t\t}\r\n\t}\r\n\r\n\titemResize(item: GridsterItem, itemComponent: GridsterItemComponentInterface) {\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \": itemResized %O\", item);\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \": itemComponent = %O\", itemComponent);\r\n\r\n\t\tthis.widgetResizedEvent.emit(itemComponent);\r\n\t}\r\n\r\n\titemInit(item: GridsterItem) {\r\n\t\t// console.info(\"itemInit\", item, itemComponent);\r\n\t\tlet itemCopy = item;\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \": gridsterItem = %O\", itemCopy);\r\n\r\n\t\tif (!itemCopy.Id) {\r\n\t\t\t//if itemId doesn't exist, should be new widget, so let itemInit handle it.\r\n\t\t\titemCopy.Id = this.dashboardId;\r\n\t\t\titemCopy.WidgetId = \"\";\r\n\t\t\titemCopy.Width = itemCopy.cols;\r\n\t\t\titemCopy.Height = itemCopy.rows;\r\n\t\t\titemCopy.Col = itemCopy.x;\r\n\t\t\titemCopy.Row = itemCopy.y;\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": itemCopy = %O\", itemCopy);\r\n\t\t\tthis.dashboardService.addOrUpdateDashboardWidgetItem(itemCopy);\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (this.canUserSeeWidget(this.dashboardWidgets[this.dashboardWidgets.length - 1])) this.loadEditedOrCreatedWidget(this.dashboardWidgets.length - 1);\r\n\t\t\t}, 100);\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": this.dashboardWidgets = %O\", this.dashboardWidgets);\r\n\t\t}\r\n\t}\r\n\r\n\titemRemoved(item: GridsterItem, itemComponent: GridsterItemComponentInterface) {\r\n\t\tconsole.info(\"itemRemoved\", item, itemComponent);\r\n\t\t//logic for removing\r\n\t}\r\n\r\n\tstatic itemValidate(item: GridsterItem) {\r\n\t\treturn item.cols > 0 && item.rows > 0;\r\n\t}\r\n\r\n\tdashboardWidgetToDelete(widget) {\r\n\t\t// Global.User.DebugMode && console.log(this.componentName + \": widget = %O\", widget); Global.User.DebugMode && console.log(this.componentName + \": this.dashboardWidgets = %O\", this.dashboardWidgets);\r\n\t\t_.remove(this.dashboardWidgets, function (n: any) {\r\n\t\t\treturn n.WidgetId === widget.WidgetId && n.Id === widget.Id;\r\n\t\t});\r\n\t\tthis.dashboardService.deleteDashboardWidgetItem(widget);\r\n\t}\r\n\r\n\teditWidgetName(widget) {\r\n\t\tvar editWidgetComponentModal = this.dialog.open(EditWidgetComponent, {\r\n\t\t\twidth: Global.isMobile ? \"95%\" : \"70%\",\r\n\t\t\theight: Global.isMobile ? \"95%\" : \"30%\",\r\n\t\t\tdata: { title: \"Re-Name Widget\", data: widget },\r\n\t\t\tautoFocus: false\r\n\t\t});\r\n\t\tthis.dashboardService.listOfPopupsThatAreNotAutoClosedByCLickingOutside.push(editWidgetComponentModal);\r\n\r\n\t\teditWidgetComponentModal.afterClosed().subscribe((result) => {\r\n\t\t\tif (this.debugMode) {\r\n\t\t\t\tconsole.log(\"The modal was closed\");\r\n\r\n\t\t\t\t//if not submitted, then result is undefined\r\n\t\t\t\tconsole.log(result);\r\n\t\t\t}\r\n\r\n\t\t\tif (result !== undefined) {\r\n\t\t\t\t//make call to update widget name in db, then after that, assign the value to teh widget object\r\n\t\t\t\tif (result.data !== undefined) {\r\n\t\t\t\t\twidget.WidgetName = result.data.widgetName;\r\n\t\t\t\t} else {\r\n\t\t\t\t\twidget.WidgetName = result;\r\n\t\t\t\t}\r\n\t\t\t\tlet statement = \"API.Widget_UpdateRecordByIdAndFieldName \" + widget.WidgetId + \", '\" + \"Name\" + \"', '''\" + widget.WidgetName + \"'''\";\r\n\t\t\t\tif (this.debugMode) {\r\n\t\t\t\t\tconsole.log(statement);\r\n\t\t\t\t}\r\n\t\t\t\tthis.dataService.SQLActionAsPromise(statement).then((data: any) => {\r\n\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\ttype: \"success\",\r\n\t\t\t\t\t\tmessage: \"Widget Name Changed!\"\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tsiteChange(widget: any) {\r\n\t\tvar site = widget.WidgetSiteId ? this.dataService.cache.sitesObject[widget.WidgetSiteId] : null;\r\n\t\twidget.WidgetSiteName = site?.Name;\r\n\t\tvar system = widget.WidgetGateSystemId ? this.dataService.cache.systemsObject[widget.WidgetGateSystemId] : widget.SelectedSystemId ? this.dataService.cache.systemsObject[widget.SelectedSystemId] : null;\r\n\t\twidget.WidgetGateSystemName = system?.Name;\r\n\t\tvar asset = widget.WidgetAssetId ? this.dataService.cache.assetsObject[widget.WidgetAssetId] : null;\r\n\t\twidget.WidgetAssetName = asset?.Name;\r\n\t}\r\n\r\n\tsystemChange(widget: any) {\r\n\t\tvar system = widget.WidgetGateSystemId ? this.dataService.cache.systemsObject[widget.WidgetGateSystemId] : widget.SelectedSystemId ? this.dataService.cache.systemsObject[widget.SelectedSystemId] : null;\r\n\t\twidget.WidgetGateSystemName = system?.Name;\r\n\t\tvar asset = widget.WidgetAssetId ? this.dataService.cache.assetsObject[widget.WidgetAssetId] : null;\r\n\t\twidget.WidgetAssetName = asset?.Name;\r\n\t}\r\n\r\n\tassetChange(widget: any) {\r\n\t\tvar asset = widget.WidgetAssetId ? this.dataService.cache.assetsObject[widget.WidgetAssetId] : null;\r\n\t\twidget.WidgetAssetName = asset?.Name;\r\n\t}\r\n\r\n\teditTimeScopeSettings(widget) {\r\n\t\tvar widgetSettingsScopeEditModal = this.dialog.open(WidgetTimeScopeSelectionPopupComponent, {\r\n\t\t\twidth: Global.isMobile ? \"95%\" : \"50%\",\r\n\t\t\theight: Global.isMobile ? \"95%\" : \"80%\",\r\n\t\t\tmaxHeight: \"100%\",\r\n\t\t\tmaxWidth: \"100%\",\r\n\t\t\tdata: widget,\r\n\t\t\tposition: { right: \"0\" },\r\n\t\t\thasBackdrop: false,\r\n\t\t\tdisableClose: true\r\n\t\t});\r\n\t\tthis.dashboardService.listOfPopupsThatAreNotAutoClosedByCLickingOutside.push(widgetSettingsScopeEditModal);\r\n\r\n\t\twidgetSettingsScopeEditModal.afterClosed().subscribe((result) => {});\r\n\t}\r\n\r\n\teditIntervalSettings(widget) {\r\n\t\tvar widgetSettingsIntervalEditModal = this.dialog.open(WidgetIntervalSelectionPopupComponent, {\r\n\t\t\twidth: Global.isMobile ? \"95%\" : \"50%\",\r\n\t\t\theight: Global.isMobile ? \"95%\" : \"80%\",\r\n\t\t\tmaxHeight: \"100%\",\r\n\t\t\tmaxWidth: \"100%\",\r\n\t\t\tdata: widget,\r\n\t\t\tposition: { right: \"0\" },\r\n\t\t\thasBackdrop: false,\r\n\t\t\tdisableClose: true\r\n\t\t});\r\n\t\tthis.dashboardService.listOfPopupsThatAreNotAutoClosedByCLickingOutside.push(widgetSettingsIntervalEditModal);\r\n\r\n\t\twidgetSettingsIntervalEditModal.afterClosed().subscribe((result) => {});\r\n\t}\r\n\r\n\teditWidgetSettings(widget) {\r\n\t\tvar widgetSettingsEditModal = this.dialog.open(WidgetSettingsPopupComponent, {\r\n\t\t\twidth: Global.isMobile ? \"95%\" : \"50%\",\r\n\t\t\theight: Global.isMobile ? \"95%\" : \"80%\",\r\n\t\t\tmaxHeight: \"100%\",\r\n\t\t\tmaxWidth: \"100%\",\r\n\t\t\tdata: {\r\n\t\t\t\twidget: widget,\r\n\t\t\t\twidgetType: widget.DashboardTypeId === 1 ? \"Standard\" : \"Tactical\"\r\n\t\t\t},\r\n\t\t\tposition: { right: \"0\" },\r\n\t\t\thasBackdrop: false,\r\n\t\t\tdisableClose: true,\r\n\t\t\tautoFocus: false\r\n\t\t});\r\n\t\tthis.dashboardService.listOfPopupsThatAreNotAutoClosedByCLickingOutside.push(widgetSettingsEditModal);\r\n\r\n\t\twidgetSettingsEditModal.afterClosed().subscribe((result) => {\r\n\t\t\tif (this.debugMode) {\r\n\t\t\t\tconsole.log(\"The modal was closed\");\r\n\t\t\t\t//if not submitted, then result is undefined\r\n\t\t\t\tconsole.log(result);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tonDelete(widget) {\r\n\t\tconsole.log(\"Deleting widget = %O\", widget);\r\n\r\n\t\tthis.swalWithBootstrapButtons\r\n\t\t\t.fire({\r\n\t\t\t\ttitle: \"Are you sure?\",\r\n\t\t\t\thtml: \"You want to delete the \" + widget.WidgetName + \" widget? This cannot be reversed once it's deleted.\",\r\n\t\t\t\tshowCancelButton: true,\r\n\t\t\t\tconfirmButtonText: \"Delete Widget\",\r\n\t\t\t\tcancelButtonText: \"Cancel\",\r\n\t\t\t\treverseButtons: false\r\n\t\t\t})\r\n\t\t\t.then((result) => {\r\n\t\t\t\tif (result.value) {\r\n\t\t\t\t\t// logic for deleting dashboard goes here.\r\n\t\t\t\t\tthis.dashboardWidgetToDelete(widget);\r\n\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\ttype: \"success\",\r\n\t\t\t\t\t\tmessage: \"The \" + widget.WidgetName + \" widget has been DELETED.\"\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// _.remove(this.dashboards, function(n) {\r\n\t\t\t\t\t// return n.Id === dashboard.Id;\r\n\t\t\t\t\t// });\r\n\t\t\t\t} else if (\r\n\t\t\t\t\t/* Read more about handling dismissals below */\r\n\t\t\t\t\tresult.dismiss === Swal.DismissReason.cancel\r\n\t\t\t\t) {\r\n\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\tmessage: \"The \" + widget.WidgetName + \" widget has NOT been deleted.\"\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic gridInit(grid: GridsterComponentInterface) {\r\n\t\tconsole.info(\"gridInit\", grid);\r\n\t}\r\n\r\n\tstatic gridDestroy(grid: GridsterComponentInterface) {\r\n\t\tconsole.info(\"gridDestroy\", grid);\r\n\t}\r\n\r\n\tgridSizeChanged(grid: GridsterComponentInterface) {\r\n\t\t// console.info('gridSizeChanged', grid);\r\n\t}\r\n\r\n\ttoggleAllWidgetResizingEnabled() {}\r\n\r\n\topenAddWidgetToDashboardModal() {\r\n\t\tlet dashboard = Global.User.currentUser.Dashboards.find((obj) => obj.Id == this.dashboardId);\r\n\r\n\t\tthis.DialogRef = this.dialog.open(AddWidgetToDashboardComponent, {\r\n\t\t\twidth: \"95%\",\r\n\t\t\theight: \"80%\"\r\n\t\t});\r\n\t\tthis.dashboardWidgetClickedSubscription = this.DialogRef.componentInstance.widgetClicked.subscribe((result) => {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": widgetClicked = %O\", result);\r\n\t\t\tlet widget = _.clone(result);\r\n\r\n\t\t\t///Here we will add the ability to push the new widget into the grid. we will need to write functionality to update the db on the events that detect grid changes so that the new widget is added to db when those events fire\r\n\t\t\tthis.dashboardWidgets.push(\r\n\t\t\t\t_.assign(widget, {\r\n\t\t\t\t\tcols: widget.InitialWidth,\r\n\t\t\t\t\trows: widget.InitialHeight\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\ttype: \"success\",\r\n\t\t\t\tmessage: \"Widget Successfully Added!\",\r\n\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t});\r\n\t\t\t// this.toastr.success('Widget Successfully Added!');\r\n\t\t});\r\n\r\n\t\tthis.addWidgetToDashboardAfterClosedSubscription = this.DialogRef.afterClosed().subscribe(() => {\r\n\t\t\tthis.dashboardWidgetClickedSubscription && this.dashboardWidgetClickedSubscription.unsubscribe();\r\n\t\t\tthis.addWidgetToDashboardAfterClosedSubscription && this.addWidgetToDashboardAfterClosedSubscription.unsubscribe();\r\n\t\t\t// Global.User.DebugMode && console.log(this.componentName + \": The modal was closed\");\r\n\t\t});\r\n\t}\r\n\r\n\tonDateSelectionChange(event, picker) {\r\n\t\tconsole.log(event);\r\n\t\tconsole.log(picker);\r\n\t\tlet startMS = picker === \"start\" ? event.getTime() : this.currentDashboard.CustomStartDateMS;\r\n\t\tlet endMS = picker === \"end\" ? event.getTime() : this.currentDashboard.CustomEndDateMS;\r\n\r\n\t\tif (startMS < endMS) {\r\n\t\t\tthis.isTimeSelectionValid = true;\r\n\t\t\tif (picker == \"start\") {\r\n\t\t\t\tthis.currentDashboard.CustomStartDateMS = event.getTime();\r\n\t\t\t} else if (picker == \"end\") {\r\n\t\t\t\tthis.currentDashboard.CustomEndDateMS = event.getTime();\r\n\t\t\t}\r\n\t\t\tvar sqlStatement = this.dashboardService.addOrUpdateDashboardRecord(this.dashboardService.currentDashboard);\r\n\t\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\t\tconsole.log(\"dashboard\", data);\r\n\t\t\t\tlet returnedDashboard = data.find((dashboardInstance) => {\r\n\t\t\t\t\treturn dashboardInstance.Id === this.dashboardService.currentDashboard.Id;\r\n\t\t\t\t});\r\n\t\t\t\tif (picker == \"start\") {\r\n\t\t\t\t\tthis.currentDashboard.CustomStartDateMS = returnedDashboard.CustomStartDateMS;\r\n\t\t\t\t\tthis.currentDashboard.CustomStartDate = returnedDashboard.CustomStartDate;\r\n\t\t\t\t\tthis.dashboardService.currentDashboard.CustomStartDateMS = returnedDashboard.CustomStartDateMS;\r\n\t\t\t\t\tthis.dashboardService.currentDashboard.CustomStartDate = returnedDashboard.CustomStartDate;\r\n\t\t\t\t} else if (picker == \"end\") {\r\n\t\t\t\t\tthis.currentDashboard.CustomEndDateMS = returnedDashboard.CustomEndDateMS;\r\n\t\t\t\t\tthis.currentDashboard.CustomEndDate = returnedDashboard.CustomEndDate;\r\n\t\t\t\t\tthis.dashboardService.currentDashboard.CustomEndDateMS = returnedDashboard.CustomEndDateMS;\r\n\t\t\t\t\tthis.dashboardService.currentDashboard.CustomEndDate = returnedDashboard.CustomEndDate;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\ttype: \"success\",\r\n\t\t\t\t\tmessage: \"Dashboard time scope changed to custom\",\r\n\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t});\r\n\t\t\t\tthis.dashboardTimeScopeChanged.emit(this.currentDashboard.widgets);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.isTimeSelectionValid = false;\r\n\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\ttype: \"error\",\r\n\t\t\t\tmessage: \"Dashboard time scope not changed. Please enter a valid date range.\",\r\n\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tchangeDashboardCustomTimeScope() {\r\n\t\tthis.editDashboardCustomTimeScopeModal = this.dialog.open(DashboardCustomTimescopePopupConfirmationSettingsComponent, {\r\n\t\t\twidth: \"70%\",\r\n\t\t\theight: \"70%\",\r\n\t\t\tdata: {\r\n\t\t\t\tdashboardObject: this.dashboardService.currentDashboard\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.editDashboadTimeScopeModalAfterClosedSubscription = this.editDashboardCustomTimeScopeModal.afterClosed().subscribe((result) => {\r\n\t\t\tif (result !== undefined) {\r\n\t\t\t\t// pick up rest of logic\r\n\t\t\t\tlet currentDashboardObjectCopy = _.cloneDeep(this.dashboardService.currentDashboard);\r\n\t\t\t\tcurrentDashboardObjectCopy.CustomStartDateMS = result.startDateMS;\r\n\t\t\t\tcurrentDashboardObjectCopy.CustomEndDateMS = result.endDateMS;\r\n\r\n\t\t\t\tvar sqlStatement = this.dashboardService.addOrUpdateDashboardRecord(currentDashboardObjectCopy);\r\n\t\t\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\t\t\tlet returnedDashboard = data.find((dashboardInstance) => {\r\n\t\t\t\t\t\treturn dashboardInstance.Id === this.dashboardService.currentDashboard.Id;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tthis.currentDashboard.CustomStartDateMS = returnedDashboard.CustomStartDateMS;\r\n\t\t\t\t\tthis.currentDashboard.CustomStartDate = returnedDashboard.CustomStartDate;\r\n\t\t\t\t\tthis.dashboardService.currentDashboard.CustomStartDateMS = returnedDashboard.CustomStartDateMS;\r\n\t\t\t\t\tthis.dashboardService.currentDashboard.CustomStartDate = returnedDashboard.CustomStartDate;\r\n\r\n\t\t\t\t\tthis.currentDashboard.CustomEndDateMS = returnedDashboard.CustomEndDateMS;\r\n\t\t\t\t\tthis.currentDashboard.CustomEndDate = returnedDashboard.CustomEndDate;\r\n\t\t\t\t\tthis.dashboardService.currentDashboard.CustomEndDateMS = returnedDashboard.CustomEndDateMS;\r\n\t\t\t\t\tthis.dashboardService.currentDashboard.CustomEndDate = returnedDashboard.CustomEndDate;\r\n\r\n\t\t\t\t\tthis.dashboardTimeScopeChanged.emit(this.currentDashboard.widgets);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// this.currentTimeScopeId = oldTimeScope;\r\n\t\t\t}\r\n\t\t\tthis.editDashboadTimeScopeModalAfterClosedSubscription && this.editDashboadTimeScopeModalAfterClosedSubscription.unsubscribe();\r\n\t\t});\r\n\t}\r\n\r\n\tchangeDashboardGridsterType(){\r\n\t\tlet oldGridsterType = this.dashboardObject.GridsterType;\r\n\t\tif(this.currentGridsterTypeId === this.dashboardObject.GridsterTypeId){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet currentDashboardObjectCopy = _.cloneDeep(this.dashboardService.currentDashboard);\r\n\t\tcurrentDashboardObjectCopy.GridsterTypeId = this.currentGridsterTypeId;\r\n\t\tvar sqlStatement = this.dashboardService.addOrUpdateDashboardRecord(currentDashboardObjectCopy);\r\n\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data) => {\r\n\t\t\tconsole.log(data);\r\n\t\t\tthis.dashboardObject.GridsterTypeId = this.currentGridsterTypeId;\r\n\r\n\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\ttype: \"success\",\r\n\t\t\t\tmessage: \"Dashboard grid type changed to \" + this.DashboardGridsterTypes.find(gt => gt.Id === this.currentGridsterTypeId).Name,\r\n\t\t\t\ttitle: \"Grid Type Changed\"\r\n\t\t\t});\r\n\t\t\tthis.evaluateGridsterType();\r\n\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tevaluateGridsterType(){\r\n\t\tif(this.options){\r\n\t\t\tif(this.currentGridsterTypeId === 4){\r\n\t\t\t\tthis.gridsterType = GridType.Fixed;\r\n\t\t\t} else if(this.currentGridsterTypeId === 2){\r\n\t\t\t\tthis.gridsterType = GridType.ScrollVertical;\r\n\t\t\t}\r\n\t\t\tthis.options.gridType = this.gridsterType;\r\n\r\n\t\t\tthis.options.api?.optionsChanged();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tchangeDashboardTimeScope() {\r\n\t\tlet oldTimeScope = this.dashboardObject.TimeScopeId;\r\n\t\tlet timeScopeObject;\r\n\t\tlet dashboardWidgetsThatListenToTimescopeChanges;\r\n\t\tlet timeScopes;\r\n\t\tif (this.currentTimeScopeId == this.dashboardObject.TimeScopeId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t//Tactical Dashboard\r\n\t\ttimeScopes = this.DashboardTimeScopes;\r\n\t\ttimeScopeObject = this.DashboardTimeScopes.find((ts) => ts.Id === this.currentTimeScopeId);\r\n\t\tdashboardWidgetsThatListenToTimescopeChanges = this.dashboardService.evaluateAngularDirectiveNameForTimeScopeOption(\"list\", this.dashboardWidgets);\r\n\r\n\t\t// let dashboardWidgetsThatListenToTimescopeChanges = this.dashboardWidgets.filter(dw => { return dw.AngularDirectiveName === 'tagGraph' || dw.AngularDirectiveName === 'gsEquipmentHoursOfUsage' || dw.AngularDirectiveName === 'gsEquipmentUsage' || dw.AngularDirectiveName === 'gsTopFiveAlarmTypesByEquipment' || dw.AngularDirectiveName === 'gseTopFiveAlarmTypes' || dw.AngularDirectiveName === 'gseTopFiveEquipmentAlarmTypes' || dw.AngularDirectiveName === 'gseTopFiveEquipmentAlarmTypes';\r\n\t\t// })\r\n\t\tif (dashboardWidgetsThatListenToTimescopeChanges.length === 0) {\r\n\t\t\tlet currentDashboardObjectCopy = _.cloneDeep(this.dashboardService.currentDashboard);\r\n\t\t\tcurrentDashboardObjectCopy.TimeScopeId = timeScopeObject.Id;\r\n\t\t\tvar sqlStatement = this.dashboardService.addOrUpdateDashboardRecord(currentDashboardObjectCopy);\r\n\t\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then(() => {\r\n\t\t\t\tthis.dashboardObject.TimeScopeId = this.currentTimeScopeId;\r\n\t\t\t\tlet timeScopeObject = timeScopes.find((ts) => ts.Id === this.currentTimeScopeId);\r\n\r\n\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\ttype: \"success\",\r\n\t\t\t\t\tmessage: \"Dashboard time scope changed to \" + timeScopeObject.Description,\r\n\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t});\r\n\t\t\t\t// this.toastr.success(\r\n\t\t\t\t// \t'Dashboard time scope changed to ' +\r\n\t\t\t\t// \t\ttimeScopeObject.Description\r\n\t\t\t\t// );\r\n\t\t\t\treturn;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.editDashboardTimeScopeModal = this.dialog.open(DashboardTimescopePopupConfirmationSettingsComponent, {\r\n\t\t\t\twidth: \"70%\",\r\n\t\t\t\theight: \"30%\",\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tdashboardWidgets: dashboardWidgetsThatListenToTimescopeChanges,\r\n\t\t\t\t\tselectedTimescopeObject: timeScopeObject,\r\n\t\t\t\t\ttimeScopes: timeScopes\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.editDashboadTimeScopeModalAfterClosedSubscription = this.editDashboardTimeScopeModal.afterClosed().subscribe((result) => {\r\n\t\t\t\tif (result !== undefined) {\r\n\t\t\t\t\t// pick up rest of logic\r\n\r\n\t\t\t\t\tlet currentDashboardObjectCopy = _.cloneDeep(this.dashboardService.currentDashboard);\r\n\t\t\t\t\tcurrentDashboardObjectCopy.TimeScopeId = timeScopeObject.Id;\r\n\t\t\t\t\tvar sqlStatement = this.dashboardService.addOrUpdateDashboardRecord(currentDashboardObjectCopy);\r\n\t\t\t\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then(() => {\r\n\t\t\t\t\t\tthis.dashboardObject.TimeScopeId = this.currentTimeScopeId;\r\n\t\t\t\t\t\tlet timeScopeObject = timeScopes.find((ts) => ts.Id === this.currentTimeScopeId);\r\n\t\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\ttype: \"success\",\r\n\t\t\t\t\t\t\tmessage: \"Dashboard time scope changed to \" + timeScopeObject.Description,\r\n\t\t\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t// this.toastr.success(\r\n\t\t\t\t\t\t// \t'Dashboard time scope changed to ' +\r\n\t\t\t\t\t\t// \t\ttimeScopeObject.Description\r\n\t\t\t\t\t\t// );\r\n\t\t\t\t\t\tlet changedWidgets = result.dashboardWidgets.filter((dw) => {\r\n\t\t\t\t\t\t\tconsole.log(dw);\r\n\t\t\t\t\t\t\treturn dw.isTimeScopeSelected === true && dw.TimeScopeId !== timeScopeObject.Id;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif (changedWidgets.length > 0) {\r\n\t\t\t\t\t\t\tchangedWidgets.forEach((cw, index) => {\r\n\t\t\t\t\t\t\t\tlet statement = \"API.DashboardUpdateWidgetRecordSettings \" + \"@ParentDashboardId = \" + cw.Id + \", @Id = \" + cw.WidgetId;\r\n\t\t\t\t\t\t\t\tif (_.isNil(cw.SiteList)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetSiteList = \" + cw.SiteList;\r\n\t\t\t\t\t\t\t\t} else if (!_.isNil(cw.SiteList)) {\r\n\t\t\t\t\t\t\t\t\tif (typeof cw.SiteList === \"string\") {\r\n\t\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetSiteList = '\" + cw.SiteList + \"'\";\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tcw.SiteListAsString = cw.SiteList.join();\r\n\t\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetSiteList = '\" + cw.SiteListAsString + \"'\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.WidgetSiteId)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetSiteId = \" + cw.WidgetSiteId;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.WidgetTerminalSystemId)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetTerminalSystemId = \" + cw.WidgetTerminalSystemId;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.WidgetGateSystemId)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetGateSystemId = \" + cw.WidgetGateSystemId;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.WidgetAssetId)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetAssetSystemId = \" + cw.WidgetAssetId;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.TimeZoneId) && Global.User.isLoggedInAsDifferentUser == false) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetTimeZoneId = \" + cw.TimeZoneId;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tstatement = statement + \", @widgetTimeScopeId = \" + this.currentTimeScopeId + \", @selectedTabIndex = \" + cw.SelectedTabIndex;\r\n\r\n\t\t\t\t\t\t\t\tthis.dataService.SQLActionAsPromise(statement).then(() => {\r\n\t\t\t\t\t\t\t\t\tlet timeScopeObjectChanged = timeScopes.find((ts) => ts.Id === this.currentTimeScopeId);\r\n\r\n\t\t\t\t\t\t\t\t\tcw.TimeScopeId = this.currentTimeScopeId;\r\n\t\t\t\t\t\t\t\t\tcw.DashboardTimeScopeDays = timeScopeObjectChanged.Days;\r\n\t\t\t\t\t\t\t\t\tcw.DashboardTimeScopeDescription = timeScopeObjectChanged.Description;\r\n\t\t\t\t\t\t\t\t\tcw.DashboardTimeScopeId = timeScopeObjectChanged.Id;\r\n\t\t\t\t\t\t\t\t\t// cw.DashboardTimeScopeDays =\r\n\t\t\t\t\t\t\t\t\tlet widgetIndexChanged = this.dashboardWidgets.findIndex((widget) => {\r\n\t\t\t\t\t\t\t\t\t\treturn widget.WidgetId === cw.WidgetId;\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tthis.dashboardWidgets[widgetIndexChanged].TimeScopeId = this.currentTimeScopeId;\r\n\t\t\t\t\t\t\t\t\tthis.dashboardWidgets[widgetIndexChanged].DashboardTimeScopeDays = timeScopeObjectChanged.Days;\r\n\t\t\t\t\t\t\t\t\tthis.dashboardWidgets[widgetIndexChanged].DashboardTimeScopeDescription = timeScopeObjectChanged.Description;\r\n\t\t\t\t\t\t\t\t\tthis.dashboardWidgets[widgetIndexChanged].DashboardTimeScopeId = timeScopeObjectChanged.Id;\r\n\t\t\t\t\t\t\t\t\tif (index === changedWidgets.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\tthis.dashboardWidgets.forEach((dashWid) => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (_.isNil(dashWid.TimeScopeId)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tchangedWidgets.push(dashWid);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\tthis.dashboardTimeScopeChanged.emit(changedWidgets);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.currentTimeScopeId = oldTimeScope;\r\n\t\t\t\t}\r\n\t\t\t\tthis.editDashboadTimeScopeModalAfterClosedSubscription && this.editDashboadTimeScopeModalAfterClosedSubscription.unsubscribe();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tchangeDashboardTimeZone() {\r\n\t\tlet oldTimeZoneId = this.dashboardObject.TimeZoneId;\r\n\r\n\t\tif (this.currentTimeZoneId == this.dashboardObject.TimeZoneId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet timeZoneObject = this.DashboardTimeZones.find((tz) => tz.Id === this.currentTimeZoneId);\r\n\r\n\t\tconsole.log(this.dashboardWidgets);\r\n\t\tlet dashboardWidgetsThatListenToTimezoneChanges = this.dashboardService.evaluateAngularDirectiveNameForTimeZoneOption(\"list\", this.dashboardWidgets);\r\n\r\n\t\tif (dashboardWidgetsThatListenToTimezoneChanges.length === 0) {\r\n\t\t\tlet currentDashboardObjectCopy = _.cloneDeep(this.dashboardService.currentDashboard);\r\n\t\t\tcurrentDashboardObjectCopy.TimeZoneId = timeZoneObject.Id;\r\n\t\t\tvar sqlStatement = this.dashboardService.addOrUpdateDashboardRecord(currentDashboardObjectCopy);\r\n\t\t\tconsole.log(sqlStatement);\r\n\r\n\t\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\t\tconsole.log(data);\r\n\t\t\t\tthis.dashboardObject.TimeZoneId = this.currentTimeZoneId;\r\n\t\t\t\tthis.currentDashboardTimeZoneName = this.DashboardTimeZones.find((tz) => tz.Id == this.currentTimeZoneId).Description;\r\n\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\ttype: \"success\",\r\n\t\t\t\t\tmessage: \"Dashboard time zone changed to \" + this.currentDashboardTimeZoneName,\r\n\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t});\r\n\t\t\t\t// this.toastr.success(\r\n\t\t\t\t// \t'Dashboard time zone changed to ' +\r\n\t\t\t\t// \t\tthis.currentDashboardTimeZoneName\r\n\t\t\t\t// );\r\n\t\t\t\treturn;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.editDashboardTimeZoneModal = this.dialog.open(DashboardTimezonePopupConfirmationSettingsComponent, {\r\n\t\t\t\twidth: \"70%\",\r\n\t\t\t\theight: \"30%\",\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tdashboardWidgets: dashboardWidgetsThatListenToTimezoneChanges,\r\n\t\t\t\t\tselectedTimezoneObject: timeZoneObject,\r\n\t\t\t\t\ttimeZones: this.DashboardTimeZones\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.editDashboardTimeZoneModalAfterClosedSubscription = this.editDashboardTimeZoneModal.afterClosed().subscribe((result) => {\r\n\t\t\t\tconsole.log(result);\r\n\t\t\t\tconsole.log(this);\r\n\t\t\t\tif (result !== undefined) {\r\n\t\t\t\t\tlet currentDashboardObjectCopy = _.cloneDeep(this.dashboardService.currentDashboard);\r\n\t\t\t\t\tcurrentDashboardObjectCopy.TimeZoneId = timeZoneObject.Id;\r\n\t\t\t\t\tvar sqlStatement = this.dashboardService.addOrUpdateDashboardRecord(currentDashboardObjectCopy);\r\n\t\t\t\t\tconsole.log(sqlStatement);\r\n\r\n\t\t\t\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\t\t\t\tconsole.log(data);\r\n\t\t\t\t\t\tthis.dashboardObject.TimeZoneId = this.currentTimeZoneId;\r\n\t\t\t\t\t\tthis.currentDashboardTimeZoneName = this.DashboardTimeZones.find((tz) => tz.Id == this.currentTimeZoneId).Description;\r\n\t\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\ttype: \"success\",\r\n\t\t\t\t\t\t\tmessage: \"Dashboard time zone changed to \" + this.currentDashboardTimeZoneName,\r\n\t\t\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t// this.toastr.success(\r\n\t\t\t\t\t\t// \t'Dashboard time zone changed to ' +\r\n\t\t\t\t\t\t// \t\tthis.currentDashboardTimeZoneName\r\n\t\t\t\t\t\t// );\r\n\t\t\t\t\t\tlet changedWidgets = result.dashboardWidgets.filter((dw) => {\r\n\t\t\t\t\t\t\treturn dw.isTimeZoneSelected === true && dw.TimeZoneId !== timeZoneObject.Id;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tconsole.log(changedWidgets);\r\n\t\t\t\t\t\tif (changedWidgets.length > 0) {\r\n\t\t\t\t\t\t\tchangedWidgets.forEach((cw, index) => {\r\n\t\t\t\t\t\t\t\tlet statement = \"API.DashboardUpdateWidgetRecordSettings \" + \"@ParentDashboardId = \" + cw.Id + \", @Id = \" + cw.WidgetId;\r\n\t\t\t\t\t\t\t\tif (_.isNil(cw.SiteList)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetSiteList = \" + cw.SiteList;\r\n\t\t\t\t\t\t\t\t} else if (!_.isNil(cw.SiteList)) {\r\n\t\t\t\t\t\t\t\t\tcw.SiteListAsString = cw.SiteList.join();\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetSiteList = '\" + cw.SiteListAsString + \"'\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.WidgetSiteId)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetSiteId = \" + cw.WidgetSiteId;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.WidgetTerminalSystemId)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetTerminalSystemId = \" + cw.WidgetTerminalSystemId;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.WidgetGateSystemId)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetGateSystemId = \" + cw.WidgetGateSystemId;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.WidgetAssetId)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetAssetSystemId = \" + cw.WidgetAssetId;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.TimeScopeId)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetTimeScopeId = \" + cw.TimeScopeId;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tstatement = statement + \", @widgetTimeZoneId = \" + this.currentTimeZoneId + \", @selectedTabIndex = \" + cw.SelectedTabIndex;\r\n\r\n\t\t\t\t\t\t\t\tthis.dataService.SQLActionAsPromise(statement).then(() => {\r\n\t\t\t\t\t\t\t\t\tcw.TimeZoneId = this.currentTimeZoneId;\r\n\t\t\t\t\t\t\t\t\tlet widgetIndexChanged = this.dashboardWidgets.findIndex((widget) => {\r\n\t\t\t\t\t\t\t\t\t\treturn widget.WidgetId === cw.WidgetId;\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tthis.dashboardWidgets[widgetIndexChanged].TimeZoneId = this.currentTimeZoneId;\r\n\t\t\t\t\t\t\t\t\tif (index === changedWidgets.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\tthis.dashboardWidgets.forEach((dashWid) => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (_.isNil(dashWid.TimeZoneId)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tchangedWidgets.push(dashWid);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\tthis.dashboardTimeZoneChanged.emit(changedWidgets);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.currentTimeZoneId = oldTimeZoneId;\r\n\t\t\t\t}\r\n\t\t\t\tthis.editDashboardTimeZoneModalAfterClosedSubscription && this.editDashboardTimeZoneModalAfterClosedSubscription.unsubscribe();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tchangeDashboardUpdateInterval() {\r\n\t\tlet oldTimeZoneId = this.dashboardObject.UpdateIntervalId;\r\n\r\n\t\tif (this.updateIntervalId == this.dashboardObject.UpdateIntervalId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet updateIntervalObject = Global.User.currentUser.TacticalDashboardUpdateIntervals.find((tz) => tz.Id === this.updateIntervalId);\r\n\r\n\t\tconsole.log(this.dashboardWidgets);\r\n\t\tlet dashboardWidgetsThatListenToUpdateIntervalChanges = this.dashboardService.evaluateAngularDirectiveNameForUpdateIntervalOption(\"list\", this.dashboardWidgets);\r\n\r\n\t\tif (dashboardWidgetsThatListenToUpdateIntervalChanges.length === 0) {\r\n\t\t\tlet currentDashboardObjectCopy = _.cloneDeep(this.dashboardService.currentDashboard);\r\n\t\t\tcurrentDashboardObjectCopy.UpdateIntervalId = updateIntervalObject.Id;\r\n\t\t\tvar sqlStatement = this.dataService.addOrUpdateDashboardRecord(currentDashboardObjectCopy);\r\n\t\t\tconsole.log(sqlStatement);\r\n\r\n\t\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\t\tconsole.log(data);\r\n\t\t\t\tthis.dashboardObject.UpdateIntervalId = this.updateIntervalId;\r\n\t\t\t\tthis.currentUpdateIntervalName = Global.User.currentUser.TacticalDashboardUpdateIntervals.find((tz) => tz.Id == this.updateIntervalId).Description;\r\n\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\ttype: \"success\",\r\n\t\t\t\t\tmessage: \"Update Interval Changed To \" + this.currentUpdateIntervalName,\r\n\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t});\r\n\t\t\t\t// this.toastr.success(\r\n\t\t\t\t// \t'Update Interval Changed To ' +\r\n\t\t\t\t// \t\tthis.currentUpdateIntervalName\r\n\t\t\t\t// );\r\n\t\t\t\treturn;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.editUpdateIntervalModal = this.dialog.open(TacticalDashboardIntervalPopupConfirmationSettingsComponent, {\r\n\t\t\t\twidth: \"70%\",\r\n\t\t\t\theight: \"30%\",\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tdashboardWidgets: dashboardWidgetsThatListenToUpdateIntervalChanges,\r\n\t\t\t\t\tselectedUpdateIntervalObject: updateIntervalObject,\r\n\t\t\t\t\tupdateIntervals: Global.User.currentUser.TacticalDashboardUpdateIntervals\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.editDashboardUpdateIntervalModalSubscription = this.editUpdateIntervalModal.afterClosed().subscribe((result) => {\r\n\t\t\t\tconsole.log(result);\r\n\t\t\t\tconsole.log(this);\r\n\t\t\t\tif (result !== undefined) {\r\n\t\t\t\t\tlet currentDashboardObjectCopy = _.cloneDeep(this.dashboardService.currentDashboard);\r\n\t\t\t\t\tcurrentDashboardObjectCopy.UpdateIntervalId = updateIntervalObject.Id;\r\n\t\t\t\t\tvar sqlStatement = this.dataService.addOrUpdateDashboardRecord(currentDashboardObjectCopy);\r\n\t\t\t\t\tconsole.log(sqlStatement);\r\n\r\n\t\t\t\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\t\t\t\tconsole.log(data);\r\n\t\t\t\t\t\tthis.dashboardObject.UpdateIntervalId = this.updateIntervalId;\r\n\t\t\t\t\t\tthis.currentUpdateIntervalName = Global.User.currentUser.TacticalDashboardUpdateIntervals.find((tz) => tz.Id == this.updateIntervalId).Description;\r\n\t\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\ttype: \"success\",\r\n\t\t\t\t\t\t\tmessage: \"Update Interval Changed To \" + this.currentUpdateIntervalName,\r\n\t\t\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t// this.toastr.success(\r\n\t\t\t\t\t\t// \t'Update Interval Changed To ' +\r\n\t\t\t\t\t\t// \t\tthis.currentUpdateIntervalName\r\n\t\t\t\t\t\t// );\r\n\t\t\t\t\t\tlet changedWidgets = result.dashboardWidgets.filter((dw) => {\r\n\t\t\t\t\t\t\treturn dw.isUpdateIntervalSelected === true && dw.UpdateIntervalId !== updateIntervalObject.Id;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"changedWidgets = %O\", changedWidgets);\r\n\t\t\t\t\t\tif (changedWidgets.length > 0) {\r\n\t\t\t\t\t\t\tchangedWidgets.forEach((cw, index) => {\r\n\t\t\t\t\t\t\t\tlet statement = \"API.DashboardUpdateWidgetRecordSettings \" + \"@ParentDashboardId = \" + cw.Id + \", @Id = \" + cw.WidgetId;\r\n\t\t\t\t\t\t\t\tif (_.isNil(cw.SiteList)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetSiteList = \" + cw.SiteList;\r\n\t\t\t\t\t\t\t\t} else if (!_.isNil(cw.SiteList)) {\r\n\t\t\t\t\t\t\t\t\tif (typeof cw.SiteList !== \"string\") {\r\n\t\t\t\t\t\t\t\t\t\tcw.SiteListAsString = cw.SiteList.join();\r\n\t\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetSiteList = '\" + cw.SiteListAsString + \"'\";\r\n\t\t\t\t\t\t\t\t\t} else if (typeof cw.SiteList === \"string\") {\r\n\t\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetSiteList = '\" + cw.SiteList + \"'\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.WidgetSiteId)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetSiteId = \" + cw.WidgetSiteId;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.WidgetAssetTypeId)) {\r\n\t\t\t\t\t\t\t\t\tstatement + \", @widgetSiteId = \" + cw.WidgetSiteId + \", @widgetAssetTypeId = \" + cw.WidgetAssetTypeId;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.WidgetTerminalSystemId)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetTerminalSystemId = \" + cw.WidgetTerminalSystemId;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.WidgetGateSystemId)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetGateSystemId = \" + cw.WidgetGateSystemId;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.WidgetAssetId)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetAssetSystemId = \" + cw.WidgetAssetId;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.TimeScopeId)) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetTimeScopeId = \" + cw.TimeScopeId;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!_.isNil(cw.TimeZoneId) && Global.User.isLoggedInAsDifferentUser == false) {\r\n\t\t\t\t\t\t\t\t\tstatement = statement + \", @widgetTimeZoneId = \" + cw.TimeZoneId;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tstatement = statement + \", @widgetUpdateIntervalId = \" + this.updateIntervalId + \", @selectedTabIndex = \" + cw.SelectedTabIndex;\r\n\r\n\t\t\t\t\t\t\t\tthis.dataService.SQLActionAsPromise(statement).then(() => {\r\n\t\t\t\t\t\t\t\t\tcw.UpdateIntervalId = this.updateIntervalId;\r\n\t\t\t\t\t\t\t\t\tlet widgetIndexChanged = this.dashboardWidgets.findIndex((widget) => {\r\n\t\t\t\t\t\t\t\t\t\treturn widget.WidgetId === cw.WidgetId;\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tthis.dashboardWidgets[widgetIndexChanged].UpdateIntervalId = this.updateIntervalId;\r\n\t\t\t\t\t\t\t\t\tif (index === changedWidgets.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\tthis.dashboardWidgets.forEach((dashWid) => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (_.isNil(dashWid.UpdateIntervalId)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tchangedWidgets.push(dashWid);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t// this.dashboardTimeZoneChanged.emit(changedWidgets);\r\n\t\t\t\t\t\t\t\t\t\tthis.dashboardUpdateIntervalChanged.emit(changedWidgets);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.currentTimeZoneId = oldTimeZoneId;\r\n\t\t\t\t}\r\n\t\t\t\tthis.editDashboardUpdateIntervalModalSubscription && this.editDashboardUpdateIntervalModalSubscription.unsubscribe();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\twidgetDragEnabledChanged(widget) {\r\n\t\tthis.options.api.optionsChanged();\r\n\t\tthis.itemChange(widget);\r\n\t\tif ((widget.dragEnabled === true || widget.resizeEnabled === true) && this.dashboardLocked === true) {\r\n\t\t\tthis.widgetMovementRecentlyChanged = true;\r\n\t\t\tthis.dashboardLocked = false;\r\n\t\t} else if (widget.dragEnabled === false && widget.resizeEnabled === false && this.dashboardLocked === false) {\r\n\t\t\tthis.widgetMovementRecentlyChanged = true;\r\n\t\t\tlet dashboardLocked = true;\r\n\t\t\tthis.dashboardWidgets.forEach((widget) => {\r\n\t\t\t\tif (widget.dragEnabled === true || widget.resizeEnabled === true) {\r\n\t\t\t\t\tdashboardLocked = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (dashboardLocked === true) {\r\n\t\t\t\tthis.dashboardLocked = true;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\twidgetRememberSelectedTabIndexChanged(widget) {\r\n\t\tthis.itemChange(widget);\r\n\t}\r\n\r\n\tinvertResizeSetting(widgetObject) {\r\n\t\tif (widgetObject.resizeEnabled === true || widgetObject.resizeEnabled === undefined || widgetObject.resizeEnabled === null) {\r\n\t\t\twidgetObject.resizeEnabled = false;\r\n\t\t} else if (widgetObject.resizeEnabled === false) {\r\n\t\t\twidgetObject.resizeEnabled = true;\r\n\t\t}\r\n\t\tthis.widgetResizeEnabledChanged(widgetObject);\r\n\t}\r\n\r\n\tinvertDraggableSetting(widgetObject) {\r\n\t\tif (widgetObject.dragEnabled === true || widgetObject.dragEnabled === undefined || widgetObject.dragEnabled === null) {\r\n\t\t\twidgetObject.dragEnabled = false;\r\n\t\t} else if (widgetObject.dragEnabled === false) {\r\n\t\t\twidgetObject.dragEnabled = true;\r\n\t\t}\r\n\t\tthis.widgetDragEnabledChanged(widgetObject);\r\n\t}\r\n\r\n\twidgetResizeEnabledChanged(widget) {\r\n\t\tthis.options.api.optionsChanged();\r\n\t\tthis.itemChange(widget);\r\n\t\tif ((widget.dragEnabled === true || widget.resizeEnabled === true) && this.dashboardLocked === true) {\r\n\t\t\tthis.widgetMovementRecentlyChanged = true;\r\n\t\t\tthis.dashboardLocked = false;\r\n\t\t} else if (widget.dragEnabled === false && widget.resizeEnabled === false && this.dashboardLocked === false) {\r\n\t\t\tthis.widgetMovementRecentlyChanged = true;\r\n\t\t\tlet dashboardLocked = true;\r\n\t\t\tthis.dashboardWidgets.forEach((widget) => {\r\n\t\t\t\tif (widget.dragEnabled === true || widget.resizeEnabled === true) {\r\n\t\t\t\t\tdashboardLocked = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (dashboardLocked === true) {\r\n\t\t\t\tthis.dashboardLocked = true;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tchangeWidgetHeight(changeRequested: string, widget) {\r\n\t\tif (changeRequested === \"taller\") {\r\n\t\t\twidget.rows = widget.rows + 2;\r\n\t\t\twidget.Height = widget.Height + 2;\r\n\t\t\t// make widget taller\r\n\t\t} else if (changeRequested === \"shorter\") {\r\n\t\t\t// if(widget.rows < 8) {\r\n\t\t\t// \tGlobal.User.DebugMode &&\r\n\t\t\t// console.log(\r\n\t\t\t// \tthis.componentName + \"widget minimum height reached=\", widget.rows);\r\n\t\t\t// \treturn;\r\n\t\t\t// }\r\n\t\t\t// make widget smaller\r\n\t\t\twidget.rows = widget.rows - 2;\r\n\t\t\twidget.Height = widget.Height - 2;\r\n\t\t}\r\n\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"widget height =\", widget.rows);\r\n\r\n\t\tthis.widgetHeightChanged(widget);\r\n\t}\r\n\r\n\tAddGraphWidgetToDashboard() {\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \": Adding graph widget to dashboard\");\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \": this.dataService.cache.widgetTypes = %O\", this.dataService.cache.widgetTypes);\r\n\r\n\t\tconst tagGraphWidgetType = this.dataService.cache.widgetTypes.filter((n) => {\r\n\t\t\treturn n.AngularDirectiveName == \"tagGraph\";\r\n\t\t});\r\n\r\n\t\tlet tagGraphWidgetObject = _.cloneDeep(tagGraphWidgetType[0]);\r\n\t\ttagGraphWidgetObject.WidgetTypeId = tagGraphWidgetObject.Id;\r\n\t\ttagGraphWidgetObject.cols = tagGraphWidgetObject.InitialWidth;\r\n\t\ttagGraphWidgetObject.rows = tagGraphWidgetObject.InitialHeight;\r\n\t\tdelete tagGraphWidgetObject.Id;\r\n\t\ttagGraphWidgetObject.WidgetId = \"\";\r\n\t\ttagGraphWidgetObject.WidgetName = tagGraphWidgetObject.Name;\r\n\t\ttagGraphWidgetObject.dragEnabled = true;\r\n\t\ttagGraphWidgetObject.resizeEnabled = true;\r\n\t\ttagGraphWidgetObject.graphId = uuidv4();\r\n\t\tthis.dashboardWidgets.push(tagGraphWidgetObject);\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \": tagGraphWidgetObject = %O\", tagGraphWidgetObject);\r\n\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\ttype: \"success\",\r\n\t\t\tmessage: \"Charting Widget Added!\",\r\n\t\t\ttitle: \"Dashboards\"\r\n\t\t});\r\n\t\t// this.toastr.success('Charting Widget Added!');\r\n\t\tthis.options.api.optionsChanged();\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \": tagGraphWidgetType = %O\", tagGraphWidgetType);\r\n\t}\r\n\r\n\tClearChartSelections() {\r\n\t\tthis.dataService.tempTagsToChart = [];\r\n\t}\r\n\r\n\tchangedOptions() {\r\n\t\tif (this.options.api && this.options.api.optionsChanged) {\r\n\t\t\tthis.options.api.optionsChanged();\r\n\t\t}\r\n\t}\r\n\r\n\tremoveItem($event, item) {\r\n\t\t$event.preventDefault();\r\n\t\t$event.stopPropagation();\r\n\t\tthis.gridsterDashboard.splice(this.gridsterDashboard.indexOf(item), 1);\r\n\t}\r\n\r\n\taddItem() {\r\n\t\t// this.dashboardWidgets.push({ cols: 5, rows: 5 });\r\n\t}\r\n\r\n\twidgetHeightChanged(widget) {\r\n\t\tthis.options.api.optionsChanged();\r\n\t\tthis.itemChange(widget);\r\n\t}\r\n\r\n\r\n\r\n\topenNotesPopup(widget){\r\n\r\n\t\tlet entityData = {\r\n\t\t\tEntityId: widget.WidgetAssetId,\r\n\t\t\tEntityName: widget.WidgetAssetName,\r\n\t\t\tEntityLogTypeId: 1, //Asset\r\n\t\t}\r\n\r\n\t\tlet filteredLogs = \tthis.dataService.filterNotesForWidget(widget);\r\n\t\tvar logsArray = filteredLogs?.select((visiblelog: any) => {\r\n\t\t\t\tvar EntityLogTypeName = this.dataService.cache.entityLogTypesObject[visiblelog.EntityLogTypeId]?.Name;\r\n\r\n\t\t\t\tvar assetName;\r\n\r\n\t\t\t\tif(EntityLogTypeName == \"Asset\") {\r\n\r\n\t\t\t\t\tif(this.dataService.cache.assetsObject[visiblelog.EntityId].Name == \"PBB\" ||\r\n\t\t\t\t\t\tthis.dataService.cache.assetsObject[visiblelog.EntityId].Name == \"GPU\" ||\r\n\t\t\t\t\t\tthis.dataService.cache.assetsObject[visiblelog.EntityId].Name == \"PCA\" ||\r\n\t\t\t\t\t\tthis.dataService.cache.assetsObject[visiblelog.EntityId].Name == \"AHU\"\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tassetName = this.dataService.cache.assetsObject[visiblelog.EntityId].Site.Name + \" \" +\r\n\t\t\t\t\t\t\t\t\t\tthis.dataService.cache.assetsObject[visiblelog.EntityId].ParentSystem.Name + \" \" +\r\n\t\t\t\t\t\t\t\t\t\tthis.dataService.cache.assetsObject[visiblelog.EntityId].Name;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tassetName = this.dataService.cache.assetsObject[visiblelog.EntityId].Name;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar output = {\r\n\t\t\t\t\tId: visiblelog.Id,\r\n\t\t\t\t\tDescription: visiblelog.Description,\r\n\t\t\t\t\tCreationDate: visiblelog.CreationDate,\r\n\t\t\t\t\tCreatorUserId: visiblelog.CreatorUserId,\r\n\t\t\t\t\tCreatorName: this.dataService.cache.people.firstOrDefault((person: any) => { return person.UserId == visiblelog.CreatorUserId })?.FullName,\r\n\t\t\t\t\tLastModifiedDate: visiblelog.LastModifiedDate,\r\n\t\t\t\t\tLastModifiedName: this.dataService.cache.people.firstOrDefault((person: any) => { return person.UserId == visiblelog.LastModifiedUserId })?.FullName,\r\n\t\t\t\t\tEntityLogTypeName: EntityLogTypeName,\r\n\t\t\t\t\tAssetName: assetName,\r\n\t\t\t\t\tCountOfFilesUploaded: visiblelog.CountOfFilesUploaded,\r\n\t\t\t\t\tCountOfLogComments: visiblelog.CountOfLogComments,\r\n\t\t\t\t\tEntityId: visiblelog.EntityId,\r\n\t\t\t\t\tEntityLogTypeId: visiblelog.EntityLogTypeId,\r\n\t\t\t\t\tIsPrivate: visiblelog.IsPrivate,\r\n\t\t\t\t\tKeywords: visiblelog.Keywords,\r\n\t\t\t\t};\r\n\t\t\t\treturn output;\r\n\t\t\t}).toArray();\r\n\r\n\r\n\t\tconst dlg = this.dialog.open(DialogModalParentComponent, {\r\n\t\t\twidth: Global.isMobile ? '100%' : '80%',\r\n\t\t\theight: Global.isMobile ? '90%' : '90%',\r\n\t\t\tdata: {\r\n\t\t\t\tgraphId: uuidv4(),\r\n\t\t\t\tgroupable: false,\r\n\t\t\t\tgroupColumns: [],\r\n\t\t\t\tpopupTitle: widget.WidgetAssetId ? 'Logbook for Asset: ' + widget.WidgetAssetName : 'Logbook',\r\n\t\t\t\tWidgetName: 'Kendo-Grid',\r\n\t\t\t\tdescription: 'Notes list',\r\n\t\t\t\ttableStructure: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Id\",\r\n\t\t\t\t\t\ttitle: \"Id\",\r\n\t\t\t\t\t\t_width: 50,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"CreatorName\",\r\n\t\t\t\t\t\ttitle: \"Creator\",\r\n\t\t\t\t\t\t_width: 75,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"AssetName\",\r\n\t\t\t\t\t\ttitle: \"Asset\",\r\n\t\t\t\t\t\t_width: 75,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Description\",\r\n\t\t\t\t\t\ttitle: \"Description\",\r\n\t\t\t\t\t\t_width: 300,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"LastModifiedDate\",\r\n\t\t\t\t\t\ttitle: \"Last Modified Date\",\r\n\t\t\t\t\t\t_width: 75\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"EditNote\",\r\n\t\t\t\t\t\ttitle: \"Actions\",\r\n\t\t\t\t\t\t_width: 100,\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t\ttableData: logsArray,\r\n\t\t\t\tentityData: entityData,\r\n\t\t\t\twidget: widget,\r\n\t\t\t\tcanCreateDashboardWidgetFromPopup: false,\r\n\t\t\t},\r\n\t\t\tmaxWidth: '100vw',\r\n\t\t\tmaxHeight: '100vh',\r\n\t\t});\r\n\t}\r\n}\r\n","\r\n
          \r\n\t
          \r\n\t\t
          \r\n\t\t\t
          \r\n\t\t\t\t\r\n\t\t\t\t
          \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t

          Dashboard Locked

          \r\n\t\t\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t
          \r\n\t\t\t\t\t\r\n\t\t\t\t\t\tSelect a Dashboard Timezone\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{ timeZone.Description }}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t\t\t\r\n\t\t\t\t\t\tSelect a Dashboard Timescope\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{ timeWindow.Description }}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
          \r\n\r\n\t\t\t\t
          \r\n\t\t\t\t\t\r\n\t\t\t\t\t\tSelect a Dashboard Update Interval\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{ updateInterval.Description }}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
          \r\n\r\n\r\n\r\n\r\n\t\t\t\t
          \r\n\t\t\t\t\t\r\n\t\t\t\t\t\tSelect a Dashboard Grid Type\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{ gridsterType.DisplayName }}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
          \r\n\r\n\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t
          \r\n\t\t
          \r\n\r\n\t\t
          \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
          \r\n\r\n\r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t{{ widget.WidgetName }}\r\n\t\t\t\t\t\t\t\t:  \r\n\t\t\t\t\t\t\t\t\t\t{{ dataService.returnSiteListAsArrayOfNames(widget.SiteList).length > 6\r\n\t\t\t\t\t\t\t\t\t\t\t? (dataService.returnSiteListAsArrayOfNames(widget.SiteList) | slice : 0 :\r\n\t\t\t\t\t\t\t\t\t\t\t6) + \"...\" : dataService.returnSiteListAsArrayOfNames(widget.SiteList) }}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t:  {{widget.FleetName}}\r\n\t\t\t\t\t\t\t\t:  {{ widget.WidgetSiteName\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t Gate {{ widget.WidgetGateSystemName\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t Terminal   {{ widget.WidgetTerminalName\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t {{ widget.WidgetGateSystemName }}  {{ widget.WidgetAssetName }}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t {{\r\n\t\t\t\t\t\t\t\t\t\twidget.WidgetAssetName }}\r\n\t\t\t\t\t\t\t\t 0\"\r\n\t\t\t\t\t\t\t\t\tstyle=\"margin-left: 20px\">{{\r\n\t\t\t\t\t\t\t\t\t\tfindHiddenColumnCount(widget.WidgetId)?.hiddenColumnArray.length }} column{{\r\n\t\t\t\t\t\t\t\t\t\tfindHiddenColumnCount(widget.WidgetId)?.hiddenColumnArray.length > 1 ? \"s\" : \"\"\r\n\t\t\t\t\t\t\t\t\t\t}} hidden\r\n\t\t\t\t\t\t\t\tFlight Data Updated: {{\r\n\t\t\t\t\t\t\t\t\t\tfindFlightDataTimer(widget.WidgetId)?.timer }}\r\n\t\t\t\t\t\t\t
          \r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
          \r\n\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
          {{\r\n\t\t\t\t\t\t\t\t\tdashboardService.determineTimeZoneType(widget) }}
          \r\n\t\t\t\t\t\t\t
          \r\n\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t{{ dashboardService.determineWhatTimeScopeForWidget(widget) }}\r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\tYou do not have access to this widget. \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
          \r\n\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t
          \r\n\t\t
          \r\n\t
          \r\n\t
          \r\n\t\t\r\n\t\t
          \r\n\t\t\t
          \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
          \r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\t{{ widget.WidgetName }}\r\n\t\t\t\t\t\t\t\t\t\t:  \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ dataService.returnSiteListAsArrayOfNames(widget.SiteList).length\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t> 3 ? (dataService.returnSiteListAsArrayOfNames(widget.SiteList) |\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tslice : 0 : 3) + \"...\" :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdataService.returnSiteListAsArrayOfNames(widget.SiteList) }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t:  {{widget.FleetName}}\r\n\t\t\t\t\t\t\t\t\t\t:  {{ widget.WidgetSiteName }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t Gate {{ widget.WidgetGateSystemName\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t Terminal   {{ widget.WidgetTerminalName\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t {{ widget.WidgetGateSystemName }}  {{ widget.WidgetAssetName\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t {{\r\n\t\t\t\t\t\t\t\t\t\t\t\twidget.WidgetAssetName }}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t 0\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"margin-left: 20px\">{{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfindHiddenColumnCount(widget.WidgetId)?.hiddenColumnArray.length }} column{{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfindHiddenColumnCount(widget.WidgetId)?.hiddenColumnArray.length > 1 ? \"s\" : \"\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}} hidden\r\n\t\t\t\t\t\t\t\t\t\t\t\tFlight Data Updated: {{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfindFlightDataTimer(widget.WidgetId)?.timer }}\r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\t   = 1\r\n\t\t\t\t\t\t\t\t\t\t\t}\" class=\"tim-icons icon-notes clipboard-larger\" aria-hidden=\"true\" style=\"cursor: pointer\"\r\n\t\t\t\t\t\t\t\t\t\t\ttitle=\"Attach files to this Asset. {{ widget.CountOfFilesUploaded > 0 ? widget.CountOfFilesUploaded + ' file' + (widget.CountOfFilesUploaded > 1 ? 's' : '') + ' uploaded currently.' : '' }}\">\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t
          \r\n\r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\tYou do not have access to this widget.\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
          \r\n\r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t
          \r\n\t\t
          \r\n\t
          \r\n
          \r\n","import {\r\n\tComponent,\r\n\tOnInit,\r\n\tOutput,\r\n\tEventEmitter,\r\n\tOnDestroy,\r\n\tOptional,\r\n\tInject,\r\n\tViewChild,\r\n} from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { GroupDescriptor } from '@progress/kendo-data-query';\r\n\r\nimport { of, from } from 'rxjs';\r\nimport {\r\n\tmap,\r\n\tfilter,\r\n\ttap,\r\n\tgroupBy,\r\n\tmergeMap,\r\n\treduce,\r\n\ttoArray,\r\n\tswitchMap,\r\n} from 'rxjs/operators';\r\nimport _ from 'lodash';\r\n\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\nimport { KendoGridParentComponent } from '../kendo-grid-parent/kendo-grid-parent.component';\r\n@Component({\r\n\tselector: 'lib-add-widget-to-dashboard',\r\n\ttemplateUrl: './add-widget-to-dashboard.component.html',\r\n\tstyleUrls: ['./add-widget-to-dashboard.component.scss'],\r\n})\r\nexport class AddWidgetToDashboardComponent implements OnInit, OnDestroy {\r\n\t@ViewChild('widgetTypeGrid') widgetTypeGrid: KendoGridParentComponent;\r\n\r\n\tdisplayedColumns: string[] = ['name', 'description'];\r\n\tdataSource: Object[];\r\n\twidgetTypeGroups: any;\r\n\tisLoading: boolean;\r\n\ttheme: string;\r\n\tpublic gridSettings = {\r\n\t\tstate: {\r\n\t\t\tskip: 0,\r\n\t\t\tfilter: {\r\n\t\t\t\tlogic: 'and',\r\n\t\t\t\tfilters: [],\r\n\t\t\t},\r\n\t\t\tgroup: [\r\n\t\t\t\t{\r\n\t\t\t\t\tfield: 'Category',\r\n\t\t\t\t\tdir: 'asc',\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\tcolumnsConfig: [\r\n\t\t\t{\r\n\t\t\t\tfield: 'Name',\r\n\t\t\t\ttitle: 'Name',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 150,\r\n\t\t\t\thidden: false,\r\n\t\t\t\tminResizableWidth: 40,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'Description',\r\n\t\t\t\ttitle: 'Description',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 150,\r\n\t\t\t\tminResizableWidth: 150,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'TrainingLesson',\r\n\t\t\t\ttitle: 'Training Lesson',\r\n\t\t\t\tfilterable: false,\r\n\t\t\t\t_width: 50,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'Category',\r\n\t\t\t\ttitle: 'Category',\r\n\t\t\t\thidden: true,\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 100,\r\n\t\t\t\tminResizableWidth: 150,\r\n\t\t\t},\r\n\t\t],\r\n\t};\r\n\r\n\t@Output() widgetClicked = new EventEmitter();\r\n\tcolorChangedSubscription: any;\r\n\twidgetTypesInOneArray: any[];\r\n\tgridView: any;\r\n\tconstructor(\r\n\t\tpublic dialogRef: MatDialogRef,\r\n\t\tpublic dataService: DataService,\r\n\t\t@Optional() @Inject(MAT_DIALOG_DATA) public dashboardData: any\r\n\t) {}\r\n\r\n\tprivate videoKeyURL: string = Global.Video.serverArchiveUrl;\r\n\tprivate accessToken: string = Global.User.currentUser.ODataAccessToken;\r\n\r\n\tconsoleElement(element) {\r\n\t\tconsole.log(element);\r\n\t}\r\n\tcanUserAddWidget(widgetTypeId) {\r\n\t\tif (\r\n\t\t\tGlobal.User.isAdmin ||\r\n\t\t\tGlobal.User.currentUser.Security.Aggregate.Collections.WidgetTypeIds.includes(\r\n\t\t\t\twidgetTypeId\r\n\t\t\t)\r\n\t\t) {\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// return true;\r\n\t}\r\n\r\n\tcanUserAddWidgetText(element) {\r\n\t\tif (\r\n\t\t\tGlobal.User.isAdmin ||\r\n\t\t\tGlobal.User.currentUser.Security.Aggregate.Collections.WidgetTypeIds.includes(\r\n\t\t\t\telement.WidgetTypeId\r\n\t\t\t)\r\n\t\t) {\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t// return false;\r\n\t}\r\n\tngOnInit() {\r\n\t\tvar service = this;\r\n\t\tconsole.log(service.dashboardData);\r\n\t\tconsole.log(Global);\r\n\t\tif (Global.Theme === 'light') {\r\n\t\t\tservice.theme = 'light';\r\n\t\t} else if (Global.Theme === 'dark') {\r\n\t\t\tservice.theme = 'dark';\r\n\t\t}\r\n\r\n\t\tservice.colorChangedSubscription =\r\n\t\t\tservice.dataService.colorChanged$.subscribe((data: any) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(data);\r\n\t\t\t\tif (data === 'light') {\r\n\t\t\t\t\tservice.theme = 'light';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tservice.theme = 'dark';\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\tservice.isLoading = true;\r\n\t\tservice.widgetTypeGroups = [];\r\n\t\tvar widgetTypeTabGroupsWithWidgetTypes = [];\r\n\r\n\t\tvar wt = service.dataService.cache.widgetTypes;\r\n\r\n\t\twidgetTypeTabGroupsWithWidgetTypes =\r\n\t\t\tservice.dataService.cache.widgetTypeTabGroups\r\n\t\t\t\t.select((group: any) => {\r\n\t\t\t\t\tvar newGroup: any = {};\r\n\t\t\t\t\t(newGroup.Id = group.Id),\r\n\t\t\t\t\t\t(newGroup.Name = group.Name),\r\n\t\t\t\t\t\t(newGroup.Ordinal = group.Ordinal),\r\n\t\t\t\t\t\t(newGroup.V2Compatible = group.V2Compatible),\r\n\t\t\t\t\t\t(newGroup.WidgetTypeTabGroup = group),\r\n\t\t\t\t\t\t(newGroup.WidgetTypes =\r\n\t\t\t\t\t\t\tservice.dataService.cache.widgetTypes\r\n\t\t\t\t\t\t\t\t.where((wt: any) => {\r\n\t\t\t\t\t\t\t\t\treturn wt.WidgetTypeTabGroupId == group.Id;\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.select((wt: any) => {\r\n\t\t\t\t\t\t\t\t\tvar newWidgetType = {\r\n\t\t\t\t\t\t\t\t\t\tId: wt.Id,\r\n\t\t\t\t\t\t\t\t\t\tName: wt.Name,\r\n\t\t\t\t\t\t\t\t\t\tDashboardTypeId: wt.DashboardTypeId,\r\n\t\t\t\t\t\t\t\t\t\tV2Compatible: wt.V2Compatible,\r\n\t\t\t\t\t\t\t\t\t\tWidgetType: wt,\r\n\t\t\t\t\t\t\t\t\t\tTrainingCourseLesson:\r\n\t\t\t\t\t\t\t\t\t\t\tservice.dataService.cache.trainingCourseLessons.firstOrDefault(\r\n\t\t\t\t\t\t\t\t\t\t\t\t(lesson: any) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlesson.WidgetTypeId ==\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twt.Id\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t\t\tVisible: false,\r\n\t\t\t\t\t\t\t\t\t\tIsAvailableToAll: wt.IsAvailableToAll,\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\treturn newWidgetType;\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.select((wt: any) => {\r\n\t\t\t\t\t\t\t\t\tif (!Global.User.isAdmin) {\r\n\t\t\t\t\t\t\t\t\t\tif (\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tGlobal.User.currentUser.Security.Aggregate.Collections.WidgetTypeIds.includes(\r\n\t\t\t\t\t\t\t\t\t\t\t\twt.Id\r\n\t\t\t\t\t\t\t\t\t\t\t) &&\r\n\t\t\t\t\t\t\t\t\t\t\twt.V2Compatible === true\r\n\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\twt.Visible = true;\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\twt.Visible = false;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tif (\r\n\r\n\t\t\t\t\t\t\t\t\t\t\twt.V2Compatible === true\r\n\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\twt.Visible = true;\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\twt.Visible = false;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn wt;\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.where((wt: any) => {\r\n\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\twt.Visible == true &&\r\n\t\t\t\t\t\t\t\t\t\twt.IsAvailableToAll == true\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.toArray());\r\n\t\t\t\t\treturn newGroup;\r\n\t\t\t\t})\r\n\r\n\t\t\t\t.orderBy((g: any) => {\r\n\t\t\t\t\treturn g.Ordinal;\r\n\t\t\t\t})\r\n\t\t\t\t.toArray();\r\n\r\n\t\tvar widgetTypeGroupsFromDataCache = widgetTypeTabGroupsWithWidgetTypes\r\n\t\t\t.where((group: any) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\tgroup.V2Compatible == true && group.WidgetTypes.length > 0\r\n\t\t\t\t);\r\n\t\t\t})\r\n\t\t\t.toArray();\r\n\r\n\t\t//-- changing the widget type groups and list of dashboard widgets to come from the data cache rather than the stored procedure...\r\n\t\tthis.widgetTypeGroups = widgetTypeGroupsFromDataCache;\r\n\t\tthis.widgetTypesInOneArray = [];\r\n\t\tif (Global.User.currentUser.OrganizationUsesAirportSites == false) {\r\n\t\t\t//-- we're limiting the list of widget types to only Admin, the Fleet-specific ones, and eliminating the others. This is the quickest way to hide the Gate System and Airport Site widgets.\r\n\t\t\t//-- if the user is in an organization that does use gate system assets, then we're not changing the widgetTypeGroups. Leaving everything the same. --Kirk T. Sherer, August 26, 2024. \r\n\t\t\tvar newGroups = this.widgetTypeGroups.where((group:any) => { return group.Id == 5 || group.Id == 8 || group.Id == 9 }).toArray();\r\n\t\t\tthis.widgetTypeGroups = newGroups;\r\n\t\t}\r\n\t\tthis.widgetTypeGroups.forEach((group: any) => {\r\n\t\t\tgroup.WidgetTypes.forEach((widgetType: any) => {\r\n\t\t\t\tif (Global.User.currentUser.OrganizationUsesAirportSites == false) {\r\n\t\t\t\t\tif (widgetType.Name != \"Sabel Data\" ) {\r\n\t\t\t\t\t\twidgetType.Category = group.Name;\r\n\t\t\t\t\t\twidgetType.Description = widgetType.WidgetType.Description;\r\n\t\t\t\t\t\tthis.widgetTypesInOneArray.push(widgetType);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\twidgetType.Category = group.Name;\r\n\t\t\t\t\twidgetType.Description = widgetType.WidgetType.Description;\r\n\t\t\t\t\tthis.widgetTypesInOneArray.push(widgetType);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\tconsole.log(\"add-widget-to-dashboard: accessible widget types = %O\", this.widgetTypesInOneArray);\r\n\r\n\t\tthis.isLoading = false;\r\n\t}\r\n\r\n\tloadVideo(widgetType: any) {\r\n\t\tvar url =\r\n\t\t\tthis.videoKeyURL +\r\n\t\t\twidgetType.TrainingCourseLesson.VideoImageKey +\r\n\t\t\t'.mp4' +\r\n\t\t\t'?accessToken=' +\r\n\t\t\tencodeURIComponent(this.accessToken);\r\n\r\n\t\tvar intHSize = window.screen.availWidth * 0.7;\r\n\t\tvar intVSize = window.screen.availHeight * 0.7;\r\n\t\tvar intTop = (window.screen.availHeight - intVSize) / 2;\r\n\t\tvar intLeft = (window.screen.availWidth - intHSize) / 2;\r\n\t\tvar sngWindow_Size_Percentage = 0.85;\r\n\r\n\t\tvar strFeatures = '';\r\n\t\tintHSize = window.screen.availWidth * sngWindow_Size_Percentage * 0.6;\r\n\t\tintVSize = window.screen.availHeight * sngWindow_Size_Percentage;\r\n\t\tintTop = (window.screen.availHeight - intVSize) / 2;\r\n\t\tintLeft = (window.screen.availWidth - intHSize) / 2;\r\n\t\tstrFeatures =\r\n\t\t\t'top=' +\r\n\t\t\tintTop +\r\n\t\t\t',left=' +\r\n\t\t\tintLeft +\r\n\t\t\t',height=' +\r\n\t\t\tintVSize +\r\n\t\t\t',width=' +\r\n\t\t\tintHSize +\r\n\t\t\t', scrollbars=yes, resizable=yes, location=no';\r\n\r\n\t\tvar SRWindow = window.open(url, 'SRWindow', strFeatures);\r\n\t}\r\n\r\n\taddWidgetToDashboard(widgetToAdd: any) {\r\n\t\tconsole.log(widgetToAdd);\r\n\r\n\t\tlet clonedWidget = {\r\n\t\t\tAngularDirectiveName: widgetToAdd.WidgetType.AngularDirectiveName,\r\n\t\t\tCategoryPath: widgetToAdd.WidgetType.CategoryPath,\r\n\t\t\tCreationDate: widgetToAdd.WidgetType.CreationDate,\r\n\t\t\tDashboardTypeId: widgetToAdd.WidgetType.DashboardTypeId,\r\n\t\t\tDataTypeCode: widgetToAdd.WidgetType.DataTypeCode,\r\n\t\t\tDateCompleted: widgetToAdd.WidgetType.DateCompleted,\r\n\t\t\tDescription: widgetToAdd.WidgetType.Description,\r\n\t\t\tDeveloperPersonId: widgetToAdd.WidgetType.DeveloperPersonId,\r\n\t\t\tDevelopmentPriority: widgetToAdd.WidgetType.DevelopmentPriority,\r\n\t\t\tEstimatedDateOfCompletion:\r\n\t\t\t\twidgetToAdd.WidgetType.EstimatedDateOfCompletion,\r\n\t\t\tHasSettings: widgetToAdd.WidgetType.HasSettings,\r\n\t\t\tInitialHeight: widgetToAdd.WidgetType.InitialHeight,\r\n\t\t\tInitialWidth: widgetToAdd.WidgetType.InitialWidth,\r\n\t\t\tIsAvailableToAdmin: widgetToAdd.WidgetType.IsAvailableToAdmin,\r\n\t\t\tIsAvailableToAll: widgetToAdd.WidgetType.IsAvailableToAll,\r\n\t\t\tIsHiddenSystemType: widgetToAdd.WidgetType.IsHiddenSystemType,\r\n\t\t\tMnemonic: widgetToAdd.WidgetType.Mnemonic,\r\n\t\t\tOrdinal: widgetToAdd.WidgetType.Ordinal,\r\n\t\t\tWidgetTypeId: widgetToAdd.WidgetType.Id,\r\n\t\t\tWidgetTypeName: widgetToAdd.WidgetType.Name,\r\n\t\t\tWidgetTypeTabGroupId: widgetToAdd.WidgetType.WidgetTypeTabGroupId,\r\n\t\t\tWidgetTypeTabGroupName:\r\n\t\t\t\twidgetToAdd.WidgetType.WidgetTypeTabGroupName,\r\n\t\t\tWidgetTypeTabGroupOrdinal:\r\n\t\t\t\twidgetToAdd.WidgetType.WidgetTypeTabGroupOrdinal,\r\n\t\t\tWidgetTypeTabGroupV2Compatible:\r\n\t\t\t\twidgetToAdd.WidgetType.WidgetTypeTabGroupV2Compatible,\r\n\t\t\tWidgetTypeV2Compatible: widgetToAdd.WidgetType.V2Compatible,\r\n\t\t};\r\n\r\n\t\tthis.widgetClicked.emit(clonedWidget);\r\n\t\t// console.log(this.widgetTypeGroups);\r\n\t}\r\n\r\n\tonCancel() {\r\n\t\tthis.dialogRef.close();\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tGlobal.User.DebugMode && console.log('ngOnDestroy invoked...');\r\n\t\tif (this.colorChangedSubscription) {\r\n\t\t\tthis.colorChangedSubscription.unsubscribe();\r\n\t\t}\r\n\t}\r\n\r\n\t// \tAngularDirectiveName: \"siteActiveAlarms\"\r\n\t// CategoryPath: \"Site\"\r\n\t// CreationDate: null\r\n\t// DashboardTypeId: 1\r\n\t// DataTypeCode: null\r\n\t// DateCompleted: null\r\n\t// Description: null\r\n\t// DeveloperPersonId: null\r\n\t// DevelopmentPriority: 11\r\n\t// EstimatedDateOfCompletion: null\r\n\t// HasSettings: true\r\n\t// InitialHeight: 12\r\n\t// InitialWidth: 10\r\n\t// IsAvailableToAdmin: true\r\n\t// IsAvailableToAll: true\r\n\t// IsHiddenSystemType: false\r\n\t// Mnemonic: \"SAA\"\r\n\t// Ordinal: 0\r\n\t// WidgetTypeId: 51\r\n\t// WidgetTypeName: \"Site Active Alarms\"\r\n\t// WidgetTypeTabGroupId: 2\r\n\t// WidgetTypeTabGroupName: \"Site Charts\"\r\n\t// WidgetTypeTabGroupOrdinal: 2\r\n\t// WidgetTypeTabGroupV2Compatible: true\r\n\t// WidgetTypeV2Compatible: true\r\n}\r\n","
          \r\n\t
          \r\n\t\t
          \r\n\t\t\t
          Select Widget to Add to Dashboard
          \r\n\t\t
          \r\n\r\n\t\t\r\n\t
          \r\n\t\r\n
          \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport _ from 'lodash';\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\nimport { DashboardService } from 'projects/shared-lib/src/lib/services/dashboard.service';\r\n\r\n@Component({\r\n\tselector: 'lib-dashboard-timezone-popup-confirmation-settings',\r\n\ttemplateUrl:\r\n\t\t'./dashboard-timezone-popup-confirmation-settings.component.html',\r\n\tstyleUrls: [\r\n\t\t'./dashboard-timezone-popup-confirmation-settings.component.scss',\r\n\t],\r\n})\r\nexport class DashboardTimezonePopupConfirmationSettingsComponent\r\n\timplements OnInit\r\n{\r\n\tconstructor(\r\n\t\t@Inject(MAT_DIALOG_DATA) public inputObject: any,\r\n\t\tpublic dialogRef: MatDialogRef,\r\n\t\tprivate dataService: DataService,\r\n\t\tpublic toastr: ToastrService,\r\n\t\tprivate dashboardService: DashboardService\r\n\t) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.inputObject.dashboardWidgets.forEach((widget) => {\r\n\t\t\tlet currentlyAssignedTimeZone = this.inputObject.timeZones.find(\r\n\t\t\t\t(tz) => tz.Id === widget.TimeZoneId\r\n\t\t\t);\r\n\t\t\tif (!_.isNil(currentlyAssignedTimeZone)) {\r\n\t\t\t\twidget.TimeZoneDescription =\r\n\t\t\t\t\tcurrentlyAssignedTimeZone.Description;\r\n\t\t\t\tif (\r\n\t\t\t\t\tcurrentlyAssignedTimeZone.Id ===\r\n\t\t\t\t\tthis.inputObject.selectedTimezoneObject.Id\r\n\t\t\t\t) {\r\n\t\t\t\t\twidget.isTimeZoneSelected = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\twidget.isTimeZoneSelected = false;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\twidget.isTimeZoneSelected = true;\r\n\t\t\t\twidget.TimeZoneDescription = '';\r\n\t\t\t}\r\n\t\t});\r\n\t\tconsole.log(this.inputObject);\r\n\t}\r\n\r\n\tonCancel() {\r\n\t\tthis.dialogRef.close();\r\n\t}\r\n\r\n\tsubmitAndClose() {\r\n\t\tthis.dialogRef.close(this.inputObject);\r\n\t}\r\n\r\n\tselectAllAndClose() {\r\n\t\tthis.inputObject.dashboardWidgets.forEach((widget) => {\r\n\t\t\twidget.isTimeZoneSelected = true;\r\n\t\t});\r\n\t\tthis.submitAndClose();\r\n\t}\r\n}\r\n","
          \r\n\t
          \r\n
          \r\n
          \r\n Time Zone Settings Confirmation\r\n\r\n\r\n\r\n
          \r\n\r\n
          \r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\r\n\r\n\r\n\r\n\t
          \r\n\r\n\t
          \r\n\t\t
          \r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t
          \r\n\t\t
          \r\n\t\t\t\r\n\t\t\tSubmit and Close\r\n\t\t\r\n\t\t\r\n\t\t\tSelect All and Close\r\n\t\t\r\n\t\t
          \r\n\r\n\t
          \r\n
          \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport _ from 'lodash';\r\nimport { DashboardService } from 'projects/shared-lib/src/lib/services/dashboard.service';\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\nimport { IGlobal } from '../../_models/global.model';\r\n\r\n@Component({\r\n\tselector: 'lib-dashboard-timescope-popup-confirmation-settings',\r\n\ttemplateUrl:\r\n\t\t'./dashboard-timescope-popup-confirmation-settings.component.html',\r\n\tstyleUrls: [\r\n\t\t'./dashboard-timescope-popup-confirmation-settings.component.scss',\r\n\t],\r\n})\r\nexport class DashboardTimescopePopupConfirmationSettingsComponent\r\n\timplements OnInit\r\n{\r\n\tpublic global: IGlobal = Global;\r\n\r\n\tconstructor(\r\n\t\t@Inject(MAT_DIALOG_DATA) public inputObject: any,\r\n\t\tpublic dialogRef: MatDialogRef,\r\n\t\tprivate dataService: DataService,\r\n\t\tpublic toastr: ToastrService,\r\n\t\tprivate dashboardService: DashboardService\r\n\t) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.inputObject.dashboardWidgets.forEach((widget) => {\r\n\t\t\tlet currentlyAssignedTimeScope = this.inputObject.timeScopes.find(\r\n\t\t\t\t(ts) => ts.Id === widget.TimeScopeId\r\n\t\t\t);\r\n\t\t\tif (!_.isNil(currentlyAssignedTimeScope)) {\r\n\t\t\t\twidget.TimeScopeDescription =\r\n\t\t\t\t\tcurrentlyAssignedTimeScope.Description;\r\n\t\t\t\tif (\r\n\t\t\t\t\tcurrentlyAssignedTimeScope.Id ===\r\n\t\t\t\t\tthis.inputObject.selectedTimescopeObject.Id\r\n\t\t\t\t) {\r\n\t\t\t\t\twidget.isTimeScopeSelected = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\twidget.isTimeScopeSelected = false;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\twidget.isTimeScopeSelected = true;\r\n\t\t\t\twidget.TimeScopeDescription = '';\r\n\t\t\t}\r\n\t\t});\r\n\t\tconsole.log(this.inputObject);\r\n\t}\r\n\r\n\tonCancel() {\r\n\t\tthis.dialogRef.close();\r\n\t}\r\n\r\n\tsubmitAndClose() {\r\n\t\tthis.dialogRef.close(this.inputObject);\r\n\t}\r\n\r\n\tselectAllAndClose() {\r\n\t\tthis.inputObject.dashboardWidgets.forEach((widget) => {\r\n\t\t\twidget.isTimeScopeSelected = true;\r\n\t\t});\r\n\t\tthis.submitAndClose();\r\n\t}\r\n}\r\n","\r\n\t\r\n\t\t
          \r\n\t\t\t\r\n\t\t\t\tTime Scope Settings Confirmation\r\n\t\t\t\r\n\r\n\t\t
          \r\n\r\n\t\t\r\n\t\t\t
          \r\n\t\t\t\t\r\n\t\t\t
          \r\n\t\t\r\n\t
          \r\n\t
          \r\n\t\t
          \r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t
          \r\n\t\t
          \r\n\t\t\t\r\n\t\t\tSubmit and Close\r\n\t\t\r\n\t\t\r\n\t\t\tSelect All and Close\r\n\t\t\r\n\t\t
          \r\n\r\n\t
          \r\n
          \r\n","import { Injectable } from '@angular/core';\r\nimport { DataService } from './data.service';\r\n\r\nimport { Subject, Observable, of } from 'rxjs';\r\nimport { Global } from '../_constants/global.variables';\r\n\r\n@Injectable()\r\n@Injectable()\r\nexport class SystemService {\r\n\tpublic themeChange$: any;\r\n\r\n\tconstructor(private dataService: DataService) {\r\n\t\tthis.themeChange$ = of(Global.CompanyLogoImage);\r\n\t}\r\n}\r\n","export function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {\r\n if (parentModule) {\r\n throw new Error(`${moduleName} has already been loaded. Import modules in the AppModule only.`);\r\n }\r\n}\r\n","import { Type } from \"@angular/core\";\r\n\r\nexport class DialogComponentItem {\r\n\tconstructor(public component: Type, public name: string, public title: string, public data: any) { }\r\n}\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { Global } from '../_constants/global.variables';\r\nimport { DialogComponentItem } from '../_models/dialog-component-item.model';\r\n// import { GseSummaryComponent } from '../gse-summary/gse-summary.component';\r\n// import { PCASummaryComponent } from '../pca-summary/pca-summary.component';\r\n// import { PBBSummaryComponent } from '../pbb-summary/pbb-summary.component';\r\n// import { GPUSummaryComponent } from '../gpu-summary/gpu-summary.component';\r\n// import { KendoUiGenericPopupComponent } from '../../components/kendo-ui-generic-popup/kendo-ui-generic-popup.component';\r\n// import { Global } from '../../../../../app/_constants/global.variables';\r\nimport { Router } from '@angular/router';\r\n// import { TagGraphSingleTagComponent } from '../../components/tag-graph-single-tag/tag-graph-single-tag.component';\r\nimport { FileUploadListMobileComponent } from '../../lib/components/file-upload-list-mobile/file-upload-list-mobile.component';\r\n// import { GsTopFiveAlarmsSummaryComponent } from '../gs-top-five-alarms-summary/gs-top-five-alarms-summary.component';\r\n// import { GsTopFiveEquipmentAlarmsSummaryComponent } from '../gs-top-five-equipment-alarms-summary/gs-top-five-equipment-alarms-summary.component';\r\n// import { GseTopFiveAlarmsSummaryComponent } from '../gse-top-five-alarms-summary/gse-top-five-alarms-summary.component';\r\n// import { GseTopFiveEquipmentAlarmsSummaryComponent } from '../gse-top-five-equipment-alarms-summary/gse-top-five-equipment-alarms-summary.component';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class DialogService {\r\n\tpublic components: Array;\r\n\r\n\tconstructor(private router: Router, private zone: NgZone) {\r\n\t\tthis.components = [\r\n\t\t\tnew DialogComponentItem(\r\n\t\t\t\tFileUploadListMobileComponent,\r\n\t\t\t\t'Documentation',\r\n\t\t\t\t'Documentation',\r\n\t\t\t\tnull\r\n\t\t\t),\r\n\t\t\t// new DialogComponentItem(GseSummaryComponent, 'GSE-Summary', 'GSE Summary', null),\r\n\t\t\t// new DialogComponentItem(PBBSummaryComponent, 'PBB-Summary', 'PBB Summary', null),\r\n\t\t\t// new DialogComponentItem(PCASummaryComponent, 'PCA-Summary', 'PCA Summary', null),\r\n\t\t\t// new DialogComponentItem(GPUSummaryComponent, 'GPU-Summary', 'GPU Summary', null),\r\n\t\t\t// new DialogComponentItem(KendoUiGenericPopupComponent, 'Kendo-Grid', 'Kendo Grid', null),\r\n\t\t\t// new DialogComponentItem(TagGraphSingleTagComponent, 'TagGraphSingleTag', 'Tag Graph', null),\r\n\r\n\t\t\t// new DialogComponentItem(GsTopFiveAlarmsSummaryComponent, 'GS-Top-Five-Alarms-Summary', 'GS Top Five Alarms Summary', null),\r\n\t\t\t// new DialogComponentItem(GsTopFiveEquipmentAlarmsSummaryComponent, 'GS-Top-Five-Equipment-Alarms-Summary', 'GS Top Five Equipment Alarms Summary', null),\r\n\t\t\t// new DialogComponentItem(GseTopFiveAlarmsSummaryComponent, 'GSE-Top-Five-Alarms-Summary', 'GSE Top Five Alarms Summary', null),\r\n\t\t\t// new DialogComponentItem(GseTopFiveEquipmentAlarmsSummaryComponent, 'GSE-Top-Five-Equipment-Alarms-Summary', 'GSE Top Five Equipment Alarms Summary', null),\r\n\t\t];\r\n\t}\r\n\r\n\tgetComponentByName(name: string) {\r\n\t\tif (name) {\r\n\t\t\tvar item = this.components.filter(\r\n\t\t\t\t(component: DialogComponentItem) => {\r\n\t\t\t\t\treturn component.name == name;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t\tif (item) {\r\n\t\t\t\treturn item[0];\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\topenDialogWindow(componentDataObject: any) {\r\n\t\tGlobal.Dialog.lastRouteURL = this.router.url;\r\n\t\tGlobal.User.DebugMode &&\r\n\t\t\tconsole.log(\r\n\t\t\t\t'Global.Dialog.lastRouteURL = ' + Global.Dialog.lastRouteURL\r\n\t\t\t);\r\n\r\n\t\tGlobal.User.DebugMode &&\r\n\t\t\tconsole.log('componentDataObject = %O', componentDataObject);\r\n\r\n\t\tGlobal.Dialog.currentDialogObject = componentDataObject;\r\n\t\tGlobal.Dialog.componentName = componentDataObject.WidgetName;\r\n\r\n\t\t//const myDialogComponentItem: DialogComponentItem = new DialogComponentItem(GseSummaryComponent, componentDataObject);\r\n\t\tGlobal.User.DebugMode &&\r\n\t\t\tconsole.log(\r\n\t\t\t\t'going to layout/dialog with componentDataObject... Global.Dialog: %O',\r\n\t\t\t\tGlobal.Dialog\r\n\t\t\t);\r\n\r\n\t\tthis.zone.run(() =>\r\n\t\t\tthis.router.navigate([\r\n\t\t\t\t'/layout/dialog',\r\n\t\t\t\t{ dataObject: componentDataObject },\r\n\t\t\t])\r\n\t\t);\r\n\t}\r\n}\r\n","import { NgModule, Optional, SkipSelf } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { AuthenticationService } from \"./authentication.service\";\r\nimport { UtilityService } from \"./utility.service\";\r\nimport { DataService } from \"./data.service\";\r\nimport { SystemService } from \"./system.service\";\r\n\r\nimport { throwIfAlreadyLoaded } from \"./module-import-guard\";\r\nimport { SecurityService } from \"./security.service\";\r\nimport { CacheUtilityService } from \"./cache-utility.service\";\r\nimport { IndexedDBService } from \"./indexedDB.service\";\r\nimport { DashboardService } from \"./dashboard.service\";\r\nimport { DisplaySetupService } from \"./display-setup.service\";\r\nimport { FileUploadService } from './file-upload.service';\r\n\r\nimport { RouteToExternalUrlService } from './route-to-external-url.service';\r\nimport { SignalRCoreService } from './signalr-core.service';\r\nimport { DialogService } from './dialog.service';\r\nimport { GseService } from './gse.service';\r\nimport { KendoSettingsService } from './kendo-settings.service';\r\nimport { QuestionControlService } from './question-control.service';\r\nimport { RecursiveDataNavigatorService } from './recursive-data-navigator.service';\r\nimport { VideoService } from './video.service';\r\nimport { WeatherService } from './weather.service';\r\nimport { IncomingDataService } from './incoming-data.service';\r\n\r\n@NgModule({\r\n\timports: [CommonModule],\r\n\tdeclarations: [],\r\n\tproviders: [\r\n\t\tAuthenticationService,\r\n\t\tCacheUtilityService,\r\n\t\tDashboardService,\r\n\t\tDataService,\r\n\t\tDialogService,\r\n\t\tDisplaySetupService,\r\n\t\tFileUploadService,\r\n\t\tGseService,\r\n\t\tIndexedDBService,\r\n\t\tKendoSettingsService,\r\n\t\tQuestionControlService,\r\n\t\tRecursiveDataNavigatorService,\r\n\t\tRouteToExternalUrlService,\r\n\t\tSecurityService,\r\n\t\tSignalRCoreService,\r\n\t\tSystemService,\r\n\t\tUtilityService,\r\n\t\tVideoService,\r\n\t\tWeatherService,\r\n\t\tIncomingDataService\r\n\t],\r\n})\r\nexport class ServicesModule {\r\n\tconstructor(@Optional() @SkipSelf() parentModule: ServicesModule) {\r\n\t\tthrowIfAlreadyLoaded(parentModule, 'ServicesModule');\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LiveDataComponent } from './live-data.component';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n LiveDataComponent\r\n ],\r\n imports: [\r\n CommonModule, MatProgressBarModule\r\n ],\r\n exports: [LiveDataComponent]\r\n})\r\nexport class LiveDataModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DialogModalParentComponent } from './dialog-modal-parent.component';\r\n\r\n\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\nimport { LiveDataModule } from '../live-data/live-data.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { WidgetSettingsModule } from '../widget-settings/widget-settings.module';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\n// import { TagGraphModule } from '../tag-graph/tag-graph.module';\r\n// import { GseSummaryModule } from '../gse-summary/gse-summary.module';\r\n// import { GpuSummaryModule } from '../gpu-summary/gpu-summary.module';\r\n// import { PcaSummaryModule } from '../pca-summary/pca-summary.module';\r\n// import { PbbSummaryModule } from '../pbb-summary/pbb-summary.module';\r\n// import { WheelchairSummaryModule } from '../wheelchair-summary/wheelchair-summary.module';\r\n// import { CentralunitsSummaryModule } from '../centralunits-summary/centralunits-summary.module';\r\n// import { GsTopFiveAlarmsSummaryModule } from '../gs-top-five-alarms-summary/gs-top-five-alarms-summary.module';\r\n// import { GsTopFiveEquipmentAlarmsSummaryModule } from '../gs-top-five-equipment-alarms-summary/gs-top-five-equipment-alarms-summary.module';\r\n// import { GseTopFiveEquipmentAlarmsSummaryModule } from '../gse-top-five-equipment-alarms-summary/gse-top-five-equipment-alarms-summary.module';\r\n// import { GseTopFiveAlarmsSummaryModule } from '../gse-top-five-alarms-summary/gse-top-five-alarms-summary.module';\r\n// import { KendoUiGenericPopupModule } from '../kendo-ui-generic-popup/kendo-ui-generic-popup.module';\r\n\r\n@NgModule({\r\n\tdeclarations: [DialogModalParentComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tLiveDataModule,\r\n\t\t// TagGraphModule,\r\n\t\t// GseSummaryModule,\r\n\t\t// PcaSummaryModule,\r\n\t\t// PbbSummaryModule,\r\n\t\t// GpuSummaryModule,\r\n\t\t// WheelchairSummaryModule,\r\n\t\t// CentralunitsSummaryModule,\r\n\t\t// GsTopFiveAlarmsSummaryModule,\r\n\t\t// GsTopFiveEquipmentAlarmsSummaryModule,\r\n\t\t// GseTopFiveEquipmentAlarmsSummaryModule,\r\n\t\t// GseTopFiveAlarmsSummaryModule,\r\n\t\t// KendoUiGenericPopupModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatRadioModule,\r\n\t\tMatTooltipModule,\r\n\t\tMatButtonModule,\r\n\t\tWidgetSettingsModule,\r\n\t\tMatIconModule,\r\n\t\tMatBadgeModule\r\n\t],\r\n\texports: [DialogModalParentComponent],\r\n})\r\nexport class DialogModalParentComponentModule {}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport _ from \"lodash\";\r\n\r\nimport { map } from \"jquery\";\r\nimport { of } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\n\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { Global } from \"../../_constants/global.variables\";\r\nimport { UtilityService } from \"../../services/utility.service\";\r\nimport { DataService } from \"../../services/data.service\";\r\nimport { FileUploadService } from \"../../services/file-upload.service\";\r\nimport { IGlobal } from \"../../_models/global.model\";\r\n\r\n@Component({\r\n\tselector: \"lib-release-notes\",\r\n\ttemplateUrl: \"./release-notes.component.html\",\r\n\tstyleUrls: [\"./release-notes.component.scss\"],\r\n})\r\nexport class ReleaseNotesComponent implements OnInit {\r\n\tpublic distinctVersions: any;\r\n\tpublic releaseNotes: any;\r\n\tpublic iconmenu: string =\r\n\t\t\"doc,docx,xls,xlsm,xlsx,msg,pdf,ppt,pptx,js,css,mp4,mp3,wav,zip,txt,json,config,cs,aspx,html,tif,tiff,vsd,chm,asp,sql,hl7,xml,linq,rdl,wma,msi,exe,reg,csv,webm\";\r\n\r\n\tprivate videoKeyURL: string = Global.Video.serverArchiveUrl;\r\n\tprivate accessToken: string = Global.User.currentUser.ODataAccessToken;\r\n\tpublic source: string;\r\n\tpublic global: IGlobal = Global;\r\n\r\n\tconstructor(\r\n\t\tprivate fileUploadService: FileUploadService,\r\n\t\tprivate sanitizer: DomSanitizer,\r\n\t\tprivate utilityService: UtilityService,\r\n\t\tprivate dataService: DataService,\r\n\t\tprivate toastr: ToastrService,\r\n\t\tpublic dialogRef: MatDialogRef\r\n\t) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.utilityService.updateCurrentMenuItem(\"Release Notes\");\r\n\r\n\t\tthis.dataService\r\n\t\t\t.SQLActionAsPromise(\r\n\t\t\t\t\"API.RDN_GetApplicationVersionReleaseNotes @EnvironmentId=\" +\r\n\t\t\t\t\tGlobal.Application.Environment.Id +\r\n\t\t\t\t\t\", @IsMobile=\" +\r\n\t\t\t\t\t(Global.isMobile ? \"1\" : \"0\")\r\n\t\t\t)\r\n\t\t\t.then((dataObject: any) => {\r\n\t\t\t\tconsole.log(\"Release Notes = %O\", dataObject); //-- this is where you build a dialog box to show the release notes, if they exist for this version. --Kirk T. Sherer, August 4, 2021.\r\n\t\t\t\tthis.releaseNotes = dataObject;\r\n\t\t\t\tif (!Global.User.currentUser.IsSystemAdministrator) {\r\n\t\t\t\t\tthis.releaseNotes = dataObject\r\n\t\t\t\t\t\t.where((data: any) => {\r\n\t\t\t\t\t\t\treturn data.Internal == 0 || data.Internal == false;\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.toArray();\r\n\t\t\t\t}\r\n\t\t\t\tthis.source = this.releaseNotes.first((data: any) => {\r\n\t\t\t\t\treturn data;\r\n\t\t\t\t}).Source;\r\n\t\t\t\tconsole.log(\"release-notes: source = \" + this.source);\r\n\r\n\t\t\t\tvar notes = this.releaseNotes\r\n\t\t\t\t\t.select((version: any) => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tid: version.ApplicationVersionId,\r\n\t\t\t\t\t\t\tname: version.ApplicationVersion,\r\n\t\t\t\t\t\t\tdescription: version.ApplicationVersionDescription,\r\n\t\t\t\t\t\t\tenvironment:\r\n\t\t\t\t\t\t\t\tversion.ApplicationVersionLatestEnvironment,\r\n\t\t\t\t\t\t\tgoLiveDate: version.ApplicationVersionGoLiveDate,\r\n\t\t\t\t\t\t\treleaseNoteFeatures: this.releaseNotes\r\n\t\t\t\t\t\t\t\t.where((notes: any) => {\r\n\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\tnotes.ApplicationVersionId ==\r\n\t\t\t\t\t\t\t\t\t\t\tversion.ApplicationVersionId &&\r\n\t\t\t\t\t\t\t\t\t\tnotes.ApplicationVersionReleaseNoteType ==\r\n\t\t\t\t\t\t\t\t\t\t\t\"Feature\"\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.select((note: any) => {\r\n\t\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\t\tid: note.Id,\r\n\t\t\t\t\t\t\t\t\t\tname: note.Name.replace(\":\", \"\"),\r\n\t\t\t\t\t\t\t\t\t\tdescription: note.Description,\r\n\t\t\t\t\t\t\t\t\t\tinternal: note.Internal,\r\n\t\t\t\t\t\t\t\t\t\tpictureImageKey: note.PictureImageKey,\r\n\t\t\t\t\t\t\t\t\t\treleaseNoteType:\r\n\t\t\t\t\t\t\t\t\t\t\tnote.ApplicationVersionReleaseNoteType,\r\n\t\t\t\t\t\t\t\t\t\tuploadedPicture:\r\n\t\t\t\t\t\t\t\t\t\t\tnote.PictureImageKey != null\r\n\t\t\t\t\t\t\t\t\t\t\t\t? this.buildPictureUrl(note)\r\n\t\t\t\t\t\t\t\t\t\t\t\t: null,\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.toArray(),\r\n\r\n\t\t\t\t\t\t\treleaseNoteBugs: this.releaseNotes\r\n\t\t\t\t\t\t\t\t.where((notes: any) => {\r\n\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\tnotes.ApplicationVersionId ==\r\n\t\t\t\t\t\t\t\t\t\t\tversion.ApplicationVersionId &&\r\n\t\t\t\t\t\t\t\t\t\tnotes.ApplicationVersionReleaseNoteType ==\r\n\t\t\t\t\t\t\t\t\t\t\t\"Bug\"\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.select((note: any) => {\r\n\t\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\t\tid: note.Id,\r\n\t\t\t\t\t\t\t\t\t\tname: note.Name.replace(\":\", \"\"),\r\n\t\t\t\t\t\t\t\t\t\tdescription: note.Description,\r\n\t\t\t\t\t\t\t\t\t\tinternal: note.Internal,\r\n\t\t\t\t\t\t\t\t\t\tpictureImageKey: note.PictureImageKey,\r\n\t\t\t\t\t\t\t\t\t\treleaseNoteType:\r\n\t\t\t\t\t\t\t\t\t\t\tnote.ApplicationVersionReleaseNoteType,\r\n\t\t\t\t\t\t\t\t\t\tuploadedPicture:\r\n\t\t\t\t\t\t\t\t\t\t\tnote.PictureImageKey != null\r\n\t\t\t\t\t\t\t\t\t\t\t\t? this.buildPictureUrl(note)\r\n\t\t\t\t\t\t\t\t\t\t\t\t: null,\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.toArray(),\r\n\t\t\t\t\t\t\treleaseNoteNotes: this.releaseNotes\r\n\t\t\t\t\t\t\t\t.where((notes: any) => {\r\n\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\tnotes.ApplicationVersionId ==\r\n\t\t\t\t\t\t\t\t\t\t\tversion.ApplicationVersionId &&\r\n\t\t\t\t\t\t\t\t\t\t_.isNil(\r\n\t\t\t\t\t\t\t\t\t\t\tnotes.ApplicationVersionReleaseNoteType\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.select((note: any) => {\r\n\t\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\t\tid: note.Id,\r\n\t\t\t\t\t\t\t\t\t\tname: note.Name.replace(\":\", \"\"),\r\n\t\t\t\t\t\t\t\t\t\tdescription: note.Description,\r\n\t\t\t\t\t\t\t\t\t\tinternal: note.Internal,\r\n\t\t\t\t\t\t\t\t\t\tpictureImageKey: note.PictureImageKey,\r\n\t\t\t\t\t\t\t\t\t\treleaseNoteType:\r\n\t\t\t\t\t\t\t\t\t\t\tnote.ApplicationVersionReleaseNoteType,\r\n\t\t\t\t\t\t\t\t\t\tuploadedPicture:\r\n\t\t\t\t\t\t\t\t\t\t\tnote.PictureImageKey != null\r\n\t\t\t\t\t\t\t\t\t\t\t\t? this.buildPictureUrl(note)\r\n\t\t\t\t\t\t\t\t\t\t\t\t: null,\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.toArray(),\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.toArray();\r\n\r\n\t\t\t\t//-- since the Linq-to-Typescript's 'distinct' function doesn't actually allow you to get a distinct list based on a value, I had to build this\r\n\t\t\t\t//-- next forEach loop so I can get the distinct list of versions after building the objects the way I need to display them in the view. --Kirk T. Sherer, October 29, 2021.\r\n\r\n\t\t\t\tvar distinctVersions: Array = [];\r\n\t\t\t\tvar currentVersion: string = \"\";\r\n\t\t\t\tnotes.forEach((note: any) => {\r\n\t\t\t\t\tif (currentVersion != note.name) {\r\n\t\t\t\t\t\tcurrentVersion = note.name;\r\n\t\t\t\t\t\tdistinctVersions.push(note);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.distinctVersions = distinctVersions;\r\n\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\"release-notes: this.distinctVersions = %O\",\r\n\t\t\t\t\t\tthis.distinctVersions\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t// const dialogRef = this.dialog.open(ReleaseNotesComponent, {\r\n\t\t\t\t// \twidth: '60%',\r\n\t\t\t\t// \theight: '80%', //,\r\n\t\t\t\t// \tdata: releaseNotes,\r\n\t\t\t\t// });\r\n\t\t\t\t// dialogRef.afterClosed().subscribe((result) => {\r\n\t\t\t\t// \tGlobal.User.DebugMode &&\r\n\t\t\t\t// \t\tconsole.log('The dialog was closed');\r\n\t\t\t\t// });\r\n\t\t\t});\r\n\t}\r\n\r\n\tcloseDialog(): void {\r\n\t\t// this.dialogRef.close();\r\n\t}\r\n\r\n\tcloseAndStopSeeingReleaseNotesAtLogin(\r\n\t\tdontShowAtLoginPermanently?: number\r\n\t): void {\r\n\t\t// StopSeeingReleaseNotes\r\n\t\tvar sql =\r\n\t\t\t\"API.RDN_ApplicationReleaseNotes_StopSeeingAtLogin @UserId=\" +\r\n\t\t\tGlobal.User.currentUser.Id;\r\n\t\tif (dontShowAtLoginPermanently) {\r\n\t\t\tsql += \", @StopSeeingReleaseNotes=\" + dontShowAtLoginPermanently;\r\n\t\t}\r\n\t\tthis.dataService.SQLActionAsPromise(sql).then((dataObject: any) => {\r\n\t\t\tif (dataObject) {\r\n\t\t\t\tlet message = \"Release Notes will no longer be displayed\";\r\n\t\t\t\tif (!dontShowAtLoginPermanently) {\r\n\t\t\t\t\tmessage += \" at login\";\r\n\t\t\t\t}\r\n\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\tmessage: message,\r\n\t\t\t\t\ttitle: \"Release Notes\",\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t// this.dialogRef.close();\r\n\t\t});\r\n\t}\r\n\r\n\tpublic viewPicture(file: any) {\r\n\t\tGlobal.User.DebugMode &&\r\n\t\t\tconsole.log(\"trying to view the file... file = %O\", file);\r\n\t\tvar url = file.viewUrl;\r\n\r\n\t\tvar intHSize = window.screen.availWidth * 0.7;\r\n\t\tvar intVSize = window.screen.availHeight * 0.7;\r\n\t\tvar intTop = (window.screen.availHeight - intVSize) / 2;\r\n\t\tvar intLeft = (window.screen.availWidth - intHSize) / 2;\r\n\t\tvar sngWindow_Size_Percentage = 0.85;\r\n\r\n\t\tvar strFeatures = \"\";\r\n\t\tintHSize = window.screen.availWidth * sngWindow_Size_Percentage * 0.6;\r\n\t\tintVSize = window.screen.availHeight * sngWindow_Size_Percentage;\r\n\t\tintTop = (window.screen.availHeight - intVSize) / 2;\r\n\t\tintLeft = (window.screen.availWidth - intHSize) / 2;\r\n\t\tstrFeatures =\r\n\t\t\t\"top=\" +\r\n\t\t\tintTop +\r\n\t\t\t\",left=\" +\r\n\t\t\tintLeft +\r\n\t\t\t\",height=\" +\r\n\t\t\tintVSize +\r\n\t\t\t\",width=\" +\r\n\t\t\tintHSize +\r\n\t\t\t\", scrollbars=yes, resizable=yes, location=no\";\r\n\r\n\t\tvar SRWindow = window.open(url, \"SRWindow\", strFeatures);\r\n\t}\r\n\r\n\tprivate buildPictureUrl(note: any): any {\r\n\t\tif (note.PictureImageKey != \"\" && note.PictureImageKey != undefined) {\r\n\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\tconsole.log(\"note.PictureImageKey = \" + note.PictureImageKey);\r\n\t\t\tvar file: any = {};\r\n\t\t\tfile.imageKey = note.PictureImageKey;\r\n\t\t\tfile.isVideoServerImage =\r\n\t\t\t\tnote.IsVideoServerImage == null\r\n\t\t\t\t\t? false\r\n\t\t\t\t\t: note.IsVideoServerImage == \"False\"\r\n\t\t\t\t\t? false\r\n\t\t\t\t\t: true;\r\n\t\t\tfile.videoServerFilename = note.VideoServerFilename\r\n\t\t\t\t? note.VideoServerFilename\r\n\t\t\t\t: file.isVideoServerImage\r\n\t\t\t\t? note.DefaultVideoFileName\r\n\t\t\t\t: null;\r\n\t\t\tfile.thumbnailImage = note.ThumbnailBase64\r\n\t\t\t\t? this.sanitizer.bypassSecurityTrustResourceUrl(\r\n\t\t\t\t\t\t\"data:image/png;base64,\" + note.ThumbnailBase64\r\n\t\t\t\t )\r\n\t\t\t\t: null;\r\n\t\t\tfile.name = note.Filename;\r\n\t\t\tfile = this.setFileImage(file);\r\n\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\tconsole.log(\"release-notes: file = %O\", file);\r\n\t\t\treturn file;\r\n\t\t} else {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setFileImage(file: any) {\r\n\t\tGlobal.User.DebugMode && console.log(\"setFileImage: file = %O\", file);\r\n\t\tvar includeThumbnail = false;\r\n\t\tvar filename = file.name;\r\n\r\n\t\tif (filename == \"Pasted Image\") {\r\n\t\t\tincludeThumbnail = true;\r\n\t\t} else if (filename.indexOf(\".\") == -1) {\r\n\t\t\t//-- user didn't name the file with a file extension. Add the appropriate file extension so we can get the correct thumbnail picture, if applicable. --Kirk T. Sherer, February 5, 2021.\r\n\t\t\tif (file.IsVideoServerImage) {\r\n\t\t\t\tfilename = file.videoServerFilename;\r\n\t\t\t} else {\r\n\t\t\t\tfilename = filename + \".png\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar fileExtension = filename.split(\".\").pop().toLowerCase();\r\n\t\t// Global.User.DebugMode && console.log(\"fileExtension = \" + fileExtension);\r\n\t\tif (\r\n\t\t\tfileExtension == \"jpg\" ||\r\n\t\t\tfileExtension == \"png\" ||\r\n\t\t\tfileExtension == \"jpeg\" ||\r\n\t\t\tfileExtension == \"gif\" ||\r\n\t\t\tfileExtension == \"bmp\"\r\n\t\t) {\r\n\t\t\tincludeThumbnail = true;\r\n\t\t}\r\n\t\t// Global.User.DebugMode && console.log(\"this.iconmenu = \" + this.iconmenu);\r\n\t\t// Global.User.DebugMode && console.log(\"this.iconmenu.indexOf(fileExtension.toLowerCase()) = \" + this.iconmenu.indexOf(fileExtension.toLowerCase()));\r\n\r\n\t\t//Assign an icon for the file\r\n\t\tif (this.iconmenu.indexOf(fileExtension.toLowerCase()) > -1) {\r\n\t\t\t//This is an icon file display. Assign the right one.\r\n\t\t\tfile.iconFile =\r\n\t\t\t\tGlobal.imagesUrl +\r\n\t\t\t\t\"assets/img/FileUpload/icon-\" +\r\n\t\t\t\tfileExtension +\r\n\t\t\t\t\".png\";\r\n\t\t} else {\r\n\t\t\tfile.iconFile = null;\r\n\t\t}\r\n\r\n\t\t// Global.User.DebugMode && console.log(\"file.iconFile = \" + file.iconFile);\r\n\r\n\t\tif (file.imageKey != null) {\r\n\t\t\tif (file.isVideoServerImage) {\r\n\t\t\t\tvar url =\r\n\t\t\t\t\tthis.videoKeyURL +\r\n\t\t\t\t\tfile.videoServerFilename +\r\n\t\t\t\t\t\"?accessToken=\" +\r\n\t\t\t\t\tencodeURIComponent(this.accessToken);\r\n\t\t\t\tfile.thumbnailUrl = null;\r\n\t\t\t\tfile.viewUrl = url;\r\n\t\t\t} else {\r\n\t\t\t\tfile.thumbnailUrl =\r\n\t\t\t\t\tthis.dataService.imageKeyURL + file.imageKey;\r\n\t\t\t\tfile.viewUrl = file.thumbnailUrl;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Global.User.DebugMode && console.log(\"file.thumbnailUrl = \" + file.thumbnailUrl);\r\n\r\n\t\treturn file;\r\n\t}\r\n}\r\n","
          \r\n\t
          \r\n\t\t
          \r\n\t\t\t
          \r\n\t\t\t\tWhat's new with iOPS?\r\n\t\t\t
          \r\n\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
          \r\n\t\t\t
          \r\n\t\t
          \r\n\t\t
          \r\n\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t\t\tv {{ version.name }}\r\n\t\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t\t\t{{ version.description\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t -\r\n\t\t\t\t\t\t\tin\r\n\t\t\t\t\t\t\t{{ version.environment\r\n\t\t\t\t\t\t\t}}{{\r\n\t\t\t\t\t\t\tversion.goLiveDate != null &&\r\n\t\t\t\t\t\t\tversion.environment == \"Production\"\r\n\t\t\t\t\t\t\t? \" on \" + version.goLiveDate\r\n\t\t\t\t\t\t\t: \"\"\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t
          \r\n\t\t\t\t\t

          0\" style=\"text-transform:uppercase\">Features\r\n\t\t\t\t\t

          \r\n\t\t\t\t\t
            \r\n\r\n\t\t\t\t\t\t
          • \r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t\t{{ note.name\r\n\t\t\t\t\t\t\t\t\t}}{{\r\n\t\t\t\t\t\t\t\t\tnote.internal ? \" (internal)\" : \"\"\r\n\t\t\t\t\t\t\t\t\t}} :\r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t
            \r\n\r\n\t\t\t\t\t\t\t
            \r\n\r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t\t\t\t\"photo\"\r\n\t\t\t\t\t\t\t\t\t
            \r\n\r\n\t\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t \r\n\r\n\t\t\t\t\t\t
          • \r\n\r\n\t\t\t\t\t
          \r\n\t\t\t\t\t

          0\" style=\"text-transform:uppercase\">Bug Fixes\r\n\t\t\t\t\t

          \r\n\t\t\t\t\t
            \r\n\t\t\t\t\t\t
          • \r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t\t{{ note.name\r\n\t\t\t\t\t\t\t\t\t}}{{\r\n\t\t\t\t\t\t\t\t\tnote.internal ? \" (internal)\" : \"\"\r\n\t\t\t\t\t\t\t\t\t}} :\r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t
            \r\n\r\n\t\t\t\t\t\t\t
            \r\n\r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t\t\t\t\"photo\"\r\n\t\t\t\t\t\t\t\t\t
            \r\n\r\n\t\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t \r\n\r\n\t\t\t\t\t\t
          • \r\n\t\t\t\t\t
          \r\n\r\n\t\t\t\t\t

          0\" style=\"text-transform:uppercase\">Notes

          \r\n\t\t\t\t\t
            \r\n\t\t\t\t\t\t
          • \r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t\t{{ note.name\r\n\t\t\t\t\t\t\t\t\t}}{{\r\n\t\t\t\t\t\t\t\t\tnote.internal ? \" (internal)\" : \"\"\r\n\t\t\t\t\t\t\t\t\t}} :\r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t
            \r\n\r\n\t\t\t\t\t\t\t
            \r\n\r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t\t\t\t\"photo\"\r\n\t\t\t\t\t\t\t\t\t
            \r\n\r\n\t\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t \r\n\r\n\t\t\t\t\t\t
          • \r\n\t\t\t\t\t
          \r\n\r\n\t\t\t\t
          \r\n\t\t\t
          \r\n\t\t
          \r\n\t
          \r\n
          \r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReleaseNotesComponent } from './release-notes.component';\r\nimport { ButtonModule } from '@progress/kendo-angular-buttons';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ReleaseNotesComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ButtonModule,\r\n MatMenuModule,\r\n MatTooltipModule,\r\n MatDialogModule,\r\n MatButtonModule\r\n ],\r\n exports: [ReleaseNotesComponent]\r\n})\r\nexport class ReleaseNotesModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CanvasPopupSettingsComponent } from './canvas-popup-settings.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n\tdeclarations: [CanvasPopupSettingsComponent],\r\n\timports: [CommonModule, FormsModule, ReactiveFormsModule],\r\n\texports: [CanvasPopupSettingsComponent],\r\n})\r\nexport class CanvasPopupSettingsModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DashboardTimescopePopupConfirmationSettingsComponent } from './dashboard-timescope-popup-confirmation-settings.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\n\r\n@NgModule({\r\n\tdeclarations: [DashboardTimescopePopupConfirmationSettingsComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tDragDropModule,\r\n\t\tMatButtonModule,\r\n\t\tMatTooltipModule,\r\n\t\tMatSelectModule,\r\n\t\tMatCheckboxModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tGridModule,\r\n\t],\r\n\texports: [DashboardTimescopePopupConfirmationSettingsComponent],\r\n})\r\nexport class DashboardTimescopePopupConfirmationSettingsModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DashboardTimezonePopupConfirmationSettingsComponent } from './dashboard-timezone-popup-confirmation-settings.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\n\r\n@NgModule({\r\n\tdeclarations: [DashboardTimezonePopupConfirmationSettingsComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tDragDropModule,\r\n\t\tMatButtonModule,\r\n\t\tMatTooltipModule,\r\n\t\tMatSelectModule,\r\n\t\tMatCheckboxModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tGridModule,\r\n\t],\r\n\texports: [DashboardTimezonePopupConfirmationSettingsComponent],\r\n})\r\nexport class DashboardTimezonePopupConfirmationSettingsModule {}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport _ from 'lodash';\r\nimport { DashboardService } from 'projects/shared-lib/src/lib/services/dashboard.service';\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\n\r\n@Component({\r\n\tselector: 'lib-tactical-dashboard-interval-popup-confirmation-settings',\r\n\ttemplateUrl:\r\n\t\t'./tactical-dashboard-interval-popup-confirmation-settings.component.html',\r\n\tstyleUrls: [\r\n\t\t'./tactical-dashboard-interval-popup-confirmation-settings.component.scss',\r\n\t],\r\n})\r\nexport class TacticalDashboardIntervalPopupConfirmationSettingsComponent\r\n\timplements OnInit\r\n{\r\n\tconstructor(\r\n\t\t@Inject(MAT_DIALOG_DATA) public inputObject: any,\r\n\t\tpublic dialogRef: MatDialogRef,\r\n\t\tprivate dataService: DataService,\r\n\t\tpublic toastr: ToastrService,\r\n\t\tprivate dashboardService: DashboardService\r\n\t) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.inputObject.dashboardWidgets.forEach((widget) => {\r\n\t\t\tlet currentlyAssignedUpdateInterval =\r\n\t\t\t\tthis.inputObject.updateIntervals.find(\r\n\t\t\t\t\t(tz) => tz.Id === widget.UpdateIntervalId\r\n\t\t\t\t);\r\n\t\t\tif (!_.isNil(currentlyAssignedUpdateInterval)) {\r\n\t\t\t\twidget.UpdateIntervalDescription =\r\n\t\t\t\t\tcurrentlyAssignedUpdateInterval.Description;\r\n\t\t\t\tif (\r\n\t\t\t\t\tcurrentlyAssignedUpdateInterval.Id ===\r\n\t\t\t\t\tthis.inputObject.selectedUpdateIntervalObject.Id\r\n\t\t\t\t) {\r\n\t\t\t\t\twidget.isUpdateIntervalSelected = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\twidget.isUpdateIntervalSelected = false;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\twidget.isUpdateIntervalSelected = true;\r\n\t\t\t\twidget.UpdateIntervalDescription = '';\r\n\t\t\t}\r\n\t\t});\r\n\t\tconsole.log(this.inputObject);\r\n\t}\r\n\r\n\tonCancel() {\r\n\t\tthis.dialogRef.close();\r\n\t}\r\n\r\n\tsubmitAndClose() {\r\n\t\tthis.dialogRef.close(this.inputObject);\r\n\t}\r\n\r\n\tselectAllAndClose() {\r\n\t\tthis.inputObject.dashboardWidgets.forEach((widget) => {\r\n\t\t\twidget.isUpdateIntervalSelected = true;\r\n\t\t});\r\n\t\tthis.submitAndClose();\r\n\t}\r\n}\r\n","
          \r\n\t
          \r\n
          \r\n
          \r\n Update Interval Confirmation\r\n\r\n\r\n\r\n
          \r\n\r\n
          \r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\r\n\r\n\r\n\r\n\t
          \r\n\r\n\t
          \r\n\t\t
          \r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t
          \r\n\t\t
          \r\n\t\t\t\r\n\t\t\tSubmit and Close\r\n\t\t\r\n\t\t\r\n\t\t\tSelect All and Close\r\n\t\t\r\n\t\t
          \r\n\r\n\t
          \r\n
          \r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AddWidgetToDashboardComponent } from './add-widget-to-dashboard.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { LoadingSpinnerModule } from '../loading-spinner/loading-spinner.module';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\nimport { KendoGridParentModule } from '../kendo-grid-parent/kendo-grid-parent.module';\r\n\r\n@NgModule({\r\n\tdeclarations: [AddWidgetToDashboardComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tMatButtonModule,\r\n\t\tMatTooltipModule,\r\n\t\tLoadingSpinnerModule,\r\n\t\tMatDialogModule,\r\n\t\tMatTabsModule,\r\n\t\tMatTableModule,\r\n\t\tGridModule,\r\n\t\tKendoGridParentModule,\r\n\t],\r\n\texports: [AddWidgetToDashboardComponent],\r\n})\r\nexport class AddWidgetToDashboardModule {}\r\n","import { Component, Inject, OnInit, Optional } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\nimport { FormControl, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n\tselector: 'lib-scroll-to-widget',\r\n\ttemplateUrl: './scroll-to-widget.component.html',\r\n\tstyleUrls: ['./scroll-to-widget.component.scss'],\r\n})\r\nexport class ScrollToWidgetComponent implements OnInit {\r\n\ttheme: string;\r\n\twidgetControl = new FormControl(null, Validators.required);\r\n\r\n\tconstructor(\r\n\t\tpublic dialogRef: MatDialogRef,\r\n\t\t@Optional() @Inject(MAT_DIALOG_DATA) public widgets: any\r\n\t) {}\r\n\r\n\tngOnInit(): void {\r\n\t\tconsole.log(this.widgets);\r\n\t\tif (Global.Theme === 'light') {\r\n\t\t\tthis.theme = 'light';\r\n\t\t} else if (Global.Theme === 'dark') {\r\n\t\t\tthis.theme = 'dark';\r\n\t\t}\r\n\t}\r\n\r\n\tonCancel() {\r\n\t\tthis.dialogRef.close();\r\n\t}\r\n\r\n\tsubmitAndClose() {\r\n\t\tthis.dialogRef.close(this.widgetControl);\r\n\t}\r\n}\r\n","\r\n\r\n
          \r\n\t\r\n\t\t
          \r\n\t\t\t
          Select Widget to Scroll To
          \r\n\t\t
          \r\n\r\n\t\t\r\n\t\t\t
          \r\n\t\t\t\t\r\n\t\t\t
          \r\n\t\t\r\n\t
          \r\n\t\r\n
          \r\n","import { Component, OnInit, OnDestroy, Inject } from \"@angular/core\";\r\nimport { FormControl, FormGroup } from \"@angular/forms\";\r\n\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\n\r\nimport _ from \"lodash\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { QuestionBase } from \"../../_models/dynamic-fields/questions/question-base\";\r\nimport { TextboxQuestion } from \"../../_models/dynamic-fields/questions/question-textbox\";\r\nimport { TextareaQuestion } from \"../../_models/dynamic-fields/questions/question-textarea\";\r\nimport { UibButtonQuestion } from \"../../_models/dynamic-fields/questions/question-uib-button\";\r\nimport { ReadOnlyQuestion } from \"../../_models/dynamic-fields/questions/question-read-only\";\r\nimport { DropdownQuestion } from \"../../_models/dynamic-fields/questions/question-dropdown\";\r\nimport { DateQuestion } from \"../../_models/dynamic-fields/questions/question-date\";\r\nimport { SliderYesNoQuestion } from \"../../_models/dynamic-fields/questions/question-slider-yes-no\";\r\nimport { DashboardService } from \"../../services/dashboard.service\";\r\nimport { UtilityService } from \"projects/shared-lib/src/lib/services/utility.service\";\r\n\r\nimport swal from \"sweetalert2\";\r\n\r\n@Component({\r\n\tselector: \"lib-dashboard-edit\",\r\n\ttemplateUrl: \"./dashboard-edit.component.html\",\r\n\tstyleUrls: [\"./dashboard-edit.component.scss\"]\r\n})\r\nexport class DashboardEditComponent implements OnInit {\r\n\tpublic title: string;\r\n\tpublic subTitle: string;\r\n\tprivate dashboardId: number;\r\n\tpublic formOptions: any;\r\n\tpublic dashboardTimeScopes: any;\r\n\tpublic dashboard: any;\r\n\r\n\tpublic addingNewDashboard: boolean = false;\r\n\tpublic editFieldsTemplate: QuestionBase[];\r\n\tpublic editFieldsCustom: QuestionBase[];\r\n\tpublic dashboardTimeScopesOptionsList: any;\r\n\tpublic tacticalDashboardUpdateIntervalOptionsList: any = [];\r\n\tpublic service: any;\r\n\tisLoading: boolean;\r\n\tpublic myDialogRef: any;\r\n\tpublic dashboardTypesList: any = [\r\n\t\t{ Id: 1, Name: \"Standard\" },\r\n\t\t{ Id: 2, Name: \"Tactical\" }\r\n\t];\r\n\tpublic allowedDashboardTypesList: any = [];\r\n\r\n\tpublic applicationTypes: any = [\r\n\t\t{ Id: \"0\", Name: \"Desktop\" },\r\n\t\t{ Id: \"1\", Name: \"Mobile\" }\r\n\t];\r\n\tdashboardTimeZonesOptionsList: any = [];\r\n\r\n\tdashboardTemplatesList: any = [];\r\n\tdashboardCreationType: any;\r\n\tdashboardTemplatesListFullDataWithWidgets:any = [];\r\n\r\n\tprivate swalWithBootstrapButtons: any;\r\n\r\n\tprivate peopleInOrg: any;\r\n\tprivate numberOfPeopleInOrg: any;\r\n\tprivate listOfUserIds: any;\r\n\r\n\tloadingMessage:any;\r\n\tcurrentTemplateDescription: any;\r\n\r\n\tconstructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public id: number, private dataService: DataService, public dashboardService: DashboardService, public utilityService: UtilityService) {\r\n\t\tthis.swalWithBootstrapButtons = swal.mixin({\r\n\t\t\tcustomClass: {\r\n\t\t\t\tconfirmButton: \"btn btn-danger\",\r\n\t\t\t\tcancelButton: \"btn btn-success\"\r\n\t\t\t},\r\n\t\t\tbuttonsStyling: false\r\n\t\t});\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.loadingMessage = \"'Loading'\";\r\n\t\tthis.service = this;\r\n\t\tconsole.log(\"this.service = %O\", this.service);\r\n\t\tthis.myDialogRef = this.dialogRef;\r\n\t\tconsole.log(\"this.myDialogRef = %O\", this.myDialogRef);\r\n\t\tthis.isLoading = true;\r\n\t\tconsole.log(\"this.id = \" + this.id + \", dialogRef = %O\", this.dialogRef);\r\n\t\tthis.dashboardTimeScopes = Global.User.currentUser.DashboardTimeScopes;\r\n\t\tconsole.log(\"getDashboardTimeScopes data = %O\", this.dashboardTimeScopes);\r\n\t\tthis.dashboardTimeScopesOptionsList = [];\r\n\t\tconsole.log(Global.User.currentUser.TacticalDashboardUpdateIntervals);\r\n\t\tGlobal.User.currentUser.TacticalDashboardUpdateIntervals.forEach((t: any) => {\r\n\t\t\tvar obj: any = {};\r\n\t\t\tobj.Id = t.Id;\r\n\t\t\tobj.Name = t.Description;\r\n\t\t\tthis.tacticalDashboardUpdateIntervalOptionsList.push(obj);\r\n\t\t});\r\n\r\n\t\tGlobal.User.currentUser.DashboardTimeZones.forEach((t: any) => {\r\n\t\t\tvar obj: any = {};\r\n\t\t\tobj.Id = t.Id;\r\n\t\t\tobj.Name = t.Description;\r\n\t\t\tthis.dashboardTimeZonesOptionsList.push(obj);\r\n\t\t});\r\n\t\tthis.dashboardTimeScopes.forEach((t: any) => {\r\n\t\t\tvar obj: any = {};\r\n\t\t\tobj.key = t.Id;\r\n\t\t\tobj.value = t.Description;\r\n\t\t\tthis.dashboardTimeScopesOptionsList.push(obj);\r\n\t\t});\r\n\t\tconsole.log(Global.User.currentUser.Security);\r\n\t\tthis.dashboardTypesList.forEach((dt: any) => {\r\n\t\t\tGlobal.User.currentUser.Security.AllowedDashboardTypeIds.forEach((id: number) => {\r\n\t\t\t\tif (dt.Id == id) {\r\n\t\t\t\t\tthis.allowedDashboardTypesList.push(dt);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t//\r\n\t\t// dashboard templates\r\n\t\t//\r\n\r\n\t\t// if admin - get the list of users in the org\r\n\t\tif(Global.User.currentUser.IsSystemAdministrator == true || Global.User.currentUser.IsOrganizationAdministrator == true) {\r\n\t\t\tvar orgs = this.dataService.cache.Organizations;\r\n\t\t\tvar admin = Global.User.currentUser;\r\n\t\t\tthis.peopleInOrg = this.dataService.cache.people.filter(p => p.OrganizationId == Global.User.currentUser.Organization.Id);\r\n\t\t\tthis.numberOfPeopleInOrg = this.peopleInOrg.length;\r\n\t\t\tthis.listOfUserIds = this.peopleInOrg.map(p => p.UserId).join(',');\r\n\t\t\tGlobal.User.DebugMode && console.log(\"list of user ids = %O\", this.listOfUserIds);\r\n\t\t}\r\n\r\n\t\t// get the list of templates for the user\r\n\t\tvar appType = Global.isMobile == true ? 'mobile' :'desktop';\r\n\t\tvar sql = \"API.GetDashboardTemplatesForUser @UserId = \" + Global.User.currentUser.Id + \", @ApplicationType =\" + appType;\r\n\t\tthis.dataService.SQLActionAsPromise(sql).then((data: any) => {\r\n\t\t\tGlobal.User.DebugMode && console.log(\"dashboard templates for org = %O\", data);\r\n\t\t\tif(data.length > 0) {\r\n\r\n\t\t\t\tdata.forEach((t: any) => {\r\n\t\t\t\t\tvar obj: any = {};\r\n\t\t\t\t\tobj.key = t.Id;\r\n\t\t\t\t\tobj.value = t.Name + (t.Description == null ? '' : ' - ' + t.Description);\r\n\t\t\t\t\tthis.dashboardTemplatesList.push(obj);\r\n\r\n\t\t\t\t\tthis.dashboardTemplatesListFullDataWithWidgets.push(t);\r\n\r\n\t\t\t\t\tthis.loadExpandedDashboards(t);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.buildEditForm();\r\n\t\t\t}\r\n\r\n\r\n\t\t});\r\n\r\n\r\n\t}\r\n\r\n\r\n\tcopyDashboardTemplateToUsers(dashboard: any, listOfUserIds?: any) {\r\n\t\tGlobal.User.DebugMode && console.log(\"copyDashboard -> listOfUserIds = \" + listOfUserIds + \", Global.User.currentUser.Id = \" + Global.User.currentUser.Id);\r\n\t\tvar singleCopyToCurrentLoggedInUser = listOfUserIds.indexOf(\",\") <= 0 && +listOfUserIds == Global.User.currentUser.Id;\r\n\t\tvar sqlStatement = \"API.Dashboards_CopyDashboard @DescriptionForDashboard= '', @DashboardId=\" + dashboard.Id;\r\n\t\tvar currentUserIsPartOfCopyOperation = false;\r\n\t\tvar dataArray: any = null;\r\n\t\tif (!singleCopyToCurrentLoggedInUser) {\r\n\t\t\tvar arrayOfUsersIds = listOfUserIds.split(\",\");\r\n\t\t\tvar requestJSON: any = [];\r\n\t\t\tarrayOfUsersIds.forEach((userId:string) => {\r\n\t\t\t\tvar jsonObject = {\r\n\t\t\t\t\tlabel: \"User_\" + userId,\r\n\t\t\t\t\tsqlStatement: sqlStatement + \", @ToUserId=\" + userId\r\n\t\t\t\t};\r\n\t\t\t\trequestJSON.push(jsonObject);\r\n\t\t\t\tif (+userId == Global.User.currentUser.Id) {\r\n\t\t\t\t\tcurrentUserIsPartOfCopyOperation = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tconsole.log(\"requestJSON = %O\", requestJSON);\r\n\t\t\tthis.dataService.SQLMultiAction(requestJSON).then((data: any) => {\r\n\t\t\t\tvar collections: any = data;\r\n\t\t\t\tGlobal.User.DebugMode && console.log(\"Dashboard id \" + dashboard.Id + \" copied to selected users.\");\r\n\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\tmessage: \"'\" + dashboard.Name + (dashboard.Description != \"null\" ? \" : \" + dashboard.Description : \"\") + \"' has been copied to the selected list of people.\",\r\n\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t});\r\n\t\t\t\t//-- Need to find in the data which one might be tied to the current logged-in user and provide the updated Dashboard List from that set of data. --Kirk T. Sherer, June 27, 2023\r\n\t\t\t\tif (currentUserIsPartOfCopyOperation) {\r\n\t\t\t\t\tvar data = collections.firstOrDefault((collection:any) => { return collection.label == \"User_\" + Global.User.currentUser.Id }).data;\r\n\t\t\t\t\t//this.getDashboardListForUser(data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then(\r\n\t\t\t\t// newest list of dashboards with the copied dashboard will be returned for this user in the copy dashboard stored procedure. Update the list with the data that is returned. --Kirk T. Sherer, August 28, 2020.\r\n\t\t\t\t(data: any) => {\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(\"Dashboard id \" + dashboard.Id + \" copied. New dashboard list: %O\", data);\r\n\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\tmessage: \"'\" + dashboard.Name + (dashboard.Description != \"null\" ? \" : \" + dashboard.Description : \"\") + \"' has been copied.\",\r\n\t\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t\t});\r\n\t\t\t\t\t// this.toastr.info(\"'\" + dashboard.Name + \"' has been copied.\", \"Dashboards\");\r\n\t\t\t\t\t//this.getDashboardListForUser(data);\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tloadExpandedDashboards(dashboard) {\r\n\t\tvar sqlStatement = \"API.GetExpandedDashboardById \" + dashboard.Id;\r\n\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\tconsole.log(\r\n\t\t\t\t\t\"API.GetExpandedDashboardById = %O\",\r\n\t\t\t\t\tdata\r\n\t\t\t\t);\r\n\r\n\t\t\t\tdashboard.widgets = data;\r\n\t\t\t\tdashboard = this.dashboardService.SetDashboardDerivedDatesFromDayCount(data)\r\n\t\t\t\tthis.buildEditForm();\r\n\t\t});\r\n\t}\r\n\r\n\tpublic closeWindow(modalInfo): void {\r\n\t\tif (modalInfo !== false) {\r\n\t\t\tthis.dialogRef.close(modalInfo);\r\n\t\t} else {\r\n\t\t\tthis.dialogRef.close();\r\n\t\t}\r\n\t}\r\n\tpublic closeDialogWindow(): void {\r\n\t\tthis.closeWindow(false);\r\n\t}\r\n\r\n\r\n\tbuildEditForm(): void {\r\n\t\tconsole.log(\"buildEditForm invoked...\");\r\n\t\tthis.formOptions = {\r\n\t\t\tsubmitButtonText: \"Save Changes\",\r\n\t\t\tsaveValuesPerField: false,\r\n\t\t\tsaveStoredProcedureName: null\r\n\t\t};\r\n\r\n\t\tif (this.id == 0) {\r\n\t\t\tthis.title = \"Add New Dashboard\";\r\n\t\t\tthis.addingNewDashboard = true;\r\n\t\t\tthis.dashboardId = null;\r\n\t\t\tthis.setUpQuestions();\r\n\t\t} else {\r\n\t\t\tvar sqlStatement = this.dataService.getDashboard(this.id);\r\n\t\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\t\tthis.dashboard = data.first();\r\n\t\t\t\tthis.dashboardId = this.id;\r\n\t\t\t\tconst Dashboard: any = this.dashboard;\r\n\t\t\t\tthis.title = \"Editing Dashboard: \" + Dashboard.Name;\r\n\t\t\t\tthis.subTitle = Dashboard.Description != null ? Dashboard.Description : \"\";\r\n\t\t\t\tconsole.log(\"editing dashboard: %O\", Dashboard);\r\n\t\t\t\t// use setValue to set new values\r\n\t\t\t\t// this.dashboardForm.setValue({\r\n\t\t\t\t// dashboardName: Dashboard.Name,\r\n\t\t\t\t// description: Dashboard.Description,\r\n\t\t\t\t// dashboardTypeId: Dashboard.DashboardTypeId,\r\n\t\t\t\t// isMobile: Dashboard.IsMobile ? \"1\" : \"0\",\r\n\t\t\t\t// timeScopeId: Dashboard.TimeScopeId,\r\n\t\t\t\t// updateIntervalId: Dashboard.UpdateIntervalId,\r\n\t\t\t\t// customStartDate: Dashboard.CustomStartDate,\r\n\t\t\t\t// customEndDate: Dashboard.CustomEndDate,\r\n\t\t\t\t// });\r\n\t\t\t\tthis.setUpQuestions();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tsetUpQuestions() {\r\n\t\tlet that = this;\r\n\t\tlet DashboardGridsterTypes = this.dataService.cache.gridsterTypes.filter((gridsterType) => {\r\n\t\t\treturn gridsterType.Id == 2 || gridsterType.Id == 4;\r\n\t\t})\r\n\t\t//Get today's date using the JavaScript Date object.\r\n\t\tvar today = new Date();\r\n\t\tvar pastDate = new Date();\r\n\r\n\t\t//Change it so that it is 7 days in the past.\r\n\t\tvar pd = today.getDate() - 7;\r\n\t\tpastDate.setDate(pd);\r\n\r\n\t\t//Log the date to our web console.\r\n\t\tconsole.log(today);\r\n\t\tconsole.log(pastDate);\r\n\t\tconsole.log(\"this.dashboardTimeScopesOptionsList = %O\", this.dashboardTimeScopesOptionsList);\r\n\t\tconsole.log(\"setUpQuestions invoked: this.dashboard = %O\", this.dashboard);\r\n\t\tthis.editFieldsCustom = [\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"Name\",\r\n\t\t\t\tlabel: \"Name\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? this.dashboard.Name : null,\r\n\t\t\t\trequired: true,\r\n\t\t\t\ttitle: \"Please enter the short name for this dashboard.\",\r\n\t\t\t\torder: 1\r\n\t\t\t}),\r\n\t\t\tnew TextareaQuestion({\r\n\t\t\t\tkey: \"Description\",\r\n\t\t\t\tlabel: \"Description\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? this.dashboard.Description : null,\r\n\t\t\t\trequired: false,\r\n\t\t\t\ttitle: \"Please enter the description for this dashboard.\",\r\n\t\t\t\torder: 2\r\n\t\t\t}),\r\n\r\n\r\n\t\t\tnew UibButtonQuestion({\r\n\t\t\t\tkey: \"dashboardHistoricalDataType\",\r\n\t\t\t\tlabel: \"Time Scope Type\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? (this.dashboard.CustomStartDate != null && this.dashboard.CustomEndDate != null ? 2 : 1) : 1,\r\n\t\t\t\tdisabled: true,\r\n\t\t\t\tlistOfValues: [\r\n\t\t\t\t\t{ Id: \"1\", Name: \"Select Preset Date Range\" },\r\n\t\t\t\t\t{ Id: \"2\", Name: \"Select Custom Date Range\" }\r\n\t\t\t\t],\r\n\t\t\t\trequired: true,\r\n\t\t\t\ttitle: \"This will determine if you wish to see data up to today from a previous date, or a historical data set between two past dates. \",\r\n\t\t\t\torder: 5,\r\n\t\t\t\tvisible: !_.isNil(this.dashboard) ? false : true,\r\n\r\n\t\t\t}),\r\n\t\t\tnew ReadOnlyQuestion({\r\n\t\t\t\tkey: \"DashboardHistoricalDataTypeAsString\",\r\n\t\t\t\tlabel: \"Time Scope Type\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? (this.dashboard.CustomStartDate != null && this.dashboard.CustomEndDate != null ? \"Preset Date Range\" : \"Custom Date Range\") : null,\r\n\t\t\t\ttitle: \"This will determine if you wish to see data up to today from a previous date, or a historical data set between two past dates. \",\r\n\t\t\t\torder: 4,\r\n\t\t\t\tvisible: !_.isNil(this.dashboard) ? true : false,\r\n\r\n\t\t\t}),\r\n\t\t\tnew DropdownQuestion({\r\n\t\t\t\tkey: \"TimeScopeId\",\r\n\t\t\t\tlabel: \"Date Range Presets\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? (this.dashboard.TimeScopeId != null ? this.dashboard.TimeScopeId : 5) : 5,\r\n\t\t\t\toptions: this.dashboardTimeScopesOptionsList,\r\n\t\t\t\ttitle: \"Select the appropriate date range for your dashboard.\",\r\n\t\t\t\tvisibleFields: [\r\n\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"dashboardHistoricalDataType\",\r\n\t\t\t\t\t\toperator: \"==\",\r\n\t\t\t\t\t\tvalue: 1\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t\torder: 6\r\n\t\t\t}),\r\n\t\t\tnew DateQuestion({\r\n\t\t\t\tkey: \"CustomStartDate\",\r\n\t\t\t\tlabel: \"Custom Start Date\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? this.dashboard.CustomStartDate : pastDate,\r\n\t\t\t\ttitle: \"Please enter the Start Date to begin using this dashboard if it's a temporary dashboard.\",\r\n\t\t\t\torder: 7,\r\n\t\t\t\trequired: false,\r\n\r\n\t\t\t\tvisibleFields: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"dashboardHistoricalDataType\",\r\n\t\t\t\t\t\toperator: \"==\",\r\n\t\t\t\t\t\tvalue: 2\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}),\r\n\t\t\tnew DateQuestion({\r\n\t\t\t\tkey: \"CustomEndDate\",\r\n\t\t\t\tlabel: \"Custom End Date\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? this.dashboard.CustomEndDate : today,\r\n\t\t\t\ttitle: \"Please enter the End Date to end using this dashboard if it's a temporary dashboard.\",\r\n\t\t\t\torder: 8,\r\n\t\t\t\trequired: false,\r\n\r\n\t\t\t\tvisibleFields: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"dashboardHistoricalDataType\",\r\n\t\t\t\t\t\toperator: \"==\",\r\n\t\t\t\t\t\tvalue: 2\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}),\r\n\t\t\tnew UibButtonQuestion({\r\n\t\t\t\tkey: \"TimeZoneId\",\r\n\t\t\t\tlabel: \"Time Selection\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? (this.dashboard.TimeZoneId != null ? this.dashboard.TimeZoneId : 1) : 1,\r\n\t\t\t\tlistOfValues: this.dashboardTimeZonesOptionsList,\r\n\t\t\t\ttitle: \"Set the time that should be used for this dashboard. User Time = the time zone where you are located currently. Site Time = the time zone where the Site you are viewing is located.\",\r\n\r\n\t\t\t\torder: 9\r\n\t\t\t}),\r\n\t\t\tnew UibButtonQuestion({\r\n\t\t\t\tkey: \"GridsterTypeId\",\r\n\t\t\t\tlabel: \"Grid Type\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? (this.dashboard.GridsterTypeId != null ? this.dashboard.GridsterTypeId : 2) : 2,\r\n\t\t\t\tlistOfValues: DashboardGridsterTypes,\r\n\t\t\t\ttitle: \"Set the grid type that should be used for this dashboard. ScrollVertical means that you will never see a horizontal scroll bar for the grid. Fixed means you have more creative freedom for creating a grid layout\",\r\n\r\n\t\t\t\torder: 10\r\n\t\t\t}),\r\n\r\n\t\t\tnew UibButtonQuestion({\r\n\t\t\t\tkey: \"UpdateIntervalId\",\r\n\t\t\t\tlabel: \"Update Interval\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? (this.dashboard.UpdateIntervalId != null ? this.dashboard.UpdateIntervalId : 2) : 2,\r\n\t\t\t\tlistOfValues: this.tacticalDashboardUpdateIntervalOptionsList,\r\n\t\t\t\ttitle: \"Select how quickly the widgets on your dashboard should be updated.\",\r\n\t\t\t\torder: 11,\r\n\r\n\t\t\t}),\r\n\t\t\tnew UibButtonQuestion({\r\n\t\t\t\tkey: \"IsMobile\",\r\n\t\t\t\tlabel: \"Application Type\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? (this.dashboard.IsMobile ? \"1\" : \"0\") : Global.isMobile ? \"1\" : \"0\",\r\n\t\t\t\ttitle: \"Select whether this dashboard is for the desktop version or the mobile version.\",\r\n\t\t\t\tlistOfValues: this.applicationTypes,\r\n\t\t\t\torder: 12\r\n\t\t\t}),\r\n\t\t\tnew SliderYesNoQuestion({\r\n\t\t\t\tkey: \"IsTemplate\",\r\n\t\t\t\tlabel: \"Is Template?\",\r\n\t\t\t\ttitle: \"Should this Dashboard be used as a Template?\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? this.dashboard.IsTemplate : \"0\",\r\n\t\t\t\torder: 13,\r\n\t\t\t\tvisible: Global.User.isAdmin || Global.User.isOrgAdmin || Global.User.isSiteAdmin\r\n\t\t\t})\r\n\t\t];\r\n\r\n\t\tthis.editFieldsTemplate = [\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"Name\",\r\n\t\t\t\tlabel: \"Name\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? this.dashboard.Name : null,\r\n\t\t\t\trequired: true,\r\n\t\t\t\ttitle: \"Please enter the short name for this dashboard.\",\r\n\t\t\t\torder: 1\r\n\t\t\t}),\r\n\t\t\tnew TextareaQuestion({\r\n\t\t\t\tkey: \"Description\",\r\n\t\t\t\tlabel: \"Description\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? this.dashboard.Description : null,\r\n\t\t\t\trequired: false,\r\n\t\t\t\ttitle: \"Please enter the description for this dashboard.\",\r\n\t\t\t\torder: 2\r\n\t\t\t}),\r\n\t\t\tnew DropdownQuestion({\r\n\t\t\t\tkey: \"DashboardTemplateId\",\r\n\t\t\t\tlabel: \"Dashboard Template\",\r\n\t\t\t\tvalue: !_.isNil(this.dashboard) ? this.dashboard.DashboardTemplateId : null,\r\n\t\t\t\trequired: true,\r\n\t\t\t\toptions: this.dashboardTemplatesList,\r\n\t\t\t\ttitle: \"Create dashboard from a template.\",\r\n\t\t\t\tvisible: this.addingNewDashboard == true ? true : false,\r\n\t\t\t\torder: 3,\r\n\t\t\t\t//onChangeFunction: () => this.setDashboardTemplateDescription(),\r\n\r\n\t\t\t\tonChangeFunction: function() {\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(\"onChangeFunction newValue = %O\", this.newValue);\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(\"onChangeFunction component = %O\", that);\r\n\r\n\t\t\t\t\tvar selectedTemplate = \tthat.dashboardTemplatesListFullDataWithWidgets.find(t=> t.Id == this.newValue);\r\n\r\n\t\t\t\t\tvar widgetNames = [];\r\n\t\t\t\t\tselectedTemplate.widgets.forEach(w => {\r\n\t\t\t\t\t\twidgetNames.push(w.WidgetName);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tvar widgetNamesAsString = widgetNames.join(\", \");\r\n\r\n\t\t\t\t\tthat.currentTemplateDescription = \"This is a template with widgets \" + widgetNamesAsString;\r\n\r\n\r\n\t\t\t\t\tvar swalWithBootstrapButtons = swal.mixin({\r\n\t\t\t\t\t\t\tcustomClass: {\r\n\t\t\t\t\t\t\t\tconfirmButton: \"btn btn-danger\",\r\n\t\t\t\t\t\t\t\tcancelButton: \"btn btn-success\"\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tbuttonsStyling: false\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\tswalWithBootstrapButtons\r\n\t\t\t\t\t\t\t.fire({\r\n\t\t\t\t\t\t\t\ttitle: \"Dashboard Template\",\r\n\t\t\t\t\t\t\t\thtml: \"Dashboard template you have selected has the following \" + that.currentTemplateDescription,\r\n\t\t\t\t\t\t\t\tshowCancelButton: false,\r\n\t\t\t\t\t\t\t\tconfirmButtonText: \"Ok\",\r\n\t\t\t\t\t\t\t\t//cancelButtonText: \"Cancel\",\r\n\t\t\t\t\t\t\t\treverseButtons: false\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.then((result) => {\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t},\r\n\r\n\r\n\t\t\t}),\r\n\r\n\t\t];\r\n\r\n\t\t// Add RO fields - 1 for each template\r\n\t\tthis.dashboardTemplatesListFullDataWithWidgets.forEach(t => {\r\n\t\t\tvar widgetNames = [];\r\n\t\t\tt.widgets?.forEach(w => {\r\n\t\t\t\twidgetNames.push(w.WidgetName);\r\n\t\t\t});\r\n\r\n\t\t\tvar widgetNamesAsString = widgetNames.join(\", \");\r\n\r\n\t\t\tvar currentTemplateDescription = \"This is a template with widgets \" + widgetNamesAsString;\r\n\r\n\t\t\tvar roq = new ReadOnlyQuestion({\r\n\t\t\t\tkey: \"TemplateDescription\",\r\n\t\t\t\tlabel: \"Template Description\",\r\n\t\t\t\tvalue: currentTemplateDescription,\r\n\t\t\t\tvisible: true,\r\n\t\t\t\ttitle: \"\",\r\n\t\t\t\treadonly: true,\r\n\t\t\t\torder: 4,\r\n\t\t\t\tvisibleFields: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"DashboardTemplateId\",\r\n\t\t\t\t\t\toperator: \"==\",\r\n\t\t\t\t\t\tvalue: t.Id\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t],\r\n\t\t\t})\r\n\t\t\tthis.editFieldsTemplate.push(roq);\r\n\t\t});\r\n\r\n\t\tthis.isLoading = false;\r\n\t}\r\n\r\n\r\n\tsubmitForm(submittedValues: string) {\r\n\t\tthis.loadingMessage = \"'Creating Dashboard'\";\r\n\t\tthis.isLoading = true;\r\n\t\tGlobal.User.DebugMode && console.log(\"dashboard-edit.component.ts: submitForm: submittedValues = %O\", submittedValues);\r\n\t\tvar fieldListAsString = submittedValues.replace(\"{\", \"\").replace(\"}\", \"\").replace(/:/g, \"=\").replace(/\\\"/g, \"\");\r\n\t\tGlobal.User.DebugMode && console.log(\"dashboard-edit.component.ts: fieldListAsString = \" + fieldListAsString);\r\n\t\tvar submittedValuesObject = JSON.parse(submittedValues);\r\n\t\tGlobal.User.DebugMode && console.log(\"submittedValuesObject = %O\", submittedValuesObject);\r\n\t\tGlobal.User.DebugMode && console.log(\"Object.keys(submittedValuesObject) = %O\", Object.keys(submittedValuesObject));\r\n\r\n\t\tif(submittedValuesObject.DashboardTemplateId != null) {\r\n\t\t\t// create from template\r\n\t\t\tvar sql = \"API.Dashboards_CopyDashboard @DescriptionForDashboard= '\" + submittedValuesObject.Description + \"', @NameForDashboard= '\" + submittedValuesObject.Name + \"', @DashboardId=\" + submittedValuesObject.DashboardTemplateId + \", @ToUserId = \" + Global.User.currentUser.Id\r\n\t\t\tthis.dataService.SQLActionAsPromise(sql).then((data: any) => {\r\n\r\n\t\t\t\tvar sqlGetDashboards = \"API.GetDashboardsForUser @UserId = \" + Global.User.currentUser.Id\r\n\t\t\t\tthis.dataService.SQLActionAsPromise(sqlGetDashboards).then((dashboards: any) => {\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(\"dashboard created from template = %O\", dashboards);\r\n\t\t\t\t\tif (Global.isMobile) {\r\n\t\t\t\t\t\tdashboards = dashboards.filter((item) => {\r\n\t\t\t\t\t\t\treturn item.Type === \"Mobile\";\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.dataService.buildDashboardAndDashboardObjectAfterEdit(dashboards);\r\n\t\t\t\t\tthis.dataService.setUserDashboardList(dashboards);\r\n\t\t\t\t\tthis.isLoading = false;\r\n\t\t\t\t\tthis.closeWindow(dashboards);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// if IsTemplate and check prev value is not\r\n\t\t\t// this code does a copy of the dashboard as it is at this point in time\r\n\t\t\tif(submittedValuesObject.IsTemplate == 1 && this.id != 0 && Global.User.currentUser.DashboardsObject[this.id]?.IsTemplate == 0) {\r\n\t\t\t\t// are you sure?\r\n\r\n\t\t\t\tthis.swalWithBootstrapButtons\r\n\t\t\t\t\t.fire({\r\n\t\t\t\t\t\ttitle: \"Are you sure?\",\r\n\t\t\t\t\t\thtml: \"Warning: This will create a dashboard for all \" + this.numberOfPeopleInOrg + \" users in your organization.\",\r\n\t\t\t\t\t\tshowCancelButton: true,\r\n\t\t\t\t\t\tconfirmButtonText: \"Yes, Create \" + this.numberOfPeopleInOrg + \" Dashboards\",\r\n\t\t\t\t\t\tcancelButtonText: \"No, just make it a template\",\r\n\t\t\t\t\t\treverseButtons: false\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.then((result) => {\r\n\t\t\t\t\t\tif (result.value) {\r\n\t\t\t\t\t\t\t// logic for copy dashboard.\r\n\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(\"copyDashboard %0 to users = %1\", this.dashboard.Id, this.listOfUserIds);\r\n\t\t\t\t\t\t\tthis.copyDashboardTemplateToUsers(this.dashboard, this.listOfUserIds);\r\n\t\t\t\t\t\t\tthis.finishSubmittingForm(submittedValuesObject);\r\n\r\n\t\t\t\t\t\t} else if (result.dismiss === swal.DismissReason.cancel) {\r\n\t\t\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\t\t\tmessage: \"Dashboards have NOT been created.\",\r\n\t\t\t\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tthis.isLoading = false;\r\n\t\t\t\t\t\t\tthis.finishSubmittingForm(submittedValuesObject);\r\n\t\t\t\t\t\t\tthis.closeWindow(null);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.finishSubmittingForm(submittedValuesObject);\r\n\t\t\t}\r\n\r\n\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tfinishSubmittingForm(submittedValuesObject) {\r\n\t\tvar keys: Array = Object.keys(submittedValuesObject);\r\n\t\t\t//-- building a parameter list to attach to the end of the stored procedure to execute it. --Kirk T. Sherer, April 7, 2020.\r\n\t\t\tvar fieldListAsString: string = \"\";\r\n\t\t\tvar countOfFields = 1;\r\n\t\t\tkeys.forEach((key: any) => {\r\n\t\t\t\tif(key == 'DashboardTemplateId') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tvar questions = this.editFieldsCustom;\r\n\r\n\t\t\t\tquestions.forEach((question: any) => {\r\n\t\t\t\t\tif (key == question.key && question.key != \"dashboardHistoricalDataType\" && question.visible == true && (question.type == \"parent-key-field\" || (question.controlType != \"read-only\" && question.type != \"parent-key-field\"))) {\r\n\t\t\t\t\t\tvar value = submittedValuesObject[key];\r\n\t\t\t\t\t\tif (question.controlType == \"uib-button-multi-select\") {\r\n\t\t\t\t\t\t\tvalue = question.listOfValues\r\n\t\t\t\t\t\t\t\t?.where((d: any) => {\r\n\t\t\t\t\t\t\t\t\treturn d.IsSelected == 1;\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.select((vals: any) => {\r\n\t\t\t\t\t\t\t\t\treturn vals.Id;\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.toArray()\r\n\t\t\t\t\t\t\t\t.join(\",\"); //-- multi-select will be comma-separated list of Id numbers to pass to the stored procedure. --Kirk T. Sherer, September 9, 2021.\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfieldListAsString += \"@\" + key + \"=\";\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(\"key: \" + key + \", value: \" + value);\r\n\t\t\t\t\t\tif (typeof value == \"object\" && value != null) {\r\n\t\t\t\t\t\t\t//--if we made it here with an entire object, then get the Id value of the object since it came from a selector. --Kirk T. Sherer, May 25, 2021.\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(\"value = %O\", value);\r\n\t\t\t\t\t\t\tvar idFieldValue = value[\"Id\"];\r\n\t\t\t\t\t\t\tfieldListAsString += idFieldValue; //submittedValuesObject[key].Id;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (value == null) {\r\n\t\t\t\t\t\t\t\tfieldListAsString += \"null\";\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tif (question.controlType == \"slider-yes-no\" || question.controlType == \"slider-true-false\" || question.controlType == \"slider\" || question.controlType == \"true-false-button\") {\r\n\t\t\t\t\t\t\t\t\tfieldListAsString += value;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tif (isNaN(value) || value == \"\") {\r\n\t\t\t\t\t\t\t\t\t\tif (value == \"\") {\r\n\t\t\t\t\t\t\t\t\t\t\tfieldListAsString += \"null\";\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tfieldListAsString += \"'\" + value.trim().split(\"'\").join(\"''\") + \"'\";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tif (value == \"true\" || value == \"false\" || value == true || value == false) {\r\n\t\t\t\t\t\t\t\t\t\t\t//-- this is a boolean field. Set it as 1 for true or 0 for false.\r\n\t\t\t\t\t\t\t\t\t\t\tfieldListAsString += value == \"true\" || value == true ? \"1\" : \"0\";\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tif (value == 0 || value == \"0\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\tfieldListAsString += \"null\";\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (question.controlType == \"date\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldListAsString += +value;\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldListAsString += value;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (countOfFields < keys.length) {\r\n\t\t\t\t\t\t\tfieldListAsString += \",\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcountOfFields++;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// var value = submittedValuesObject[key];\r\n\t\t\t\t// console.log(\"key: \" + key + \", value: \" + value);\r\n\t\t\t\t// fieldListAsString += \"@\" + key + \"=\";\r\n\t\t\t\t// if (isNaN(submittedValuesObject[key]) || key == \"zipcode\") {\r\n\t\t\t\t// fieldListAsString += value ? \"'\" + value + \"'\" : \"null\";\r\n\t\t\t\t// } else {\r\n\t\t\t\t// fieldListAsString += value != \"\" ? value : \"null\";\r\n\t\t\t\t// }\r\n\t\t\t\t// if (countOfFields < keys.length) {\r\n\t\t\t\t// fieldListAsString += \", \";\r\n\t\t\t\t// }\r\n\t\t\t\t// countOfFields++;\r\n\t\t\t});\r\n\t\t\tvar lastCharacter = fieldListAsString.charAt(fieldListAsString.length - 1);\r\n\t\t\tif (lastCharacter == \",\") {\r\n\t\t\t\tfieldListAsString = fieldListAsString.slice(0, -1);\r\n\t\t\t}\r\n\t\t\tGlobal.User.DebugMode && console.log(\"fieldListAsString = \" + fieldListAsString);\r\n\t\t\tvar sql = \"API.AddOrUpdateDashboardRecord @Id=\" + this.dashboardId + \", @CreatorUserId = \" + Global.User.currentUser.Id + \", \" + fieldListAsString;\r\n\t\t\tthis.dataService.SQLActionAsPromise(sql).then((data: any) => {\r\n\t\t\t\tconsole.log(\"dashboards after update = %O\", data);\r\n\t\t\t\tif (Global.isMobile) {\r\n\t\t\t\t\tdata = data.filter((item) => {\r\n\t\t\t\t\t\treturn item.Type === \"Mobile\";\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.dataService.buildDashboardAndDashboardObjectAfterEdit(data);\r\n\t\t\t\tthis.dataService.setUserDashboardList(data);\r\n\t\t\t\tthis.isLoading = false;\r\n\t\t\t\tthis.closeWindow(data);\r\n\t\t\t});\r\n\t}\r\n}\r\n","\t\t
          \r\n\t\t\t\r\n\t\t\t
          \r\n\t\t\t\t

          {{ title }}

          \r\n \r\n\t\t\t\t
          {{ subTitle }}
          \r\n\t\t\t
          \r\n\t\t\t
          \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t \r\n\t\t\t\t\t\tTemplate\r\n\t\t\t\t\t\tCustom\r\n\t\t\t\t\t \r\n\t\t\t\t\t
          \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t
          \r\n\r\n\r\n\t\t\t
          \r\n\r\n\t\t\t
          \r\n\r\n\t\t\t\t
          \r\n\t\t\t\t\t\r\n\t\t\t\t
          \r\n\r\n\t\t\t
          \r\n\t\t
          \r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DashboardEditComponent } from './dashboard-edit.component';\r\nimport { LoadingSpinnerModule } from '../loading-spinner/loading-spinner.module';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { DynamicFormModule } from '../dynamic-form/dynamic-form.module';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport {MatStepperModule} from '@angular/material/stepper';\r\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\r\n\r\n\r\n@NgModule({\r\n\tdeclarations: [DashboardEditComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tLoadingSpinnerModule,\r\n\t\tMatTooltipModule,\r\n\t\tMatButtonModule,\r\n\t\tReactiveFormsModule,\r\n\t\tFormsModule,\r\n\t\tDynamicFormModule,\r\n\t\tMatDialogModule,\r\n\t\tMatStepperModule,\r\n\t\tMatButtonToggleModule,\r\n\t],\r\n\texports: [DashboardEditComponent],\r\n})\r\nexport class DashboardEditModule {}\r\n","import { Component, HostListener, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\nimport { SignalRCoreService } from 'projects/shared-lib/src/lib/services/signalr-core.service';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\nimport { filter } from 'rxjs/operators';\r\nimport { UtilityService } from '../../services/utility.service';\r\nimport { QuestionBase } from '../../_models/dynamic-fields/questions/question-base';\r\nimport { DateTimeQuestion } from '../../_models/dynamic-fields/questions/question-datetime';\r\nimport { TextboxQuestion } from '../../_models/dynamic-fields/questions/question-textbox';\r\nimport { UibButtonQuestion } from '../../_models/dynamic-fields/questions/question-uib-button';\r\nimport { IGlobal } from '../../_models/global.model';\r\n\r\n\r\n@Component({\r\n\tselector: 'lib-test-observation-delay',\r\n\ttemplateUrl: './test-observation-delay.component.html',\r\n\tstyleUrls: ['./test-observation-delay.component.scss']\r\n})\r\nexport class TestObservationDelayComponent implements OnInit, OnDestroy {\r\n\r\n\t@HostListener('window:resize', ['$event'])\r\n\r\n\tpublic timeSent: number;\r\n\tpublic timeReceived: number;\r\n\tpublic totalTime: number;\r\n\tpublic numberOfTests: number = 50;\r\n\tpublic componentName: string = \"test-observation-delay: \";\r\n\tpublic arrayOfObservations: Array;\r\n\r\n\tpublic countOfObservations: number = 0;\r\n\tpublic signalRTestMessageGroups: Array = [];\r\n\tpublic currentIndex: string;\r\n\tpublic global: IGlobal = Global;\r\n\r\n\tpublic screenHeight: number;\r\n\tpublic screenWidth: number;\r\n\tpublic dbTransmitterTableWidth: number = 770;\r\n\tpublic signalRContainerWidth: number = 840;\r\n\tpublic statisticalRow: any;\r\n\tpublic dataTable: any;\r\n\tpublic isLoading: boolean = false;\r\n\tpublic recordCount: number = 0;\r\n\t\r\n\tpublic editingForm: boolean = false;\r\n\tpublic editQuestions: QuestionBase[];\r\n\tpublic editFormOptions: any;\r\n\tpublic loadingEditForm: boolean = false;\r\n\tprivate parameterListAsString: string = \"\";\r\n\tpublic editHeader: string; \r\n\tpublic editSubHeader: string; \r\n\tpublic currentTestTag: string; \r\n\r\n\tconstructor(private signalRCore: SignalRCoreService, public dataService: DataService, public dialogRef: MatDialogRef, public utilityService: UtilityService) {\r\n\t\tthis.onResize();\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.startTest();\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.signalRCore.leaveAdditionalGroup(\"TestPattern\");\r\n\t\tGlobal.SignalR.testInProgress = false;\r\n\t\tthis.signalRCore.signalRTestInProgress$.next(Global.SignalR.testInProgress); //-notifying the silent SignalR test in the SignalR service that the testing is complete. --Kirk T. Sherer, September 27, 2022. \r\n\t}\r\n\r\n\tstartTest(sql?: string) {\r\n\t\tthis.isLoading = true;\r\n\t\tif (sql == undefined) {\r\n\t\t\tsql = \"API.Observation_LagTime\";\r\n\t\t}\r\n\r\n\t\tthis.dataService.SQLActionAsPromise(sql).then((data: any) => {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"API.Observation_LagTime data = %O\", data);\r\n\t\t\tthis.statisticalRow = data.last();\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"statisticalRow = %O\", this.statisticalRow);\r\n\t\t\tthis.statisticalRow.CurrentDate = new Date();\r\n\t\t\tthis.dataTable = data.where((d:any) => { return d.Id != this.statisticalRow.TotalCount + 1 }).toArray();\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"dataTable = %O\", this.dataTable);\r\n\t\t\tthis.recordCount = this.dataTable.length;\r\n\t\t\tthis.isLoading = false;\r\n\t\t});\r\n\t}\r\n\r\n\tcloseDialog(): void {\r\n\t\tthis.dialogRef.close();\r\n\t}\r\n\r\n\trestartTest() {\r\n\t\tthis.startTest();\r\n\t}\r\n\r\n\tonResize(event?) {\r\n\t\tthis.screenHeight = window.innerHeight;\r\n\t\tthis.screenWidth = window.innerWidth;\r\n\t}\r\n\r\n\tedit() {\r\n\t\tthis.editingForm = true;\r\n\t\tthis.loadingEditForm = true;\r\n\t\tthis.editHeader = \"Change Test Parameters\";\r\n\t\tthis.editSubHeader = \"Please edit the fields listed here to change the test to your choice of the test tag and the date/times for the test.\";\r\n\r\n\t\tthis.editFormOptions = {\r\n\t\t\tsubmitButtonText: \"Save Changes\",\r\n\t\t\tsaveValuesPerField: false,\r\n\t\t\tsaveStoredProcedureName: \"API.Observation_LagTime\",\r\n\t\t\tcancelButtonText: \"Cancel\",\r\n\t\t};\r\n\r\n\t\tthis.editQuestions = [\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\t//-- select the list of test tags from a stored procedure and place in a button group. \r\n\t\t\t\tkey: \"TestTag\",\r\n\t\t\t\tlabel: \"Test Tag\",\r\n\t\t\t\ttitle: \"Choose the Tag Name that should be tested.\",\r\n\t\t\t\ttype: \"text\",\r\n\t\t\t\tvalue: this.statisticalRow.TestTag,\r\n\t\t\t\torder: 1\r\n\t\t\t}),\r\n\t\t\tnew DateTimeQuestion({\r\n\t\t\t\tkey: \"FromDate\",\r\n\t\t\t\tlabel: \"From Date\",\r\n\t\t\t\ttitle: \"The From Date and Time that you want to start the test.\",\r\n\t\t\t\tvalue: this.statisticalRow.FromDate,\r\n\t\t\t\torder: 2\r\n\t\t\t}),\r\n\t\t\tnew DateTimeQuestion({\r\n\t\t\t\tkey: \"ToDate\",\r\n\t\t\t\tlabel: \"To Date\",\r\n\t\t\t\ttitle: \"The To Date and Time this test should end. You can leave this blank and the test will start from the 'From Date' and go to the current date/time.\",\r\n\t\t\t\tvalue: this.statisticalRow.ToDate,\r\n\t\t\t\torder: 3\r\n\t\t\t})\r\n\t\t];\r\n\r\n\t\tthis.loadingEditForm = false;\r\n\t}\r\n\r\n\tsubmitChangesAndExecuteTest(submittedValues) {\r\n\t\tconsole.log(\"edited issue change submitted...\");\r\n\t\tvar submittedValuesObject = JSON.parse(submittedValues);\r\n\t\t//console.log(\"submittedValuesObject = %O\", submittedValuesObject);\r\n\t\t// console.log(\"Object.keys(submittedValuesObject) = %O\", Object.keys(submittedValuesObject));\r\n\t\tvar keys: Array = Object.keys(submittedValuesObject);\r\n\r\n\t\tthis.parameterListAsString = \"\";\r\n\t\tvar countOfParameters = 1;\r\n\t\tkeys.forEach((key: any) => {\r\n\t\t\tvar questions = this.editQuestions;\r\n\t\t\tquestions.forEach((question: any) => {\r\n\t\t\t\tif (key == question.key && question.controlType != \"read-only\") {\r\n\t\t\t\t\tvar value = submittedValuesObject[key];\r\n\t\t\t\t\tconsole.log(\"key: \" + key + \", value: \" + value);\r\n\t\t\t\t\tthis.parameterListAsString += \"@\" + key + \"=\";\r\n\t\t\t\t\tif (isNaN(submittedValuesObject[key])) {\r\n\t\t\t\t\t\tthis.parameterListAsString += \"'\" + this.utilityService.updateStringToSQLSyntax(value) + \"'\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.parameterListAsString += value;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (countOfParameters < keys.length) {\r\n\t\t\t\t\t\tthis.parameterListAsString += \", \";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcountOfParameters++;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconsole.log(\"this.parameterListAsString = \" + this.parameterListAsString);\r\n\t\r\n\t\tthis.editingForm = false;\r\n\t\tthis.isLoading = true;\r\n\t\tthis.startTest(\"API.Observation_LagTime \" + this.parameterListAsString);\r\n\t}\r\n}\r\n","\r\n
          \r\n\t
          \r\n\t\t
          Test Observation Delay
          \r\n\t\t
          \r\n\t\t\t\r\n\t\t
          \r\n\t
          \r\n\t
          \r\n\t\t
          \r\n\t\t\tStart Date: {{ statisticalRow.FromDate }}\r\n\t\t
          \r\n\t\t
          \r\n\t\t\tEnd Date: {{ statisticalRow.CurrentDate }} \r\n\t\t
          \r\n\t\t
          \r\n\t\t
          \r\n\t\t\tTest Tag: {{ statisticalRow.TestTag }} \r\n\t\t
          \r\n\t\t
          \r\n\t\t
          No test data available for time period.
          \r\n\t\t
          \r\n\t\t\t
          \r\n\t\t\t\tTotal Observations: {{ statisticalRow.TotalCount }}\r\n\t\t\t
          \r\n\t\t\t
          \r\n\t\t\t\tMissing: {{ statisticalRow.MissingPercentage }}% ({{ statisticalRow.MissingCount }})\r\n\t\t\t
          \r\n\t\t\t
          \r\n\t\t\t\tDuplicate: {{ statisticalRow.DuplicatePercentage }}% ({{ statisticalRow.DuplicateCount }})\r\n\t\t\t
          \r\n\t\t\t
          \r\n\t\t\t\tTotal Outliers: {{ statisticalRow.OutlierPercentage }}% ({{ statisticalRow.OutlierCount }})\r\n\t\t\t
          \r\n\t\t\t
          \r\n\t\t\tDelays\r\n\t\t\t
          \r\n\t\t\t\tMax: {{ statisticalRow.MaxDelay }} seconds
          \r\n\t\t\t\tMin: {{ statisticalRow.MinDelay }} seconds
          \r\n\t\t\t\tAvg: {{ statisticalRow.AverageDelay }} seconds\r\n\t\t\t
          \r\n\t\t\t
          \r\n\t\t\tStatistics\r\n\t\t\t
          \r\n\t\t\t\tLess than 0.1 seconds: {{ statisticalRow.LessThanTenthOfASecondPercentage }}% ({{statisticalRow.LessThanTenthOfASecond }})
          \r\n\t\t\t\tBetween 0.1 and 0.25 seconds: {{ statisticalRow.LessThanQuarterOfASecondPercentage }}% ({{statisticalRow.LessThanQuarterOfASecond }})
          \r\n\t\t\t\tBetween 0.25 and 0.5 seconds: {{ statisticalRow.LessThanHalfASecondPercentage }}% ({{statisticalRow.LessThanHalfASecond }})
          \r\n\t\t\t\tBetween 0.5 and 1.0 seconds: {{ statisticalRow.LessThanOneSecondPercentage }}% ({{statisticalRow.LessThanOneSecond }})
          \r\n\t\t\t\tBetween 1.0 and 2.0 seconds: {{ statisticalRow.LessThanTwoSecondsPercentage }}% ({{statisticalRow.LessThanTwoSeconds }})
          \r\n\t\t\t\tBetween 2.0 and 5.0 seconds: {{ statisticalRow.LessThanFiveSecondsPercentage }}% ({{statisticalRow.LessThanFiveSeconds }})
          \r\n\t\t\t\tBetween 5.0 and 10 seconds: {{ statisticalRow.LessThanTenSecondsPercentage }}% ({{statisticalRow.LessThanTenSeconds }})
          \r\n\t\t\t\tGreater than 10 seconds: {{ statisticalRow.GreaterThanTenSecondsPercentage }}% ({{statisticalRow.GreaterThanTenSeconds }})
          \r\n\t\t\t
          \r\n\t\t
          \r\n\t\t
          \r\n\t\t\r\n\t\t
          \r\n\t\t\r\n\t
          \r\n\t
          \r\n\t\t\r\n\t
          \r\n
          ","import {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tOnDestroy,\r\n\tViewChild,\r\n\tOnInit,\r\n} from '@angular/core';\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport {\r\n\tMatTreeFlatDataSource,\r\n\tMatTreeFlattener,\r\n} from '@angular/material/tree';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\nimport { DataService } from '../../services/data.service';\r\nimport _ from 'lodash';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Subscription, fromEvent } from 'rxjs';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport {\r\n\tDisplayGrid,\r\n\tGridsterConfig,\r\n\tGridsterItem,\r\n\tGridsterItemComponentInterface,\r\n\tGridType,\r\n} from 'angular-gridster2';\r\nimport { DashboardService } from 'projects/shared-lib/src/lib/services/dashboard.service';\r\n/**\r\n * GSESiteAndAssets data with nested structure.\r\n * Each node has a name and an optional list of children.\r\n */\r\ninterface GSESiteAndAssets {\r\n\tName: string;\r\n\tId: bigint;\r\n\tAssets?: GSESiteAndAssets[];\r\n\tSite?: Site;\r\n}\r\n\r\ninterface Site {\r\n\tName: string;\r\n}\r\n\r\n/** Flat node with expandable and level information */\r\ninterface FlatNode {\r\n\texpandable: boolean;\r\n\tname: string;\r\n\tId: bigint;\r\n\tlevel: number;\r\n\tsiteName: string;\r\n}\r\n\r\n/**\r\n * @title Tree with flat nodes\r\n */\r\n@Component({\r\n\tselector: 'lib-asset-summary',\r\n\ttemplateUrl: './asset-summary-view.component.html',\r\n\tstyleUrls: ['./asset-summary-view.component.scss'],\r\n})\r\nexport class AssetSummaryViewComponent implements OnInit, OnDestroy {\r\n\t@ViewChild('parentContentPunchout') parentContentPunchout: any;\r\n\tuserSites: Array;\r\n\tdataObject: any;\r\n\tactiveNode: any;\r\n\tsummaryVisible: boolean = false;\r\n\tpublic gseSummaryCreatedEvent: EventEmitter = new EventEmitter();\r\n\tsearchString: any;\r\n\tisMobile: boolean = false;sub: Subscription;\r\n\tcurrentRoutedAsset: any;\r\n;\r\n\tcolorChangedSubscription: Subscription;\r\n\t//templatesExistingForUser: Array;\r\n\ttheme: string;\r\n\ttemplateForm: FormGroup;\r\n\toptions: GridsterConfig;\r\n\tnavigationOpen: boolean = true;\r\n\tinitializeTemplate: boolean = false;\r\n\tDashboardTimeZones: any;\r\n\tDashboardTimeScopes: Array;\r\n\tpublic currentDashboard: any;\r\n\tpublic dashboardTimeScopeChanged: EventEmitter = new EventEmitter();\r\n\tpublic dashboardTimeZoneChanged: EventEmitter = new EventEmitter();\r\n\tconstructor(\r\n\t\tpublic dataService: DataService,\r\n\t\tpublic dashboardService: DashboardService,\r\n\t\tprivate route: ActivatedRoute,\r\n\t\tprivate router: Router\r\n\t) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.sub = this.route.params.subscribe((params) => {\r\n\t\t\tconsole.log(params.id);\r\n\t\t\tconsole.log(this.router)\r\n\t\t\tif(this.router.url.includes(\"/layout/assets\")) {\r\n\t\t\t\tlet route = this.router.url.split(\"/\")[3];\r\n\t\t\t\tconsole.log(route);\r\n\t\t\t\tif(route !== undefined){\r\n\r\n\t\t\t\t\tthis.currentRoutedAsset = this.dataService.cache.assets.find(asset => {\r\n\t\t\t\t\t\treturn asset.Id == route\r\n\t\t\t\t\t});\r\n\t\t\t\t\tconsole.log(this.currentRoutedAsset)\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.currentRoutedAsset = undefined;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// this.dashboardService.closeAllOpenPopups();\r\n\t\t});\r\n\t\tthis.currentDashboard = {};\r\n\t\tthis.currentDashboard.TimeZoneId = 1;\r\n\t\tthis.currentDashboard.TimeScopeId = 4;\r\n\t\tthis.currentDashboard.Name = 'PunchOut Screen';\r\n\t\tthis.dashboardService.currentDashboard = this.currentDashboard;\r\n\r\n\t\tthis.DashboardTimeZones = Global.User.currentUser.DashboardTimeZones;\r\n\t\tthis.DashboardTimeScopes = Global.User.currentUser.DashboardTimeScopes;\r\n\t\tthis.isMobile = Global.isMobile ? true : false;\r\n\t\tthis.initializeTemplate = true;\r\n\t\t// console.log(this.parentContentPunchout.nativeElement.clientHeight);\r\n\t\tthis.userSites = [];\r\n\t\tlet sites = this.dataService.cache.sites.toArray();\r\n\t\t//GSE,Deicer,Loader,Pushback,PCA-Portable,GPU-Portable,Fire Truck,Refuse Truck\r\n\t\tlet assetTypeIds = [\r\n\t\t\t86292, 86293, 86294, 86295, 86296, 86297, 86298, 86299, 86300, 86313, 86314\r\n\t\t];\r\n\t\t//Filter Sites with GSE Assets\r\n\t\tsites.forEach((site) => {\r\n\t\t\tsite.Assets = site.Assets.filter(function (asset) {\r\n\t\t\t\treturn assetTypeIds.includes(asset.AssetTypeId);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tsites = sites.filter((site) => {\r\n\t\t\treturn (\r\n\t\t\t\tsite.Active == true &&\r\n\t\t\t\tsite.Name !== undefined &&\r\n\t\t\t\tsite.Assets.length > 0\r\n\t\t\t);\r\n\t\t});\r\n\t\tsites = _.orderBy(sites, 'Name', 'asc');\r\n\r\n\t\tif (Global.User.isAdmin == false) {\r\n\t\t\tthis.userSites = sites.filter((site) => {\r\n\t\t\t\treturn Global.User.currentUser.Security.Aggregate.Collections.SiteIds.includes(\r\n\t\t\t\t\tsite.Id\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.userSites = sites;\r\n\t\t}\r\n\t\tthis.theme = Global.Theme;\r\n\t\tthis.dataSource.data = this.userSites;\r\n\t\tconst TREE_DATA: GSESiteAndAssets[] = this.userSites;\r\n\t\tthis.colorChangedSubscription =\r\n\t\t\tthis.dataService.colorChanged$.subscribe((data: any) => {\r\n\t\t\t\tthis.theme = data;\r\n\t\t\t});\r\n\t}\r\n\r\n\tonClick() {\r\n\t\tthis.navigationOpen = !this.navigationOpen;\r\n\t}\r\n\tchangeDashboardTimeZone() {\r\n\t\tthis.dashboardService.currentDashboard = this.currentDashboard;\r\n\t\tthis.dataService.punchoutTimeZoneChanged(this.dashboardService.canvasWidgetsOnPunchOutScreenWithTimeZoneTimeScope)\r\n\t}\r\n\tchangeDashboardTimeScope() {\r\n\t\tthis.dashboardService.currentDashboard = this.currentDashboard;\r\n\t\tthis.dataService.punchoutTimeScopeChanged(this.dashboardService.canvasWidgetsOnPunchOutScreenWithTimeZoneTimeScope)\r\n\t}\r\n\tonClickShowSummary(node) {\r\n\t\tthis.activeNode = node;\r\n\t\tthis.router.navigate(['layout/assets', node.Id]);\r\n\t\tthis.currentRoutedAsset = this.dataService.cache.assets.find(asset => {\r\n\t\t\treturn asset.Id == node.Id\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tGlobal.User.DebugMode && console.log('ngOnDestroy invoked...');\r\n\t\tif (this.colorChangedSubscription !== undefined) {\r\n\t\t\tthis.colorChangedSubscription.unsubscribe();\r\n\t\t}\r\n\t}\r\n\r\n\tsearchThis(searchword) {\r\n\t\tconsole.log(searchword);\r\n\t\tthis.searchString = searchword;\r\n\t}\r\n\r\n\t// search filter logic start\r\n\tfilterLeafNode(node: FlatNode): boolean {\r\n\r\n\t\tif (!this.searchString) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t//If the search String matches the SiteName then show all the assets for that Site\r\n\t\tif (node.siteName.toLowerCase().indexOf(this.searchString?.toLowerCase()) !== -1) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\tnode.name\r\n\t\t\t\t.toLowerCase()\r\n\t\t\t\t.indexOf(this.searchString?.toLowerCase()) === -1\r\n\t\t);\r\n\t}\r\n\r\n\tfilterParentNode(node: FlatNode): boolean {\r\n\t\tif (\r\n\t\t\t!this.searchString ||\r\n\t\t\tnode.name\r\n\t\t\t\t.toLowerCase()\r\n\t\t\t\t.indexOf(this.searchString?.toLowerCase()) !== -1\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst descendants = this.treeControl.getDescendants(node);\r\n\r\n\t\tif (\r\n\t\t\tdescendants.some(\r\n\t\t\t\t(descendantNode) =>\r\n\t\t\t\t\tdescendantNode.name\r\n\t\t\t\t\t\t.toLowerCase()\r\n\t\t\t\t\t\t.indexOf(this.searchString?.toLowerCase()) !== -1\r\n\t\t\t)\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprivate _transformer = (node: GSESiteAndAssets, level: number) => {\r\n\t\treturn {\r\n\t\t\texpandable: !!node.Assets && node.Assets.length > 0,\r\n\t\t\tname: node.Name,\r\n\t\t\tId: node.Id,\r\n\t\t\tlevel: level,\r\n\t\t\tsiteName: node.Assets ? node.Name : node.Site.Name,\r\n\t\t};\r\n\t};\r\n\r\n\ttreeControl = new FlatTreeControl(\r\n\t\t(node) => node.level,\r\n\t\t(node) => node.expandable\r\n\t);\r\n\r\n\ttreeFlattener = new MatTreeFlattener(\r\n\t\tthis._transformer,\r\n\t\t(node) => node.level,\r\n\t\t(node) => node.expandable,\r\n\t\t(node) => node.Assets\r\n\t);\r\n\r\n\tdataSource = new MatTreeFlatDataSource(\r\n\t\tthis.treeControl,\r\n\t\tthis.treeFlattener\r\n\t);\r\n\r\n\thasChild = (_: number, node: FlatNode) => node.expandable;\r\n}\r\n","
          \r\n\r\n\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t\t\t

          {{currentRoutedAsset?.Name ? 'Current Asset: ' + currentRoutedAsset.Name : 'GSE Assets'}}

          \r\n\t\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t\t\t
          \r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\t\t\t\t\t\ttreeControl.isExpanded(node)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"expand_more\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"chevron_right\"\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{{ node.name }}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{{ node.name }}\r\n\t\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
          \r\n\r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t
          \r\n\r\n\t\t\t
          \r\n
          \r\n
          \r\n\t
          \r\n\t\t
          \r\n\t\t\t
          \r\n\t\t\t\t\r\n\t\t\t
          \r\n\t\t\t

          {{currentRoutedAsset?.Name ? 'Current Asset: ' + currentRoutedAsset.Name : 'GSE Assets'}}

          \r\n\t\t\t
          0\">\r\n\t\t\t\t\r\n\t\t\t\t\tSelect a Dashboard Timescope\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{{ timeWindow.Description }}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
          \r\n\t\t\t
          0\">\r\n\t\t\t\t\r\n\t\t\t\t\tSelect a Dashboard Timezone\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{{ timeZone.Description }}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
          \r\n\r\n\t\t
          \r\n\t\t
          \r\n\t\t\t
          \r\n\t\t\t\t
          \r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t
          \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\t\t\t\ttreeControl.isExpanded(node)\r\n\t\t\t\t\t\t\t\t\t\t\t? \"expand_more\"\r\n\t\t\t\t\t\t\t\t\t\t\t: \"chevron_right\"\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{{ node.name }}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{{ node.name }}\r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t
          \r\n\r\n\t\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t
          \r\n\t\t
          \r\n\r\n\t
          \r\n
          \r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n\tselector: 'lib-material-input',\r\n\ttemplateUrl: './material-input.component.html',\r\n\tstyleUrls: ['./material-input.component.scss'],\r\n})\r\nexport class MaterialInputComponent implements OnInit {\r\n\t@Input() devLabel: string;\r\n\t@Input() devPlaceholder: string;\r\n\t@Output() searchcriteria = new EventEmitter();\r\n\tpublic searchword: string;\r\n\r\n\tconstructor() {}\r\n\r\n\tngOnInit(): void {}\r\n\r\n\tsearchThis() {\r\n\t\tthis.searchcriteria.emit(this.searchword);\r\n\t}\r\n}\r\n","
          \r\n\t\r\n\t {{devLabel}}\r\n\t \r\n\t\r\n\r\n\r\n
          \r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MaterialInputComponent } from './material-input.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n\tdeclarations: [MaterialInputComponent],\r\n\timports: [CommonModule, MatInputModule, FormsModule],\r\n\texports: [MaterialInputComponent],\r\n})\r\nexport class MaterialInputModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { AssetSummaryViewComponent } from './asset-summary-view.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { AssetSummaryParentModule } from '../asset-summary-parent/asset-summary-parent.module';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MaterialInputModule } from '../material-input/material-input.module';\r\nimport { GridsterModule } from 'angular-gridster2';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatSelectModule } from '@angular/material/select';\r\n\r\n@NgModule({ declarations: [AssetSummaryViewComponent],\r\n exports: [AssetSummaryViewComponent], imports: [BrowserAnimationsModule,\r\n FormsModule,\r\n MatNativeDateModule,\r\n ReactiveFormsModule,\r\n MatTreeModule,\r\n MatIconModule,\r\n AssetSummaryParentModule,\r\n RouterModule,\r\n MaterialInputModule,\r\n GridsterModule,\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatSelectModule], providers: [provideHttpClient(withInterceptorsFromDi())] })\r\nexport class AssetSummaryViewModule {}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport _ from 'lodash';\r\nimport { DashboardService } from 'projects/shared-lib/src/lib/services/dashboard.service';\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\nimport { IGlobal } from '../../_models/global.model';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { UtilityService } from '../../services/utility.service';\r\n\r\n@Component({\r\n\tselector: 'lib-dashboard-custom-timescope-popup-confirmation-settings',\r\n\ttemplateUrl:\r\n\t\t'./dashboard-custom-timescope-popup-confirmation-settings.component.html',\r\n\tstyleUrls: [\r\n\t\t'./dashboard-custom-timescope-popup-confirmation-settings.component.scss',\r\n\t],\r\n})\r\nexport class DashboardCustomTimescopePopupConfirmationSettingsComponent\r\n\timplements OnInit\r\n{\r\n\tpublic global: IGlobal = Global;\r\n\tform: FormGroup;\r\n\tmaxDate: Date;\r\n\r\n\tconstructor(\r\n\t\t@Inject(MAT_DIALOG_DATA) public inputObject: any,\r\n\t\tpublic dialogRef: MatDialogRef,\r\n\t\tprivate dataService: DataService,\r\n\t\tpublic toastr: ToastrService,\r\n\t\tprivate utilityService: UtilityService\r\n\t) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.maxDate = new Date();\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tstartDateTime: new FormControl(\r\n\t\t\t\tnew Date(this.inputObject.dashboardObject.CustomStartDateMS)\r\n\t\t\t),\r\n\t\t\tendDateTime: new FormControl(\r\n\t\t\t\tnew Date(this.inputObject.dashboardObject.CustomEndDateMS)\r\n\t\t\t),\r\n\t\t});\r\n\t\tconsole.log(this.inputObject);\r\n\t}\r\n\r\n\tonCancel() {\r\n\t\tthis.dialogRef.close();\r\n\t}\r\n\r\n\tsubmitAndClose() {\r\n\t\tconsole.log(this.form.value);\r\n\t\tlet startDateMS = this.form.value.startDateTime.getTime();\r\n\t\tlet endDateMS = this.form.value.endDateTime.getTime();\r\n\t\tif (startDateMS > endDateMS) {\r\n\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\ttype: 'error',\r\n\t\t\t\tmessage:\r\n\t\t\t\t\t'Please make sure the start date is before the end date.',\r\n\t\t\t\ttitle: 'Improper Date Range',\r\n\t\t\t});\r\n\t\t\tthis.toastr.error(\r\n\t\t\t\t'Please make sure the start date is before the end date.'\r\n\t\t\t);\r\n\t\t\treturn;\r\n\t\t} else if (startDateMS === endDateMS) {\r\n\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\ttype: 'error',\r\n\t\t\t\tmessage:\r\n\t\t\t\t\t'Please make sure the start date is before the end date.',\r\n\t\t\t\ttitle: 'Improper Date Range',\r\n\t\t\t});\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tthis.dialogRef.close({\r\n\t\t\t\tstartDateMS: startDateMS,\r\n\t\t\t\tendDateMS: endDateMS,\r\n\t\t\t});\r\n\t\t}\r\n\t\t// this.dialogRef.close(this.inputObject);\r\n\t}\r\n}\r\n","\r\n\t\r\n\t\t
          \r\n\t\t\t\r\n\t\t\t\tCustom Time Scope Settings\r\n\t\t\t\r\n\r\n\t\t
          \r\n\r\n\t\t\r\n\t\t\t
          \r\n\t\t\t\t\r\n\t\t\t
          \r\n\t\t\r\n\t
          \r\n\t
          \r\n\t\t
          \r\n\t\t\t
          \r\n\r\n\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t
          \r\n\r\n\t\t
          \r\n\t\t
          \r\n\t\t\t\r\n\t\t\tSubmit and Close\r\n\t\t\r\n\r\n\t\t
          \r\n\r\n\t
          \r\n
          \r\n","import { isDevMode } from '@angular/core';\n\n/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\nclass Trigger {\n constructor(open, close) {\n this.open = open;\n this.close = close || open;\n }\n isManual() {\n return this.open === 'manual' || this.close === 'manual';\n }\n}\nconst DEFAULT_ALIASES = {\n hover: ['mouseover', 'mouseout'],\n focus: ['focusin', 'focusout']\n};\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction parseTriggers(triggers, aliases = DEFAULT_ALIASES) {\n const trimmedTriggers = (triggers || '').trim();\n if (trimmedTriggers.length === 0) {\n return [];\n }\n const parsedTriggers = trimmedTriggers.split(/\\s+/).map(trigger => trigger.split(':')).map(triggerPair => {\n const alias = aliases[triggerPair[0]] || triggerPair;\n return new Trigger(alias[0], alias[1]);\n });\n const manualTriggers = parsedTriggers.filter(triggerPair => triggerPair.isManual());\n if (manualTriggers.length > 1) {\n throw new Error('Triggers parse error: only one manual trigger is allowed');\n }\n if (manualTriggers.length === 1 && parsedTriggers.length > 1) {\n throw new Error('Triggers parse error: manual trigger can\\'t be mixed with other triggers');\n }\n return parsedTriggers;\n}\nfunction listenToTriggers(renderer,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntarget, triggers, showFn, hideFn, toggleFn) {\n const parsedTriggers = parseTriggers(triggers);\n const listeners = [];\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\n return Function.prototype;\n }\n parsedTriggers.forEach(trigger => {\n if (trigger.open === trigger.close) {\n listeners.push(renderer.listen(target, trigger.open, toggleFn));\n return;\n }\n listeners.push(renderer.listen(target, trigger.open, showFn));\n if (trigger.close) {\n listeners.push(renderer.listen(target, trigger.close, hideFn));\n }\n });\n return () => {\n listeners.forEach(unsubscribeFn => unsubscribeFn());\n };\n}\nfunction listenToTriggersV2(renderer, options) {\n const parsedTriggers = parseTriggers(options.triggers);\n const target = options.target;\n // do nothing\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\n return Function.prototype;\n }\n // all listeners\n const listeners = [];\n // lazy listeners registration\n const _registerHide = [];\n const registerHide = () => {\n // add hide listeners to unregister array\n _registerHide.forEach(fn => listeners.push(fn()));\n // register hide events only once\n _registerHide.length = 0;\n };\n // register open\\close\\toggle listeners\n parsedTriggers.forEach(trigger => {\n const useToggle = trigger.open === trigger.close;\n const showFn = useToggle ? options.toggle : options.show;\n if (!useToggle && trigger.close && options.hide) {\n const triggerClose = trigger.close;\n const optionsHide = options.hide;\n const _hide = () => renderer.listen(target, triggerClose, optionsHide);\n _registerHide.push(_hide);\n }\n if (showFn) {\n listeners.push(renderer.listen(target, trigger.open, () => showFn(registerHide)));\n }\n });\n return () => {\n listeners.forEach(unsubscribeFn => unsubscribeFn());\n };\n}\nfunction registerOutsideClick(renderer, options) {\n if (!options.outsideClick) {\n return Function.prototype;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return renderer.listen('document', 'click', event => {\n if (options.target && options.target.contains(event.target)) {\n return;\n }\n if (options.targets && options.targets.some(target => target.contains(event.target))) {\n return;\n }\n if (options.hide) {\n options.hide();\n }\n });\n}\nfunction registerEscClick(renderer, options) {\n if (!options.outsideEsc) {\n return Function.prototype;\n }\n return renderer.listen('document', 'keyup.esc', event => {\n if (options.target && options.target.contains(event.target)) {\n return;\n }\n if (options.targets && options.targets.some(target => target.contains(event.target))) {\n return;\n }\n if (options.hide) {\n options.hide();\n }\n });\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * JS version of browser APIs. This library can only run in the browser.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst win = typeof window !== 'undefined' && window || {};\nconst document = win.document;\nconst location = win.location;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst gc = win.gc ? () => win.gc() : () => null;\nconst performance = win.performance ? win.performance : null;\nconst Event = win.Event;\nconst MouseEvent = win.MouseEvent;\nconst KeyboardEvent = win.KeyboardEvent;\nconst EventTarget = win.EventTarget;\nconst History = win.History;\nconst Location = win.Location;\nconst EventListener = win.EventListener;\nvar BsVerions = /*#__PURE__*/function (BsVerions) {\n BsVerions[\"isBs4\"] = \"bs4\";\n BsVerions[\"isBs5\"] = \"bs5\";\n return BsVerions;\n}(BsVerions || {});\nlet guessedVersion;\nfunction _guessBsVersion() {\n const spanEl = win.document.createElement('span');\n spanEl.innerText = 'testing bs version';\n spanEl.classList.add('d-none');\n spanEl.classList.add('pl-1');\n win.document.head.appendChild(spanEl);\n const checkPadding = win.getComputedStyle(spanEl).paddingLeft;\n if (checkPadding && parseFloat(checkPadding)) {\n win.document.head.removeChild(spanEl);\n return 'bs4';\n }\n win.document.head.removeChild(spanEl);\n return 'bs5';\n}\nfunction setTheme(theme) {\n guessedVersion = theme;\n}\nfunction isBs4() {\n if (guessedVersion) return guessedVersion === 'bs4';\n guessedVersion = _guessBsVersion();\n return guessedVersion === 'bs4';\n}\nfunction isBs5() {\n if (guessedVersion) return guessedVersion === 'bs5';\n guessedVersion = _guessBsVersion();\n return guessedVersion === 'bs5';\n}\nfunction getBsVer() {\n return {\n isBs4: isBs4(),\n isBs5: isBs5()\n };\n}\nfunction currentBsVersion() {\n const bsVer = getBsVer();\n const resVersion = Object.keys(bsVer).find(key => bsVer[key]);\n return BsVerions[resVersion];\n}\nclass LinkedList {\n constructor() {\n this.length = 0;\n this.asArray = [];\n // Array methods overriding END\n }\n get(position) {\n if (this.length === 0 || position < 0 || position >= this.length) {\n return void 0;\n }\n let current = this.head;\n for (let index = 0; index < position; index++) {\n current = current?.next;\n }\n return current?.value;\n }\n add(value, position = this.length) {\n if (position < 0 || position > this.length) {\n throw new Error('Position is out of the list');\n }\n const node = {\n value,\n next: undefined,\n previous: undefined\n };\n if (this.length === 0) {\n this.head = node;\n this.tail = node;\n this.current = node;\n } else {\n if (position === 0 && this.head) {\n // first node\n node.next = this.head;\n this.head.previous = node;\n this.head = node;\n } else if (position === this.length && this.tail) {\n // last node\n this.tail.next = node;\n node.previous = this.tail;\n this.tail = node;\n } else {\n // node in middle\n const currentPreviousNode = this.getNode(position - 1);\n const currentNextNode = currentPreviousNode?.next;\n if (currentPreviousNode && currentNextNode) {\n currentPreviousNode.next = node;\n currentNextNode.previous = node;\n node.previous = currentPreviousNode;\n node.next = currentNextNode;\n }\n }\n }\n this.length++;\n this.createInternalArrayRepresentation();\n }\n remove(position = 0) {\n if (this.length === 0 || position < 0 || position >= this.length) {\n throw new Error('Position is out of the list');\n }\n if (position === 0 && this.head) {\n // first node\n this.head = this.head.next;\n if (this.head) {\n // there is no second node\n this.head.previous = undefined;\n } else {\n // there is no second node\n this.tail = undefined;\n }\n } else if (position === this.length - 1 && this.tail?.previous) {\n // last node\n this.tail = this.tail.previous;\n this.tail.next = undefined;\n } else {\n // middle node\n const removedNode = this.getNode(position);\n if (removedNode?.next && removedNode.previous) {\n removedNode.next.previous = removedNode.previous;\n removedNode.previous.next = removedNode.next;\n }\n }\n this.length--;\n this.createInternalArrayRepresentation();\n }\n set(position, value) {\n if (this.length === 0 || position < 0 || position >= this.length) {\n throw new Error('Position is out of the list');\n }\n const node = this.getNode(position);\n if (node) {\n node.value = value;\n this.createInternalArrayRepresentation();\n }\n }\n toArray() {\n return this.asArray;\n }\n findAll(fn) {\n let current = this.head;\n const result = [];\n if (!current) {\n return result;\n }\n for (let index = 0; index < this.length; index++) {\n if (!current) {\n return result;\n }\n if (fn(current.value, index)) {\n result.push({\n index,\n value: current.value\n });\n }\n current = current.next;\n }\n return result;\n }\n // Array methods overriding start\n push(...args) {\n args.forEach(arg => {\n this.add(arg);\n });\n return this.length;\n }\n pop() {\n if (this.length === 0) {\n return undefined;\n }\n const last = this.tail;\n this.remove(this.length - 1);\n return last?.value;\n }\n unshift(...args) {\n args.reverse();\n args.forEach(arg => {\n this.add(arg, 0);\n });\n return this.length;\n }\n shift() {\n if (this.length === 0) {\n return undefined;\n }\n const lastItem = this.head?.value;\n this.remove();\n return lastItem;\n }\n forEach(fn) {\n let current = this.head;\n for (let index = 0; index < this.length; index++) {\n if (!current) {\n return;\n }\n fn(current.value, index);\n current = current.next;\n }\n }\n indexOf(value) {\n let current = this.head;\n let position = -1;\n for (let index = 0; index < this.length; index++) {\n if (!current) {\n return position;\n }\n if (current.value === value) {\n position = index;\n break;\n }\n current = current.next;\n }\n return position;\n }\n some(fn) {\n let current = this.head;\n let result = false;\n while (current && !result) {\n if (fn(current.value)) {\n result = true;\n break;\n }\n current = current.next;\n }\n return result;\n }\n every(fn) {\n let current = this.head;\n let result = true;\n while (current && result) {\n if (!fn(current.value)) {\n result = false;\n }\n current = current.next;\n }\n return result;\n }\n toString() {\n return '[Linked List]';\n }\n find(fn) {\n let current = this.head;\n for (let index = 0; index < this.length; index++) {\n if (!current) {\n return;\n }\n if (fn(current.value, index)) {\n return current.value;\n }\n current = current.next;\n }\n }\n findIndex(fn) {\n let current = this.head;\n for (let index = 0; index < this.length; index++) {\n if (!current) {\n return -1;\n }\n if (fn(current.value, index)) {\n return index;\n }\n current = current.next;\n }\n return -1;\n }\n getNode(position) {\n if (this.length === 0 || position < 0 || position >= this.length) {\n throw new Error('Position is out of the list');\n }\n let current = this.head;\n for (let index = 0; index < position; index++) {\n current = current?.next;\n }\n return current;\n }\n createInternalArrayRepresentation() {\n const outArray = [];\n let current = this.head;\n while (current) {\n outArray.push(current.value);\n current = current.next;\n }\n this.asArray = outArray;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction OnChange() {\n const sufix = 'Change';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function OnChangeHandler(target, propertyKey) {\n const _key = ` __${propertyKey}Value`;\n Object.defineProperty(target, propertyKey, {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get() {\n return this[_key];\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(value) {\n const prevValue = this[_key];\n this[_key] = value;\n if (prevValue !== value && this[propertyKey + sufix]) {\n this[propertyKey + sufix].emit(value);\n }\n }\n });\n };\n}\nclass Utils {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static reflow(element) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (bs => bs)(element.offsetHeight);\n }\n // source: https://github.com/jquery/jquery/blob/master/src/css/var/getStyles.js\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static getStyles(elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n let view = elem.ownerDocument.defaultView;\n if (!view || !view.opener) {\n view = win;\n }\n return view.getComputedStyle(elem);\n }\n static stackOverflowConfig() {\n const bsVer = currentBsVersion();\n return {\n crossorigin: \"anonymous\",\n integrity: bsVer === 'bs5' ? 'sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65' : 'sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2',\n cdnLink: bsVer === 'bs5' ? 'https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css' : 'https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css'\n };\n }\n}\nconst _messagesHash = {};\nconst _hideMsg = typeof console === 'undefined' || !('warn' in console);\nfunction warnOnce(msg) {\n if (!isDevMode() || _hideMsg || msg in _messagesHash) {\n return;\n }\n _messagesHash[msg] = true;\n console.warn(msg);\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BsVerions, LinkedList, OnChange, Trigger, Utils, currentBsVersion, document, getBsVer, listenToTriggers, listenToTriggersV2, parseTriggers, registerEscClick, registerOutsideClick, setTheme, warnOnce, win as window };\n","import { getBsVer } from 'ngx-bootstrap/utils';\nimport * as i0 from '@angular/core';\nimport { PLATFORM_ID, Injectable, Inject, ElementRef } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Subject, merge, fromEvent, of, animationFrameScheduler } from 'rxjs';\nvar MapPlacementInToRL = /*#__PURE__*/function (MapPlacementInToRL) {\n MapPlacementInToRL[\"top\"] = \"top\";\n MapPlacementInToRL[\"bottom\"] = \"bottom\";\n MapPlacementInToRL[\"left\"] = \"left\";\n MapPlacementInToRL[\"right\"] = \"right\";\n MapPlacementInToRL[\"auto\"] = \"auto\";\n MapPlacementInToRL[\"end\"] = \"right\";\n MapPlacementInToRL[\"start\"] = \"left\";\n MapPlacementInToRL[\"top left\"] = \"top left\";\n MapPlacementInToRL[\"top right\"] = \"top right\";\n MapPlacementInToRL[\"right top\"] = \"right top\";\n MapPlacementInToRL[\"right bottom\"] = \"right bottom\";\n MapPlacementInToRL[\"bottom right\"] = \"bottom right\";\n MapPlacementInToRL[\"bottom left\"] = \"bottom left\";\n MapPlacementInToRL[\"left bottom\"] = \"left bottom\";\n MapPlacementInToRL[\"left top\"] = \"left top\";\n MapPlacementInToRL[\"top start\"] = \"top left\";\n MapPlacementInToRL[\"top end\"] = \"top right\";\n MapPlacementInToRL[\"end top\"] = \"right top\";\n MapPlacementInToRL[\"end bottom\"] = \"right bottom\";\n MapPlacementInToRL[\"bottom end\"] = \"bottom right\";\n MapPlacementInToRL[\"bottom start\"] = \"bottom left\";\n MapPlacementInToRL[\"start bottom\"] = \"start bottom\";\n MapPlacementInToRL[\"start top\"] = \"left top\";\n return MapPlacementInToRL;\n}(MapPlacementInToRL || {});\nvar PlacementForBs5 = /*#__PURE__*/function (PlacementForBs5) {\n PlacementForBs5[\"top\"] = \"top\";\n PlacementForBs5[\"bottom\"] = \"bottom\";\n PlacementForBs5[\"left\"] = \"start\";\n PlacementForBs5[\"right\"] = \"end\";\n PlacementForBs5[\"auto\"] = \"auto\";\n PlacementForBs5[\"end\"] = \"end\";\n PlacementForBs5[\"start\"] = \"start\";\n PlacementForBs5[\"top left\"] = \"top start\";\n PlacementForBs5[\"top right\"] = \"top end\";\n PlacementForBs5[\"right top\"] = \"end top\";\n PlacementForBs5[\"right bottom\"] = \"end bottom\";\n PlacementForBs5[\"bottom right\"] = \"bottom end\";\n PlacementForBs5[\"bottom left\"] = \"bottom start\";\n PlacementForBs5[\"left bottom\"] = \"start bottom\";\n PlacementForBs5[\"left top\"] = \"start top\";\n PlacementForBs5[\"top start\"] = \"top start\";\n PlacementForBs5[\"top end\"] = \"top end\";\n PlacementForBs5[\"end top\"] = \"end top\";\n PlacementForBs5[\"end bottom\"] = \"end bottom\";\n PlacementForBs5[\"bottom end\"] = \"bottom end\";\n PlacementForBs5[\"bottom start\"] = \"bottom start\";\n PlacementForBs5[\"start bottom\"] = \"start bottom\";\n PlacementForBs5[\"start top\"] = \"start top\";\n return PlacementForBs5;\n}(PlacementForBs5 || {});\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window?.getComputedStyle(element, null);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return property ? css && css[property] : css;\n}\n\n/**\n * Returns the offset parent of the given element\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n const noOffsetParent = null;\n // NOTE: 1 DOM access here\n let offsetParent = element?.offsetParent;\n // Skip hidden elements which don't have an offsetParent\n let sibling = void 0;\n while (offsetParent === noOffsetParent && element.nextElementSibling && sibling !== element.nextElementSibling) {\n // todo: valorkin fix\n sibling = element.nextElementSibling;\n offsetParent = sibling.offsetParent;\n }\n const nodeName = offsetParent && offsetParent.nodeName;\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return sibling ? sibling.ownerDocument.documentElement : document.documentElement;\n }\n // .offsetParent will return the closest TH, TD or TABLE in case\n if (offsetParent && ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n return offsetParent;\n}\n\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isOffsetContainer(element) {\n const {\n nodeName\n } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n // todo: valorkin fix\n const commonAncestorContainer = range.commonAncestorContainer;\n // Both nodes are inside #document\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n return getOffsetParent(commonAncestorContainer);\n }\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n */\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el?.parentElement && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Helper to detect borders of a given element\n */\nfunction getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return parseFloat(styles[`border${sideA}Width`]) + parseFloat(styles[`border${sideB}Width`]);\n}\nfunction getSize(axis, body, html) {\n const _body = body;\n const _html = html;\n return Math.max(_body[`offset${axis}`], _body[`scroll${axis}`], _html[`client${axis}`], _html[`offset${axis}`], _html[`scroll${axis}`], 0);\n}\nfunction getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n return {\n height: getSize('Height', body, html),\n width: getSize('Width', body, html)\n };\n}\nfunction getClientRect(offsets) {\n return {\n ...offsets,\n right: (offsets.left || 0) + offsets.width,\n bottom: (offsets.top || 0) + offsets.height\n };\n}\n\n/**\n * Tells if a given input is a number\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(Number(n));\n}\nfunction isNumber(value) {\n return typeof value === 'number' || Object.prototype.toString.call(value) === '[object Number]';\n}\n\n/**\n * Get bounding client rect of given element\n */\nfunction getBoundingClientRect(element) {\n const rect = element.getBoundingClientRect();\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n // try {\n // if (isIE(10)) {\n // const scrollTop = getScroll(element, 'top');\n // const scrollLeft = getScroll(element, 'left');\n // if (rect && isNumber(rect.top) && isNumber(rect.left) && isNumber(rect.bottom) && isNumber(rect.right)) {\n // rect.top += scrollTop;\n // rect.left += scrollLeft;\n // rect.bottom += scrollTop;\n // rect.right += scrollLeft;\n // }\n // }\n // } catch (e) {\n // return rect;\n // }\n if (!(rect && isNumber(rect.top) && isNumber(rect.left) && isNumber(rect.bottom) && isNumber(rect.right))) {\n return rect;\n }\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : undefined;\n const width = sizes?.width || element.clientWidth || isNumber(rect.right) && isNumber(result.left) && rect.right - result.left || 0;\n const height = sizes?.height || element.clientHeight || isNumber(rect.bottom) && isNumber(result.top) && rect.bottom - result.top || 0;\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n return getClientRect(result);\n}\nfunction getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top ?? 0, 0);\n parentRect.left = Math.max(parentRect.left ?? 0, 0);\n }\n const offsets = getClientRect({\n top: (childrenRect.top ?? 0) - (parentRect.top ?? 0) - borderTopWidth,\n left: (childrenRect.left ?? 0) - (parentRect.left ?? 0) - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n if (isNumber(offsets.top)) {\n offsets.top -= borderTopWidth - marginTop;\n }\n if (isNumber(offsets.bottom)) {\n offsets.bottom -= borderTopWidth - marginTop;\n }\n if (isNumber(offsets.left)) {\n offsets.left -= borderLeftWidth - marginLeft;\n }\n if (isNumber(offsets.right)) {\n offsets.right -= borderLeftWidth - marginLeft;\n }\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n return offsets;\n}\n\n/**\n * Returns the parentNode or the host of the element\n */\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n */\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n default:\n }\n // Firefox want us to check `-x` and `-y` variations as well\n const {\n overflow,\n overflowX,\n overflowY\n } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(String(overflow) + String(overflowY) + String(overflowX))) {\n return element;\n }\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n */\nfunction getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n return element[upperSide];\n}\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n const offset = {\n top: scrollTop - Number(relativeOffset?.top) + Number(relativeOffset?.marginTop),\n left: scrollLeft - Number(relativeOffset?.left) + Number(relativeOffset?.marginLeft),\n width,\n height\n };\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n */\nfunction isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\nfunction getBoundaries(target, host, padding = 0, boundariesElement, fixedPosition = false) {\n // NOTE: 1 DOM access here\n let boundaries = {\n top: 0,\n left: 0\n };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(target) : findCommonOffsetParent(target, host);\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(host));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = target.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = target.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n const offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n // In case of HTML, we need a different computation\n if (offsets && boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const {\n height,\n width\n } = getWindowSizes(target.ownerDocument);\n if (isNumber(boundaries.top) && isNumber(offsets.top) && isNumber(offsets.marginTop)) {\n boundaries.top += offsets.top - offsets.marginTop;\n }\n if (isNumber(boundaries.top)) {\n boundaries.bottom = Number(height) + Number(offsets.top);\n }\n if (isNumber(boundaries.left) && isNumber(offsets.left) && isNumber(offsets.marginLeft)) {\n boundaries.left += offsets.left - offsets.marginLeft;\n }\n if (isNumber(boundaries.top)) {\n boundaries.right = Number(width) + Number(offsets.left);\n }\n } else if (offsets) {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n // Add paddings\n if (isNumber(boundaries.left)) {\n boundaries.left += padding;\n }\n if (isNumber(boundaries.top)) {\n boundaries.top += padding;\n }\n if (isNumber(boundaries.right)) {\n boundaries.right -= padding;\n }\n if (isNumber(boundaries.bottom)) {\n boundaries.bottom -= padding;\n }\n return boundaries;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n */\nfunction getArea({\n width,\n height\n}) {\n return width * height;\n}\nfunction computeAutoPlacement(placement, refRect, target, host, allowedPositions = ['top', 'bottom', 'right', 'left'], boundariesElement = 'viewport', padding = 0) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n const boundaries = getBoundaries(target, host, padding, boundariesElement);\n const rects = {\n top: {\n width: boundaries?.width ?? 0,\n height: (refRect?.top ?? 0) - (boundaries?.top ?? 0)\n },\n right: {\n width: (boundaries?.right ?? 0) - (refRect?.right ?? 0),\n height: boundaries?.height ?? 0\n },\n bottom: {\n width: boundaries?.width ?? 0,\n height: (boundaries?.bottom ?? 0) - (refRect?.bottom ?? 0)\n },\n left: {\n width: (refRect.left ?? 0) - (boundaries?.left ?? 0),\n height: boundaries?.height ?? 0\n }\n };\n const sortedAreas = Object.keys(rects).map(key => ({\n position: key,\n ...rects[key],\n area: getArea(rects[key])\n })).sort((a, b) => b.area - a.area);\n let filteredAreas = sortedAreas.filter(({\n width,\n height\n }) => {\n return width >= target.clientWidth && height >= target.clientHeight;\n });\n filteredAreas = filteredAreas.filter(({\n position\n }) => {\n return allowedPositions.some(allowedPosition => {\n return allowedPosition === position;\n });\n });\n const computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].position : sortedAreas[0].position;\n const variation = placement.split(' ')[1];\n // for tooltip on auto position\n target.className = target.className.replace(/bs-tooltip-auto/g, `bs-tooltip-${getBsVer().isBs5 ? PlacementForBs5[computedPlacement] : computedPlacement}`);\n return computedPlacement + (variation ? `-${variation}` : '');\n}\nfunction getOffsets(data) {\n return {\n width: data.offsets.target.width,\n height: data.offsets.target.height,\n left: Math.floor(data.offsets.target.left ?? 0),\n top: Math.round(data.offsets.target.top ?? 0),\n bottom: Math.round(data.offsets.target.bottom ?? 0),\n right: Math.floor(data.offsets.target.right ?? 0)\n };\n}\n\n/**\n * Get the opposite placement of the given one\n */\nfunction getOppositePlacement(placement) {\n const hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n\n/**\n * Get the opposite placement variation of the given one\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'right') {\n return 'left';\n } else if (variation === 'left') {\n return 'right';\n }\n return variation;\n}\nconst parse = (value, def = 0) => value ? parseFloat(value) : def;\nfunction getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window?.getComputedStyle(element);\n const x = parse(styles?.marginTop) + parse(styles?.marginBottom);\n const y = parse(styles?.marginLeft) + parse(styles?.marginRight);\n return {\n width: Number(element.offsetWidth) + y,\n height: Number(element.offsetHeight) + x\n };\n}\n\n/**\n * Get offsets to the reference element\n */\nfunction getReferenceOffsets(target, host, fixedPosition) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(target) : findCommonOffsetParent(target, host);\n return getOffsetRectRelativeToArbitraryNode(host, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get offsets to the target\n */\nfunction getTargetOffsets(target, hostOffsets, position) {\n const placement = position.split(' ')[0];\n // Get target node sizes\n const targetRect = getOuterSizes(target);\n // Add position, width and height to our offsets object\n const targetOffsets = {\n width: targetRect.width,\n height: targetRect.height\n };\n // depending by the target placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n targetOffsets[mainSide] = (hostOffsets[mainSide] ?? 0) + hostOffsets[measurement] / 2 - targetRect[measurement] / 2;\n targetOffsets[secondarySide] = placement === secondarySide ? (hostOffsets[secondarySide] ?? 0) - targetRect[secondaryMeasurement] : hostOffsets[getOppositePlacement(secondarySide)] ?? 0;\n return targetOffsets;\n}\nfunction isModifierEnabled(options, modifierName) {\n return !!options.modifiers[modifierName]?.enabled;\n}\nconst availablePositions = {\n top: ['top', 'top start', 'top end'],\n bottom: ['bottom', 'bottom start', 'bottom end'],\n start: ['start', 'start top', 'start bottom'],\n end: ['end', 'end top', 'end bottom']\n};\nfunction checkPopoverMargin(placement, checkPosition) {\n if (!getBsVer().isBs5) {\n return false;\n }\n return availablePositions[checkPosition].includes(placement);\n}\nfunction checkMargins(placement) {\n if (!getBsVer().isBs5) {\n return '';\n }\n if (checkPopoverMargin(placement, 'end')) {\n return 'ms-2';\n }\n if (checkPopoverMargin(placement, 'start')) {\n return 'me-2';\n }\n if (checkPopoverMargin(placement, 'top')) {\n return 'mb-2';\n }\n if (checkPopoverMargin(placement, 'bottom')) {\n return 'mt-2';\n }\n return '';\n}\nfunction updateContainerClass(data, renderer) {\n const target = data.instance.target;\n let containerClass = target.className;\n const dataPlacement = getBsVer().isBs5 ? PlacementForBs5[data.placement] : data.placement;\n if (data.placementAuto) {\n containerClass = containerClass.replace(/bs-popover-auto/g, `bs-popover-${dataPlacement}`);\n containerClass = containerClass.replace(/ms-2|me-2|mb-2|mt-2/g, '');\n containerClass = containerClass.replace(/bs-tooltip-auto/g, `bs-tooltip-${dataPlacement}`);\n containerClass = containerClass.replace(/\\sauto/g, ` ${dataPlacement}`);\n if (containerClass.indexOf('popover') !== -1) {\n containerClass = containerClass + ' ' + checkMargins(dataPlacement);\n }\n if (containerClass.indexOf('popover') !== -1 && containerClass.indexOf('popover-auto') === -1) {\n containerClass += ' popover-auto';\n }\n if (containerClass.indexOf('tooltip') !== -1 && containerClass.indexOf('tooltip-auto') === -1) {\n containerClass += ' tooltip-auto';\n }\n }\n containerClass = containerClass.replace(/left|right|top|bottom|end|start/g, `${dataPlacement.split(' ')[0]}`);\n if (renderer) {\n renderer.setAttribute(target, 'class', containerClass);\n return;\n }\n target.className = containerClass;\n}\nfunction setStyles(element, styles, renderer) {\n if (!element || !styles) {\n return;\n }\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n if (renderer) {\n renderer.setStyle(element, prop, `${String(styles[prop])}${unit}`);\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element.style[prop] = String(styles[prop]) + unit;\n });\n}\nfunction arrow(data) {\n let targetOffsets = data.offsets.target;\n // if arrowElement is a string, suppose it's a CSS selector\n const arrowElement = data.instance.target.querySelector('.arrow');\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n const isVertical = ['left', 'right'].indexOf(data.placement.split(' ')[0]) !== -1;\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n const placementVariation = data.placement.split(' ')[1];\n // top/left side\n if ((data.offsets.host[opSide] ?? 0) - arrowElementSize < (targetOffsets[side] ?? 0)) {\n targetOffsets[side] -= (targetOffsets[side] ?? 0) - ((data.offsets.host[opSide] ?? 0) - arrowElementSize);\n }\n // bottom/right side\n if (Number(data.offsets.host[side]) + Number(arrowElementSize) > (targetOffsets[opSide] ?? 0)) {\n targetOffsets[side] += Number(data.offsets.host[side]) + Number(arrowElementSize) - Number(targetOffsets[opSide]);\n }\n targetOffsets = getClientRect(targetOffsets);\n // Compute the sideValue using the updated target offsets\n // take target margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.target);\n const targetMarginSide = parseFloat(css[`margin${sideCapitalized}`]) || 0;\n const targetBorderSide = parseFloat(css[`border${sideCapitalized}Width`]) || 0;\n // compute center of the target\n let center;\n if (!placementVariation) {\n center = Number(data.offsets.host[side]) + Number(data.offsets.host[len] / 2 - arrowElementSize / 2);\n } else {\n const targetBorderRadius = parseFloat(css[\"borderRadius\"]) || 0;\n const targetSideArrowOffset = Number(targetMarginSide + targetBorderSide + targetBorderRadius);\n center = side === placementVariation ? Number(data.offsets.host[side]) + targetSideArrowOffset : Number(data.offsets.host[side]) + Number(data.offsets.host[len] - targetSideArrowOffset);\n }\n let sideValue = center - (targetOffsets[side] ?? 0) - targetMarginSide - targetBorderSide;\n // prevent arrowElement from being placed not contiguously to its target\n sideValue = Math.max(Math.min(targetOffsets[len] - (arrowElementSize + 5), sideValue), 0);\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '' // make sure to unset any eventual altSide value from the DOM node\n };\n data.instance.arrow = arrowElement;\n return data;\n}\nfunction flip(data) {\n data.offsets.target = getClientRect(data.offsets.target);\n if (!isModifierEnabled(data.options, 'flip')) {\n data.offsets.target = {\n ...data.offsets.target,\n ...getTargetOffsets(data.instance.target, data.offsets.host, data.placement)\n };\n return data;\n }\n const boundaries = getBoundaries(data.instance.target, data.instance.host, 0,\n // padding\n 'viewport', false // positionFixed\n );\n let placement = data.placement.split(' ')[0];\n let variation = data.placement.split(' ')[1] || '';\n const offsetsHost = data.offsets.host;\n const target = data.instance.target;\n const host = data.instance.host;\n const adaptivePosition = computeAutoPlacement('auto', offsetsHost, target, host, data.options.allowedPositions);\n const flipOrder = [placement, adaptivePosition];\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return;\n }\n placement = data.placement.split(' ')[0];\n // using floor because the host offsets may contain decimals we are not going to consider here\n const overlapsRef = placement === 'left' && Math.floor(data.offsets.target.right ?? 0) > Math.floor(data.offsets.host.left ?? 0) || placement === 'right' && Math.floor(data.offsets.target.left ?? 0) < Math.floor(data.offsets.host.right ?? 0) || placement === 'top' && Math.floor(data.offsets.target.bottom ?? 0) > Math.floor(data.offsets.host.top ?? 0) || placement === 'bottom' && Math.floor(data.offsets.target.top ?? 0) < Math.floor(data.offsets.host.bottom ?? 0);\n const overflowsLeft = Math.floor(data.offsets.target.left ?? 0) < Math.floor(boundaries.left ?? 0);\n const overflowsRight = Math.floor(data.offsets.target.right ?? 0) > Math.floor(boundaries.right ?? 0);\n const overflowsTop = Math.floor(data.offsets.target.top ?? 0) < Math.floor(boundaries.top ?? 0);\n const overflowsBottom = Math.floor(data.offsets.target.bottom ?? 0) > Math.floor(boundaries.bottom ?? 0);\n const overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const flippedVariation = isVertical && variation === 'left' && overflowsLeft || isVertical && variation === 'right' && overflowsRight || !isVertical && variation === 'left' && overflowsTop || !isVertical && variation === 'right' && overflowsBottom;\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n data.placement = placement + (variation ? ` ${variation}` : '');\n data.offsets.target = {\n ...data.offsets.target,\n ...getTargetOffsets(data.instance.target, data.offsets.host, data.placement)\n };\n }\n });\n return data;\n}\nfunction initData(targetElement, hostElement, position, options) {\n if (!targetElement || !hostElement) {\n return;\n }\n const hostElPosition = getReferenceOffsets(targetElement, hostElement);\n if (!position.match(/^(auto)*\\s*(left|right|top|bottom|start|end)*$/) && !position.match(/^(left|right|top|bottom|start|end)*(?: (left|right|top|bottom|start|end))*$/)) {\n position = 'auto';\n }\n const placementAuto = !!position.match(/auto/g);\n // support old placements 'auto left|right|top|bottom'\n let placement = position.match(/auto\\s(left|right|top|bottom|start|end)/) ? position.split(' ')[1] || 'auto' : position;\n // Normalize placements that have identical main placement and variation (\"right right\" => \"right\").\n const matches = placement.match(/^(left|right|top|bottom|start|end)* ?(?!\\1)(left|right|top|bottom|start|end)?/);\n if (matches) {\n placement = matches[1] + (matches[2] ? ` ${matches[2]}` : '');\n }\n // \"left right\", \"top bottom\" etc. placements also considered incorrect.\n if (['left right', 'right left', 'top bottom', 'bottom top'].indexOf(placement) !== -1) {\n placement = 'auto';\n }\n placement = computeAutoPlacement(placement, hostElPosition, targetElement, hostElement, options ? options.allowedPositions : undefined);\n const targetOffset = getTargetOffsets(targetElement, hostElPosition, placement);\n return {\n options: options || {\n modifiers: {}\n },\n instance: {\n target: targetElement,\n host: hostElement,\n arrow: void 0\n },\n offsets: {\n target: targetOffset,\n host: hostElPosition,\n arrow: void 0\n },\n positionFixed: false,\n placement,\n placementAuto\n };\n}\nfunction preventOverflow(data) {\n if (!isModifierEnabled(data.options, 'preventOverflow')) {\n return data;\n }\n // NOTE: DOM access here\n // resets the target Offsets's position so that the document size can be calculated excluding\n // the size of the targetOffsets element itself\n const transformProp = 'transform';\n const targetStyles = data.instance.target.style; // assignment to help minification\n const {\n top,\n left,\n [transformProp]: transform\n } = targetStyles;\n targetStyles.top = '';\n targetStyles.left = '';\n targetStyles[transformProp] = '';\n const boundaries = getBoundaries(data.instance.target, data.instance.host, 0,\n // padding\n data.options.modifiers.preventOverflow?.boundariesElement || 'scrollParent', false // positionFixed\n );\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n targetStyles.top = top;\n targetStyles.left = left;\n targetStyles[transformProp] = transform;\n const order = ['left', 'right', 'top', 'bottom'];\n const check = {\n primary(placement) {\n let value = data.offsets.target[placement];\n // options.escapeWithReference\n if ((data.offsets.target[placement] ?? 0) < (boundaries[placement] ?? 0)) {\n value = Math.max(data.offsets.target[placement] ?? 0, boundaries[placement] ?? 0);\n }\n return {\n [placement]: value\n };\n },\n secondary(placement) {\n const isPlacementHorizontal = placement === 'right';\n const mainSide = isPlacementHorizontal ? 'left' : 'top';\n const measurement = isPlacementHorizontal ? 'width' : 'height';\n let value = data.offsets.target[mainSide];\n // escapeWithReference\n if ((data.offsets.target[placement] ?? 0) > (boundaries[placement] ?? 0)) {\n value = Math.min(data.offsets.target[mainSide] ?? 0, (boundaries[placement] ?? 0) - data.offsets.target[measurement]);\n }\n return {\n [mainSide]: value\n };\n }\n };\n order.forEach(placement => {\n const side = ['left', 'top', 'start'].indexOf(placement) !== -1 ? check['primary'] : check['secondary'];\n data.offsets.target = {\n ...data.offsets.target,\n ...side(placement)\n };\n });\n return data;\n}\nfunction shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split(' ')[0];\n const shiftVariation = placement.split(' ')[1];\n if (shiftVariation) {\n const {\n host,\n target\n } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n const shiftOffsets = {\n start: {\n [side]: host[side]\n },\n end: {\n [side]: (host[side] ?? 0) + host[measurement] - target[measurement]\n }\n };\n data.offsets.target = {\n ...target,\n ...{\n [side]: side === shiftVariation ? shiftOffsets.start[side] : shiftOffsets.end[side]\n }\n };\n }\n return data;\n}\nclass Positioning {\n position(hostElement, targetElement /*, round = true*/) {\n return this.offset(hostElement, targetElement /*, false*/);\n }\n offset(hostElement, targetElement /*, round = true*/) {\n return getReferenceOffsets(targetElement, hostElement);\n }\n positionElements(hostElement, targetElement, position, appendToBody, options) {\n const chainOfModifiers = [flip, shift, preventOverflow, arrow];\n const _position = MapPlacementInToRL[position];\n const data = initData(targetElement, hostElement, _position, options);\n if (!data) {\n return;\n }\n return chainOfModifiers.reduce((modifiedData, modifier) => modifier(modifiedData), data);\n }\n}\nconst positionService = new Positioning();\nfunction positionElements(hostElement, targetElement, placement, appendToBody, options, renderer) {\n const data = positionService.positionElements(hostElement, targetElement, placement, appendToBody, options);\n if (!data) {\n return;\n }\n const offsets = getOffsets(data);\n setStyles(targetElement, {\n 'will-change': 'transform',\n top: '0px',\n left: '0px',\n transform: `translate3d(${offsets.left}px, ${offsets.top}px, 0px)`\n }, renderer);\n if (data.instance.arrow) {\n setStyles(data.instance.arrow, data.offsets.arrow, renderer);\n }\n updateContainerClass(data, renderer);\n}\nlet PositioningService = /*#__PURE__*/(() => {\n class PositioningService {\n constructor(ngZone, rendererFactory, platformId) {\n this.update$$ = new Subject();\n this.positionElements = new Map();\n this.isDisabled = false;\n if (isPlatformBrowser(platformId)) {\n ngZone.runOutsideAngular(() => {\n this.triggerEvent$ = merge(fromEvent(window, 'scroll', {\n passive: true\n }), fromEvent(window, 'resize', {\n passive: true\n }), of(0, animationFrameScheduler), this.update$$);\n this.triggerEvent$.subscribe(() => {\n if (this.isDisabled) {\n return;\n }\n this.positionElements\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .forEach(positionElement => {\n positionElements(_getHtmlElement(positionElement.target), _getHtmlElement(positionElement.element), positionElement.attachment, positionElement.appendToBody, this.options, rendererFactory.createRenderer(null, null));\n });\n });\n });\n }\n }\n position(options) {\n this.addPositionElement(options);\n }\n get event$() {\n return this.triggerEvent$;\n }\n disable() {\n this.isDisabled = true;\n }\n enable() {\n this.isDisabled = false;\n }\n addPositionElement(options) {\n this.positionElements.set(_getHtmlElement(options.element), options);\n }\n calcPosition() {\n this.update$$.next(null);\n }\n deletePositionElement(elRef) {\n this.positionElements.delete(_getHtmlElement(elRef));\n }\n setOptions(options) {\n this.options = options;\n }\n static {\n this.ɵfac = function PositioningService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PositioningService)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(PLATFORM_ID));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PositioningService,\n factory: PositioningService.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return PositioningService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction _getHtmlElement(element) {\n // it means that we got a selector\n if (typeof element === 'string') {\n return document.querySelector(element);\n }\n if (element instanceof ElementRef) {\n return element.nativeElement;\n }\n return element ?? null;\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { PlacementForBs5, Positioning, PositioningService, checkMargins, positionElements };\n","import * as i0 from '@angular/core';\nimport { EventEmitter, Injector, ElementRef, TemplateRef, Injectable, Inject } from '@angular/core';\nimport { listenToTriggersV2, registerOutsideClick, registerEscClick } from 'ngx-bootstrap/utils';\nimport * as i1 from 'ngx-bootstrap/positioning';\nimport { DOCUMENT } from '@angular/common';\nclass BsComponentRef {}\n\n/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\nclass ContentRef {\n constructor(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n nodes, viewRef,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n componentRef) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\n\n// todo: add delay support\n// todo: merge events onShow, onShown, etc...\n// todo: add global positioning configuration?\nclass ComponentLoader {\n /**\n * Do not use this directly, it should be instanced via\n * `ComponentLoadFactory.attach`\n * @internal\n */\n constructor(_viewContainerRef, _renderer, _elementRef, _injector, _componentFactoryResolver, _ngZone, _applicationRef, _posService, _document) {\n this._viewContainerRef = _viewContainerRef;\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n this._injector = _injector;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._ngZone = _ngZone;\n this._applicationRef = _applicationRef;\n this._posService = _posService;\n this._document = _document;\n this.onBeforeShow = new EventEmitter();\n this.onShown = new EventEmitter();\n this.onBeforeHide = new EventEmitter();\n this.onHidden = new EventEmitter();\n this._providers = [];\n this._isHiding = false;\n /**\n * A selector used if container element was not found\n */\n this.containerDefaultSelector = 'body';\n this._listenOpts = {};\n this._globalListener = Function.prototype;\n }\n get isShown() {\n if (this._isHiding) {\n return false;\n }\n return !!this._componentRef;\n }\n attach(compType) {\n this._componentFactory = this._componentFactoryResolver.resolveComponentFactory(compType);\n return this;\n }\n // todo: add behaviour: to target element, `body`, custom element\n to(container) {\n this.container = container || this.container;\n return this;\n }\n position(opts) {\n if (!opts) {\n return this;\n }\n this.attachment = opts.attachment || this.attachment;\n this._elementRef = opts.target || this._elementRef;\n return this;\n }\n provide(provider) {\n this._providers.push(provider);\n return this;\n }\n // todo: appendChild to element or document.querySelector(this.container)\n show(opts = {}) {\n this._subscribePositioning();\n this._innerComponent = void 0;\n if (!this._componentRef) {\n this.onBeforeShow.emit();\n this._contentRef = this._getContentRef(opts.content, opts.context, opts.initialState);\n const injector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n if (!this._componentFactory) {\n return;\n }\n this._componentRef = this._componentFactory.create(injector, this._contentRef.nodes);\n this._applicationRef.attachView(this._componentRef.hostView);\n // this._componentRef = this._viewContainerRef\n // .createComponent(this._componentFactory, 0, injector, this._contentRef.nodes);\n this.instance = this._componentRef.instance;\n Object.assign(this._componentRef.instance, opts);\n if (this.container instanceof ElementRef) {\n this.container.nativeElement.appendChild(this._componentRef.location.nativeElement);\n }\n if (typeof this.container === 'string' && typeof this._document !== 'undefined') {\n const selectedElement = this._document.querySelector(this.container) || this._document.querySelector(this.containerDefaultSelector);\n if (!selectedElement) {\n return;\n }\n selectedElement.appendChild(this._componentRef.location.nativeElement);\n }\n if (!this.container && this._elementRef && this._elementRef.nativeElement.parentElement) {\n this._elementRef.nativeElement.parentElement.appendChild(this._componentRef.location.nativeElement);\n }\n // we need to manually invoke change detection since events registered\n // via\n // Renderer::listen() are not picked up by change detection with the\n // OnPush strategy\n if (this._contentRef.componentRef) {\n this._innerComponent = this._contentRef.componentRef.instance;\n this._contentRef.componentRef.changeDetectorRef.markForCheck();\n this._contentRef.componentRef.changeDetectorRef.detectChanges();\n }\n this._componentRef.changeDetectorRef.markForCheck();\n this._componentRef.changeDetectorRef.detectChanges();\n this.onShown.emit(opts.id ? {\n id: opts.id\n } : this._componentRef.instance);\n }\n this._registerOutsideClick();\n return this._componentRef;\n }\n hide(id) {\n if (!this._componentRef) {\n return this;\n }\n this._posService.deletePositionElement(this._componentRef.location);\n this.onBeforeHide.emit(this._componentRef.instance);\n const componentEl = this._componentRef.location.nativeElement;\n componentEl.parentNode?.removeChild(componentEl);\n this._contentRef?.componentRef?.destroy();\n if (this._viewContainerRef && this._contentRef?.viewRef) {\n this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._contentRef.viewRef));\n }\n this._contentRef?.viewRef?.destroy();\n this._componentRef?.destroy();\n this._contentRef = void 0;\n this._componentRef = void 0;\n this._removeGlobalListener();\n this.onHidden.emit(id ? {\n id\n } : null);\n return this;\n }\n toggle() {\n if (this.isShown) {\n this.hide();\n return;\n }\n this.show();\n }\n dispose() {\n if (this.isShown) {\n this.hide();\n }\n this._unsubscribePositioning();\n if (this._unregisterListenersFn) {\n this._unregisterListenersFn();\n }\n }\n listen(listenOpts) {\n this.triggers = listenOpts.triggers || this.triggers;\n this._listenOpts.outsideClick = listenOpts.outsideClick;\n this._listenOpts.outsideEsc = listenOpts.outsideEsc;\n listenOpts.target = listenOpts.target || this._elementRef?.nativeElement;\n const hide = this._listenOpts.hide = () => listenOpts.hide ? listenOpts.hide() : void this.hide();\n const show = this._listenOpts.show = registerHide => {\n listenOpts.show ? listenOpts.show(registerHide) : this.show(registerHide);\n registerHide();\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const toggle = registerHide => {\n this.isShown ? hide() : show(registerHide);\n };\n if (this._renderer) {\n this._unregisterListenersFn = listenToTriggersV2(this._renderer, {\n target: listenOpts.target,\n triggers: listenOpts.triggers,\n show,\n hide,\n toggle\n });\n }\n return this;\n }\n _removeGlobalListener() {\n if (this._globalListener) {\n this._globalListener();\n this._globalListener = Function.prototype;\n }\n }\n attachInline(vRef,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n template) {\n if (vRef && template) {\n this._inlineViewRef = vRef.createEmbeddedView(template);\n }\n return this;\n }\n _registerOutsideClick() {\n if (!this._componentRef || !this._componentRef.location) {\n return;\n }\n let unsubscribeOutsideClick = Function.prototype;\n let unsubscribeEscClick = Function.prototype;\n // why: should run after first event bubble\n if (this._listenOpts.outsideClick) {\n const target = this._componentRef.location.nativeElement;\n setTimeout(() => {\n if (this._renderer && this._elementRef) {\n unsubscribeOutsideClick = registerOutsideClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideClick: this._listenOpts.outsideClick,\n hide: () => this._listenOpts.hide && this._listenOpts.hide()\n });\n }\n });\n }\n if (this._listenOpts.outsideEsc && this._renderer && this._elementRef) {\n const target = this._componentRef.location.nativeElement;\n unsubscribeEscClick = registerEscClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideEsc: this._listenOpts.outsideEsc,\n hide: () => this._listenOpts.hide && this._listenOpts.hide()\n });\n }\n this._globalListener = () => {\n unsubscribeOutsideClick();\n unsubscribeEscClick();\n };\n }\n getInnerComponent() {\n return this._innerComponent;\n }\n _subscribePositioning() {\n if (this._zoneSubscription || !this.attachment) {\n return;\n }\n this.onShown.subscribe(() => {\n this._posService.position({\n element: this._componentRef?.location,\n target: this._elementRef,\n attachment: this.attachment,\n appendToBody: this.container === 'body'\n });\n });\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => {\n if (!this._componentRef) {\n return;\n }\n this._posService.calcPosition();\n });\n }\n _unsubscribePositioning() {\n if (!this._zoneSubscription) {\n return;\n }\n this._zoneSubscription.unsubscribe();\n this._zoneSubscription = void 0;\n }\n _getContentRef(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n content,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n initialState) {\n if (!content) {\n return new ContentRef([]);\n }\n if (content instanceof TemplateRef) {\n if (this._viewContainerRef) {\n const _viewRef = this._viewContainerRef.createEmbeddedView(content, context);\n _viewRef.markForCheck();\n return new ContentRef([_viewRef.rootNodes], _viewRef);\n }\n const viewRef = content.createEmbeddedView({});\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n if (typeof content === 'function') {\n const contentCmptFactory = this._componentFactoryResolver.resolveComponentFactory(content);\n const modalContentInjector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n const componentRef = contentCmptFactory.create(modalContentInjector);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n Object.assign(componentRef.instance, initialState);\n this._applicationRef.attachView(componentRef.hostView);\n return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);\n }\n const nodes = this._renderer ? [this._renderer.createText(`${content}`)] : [];\n return new ContentRef([nodes]);\n }\n}\nlet ComponentLoaderFactory = /*#__PURE__*/(() => {\n class ComponentLoaderFactory {\n constructor(_componentFactoryResolver, _ngZone, _injector, _posService, _applicationRef, _document) {\n this._componentFactoryResolver = _componentFactoryResolver;\n this._ngZone = _ngZone;\n this._injector = _injector;\n this._posService = _posService;\n this._applicationRef = _applicationRef;\n this._document = _document;\n }\n /**\n *\n * @param _elementRef\n * @param _viewContainerRef\n * @param _renderer\n */\n createLoader(_elementRef, _viewContainerRef, _renderer) {\n return new ComponentLoader(_viewContainerRef, _renderer, _elementRef, this._injector, this._componentFactoryResolver, this._ngZone, this._applicationRef, this._posService, this._document);\n }\n static {\n this.ɵfac = function ComponentLoaderFactory_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ComponentLoaderFactory)(i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i1.PositioningService), i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(DOCUMENT));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ComponentLoaderFactory,\n factory: ComponentLoaderFactory.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return ComponentLoaderFactory;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BsComponentRef, ComponentLoader, ComponentLoaderFactory, ContentRef };\n","import * as i0 from '@angular/core';\nimport { Injectable, Component, ChangeDetectionStrategy, EventEmitter, Directive, Input, Output, NgModule } from '@angular/core';\nimport { getBsVer, warnOnce, parseTriggers, OnChange } from 'ngx-bootstrap/utils';\nimport * as i3 from 'ngx-bootstrap/positioning';\nimport { PlacementForBs5, PositioningService } from 'ngx-bootstrap/positioning';\nimport { __decorate, __metadata } from 'tslib';\nimport * as i1 from 'ngx-bootstrap/component-loader';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { timer } from 'rxjs';\nimport { CommonModule } from '@angular/common';\n\n/** Default values provider for tooltip */\nconst _c0 = [\"*\"];\nlet TooltipConfig = /*#__PURE__*/(() => {\n class TooltipConfig {\n constructor() {\n /** sets disable adaptive position */\n this.adaptivePosition = true;\n /** tooltip placement, supported positions: 'top', 'bottom', 'left', 'right' */\n this.placement = 'top';\n /** array of event names which triggers tooltip opening */\n this.triggers = 'hover focus';\n /** delay before showing the tooltip */\n this.delay = 0;\n }\n static {\n this.ɵfac = function TooltipConfig_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TooltipConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TooltipConfig,\n factory: TooltipConfig.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return TooltipConfig;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TooltipContainerComponent = /*#__PURE__*/(() => {\n class TooltipContainerComponent {\n get _bsVersions() {\n return getBsVer();\n }\n constructor(config) {\n Object.assign(this, config);\n }\n ngAfterViewInit() {\n this.classMap = {\n in: false,\n fade: false\n };\n if (this.placement) {\n if (this._bsVersions.isBs5) {\n this.placement = PlacementForBs5[this.placement];\n }\n this.classMap[this.placement] = true;\n }\n this.classMap[`tooltip-${this.placement}`] = true;\n this.classMap[\"in\"] = true;\n if (this.animation) {\n this.classMap[\"fade\"] = true;\n }\n if (this.containerClass) {\n this.classMap[this.containerClass] = true;\n }\n }\n static {\n this.ɵfac = function TooltipContainerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TooltipContainerComponent)(i0.ɵɵdirectiveInject(TooltipConfig));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TooltipContainerComponent,\n selectors: [[\"bs-tooltip-container\"]],\n hostAttrs: [\"role\", \"tooltip\"],\n hostVars: 3,\n hostBindings: function TooltipContainerComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id);\n i0.ɵɵclassMap(\"show tooltip in tooltip-\" + ctx.placement + \" \" + \"bs-tooltip-\" + ctx.placement + \" \" + ctx.placement + \" \" + ctx.containerClass);\n }\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 3,\n vars: 0,\n consts: [[1, \"tooltip-arrow\", \"arrow\"], [1, \"tooltip-inner\"]],\n template: function TooltipContainerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"div\", 0);\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n }\n },\n styles: [\".tooltip[_nghost-%COMP%]{display:block;pointer-events:none;position:absolute}.tooltip[_nghost-%COMP%] .tooltip-arrow[_ngcontent-%COMP%]{position:absolute}\"],\n changeDetection: 0\n });\n }\n }\n return TooltipContainerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet id = 0;\nlet TooltipDirective = /*#__PURE__*/(() => {\n class TooltipDirective {\n /**\n * Returns whether or not the tooltip is currently being shown\n */\n get isOpen() {\n return this._tooltip.isShown;\n }\n set isOpen(value) {\n if (value) {\n this.show();\n } else {\n this.hide();\n }\n }\n /** @deprecated - please use `tooltip` instead */\n set htmlContent(value) {\n warnOnce('tooltipHtml was deprecated, please use `tooltip` instead');\n this.tooltip = value;\n }\n /** @deprecated - please use `placement` instead */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n set _placement(value) {\n warnOnce('tooltipPlacement was deprecated, please use `placement` instead');\n this.placement = value;\n }\n /** @deprecated - please use `isOpen` instead */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n set _isOpen(value) {\n warnOnce('tooltipIsOpen was deprecated, please use `isOpen` instead');\n this.isOpen = value;\n }\n get _isOpen() {\n warnOnce('tooltipIsOpen was deprecated, please use `isOpen` instead');\n return this.isOpen;\n }\n /** @deprecated - please use `isDisabled` instead */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n set _enable(value) {\n warnOnce('tooltipEnable was deprecated, please use `isDisabled` instead');\n this.isDisabled = !value;\n }\n get _enable() {\n warnOnce('tooltipEnable was deprecated, please use `isDisabled` instead');\n return this.isDisabled;\n }\n /** @deprecated - please use `container=\"body\"` instead */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n set _appendToBody(value) {\n warnOnce('tooltipAppendToBody was deprecated, please use `container=\"body\"` instead');\n this.container = value ? 'body' : this.container;\n }\n get _appendToBody() {\n warnOnce('tooltipAppendToBody was deprecated, please use `container=\"body\"` instead');\n return this.container === 'body';\n }\n /** @deprecated - will replaced with customClass */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n set _popupClass(value) {\n warnOnce('tooltipClass deprecated');\n }\n /** @deprecated - removed */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n set _tooltipContext(value) {\n warnOnce('tooltipContext deprecated');\n }\n /** @deprecated */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n set _tooltipPopupDelay(value) {\n warnOnce('tooltipPopupDelay is deprecated, use `delay` instead');\n this.delay = value;\n }\n /** @deprecated - please use `triggers` instead */\n get _tooltipTrigger() {\n warnOnce('tooltipTrigger was deprecated, please use `triggers` instead');\n return this.triggers;\n }\n set _tooltipTrigger(value) {\n warnOnce('tooltipTrigger was deprecated, please use `triggers` instead');\n this.triggers = (value || '').toString();\n }\n constructor(_viewContainerRef, cis, config, _elementRef, _renderer, _positionService) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._positionService = _positionService;\n this.tooltipId = id++;\n /** sets disable adaptive position */\n this.adaptivePosition = true;\n /** Fired when tooltip content changes */\n this.tooltipChange = new EventEmitter();\n /**\n * Placement of a tooltip. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n this.placement = 'top';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n this.triggers = 'hover focus';\n /**\n * Css class for tooltip container\n */\n this.containerClass = '';\n /**\n * Allows to disable tooltip\n */\n this.isDisabled = false;\n /**\n * Delay before showing the tooltip\n */\n this.delay = 0;\n /** @deprecated - removed, will be added to configuration */\n this.tooltipAnimation = true;\n /** @deprecated */\n this.tooltipFadeDuration = 150;\n /** @deprecated */\n this.tooltipStateChanged = new EventEmitter();\n this._tooltip = cis.createLoader(this._elementRef, _viewContainerRef, this._renderer).provide({\n provide: TooltipConfig,\n useValue: config\n });\n Object.assign(this, config);\n this.onShown = this._tooltip.onShown;\n this.onHidden = this._tooltip.onHidden;\n }\n ngOnInit() {\n this._tooltip.listen({\n triggers: this.triggers,\n show: () => this.show()\n });\n this.tooltipChange.subscribe(value => {\n if (!value) {\n this._tooltip.hide();\n }\n });\n this.onShown.subscribe(() => {\n this.setAriaDescribedBy();\n });\n this.onHidden.subscribe(() => {\n this.setAriaDescribedBy();\n });\n }\n setAriaDescribedBy() {\n this._ariaDescribedby = this.isOpen ? `tooltip-${this.tooltipId}` : void 0;\n if (this._ariaDescribedby) {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-describedby', this._ariaDescribedby);\n } else {\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-describedby');\n }\n }\n /**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of\n * the tooltip.\n */\n toggle() {\n if (this.isOpen) {\n return this.hide();\n }\n this.show();\n }\n /**\n * Opens an element’s tooltip. This is considered a “manual” triggering of\n * the tooltip.\n */\n show() {\n this._positionService.setOptions({\n modifiers: {\n flip: {\n enabled: this.adaptivePosition\n },\n preventOverflow: {\n enabled: this.adaptivePosition,\n boundariesElement: this.boundariesElement || 'scrollParent'\n }\n }\n });\n if (this.isOpen || this.isDisabled || this._delayTimeoutId || !this.tooltip) {\n return;\n }\n const showTooltip = () => {\n if (this._delayTimeoutId) {\n this._delayTimeoutId = undefined;\n }\n this._tooltip.attach(TooltipContainerComponent).to(this.container).position({\n attachment: this.placement\n }).show({\n content: this.tooltip,\n placement: this.placement,\n containerClass: this.containerClass,\n id: `tooltip-${this.tooltipId}`\n });\n };\n const cancelDelayedTooltipShowing = () => {\n if (this._tooltipCancelShowFn) {\n this._tooltipCancelShowFn();\n }\n };\n if (this.delay) {\n if (this._delaySubscription) {\n this._delaySubscription.unsubscribe();\n }\n this._delaySubscription = timer(this.delay).subscribe(() => {\n showTooltip();\n cancelDelayedTooltipShowing();\n });\n if (this.triggers) {\n parseTriggers(this.triggers).forEach(trigger => {\n if (!trigger.close) {\n return;\n }\n this._tooltipCancelShowFn = this._renderer.listen(this._elementRef.nativeElement, trigger.close, () => {\n this._delaySubscription?.unsubscribe();\n cancelDelayedTooltipShowing();\n });\n });\n }\n } else {\n showTooltip();\n }\n }\n /**\n * Closes an element’s tooltip. This is considered a “manual” triggering of\n * the tooltip.\n */\n hide() {\n if (this._delayTimeoutId) {\n clearTimeout(this._delayTimeoutId);\n this._delayTimeoutId = undefined;\n }\n if (!this._tooltip.isShown) {\n return;\n }\n if (this._tooltip.instance?.classMap) {\n this._tooltip.instance.classMap['in'] = false;\n }\n setTimeout(() => {\n this._tooltip.hide();\n }, this.tooltipFadeDuration);\n }\n ngOnDestroy() {\n this._tooltip.dispose();\n this.tooltipChange.unsubscribe();\n if (this._delaySubscription) {\n this._delaySubscription.unsubscribe();\n }\n this.onShown.unsubscribe();\n this.onHidden.unsubscribe();\n }\n static {\n this.ɵfac = function TooltipDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TooltipDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i1.ComponentLoaderFactory), i0.ɵɵdirectiveInject(TooltipConfig), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i3.PositioningService));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TooltipDirective,\n selectors: [[\"\", \"tooltip\", \"\"], [\"\", \"tooltipHtml\", \"\"]],\n inputs: {\n adaptivePosition: \"adaptivePosition\",\n tooltip: \"tooltip\",\n placement: \"placement\",\n triggers: \"triggers\",\n container: \"container\",\n containerClass: \"containerClass\",\n boundariesElement: \"boundariesElement\",\n isOpen: \"isOpen\",\n isDisabled: \"isDisabled\",\n delay: \"delay\",\n htmlContent: [0, \"tooltipHtml\", \"htmlContent\"],\n _placement: [0, \"tooltipPlacement\", \"_placement\"],\n _isOpen: [0, \"tooltipIsOpen\", \"_isOpen\"],\n _enable: [0, \"tooltipEnable\", \"_enable\"],\n _appendToBody: [0, \"tooltipAppendToBody\", \"_appendToBody\"],\n tooltipAnimation: \"tooltipAnimation\",\n _popupClass: [0, \"tooltipClass\", \"_popupClass\"],\n _tooltipContext: [0, \"tooltipContext\", \"_tooltipContext\"],\n _tooltipPopupDelay: [0, \"tooltipPopupDelay\", \"_tooltipPopupDelay\"],\n tooltipFadeDuration: \"tooltipFadeDuration\",\n _tooltipTrigger: [0, \"tooltipTrigger\", \"_tooltipTrigger\"]\n },\n outputs: {\n tooltipChange: \"tooltipChange\",\n onShown: \"onShown\",\n onHidden: \"onHidden\",\n tooltipStateChanged: \"tooltipStateChanged\"\n },\n exportAs: [\"bs-tooltip\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([ComponentLoaderFactory, PositioningService])]\n });\n }\n }\n __decorate([OnChange(), __metadata(\"design:type\", Object)], TooltipDirective.prototype, \"tooltip\", void 0);\n return TooltipDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TooltipModule = /*#__PURE__*/(() => {\n class TooltipModule {\n // @deprecated method not required anymore, will be deleted in v19.0.0\n static forRoot() {\n return {\n ngModule: TooltipModule,\n providers: []\n };\n }\n static {\n this.ɵfac = function TooltipModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TooltipModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TooltipModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n }\n return TooltipModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TooltipConfig, TooltipContainerComponent, TooltipDirective, TooltipModule };\n","import {\r\n\tDirective,\r\n\tComponent,\r\n\tInput,\r\n\tViewContainerRef,\r\n\tTemplateRef,\r\n\tAfterViewInit,\r\n\tOnInit,\r\n} from '@angular/core';\r\nimport { DashboardService } from '../services/dashboard.service';\r\n\r\n@Directive({\r\n\tselector: '[appInView]',\r\n})\r\nexport class InViewDirective implements AfterViewInit, OnInit {\r\n\talreadyRendered: boolean; // cheking if visible already\r\n\r\n\tconstructor(\r\n\t\tprivate vcRef: ViewContainerRef,\r\n\t\tprivate tplRef: TemplateRef,\r\n\t\tprivate dashboardService: DashboardService\r\n\t) {\r\n\t\tconsole.log('constructor');\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tconsole.log('initialized');\r\n\t}\r\n\tngAfterViewInit() {\r\n\t\tconst commentEl = this.vcRef.element.nativeElement; // template\r\n\t\tconst elToObserve = commentEl.parentElement;\r\n\t\tthis.setMinWidthHeight(elToObserve);\r\n\r\n\t\tconst observer = new IntersectionObserver(\r\n\t\t\t(entries) => {\r\n\t\t\t\tentries.forEach((entry) => {\r\n\t\t\t\t\tthis.renderContents(entry.isIntersecting, elToObserve);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t{ threshold: [0, 0.1, 0.9, 1] }\r\n\t\t);\r\n\t\tobserver.observe(elToObserve);\r\n\t}\r\n\r\n\trenderContents(isInView, elToObserve) {\r\n\t\t//check only elements that are widgets\r\n\t\tif (elToObserve.id.includes('widget')) {\r\n\t\t\tlet widgetId = +elToObserve.id.split('-')[1];\r\n\t\t\tthis.dashboardService.inViewEmitter(isInView, widgetId);\r\n\t\t}\r\n\r\n\t\tif (isInView && !this.alreadyRendered) {\r\n\t\t\tthis.vcRef.clear();\r\n\t\t\tthis.vcRef.createEmbeddedView(this.tplRef);\r\n\t\t\tthis.alreadyRendered = true;\r\n\t\t}\r\n\t}\r\n\r\n\tsetMinWidthHeight(el) {\r\n\t\t// prevent issue being visible all together\r\n\t\tconst style = window.getComputedStyle(el);\r\n\t\tconst [width, height] = [parseInt(style.width), parseInt(style.height)];\r\n\t\t!width && (el.style.minWidth = '40px');\r\n\t\t!height && (el.style.minHeight = '40px');\r\n\t}\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, OnDestroy } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { DashboardService } from 'projects/shared-lib/src/lib/services/dashboard.service';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: \"dashboard\",\r\n templateUrl: \"dashboard.component.html\",\r\n styleUrls: [\"./dashboard.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DashboardComponent implements OnInit, OnDestroy {\r\n sub: any;\r\n dashboardId: number;\r\n currentDashboard: any;\r\n constructor(public dashboardService: DashboardService, private route: ActivatedRoute) {\r\n\r\n }\r\n ngOnInit() {\r\n console.log(this.dashboardService.currentDashboard);\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n\r\n }\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n templateUrl: './recipes.component.html',\r\n styleUrls: ['./recipes.component.scss']\r\n})\r\nexport class RecipesComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n console.log('RECIPES HAVE ARRIVED...');\r\n }\r\n\r\n}\r\n","
          RECIPES GO HERE...
          ","/*!\n * perfect-scrollbar v1.5.3\n * Copyright 2021 Hyunje Jun, MDBootstrap and Contributors\n * Licensed under MIT\n */\n\nfunction get(element) {\n return getComputedStyle(element);\n}\nfunction set(element, obj) {\n for (var key in obj) {\n var val = obj[key];\n if (typeof val === 'number') {\n val = val + \"px\";\n }\n element.style[key] = val;\n }\n return element;\n}\nfunction div(className) {\n var div = document.createElement('div');\n div.className = className;\n return div;\n}\nvar elMatches = typeof Element !== 'undefined' && (Element.prototype.matches || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector);\nfunction matches(element, query) {\n if (!elMatches) {\n throw new Error('No element matching method supported');\n }\n return elMatches.call(element, query);\n}\nfunction remove(element) {\n if (element.remove) {\n element.remove();\n } else {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n }\n}\nfunction queryChildren(element, selector) {\n return Array.prototype.filter.call(element.children, function (child) {\n return matches(child, selector);\n });\n}\nvar cls = {\n main: 'ps',\n rtl: 'ps__rtl',\n element: {\n thumb: function (x) {\n return \"ps__thumb-\" + x;\n },\n rail: function (x) {\n return \"ps__rail-\" + x;\n },\n consuming: 'ps__child--consume'\n },\n state: {\n focus: 'ps--focus',\n clicking: 'ps--clicking',\n active: function (x) {\n return \"ps--active-\" + x;\n },\n scrolling: function (x) {\n return \"ps--scrolling-\" + x;\n }\n }\n};\n\n/*\n * Helper methods\n */\nvar scrollingClassTimeout = {\n x: null,\n y: null\n};\nfunction addScrollingClass(i, x) {\n var classList = i.element.classList;\n var className = cls.state.scrolling(x);\n if (classList.contains(className)) {\n clearTimeout(scrollingClassTimeout[x]);\n } else {\n classList.add(className);\n }\n}\nfunction removeScrollingClass(i, x) {\n scrollingClassTimeout[x] = setTimeout(function () {\n return i.isAlive && i.element.classList.remove(cls.state.scrolling(x));\n }, i.settings.scrollingThreshold);\n}\nfunction setScrollingClassInstantly(i, x) {\n addScrollingClass(i, x);\n removeScrollingClass(i, x);\n}\nvar EventElement = function EventElement(element) {\n this.element = element;\n this.handlers = {};\n};\nvar prototypeAccessors = {\n isEmpty: {\n configurable: true\n }\n};\nEventElement.prototype.bind = function bind(eventName, handler) {\n if (typeof this.handlers[eventName] === 'undefined') {\n this.handlers[eventName] = [];\n }\n this.handlers[eventName].push(handler);\n this.element.addEventListener(eventName, handler, false);\n};\nEventElement.prototype.unbind = function unbind(eventName, target) {\n var this$1 = this;\n this.handlers[eventName] = this.handlers[eventName].filter(function (handler) {\n if (target && handler !== target) {\n return true;\n }\n this$1.element.removeEventListener(eventName, handler, false);\n return false;\n });\n};\nEventElement.prototype.unbindAll = function unbindAll() {\n for (var name in this.handlers) {\n this.unbind(name);\n }\n};\nprototypeAccessors.isEmpty.get = function () {\n var this$1 = this;\n return Object.keys(this.handlers).every(function (key) {\n return this$1.handlers[key].length === 0;\n });\n};\nObject.defineProperties(EventElement.prototype, prototypeAccessors);\nvar EventManager = function EventManager() {\n this.eventElements = [];\n};\nEventManager.prototype.eventElement = function eventElement(element) {\n var ee = this.eventElements.filter(function (ee) {\n return ee.element === element;\n })[0];\n if (!ee) {\n ee = new EventElement(element);\n this.eventElements.push(ee);\n }\n return ee;\n};\nEventManager.prototype.bind = function bind(element, eventName, handler) {\n this.eventElement(element).bind(eventName, handler);\n};\nEventManager.prototype.unbind = function unbind(element, eventName, handler) {\n var ee = this.eventElement(element);\n ee.unbind(eventName, handler);\n if (ee.isEmpty) {\n // remove\n this.eventElements.splice(this.eventElements.indexOf(ee), 1);\n }\n};\nEventManager.prototype.unbindAll = function unbindAll() {\n this.eventElements.forEach(function (e) {\n return e.unbindAll();\n });\n this.eventElements = [];\n};\nEventManager.prototype.once = function once(element, eventName, handler) {\n var ee = this.eventElement(element);\n var onceHandler = function (evt) {\n ee.unbind(eventName, onceHandler);\n handler(evt);\n };\n ee.bind(eventName, onceHandler);\n};\nfunction createEvent(name) {\n if (typeof window.CustomEvent === 'function') {\n return new CustomEvent(name);\n } else {\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(name, false, false, undefined);\n return evt;\n }\n}\nfunction processScrollDiff(i, axis, diff, useScrollingClass, forceFireReachEvent) {\n if (useScrollingClass === void 0) useScrollingClass = true;\n if (forceFireReachEvent === void 0) forceFireReachEvent = false;\n var fields;\n if (axis === 'top') {\n fields = ['contentHeight', 'containerHeight', 'scrollTop', 'y', 'up', 'down'];\n } else if (axis === 'left') {\n fields = ['contentWidth', 'containerWidth', 'scrollLeft', 'x', 'left', 'right'];\n } else {\n throw new Error('A proper axis should be provided');\n }\n processScrollDiff$1(i, diff, fields, useScrollingClass, forceFireReachEvent);\n}\nfunction processScrollDiff$1(i, diff, ref, useScrollingClass, forceFireReachEvent) {\n var contentHeight = ref[0];\n var containerHeight = ref[1];\n var scrollTop = ref[2];\n var y = ref[3];\n var up = ref[4];\n var down = ref[5];\n if (useScrollingClass === void 0) useScrollingClass = true;\n if (forceFireReachEvent === void 0) forceFireReachEvent = false;\n var element = i.element;\n\n // reset reach\n i.reach[y] = null;\n\n // 1 for subpixel rounding\n if (element[scrollTop] < 1) {\n i.reach[y] = 'start';\n }\n\n // 1 for subpixel rounding\n if (element[scrollTop] > i[contentHeight] - i[containerHeight] - 1) {\n i.reach[y] = 'end';\n }\n if (diff) {\n element.dispatchEvent(createEvent(\"ps-scroll-\" + y));\n if (diff < 0) {\n element.dispatchEvent(createEvent(\"ps-scroll-\" + up));\n } else if (diff > 0) {\n element.dispatchEvent(createEvent(\"ps-scroll-\" + down));\n }\n if (useScrollingClass) {\n setScrollingClassInstantly(i, y);\n }\n }\n if (i.reach[y] && (diff || forceFireReachEvent)) {\n element.dispatchEvent(createEvent(\"ps-\" + y + \"-reach-\" + i.reach[y]));\n }\n}\nfunction toInt(x) {\n return parseInt(x, 10) || 0;\n}\nfunction isEditable(el) {\n return matches(el, 'input,[contenteditable]') || matches(el, 'select,[contenteditable]') || matches(el, 'textarea,[contenteditable]') || matches(el, 'button,[contenteditable]');\n}\nfunction outerWidth(element) {\n var styles = get(element);\n return toInt(styles.width) + toInt(styles.paddingLeft) + toInt(styles.paddingRight) + toInt(styles.borderLeftWidth) + toInt(styles.borderRightWidth);\n}\nvar env = {\n isWebKit: typeof document !== 'undefined' && 'WebkitAppearance' in document.documentElement.style,\n supportsTouch: typeof window !== 'undefined' && ('ontouchstart' in window || 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints > 0 || window.DocumentTouch && document instanceof window.DocumentTouch),\n supportsIePointer: typeof navigator !== 'undefined' && navigator.msMaxTouchPoints,\n isChrome: typeof navigator !== 'undefined' && /Chrome/i.test(navigator && navigator.userAgent)\n};\nfunction updateGeometry(i) {\n var element = i.element;\n var roundedScrollTop = Math.floor(element.scrollTop);\n var rect = element.getBoundingClientRect();\n i.containerWidth = Math.round(rect.width);\n i.containerHeight = Math.round(rect.height);\n i.contentWidth = element.scrollWidth;\n i.contentHeight = element.scrollHeight;\n if (!element.contains(i.scrollbarXRail)) {\n // clean up and append\n queryChildren(element, cls.element.rail('x')).forEach(function (el) {\n return remove(el);\n });\n element.appendChild(i.scrollbarXRail);\n }\n if (!element.contains(i.scrollbarYRail)) {\n // clean up and append\n queryChildren(element, cls.element.rail('y')).forEach(function (el) {\n return remove(el);\n });\n element.appendChild(i.scrollbarYRail);\n }\n if (!i.settings.suppressScrollX && i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth) {\n i.scrollbarXActive = true;\n i.railXWidth = i.containerWidth - i.railXMarginWidth;\n i.railXRatio = i.containerWidth / i.railXWidth;\n i.scrollbarXWidth = getThumbSize(i, toInt(i.railXWidth * i.containerWidth / i.contentWidth));\n i.scrollbarXLeft = toInt((i.negativeScrollAdjustment + element.scrollLeft) * (i.railXWidth - i.scrollbarXWidth) / (i.contentWidth - i.containerWidth));\n } else {\n i.scrollbarXActive = false;\n }\n if (!i.settings.suppressScrollY && i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight) {\n i.scrollbarYActive = true;\n i.railYHeight = i.containerHeight - i.railYMarginHeight;\n i.railYRatio = i.containerHeight / i.railYHeight;\n i.scrollbarYHeight = getThumbSize(i, toInt(i.railYHeight * i.containerHeight / i.contentHeight));\n i.scrollbarYTop = toInt(roundedScrollTop * (i.railYHeight - i.scrollbarYHeight) / (i.contentHeight - i.containerHeight));\n } else {\n i.scrollbarYActive = false;\n }\n if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) {\n i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth;\n }\n if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) {\n i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight;\n }\n updateCss(element, i);\n if (i.scrollbarXActive) {\n element.classList.add(cls.state.active('x'));\n } else {\n element.classList.remove(cls.state.active('x'));\n i.scrollbarXWidth = 0;\n i.scrollbarXLeft = 0;\n element.scrollLeft = i.isRtl === true ? i.contentWidth : 0;\n }\n if (i.scrollbarYActive) {\n element.classList.add(cls.state.active('y'));\n } else {\n element.classList.remove(cls.state.active('y'));\n i.scrollbarYHeight = 0;\n i.scrollbarYTop = 0;\n element.scrollTop = 0;\n }\n}\nfunction getThumbSize(i, thumbSize) {\n if (i.settings.minScrollbarLength) {\n thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength);\n }\n if (i.settings.maxScrollbarLength) {\n thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength);\n }\n return thumbSize;\n}\nfunction updateCss(element, i) {\n var xRailOffset = {\n width: i.railXWidth\n };\n var roundedScrollTop = Math.floor(element.scrollTop);\n if (i.isRtl) {\n xRailOffset.left = i.negativeScrollAdjustment + element.scrollLeft + i.containerWidth - i.contentWidth;\n } else {\n xRailOffset.left = element.scrollLeft;\n }\n if (i.isScrollbarXUsingBottom) {\n xRailOffset.bottom = i.scrollbarXBottom - roundedScrollTop;\n } else {\n xRailOffset.top = i.scrollbarXTop + roundedScrollTop;\n }\n set(i.scrollbarXRail, xRailOffset);\n var yRailOffset = {\n top: roundedScrollTop,\n height: i.railYHeight\n };\n if (i.isScrollbarYUsingRight) {\n if (i.isRtl) {\n yRailOffset.right = i.contentWidth - (i.negativeScrollAdjustment + element.scrollLeft) - i.scrollbarYRight - i.scrollbarYOuterWidth - 9;\n } else {\n yRailOffset.right = i.scrollbarYRight - element.scrollLeft;\n }\n } else {\n if (i.isRtl) {\n yRailOffset.left = i.negativeScrollAdjustment + element.scrollLeft + i.containerWidth * 2 - i.contentWidth - i.scrollbarYLeft - i.scrollbarYOuterWidth;\n } else {\n yRailOffset.left = i.scrollbarYLeft + element.scrollLeft;\n }\n }\n set(i.scrollbarYRail, yRailOffset);\n set(i.scrollbarX, {\n left: i.scrollbarXLeft,\n width: i.scrollbarXWidth - i.railBorderXWidth\n });\n set(i.scrollbarY, {\n top: i.scrollbarYTop,\n height: i.scrollbarYHeight - i.railBorderYWidth\n });\n}\nfunction clickRail(i) {\n var element = i.element;\n i.event.bind(i.scrollbarY, 'mousedown', function (e) {\n return e.stopPropagation();\n });\n i.event.bind(i.scrollbarYRail, 'mousedown', function (e) {\n var positionTop = e.pageY - window.pageYOffset - i.scrollbarYRail.getBoundingClientRect().top;\n var direction = positionTop > i.scrollbarYTop ? 1 : -1;\n i.element.scrollTop += direction * i.containerHeight;\n updateGeometry(i);\n e.stopPropagation();\n });\n i.event.bind(i.scrollbarX, 'mousedown', function (e) {\n return e.stopPropagation();\n });\n i.event.bind(i.scrollbarXRail, 'mousedown', function (e) {\n var positionLeft = e.pageX - window.pageXOffset - i.scrollbarXRail.getBoundingClientRect().left;\n var direction = positionLeft > i.scrollbarXLeft ? 1 : -1;\n i.element.scrollLeft += direction * i.containerWidth;\n updateGeometry(i);\n e.stopPropagation();\n });\n}\nfunction dragThumb(i) {\n bindMouseScrollHandler(i, ['containerWidth', 'contentWidth', 'pageX', 'railXWidth', 'scrollbarX', 'scrollbarXWidth', 'scrollLeft', 'x', 'scrollbarXRail']);\n bindMouseScrollHandler(i, ['containerHeight', 'contentHeight', 'pageY', 'railYHeight', 'scrollbarY', 'scrollbarYHeight', 'scrollTop', 'y', 'scrollbarYRail']);\n}\nfunction bindMouseScrollHandler(i, ref) {\n var containerHeight = ref[0];\n var contentHeight = ref[1];\n var pageY = ref[2];\n var railYHeight = ref[3];\n var scrollbarY = ref[4];\n var scrollbarYHeight = ref[5];\n var scrollTop = ref[6];\n var y = ref[7];\n var scrollbarYRail = ref[8];\n var element = i.element;\n var startingScrollTop = null;\n var startingMousePageY = null;\n var scrollBy = null;\n function mouseMoveHandler(e) {\n if (e.touches && e.touches[0]) {\n e[pageY] = e.touches[0].pageY;\n }\n element[scrollTop] = startingScrollTop + scrollBy * (e[pageY] - startingMousePageY);\n addScrollingClass(i, y);\n updateGeometry(i);\n e.stopPropagation();\n if (e.type.startsWith('touch') && e.changedTouches.length > 1) {\n e.preventDefault();\n }\n }\n function mouseUpHandler() {\n removeScrollingClass(i, y);\n i[scrollbarYRail].classList.remove(cls.state.clicking);\n i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);\n }\n function bindMoves(e, touchMode) {\n startingScrollTop = element[scrollTop];\n if (touchMode && e.touches) {\n e[pageY] = e.touches[0].pageY;\n }\n startingMousePageY = e[pageY];\n scrollBy = (i[contentHeight] - i[containerHeight]) / (i[railYHeight] - i[scrollbarYHeight]);\n if (!touchMode) {\n i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);\n i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);\n e.preventDefault();\n } else {\n i.event.bind(i.ownerDocument, 'touchmove', mouseMoveHandler);\n }\n i[scrollbarYRail].classList.add(cls.state.clicking);\n e.stopPropagation();\n }\n i.event.bind(i[scrollbarY], 'mousedown', function (e) {\n bindMoves(e);\n });\n i.event.bind(i[scrollbarY], 'touchstart', function (e) {\n bindMoves(e, true);\n });\n}\nfunction keyboard(i) {\n var element = i.element;\n var elementHovered = function () {\n return matches(element, ':hover');\n };\n var scrollbarFocused = function () {\n return matches(i.scrollbarX, ':focus') || matches(i.scrollbarY, ':focus');\n };\n function shouldPreventDefault(deltaX, deltaY) {\n var scrollTop = Math.floor(element.scrollTop);\n if (deltaX === 0) {\n if (!i.scrollbarYActive) {\n return false;\n }\n if (scrollTop === 0 && deltaY > 0 || scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0) {\n return !i.settings.wheelPropagation;\n }\n }\n var scrollLeft = element.scrollLeft;\n if (deltaY === 0) {\n if (!i.scrollbarXActive) {\n return false;\n }\n if (scrollLeft === 0 && deltaX < 0 || scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0) {\n return !i.settings.wheelPropagation;\n }\n }\n return true;\n }\n i.event.bind(i.ownerDocument, 'keydown', function (e) {\n if (e.isDefaultPrevented && e.isDefaultPrevented() || e.defaultPrevented) {\n return;\n }\n if (!elementHovered() && !scrollbarFocused()) {\n return;\n }\n var activeElement = document.activeElement ? document.activeElement : i.ownerDocument.activeElement;\n if (activeElement) {\n if (activeElement.tagName === 'IFRAME') {\n activeElement = activeElement.contentDocument.activeElement;\n } else {\n // go deeper if element is a webcomponent\n while (activeElement.shadowRoot) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n }\n if (isEditable(activeElement)) {\n return;\n }\n }\n var deltaX = 0;\n var deltaY = 0;\n switch (e.which) {\n case 37:\n // left\n if (e.metaKey) {\n deltaX = -i.contentWidth;\n } else if (e.altKey) {\n deltaX = -i.containerWidth;\n } else {\n deltaX = -30;\n }\n break;\n case 38:\n // up\n if (e.metaKey) {\n deltaY = i.contentHeight;\n } else if (e.altKey) {\n deltaY = i.containerHeight;\n } else {\n deltaY = 30;\n }\n break;\n case 39:\n // right\n if (e.metaKey) {\n deltaX = i.contentWidth;\n } else if (e.altKey) {\n deltaX = i.containerWidth;\n } else {\n deltaX = 30;\n }\n break;\n case 40:\n // down\n if (e.metaKey) {\n deltaY = -i.contentHeight;\n } else if (e.altKey) {\n deltaY = -i.containerHeight;\n } else {\n deltaY = -30;\n }\n break;\n case 32:\n // space bar\n if (e.shiftKey) {\n deltaY = i.containerHeight;\n } else {\n deltaY = -i.containerHeight;\n }\n break;\n case 33:\n // page up\n deltaY = i.containerHeight;\n break;\n case 34:\n // page down\n deltaY = -i.containerHeight;\n break;\n case 36:\n // home\n deltaY = i.contentHeight;\n break;\n case 35:\n // end\n deltaY = -i.contentHeight;\n break;\n default:\n return;\n }\n if (i.settings.suppressScrollX && deltaX !== 0) {\n return;\n }\n if (i.settings.suppressScrollY && deltaY !== 0) {\n return;\n }\n element.scrollTop -= deltaY;\n element.scrollLeft += deltaX;\n updateGeometry(i);\n if (shouldPreventDefault(deltaX, deltaY)) {\n e.preventDefault();\n }\n });\n}\nfunction wheel(i) {\n var element = i.element;\n function shouldPreventDefault(deltaX, deltaY) {\n var roundedScrollTop = Math.floor(element.scrollTop);\n var isTop = element.scrollTop === 0;\n var isBottom = roundedScrollTop + element.offsetHeight === element.scrollHeight;\n var isLeft = element.scrollLeft === 0;\n var isRight = element.scrollLeft + element.offsetWidth === element.scrollWidth;\n var hitsBound;\n\n // pick axis with primary direction\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n hitsBound = isTop || isBottom;\n } else {\n hitsBound = isLeft || isRight;\n }\n return hitsBound ? !i.settings.wheelPropagation : true;\n }\n function getDeltaFromEvent(e) {\n var deltaX = e.deltaX;\n var deltaY = -1 * e.deltaY;\n if (typeof deltaX === 'undefined' || typeof deltaY === 'undefined') {\n // OS X Safari\n deltaX = -1 * e.wheelDeltaX / 6;\n deltaY = e.wheelDeltaY / 6;\n }\n if (e.deltaMode && e.deltaMode === 1) {\n // Firefox in deltaMode 1: Line scrolling\n deltaX *= 10;\n deltaY *= 10;\n }\n if (deltaX !== deltaX && deltaY !== deltaY /* NaN checks */) {\n // IE in some mouse drivers\n deltaX = 0;\n deltaY = e.wheelDelta;\n }\n if (e.shiftKey) {\n // reverse axis with shift key\n return [-deltaY, -deltaX];\n }\n return [deltaX, deltaY];\n }\n function shouldBeConsumedByChild(target, deltaX, deltaY) {\n // FIXME: this is a workaround for \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t\t\t
          ON
          \r\n\t\t\t\t\t\t\t\t
          OFF
          \r\n\t\t\t\t\t\t\t
          \r\n\t\t\t\t\t\t
          \r\n\t\t\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t\t
          \r\n\t\t\t\t\t\r\n\t\t\t\t
          \r\n\t\t\t
          \r\n\t\t\t
          \r\n\t\t
          \r\n\t
        \r\n
        \r\n","import { Component, OnInit, Inject } from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\n\r\n\r\nimport swal from 'sweetalert2';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport {\r\n\tUserSettingsComponent,\r\n\tDialogData,\r\n} from '../user-settings/user-settings.component';\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\nimport { UtilityService } from 'projects/shared-lib/src/lib/services/utility.service';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\n\r\n@Component({\r\n selector: \"user-issues\",\r\n templateUrl: \"./issues.component.html\",\r\n styleUrls: [\"./issues.component.scss\"],\r\n})\r\nexport class IssuesComponent implements OnInit {\r\n public issueForm: FormGroup;\r\n private subjectId: FormControl = null;\r\n private description: FormControl = null;\r\n public mouseoverRegistration = false;\r\n public subjects: any;\r\n public editHeader: string = \"Add New Issue\";\r\n public editSubHeader: string = \"Please enter the subject and the description of the issue you are having with the iOPS application.\";\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData, private dataService: DataService, private router: Router, private utilityService: UtilityService) { }\r\n\r\n ngOnInit() {\r\n Global.User.DebugMode && console.log(\"IssuesPage: currentUser = %O\", Global.User.currentUser);\r\n\r\n this.subjectId = new FormControl(\"\");\r\n this.description = new FormControl(\"\", Validators.required);\r\n\r\n this.issueForm = new FormGroup({\r\n subjectId: this.subjectId,\r\n description: this.description,\r\n });\r\n\r\n this.getSubjects();\r\n }\r\n\r\n validateDescription() {\r\n return this.description.valid || this.description.untouched;\r\n }\r\n\r\n async sendNotificationToUser() {\r\n swal.fire({\r\n title: \"Issue Submitted\",\r\n position: \"center\",\r\n html: \"Your issue has been submitted. Thank you for taking the time to log the issue.\",\r\n });\r\n }\r\n\r\n getSubjects() {\r\n this.dataService.SQLActionAsPromise(\"API.User_GetUserIssueSubjects\").then((data: any) => {\r\n console.log(\"subjects = %O\", data);\r\n this.subjects = data;\r\n });\r\n }\r\n\r\n closeDialog(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n submitIssue(values: any) {\r\n console.log(\"issueFormValues: %O\", values);\r\n //--format parameter list to send to the function.\r\n var description = values.description;\r\n console.log(\"description = \" + description);\r\n\r\n values.description = this.utilityService.updateStringToSQLSyntax(description); // -- replace all single quotes with two single quotes.\r\n\r\n var paramString = \"API.User_SubmitIssue @UserId=\" + Global.User.currentUser.Id + \", @Description='\" + values.description + \"'\";\r\n\r\n if (values.subjectId) {\r\n paramString += \", @SubjectId=\" + values.subjectId;\r\n }\r\n\r\n this.dataService.SQLActionAsPromise(paramString).then((data: any) => {\r\n if (data) {\r\n console.log(\"data = %O\", data);\r\n\r\n this.sendNotificationToUser();\r\n this.closeDialog();\r\n }\r\n });\r\n }\r\n}\r\n","\r\n
        \r\n\t
        \r\n\t\t

        {{ editHeader }}

        \r\n\t\t\r\n\t\t
        {{ editSubHeader }}
        \r\n\t
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t\r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t\r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\r\n\t\t\t\r\n\t\t
        \r\n\t
        \r\n
        \r\n","import { Component, OnInit, ElementRef, OnDestroy, EventEmitter } from \"@angular/core\";\r\n\r\nimport { Location } from \"@angular/common\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { Router } from \"@angular/router\";\r\n\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { UserSettingsComponent } from \"../../../app/_layout/navbar/user-settings/user-settings.component\";\r\nimport { IssuesComponent } from \"./issues/issues.component\";\r\n\r\nimport swal from \"sweetalert2\";\r\nimport moment from \"moment\";\r\nimport { RegistrationComponent } from \"../../../app/user/registration/registration.component\";\r\nimport { PersonalInformationComponent } from \"../../../app/user/personal-information/personal-information.component\";\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { SystemService } from \"projects/shared-lib/src/lib/services/system.service\";\r\nimport { UtilityService } from \"projects/shared-lib/src/lib/services/utility.service\";\r\nimport { ReleaseNotesComponent } from \"projects/shared-lib/src/lib/components/release-notes/release-notes.component\";\r\nimport { IGlobal } from \"projects/shared-lib/src/lib/_models/global.model\";\r\nimport { FileUploadListComponent } from \"projects/shared-lib/src/lib/components/file-upload-list/file-upload-list.component\";\r\nimport { SecurityService } from \"projects/shared-lib/src/lib/services/security.service\";\r\nimport { PersonalAlertEscalationComponent } from \"../../../app/user/personal-alert-escalation/personal-alert-escalation.component\";\r\nimport { AlertControlPanelComponent } from \"projects/shared-lib/src/lib/components/alert-control-panel/alert-control-panel.component\";\r\n\r\nconst misc: any = {\r\n\tsidebar_mini_active: true\r\n};\r\n@Component({\r\n\tselector: 'app-navbar',\r\n\ttemplateUrl: './navbar.component.html',\r\n\tstyleUrls: ['./navbar.component.scss'],\r\n})\r\nexport class NavbarComponent implements OnInit, OnDestroy {\r\n\tpublic global: IGlobal = Global;\r\n\tprivate listTitles: any[];\r\n\tlocation: Location;\r\n\r\n\tprivate toggleButton: any;\r\n\tpublic isCollapsed: boolean = true;\r\n\tpublic CompanyTinyLogoImage: string;\r\n\r\n\t// -- fields for original fixed-plugin component --\r\n\tpublic sidebarColor = 'blue';\r\n\tpublic state = true;\r\n\tpublic dashboardColor = true;\r\n\tpublic firstName: string;\r\n\tpublic formattedTime: string;\r\n\tpublic hours: number;\r\n\t// -- end fields for original fixed-plugin component --\r\n\r\n\tpublic changePasswordHasBeenRequested: boolean = false;\r\n\ttimestampInterval: any;\r\n\r\n\tpublic fileImageData: any;\r\n\tpublic FileImageLibraryControlObject: any;\r\n\tpublic countOfTrainingVideosUploaded: number = 0;\r\n\tprivate componentName: string = 'navbar';\r\n\tpublic broadcastMessage: any;\r\n\tcheckBroadcastMessagesInterval: any;\r\n\tfullDataCacheSubscription: any;\r\n\tissuesForUser: any;\r\n\r\n\tconstructor(\r\n\t\tlocation: Location,\r\n\t\tprivate element: ElementRef,\r\n\t\tprivate router: Router,\r\n\t\tpublic toastr: ToastrService,\r\n\t\tpublic dataService: DataService,\r\n\t\tpublic systemService: SystemService,\r\n\t\tpublic utilityService: UtilityService,\r\n\t\tpublic dialog: MatDialog,\r\n\t\tpublic securityService: SecurityService\r\n\t) {\r\n\t\tthis.location = location;\r\n\t\tsystemService.themeChange$.subscribe((t) => {\r\n\t\t\tthis.CompanyTinyLogoImage = t;\r\n\t\t\tGlobal.User.DebugMode && console.log('theme changed = %O', t);\r\n\t\t\tthis.CompanyTinyLogoImage = Global.CompanyTinyLogoImage;\r\n\t\t});\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.timestampInterval = setInterval(() => {\r\n\t\t\tlet time = new Date();\r\n\t\t\tthis.formattedTime = moment(\r\n\t\t\t\ttime,\r\n\t\t\t\t'ddd DD-MMM-YYYY, hh:mm A'\r\n\t\t\t).format('hh:mm A');\r\n\t\t\tthis.hours = parseInt(this.formattedTime.substring(0, 2));\r\n\t\t}, 1000);\r\n\r\n\t\tthis.firstName = Global.User.currentUser.GivenName;\r\n\t\tthis.CompanyTinyLogoImage = Global.CompanyTinyLogoImage;\r\n\t\tGlobal.User.DebugMode &&\r\n\t\t\tconsole.log(\r\n\t\t\t\t'CompanyTinyLogoImage = ' +\r\n\t\t\t\tthis.CompanyTinyLogoImage +\r\n\t\t\t\t', Global.CompanyTinyLogoImage = ' +\r\n\t\t\t\tGlobal.CompanyTinyLogoImage\r\n\t\t\t);\r\n\t\tthis.dataService.companyTinyLogoChanged$.subscribe((image: any) => {\r\n\t\t\tthis.CompanyTinyLogoImage = Global.CompanyTinyLogoImage;\r\n\t\t});\r\n\r\n\t\tthis.dataService.currentUserChanged$.subscribe((currentUser: any) => {\r\n\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\tconsole.log(\r\n\t\t\t\t\tthis.componentName + ' current user changed: %O',\r\n\t\t\t\t\tcurrentUser\r\n\t\t\t\t);\r\n\t\t\tthis.firstName = currentUser.GivenName;\r\n\t\t});\r\n\r\n\t\tthis.checkBroadcastMessages(true);\r\n\t\tthis.checkBroadcastMessagesInterval = setInterval(() => {\r\n\t\t\tthis.checkBroadcastMessages(false);\r\n\t\t}, 300000);\r\n\r\n\t\twindow.addEventListener('resize', this.updateColor);\r\n\t\t// this.listTitles = ROUTES.filter(listTitle => listTitle);\r\n\t\tconst navbar: HTMLElement = this.element.nativeElement;\r\n\t\tthis.toggleButton = navbar.getElementsByClassName('navbar-toggler')[0];\r\n\t\tthis.router.events.subscribe((event) => {\r\n\t\t\tthis.dataService.sidebarClose();\r\n\t\t});\r\n\r\n\t\tif (!Global.FullDataCacheExists) {\r\n\t\t\tthis.fullDataCacheSubscription =\r\n\t\t\t\tthis.dataService.fullDataCacheExists$.subscribe((data: any) => {\r\n\t\t\t\t\tif (data === true) {\r\n\t\t\t\t\t\tthis.determineIssuesNotification();\r\n\t\t\t\t\t\tthis.fullDataCacheSubscription.unsubscribe();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.determineIssuesNotification();\r\n\t\t}\r\n\t}\r\n\r\n\tdetermineIssuesNotification() {\r\n\t\tGlobal.User.issueNotificationCount = this.dataService.cache.userIssues.where((i: any) => {\r\n\t\t\tif(Global.User.currentUser.GivenName === 'Dylan' && Global.User.currentUser.FamilyName === 'Richard' && Global.User.isAdmin) {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t((i.AssignedToUserId === 0 || i.AssignedToUserId === null) && (i.Resolved === false || i.Resolved === null)) ||\r\n\t\t\t\t\t(i.CreatorUserId === Global.User.currentUser.Id &&\r\n\t\t\t\t\t\ti.NotifyCreatorUser === true) ||\r\n\t\t\t\t\t(i.AssignedToUserId === Global.User.currentUser.Id &&\r\n\t\t\t\t\t\ti.NotifyAssignedUser === true)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tif (Global.User.isAdmin) {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t(i.CreatorUserId === Global.User.currentUser.Id &&\r\n\t\t\t\t\t\ti.NotifyCreatorUser === true) ||\r\n\t\t\t\t\t(i.AssignedToUserId === Global.User.currentUser.Id &&\r\n\t\t\t\t\t\ti.NotifyAssignedUser === true)\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\treturn (\r\n\t\t\t\t\ti.CreatorUserId === Global.User.currentUser.Id &&\r\n\t\t\t\t\ti.NotifyCreatorUser === true\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}).toArray().length;\r\n\t}\r\n\r\n\tcheckBroadcastMessages(initialCheck: any) {\r\n\t\tif (Global.User.isLoggedIn && Global.User.currentUser?.Organization) {\r\n\t\t\tvar currentDateMS = this.utilityService.DateTimeInMilliseconds(\r\n\t\t\t\tnew Date()\r\n\t\t\t);\r\n\t\t\tthis.dataService\r\n\t\t\t\t.SQLActionAsPromise(\r\n\t\t\t\t\t'API.RDN_GetApplicationBroadcastMessages @CurrentDateMS=' +\r\n\t\t\t\t\t\tcurrentDateMS +\r\n\t\t\t\t\t\t', @OrganizationId=' +\r\n\t\t\t\t\t\tGlobal.User.currentUser.Organization.Id\r\n\t\t\t\t)\r\n\t\t\t\t.then((data: any) => {\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t'total list of broadcast messsages for the current timeframe: %O',\r\n\t\t\t\t\t\tdata\r\n\t\t\t\t\t);\r\n\t\t\t\t\tthis.broadcastMessage =\r\n\t\t\t\t\t\tdata.length > 0 ? data.first() : null;\r\n\t\t\t\t\tif (this.broadcastMessage !== null && initialCheck) {\r\n\t\t\t\t\t\tthis.securityService.openSnackBarMessage(\r\n\t\t\t\t\t\t\tthis.broadcastMessage\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\t'broadcast messsage to display: %O',\r\n\t\t\t\t\t\t\tthis.broadcastMessage\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tGlobal.User.DebugMode && console.log('ngOnDestroy invoked...');\r\n\t\twindow.removeEventListener('resize', this.updateColor);\r\n\t\tif (this.timestampInterval) {\r\n\t\t\tclearInterval(this.timestampInterval);\r\n\t\t}\r\n\t}\r\n\r\n\t// function that adds color white/transparent to the navbar on resize (this is for the collapse)\r\n\tupdateColor = () => {\r\n\t\tthis.dataService.updateColor(this.isCollapsed);\r\n\t};\r\n\r\n\tminimizeSidebar() {\r\n\t\tthis.dataService.minimizeSidebar();\r\n\t}\r\n\r\n\tshowSidebarMessage(message) {\r\n\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\ttype: 'info',\r\n\t\t\tmessage:\r\n\t\t\t\t'',\r\n\t\t\ttitle: message,\r\n\t\t\toverride: {\r\n\t\t\t\ttimeOut: 4000,\r\n\t\t\t\tcloseButton: true,\r\n\t\t\t\tenableHtml: true,\r\n\t\t\t\ttoastClass: 'alert alert-danger alert-with-icon',\r\n\t\t\t\tpositionClass: 'toast-top-right',\r\n\t\t\t},\r\n\t\t});\r\n\t\t// this.toastr.show('', message, {\r\n\t\t// timeOut: 4000,\r\n\t\t// closeButton: true,\r\n\t\t// enableHtml: true,\r\n\t\t// toastClass: \"alert alert-danger alert-with-icon\",\r\n\t\t// positionClass: \"toast-top-right\",\r\n\t\t// });\r\n\t}\r\n\r\n\tgetTitle() {\r\n\t\treturn Global.CurrentMenuItem == null ? 'Dashboard'\t: Global.CurrentMenuItem;\r\n\t}\r\n\r\n\tsidebarOpen() {\r\n\t\tthis.dataService.sidebarOpen();\r\n\t}\r\n\r\n\topenDialog(type: string): void {\r\n\t\tvar innerWidth = window.innerWidth;\r\n\r\n\t\tif (type == 'userSettings') {\r\n\t\t\tconst dialogRef = this.dialog.open(UserSettingsComponent, {\r\n\t\t\t\twidth: innerWidth > 1920 ? '38vw' : '48vw',\r\n\t\t\t\theight: '42vh', //,\r\n\t\t\t\t// data: {name: this.name, animal: this.animal}\r\n\t\t\t});\r\n\t\t\tdialogRef.afterClosed().subscribe((result) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log('The dialog was closed');\r\n\t\t\t\t//this.animal = result;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (type == 'issues') {\r\n\t\t\tthis.dataService\r\n\t\t\t\t.SQLActionAsPromise(\r\n\t\t\t\t\t'API.Issues_GetListOfIssues @ViewAllIssues=null, @UserIssueId=null, @UserId=' +\r\n\t\t\t\t\t\tGlobal.User.currentUser.Id\r\n\t\t\t\t)\r\n\t\t\t\t.then((data: any) => {\r\n\t\t\t\t\tif (data.length > 0) {\r\n\t\t\t\t\t\t//-- user has already has at least one issue outstanding. Send them to the Issues list. If they are not an administrator, they will see their list of\r\n\t\t\t\t\t\t//-- outstanding issues. If they are an administrator, they will see all outstanding issues. In either case, there is a '+' button at the top, right-hand\r\n\t\t\t\t\t\t//-- corner of the list to add a new issue if the problem the user is having has not already been logged. --Kirk T. Sherer, April 23, 2021.\r\n\t\t\t\t\t\tthis.router.navigate(['layout/issues']);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//-- just bring up a dialog for logging an issue.\r\n\t\t\t\t\t\tconst dialogRef = this.dialog.open(IssuesComponent, {\r\n\t\t\t\t\t\t\twidth: innerWidth > 1920 ? '50vw' : '60vw',\r\n\t\t\t\t\t\t\t//height: '75vh'//,\r\n\t\t\t\t\t\t\t// data: {name: this.name, animal: this.animal}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tdialogRef.afterClosed().subscribe((result) => {\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\t\t\t\tconsole.log('The dialog was closed');\r\n\t\t\t\t\t\t\t//this.animal = result;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (type == 'personalInformation') {\r\n\t\t\tconst dialogRef = this.dialog.open(PersonalInformationComponent, {\r\n\t\t\t\twidth: '45%',\r\n\t\t\t\theight: '60%',\r\n\t\t\t});\r\n\t\t\tdialogRef.afterClosed().subscribe((result) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log('The dialog was closed');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (type == 'PersonalAlertEscalation') {\r\n\t\t\tconst dialogRef = this.dialog.open(\r\n\t\t\t\tPersonalAlertEscalationComponent,\r\n\t\t\t\t{\r\n\t\t\t\t\twidth: '45%',\r\n\t\t\t\t\theight: '60%',\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t\tdialogRef.afterClosed().subscribe((result) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log('The dialog was closed');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (type == 'AlertSettings') {\r\n\t\t\tconst dialogRef = this.dialog.open(\r\n\t\t\t\tAlertControlPanelComponent,\r\n\t\t\t\t{\r\n\t\t\t\t\twidth: '70%',\r\n\t\t\t\t\theight: '70%',\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t\tdialogRef.afterClosed().subscribe((result) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log('The dialog was closed');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (type == 'trainingVideos') {\r\n\t\t\tthis.openFileImageUploadWindow();\r\n\t\t}\r\n\r\n\t\tif (type == 'releaseNotes') {\r\n\r\n\t\t\tthis.router.navigate(['layout/releaseNotes']);\r\n\r\n\r\n\t\t}\r\n\t}\r\n\r\n\topenFileImageUploadWindow() {\r\n\t\tvar service = this;\r\n\t\tvar entityId = 1; // entityId = 1 for Application documentation is the Training ApplicationFileType. --Kirk T. Sherer, January 15, 2021.\r\n\t\tvar entityType = 'Application';\r\n\t\tvar title: string = 'Training Videos';\r\n\r\n\t\tvar sqlStatement = \"API.FileImageManagement @Type='List', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @UserId=\" + Global.User.currentUser.Id;\r\n\t\tservice.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \": \" + sqlStatement + \" = %O\", data);\r\n\t\t\tservice.fileImageData = data;\r\n\t\t\tservice.FileImageLibraryControlObject = {\r\n\t\t\t\timageKeys: service.fileImageData.filter((i: any) => {\r\n\t\t\t\t\treturn i.ImageKey;\r\n\t\t\t\t}),\r\n\t\t\t\t//---B\r\n\t\t\t\tremoveUploadFunction(deletedImageKey: string) {\r\n\t\t\t\t\tservice.dataService.SQLActionAsPromise(\"API.FileImageManagement @Type='Delete', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @ImageKey='\" + deletedImageKey + \"', @UserId=\" + Global.User.currentUser.Id).then((deletedEntity: any) => {\r\n\t\t\t\t\t\tservice.fileImageData.splice(deletedEntity);\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t//---B\r\n\t\t\t\taddUploadFunction(newImageKey: string) {\r\n\t\t\t\t\tservice.dataService.SQLActionAsPromise(\"API.FileImageManagement @Type='Add', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @ImageKey='\" + newImageKey + \"', @UserId=\" + Global.User.currentUser.Id).then((newEntity: any) => {\r\n\t\t\t\t\t\tservice.fileImageData.push(newEntity);\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\tmode: null,\r\n\t\t\t\tlistTitle: title,\r\n\t\t\t\tentityId: entityId,\r\n\t\t\t\tentityType: entityType,\r\n\t\t\t\tcloseUploadWindowFunction() {\r\n\t\t\t\t\tservice.FileImageLibraryControlObject = null;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tservice.openFileUploadDialog();\r\n\t\t});\r\n\t}\r\n\r\n\topenFileUploadDialog(): void {\r\n\t\tvar innerWidth = window.innerWidth;\r\n\t\tconst dialogRef = this.dialog.open(FileUploadListComponent, {\r\n\t\t\twidth: '70%',\r\n\t\t\theight: '70%',\r\n\t\t});\r\n\r\n\t\tdialogRef.componentInstance.fileImageLibraryControlObject =\r\n\t\t\tthis.FileImageLibraryControlObject;\r\n\r\n\t\tdialogRef.afterClosed().subscribe((result) => {\r\n\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\tconsole.log(\r\n\t\t\t\t\tthis.componentName + ': The File Upload dialog was closed'\r\n\t\t\t\t);\r\n\t\t\tthis.getCountOfFilesUploaded(\r\n\t\t\t\tthis.FileImageLibraryControlObject.entityId,\r\n\t\t\t\tthis.FileImageLibraryControlObject.entityType\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\tgetCountOfFilesUploaded(entityId: number, entityType: string) {\r\n\t\tvar sqlStatement = \"API.FileImageManagement @Type='Count', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @UserId=\" + Global.User.currentUser.Id;\r\n\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\tvar listOfFiles = data;\r\n\t\t\tthis.countOfTrainingVideosUploaded = listOfFiles.length > 0 ? listOfFiles.first().CountOfFilesUploaded : 0;\r\n\t\t});\r\n\t}\r\n\r\n\tsendPasswordToken() {\r\n\t\tconsole.log('sendPasswordToken invoked...');\r\n\t\tthis.changePasswordHasBeenRequested = true;\r\n\t\tconsole.log(\r\n\t\t\t'changePasswordHasBeenRequested = ' +\r\n\t\t\t\tthis.changePasswordHasBeenRequested\r\n\t\t);\r\n\t\tvar username = Global.User.currentUser.Username;\r\n\t\tconsole.log('username = ' + username);\r\n\r\n\t\tif (username) {\r\n\t\t\tconsole.log('attempting to send reset password token...');\r\n\t\t\tthis.dataService\r\n\t\t\t\t.RequestToResetPassword(username)\r\n\t\t\t\t.then((data: any) => {\r\n\t\t\t\t\tconsole.log('sendPasswordToken: data.body = %O', data.body);\r\n\t\t\t\t\tvar email = data.body.first();\r\n\t\t\t\t\tthis.sendAlertToUser(email);\r\n\t\t\t\t\tthis.changePasswordHasBeenRequested = false;\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tsendAlertToUser(email: string) {\r\n\t\tif (email == undefined) {\r\n\t\t\tswal.fire({\r\n\t\t\t\ttitle: 'Password Change',\r\n\t\t\t\tposition: 'center',\r\n\t\t\t\thtml: 'A Change Password email has been sent to your email address.
        This password change token can be used only once and it will expire in one (1) hour.',\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tswal.fire({\r\n\t\t\t\ttitle: 'Password Change',\r\n\t\t\t\tposition: 'center',\r\n\t\t\t\thtml:\r\n\t\t\t\t\t'A Change Password email has been sent to ' +\r\n\t\t\t\t\temail +\r\n\t\t\t\t\t'.
        This password change token can be used only once and it will expire in one (1) hour.',\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","\r\n\r\n\r\n\r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t
        \r\n\t\t\t {{ getTitle() }} \r\n\t\t
        \r\n\t\t\r\n \t
        NOTE: {{broadcastMessage.Message}}
        \r\n\t\t
        \r\n\t\t\t\r\n\t\t\t
          \r\n\r\n\r\n\t\t\t\t
        • \r\n\t\t\t\t\t\r\n \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
        • \r\n\r\n\r\n\t\t\t\t\r\n\t\t\t\t
        • \r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n\r\n
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n
        \r\n","import { Component, OnInit, Inject } from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\n\r\nimport { Router } from \"@angular/router\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { DialogData } from \"../../../app/_layout/navbar/user-settings/user-settings.component\";\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { IGlobal } from \"projects/shared-lib/src/lib/_models/global.model\";\r\nimport { SelectorService } from \"projects/shared-lib/src/lib/services/selector.service\";\r\nimport { SliderYesNoQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-slider-yes-no\";\r\nimport { TextboxQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-textbox\";\r\nimport { UtilityService } from \"projects/shared-lib/src/lib/services/utility.service\";\r\n\r\n@Component({\r\n\tselector: \"personal-information\",\r\n\ttemplateUrl: \"./personal-information.component.html\",\r\n\tstyleUrls: [\"./personal-information.component.scss\"]\r\n})\r\nexport class PersonalInformationComponent implements OnInit {\r\n\tpublic global: IGlobal = Global;\r\n\tpublic isLoading: boolean = true;\r\n\tpublic editQuestions: any;\r\n\tpublic formOptions: any;\r\n\r\n\tpublic componentName: string = \"personal-information: \";\r\n\tpublic personRecord: any;\r\n\r\n\tconstructor(private dataService: DataService, private utilityService: UtilityService, private router: Router, private selectorService: SelectorService, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.formOptions = {\r\n\t\t\tsubmitButtonText: \"Save Changes\",\r\n\t\t\tsaveValuesPerField: false,\r\n\t\t\tsaveStoredProcedureName: \"API.User_CreateOrModifyUserAccount @UserId=\" + Global.User.currentUser.Id,\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tif (Global.User.isLoggedIn) {\r\n\t\t\tthis.dataService.SQLActionAsPromise(\"API.GetUserProfileRecord \" + Global.User.currentUser.Id).then((data: any) => {\r\n\t\t\t\tconsole.log(\"data = %O\", data);\r\n\t\t\t\tthis.personRecord = data.first();\r\n\r\n\t\t\t\tthis.setUpForm();\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.router.navigate([\"registration\"]);\r\n\t\t}\r\n\t}\r\n\r\n\tsetUpDynamicFormQuestions() {\r\n\t\tthis.editQuestions = [\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"RequestedUsername\",\r\n\t\t\t\tlabel: \"Username\",\r\n\t\t\t\ttitle: \"Your Username for the iOPS Application.\",\r\n\t\t\t\ttype: \"username\",\r\n\t\t\t\trequired: true,\r\n\t\t\t\tvalidateObject: false,\r\n\t\t\t\torder: 1,\r\n\t\t\t\tvalue: this.personRecord.Username\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"EmailAddress\",\r\n\t\t\t\tlabel: \"Email Address\",\r\n\t\t\t\ttitle: \"Your email address. This must be an accurate email address since you will receive notifications about your iOPS account through this email account.\",\r\n\t\t\t\torder: 2,\r\n\t\t\t\ttype: \"person-email\",\r\n\t\t\t\trequired: true,\r\n\t\t\t\tvalidateObject: false,\r\n\t\t\t\tvalue: this.personRecord.Email\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"FirstName\",\r\n\t\t\t\tlabel: \"First Name\",\r\n\t\t\t\ttitle: \"Your First (or given) Name.\",\r\n\t\t\t\trequired: true,\r\n\t\t\t\torder: 3,\r\n\t\t\t\tvalue: this.personRecord.FirstName\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"MiddleName\",\r\n\t\t\t\tlabel: \"Middle Name\",\r\n\t\t\t\ttitle: \"Your Middle Name, if applicable.\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\torder: 4,\r\n\t\t\t\tvalue: this.personRecord.MiddleName\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"LastName\",\r\n\t\t\t\tlabel: \"Last Name\",\r\n\t\t\t\ttitle: \"Your Last (or family) Name.\",\r\n\t\t\t\trequired: true,\r\n\t\t\t\torder: 5,\r\n\t\t\t\tvalue: this.personRecord.LastName\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"MobilePhone\",\r\n\t\t\t\tlabel: \"Cell Phone Number\",\r\n\t\t\t\ttitle: \"Your Cell Phone Number. This phone number must be accurate for two-factor authentication if you will be using your cell phone for communication.\",\r\n\t\t\t\torder: 6,\r\n\t\t\t\ttype: \"phone-number\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\tvalue: this.personRecord.MobilePhone\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"CellPhoneCarrierId\",\r\n\t\t\t\tlabel: \"Cell Carrier\",\r\n\t\t\t\ttitle: \"Please select the correct Cell Carrier for the cell phone. This is needed so texting can happen from the iOPS application to the mobile phone, where applicable.\",\r\n\t\t\t\torder: 7,\r\n\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\tsetName: \"CellPhoneCarrier\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\tvalue: this.personRecord.CellPhoneCarrierId,\r\n\t\t\t\tvisibleFields: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"MobilePhone\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: \"\"\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"ReportsToPersonId\",\r\n\t\t\t\tlabel: \"Reports to Person\",\r\n\t\t\t\ttitle: \"Your Supervisor or Manager. This person would be notified when escalating issues to the next level.\",\r\n\t\t\t\torder: 8,\r\n\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\tsetName: Global.User.isAdmin ? \"Person\" : \"PersonBySingleOrganization\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\tvalidateObject: true,\r\n\t\t\t\tallowBlankValue: true,\r\n\t\t\t\tvalue: this.personRecord.ReportsToPersonId\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"AlternateNotificationEmailPersonId\",\r\n\t\t\t\tlabel: \"Alternate Person\",\r\n\t\t\t\ttitle: \"Another Person to notify when sending out email or texts to you. This typically will be a co-worker or someone you are training. You can always clear this field later if you no longer want to notify this alternate contact.\",\r\n\t\t\t\torder: 9,\r\n\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\tsetName: Global.User.isAdmin ? \"Person\" : \"PersonBySingleOrganization\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\tvalidateObject: true,\r\n\t\t\t\tallowBlankValue: true,\r\n\t\t\t\tvalue: this.personRecord.AlternateNotificationEmailPersonId\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"OutOfOfficeNotificationEmailPersonId\",\r\n\t\t\t\tlabel: \"Out of Office Person\",\r\n\t\t\t\ttitle: \"Another Person that will need to be notified in iOPS of events you are currently watching when you are out of the office.\",\r\n\t\t\t\torder: 10,\r\n\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\tsetName: Global.User.isAdmin ? \"Person\" : \"PersonBySingleOrganization\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\tvalidateObject: true,\r\n\t\t\t\tallowBlankValue: true,\r\n\t\t\t\tvalue: this.personRecord.OutOfOfficeNotificationEmailPersonId\r\n\t\t\t}),\r\n\t\t\tnew SliderYesNoQuestion({\r\n\t\t\t\tkey: \"OutOfOffice\",\r\n\t\t\t\tlabel: \"Out of Office\",\r\n\t\t\t\ttitle: \"Select whether or not you are out of the office. This will shift notifications to your Out of Office contact, if you have entered one previously, and it will shut off notifications while you have your account set as 'Out of Office' on iOPS.\",\r\n\t\t\t\torder: 11,\r\n\t\t\t\tvalue: this.personRecord.OutOfOffice\r\n\t\t\t})\r\n\t\t]\r\n\t}\r\n\r\n\tsetUpForm() {\r\n\t\tthis.setUpDynamicFormQuestions();\r\n\t\tthis.isLoading = false;\r\n\t}\r\n\r\n\r\n\tcloseDialog(): void {\r\n\t\tthis.dialogRef.close();\r\n\t}\r\n\tsendNotificationToUser() {\r\n\t\tthis.utilityService.showToastMessageShared(\r\n\t\t\t{\r\n\t\t\t\ttype: 'info',\r\n\t\t\t\tmessage: \"Your iOPS account has been updated.\",\r\n\t\t\t\ttitle: 'Account Updated'\r\n\t\t\t});\t\r\n\t\tthis.closeDialog();\r\n\t}\r\n\r\n\tsubmitForm(submittedValues: string) {\r\n\t\tGlobal.User.DebugMode && console.log(\"user-settings.component.ts: submitForm: submittedValues = %O\", submittedValues);\r\n\t\tvar fieldListAsString = submittedValues.replace(\"{\", \"\").replace(\"}\", \"\").replace(/:/g, \"=\").replace(/\\\"/g, \"\");\r\n\t\tGlobal.User.DebugMode && console.log(\"user-settings.component.ts: fieldListAsString = \" + fieldListAsString);\r\n\t\tvar submittedValuesObject = JSON.parse(submittedValues);\r\n\t\tGlobal.User.DebugMode && console.log(\"submittedValuesObject = %O\", submittedValuesObject);\r\n\t\tGlobal.User.DebugMode && console.log(\"Object.keys(submittedValuesObject) = %O\", Object.keys(submittedValuesObject));\r\n\t\tvar keys: Array = Object.keys(submittedValuesObject);\r\n\r\n\t\t//-- building a parameter list to attach to the end of the stored procedure to execute it. --Kirk T. Sherer, April 7, 2020.\r\n\r\n\t\tvar fieldListAsString: string = \"\";\r\n\t\tvar countOfFields = 1;\r\n\t\tkeys.forEach((key: any) => {\r\n\t\t\tvar question = this.editQuestions.firstOrDefault((question:any) => { return question.key == key});\r\n\r\n\t\t\tvar value = submittedValuesObject[key];\r\n\t\t\tconsole.log(\"key: \" + key + \", value: \" + value);\r\n\t\t\tfieldListAsString += \"@\" + key + \"=\";\r\n\t\t\tif (isNaN(submittedValuesObject[key]) || key == \"zipcode\") {\r\n\t\t\t\tfieldListAsString += value ? \"'\" + value + \"'\" : \"null\";\r\n\t\t\t} else {\r\n\t\t\t\tif (question.controlType == 'slider-yes-no' || question.controlType == 'slider' || question.controlType == 'slider-true-false') {\r\n\t\t\t\t\tfieldListAsString += value == 1 ? \"1\" : \"0\";\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tfieldListAsString += value ? value : \"null\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (countOfFields < keys.length) {\r\n\t\t\t\tfieldListAsString += \", \";\r\n\t\t\t}\r\n\t\t\tcountOfFields++;\r\n\t\t});\r\n\r\n\t\tGlobal.User.DebugMode && console.log(\"fieldListAsString = \" + fieldListAsString);\r\n\t\tthis.dataService.SQLActionAsPromise(this.formOptions.saveStoredProcedureName + \", \" + fieldListAsString).then((data: any) => {\r\n\t\t\tthis.personRecord = data.first();\r\n\t\t\tthis.sendNotificationToUser();\r\n\t\t\tvar routeDestination = \"/layout/\" + (Global.User.currentUser.Dashboards != null ? \"dashboard/\" + Global.User.currentUser.Dashboards[0].Id : \"dashboard-demo\");\r\n\t\t\tconsole.log(\"routeDestination = \" + routeDestination);\r\n\t\t\tthis.router.navigate([routeDestination]);\r\n\t\t});\r\n\t}\r\n}\r\n","
        \r\n\t
        \r\n
        \r\n\t\t\t
        Personal Information for {{ global.User.currentUser.GivenName + \" \" + global.User.currentUser.FamilyName }}
        \r\n\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n\t
        \r\n\t\t\r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n
        \r\n","import { Component, OnInit, Inject } from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { DialogData } from \"../../../app/_layout/navbar/user-settings/user-settings.component\";\r\nimport { MaterialModule } from '../../_other-modules/material.module';\r\nimport { UserModule } from '../user.module';\r\nimport { trigger, transition, style, animate, query, stagger } from '@angular/animations';\r\nimport { Observable } from 'rxjs';\r\nimport { IGlobal } from \"projects/shared-lib/src/lib/_models/global.model\";\r\nimport { filter, map, startWith, switchMapTo } from \"rxjs/operators\";\r\nimport { SignalRCoreService } from 'projects/shared-lib/src/lib/services/signalr-core.service';\r\n\r\n\r\n const fadeSlide = trigger('fadeSlide', [\r\n\t\ttransition(':enter', [\r\n\t\t\t style({ opacity: 0, transform: 'translateX(250px)' }),\r\n\t\t\t animate(1000, style({ opacity: 1, transform: 'translateX(0)' }))\r\n\t\t]),\r\n\t\ttransition(':leave', [\r\n\t\t\t animate(1000,style({ opacity: 0, transform: 'translateX(250px)' }))\r\n\t\t])\r\n\t]);\r\n\r\n@Component({\r\n\tselector: \"personal-alert-escalation\",\r\n\tanimations: [fadeSlide],\r\n\ttemplateUrl: \"./personal-alert-escalation.component.html\",\r\n\tstyleUrls: [\"./personal-alert-escalation.component.scss\"]\r\n})\r\nexport class PersonalAlertEscalationComponent implements OnInit {\r\n\r\n\tpublic isLoading: boolean = true;\r\n\tpublic personRecord: any;\r\n\tpublic inputPerson : FormControl;\r\n\tpublic alternateEmailForwards = [];\r\n\tpublic filteredAssociatedPeople$: Observable;\r\n\tpublic associatedPeople = [];\r\n\r\n\tpublic global: IGlobal = Global;\r\n\r\n\tconstructor(private signalRCore: SignalRCoreService, private dataService: DataService, private router: Router, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData) { }\r\n\r\n\tpublic displayFn(person: any): string {\r\n\t\treturn person && person.FullName\r\n\t\t\t? person.FullName\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tif (Global.User.isLoggedIn) {\r\n\t\t\tthis.dataService.SQLActionAsPromise(\"API.GetUserProfileRecord \" + Global.User.currentUser.Id).then((data: any) => {\r\n\t\t\t\tconsole.log(\"data = %O\", data);\r\n\t\t\t\tthis.personRecord = data.first();\r\n\r\n\t\t\t\tthis.setUpForm();\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.router.navigate([\"registration\"]);\r\n\t\t}\r\n\t}\r\n\r\n\tsetUpForm() {\r\n\t\t// Get list of people associated with this person\r\n\t\tvar peopleInOrganization = this.dataService.cache.people.filter((p: any) => {\r\n\t\t\treturn p.OrganizationId == this.personRecord.OrganizationId && p.FullName\r\n\t\t});\r\n\r\n\t\t// trim out any duplicates\r\n\t\tthis.associatedPeople = peopleInOrganization.filter((value, index, self) => self.map(x => x.Id).indexOf(value.Id) == index)\r\n\r\n\t\tthis.dataService.SQLActionAsPromise(\"API.PersonEmailForwardsForAlertManagement \" + this.personRecord.PersonId).then((data: any) => {\r\n\t\t\tif (data.length > 0) {\r\n\t\t\t\t//console.log(this.dataService.cache.people);\r\n\t\t\t\tdata.forEach((item) => {\r\n\t\t\t\t\tlet person = this.dataService.cache.people.find((person) => {\r\n\t\t\t\t\t\treturn person.Id == item.ForwardToPersonId;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (person !== undefined) {\r\n\t\t\t\t\t\tthis.alternateEmailForwards.push({\r\n\t\t\t\t\t\t\ttext: person.FullNameWithUsername,\r\n\t\t\t\t\t\t\tperson: person,\r\n\t\t\t\t\t\t\tId: item.Id\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t// remove anyone already in the list\r\n\t\t\t\t\t\tthis.associatedPeople.splice(this.associatedPeople.findIndex(p=> p.Id == item.ForwardToPersonId),1);\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tconsole.log('escalations:', this.alternateEmailForwards);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\tthis.inputPerson = new FormControl('');\r\n\r\n\t\tthis.filteredAssociatedPeople$ = this.inputPerson.valueChanges.pipe(\r\n\t\t\tstartWith(''),\r\n\t\t\tmap(value => {\r\n\t\t\t\tconst name = typeof value === 'string' ? value : value?.name;\r\n\t\t\t\treturn name ? this._filter(name as string) : this.associatedPeople.slice();\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\tthis.isLoading = false;\r\n\t}\r\n\r\n\tprivate _filter(name: string): any[] {\r\n\t\tconst filterValue = name.toLowerCase();\r\n\r\n\t\treturn this.associatedPeople.filter(option => option.FullName.toLowerCase().includes(filterValue));\r\n\t}\r\n\r\n\tpublic clickAddEscalationPerson()\r\n\t{\r\n\t\tlet value = this.inputPerson.value;\r\n\t\tlet newPersonToAddId = value.Id;\r\n\r\n\t\tif(newPersonToAddId)\r\n\t\t{\r\n\t\t\tlet statement = 'API.AlertManagementInsertPersonEmailForward ' + this.personRecord.PersonId + ', ' + newPersonToAddId;\r\n\t\t\tthis.dataService.SQLActionAsPromise(statement).then((data: any) => {\r\n\t\t\t\t// add to the list\r\n\r\n\t\t\t\tif (data.length > 0) {\r\n\t\t\t\t\t//console.log(this.dataService.cache.people);\r\n\t\t\t\t\tdata.forEach((item) => {\r\n\t\t\t\t\t\tlet person = this.dataService.cache.people.find((person) => {\r\n\t\t\t\t\t\t\treturn person.Id == item.ForwardToPersonId;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif (person !== undefined) {\r\n\t\t\t\t\t\t\tthis.alternateEmailForwards.push({\r\n\t\t\t\t\t\t\t\ttext: person.FullNameWithUsername,\r\n\t\t\t\t\t\t\t\tperson: person,\r\n\t\t\t\t\t\t\t\tId: item.Id\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tconsole.log('added escalation:', this.alternateEmailForwards);\r\n\r\n\t\t\t\t\t// remove entry from selection box\r\n\t\t\t\t\tthis.inputPerson.setValue('');\r\n\r\n\t\t\t\t\t// remove the new addition from the list\r\n\t\t\t\t\tthis.associatedPeople.splice(this.associatedPeople.findIndex(p=> p.Id == newPersonToAddId),1);\r\n\r\n\t\t\t\t\t// notify add\r\n\t\t\t\t\tthis.signalRCore.notifySpecificClient(Global.SignalR.ClientId, 'personal-alert-escalation', data);\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tpublic clickRemoveEscalationPerson(personEmailForward: any)\r\n\t{\r\n\t\tconsole.log('person forward to remove:', personEmailForward.Id);\r\n\r\n\t\tlet statement = 'API.AlertManagementDeletePersonEmailForward ' + personEmailForward.Id;\r\n\t\tthis.dataService.SQLActionAsPromise(statement).then((data: any) => {\r\n\t\t\t// remove from the my escalations list\r\n\t\t\tlet index = this.alternateEmailForwards.findIndex(p => {return p.Id == personEmailForward.Id});\r\n\t\t\tthis.alternateEmailForwards.splice(index, 1);\r\n\r\n\t\t\t// add to the selection list\r\n\t\t\tlet person = this.dataService.cache.people.find((person) => {\r\n\t\t\t\treturn person.Id == personEmailForward.person.Id;\r\n\t\t\t});\r\n\r\n\t\t\tthis.associatedPeople.push(person);\r\n\r\n\t\t\t// notify delete\r\n\t\t\tthis.signalRCore.notifySpecificClient(Global.SignalR.ClientId, 'personal-alert-escalation', data);\r\n\t\t});\r\n\r\n\t}\r\n\r\n\r\n\tcloseDialog(): void {\r\n\t\tthis.dialogRef.close();\r\n\t}\r\n\r\n}\r\n","
        \r\n\t
        \r\n
        \r\n\t\t\t
        Personal Alert Escalation Information for {{ global.User.currentUser.GivenName + \" \" + global.User.currentUser.FamilyName }}
        \r\n\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n\t
        \r\n\t\t\r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{p.FullNameWithUsername}}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t
        \r\n\r\n\t\t\t

        My Escalations

        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\r\n\t\t
        \r\n\r\n\t
        \r\n
        \r\n","import * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, Component, ChangeDetectionStrategy, Directive, Input, Output, HostListener, HostBinding, NgModule } from '@angular/core';\nimport { filter } from 'rxjs/operators';\nimport * as i1 from 'ngx-bootstrap/component-loader';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport * as i2 from '@angular/animations';\nimport { style, animate } from '@angular/animations';\nimport { NgClass } from '@angular/common';\n\n/** Default dropdown configuration */\nconst _c0 = [\"*\"];\nconst _c1 = a0 => ({\n dropdown: a0\n});\nlet BsDropdownConfig = /*#__PURE__*/(() => {\n class BsDropdownConfig {\n constructor() {\n /** default dropdown auto closing behavior */\n this.autoClose = true;\n /** default dropdown auto closing behavior */\n this.insideClick = false;\n /** turn on/off animation */\n this.isAnimated = false;\n /** value true of stopOnClickPropagation allows event stopPropagation*/\n this.stopOnClickPropagation = false;\n }\n static {\n this.ɵfac = function BsDropdownConfig_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDropdownConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BsDropdownConfig,\n factory: BsDropdownConfig.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return BsDropdownConfig;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDropdownState = /*#__PURE__*/(() => {\n class BsDropdownState {\n constructor() {\n this.direction = 'down';\n this.autoClose = true;\n this.insideClick = false;\n this.isAnimated = false;\n this.stopOnClickPropagation = false;\n this.isOpenChange = new EventEmitter();\n this.isDisabledChange = new EventEmitter();\n this.toggleClick = new EventEmitter();\n this.counts = 0;\n this.dropdownMenu = new Promise(resolve => {\n this.resolveDropdownMenu = resolve;\n });\n }\n static {\n this.ɵfac = function BsDropdownState_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDropdownState)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BsDropdownState,\n factory: BsDropdownState.ɵfac,\n providedIn: 'platform'\n });\n }\n }\n return BsDropdownState;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst DROPDOWN_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\nconst dropdownAnimation = [style({\n height: 0,\n overflow: 'hidden'\n}), animate(DROPDOWN_ANIMATION_TIMING, style({\n height: '*',\n overflow: 'hidden'\n}))];\n\n// todo: revert ngClass to [class] when false positive angular-cli issue is fixed\n// [class.dropdown]=\"direction === 'down'\"-->\nlet BsDropdownContainerComponent = /*#__PURE__*/(() => {\n class BsDropdownContainerComponent {\n get direction() {\n return this._state.direction;\n }\n constructor(_state, cd, _renderer, _element, _builder) {\n this._state = _state;\n this.cd = cd;\n this._renderer = _renderer;\n this._element = _element;\n this.isOpen = false;\n this._factoryDropDownAnimation = _builder.build(dropdownAnimation);\n this._subscription = _state.isOpenChange.subscribe(value => {\n this.isOpen = value;\n const dropdown = this._element.nativeElement.querySelector('.dropdown-menu');\n this._renderer.addClass(this._element.nativeElement.querySelector('div'), 'open');\n if (dropdown) {\n this._renderer.addClass(dropdown, 'show');\n if (dropdown.classList.contains('dropdown-menu-right') || dropdown.classList.contains('dropdown-menu-end')) {\n this._renderer.setStyle(dropdown, 'left', 'auto');\n this._renderer.setStyle(dropdown, 'right', '0');\n }\n if (this.direction === 'up') {\n this._renderer.setStyle(dropdown, 'top', 'auto');\n this._renderer.setStyle(dropdown, 'transform', 'translateY(-101%)');\n }\n }\n if (dropdown && this._state.isAnimated) {\n this._factoryDropDownAnimation.create(dropdown).play();\n }\n this.cd.markForCheck();\n this.cd.detectChanges();\n });\n }\n /** @internal */\n _contains(el) {\n return this._element.nativeElement.contains(el);\n }\n ngOnDestroy() {\n this._subscription.unsubscribe();\n }\n static {\n this.ɵfac = function BsDropdownContainerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDropdownContainerComponent)(i0.ɵɵdirectiveInject(BsDropdownState), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.AnimationBuilder));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BsDropdownContainerComponent,\n selectors: [[\"bs-dropdown-container\"]],\n hostAttrs: [2, \"display\", \"block\", \"position\", \"absolute\", \"z-index\", \"1040\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([BsDropdownState]), i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 2,\n vars: 9,\n consts: [[3, \"ngClass\"]],\n template: function BsDropdownContainerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"dropup\", ctx.direction === \"up\")(\"show\", ctx.isOpen)(\"open\", ctx.isOpen);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(7, _c1, ctx.direction === \"down\"));\n }\n },\n dependencies: [NgClass],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return BsDropdownContainerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDropdownDirective = /*#__PURE__*/(() => {\n class BsDropdownDirective {\n /**\n * Indicates that dropdown will be closed on item or document click,\n * and after pressing ESC\n */\n set autoClose(value) {\n this._state.autoClose = value;\n }\n get autoClose() {\n return this._state.autoClose;\n }\n /**\n * Indicates that dropdown will be animated\n */\n set isAnimated(value) {\n this._state.isAnimated = value;\n }\n get isAnimated() {\n return this._state.isAnimated;\n }\n /**\n * This attribute indicates that the dropdown shouldn't close on inside click when autoClose is set to true\n */\n set insideClick(value) {\n this._state.insideClick = value;\n }\n get insideClick() {\n return this._state.insideClick;\n }\n /**\n * Disables dropdown toggle and hides dropdown menu if opened\n */\n set isDisabled(value) {\n this._isDisabled = value;\n this._state.isDisabledChange.emit(value);\n if (value) {\n this.hide();\n }\n }\n get isDisabled() {\n return this._isDisabled;\n }\n /**\n * Returns whether or not the popover is currently being shown\n */\n get isOpen() {\n if (this._showInline) {\n return this._isInlineOpen;\n }\n return this._dropdown.isShown;\n }\n set isOpen(value) {\n if (value) {\n this.show();\n } else {\n this.hide();\n }\n }\n get _showInline() {\n return !this.container;\n }\n constructor(_elementRef, _renderer, _viewContainerRef, _cis, _state, _config, _builder) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._viewContainerRef = _viewContainerRef;\n this._cis = _cis;\n this._state = _state;\n this._config = _config;\n /**\n * This attribute indicates that the dropdown should be opened upwards\n */\n this.dropup = false;\n // todo: move to component loader\n this._isInlineOpen = false;\n this._isDisabled = false;\n this._subscriptions = [];\n this._isInited = false;\n // set initial dropdown state from config\n this._state.autoClose = this._config.autoClose;\n this._state.insideClick = this._config.insideClick;\n this._state.isAnimated = this._config.isAnimated;\n this._state.stopOnClickPropagation = this._config.stopOnClickPropagation;\n this._factoryDropDownAnimation = _builder.build(dropdownAnimation);\n // create dropdown component loader\n this._dropdown = this._cis.createLoader(this._elementRef, this._viewContainerRef, this._renderer).provide({\n provide: BsDropdownState,\n useValue: this._state\n });\n this.onShown = this._dropdown.onShown;\n this.onHidden = this._dropdown.onHidden;\n this.isOpenChange = this._state.isOpenChange;\n }\n ngOnInit() {\n // fix: seems there are an issue with `routerLinkActive`\n // which result in duplicated call ngOnInit without call to ngOnDestroy\n // read more: https://github.com/valor-software/ngx-bootstrap/issues/1885\n if (this._isInited) {\n return;\n }\n this._isInited = true;\n // attach DOM listeners\n this._dropdown.listen({\n // because of dropdown inline mode\n outsideClick: false,\n triggers: this.triggers,\n show: () => this.show()\n });\n // toggle visibility on toggle element click\n this._subscriptions.push(this._state.toggleClick.subscribe(value => this.toggle(value)));\n // hide dropdown if set disabled while opened\n this._subscriptions.push(this._state.isDisabledChange.pipe(filter(value => value)).subscribe((/*value: boolean*/) => this.hide()));\n }\n /**\n * Opens an element’s popover. This is considered a “manual” triggering of\n * the popover.\n */\n show() {\n if (this.isOpen || this.isDisabled) {\n return;\n }\n if (this._showInline) {\n if (!this._inlinedMenu) {\n this._state.dropdownMenu.then(dropdownMenu => {\n this._dropdown.attachInline(dropdownMenu.viewContainer, dropdownMenu.templateRef);\n this._inlinedMenu = this._dropdown._inlineViewRef;\n this.addBs4Polyfills();\n if (this._inlinedMenu) {\n this._renderer.addClass(this._inlinedMenu.rootNodes[0].parentNode, 'open');\n }\n this.playAnimation();\n })\n // swallow errors\n .catch();\n }\n this.addBs4Polyfills();\n this._isInlineOpen = true;\n this.onShown.emit(true);\n this._state.isOpenChange.emit(true);\n this.playAnimation();\n return;\n }\n this._state.dropdownMenu.then(dropdownMenu => {\n // check direction in which dropdown should be opened\n const _dropup = this.dropup || typeof this.dropup !== 'undefined' && this.dropup;\n this._state.direction = _dropup ? 'up' : 'down';\n const _placement = this.placement || (_dropup ? 'top start' : 'bottom start');\n // show dropdown\n this._dropdown.attach(BsDropdownContainerComponent).to(this.container).position({\n attachment: _placement\n }).show({\n content: dropdownMenu.templateRef,\n placement: _placement\n });\n this._state.isOpenChange.emit(true);\n })\n // swallow error\n .catch();\n }\n /**\n * Closes an element’s popover. This is considered a “manual” triggering of\n * the popover.\n */\n hide() {\n if (!this.isOpen) {\n return;\n }\n if (this._showInline) {\n this.removeShowClass();\n this.removeDropupStyles();\n this._isInlineOpen = false;\n this.onHidden.emit(true);\n } else {\n this._dropdown.hide();\n }\n this._state.isOpenChange.emit(false);\n }\n /**\n * Toggles an element’s popover. This is considered a “manual” triggering of\n * the popover. With parameter true allows toggling, with parameter false\n * only hides opened dropdown. Parameter usage will be removed in ngx-bootstrap v3\n */\n toggle(value) {\n if (this.isOpen || !value) {\n return this.hide();\n }\n return this.show();\n }\n /** @internal */\n _contains(event) {\n // todo: valorkin fix typings\n return this._elementRef.nativeElement.contains(event.target) || this._dropdown.instance && this._dropdown.instance._contains(event.target);\n }\n navigationClick(event) {\n const ref = this._elementRef.nativeElement.querySelector('.dropdown-menu');\n if (!ref) {\n return;\n }\n const firstActive = this._elementRef.nativeElement.ownerDocument.activeElement;\n const allRef = ref.querySelectorAll('.dropdown-item');\n switch (event.keyCode) {\n case 38:\n if (this._state.counts > 0) {\n allRef[--this._state.counts].focus();\n }\n break;\n case 40:\n if (this._state.counts + 1 < allRef.length) {\n if (firstActive.classList !== allRef[this._state.counts].classList) {\n allRef[this._state.counts].focus();\n } else {\n allRef[++this._state.counts].focus();\n }\n }\n break;\n default:\n }\n event.preventDefault();\n }\n ngOnDestroy() {\n // clean up subscriptions and destroy dropdown\n for (const sub of this._subscriptions) {\n sub.unsubscribe();\n }\n this._dropdown.dispose();\n }\n addBs4Polyfills() {\n this.addShowClass();\n this.checkRightAlignment();\n this.addDropupStyles();\n }\n playAnimation() {\n if (this._state.isAnimated && this._inlinedMenu) {\n setTimeout(() => {\n if (this._inlinedMenu) {\n this._factoryDropDownAnimation.create(this._inlinedMenu.rootNodes[0]).play();\n }\n });\n }\n }\n addShowClass() {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n this._renderer.addClass(this._inlinedMenu.rootNodes[0], 'show');\n }\n }\n removeShowClass() {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n this._renderer.removeClass(this._inlinedMenu.rootNodes[0], 'show');\n }\n }\n checkRightAlignment() {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n const isRightAligned = this._inlinedMenu.rootNodes[0].classList.contains('dropdown-menu-right') || this._inlinedMenu.rootNodes[0].classList.contains('dropdown-menu-end');\n this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'left', isRightAligned ? 'auto' : '0');\n this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'right', isRightAligned ? '0' : 'auto');\n }\n }\n addDropupStyles() {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n // a little hack to not break support of bootstrap 4 beta\n this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'top', this.dropup ? 'auto' : '100%');\n this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'transform', this.dropup ? 'translateY(-101%)' : 'translateY(0)');\n this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'bottom', 'auto');\n }\n }\n removeDropupStyles() {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n this._renderer.removeStyle(this._inlinedMenu.rootNodes[0], 'top');\n this._renderer.removeStyle(this._inlinedMenu.rootNodes[0], 'transform');\n this._renderer.removeStyle(this._inlinedMenu.rootNodes[0], 'bottom');\n }\n }\n static {\n this.ɵfac = function BsDropdownDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDropdownDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i1.ComponentLoaderFactory), i0.ɵɵdirectiveInject(BsDropdownState), i0.ɵɵdirectiveInject(BsDropdownConfig), i0.ɵɵdirectiveInject(i2.AnimationBuilder));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BsDropdownDirective,\n selectors: [[\"\", \"bsDropdown\", \"\"], [\"\", \"dropdown\", \"\"]],\n hostVars: 6,\n hostBindings: function BsDropdownDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown.arrowDown\", function BsDropdownDirective_keydown_arrowDown_HostBindingHandler($event) {\n return ctx.navigationClick($event);\n })(\"keydown.arrowUp\", function BsDropdownDirective_keydown_arrowUp_HostBindingHandler($event) {\n return ctx.navigationClick($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"dropup\", ctx.dropup)(\"open\", ctx.isOpen)(\"show\", ctx.isOpen);\n }\n },\n inputs: {\n placement: \"placement\",\n triggers: \"triggers\",\n container: \"container\",\n dropup: \"dropup\",\n autoClose: \"autoClose\",\n isAnimated: \"isAnimated\",\n insideClick: \"insideClick\",\n isDisabled: \"isDisabled\",\n isOpen: \"isOpen\"\n },\n outputs: {\n isOpenChange: \"isOpenChange\",\n onShown: \"onShown\",\n onHidden: \"onHidden\"\n },\n exportAs: [\"bs-dropdown\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([BsDropdownState, ComponentLoaderFactory, BsDropdownConfig])]\n });\n }\n }\n return BsDropdownDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDropdownMenuDirective = /*#__PURE__*/(() => {\n class BsDropdownMenuDirective {\n constructor(_state, _viewContainer, _templateRef) {\n _state.resolveDropdownMenu({\n templateRef: _templateRef,\n viewContainer: _viewContainer\n });\n }\n static {\n this.ɵfac = function BsDropdownMenuDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDropdownMenuDirective)(i0.ɵɵdirectiveInject(BsDropdownState), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BsDropdownMenuDirective,\n selectors: [[\"\", \"bsDropdownMenu\", \"\"], [\"\", \"dropdownMenu\", \"\"]],\n exportAs: [\"bs-dropdown-menu\"],\n standalone: true\n });\n }\n }\n return BsDropdownMenuDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDropdownToggleDirective = /*#__PURE__*/(() => {\n class BsDropdownToggleDirective {\n constructor(_changeDetectorRef, _dropdown, _element, _renderer, _state) {\n this._changeDetectorRef = _changeDetectorRef;\n this._dropdown = _dropdown;\n this._element = _element;\n this._renderer = _renderer;\n this._state = _state;\n this.isOpen = false;\n this._subscriptions = [];\n // sync is open value with state\n this._subscriptions.push(this._state.isOpenChange.subscribe(value => {\n this.isOpen = value;\n if (value) {\n this._documentClickListener = this._renderer.listen('document', 'click', event => {\n if (this._state.autoClose && event.button !== 2 && !this._element.nativeElement.contains(event.target) && !(this._state.insideClick && this._dropdown._contains(event))) {\n this._state.toggleClick.emit(false);\n this._changeDetectorRef.detectChanges();\n }\n });\n this._escKeyUpListener = this._renderer.listen(this._element.nativeElement, 'keyup.esc', () => {\n if (this._state.autoClose) {\n this._state.toggleClick.emit(false);\n this._changeDetectorRef.detectChanges();\n }\n });\n } else {\n this._documentClickListener && this._documentClickListener();\n this._escKeyUpListener && this._escKeyUpListener();\n }\n }));\n // populate disabled state\n this._subscriptions.push(this._state.isDisabledChange.subscribe(value => this.isDisabled = value || void 0));\n }\n onClick(event) {\n if (this._state.stopOnClickPropagation) {\n event.stopPropagation();\n }\n if (this.isDisabled) {\n return;\n }\n this._state.toggleClick.emit(true);\n }\n ngOnDestroy() {\n if (this._documentClickListener) {\n this._documentClickListener();\n }\n if (this._escKeyUpListener) {\n this._escKeyUpListener();\n }\n for (const sub of this._subscriptions) {\n sub.unsubscribe();\n }\n }\n static {\n this.ɵfac = function BsDropdownToggleDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDropdownToggleDirective)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(BsDropdownDirective), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(BsDropdownState));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BsDropdownToggleDirective,\n selectors: [[\"\", \"bsDropdownToggle\", \"\"], [\"\", \"dropdownToggle\", \"\"]],\n hostVars: 3,\n hostBindings: function BsDropdownToggleDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function BsDropdownToggleDirective_click_HostBindingHandler($event) {\n return ctx.onClick($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-haspopup\", true)(\"disabled\", ctx.isDisabled)(\"aria-expanded\", ctx.isOpen);\n }\n },\n exportAs: [\"bs-dropdown-toggle\"],\n standalone: true\n });\n }\n }\n return BsDropdownToggleDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDropdownModule = /*#__PURE__*/(() => {\n class BsDropdownModule {\n // @deprecated method not required anymore, will be deleted in v19.0.0\n static forRoot() {\n return {\n ngModule: BsDropdownModule,\n providers: []\n };\n }\n static {\n this.ɵfac = function BsDropdownModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDropdownModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BsDropdownModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return BsDropdownModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BsDropdownConfig, BsDropdownContainerComponent, BsDropdownDirective, BsDropdownMenuDirective, BsDropdownModule, BsDropdownState, BsDropdownToggleDirective };\n","import * as i0 from '@angular/core';\nimport { PLATFORM_ID, Injectable, Inject, Directive, Input, NgModule } from '@angular/core';\nimport { isPlatformBrowser, DOCUMENT, CommonModule } from '@angular/common';\nimport { take } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Coerces a data-bound value (typically a string) to a boolean. */\nfunction coerceBooleanProperty(value) {\n return value != null && `${value}` !== 'false';\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/* eslint-disable */\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator;\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = typeof Intl !== 'undefined' && Intl.v8BreakIterator;\n} catch {\n hasV8BreakIterator = false;\n}\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\nlet Platform = /*#__PURE__*/(() => {\n class Platform {\n constructor(_platformId) {\n this._platformId = _platformId;\n // We want to use the Angular platform check because if the Document is shimmed\n // without the navigator, the following checks will fail. This is preferred because\n // sometimes the Document may be shimmed without the user's knowledge or intention\n /** Whether the Angular application is being rendered in the browser. */\n this.isBrowser = this._platformId ? isPlatformBrowser(this._platformId) : typeof document === 'object' && !!document;\n /** Whether the current browser is Microsoft Edge. */\n this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n /** Whether the current rendering engine is Microsoft Trident. */\n this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n this.BLINK = this.isBrowser && !!(window.chrome || hasV8BreakIterator) && typeof CSS !== 'undefined' && !this.EDGE && !this.TRIDENT;\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n this.WEBKIT = this.isBrowser && /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n /** Whether the current platform is Apple iOS. */\n this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n }\n static {\n this.ɵfac = function Platform_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Platform)(i0.ɵɵinject(PLATFORM_ID));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Platform,\n factory: Platform.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return Platform;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/* eslint-disable */\n/**\n * Configuration for the isFocusable method.\n */\nclass IsFocusableConfig {\n constructor() {\n /**\n * Whether to count an element as focusable even if it is not currently visible.\n */\n this.ignoreVisibility = false;\n }\n}\n// The InteractivityChecker leans heavily on the ally.js accessibility utilities.\n// Methods like `isTabbable` are only covering specific edge-cases for the browsers which are\n// supported.\n/**\n * Utility for checking the interactivity of an element, such as whether is is focusable or\n * tabbable.\n */\nlet InteractivityChecker = /*#__PURE__*/(() => {\n class InteractivityChecker {\n constructor(_platform) {\n this._platform = _platform;\n }\n /**\n * Gets whether an element is disabled.\n *\n * @param element Element to be checked.\n * @returns Whether the element is disabled.\n */\n isDisabled(element) {\n // This does not capture some cases, such as a non-form control with a disabled attribute or\n // a form control inside of a disabled form, but should capture the most common cases.\n return element.hasAttribute('disabled');\n }\n /**\n * Gets whether an element is visible for the purposes of interactivity.\n *\n * This will capture states like `display: none` and `visibility: hidden`, but not things like\n * being clipped by an `overflow: hidden` parent or being outside the viewport.\n *\n * @returns Whether the element is visible.\n */\n isVisible(element) {\n return hasGeometry(element) && getComputedStyle(element).visibility === 'visible';\n }\n /**\n * Gets whether an element can be reached via Tab key.\n * Assumes that the element has already been checked with isFocusable.\n *\n * @param element Element to be checked.\n * @returns Whether the element is tabbable.\n */\n isTabbable(element) {\n // Nothing is tabbable on the server 😎\n if (!this._platform.isBrowser) {\n return false;\n }\n const frameElement = getFrameElement(getWindow(element));\n if (frameElement) {\n // Frame elements inherit their tabindex onto all child elements.\n if (getTabIndexValue(frameElement) === -1) {\n return false;\n }\n // Browsers disable tabbing to an element inside of an invisible frame.\n if (!this.isVisible(frameElement)) {\n return false;\n }\n }\n let nodeName = element.nodeName.toLowerCase();\n let tabIndexValue = getTabIndexValue(element);\n if (element.hasAttribute('contenteditable')) {\n return tabIndexValue !== -1;\n }\n if (nodeName === 'iframe' || nodeName === 'object') {\n // The frame or object's content may be tabbable depending on the content, but it's\n // not possibly to reliably detect the content of the frames. We always consider such\n // elements as non-tabbable.\n return false;\n }\n // In iOS, the browser only considers some specific elements as tabbable.\n if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {\n return false;\n }\n if (nodeName === 'audio') {\n // Audio elements without controls enabled are never tabbable, regardless\n // of the tabindex attribute explicitly being set.\n if (!element.hasAttribute('controls')) {\n return false;\n }\n // Audio elements with controls are by default tabbable unless the\n // tabindex attribute is set to `-1` explicitly.\n return tabIndexValue !== -1;\n }\n if (nodeName === 'video') {\n // For all video elements, if the tabindex attribute is set to `-1`, the video\n // is not tabbable. Note: We cannot rely on the default `HTMLElement.tabIndex`\n // property as that one is set to `-1` in Chrome, Edge and Safari v13.1. The\n // tabindex attribute is the source of truth here.\n if (tabIndexValue === -1) {\n return false;\n }\n // If the tabindex is explicitly set, and not `-1` (as per check before), the\n // video element is always tabbable (regardless of whether it has controls or not).\n if (tabIndexValue !== null) {\n return true;\n }\n // Otherwise (when no explicit tabindex is set), a video is only tabbable if it\n // has controls enabled. Firefox is special as videos are always tabbable regardless\n // of whether there are controls or not.\n return this._platform.FIREFOX || element.hasAttribute('controls');\n }\n return element.tabIndex >= 0;\n }\n /**\n * Gets whether an element can be focused by the user.\n *\n * @param element Element to be checked.\n * @param config The config object with options to customize this method's behavior\n * @returns Whether the element is focusable.\n */\n isFocusable(element, config) {\n // Perform checks in order of left to most expensive.\n // Again, naive approach that does not capture many edge cases and browser quirks.\n return isPotentiallyFocusable(element) && !this.isDisabled(element) && (config?.ignoreVisibility || this.isVisible(element));\n }\n static {\n this.ɵfac = function InteractivityChecker_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InteractivityChecker)(i0.ɵɵinject(Platform));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InteractivityChecker,\n factory: InteractivityChecker.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return InteractivityChecker;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Returns the frame element from a window object. Since browsers like MS Edge throw errors if\n * the frameElement property is being accessed from a different host address, this property\n * should be accessed carefully.\n */\nfunction getFrameElement(window) {\n try {\n return window.frameElement;\n } catch {\n return null;\n }\n}\n/** Checks whether the specified element has any geometry / rectangles. */\nfunction hasGeometry(element) {\n // Use logic from jQuery to check for an invisible element.\n // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12\n return !!(element.offsetWidth || element.offsetHeight || typeof element.getClientRects === 'function' && element.getClientRects().length);\n}\n/** Gets whether an element's */\nfunction isNativeFormElement(element) {\n let nodeName = element.nodeName.toLowerCase();\n return nodeName === 'input' || nodeName === 'select' || nodeName === 'button' || nodeName === 'textarea';\n}\n/** Gets whether an element is an ``. */\nfunction isHiddenInput(element) {\n return isInputElement(element) && element.type == 'hidden';\n}\n/** Gets whether an element is an anchor that has an href attribute. */\nfunction isAnchorWithHref(element) {\n return isAnchorElement(element) && element.hasAttribute('href');\n}\n/** Gets whether an element is an input element. */\nfunction isInputElement(element) {\n return element.nodeName.toLowerCase() == 'input';\n}\n/** Gets whether an element is an anchor element. */\nfunction isAnchorElement(element) {\n return element.nodeName.toLowerCase() == 'a';\n}\n/** Gets whether an element has a valid tabindex. */\nfunction hasValidTabIndex(element) {\n if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {\n return false;\n }\n let tabIndex = element.getAttribute('tabindex');\n // IE11 parses tabindex=\"\" as the value \"-32768\"\n if (tabIndex == '-32768') {\n return false;\n }\n return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));\n}\n/**\n * Returns the parsed tabindex from the element attributes instead of returning the\n * evaluated tabindex from the browsers defaults.\n */\nfunction getTabIndexValue(element) {\n if (!hasValidTabIndex(element)) {\n return null;\n }\n // See browser issue in Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n const tabIndex = parseInt(element.getAttribute('tabindex') || '', 10);\n return isNaN(tabIndex) ? -1 : tabIndex;\n}\n/** Checks whether the specified element is potentially tabbable on iOS */\nfunction isPotentiallyTabbableIOS(element) {\n let nodeName = element.nodeName.toLowerCase();\n let inputType = nodeName === 'input' && element.type;\n return inputType === 'text' || inputType === 'password' || nodeName === 'select' || nodeName === 'textarea';\n}\n/**\n * Gets whether an element is potentially focusable without taking current visible/disabled state\n * into account.\n */\nfunction isPotentiallyFocusable(element) {\n // Inputs are potentially focusable *unless* they're type=\"hidden\".\n if (isHiddenInput(element)) {\n return false;\n }\n return isNativeFormElement(element) || isAnchorWithHref(element) || element.hasAttribute('contenteditable') || hasValidTabIndex(element);\n}\n/** Gets the parent window of a DOM node with regards of being inside of an iframe. */\nfunction getWindow(node) {\n // ownerDocument is null if `node` itself *is* a document.\n return node.ownerDocument && node.ownerDocument.defaultView || window;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/* eslint-disable */\n/** Injectable that ensures only the most recently enabled FocusTrap is active. */\nlet FocusTrapManager = /*#__PURE__*/(() => {\n class FocusTrapManager {\n constructor() {\n // A stack of the FocusTraps on the page. Only the FocusTrap at the\n // top of the stack is active.\n this._focusTrapStack = [];\n }\n /**\n * Disables the FocusTrap at the top of the stack, and then pushes\n * the new FocusTrap onto the stack.\n */\n register(focusTrap) {\n // Dedupe focusTraps that register multiple times.\n this._focusTrapStack = this._focusTrapStack.filter(ft => ft !== focusTrap);\n let stack = this._focusTrapStack;\n if (stack.length) {\n stack[stack.length - 1]._disable();\n }\n stack.push(focusTrap);\n focusTrap._enable();\n }\n /**\n * Removes the FocusTrap from the stack, and activates the\n * FocusTrap that is the new top of the stack.\n */\n deregister(focusTrap) {\n focusTrap._disable();\n const stack = this._focusTrapStack;\n const i = stack.indexOf(focusTrap);\n if (i !== -1) {\n stack.splice(i, 1);\n if (stack.length) {\n stack[stack.length - 1]._enable();\n }\n }\n }\n static {\n this.ɵfac = function FocusTrapManager_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FocusTrapManager)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FocusTrapManager,\n factory: FocusTrapManager.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return FocusTrapManager;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/* eslint-disable */\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class currently uses a relatively simple approach to focus trapping.\n * It assumes that the tab order is the same as DOM order, which is not necessarily true.\n * Things like `tabIndex > 0`, flex `order`, and shadow roots can cause the two to misalign.\n *\n * @deprecated Use `ConfigurableFocusTrap` instead.\n * @breaking-change for 11.0.0 Remove this class.\n */\nclass FocusTrap {\n /** Whether the focus trap is active. */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._enabled = value;\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(value, this._startAnchor);\n this._toggleAnchorTabIndex(value, this._endAnchor);\n }\n }\n constructor(_element, _checker, _ngZone, _document, deferAnchors = false) {\n this._element = _element;\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n this._hasAttached = false;\n // Event listeners for the anchors. Need to be regular functions so that we can unbind them later.\n this.startAnchorListener = () => this.focusLastTabbableElement();\n this.endAnchorListener = () => this.focusFirstTabbableElement();\n this._enabled = true;\n if (!deferAnchors) {\n this.attachAnchors();\n }\n }\n /** Destroys the focus trap by cleaning up the anchors. */\n destroy() {\n const startAnchor = this._startAnchor;\n const endAnchor = this._endAnchor;\n if (startAnchor) {\n startAnchor.removeEventListener('focus', this.startAnchorListener);\n if (startAnchor.parentNode) {\n startAnchor.parentNode.removeChild(startAnchor);\n }\n }\n if (endAnchor) {\n endAnchor.removeEventListener('focus', this.endAnchorListener);\n if (endAnchor.parentNode) {\n endAnchor.parentNode.removeChild(endAnchor);\n }\n }\n this._startAnchor = this._endAnchor = null;\n this._hasAttached = false;\n }\n /**\n * Inserts the anchors into the DOM. This is usually done automatically\n * in the constructor, but can be deferred for cases like directives with `*ngIf`.\n * @returns Whether the focus trap managed to attach successfuly. This may not be the case\n * if the target element isn't currently in the DOM.\n */\n attachAnchors() {\n // If we're not on the browser, there can be no focus to trap.\n if (this._hasAttached) {\n return true;\n }\n this._ngZone.runOutsideAngular(() => {\n if (!this._startAnchor) {\n this._startAnchor = this._createAnchor();\n this._startAnchor.addEventListener('focus', this.startAnchorListener);\n }\n if (!this._endAnchor) {\n this._endAnchor = this._createAnchor();\n this._endAnchor.addEventListener('focus', this.endAnchorListener);\n }\n });\n if (this._element.parentNode) {\n this._element.parentNode.insertBefore(this._startAnchor, this._element);\n this._element.parentNode.insertBefore(this._endAnchor, this._element.nextSibling);\n this._hasAttached = true;\n }\n return this._hasAttached;\n }\n /**\n * Waits for the zone to stabilize, then either focuses the first element that the\n * user specified, or the first tabbable element.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusInitialElementWhenReady() {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusInitialElement()));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the first tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusFirstTabbableElementWhenReady() {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusFirstTabbableElement()));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the last tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusLastTabbableElementWhenReady() {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusLastTabbableElement()));\n });\n }\n /**\n * Get the specified boundary element of the trapped region.\n * @param bound The boundary to get (start or end of trapped region).\n * @returns The boundary element.\n */\n _getRegionBoundary(bound) {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n let markers = this._element.querySelectorAll(`[cdk-focus-region-${bound}], ` + `[cdkFocusRegion${bound}], ` + `[cdk-focus-${bound}]`);\n for (let i = 0; i < markers.length; i++) {\n // @breaking-change 8.0.0\n if (markers[i].hasAttribute(`cdk-focus-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-${bound}', ` + `use 'cdkFocusRegion${bound}' instead. The deprecated ` + `attribute will be removed in 8.0.0.`, markers[i]);\n } else if (markers[i].hasAttribute(`cdk-focus-region-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-region-${bound}', ` + `use 'cdkFocusRegion${bound}' instead. The deprecated attribute ` + `will be removed in 8.0.0.`, markers[i]);\n }\n }\n if (bound == 'start') {\n return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);\n }\n return markers.length ? markers[markers.length - 1] : this._getLastTabbableElement(this._element);\n }\n /**\n * Focuses the element that should be focused when the focus trap is initialized.\n * @returns Whether focus was moved successfully.\n */\n focusInitialElement() {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n const redirectToElement = this._element.querySelector(`[cdk-focus-initial], ` + `[cdkFocusInitial]`);\n if (redirectToElement) {\n // @breaking-change 8.0.0\n if (redirectToElement.hasAttribute(`cdk-focus-initial`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-initial', ` + `use 'cdkFocusInitial' instead. The deprecated attribute ` + `will be removed in 8.0.0`, redirectToElement);\n }\n // Warn the consumer if the element they've pointed to\n // isn't focusable, when not in production mode.\n if (!this._checker.isFocusable(redirectToElement)) {\n const focusableChild = this._getFirstTabbableElement(redirectToElement);\n focusableChild?.focus();\n return !!focusableChild;\n }\n redirectToElement.focus();\n return true;\n }\n return this.focusFirstTabbableElement();\n }\n /**\n * Focuses the first tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusFirstTabbableElement() {\n const redirectToElement = this._getRegionBoundary('start');\n if (redirectToElement) {\n redirectToElement.focus();\n }\n return !!redirectToElement;\n }\n /**\n * Focuses the last tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusLastTabbableElement() {\n const redirectToElement = this._getRegionBoundary('end');\n if (redirectToElement) {\n redirectToElement.focus();\n }\n return !!redirectToElement;\n }\n /**\n * Checks whether the focus trap has successfully been attached.\n */\n hasAttached() {\n return this._hasAttached;\n }\n /** Get the first tabbable element from a DOM subtree (inclusive). */\n _getFirstTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n // Iterate in DOM order. Note that IE doesn't have `children` for SVG so we fall\n // back to `childNodes` which includes text nodes, comments etc.\n let children = root.children || root.childNodes;\n for (let i = 0; i < children.length; i++) {\n let tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE ? this._getFirstTabbableElement(children[i]) : null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Get the last tabbable element from a DOM subtree (inclusive). */\n _getLastTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n // Iterate in reverse DOM order.\n let children = root.children || root.childNodes;\n for (let i = children.length - 1; i >= 0; i--) {\n let tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE ? this._getLastTabbableElement(children[i]) : null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Creates an anchor element. */\n _createAnchor() {\n const anchor = this._document.createElement('div');\n this._toggleAnchorTabIndex(this._enabled, anchor);\n anchor.classList.add('cdk-visually-hidden');\n anchor.classList.add('cdk-focus-trap-anchor');\n anchor.setAttribute('aria-hidden', 'true');\n return anchor;\n }\n /**\n * Toggles the `tabindex` of an anchor, based on the enabled state of the focus trap.\n * @param isEnabled Whether the focus trap is enabled.\n * @param anchor Anchor on which to toggle the tabindex.\n */\n _toggleAnchorTabIndex(isEnabled, anchor) {\n // Remove the tabindex completely, rather than setting it to -1, because if the\n // element has a tabindex, the user might still hit it when navigating with the arrow keys.\n isEnabled ? anchor.setAttribute('tabindex', '0') : anchor.removeAttribute('tabindex');\n }\n /**\n * Toggles the`tabindex` of both anchors to either trap Tab focus or allow it to escape.\n * @param enabled: Whether the anchors should trap Tab.\n */\n toggleAnchors(enabled) {\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(enabled, this._startAnchor);\n this._toggleAnchorTabIndex(enabled, this._endAnchor);\n }\n }\n /** Executes a function when the zone is stable. */\n _executeOnStable(fn) {\n if (this._ngZone.isStable) {\n fn();\n } else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n}\n/**\n * Factory that allows easy instantiation of focus traps.\n * @deprecated Use `ConfigurableFocusTrapFactory` instead.\n * @breaking-change for 11.0.0 Remove this class.\n */\nlet FocusTrapFactory = /*#__PURE__*/(() => {\n class FocusTrapFactory {\n constructor(_checker, _ngZone, _document) {\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n }\n /**\n * Creates a focus-trapped region around the given element.\n * @param element The element around which focus will be trapped.\n * @param deferCaptureElements Defers the creation of focus-capturing elements to be done\n * manually by the user.\n * @returns The created focus trap instance.\n */\n create(element, deferCaptureElements = false) {\n return new FocusTrap(element, this._checker, this._ngZone, this._document, deferCaptureElements);\n }\n static {\n this.ɵfac = function FocusTrapFactory_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FocusTrapFactory)(i0.ɵɵinject(InteractivityChecker), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(DOCUMENT));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FocusTrapFactory,\n factory: FocusTrapFactory.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return FocusTrapFactory;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Directive for trapping focus within a region. */\nlet FocusTrapDirective = /*#__PURE__*/(() => {\n class FocusTrapDirective {\n /** Whether the focus trap is active. */\n get enabled() {\n return this.focusTrap.enabled;\n }\n set enabled(value) {\n this.focusTrap.enabled = coerceBooleanProperty(value);\n }\n /**\n * Whether the directive should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n get autoCapture() {\n return this._autoCapture;\n }\n set autoCapture(value) {\n this._autoCapture = coerceBooleanProperty(value);\n }\n constructor(_elementRef, _focusTrapFactory, _document) {\n this._elementRef = _elementRef;\n this._focusTrapFactory = _focusTrapFactory;\n /** Previously focused element to restore focus to upon destroy when using autoCapture. */\n this._previouslyFocusedElement = null;\n this._autoCapture = false;\n this._document = _document;\n this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);\n }\n ngOnDestroy() {\n this.focusTrap.destroy();\n // If we stored a previously focused element when using autoCapture, return focus to that\n // element now that the trapped region is being destroyed.\n if (this._previouslyFocusedElement) {\n this._previouslyFocusedElement.focus();\n this._previouslyFocusedElement = null;\n }\n }\n ngAfterContentInit() {\n this.focusTrap.attachAnchors();\n if (this.autoCapture) {\n this._captureFocus();\n }\n }\n ngDoCheck() {\n if (!this.focusTrap.hasAttached()) {\n this.focusTrap.attachAnchors();\n }\n }\n ngOnChanges(changes) {\n const autoCaptureChange = changes['autoCapture'];\n if (autoCaptureChange && !autoCaptureChange.firstChange && this.autoCapture && this.focusTrap.hasAttached()) {\n this._captureFocus();\n }\n }\n _captureFocus() {\n this._previouslyFocusedElement = this._document.activeElement;\n this.focusTrap.focusInitialElementWhenReady();\n }\n static {\n this.ɵfac = function FocusTrapDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FocusTrapDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(FocusTrapFactory), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FocusTrapDirective,\n selectors: [[\"\", \"focusTrap\", \"\"]],\n inputs: {\n enabled: [0, \"cdkTrapFocus\", \"enabled\"],\n autoCapture: [0, \"cdkTrapFocusAutoCapture\", \"autoCapture\"]\n },\n exportAs: [\"focusTrap\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([FocusTrapManager, Platform, InteractivityChecker]), i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return FocusTrapDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet FocusTrapModule = /*#__PURE__*/(() => {\n class FocusTrapModule {\n // @deprecated method not required anymore, will be deleted in v19.0.0\n static forRoot() {\n return {\n ngModule: FocusTrapModule,\n providers: []\n };\n }\n static {\n this.ɵfac = function FocusTrapModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FocusTrapModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FocusTrapModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n }\n return FocusTrapModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FocusTrap, FocusTrapDirective, FocusTrapModule };\n","import * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Component, EventEmitter, Optional, Inject, HostListener, Directive, Input, Output, NgModule } from '@angular/core';\nimport * as i1 from 'ngx-bootstrap/component-loader';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { Utils, document, window as window$1 } from 'ngx-bootstrap/utils';\nimport { FocusTrapDirective, FocusTrapModule } from 'ngx-bootstrap/focus-trap';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst _c0 = [\"*\"];\nlet BsModalRef = /*#__PURE__*/(() => {\n class BsModalRef {\n constructor() {\n /**\n * Hides the modal\n */\n this.hide = () => void 0;\n /**\n * Sets new class to modal window\n */\n this.setClass = () => void 0;\n }\n static {\n this.ɵfac = function BsModalRef_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsModalRef)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BsModalRef,\n factory: BsModalRef.ɵfac,\n providedIn: 'platform'\n });\n }\n }\n return BsModalRef;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass ModalBackdropOptions {\n constructor(options) {\n this.animate = true;\n Object.assign(this, options);\n }\n}\nlet ModalOptions = /*#__PURE__*/(() => {\n class ModalOptions {\n static {\n this.ɵfac = function ModalOptions_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ModalOptions)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ModalOptions,\n factory: ModalOptions.ɵfac,\n providedIn: 'platform'\n });\n }\n }\n return ModalOptions;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst modalConfigDefaults = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: false,\n ignoreBackdropClick: false,\n class: '',\n animated: true,\n initialState: {},\n closeInterceptor: void 0\n};\nconst MODAL_CONFIG_DEFAULT_OVERRIDE = new InjectionToken('override-default-config');\nconst CLASS_NAME = {\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n IN: 'in',\n SHOW: 'show'\n};\nconst SELECTOR = {\n DIALOG: '.modal-dialog',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed'\n};\nconst TRANSITION_DURATIONS = {\n MODAL: 300,\n BACKDROP: 150\n};\nconst DISMISS_REASONS = {\n BACKRDOP: 'backdrop-click',\n ESC: 'esc',\n BACK: 'browser-back-navigation-clicked'\n};\n\n/** This component will be added as background layout for modals if enabled */\nlet ModalBackdropComponent = /*#__PURE__*/(() => {\n class ModalBackdropComponent {\n get isAnimated() {\n return this._isAnimated;\n }\n set isAnimated(value) {\n this._isAnimated = value;\n }\n get isShown() {\n return this._isShown;\n }\n set isShown(value) {\n this._isShown = value;\n if (value) {\n this.renderer.addClass(this.element.nativeElement, `${CLASS_NAME.SHOW}`);\n } else {\n this.renderer.removeClass(this.element.nativeElement, `${CLASS_NAME.SHOW}`);\n }\n }\n constructor(element, renderer) {\n this._isAnimated = false;\n this._isShown = false;\n this.element = element;\n this.renderer = renderer;\n }\n ngOnInit() {\n if (this.isAnimated) {\n this.renderer.addClass(this.element.nativeElement, `${CLASS_NAME.FADE}`);\n Utils.reflow(this.element.nativeElement);\n }\n this.isShown = true;\n }\n static {\n this.ɵfac = function ModalBackdropComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ModalBackdropComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ModalBackdropComponent,\n selectors: [[\"bs-modal-backdrop\"]],\n hostAttrs: [1, \"modal-backdrop\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function ModalBackdropComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n }\n }\n return ModalBackdropComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet currentId = 1;\nlet BsModalService = /*#__PURE__*/(() => {\n class BsModalService {\n constructor(rendererFactory, clf, modalDefaultOption) {\n this.clf = clf;\n this.modalDefaultOption = modalDefaultOption;\n this.onShow = new EventEmitter();\n this.onShown = new EventEmitter();\n this.onHide = new EventEmitter();\n this.onHidden = new EventEmitter();\n this.isBodyOverflowing = false;\n this.originalBodyPadding = 0;\n this.scrollbarWidth = 0;\n this.modalsCount = 0;\n this.lastHiddenId = 0;\n this.loaders = [];\n this._focusEl = null;\n this._backdropLoader = this.clf.createLoader();\n this._renderer = rendererFactory.createRenderer(null, null);\n this.config = modalDefaultOption ? Object.assign({}, modalConfigDefaults, modalDefaultOption) : modalConfigDefaults;\n }\n /** Shows a modal */\n show(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n content, config) {\n this._focusEl = document.activeElement;\n this.modalsCount++;\n this._createLoaders();\n // must be different per every show() call\n const id = config?.id || currentId++;\n this.config = this.modalDefaultOption ? Object.assign({}, modalConfigDefaults, this.modalDefaultOption, config) : Object.assign({}, modalConfigDefaults, config);\n this.config.id = id;\n this._showBackdrop();\n this.lastDismissReason = void 0;\n return this._showModal(content);\n }\n hide(id) {\n if (this.lastHiddenId === id) {\n return;\n }\n this.lastHiddenId = id;\n if (this.modalsCount === 1 || id == null) {\n this._hideBackdrop();\n this.resetScrollbar();\n }\n this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;\n setTimeout(() => {\n this._hideModal(id);\n this.removeLoaders(id);\n }, this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0);\n if (this._focusEl) {\n this._focusEl.focus();\n }\n }\n _showBackdrop() {\n const isBackdropEnabled = this.config.backdrop === true || this.config.backdrop === 'static';\n const isBackdropInDOM = !this.backdropRef || !this.backdropRef.instance.isShown;\n if (this.modalsCount === 1) {\n this.removeBackdrop();\n if (isBackdropEnabled && isBackdropInDOM) {\n this._backdropLoader.attach(ModalBackdropComponent).to('body').show({\n isAnimated: this.config.animated\n });\n this.backdropRef = this._backdropLoader._componentRef;\n }\n }\n }\n _hideBackdrop() {\n if (!this.backdropRef) {\n return;\n }\n this.backdropRef.instance.isShown = false;\n const duration = this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0;\n setTimeout(() => this.removeBackdrop(), duration);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _showModal(content) {\n const modalLoader = this.loaders[this.loaders.length - 1];\n if (this.config && this.config.providers) {\n for (const provider of this.config.providers) {\n modalLoader.provide(provider);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const bsModalRef = new BsModalRef();\n const modalContainerRef = modalLoader.provide({\n provide: ModalOptions,\n useValue: this.config\n }).provide({\n provide: BsModalRef,\n useValue: bsModalRef\n }).attach(ModalContainerComponent).to('body');\n bsModalRef.hide = () => this.hide(bsModalRef.id);\n bsModalRef.setClass = newClass => {\n if (modalContainerRef.instance) {\n modalContainerRef.instance.config.class = newClass;\n }\n };\n bsModalRef.onHidden = new EventEmitter();\n bsModalRef.onHide = new EventEmitter();\n this.copyEvent(modalLoader.onBeforeHide, bsModalRef.onHide);\n this.copyEvent(modalLoader.onHidden, bsModalRef.onHidden);\n // call 'show' method after assign setClass in bsModalRef.\n // it makes modal component's bsModalRef available to call setClass method\n modalContainerRef.show({\n content,\n isAnimated: this.config.animated,\n initialState: this.config.initialState,\n bsModalService: this,\n id: this.config.id\n });\n if (modalContainerRef.instance) {\n modalContainerRef.instance.level = this.getModalsCount();\n bsModalRef.content = modalLoader.getInnerComponent();\n bsModalRef.id = modalContainerRef.instance.config?.id;\n }\n return bsModalRef;\n }\n _hideModal(id) {\n if (id != null) {\n const indexToRemove = this.loaders.findIndex(loader => loader.instance?.config.id === id);\n const modalLoader = this.loaders[indexToRemove];\n if (modalLoader) {\n modalLoader.hide(id);\n }\n } else {\n this.loaders.forEach(loader => {\n if (loader.instance) {\n loader.hide(loader.instance.config.id);\n }\n });\n }\n }\n getModalsCount() {\n return this.modalsCount;\n }\n setDismissReason(reason) {\n this.lastDismissReason = reason;\n }\n removeBackdrop() {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document.body, 'overflow-y', '');\n this._backdropLoader.hide();\n this.backdropRef = void 0;\n }\n /** Checks if the body is overflowing and sets scrollbar width */\n /** @internal */\n checkScrollbar() {\n this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\n this.scrollbarWidth = this.getScrollbarWidth();\n }\n setScrollbar() {\n if (!document) {\n return;\n }\n this.originalBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right') || '0', 10);\n if (this.isBodyOverflowing) {\n document.body.style.paddingRight = `${this.originalBodyPadding + this.scrollbarWidth}px`;\n }\n }\n resetScrollbar() {\n document.body.style.paddingRight = `${this.originalBodyPadding}px`;\n }\n // thx d.walsh\n getScrollbarWidth() {\n const scrollDiv = this._renderer.createElement('div');\n this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\n this._renderer.appendChild(document.body, scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n this._renderer.removeChild(document.body, scrollDiv);\n return scrollbarWidth;\n }\n _createLoaders() {\n const loader = this.clf.createLoader();\n this.copyEvent(loader.onBeforeShow, this.onShow);\n this.copyEvent(loader.onShown, this.onShown);\n this.copyEvent(loader.onBeforeHide, this.onHide);\n this.copyEvent(loader.onHidden, this.onHidden);\n this.loaders.push(loader);\n }\n removeLoaders(id) {\n if (id != null) {\n const indexToRemove = this.loaders.findIndex(loader => loader.instance?.config.id === id);\n if (indexToRemove >= 0) {\n this.loaders.splice(indexToRemove, 1);\n this.loaders.forEach((loader, i) => {\n if (loader.instance) {\n loader.instance.level = i + 1;\n }\n });\n }\n } else {\n this.loaders.splice(0, this.loaders.length);\n }\n }\n copyEvent(from, to) {\n from.subscribe(data => {\n to.emit(this.lastDismissReason || data);\n });\n }\n static {\n this.ɵfac = function BsModalService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsModalService)(i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(i1.ComponentLoaderFactory), i0.ɵɵinject(MODAL_CONFIG_DEFAULT_OVERRIDE, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BsModalService,\n factory: BsModalService.ɵfac,\n providedIn: 'platform'\n });\n }\n }\n return BsModalService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ModalContainerComponent = /*#__PURE__*/(() => {\n class ModalContainerComponent {\n constructor(options, _element, _renderer) {\n this._element = _element;\n this._renderer = _renderer;\n this.isShown = false;\n this.isAnimated = false;\n this._focusEl = null;\n this.isModalHiding = false;\n this.clickStartedInContent = false;\n this.config = Object.assign({}, options);\n }\n ngOnInit() {\n this._focusEl = document.activeElement;\n if (this.isAnimated) {\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.FADE);\n }\n this._renderer.setStyle(this._element.nativeElement, 'display', 'block');\n setTimeout(() => {\n this.isShown = true;\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.SHOW);\n }, this.isAnimated ? TRANSITION_DURATIONS.BACKDROP : 0);\n if (document && document.body) {\n if (this.bsModalService && this.bsModalService.getModalsCount() === 1) {\n this.bsModalService.checkScrollbar();\n this.bsModalService.setScrollbar();\n }\n this._renderer.addClass(document.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document.body, 'overflow-y', 'hidden');\n }\n if (this._element.nativeElement) {\n this._element.nativeElement.focus();\n }\n }\n onClickStarted(event) {\n this.clickStartedInContent = event.target !== this._element.nativeElement;\n }\n onClickStop(event) {\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\n if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || !clickedInBackdrop) {\n this.clickStartedInContent = false;\n return;\n }\n this.bsModalService?.setDismissReason(DISMISS_REASONS.BACKRDOP);\n this.hide();\n }\n onPopState() {\n this.bsModalService?.setDismissReason(DISMISS_REASONS.BACK);\n this.hide();\n }\n onEsc(event) {\n if (!this.isShown) {\n return;\n }\n if (event.keyCode === 27 || event.key === 'Escape') {\n event.preventDefault();\n }\n if (this.config.keyboard && this.level === this.bsModalService?.getModalsCount()) {\n this.bsModalService?.setDismissReason(DISMISS_REASONS.ESC);\n this.hide();\n }\n }\n ngOnDestroy() {\n if (this.isShown) {\n this._hide();\n }\n }\n hide() {\n if (this.isModalHiding) {\n return;\n }\n if (this.config.closeInterceptor) {\n this.config.closeInterceptor().then(() => this._hide(), () => undefined);\n return;\n }\n this._hide();\n }\n _hide() {\n this.isModalHiding = true;\n this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.SHOW);\n setTimeout(() => {\n this.isShown = false;\n if (document && document.body && this.bsModalService?.getModalsCount() === 1) {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document.body, 'overflow-y', '');\n }\n this.bsModalService?.hide(this.config.id);\n this.isModalHiding = false;\n if (this._focusEl) {\n this._focusEl.focus();\n }\n }, this.isAnimated ? TRANSITION_DURATIONS.MODAL : 0);\n }\n static {\n this.ɵfac = function ModalContainerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ModalContainerComponent)(i0.ɵɵdirectiveInject(ModalOptions), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ModalContainerComponent,\n selectors: [[\"modal-container\"]],\n hostAttrs: [\"role\", \"dialog\", \"tabindex\", \"-1\", 1, \"modal\"],\n hostVars: 3,\n hostBindings: function ModalContainerComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mousedown\", function ModalContainerComponent_mousedown_HostBindingHandler($event) {\n return ctx.onClickStarted($event);\n })(\"click\", function ModalContainerComponent_click_HostBindingHandler($event) {\n return ctx.onClickStop($event);\n })(\"popstate\", function ModalContainerComponent_popstate_HostBindingHandler() {\n return ctx.onPopState();\n }, false, i0.ɵɵresolveWindow)(\"keydown.esc\", function ModalContainerComponent_keydown_esc_HostBindingHandler($event) {\n return ctx.onEsc($event);\n }, false, i0.ɵɵresolveWindow);\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-modal\", true)(\"aria-labelledby\", ctx.config.ariaLabelledBy)(\"aria-describedby\", ctx.config.ariaDescribedby);\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([BsModalService]), i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 3,\n vars: 2,\n consts: [[\"role\", \"document\", \"focusTrap\", \"\"], [1, \"modal-content\"]],\n template: function ModalContainerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(\"modal-dialog\" + (ctx.config.class ? \" \" + ctx.config.class : \"\"));\n }\n },\n dependencies: [FocusTrapDirective],\n encapsulation: 2\n });\n }\n }\n return ModalContainerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// todo: should we support enforce focus in?\n// todo: in original bs there are was a way to prevent modal from showing\n// todo: original modal had resize events\nconst TRANSITION_DURATION = 300;\nconst BACKDROP_TRANSITION_DURATION = 150;\n/** Mark any code with directive to show it's content in modal */\nlet ModalDirective = /*#__PURE__*/(() => {\n class ModalDirective {\n /** allows to set modal configuration via element property */\n set config(conf) {\n this._config = this.getConfig(conf);\n }\n get config() {\n return this._config;\n }\n get isShown() {\n return this._isShown;\n }\n constructor(_element, _viewContainerRef, _renderer, clf, modalDefaultOption) {\n this._element = _element;\n this._renderer = _renderer;\n /** This event fires immediately when the `show` instance method is called. */\n this.onShow = new EventEmitter();\n /** This event is fired when the modal has been made visible to the user\n * (will wait for CSS transitions to complete)\n */\n this.onShown = new EventEmitter();\n /** This event is fired immediately when\n * the hide instance method has been called.\n */\n this.onHide = new EventEmitter();\n /** This event is fired when the modal has finished being\n * hidden from the user (will wait for CSS transitions to complete).\n */\n this.onHidden = new EventEmitter();\n this._isShown = false;\n this.isBodyOverflowing = false;\n this.originalBodyPadding = 0;\n this.scrollbarWidth = 0;\n this.timerHideModal = 0;\n this.timerRmBackDrop = 0;\n this.isNested = false;\n this.clickStartedInContent = false;\n this._focusEl = null;\n this._backdrop = clf.createLoader(_element, _viewContainerRef, _renderer);\n this._config = modalDefaultOption || modalConfigDefaults;\n }\n onClickStarted(event) {\n this.clickStartedInContent = event.target !== this._element.nativeElement;\n }\n onClickStop(event) {\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\n if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || !clickedInBackdrop) {\n this.clickStartedInContent = false;\n return;\n }\n this.dismissReason = DISMISS_REASONS.BACKRDOP;\n this.hide(event);\n }\n // todo: consider preventing default and stopping propagation\n onEsc(event) {\n if (!this._isShown) {\n return;\n }\n if (event.keyCode === 27 || event.key === 'Escape') {\n event.preventDefault();\n }\n if (this.config.keyboard) {\n this.dismissReason = DISMISS_REASONS.ESC;\n this.hide();\n }\n }\n ngOnDestroy() {\n if (this._isShown) {\n this._isShown = false;\n this.hideModal();\n this._backdrop.dispose();\n }\n }\n ngOnInit() {\n this._config = this._config || this.getConfig();\n setTimeout(() => {\n if (this._config.show) {\n this.show();\n }\n }, 0);\n }\n /* Public methods */\n /** Allows to manually toggle modal visibility */\n toggle() {\n return this._isShown ? this.hide() : this.show();\n }\n /** Allows to manually open modal */\n show() {\n this.dismissReason = void 0;\n this.onShow.emit(this);\n if (this._isShown) {\n return;\n }\n clearTimeout(this.timerHideModal);\n clearTimeout(this.timerRmBackDrop);\n this._isShown = true;\n this.checkScrollbar();\n this.setScrollbar();\n if (document && document.body) {\n if (document.body.classList.contains(CLASS_NAME.OPEN)) {\n this.isNested = true;\n } else {\n this._renderer.addClass(document.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document.body, 'overflow-y', 'hidden');\n }\n }\n this.showBackdrop(() => {\n this.showElement();\n });\n }\n /** Check if we can close the modal */\n hide(event) {\n if (!this._isShown) {\n return;\n }\n if (event) {\n event.preventDefault();\n }\n if (this.config.closeInterceptor) {\n this.config.closeInterceptor().then(() => this._hide(), () => undefined);\n return;\n }\n this._hide();\n }\n /** Private methods @internal */\n /**\n * Manually close modal\n * @internal\n */\n _hide() {\n this.onHide.emit(this);\n window$1.clearTimeout(this.timerHideModal);\n window$1.clearTimeout(this.timerRmBackDrop);\n this._isShown = false;\n this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.SHOW);\n if (this._config.animated) {\n this.timerHideModal = window$1.setTimeout(() => this.hideModal(), TRANSITION_DURATION);\n } else {\n this.hideModal();\n }\n if (this._focusEl) {\n this._focusEl.focus();\n }\n }\n getConfig(config) {\n return Object.assign({}, this._config, config);\n }\n /**\n * Show dialog\n * @internal\n */\n showElement() {\n // todo: replace this with component loader usage\n if (!this._element.nativeElement.parentNode || this._element.nativeElement.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // don't move modals dom position\n if (document && document.body) {\n document.body.appendChild(this._element.nativeElement);\n }\n }\n this._renderer.setAttribute(this._element.nativeElement, 'aria-hidden', 'false');\n this._renderer.setAttribute(this._element.nativeElement, 'aria-modal', 'true');\n this._renderer.setStyle(this._element.nativeElement, 'display', 'block');\n this._renderer.setProperty(this._element.nativeElement, 'scrollTop', 0);\n if (this._config.animated) {\n Utils.reflow(this._element.nativeElement);\n }\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.SHOW);\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.nativeElement.focus();\n }\n this.onShown.emit(this);\n };\n if (this._config.animated) {\n setTimeout(transitionComplete, TRANSITION_DURATION);\n } else {\n transitionComplete();\n }\n }\n /** @internal */\n hideModal() {\n this._renderer.setAttribute(this._element.nativeElement, 'aria-hidden', 'true');\n this._renderer.setStyle(this._element.nativeElement, 'display', 'none');\n this.showBackdrop(() => {\n if (!this.isNested) {\n if (document && document.body) {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document.body, 'overflow-y', '');\n }\n this.resetScrollbar();\n }\n this.resetAdjustments();\n this.focusOtherModal();\n this.onHidden.emit(this);\n });\n }\n // todo: original show was calling a callback when done, but we can use\n // promise\n /** @internal */\n showBackdrop(callback) {\n if (this._isShown && this.config.backdrop && (!this.backdrop || !this.backdrop.instance.isShown)) {\n this.removeBackdrop();\n this._backdrop.attach(ModalBackdropComponent).to('body').show({\n isAnimated: this._config.animated\n });\n this.backdrop = this._backdrop._componentRef;\n if (!callback) {\n return;\n }\n if (!this._config.animated) {\n callback();\n return;\n }\n setTimeout(callback, BACKDROP_TRANSITION_DURATION);\n } else if (!this._isShown && this.backdrop) {\n this.backdrop.instance.isShown = false;\n const callbackRemove = () => {\n this.removeBackdrop();\n if (callback) {\n callback();\n }\n };\n if (this.backdrop.instance.isAnimated) {\n this.timerRmBackDrop = window$1.setTimeout(callbackRemove, BACKDROP_TRANSITION_DURATION);\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\n }\n }\n /** @internal */\n removeBackdrop() {\n this._backdrop.hide();\n }\n /** Events tricks */\n // no need for it\n // protected setEscapeEvent():void {\n // if (this._isShown && this._config.keyboard) {\n // $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n // if (event.which === 27) {\n // this.hide()\n // }\n // })\n //\n // } else if (!this._isShown) {\n // $(this._element).off(Event.KEYDOWN_DISMISS)\n // }\n // }\n // protected setResizeEvent():void {\n // console.log(this.renderer.listenGlobal('', Event.RESIZE));\n // if (this._isShown) {\n // $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this))\n // } else {\n // $(window).off(Event.RESIZE)\n // }\n // }\n focusOtherModal() {\n if (this._element.nativeElement.parentElement == null) {\n return;\n }\n const otherOpenedModals = this._element.nativeElement.parentElement.querySelectorAll('.in[bsModal]');\n if (!otherOpenedModals.length) {\n return;\n }\n otherOpenedModals[otherOpenedModals.length - 1].focus();\n }\n /** @internal */\n resetAdjustments() {\n this._renderer.setStyle(this._element.nativeElement, 'paddingLeft', '');\n this._renderer.setStyle(this._element.nativeElement, 'paddingRight', '');\n }\n /** Scroll bar tricks */\n /** @internal */\n checkScrollbar() {\n this.isBodyOverflowing = document.body.clientWidth < window$1.innerWidth;\n this.scrollbarWidth = this.getScrollbarWidth();\n }\n setScrollbar() {\n if (!document) {\n return;\n }\n this.originalBodyPadding = parseInt(window$1.getComputedStyle(document.body).getPropertyValue('padding-right') || 0, 10);\n if (this.isBodyOverflowing) {\n document.body.style.paddingRight = `${this.originalBodyPadding + this.scrollbarWidth}px`;\n }\n }\n resetScrollbar() {\n document.body.style.paddingRight = `${this.originalBodyPadding}px`;\n }\n // thx d.walsh\n getScrollbarWidth() {\n const scrollDiv = this._renderer.createElement('div');\n this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\n this._renderer.appendChild(document.body, scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n this._renderer.removeChild(document.body, scrollDiv);\n return scrollbarWidth;\n }\n static {\n this.ɵfac = function ModalDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ModalDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1.ComponentLoaderFactory), i0.ɵɵdirectiveInject(MODAL_CONFIG_DEFAULT_OVERRIDE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ModalDirective,\n selectors: [[\"\", \"bsModal\", \"\"]],\n hostBindings: function ModalDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mousedown\", function ModalDirective_mousedown_HostBindingHandler($event) {\n return ctx.onClickStarted($event);\n })(\"mouseup\", function ModalDirective_mouseup_HostBindingHandler($event) {\n return ctx.onClickStop($event);\n })(\"keydown.esc\", function ModalDirective_keydown_esc_HostBindingHandler($event) {\n return ctx.onEsc($event);\n });\n }\n },\n inputs: {\n config: \"config\",\n closeInterceptor: \"closeInterceptor\"\n },\n outputs: {\n onShow: \"onShow\",\n onShown: \"onShown\",\n onHide: \"onHide\",\n onHidden: \"onHidden\"\n },\n exportAs: [\"bs-modal\"],\n standalone: true\n });\n }\n }\n return ModalDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ModalModule = /*#__PURE__*/(() => {\n class ModalModule {\n // @deprecated method not required anymore, will be deleted in v19.0.0\n static forRoot() {\n return {\n ngModule: ModalModule,\n providers: [BsModalService, ComponentLoaderFactory, PositioningService]\n };\n }\n // @deprecated method not required anymore, will be deleted in v19.0.0\n static forChild() {\n return {\n ngModule: ModalModule,\n providers: [BsModalService, ComponentLoaderFactory, PositioningService]\n };\n }\n static {\n this.ɵfac = function ModalModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ModalModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ModalModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [FocusTrapModule]\n });\n }\n }\n return ModalModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BsModalRef, BsModalService, MODAL_CONFIG_DEFAULT_OVERRIDE, ModalBackdropComponent, ModalBackdropOptions, ModalContainerComponent, ModalDirective, ModalModule, ModalOptions };\n","import { AfterViewInit, Directive, ElementRef, Input } from \"@angular/core\";\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\n\r\n\r\n\r\n@Directive({\r\n selector: \"[appCustomProgressbar]\",\r\n})\r\nexport class CustomProgressbarDirective implements AfterViewInit {\r\n @Input() appProgressBarColor;\r\n styleEl: HTMLStyleElement = document.createElement(\"style\");\r\n SavedColor: string;\r\n\r\n //generate unique attribule which we will use to minimise the scope of our dynamic style\r\n\r\n constructor(private el: ElementRef) {\r\n const nativeEl: HTMLElement = this.el.nativeElement;\r\n nativeEl.appendChild(this.styleEl);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.updateColor();\r\n }\r\n\r\n updateColor(): void {\r\n // update dynamic style with the uniqueAttr\r\n this.SavedColor = \"\";\r\n\r\n switch (Global.User.MenuColor) {\r\n case \"dark-gray\":\r\n this.SavedColor = \"#696868\";\r\n break;\r\n case \"dark-red\":\r\n this.SavedColor = \"#7d0f0f\";\r\n break;\r\n case \"dark-blue\":\r\n this.SavedColor = \"#A5B6F3\";\r\n break;\r\n case \"dark-green\":\r\n this.SavedColor = \"#075013\";\r\n break;\r\n case \"light-gray\":\r\n this.SavedColor = \"#A4A3A3\";\r\n break;\r\n case \"light-red\":\r\n this.SavedColor = \"#FA5C5C\";\r\n break;\r\n\tcase \"fire-red\":\r\n\t\tthis.SavedColor = \"#Ce0B15\"\r\n\t\tbreak;\r\n case \"light-blue\":\r\n this.SavedColor = \"#A5B6F3\";\r\n break;\r\n case \"tan\":\r\n this.SavedColor = \"#D2B48C\";\r\n break;\r\n\r\n case \"yellow-gold\":\r\n this.SavedColor = \"#EDC025\";\r\n break;\r\n case \"bright-green\":\r\n this.SavedColor = \"#C0F10D\";\r\n break;\r\n }\r\n\r\n this.styleEl.innerText = `\r\n .mat-progress-bar-fill::after {\r\n background-color: ${this.SavedColor};\r\n }\r\n `;\r\n }\r\n}\r\n","import { Component, HostListener, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { SignalRCoreService } from 'projects/shared-lib/src/lib/services/signalr-core.service';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\nimport { filter, skip } from 'rxjs/operators';\r\nimport { IGlobal } from '../../_models/global.model';\r\nimport { DataService } from '../../services/data.service';\r\nimport { ISystem } from '../../_models/system.model';\r\nimport { ISignalRMessage } from '../../_models/signalr-message';\r\nimport { IHttpConnectionOptions } from '@microsoft/signalr';\r\nimport * as signalR from \"@microsoft/signalr\";\r\nimport { GridSettings } from '../../_models/grid-settings.interface';\r\nimport { KendoGridParentComponent } from '../kendo-grid-parent/kendo-grid-parent.component';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { ThemeService } from '@progress/kendo-angular-gauges';\r\nimport { IAsset } from '../../_models/asset.model';\r\n\r\n@Component({\r\n\tselector: 'signalr-test',\r\n\ttemplateUrl: './signalr-test.component.html',\r\n\tstyleUrls: ['./signalr-test.component.scss']\r\n})\r\nexport class SignalRTestComponent implements OnInit, OnDestroy {\r\n\r\n\t@HostListener('window:resize', ['$event'])\r\n\tpublic hubConnection: signalR.HubConnection;\r\n\r\n\tpublic timeSent: number;\r\n\tpublic timeReceived: number;\r\n\tpublic totalTime: number;\r\n\tpublic numberOfTests: number = 50;\r\n\tpublic componentName: string = \"signalR-test: \";\r\n\tpublic arrayOfObservations: Array;\r\n\r\n\tpublic countOfObservations: number = 0;\r\n\tpublic signalRTestMessageGroups: Array = [];\r\n\tpublic currentIndex: string;\r\n\tpublic global: IGlobal = Global;\r\n\r\n\tpublic screenHeight: number;\r\n\tpublic screenWidth: number;\r\n\tpublic dbTransmitterTableWidth: number = 770;\r\n\tpublic signalRContainerWidth: number = 840;\r\n\tpublic startTime: number = performance.now();\r\n\tpublic batchNumber: number = 0;\r\n\tpublic messageCount: number = 0;\r\n\tpublic listOfTagNamePrefixes: string;\r\n\tpublic messagesPerSecond: number;\r\n\tpublic averageMessagesPerBatch: number;\r\n\tpublic messageArray: any;\r\n\tpublic topParsedMessage: any;\r\n\tpublic displayContent: any;\r\n\tpublic noConnectionContent: any;\r\n\tpublic latestStatus: any;\r\n\tpublic joinedGroups: boolean = false;\r\n\ttagIds: any;\r\n\tpublic formattedTagIds: any = [];\r\n\tpublic rawGridData: any = [];\r\n\t@ViewChild(\"tagDataGrid\") tagDataGrid: KendoGridParentComponent;\r\n\tpublic rawGridConnectedClients: any = [];\r\n\t@ViewChild(\"connectedClientsGrid\") connectedClientsGrid: KendoGridParentComponent;\r\n\tpublic rawGridUnknownMessages: any = [];\r\n\tpublic mySignalRHubConnectionId: string; \r\n\r\n\t@ViewChild(\"unknownMessagesGrid\") unknownMessagesGrid: KendoGridParentComponent;\r\n\r\n\tcheckoutForm = this.formBuilder.group({\r\n\t\tname: '',\r\n\t\ttagId: ''\r\n\t });\r\n\tpublic gridSettings: GridSettings = {\r\n\t\tstate: {\r\n\t\t\tskip: 0,\r\n\t\t\tfilter: {\r\n\t\t\t\tlogic: \"and\",\r\n\t\t\t\tfilters: [],\r\n\t\t\t},\r\n\t\t\ttake: 15,\r\n\t\t},\r\n\t\tcolumnsConfig: [\r\n\t\t\t{\r\n\t\t\t\tfield: \"TagId\",\r\n\t\t\t\ttitle: \"Tag Id\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 200,\r\n\t\t\t\tminResizableWidth: 200,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"Name\",\r\n\t\t\t\ttitle: \"Name\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 200,\r\n\t\t\t\tminResizableWidth: 200,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"Date\",\r\n\t\t\t\ttitle: \"Date\",\r\n\t\t\t\tfilter: \"date\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 200,\r\n\t\t\t\tminResizableWidth: 200,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"DateMS\",\r\n\t\t\t\ttitle: \"Date MS\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 200,\r\n\t\t\t\tminResizableWidth: 200,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"Value\",\r\n\t\t\t\ttitle: \"Value\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 200,\r\n\t\t\t\tminResizableWidth: 200,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"GroupName\",\r\n\t\t\t\ttitle: \"Group Name\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 200,\r\n\t\t\t},\r\n\r\n\t\t],\r\n\t};\r\n\tpublic gridSettingsForConnectedClients: GridSettings = {\r\n\t\tstate: {\r\n\t\t\tskip: 0,\r\n\t\t\tfilter: {\r\n\t\t\t\tlogic: \"and\",\r\n\t\t\t\tfilters: [],\r\n\t\t\t},\r\n\t\t\ttake: 15,\r\n\t\t},\r\n\t\tcolumnsConfig: [\r\n\t\t\t{\r\n\t\t\t\tfield: \"clientId\",\r\n\t\t\t\ttitle: \"Client Id\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 200,\r\n\t\t\t\tminResizableWidth: 200,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"date\",\r\n\t\t\t\ttitle: \"Date\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 200,\r\n\t\t\t\tminResizableWidth: 200,\r\n\t\t\t},\r\n\r\n\r\n\t\t],\r\n\t};\r\n\r\n\tpublic gridSettingsForUnknownMessages: GridSettings = {\r\n\t\tstate: {\r\n\t\t\tskip: 0,\r\n\t\t\tfilter: {\r\n\t\t\t\tlogic: \"and\",\r\n\t\t\t\tfilters: [],\r\n\t\t\t},\r\n\t\t\ttake: 15,\r\n\t\t},\r\n\t\tcolumnsConfig: [\r\n\t\t\t{\r\n\t\t\t\tfield: \"TagId\",\r\n\t\t\t\ttitle: \"Tag Id\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 200,\r\n\t\t\t\tminResizableWidth: 200,\r\n\t\t\t},\r\n\t\t\t// {\r\n\t\t\t// \tfield: \"Name\",\r\n\t\t\t// \ttitle: \"Name\",\r\n\t\t\t// \tfilterable: true,\r\n\t\t\t// \t_width: 200,\r\n\t\t\t// \tminResizableWidth: 200,\r\n\t\t\t// },\r\n\t\t\t{\r\n\t\t\t\tfield: \"Date\",\r\n\t\t\t\ttitle: \"Date\",\r\n\t\t\t\tfilter: \"date\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 200,\r\n\t\t\t\tminResizableWidth: 200,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"DateMS\",\r\n\t\t\t\ttitle: \"Date MS\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 200,\r\n\t\t\t\tminResizableWidth: 200,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"Value\",\r\n\t\t\t\ttitle: \"Value\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 200,\r\n\t\t\t\tminResizableWidth: 200,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"GroupName\",\r\n\t\t\t\ttitle: \"Group Name\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 200,\r\n\t\t\t},\r\n\r\n\t\t],\r\n\t};\r\n\ttagIdsList: any = [];\r\n\r\n\tconstructor(public formBuilder: FormBuilder, private signalRCore: SignalRCoreService, public dataService: DataService, public dialogRef: MatDialogRef) {\r\n\t\tthis.onResize();\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tGlobal.SignalR.testInProgress = true;\r\n\t\tthis.signalRCore.signalRTestInProgress$.next(Global.SignalR.testInProgress); //-notifying the silent SignalR test in the SignalR service that the testing has started. --Kirk T. Sherer, September 27, 2022.\r\n\r\n\t\tif (Global.isMobile) {\r\n\t\t\tthis.signalRContainerWidth = this.screenWidth > 390 ? this.screenWidth - 260 : this.screenWidth - 120;\r\n\t\t\tthis.dbTransmitterTableWidth = this.signalRContainerWidth - 20;\r\n\t\t}\r\n\r\n\t\tthis.signalRCore.broadcastMessages$.pipe(filter((msg: any) => msg.code == \"loopback\")).subscribe(\r\n\t\t\t(data: any) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"data = %O\", data);\r\n\t\t\t\tthis.timeReceived = parseFloat(performance.now().toFixed(3));\r\n\t\t\t\tthis.totalTime = parseFloat((this.timeReceived - this.timeSent).toFixed(3));\r\n\t\t\t\tGlobal.User.DebugMode && console.log(\"Total loopback time: \" + this.totalTime + \" ms.\");\r\n\t\t\t\tGlobal.SignalR.countOfObservations++;\r\n\t\t\t},\r\n\t\t\t(err: Error) => Global.User.DebugMode && console.log(`Error with signalR notification$: ${err}`)\r\n\t\t);\r\n\t\tthis.startTest();\r\n\t\tthis.startHub();\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tGlobal.SignalR.testInProgress = false;\r\n\t\tthis.signalRCore.signalRTestInProgress$.next(Global.SignalR.testInProgress); //-notifying the silent SignalR test in the SignalR service that the testing is complete. --Kirk T. Sherer, September 27, 2022.\r\n\t\tthis.leaveGroups();\r\n\t}\r\n\r\n\tstartHub() {\r\n\t\tif (!this.hubConnection) {\r\n\t\t\tthis.buildHubConnection();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.startConnection().then((data: any) => {\r\n\t\t\t\tconsole.log(\"signalr-test: SignalR hub connection started.\");\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\tbuildHubConnection() {\r\n\t\tvar service = this;\r\n\t\tvar accessToken = Global.User.currentUser.ODataAccessToken;\r\n\t\tvar batchNumber = 0;\r\n\t\tvar receiveTimeMS: number = 0;\r\n\t\tvar messageCount = 0;\r\n\t\tvar messagesPerSecond = 0;\r\n\r\n\t\tconst options: IHttpConnectionOptions = {\r\n\t\t\taccessTokenFactory: () => {\r\n\t\t\t\treturn accessToken;\r\n\t\t\t},\r\n\t\t\tskipNegotiation: false, //-- can't skip negotiation unless you're using WebSockets. Error if you try without WebSockets: 'Negotiation can only be skipped when using the WebSocket transport directly'\r\n\t\t\ttransport: signalR.HttpTransportType.WebSockets, //-- removed signalR.HttpTransportType.WebSockets since it's unreliable. Mark Thompson said the ServerSentEvents is much more reliable. --Kirk T. Sherer, October 10, 2022.\r\n\t\t\twithCredentials: false\r\n\t\t};\r\n\t\tservice.hubConnection = new signalR.HubConnectionBuilder()\r\n\t\t\t.configureLogging(signalR.LogLevel.Information)\r\n\t\t\t.withUrl(Global.SignalR.CoreUrl, options)\r\n\t\t\t.withAutomaticReconnect([0, 0, 0, 0]) // .withAutomaticReconnect([0, 2000, 10000, 30000]) yields the default behavior. The 0, 0, 0, 0 means when we disconnect, immediately try to reconnect each of the four times (i.e. don't wait any milliseconds to reconnect).\r\n\t\t\t.build();\t\t\t\t\t\t\t // if it can't reconnect after four times, then it runs the onclose function and the user's browser is completely disconnected from SignalR. --Kirk T. Sherer, December 4, 2023.\r\n\r\n\t\t//-- a number of sites said to set up the .on function before starting the hub.\r\n\t\t// let connectedClients = []\r\n\t\tservice.hubConnection.on(\"SignalRNotification\", (code: any, clientObject: any, callerConnectionId: any, groupName: any) => {\r\n\r\n\t\t\tif(code === 'System.SignalR.ClientConnected'){\r\n\t\t\t\tservice.rawGridConnectedClients.push({clientId: clientObject, date: new Date()})\r\n\t\t\t\tif (service.connectedClientsGrid) {\r\n\t\t\t\t\tservice.connectedClientsGrid.gridDataSubject.next(service.rawGridConnectedClients);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(code === 'System.SignalR.ClientDisconnected'){\r\n\t\t\t\tservice.rawGridConnectedClients = service.rawGridConnectedClients.filter(x => x.clientId !== clientObject)\r\n\t\t\t\tif (service.connectedClientsGrid) {\r\n\t\t\t\t\tservice.connectedClientsGrid.gridDataSubject.next(service.rawGridConnectedClients);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttry {\r\n\t\t\t\tif (code == \"o\") {\r\n\r\n\r\n\t\t\t\t\tvar messageArray: any = [];\r\n\t\t\t\t\tbatchNumber++;\r\n\t\t\t\t\treceiveTimeMS = performance.now() - service.startTime;\r\n\t\t\t\t\tvar batchMessage = clientObject.split('Conn =0,').last();\r\n\t\t\t\t\tif (batchMessage.includes(\"\\r\\n\")) {\r\n\t\t\t\t\t\tmessageArray = batchMessage.split(\"\\r\\n\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tmessageArray.push(batchMessage);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.formattedTagIds.forEach(x => {\r\n\t\t\t\t\t\tif(clientObject.includes(x.toString())){\r\n\t\t\t\t\t\t\tconsole.log('found tag in raw message')\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t})\r\n\t\t\t\t\tmessageCount += messageArray.count();\r\n\t\t\t\t\tmessagesPerSecond = (messageCount / (service.startTime / 1000));\r\n\t\t\t\t\tvar averageMessagesPerBatch = (parseFloat(messageCount.toString()) / parseFloat(batchNumber.toString())).toFixed(2);\r\n\t\t\t\t\tvar messageList = messageArray.select(a => service.ParseMessageContent(a, service.batchNumber, groupName, clientObject, receiveTimeMS)).where(a => a != null).toArray();\r\n\r\n\t\t\t\t\tservice.displayContent =\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tBatchNumber: batchNumber ?? 0,\r\n\t\t\t\t\t\tMessageCount: messageCount,\r\n\t\t\t\t\t\tMessagesPerSecond: +messagesPerSecond.toFixed(2),\r\n\t\t\t\t\t\tAverageMessagesPerBatch: +averageMessagesPerBatch,\r\n\t\t\t\t\t\tTopParsedMessage: messageList.first(),\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif(service.formattedTagIds.length > 0 ){\r\n\t\t\t\t\t\tlet filteredMessageList = [];\r\n\t\t\t\t\t\tmessageList.forEach(message => {\r\n\t\t\t\t\t\t\tif(service.formattedTagIds.includes(parseInt(message.TagId))){\r\n\t\t\t\t\t\t\t\tlet parsedObject = {\r\n\t\t\t\t\t\t\t\t\tTagId:message.TagId,\r\n\t\t\t\t\t\t\t\t\tDate: new Date(parseInt(message.DateMS)),\r\n\t\t\t\t\t\t\t\t\tDateMS: parseInt(message.DateMS),\r\n\t\t\t\t\t\t\t\t\tValue:message.Value,\r\n\t\t\t\t\t\t\t\t\tGroupName:message.GroupName,\r\n\t\t\t\t\t\t\t\t\tName: service.tagIdsList.find(x => x.tagId == parseInt(message.TagId))?.name\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tservice.rawGridData.push(parsedObject);\r\n\t\t\t\t\t\t\t\tconsole.log(parsedObject)\r\n\t\t\t\t\t\t\t\tfilteredMessageList.push(parsedObject)\r\n\t\t\t\t\t\t\t\tif (service.tagDataGrid) {\r\n\t\t\t\t\t\t\t\t\tservice.tagDataGrid.gridDataSubject.next(service.rawGridData);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\tlet outofOrder = false;\r\n\t\t\t\t\t\t//determine if any of the messages are out of order historically\r\n\t\t\t\t\t\tfilteredMessageList.forEach((message, index) => {\r\n\t\t\t\t\t\t\tif(index > 0){\r\n\t\t\t\t\t\t\t\tlet previousMessage = filteredMessageList[index - 1];\r\n\t\t\t\t\t\t\t\tif(message.DateMS < previousMessage.DateMS){\r\n\t\t\t\t\t\t\t\t\tconsole.log('message out of order')\r\n\t\t\t\t\t\t\t\t\toutofOrder = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\tif(outofOrder){\r\n\t\t\t\t\t\t\tconsole.log('messages out of order')\r\n\t\t\t\t\t\t\tconsole.log(filteredMessageList);\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(groupName === 'unknown'){\r\n\t\t\t\t\t\tmessageList.forEach(x => {\r\n\t\t\t\t\t\t\tservice.rawGridUnknownMessages.push({\r\n\t\t\t\t\t\t\t\tTagId: x.TagId,\r\n\t\t\t\t\t\t\t\tDate: new Date(parseInt(x.DateMS)),\r\n\t\t\t\t\t\t\t\tDateMS: parseInt(x.DateMS),\r\n\t\t\t\t\t\t\t\tValue: x.Value,\r\n\t\t\t\t\t\t\t\tGroupName: x.GroupName\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\tif (service.unknownMessagesGrid) {\r\n\t\t\t\t\t\t\tservice.unknownMessagesGrid.gridDataSubject.next(service.rawGridUnknownMessages);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (service.displayContent == null) {\r\n\t\t\t\t\t\tservice.latestStatus = {\r\n\t\t\t\t\t\t\tCode: code,\r\n\t\t\t\t\t\t\tGroupName: groupName ?? \"System\",\r\n\t\t\t\t\t\t\tClientObject: clientObject\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tservice.latestStatus = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tcatch (e) {\r\n\t\t\t\tconsole.log(\"signalr-test: Error with SignalRNotification: \" + e.Message);\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\tthis.startConnection().then((data: any) => {\r\n\t\t\tconsole.log(\"signalr-test: SignalR Hub connection started.\");\r\n\t\t});\r\n\t}\r\n\r\n\tstartConnection(): Promise {\r\n\t\tvar service = this;\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tif (service.hubConnection.state != signalR.HubConnectionState.Connected && service.hubConnection.state != signalR.HubConnectionState.Reconnecting && service.hubConnection.state != signalR.HubConnectionState.Connecting) {\r\n\r\n\t\t\t\tservice.hubConnection\r\n\t\t\t\t\t.start()\r\n\t\t\t\t\t.then((data: any) => {\r\n\r\n\t\t\t\t\t\tservice.mySignalRHubConnectionId = service.hubConnection.connectionId;\r\n\r\n\t\t\t\t\t\t//--Reconnecting--\r\n\t\t\t\t\t\tservice.hubConnection.onreconnecting(() => {\r\n\t\t\t\t\t\t\tconsole.assert(this.hubConnection.state === signalR.HubConnectionState.Reconnecting);\r\n\t\t\t\t\t\t\tconsole.log(\"reconnecting to SignalR hub.\");\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t//--Reconnected--\r\n\t\t\t\t\t\tservice.hubConnection.onreconnected(connectionId => {\r\n\t\t\t\t\t\t\tconsole.assert(service.hubConnection.state === signalR.HubConnectionState.Connected);\r\n\t\t\t\t\t\t\tconsole.log(\"reconnected to SignalR hub.\");\r\n\t\t\t\t\t\t\tservice.mySignalRHubConnectionId = connectionId;\r\n\t\t\t\t\t\t\tservice.joinGroups(); //-- rejoining list of joined groups before we were disconnected.\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t//--OnClose--\r\n\t\t\t\t\t\tservice.hubConnection.onclose(() => {\r\n\t\t\t\t\t\t\tconsole.log(\"closed SignalR hub connection.\");\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((err: Error) => {\r\n\t\t\t\t\t\tconsole.error(\"signalr-test: Error while starting connection: %O\", err);\r\n\t\t\t\t\t\treject(err);\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tthis.startHub();\r\n\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconsole.log(\"signalr-test: Connection state: \" + service.hubConnection.state + \". hubConnection = %O\", service.hubConnection);\r\n\t\t\t\tsetInterval(() => {\r\n\t\t\t\t\tif (service.hubConnection.state == signalR.HubConnectionState.Connected) {\r\n\t\t\t\t\t\tif (!this.joinedGroups) {\r\n\t\t\t\t\t\t\tservice.joinGroups(); //-- hub should be connected here. Go ahead and retry joining groups.\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 500, 5);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tjoinGroups() {\r\n\t\tvar service = this;\r\n\t\tif (service.hubConnection) {\r\n\t\t\ttry {\r\n\t\t\t\tvar skipNumber = 0;\r\n\t\t\t\tvar takeNumber = 100;\r\n\t\t\t\tvar collectedNumber = 100;\r\n\t\t\t\t\r\n\t\t\t\twhile (takeNumber == collectedNumber) {\r\n\t\t\t\t\tvar listOfTagNamePrefixesArray = service.dataService.cache.assets.where((asset: IAsset) => { return asset.TagNamePrefix != null })\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.select((asset: IAsset) => { return asset.TagNamePrefix; })\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.skip(skipNumber)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.take(takeNumber)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.toArray();\r\n\t\t\r\n\t\t\t\t\tcollectedNumber = listOfTagNamePrefixesArray.length;\r\n\t\t\t\t\tvar listOfTagNamePrefixes = listOfTagNamePrefixesArray.join(\",\");\r\n\t\t\t\t\tconsole.log(\"signalr-test: joining Tag Name Prefix Groups. \" + listOfTagNamePrefixes);\r\n\t\t\t\t\tservice.hubConnection.invoke(\"joinGroup\", Global.User.currentUser.ODataAccessToken, listOfTagNamePrefixes).then((data: any) => {\r\n\t\t\t\t\t\t//console.log(\"signalr-test: joined Tag Name Prefix Groups. \" + listOfTagNamePrefixes);\r\n\t\t\t\t\t});\r\n\t\t\t\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(\"collectedNumber: \" + collectedNumber);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\tskipNumber += 100;\t\t\t\t \r\n\t\t\t\t}\r\n\r\n\t\t\t\tconsole.log(\"signalr-test: joined all tag name prefix groups.\");\r\n\t\t\t\tservice.joinedGroups = true;\r\n\t\t\t}\r\n\t\t\tcatch (e) {\r\n\t\t\t\tconsole.log(\"signalr-test: still haven't joined the groups.\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tleaveGroups() {\r\n\t\tvar service = this;\r\n\t\tif (service.hubConnection) {\r\n\t\t\ttry {\r\n\t\t\t\tvar skipNumber = 0;\r\n\t\t\t\tvar takeNumber = 100;\r\n\t\t\t\tvar collectedNumber = 100;\r\n\t\t\t\t\r\n\t\t\t\twhile (takeNumber == collectedNumber) {\r\n\t\t\t\t\tvar listOfTagNamePrefixesArray = service.dataService.cache.assets.where((asset: IAsset) => { return asset.TagNamePrefix != null })\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.select((asset: IAsset) => { return asset.TagNamePrefix; })\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.skip(skipNumber)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.take(takeNumber)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.toArray();\r\n\t\t\r\n\t\t\t\t\tcollectedNumber = listOfTagNamePrefixesArray.length;\r\n\t\t\t\t\tvar listOfTagNamePrefixes = listOfTagNamePrefixesArray.join(\",\");\r\n\t\t\t\t\tconsole.log(\"signalr-test: leaving Tag Name Prefix Groups. \" + listOfTagNamePrefixes);\r\n\t\t\t\t\tservice.hubConnection.invoke(\"leaveGroup\", Global.User.currentUser.ODataAccessToken, listOfTagNamePrefixes).then((data: any) => {\r\n\t\t\t\t\t\t//console.log(\"signalr-test: joined Tag Name Prefix Groups. \" + listOfTagNamePrefixes);\r\n\t\t\t\t\t});\r\n\t\t\t\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(\"collectedNumber: \" + collectedNumber);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\tskipNumber += 100;\t\t\t\t \r\n\t\t\t\t}\r\n\r\n\t\t\t\tconsole.log(\"signalr-test: left all tag name prefix groups.\");\r\n\t\t\t\tservice.listOfTagNamePrefixes = null;\r\n\t\t\t\tservice.hubConnection.off;\r\n\t\t\t}\r\n\t\t\tcatch (e) {\r\n\t\t\t\tconsole.log(\"signalr-test: still haven't left all joined the groups.\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tstartTest() {\r\n\t\tvar service = this;\r\n\t\tservice.timeSent = parseFloat(performance.now().toFixed(3));\r\n\t\tservice.signalRCore.notifySpecificClient(Global.SignalR.ClientId, 'loopback', service.timeSent);\r\n\t\tif (!service.hubConnection) {\r\n\t\t\tservice.startHub();\r\n\t\t}\r\n\t}\r\n\r\n\tParseMessageContent(message: string, batchNumber: number, groupName: string, rawClientObject: any, receiveTimeMS: number) {\r\n\t\tvar dataArray = message.split('~');\r\n\t\tif (dataArray.length == 3) {\r\n\t\t\tvar returnObject: ISignalRMessage = {\r\n\t\t\t\tGroupName: groupName,\r\n\t\t\t\tTagId: dataArray[0].split('!').last(),\r\n\t\t\t\tDateMS: dataArray[1].split('!').last(),\r\n\t\t\t\tValue: dataArray[2].split('!').last()\r\n\t\t\t};\r\n\r\n\t\t\treturn returnObject;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tcloseDialog(): void {\r\n\t\tthis.dialogRef.close();\r\n\t}\r\n\r\n\trestartTest() {\r\n\t\tthis.startTest();\r\n\t}\r\n\r\n\tonResize(event?) {\r\n\t\tthis.screenHeight = window.innerHeight;\r\n\t\tthis.screenWidth = window.innerWidth;\r\n\t}\r\n\r\n\tonSubmit(event): void {\r\n\t\t// Process checkout data here\r\n\t\tthis.tagIdsList.push(this.checkoutForm.value);\r\n\t\tthis.formattedTagIds.push(parseInt(this.checkoutForm.value.tagId));\r\n\t\tconsole.log(this.tagIdsList);\r\n\r\n\t\tthis.checkoutForm.reset();\r\n\t }\r\n}\r\n","
        \r\n\t
        \r\n\t\t
        SignalR Testing
        \r\n\t\t

        My SignalR Client Id: {{mySignalRHubConnectionId}}

        \r\n\t\t
        \r\n\t\t\t\r\n\t\t
        \r\n\t
        \r\n\t
        \r\n\t\t
        \r\n\t\t\tMessage Sent: {{ timeSent }}\r\n\t\t
        \r\n\t\t
        \r\n\t\t\tMessage Received: {{ timeReceived }}\r\n\t\t
        \r\n\t\t
        \r\n\t\t
        \r\n\t\t\tTotal Loopback Time: {{ totalTime }} ms\r\n\t\t
        \r\n\t\t
        \r\n\t\t\r\n\t\t
        \r\n\r\n\r\n\t\t
        \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t
        Incoming SignalR Messages from All GroupsMsgs
        Batch Number#{{displayContent.BatchNumber}}
        MessageMsg Count{{displayContent.MessageCount}}
        Messages Per SecondMsg/Sec{{displayContent.MessagesPerSecond}}
        Average Messages Per BatchAvg Msgs/Batch{{displayContent.AverageMessagesPerBatch}}
        Top Parsed Message\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
        SignalRMessage
        UserQuery+SignalRMessage
        Group Name{{displayContent.TopParsedMessage.GroupName}}
        TagId{{displayContent.TopParsedMessage.TagId}}
        DateMS{{displayContent.TopParsedMessage.DateMS}}
        Value{{displayContent.TopParsedMessage.Value}}
        \r\n\t\t\t\t\t\t
        \r\n\t\t
        \r\n\t\t

        Add Tag Form

        \r\n\r\n\t\t
        \r\n\r\n\t\t\t
        \r\n\t\t\t \r\n\t\t\t \r\n\t\t\t
        \r\n\r\n\t\t\t
        \r\n\t\t\t \r\n\t\t\t \r\n\t\t\t
        \r\n\r\n\t\t\t\r\n\r\n\t\t
        \r\n\t\t

        Tags Being Watched

        \r\n\t\t
        \r\n\t\t\t{{ item.name }} \r\n\t\t\t{{ item.tagId}}\r\n\t\t
        \r\n\r\n\t\t

        Observations Received For Tags Being Watched

        \r\n\r\n\t\t
        \r\n\t\t\t\r\n\t\t\r\n\t\t
        \r\n\t\t

        Clients Currently Connected After Tester Loaded

        \r\n\r\n\t\t
        \r\n\t\t\t\r\n\t\t\r\n\t\t
        \r\n\t\t

        Messages to Unknown Group

        \r\n\r\n\t\t
        \r\n\t\t\t\r\n\t\t\r\n\t\t
        \r\n\r\n\t\t
        \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
        Current Incoming Message
        Code{{latestStatus.Code}}
        Group Name{{latestStatus.GroupName}}
        Message{{latestStatus.ClientObject}}
        \r\n\t\t
        \r\n\t
        \r\n
        \r\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ReleaseNotesComponent } from 'projects/shared-lib/src/lib/components/release-notes/release-notes.component';\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\nimport { SignalRCoreService } from 'projects/shared-lib/src/lib/services/signalr-core.service';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\nimport { IGlobal } from 'projects/shared-lib/src/lib/_models/global.model';\r\nimport { SignalRTestComponent } from 'projects/shared-lib/src/lib/components/signalr-test/signalr-test.component';\r\nimport { environment } from '../../../environments/environment';\r\nimport { Subject } from 'rxjs';\r\nimport { ConsoleLogger } from '@microsoft/signalr/dist/esm/Utils';\r\nimport { setTime } from 'ngx-bootstrap/chronos/utils/date-setters';\r\n\r\n@Component({\r\n\tselector: 'app-footer',\r\n\ttemplateUrl: './footer.component.html',\r\n\tstyleUrls: ['./footer.component.css'],\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\ttest: Date = new Date();\r\n\tpublic global: IGlobal = Global;\r\n\tpublic appVersion: string; // <-- Our application version.\r\n\tpublic environmentName: string; // <-- current environment name. Production will not have an environment name displayed. --Kirk T. Sherer, January 6, 2021.\r\n\tpublic countOfSignalRObservations: number =\r\n\t\tGlobal.SignalR.countOfObservations;\r\n\tpublic signalRCounterIsNotNumeric: boolean = false;\r\n\tpublic testEnvironment: boolean =\r\n\t\tdocument.URL.indexOf('localhost') > 0 ||\r\n\t\tdocument.URL.indexOf('test') > 0\r\n\t\t\t? true\r\n\t\t\t: false;\r\n\tpublic hubConnectionState: string;\r\n\tpublic localCountOfSignalRMessages: number;\r\n\r\n\tconstructor(\r\n\t\tpublic signalRCore: SignalRCoreService,\r\n\t\tprivate dataService: DataService,\r\n\t\tpublic dialog: MatDialog,\r\n\t\tprivate changeDetector: ChangeDetectorRef\r\n\t) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.environmentName = Global.Application.Environment.Name;\r\n\t\tthis.appVersion = Global.Application.Environment.Version;\r\n\t\t//console.log(\"footer-component: Initializing... current Global.SignalR.countOfObservations = \" + Global.SignalR.countOfObservations);\r\n\t\tthis.signalRCore.countOfSignalRObservations$.subscribe(\r\n\t\t\t(barney: number) => {\r\n\t\t\t\tif (isNaN(barney) == true) {\r\n\t\t\t\t\tthis.signalRCounterIsNotNumeric = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.signalRCounterIsNotNumeric = false;\r\n\t\t\t\t}\r\n\t\t\t\t// console.log(\"countOfObservations: \" + barney);\r\n\t\t\t\t// this.updateLocalCounter(barney);\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tthis.signalRCore.hubConnectionState$.subscribe((state: string) => {\r\n\t\t\tthis.hubConnectionState = state;\r\n\t\t});\r\n\t}\r\n\r\n\tpublic wait(ms: number) {\r\n\t\treturn new Promise( resolve => setTimeout(resolve, ms) );\r\n\t}\r\n\t\r\n\tpublic async updateLocalCounter(barney: number) {\r\n\t\t//await this.wait(10000);\r\n\t\tthis.localCountOfSignalRMessages = barney;\r\n\t}\r\n\r\n\tshowSignalRTest() {\r\n\t\tconst dialogRef = this.dialog.open(SignalRTestComponent, {\r\n\t\t\twidth: '50%',\r\n\t\t\theight: '90%',\r\n\t\t\tposition: { right: \"0\" },\r\n\r\n\t\t\thasBackdrop: false,\r\n\t\t\tdisableClose: true,\r\n\t\t\tautoFocus: false,\r\n\t\t});\r\n\t\tdialogRef.afterClosed().subscribe((result) => {\r\n\t\t\tGlobal.User.DebugMode && console.log('The dialog was closed');\r\n\t\t});\r\n\t}\r\n}\r\n\r\n\r\n","
        \r\n\t
        \r\n\t\t\r\n\r\n\t\t
        \r\n\t\t\t© {{ test | date : \"yyyy\" }}\r\n\t\t\t Oshkosh Corporation \r\n\t\t\t{{ environmentName != undefined && environmentName != \"prod\" ? environmentName + \": \" : \"\" }}v{{ appVersion }}\r\n\t\t\tdata: {{ global.Data.footerDataSource }}\r\n\t\t\tsignalR: {{hubConnectionState.toLowerCase()}}, count={{ global.SignalR.countOfObservations == undefined || global.SignalR.countOfObservations == null || signalRCore.hubConnection?.state.toLowerCase() != \"connected\" || signalRCounterIsNotNumeric == true || global.SignalR.countOfObservations < 1 || global.SignalR.countOfObservations.toString() == 'NaN' ? \"0\" : (global.SignalR.countOfObservations | number : \"1.0\" : \"en-US\") }} \r\n\t\t\tsignalR: {{hubConnectionState.toLowerCase()}}\r\n\t\t
        \r\n\t
        \r\n
        \r\n","import { Component, OnInit, HostListener, OnDestroy } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport PerfectScrollbar from \"perfect-scrollbar\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\n\r\n\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SecurityService } from 'projects/shared-lib/src/lib/services/security.service';\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\nimport { UtilityService } from 'projects/shared-lib/src/lib/services/utility.service';\r\n\r\nconst misc: any = {\r\n\tsidebar_mini_active: true,\r\n};\r\n\r\n@Component({\r\n\tselector: 'app-layout',\r\n\ttemplateUrl: './layout.component.html',\r\n\tstyleUrls: ['./layout.component.scss'],\r\n})\r\nexport class LayoutComponent implements OnInit, OnDestroy {\r\n\tprivate checkUserLogin$: any;\r\n\r\n\tconstructor(\r\n\t\tpublic router: Router,\r\n\t\tpublic toastr: ToastrService,\r\n\t\tpublic securityService: SecurityService,\r\n\t\tpublic dataService: DataService,\r\n\t\tprivate utilityService: UtilityService\r\n\t) {}\r\n\r\n\t@HostListener('window:scroll', ['$event'])\r\n\tshowNavbarButton = () => {\r\n\t\tconst mainPanel: any = document.getElementsByClassName('main-panel')[0];\r\n\t\tconst navbarMinimize: any = document.getElementsByClassName(\r\n\t\t\t'navbar-minimize-fixed'\r\n\t\t)[0];\r\n\r\n\t\tif (\r\n\t\t\tdocument.documentElement.scrollTop > 50 ||\r\n\t\t\tdocument.scrollingElement.scrollTop > 50 ||\r\n\t\t\tmainPanel.scrollTop > 50\r\n\t\t) {\r\n\t\t\tnavbarMinimize.style.opacity = 1;\r\n\t\t} else if (\r\n\t\t\tdocument.documentElement.scrollTop <= 50 ||\r\n\t\t\tdocument.scrollingElement.scrollTop <= 50 ||\r\n\t\t\tmainPanel.scrollTop <= 50\r\n\t\t) {\r\n\t\t\tnavbarMinimize.style.opacity = 0;\r\n\t\t}\r\n\t};\r\n\r\n\tngOnInit() {\r\n\t\tif (!this.securityService.currentUserIsLoggedIn) {\r\n\t\t\tthis.router.navigate(['authentication']);\r\n\t\t}\r\n\r\n\t\tconst currentUser = this.securityService.getCurrentUser();\r\n\r\n\t\tGlobal.User.DebugMode &&\r\n\t\t\tconsole.log('LayoutComponent: currentUser = %O', currentUser);\r\n\r\n\t\tthis.checkUserLogin$ = new BehaviorSubject(Global.User.isLoggedIn);\r\n\t\tthis.checkUserLogin$.subscribe(\r\n\t\t\t(isLoggedIn: boolean) => {\r\n\t\t\t\tif (isLoggedIn) {\r\n\t\t\t\t\tthis.dataService.initializeSiteWithUserPreferences();\r\n\r\n\t\t\t\t\tconst mainPanel: any =\r\n\t\t\t\t\t\tdocument.getElementsByClassName('main-panel')[0];\r\n\t\t\t\t\tconst sidebar: any =\r\n\t\t\t\t\t\tdocument.getElementsByClassName('sidebar-wrapper')[0];\r\n\r\n\t\t\t\t\tif (navigator.platform.indexOf('Win') > -1) {\r\n\t\t\t\t\t\tdocument.documentElement.className +=\r\n\t\t\t\t\t\t\t' perfect-scrollbar-on';\r\n\t\t\t\t\t\tdocument.documentElement.classList.remove(\r\n\t\t\t\t\t\t\t'perfect-scrollbar-off'\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tlet ps = new PerfectScrollbar(mainPanel);\r\n\t\t\t\t\t\tps = new PerfectScrollbar(sidebar);\r\n\t\t\t\t\t\tconst tables: any =\r\n\t\t\t\t\t\t\tdocument.querySelectorAll('.table-responsive');\r\n\t\t\t\t\t\tfor (let i = 0; i < tables.length; i++) {\r\n\t\t\t\t\t\t\tps = new PerfectScrollbar(tables[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.showNavbarButton();\r\n\t\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\t\tconsole.log('layout.component.ts misc = %O', misc);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t(err) =>\r\n\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\tconsole.log(`Error checking user login: ${err}`)\r\n\t\t);\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tGlobal.User.DebugMode && console.log('ngOnDestroy invoked...');\r\n\t\tthis.checkUserLogin$ && this.checkUserLogin$.unsubscribe();\r\n\t}\r\n\r\n\tminimizeSidebar() {\r\n\t\tthis.dataService.toggleSidebarMini();\r\n\t}\r\n\r\n\tshowSidebarMessage(message) {\r\n\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\ttype: 'info',\r\n\t\t\tmessage:\r\n\t\t\t\t'',\r\n\t\t\ttitle: message,\r\n\t\t\toverride: {\r\n\t\t\t\ttimeOut: 4000,\r\n\t\t\t\tcloseButton: true,\r\n\t\t\t\tenableHtml: true,\r\n\t\t\t\ttoastClass: 'alert alert-danger alert-with-icon',\r\n\t\t\t\tpositionClass: 'toast-top-right',\r\n\t\t\t},\r\n\t\t});\r\n\t\t// this.toastr.show('', message, {\r\n\t\t// \ttimeOut: 4000,\r\n\t\t// \tcloseButton: true,\r\n\t\t// \tenableHtml: true,\r\n\t\t// \ttoastClass: \"alert alert-danger alert-with-icon\",\r\n\t\t// \tpositionClass: \"toast-top-right\",\r\n\t\t// });\r\n\t}\r\n}\r\n","
        \r\n
        \r\n \r\n \r\n \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n","import { Component, ContentChildren, QueryList, OnInit, NgZone, Renderer2, AfterViewInit, OnDestroy } from \"@angular/core\";\r\n\r\nimport { CdkDragDrop, CdkDrag, moveItemInArray } from \"@angular/cdk/drag-drop\";\r\nimport _ from \"lodash\";\r\nimport { Subject, Subscription, fromEvent } from \"rxjs\";\r\nimport { SidebarComponent } from \"../../sidebar/sidebar.component\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\n\r\nimport swal from \"sweetalert2\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { UtilityService } from \"projects/shared-lib/src/lib/services/utility.service\";\r\nimport { State, process } from \"@progress/kendo-data-query\";\r\nimport { tap, take } from \"rxjs/operators\";\r\nimport { RowClassArgs } from \"@progress/kendo-angular-grid\";\r\nimport { IDashboard } from \"projects/shared-lib/src/lib/_models/dashboard.model\";\r\nimport { DashboardCopyComponent } from \"projects/shared-lib/src/lib/components/dashboard-copy/dashboard-copy.component\";\r\nimport { DashboardEditComponent } from \"projects/shared-lib/src/lib/components/dashboard-edit/dashboard-edit.component\";\r\n\r\nconst tableRow = (node) => node.tagName.toLowerCase() === \"tr\";\r\n\r\nconst closest = (node, predicate) => {\r\n\twhile (node && !predicate(node)) {\r\n\t\tnode = node.parentNode;\r\n\t}\r\n\r\n\treturn node;\r\n};\r\n\r\n@Component({\r\n\ttemplateUrl: \"./dashboard-list.component.html\",\r\n\tstyleUrls: [\"./dashboard-list.component.scss\"]\r\n})\r\nexport class DashboardListComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\tpublic static returned: Subject = new Subject();\r\n\r\n\tpublic dashboards: any;\r\n\tcdkDragData: any;\r\n\tprivate swalWithBootstrapButtons: any;\r\n\tprivate updatingDashboardList: boolean = false;\r\n\tprivate finishedWithUpdatingDashboardList: boolean = true;\r\n\tprivate componentName: string = \"dashboard-list: \";\r\n\tpublic state: State = {\r\n\t\tskip: 0\r\n\t};\r\n\tpublic gridData: any;\r\n\r\n\tprivate currentSubscription: Subscription;\r\n\r\n\tconstructor(private dataService: DataService, public dialog: MatDialog, private router: Router, private toastr: ToastrService, private utilityService: UtilityService, private renderer: Renderer2, private zone: NgZone) {\r\n\t\tDashboardListComponent.returned.subscribe((res) => {\r\n\t\t\tthis.getDashboardListForUser();\r\n\t\t});\r\n\t\tthis.swalWithBootstrapButtons = swal.mixin({\r\n\t\t\tcustomClass: {\r\n\t\t\t\tconfirmButton: \"btn btn-danger\",\r\n\t\t\t\tcancelButton: \"btn btn-success\"\r\n\t\t\t},\r\n\t\t\tbuttonsStyling: false\r\n\t\t});\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.getDashboardListForUser();\r\n\t}\r\n\r\n\tngAfterViewInit() {\r\n\t\tthis.currentSubscription = this.handleDragAndDrop();\r\n\t}\r\n\r\n\tpublic dataStateChange(state: State): void {\r\n\t\tthis.state = state;\r\n\t\tthis.gridData = process(this.dashboards, this.state);\r\n\t\tif(this.currentSubscription){\r\n\t\t\tthis.currentSubscription.unsubscribe();\r\n\r\n\t\t}\r\n\t\tthis.zone.onStable.pipe(take(1)).subscribe(() => (this.currentSubscription = this.handleDragAndDrop()));\r\n\t}\r\n\r\n\tpublic rowCallback(context: RowClassArgs) {\r\n\t\treturn {\r\n\t\t\tdragging: context.dataItem.dragging\r\n\t\t};\r\n\t}\r\n\r\n\tprivate handleDragAndDrop(): Subscription {\r\n\t\tconst sub = new Subscription(() => {});\r\n\t\tlet draggedItemIndex;\r\n\r\n\t\tconst tableRows = Array.from(document.querySelectorAll(\".k-grid tr\"));\r\n\t\ttableRows.forEach((item) => {\r\n\t\t\tthis.renderer.setAttribute(item, \"draggable\", \"true\");\r\n\t\t\tconst dragStart = fromEvent(item, \"dragstart\");\r\n\t\t\tconst dragOver = fromEvent(item, \"dragover\");\r\n\t\t\tconst dragEnd = fromEvent(item, \"dragend\");\r\n\r\n\t\t\tsub.add(\r\n\t\t\t\tdragStart\r\n\t\t\t\t\t.pipe(\r\n\t\t\t\t\t\ttap(({ dataTransfer }) => {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tconst dragImgEl = document.createElement(\"span\");\r\n\t\t\t\t\t\t\t\tdragImgEl.setAttribute(\"style\", \"position: absolute; display: block; top: 0; left: 0; width: 0; height: 0;\");\r\n\t\t\t\t\t\t\t\tdocument.body.appendChild(dragImgEl);\r\n\t\t\t\t\t\t\t\tdataTransfer.setDragImage(dragImgEl, 0, 0);\r\n\t\t\t\t\t\t\t} catch (err) {\r\n\t\t\t\t\t\t\t\t// IE doesn't support setDragImage\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t// Firefox won't drag without setting data\r\n\t\t\t\t\t\t\t\tdataTransfer.setData(\"application/json\", \"\");\r\n\t\t\t\t\t\t\t} catch (err) {\r\n\t\t\t\t\t\t\t\t// IE doesn't support MIME types in setData\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.subscribe(({ target }) => {\r\n\t\t\t\t\t\tconst row: HTMLTableRowElement = target;\r\n\t\t\t\t\t\tdraggedItemIndex = row.rowIndex;\r\n\t\t\t\t\t\tconst dataItem = this.gridData.data[draggedItemIndex];\r\n\t\t\t\t\t\tdataItem.dragging = true;\r\n\t\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\t\tsub.add(\r\n\t\t\t\tdragOver.subscribe((e: any) => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tconst dataItem = this.gridData.data.splice(draggedItemIndex, 1)[0];\r\n\t\t\t\t\tconst dropIndex = closest(e.target, tableRow).rowIndex;\r\n\t\t\t\t\tconst dropItem = this.gridData.data[dropIndex];\r\n\r\n\t\t\t\t\tdraggedItemIndex = dropIndex;\r\n\t\t\t\t\tthis.zone.run(() => this.gridData.data.splice(dropIndex, 0, dataItem));\r\n\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\t\tsub.add(\r\n\t\t\t\tdragEnd.subscribe((e: any) => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tconst dataItem = this.gridData.data[draggedItemIndex];\r\n\t\t\t\t\tdataItem.dragging = false;\r\n\r\n\t\t\t\t\tlet ordinalValue = 1;\r\n\t\t\t\t\tvar countOfDashboards = 0;\r\n\t\t\t\t\tvar newDashboardList = null;\r\n\t\t\t\t\tthis.updatingDashboardList = true;\r\n\t\t\t\t\tvar finishedWithUpdate = false;\r\n\t\t\t\t\tvar requestJSON: any = [];\r\n\t\t\t\t\tthis.gridData.data.forEach((d: any) => {\r\n\t\t\t\t\t\td.Ordinal = ordinalValue;\r\n\t\t\t\t\t\tordinalValue++;\r\n\t\t\t\t\t\tvar sqlStatement = this.dataService.addOrUpdateDashboardRecord(d);\r\n\t\t\t\t\t\tvar dashboardSQLObject = {\r\n\t\t\t\t\t\t\tlabel: \"Dashboard-\" + d.Ordinal,\r\n\t\t\t\t\t\t\tsqlStatement: sqlStatement\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\trequestJSON.push(dashboardSQLObject);\r\n\t\t\t\t\t\tcountOfDashboards++;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"Dashboard List drag-and-drop requestJSON = %O\", requestJSON);\r\n\t\t\t\t\tthis.dataService.SQLMultiAction(requestJSON).then((data: any) => {\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"SQLMultiAction for requestJSON = %O\", data);\r\n\t\t\t\t\t\tvar collections: any = data;\r\n\t\t\t\t\t\tcollections.forEach((collection: any) => {\r\n\t\t\t\t\t\t\tif (collection.label == \"Dashboard-\" + countOfDashboards) {\r\n\t\t\t\t\t\t\t\tnewDashboardList = collection.data; //-- get last update of the dashboards for the final list.\r\n\t\t\t\t\t\t\t\tthis.updateMenu(newDashboardList); //-- only when we're finished updating all of the dashboards for the new ordinal value do we need to notify the Sidebar menu to rebuild itself.\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\treturn sub;\r\n\t}\r\n\r\n\topenDashboardEdit(id: number): void {\r\n\t\tconst dashboardEditModal = this.dialog.open(DashboardEditComponent, {\r\n\t\t\twidth: \"60%\",\r\n\t\t\theight: \"80%\",\r\n\t\t\tdata: id,\r\n\t\t\tpanelClass: \"no-overflow\"\r\n\t\t});\r\n\r\n\t\tdashboardEditModal.afterClosed().subscribe((result) => {\r\n\t\t\t//if not submitted, then result is undefined\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"dashboardEditModal result = %O\", result);\r\n\t\t\t// if (result !== undefined) {\r\n\t\t\tthis.getDashboardListForUser();\r\n\t\t\t// }\r\n\t\t});\r\n\t}\r\n\r\n\tdeleteDashboard(dashboard: IDashboard) {\r\n\t\tvar sqlStatement = \"API.DeleteDashboard \" + dashboard.Id;\r\n\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then(\r\n\t\t\t// remaining dashboards for this user will be returned from the delete dashboard stored procedure. Update the list with the data that is returned. --Kirk T. Sherer, August 28, 2020.\r\n\t\t\t(data: any) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"Dashboard id \" + dashboard.Id + \" deleted.\");\r\n\t\t\t\tthis.dataService.buildDashboardAndDashboardObjectAfterEdit(data);\r\n\t\t\t\tthis.dataService.setUserDashboardList(data);\r\n\r\n\t\t\t\tthis.getDashboardListForUser();\r\n\t\t\t\t// then alerting the user the dashboard has been deleted.\r\n\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\tmessage: \"'\" + dashboard.Name + \"' has been DELETED.\",\r\n\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t});\r\n\t\t\t\t// this.toastr.info(\"'\" + dashboard.Name + \"' has been DELETED.\", \"Dashboards\");\r\n\t\t\t\t_.remove(this.dashboards, function (n: any) {\r\n\t\t\t\t\treturn n.Id === dashboard.Id;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\topenCopyDialog(dashboard: any): void {\r\n\t\tconst dashboardCopyModal = this.dialog.open(DashboardCopyComponent, {\r\n\t\t\twidth: \"50%\",\r\n\t\t\tdata: dashboard,\r\n\t\t\tpanelClass: \"overflow-y\"\r\n\t\t});\r\n\r\n\t\tdashboardCopyModal.afterClosed().subscribe((result) => {\r\n\t\t\t//if not submitted, then result is undefined\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"dashboardCopyModal result = %O\", result);\r\n\t\t\tif (result !== undefined && result != 999999) {\r\n\t\t\t\tthis.copyDashboard(dashboard, result);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tcopyDashboard(dashboard: any, listOfUserIds?: any) {\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"copyDashboard -> listOfUserIds = \" + listOfUserIds + \", Global.User.currentUser.Id = \" + Global.User.currentUser.Id);\r\n\t\tvar singleCopyToCurrentLoggedInUser = listOfUserIds.indexOf(\",\") <= 0 && +listOfUserIds == Global.User.currentUser.Id;\r\n\t\tvar sqlStatement = \"API.Dashboards_CopyDashboard @DashboardId=\" + dashboard.Id;\r\n\t\tvar currentUserIsPartOfCopyOperation = false;\r\n\t\tvar dataArray: any = null;\r\n\t\tif (!singleCopyToCurrentLoggedInUser) {\r\n\t\t\tvar arrayOfUsersIds = listOfUserIds.split(\",\");\r\n\t\t\tvar requestJSON: any = [];\r\n\t\t\tarrayOfUsersIds.forEach((userId:string) => {\r\n\t\t\t\tvar jsonObject = {\r\n\t\t\t\t\tlabel: \"User_\" + userId,\r\n\t\t\t\t\tsqlStatement: sqlStatement + \", @ToUserId=\" + userId\r\n\t\t\t\t};\r\n\t\t\t\trequestJSON.push(jsonObject);\r\n\t\t\t\tif (+userId == Global.User.currentUser.Id) {\r\n\t\t\t\t\tcurrentUserIsPartOfCopyOperation = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tconsole.log(\"requestJSON = %O\", requestJSON);\r\n\t\t\tthis.dataService.SQLMultiAction(requestJSON).then((data: any) => {\r\n\t\t\t\tvar collections: any = data;\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"Dashboard id \" + dashboard.Id + \" copied to selected users.\");\r\n\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\tmessage: \"'\" + dashboard.Name + (dashboard.Description != \"null\" ? \" : \" + dashboard.Description : \"\") + \"' has been copied to the selected list of people.\",\r\n\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t});\r\n\t\t\t\t//-- Need to find in the data which one might be tied to the current logged-in user and provide the updated Dashboard List from that set of data. --Kirk T. Sherer, June 27, 2023\r\n\t\t\t\tif (currentUserIsPartOfCopyOperation) {\r\n\t\t\t\t\tvar data = collections.firstOrDefault((collection:any) => { return collection.label == \"User_\" + Global.User.currentUser.Id }).data;\r\n\t\t\t\t\tthis.getDashboardListForUser(data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then(\r\n\t\t\t\t// newest list of dashboards with the copied dashboard will be returned for this user in the copy dashboard stored procedure. Update the list with the data that is returned. --Kirk T. Sherer, August 28, 2020.\r\n\t\t\t\t(data: any) => {\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"Dashboard id \" + dashboard.Id + \" copied. New dashboard list: %O\", data);\r\n\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\tmessage: \"'\" + dashboard.Name + (dashboard.Description != \"null\" ? \" : \" + dashboard.Description : \"\") + \"' has been copied.\",\r\n\t\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t\t});\r\n\t\t\t\t\t// this.toastr.info(\"'\" + dashboard.Name + \"' has been copied.\", \"Dashboards\");\r\n\t\t\t\t\tthis.getDashboardListForUser(data);\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tgetDashboardListForUser(updatedDashboardList?: any) {\r\n\t\tif (!updatedDashboardList) {\r\n\t\t\t//-- if we haven't made any changes to the list of dashboards, then we haven't been sent a new updatedDashboardList. So get the list from the Global.User.currentUser.Dashboards list. --Kirk T. Sherer, November 29, 2021.\r\n\t\t\tthis.setDashboardListForUser(Global.User.currentUser.Dashboards);\r\n\t\t} else {\r\n\t\t\t//--the delete stored procedure (API.DeleteDashboard) is already running the stored procedure for retrieving dashboards for this user, so we already have the dashboard list. --Kirk T. Sherer, August 29, 2020.\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"updatedDashboardList = %O\", updatedDashboardList);\r\n\t\t\tthis.updateMenu(updatedDashboardList);\r\n\t\t}\r\n\t}\r\n\r\n\tupdateMenu(dashboardList: any) {\r\n\t\tif (this.updatingDashboardList) {\r\n\t\t\t//-- user has updated their dashboard list, so set the Global.User.currentUser.Dashboards to the new list and notify the SidebarComponent that the dashboard was updated. --Kirk T. Sherer, December 1, 2021.\r\n\t\t\tthis.dataService.buildDashboardAndDashboardObjectAfterEdit(dashboardList);\r\n\t\t\tSidebarComponent.dashboardUpdated$.next(true);\r\n\t\t\tthis.updatingDashboardList = false;\r\n\t\t}\r\n\t\tif (Global.User.needToBuildMenu) {\r\n\t\t\tthis.dataService.needToBuildMenu$.next(Global.User.needToBuildMenu);\r\n\t\t}\r\n\r\n\t\tthis.setDashboardListForUser(dashboardList);\r\n\t}\r\n\r\n\tsetDashboardListForUser(dashboardList: any) {\r\n\t\tif (dashboardList.length == 0) {\r\n\t\t\t// user no longer has any more dashboards since they deleted all of them. Re-route to the demo dashboard. --Kirk T. Sherer, April 22, 2020.\r\n\t\t\tGlobal.CurrentMenuItem = \"Welcome Screen\";\r\n\r\n\t\t\tthis.router.navigate([\"layout/dashboard-demo\"]);\r\n\t\t}\r\n\t\tthis.dashboards = dashboardList;\r\n\t\tthis.gridData = process(this.dashboards, this.state);\r\n\t}\r\n\r\n\tupdateMenuItem(dashboard: any) {\r\n\t\tGlobal.CurrentMenuItem = dashboard.Name;\r\n\t}\r\n\r\n\tonDelete(dashboard: IDashboard) {\r\n\t\tGlobal.User.DebugMode && console.log(dashboard);\r\n\t\tthis.swalWithBootstrapButtons\r\n\t\t\t.fire({\r\n\t\t\t\ttitle: \"Are you sure?\",\r\n\t\t\t\thtml: \"This will remove the \" + dashboard.Name + (dashboard.Description != null ? \" : \" + dashboard.Description : \"\") + \" dashboard. This will remove all widgets on the dashboard as well as the dashboard itself. You won't be able to revert this.\" + (dashboard.IsTemplate == '1' ? \" Warning: You are about to delete a dashboard template. It will no longer be available as a selection to create new dashboards.\" : \"\"),\r\n\t\t\t\tshowCancelButton: true,\r\n\t\t\t\tconfirmButtonText: \"Delete Dashboard\",\r\n\t\t\t\tcancelButtonText: \"Cancel\",\r\n\t\t\t\treverseButtons: false\r\n\t\t\t})\r\n\t\t\t.then((result) => {\r\n\t\t\t\tif (result.value) {\r\n\t\t\t\t\t// logic for deleting dashboard goes here.\r\n\t\t\t\t\tthis.deleteDashboard(dashboard);\r\n\t\t\t\t} else if (result.dismiss === swal.DismissReason.cancel) {\r\n\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\tmessage: \"'\" + dashboard.Name + \"' has NOT been deleted.\",\r\n\t\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t\t});\r\n\t\t\t\t\t// this.toastr.info(\"'\" + dashboard.Name + \"' has NOT been deleted.\", \"Dashboards\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tif(this.currentSubscription){\r\n\t\t\tthis.currentSubscription.unsubscribe();\r\n\r\n\t\t}\r\n\t}\r\n}\r\n","
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t

        My Dashboard List

        \r\n\t\t\t\t\r\n\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t
        \r\n\r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n
        \r\n","import { Component, OnInit, Inject } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\n\r\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { QuestionBase } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-base\";\r\n\r\nimport { Observable } from \"rxjs\";\r\nimport { startWith, map, filter } from \"rxjs/operators\";\r\nimport swal from \"sweetalert2\";\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { DashboardEditComponent } from \"projects/shared-lib/src/lib/components/dashboard-edit/dashboard-edit.component\";\r\nimport { TextboxQuestion } from \"../../_models/dynamic-fields/questions/question-textbox\";\r\nimport { UtilityService } from \"projects/shared-lib/src/lib/services/utility.service\";\r\n\r\n@Component({\r\n\tselector: \"lib-dashboard-copy\",\r\n\ttemplateUrl: \"./dashboard-copy.component.html\",\r\n\tstyleUrls: [\"./dashboard-copy.component.scss\"]\r\n})\r\nexport class DashboardCopyComponent implements OnInit {\r\n\tpublic title: string;\r\n\tpublic subTitle: string;\r\n\tprivate name: FormControl;\r\n\tpublic copyForm: FormGroup;\r\n\tpublic fieldList: QuestionBase[];\r\n\tpublic isLoading: boolean;\r\n\tpublic editFields: QuestionBase[];\r\n\tpublic formOptions: any;\r\n\tpublic coworkers: any;\r\n\tpublic options: any;\r\n\tpublic myControl = new FormControl();\r\n\tfilteredOptions: Observable;\r\n\tlastSearchTerm: any;\r\n\tsearchResults: any;\r\n\tselectedUser: any;\r\n\tprivate swalWithBootstrapButtons: any;\r\n\tfullDataCacheSubscription: any;\r\n\tpublic editQuestions: any;\r\n\r\n\tconstructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public dashboard: any, private dataService: DataService, private utilityService: UtilityService) {\r\n\t\tthis.swalWithBootstrapButtons = swal.mixin({\r\n\t\t\tcustomClass: {\r\n\t\t\t\tconfirmButton: \"btn btn-danger\",\r\n\t\t\t\tcancelButton: \"btn btn-success\"\r\n\t\t\t},\r\n\t\t\tbuttonsStyling: false\r\n\t\t});\r\n\r\n\t\t\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.formOptions = {\r\n\t\t\tsubmitButtonText: \"Copy Dashboard\",\r\n\t\t\tsaveValuesPerField: false,\r\n\t\t\tsaveStoredProcedureName: \"API.Dashboards_CopyDashboard @UserId=\" + Global.User.currentUser.Id,\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\r\n\t\tthis.isLoading = true;\r\n\t\tGlobal.User.DebugMode && console.log(\"this.dashboard = \" + this.dashboard);\r\n\t\tGlobal.User.DebugMode && console.log(\"this.dataService.cache.people = %O\", this.dataService.cache.people);\r\n\t\tthis.myControl.setValue(Global.User.currentUser.GivenName + \" \" + Global.User.currentUser.FamilyName + \" (\" + Global.User.currentUser.Username + \")\");\r\n\r\n\t\tif (!Global.FullDataCacheExists) {\r\n\t\t\tthis.fullDataCacheSubscription = this.dataService.fullDataCacheExists$.subscribe((data: any) => {\r\n\t\t\t\tif (data === true) {\r\n\t\t\t\t\tthis.initialize();\r\n\t\t\t\t\tthis.fullDataCacheSubscription.unsubscribe();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.initialize();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic closeWindow(): void {\r\n\t\tthis.dialogRef.close(999999);\r\n\t}\r\n\r\n\tpublic closeDialogWindow(): void {\r\n\t\tthis.closeWindow();\r\n\t}\r\n\r\n\tinitialize() {\r\n\r\n\t\tGlobal.User.DebugMode && console.log(\"dashboard-copy: initialize invoked...\");\r\n\t\tif (Global.User.isLoggedIn) {\r\n\t\t\tconsole.log(\"dashboard-copy: Global.User.currentUser = %O\", Global.User.currentUser);\r\n\t\t\tthis.setUpDynamicFormQuestions();\r\n\t\t}\r\n\t}\r\n\r\n\tsetUpDynamicFormQuestions() {\r\n\t\tthis.isLoading = true;\r\n\t\tthis.editQuestions = [\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"Person1\",\r\n\t\t\t\tlabel: \"Person\",\r\n\t\t\t\ttitle: \"The Person receiving the copied dashboard. This will default to your name since the normal copy function is usually to make a copy of your own dashboard to another name.\",\r\n\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\tsetName: \"PersonWithUsername\",\r\n\t\t\t\trequired: true,\r\n\t\t\t\tvalidateObject: true,\r\n\t\t\t\tallowBlankValue: false,\r\n\t\t\t\torder: 1,\r\n\t\t\t\tvalue: Global.User.currentUser.Id\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"Person2\",\r\n\t\t\t\tlabel: \"Person\",\r\n\t\t\t\ttitle: \"The Person receiving the copied dashboard.\",\r\n\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\tsetName: \"PersonWithUsername\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\tvalidateObject: true,\r\n\t\t\t\tallowBlankValue: true,\r\n\t\t\t\torder: 2,\r\n\t\t\t\tvisibleFields: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person1\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: null\r\n\t\t\t\t\t}, // AND\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person1\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: \"\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"Person3\",\r\n\t\t\t\tlabel: \"Person\",\r\n\t\t\t\ttitle: \"The Person receiving the copied dashboard.\",\r\n\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\tsetName: \"PersonWithUsername\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\tvalidateObject: true,\r\n\t\t\t\tallowBlankValue: true,\r\n\t\t\t\torder: 3,\r\n\t\t\t\tvisibleFields: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person2\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: null\r\n\t\t\t\t\t}, // AND\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person2\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: \"\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"Person4\",\r\n\t\t\t\tlabel: \"Person\",\r\n\t\t\t\ttitle: \"The Person receiving the copied dashboard.\",\r\n\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\tsetName: \"PersonWithUsername\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\tvalidateObject: true,\r\n\t\t\t\tallowBlankValue: true,\r\n\t\t\t\torder: 4,\r\n\t\t\t\tvisibleFields: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person3\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: null\r\n\t\t\t\t\t}, // AND\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person3\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: \"\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"Person5\",\r\n\t\t\t\tlabel: \"Person\",\r\n\t\t\t\ttitle: \"The Person receiving the copied dashboard.\",\r\n\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\tsetName: \"PersonWithUsername\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\tvalidateObject: true,\r\n\t\t\t\tallowBlankValue: true,\r\n\t\t\t\torder: 5,\r\n\t\t\t\tvisibleFields: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person4\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: null\r\n\t\t\t\t\t}, // AND\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person4\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: \"\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"Person6\",\r\n\t\t\t\tlabel: \"Person\",\r\n\t\t\t\ttitle: \"The Person receiving the copied dashboard.\",\r\n\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\tsetName: \"PersonWithUsername\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\tvalidateObject: true,\r\n\t\t\t\tallowBlankValue: true,\r\n\t\t\t\torder: 6,\r\n\t\t\t\tvisibleFields: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person5\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: null\r\n\t\t\t\t\t}, // AND\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person5\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: \"\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"Person7\",\r\n\t\t\t\tlabel: \"Person\",\r\n\t\t\t\ttitle: \"The Person receiving the copied dashboard.\",\r\n\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\tsetName: \"PersonWithUsername\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\tvalidateObject: true,\r\n\t\t\t\tallowBlankValue: true,\r\n\t\t\t\torder: 7,\r\n\t\t\t\tvisibleFields: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person6\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: null\r\n\t\t\t\t\t}, // AND\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person6\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: \"\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"Person8\",\r\n\t\t\t\tlabel: \"Person\",\r\n\t\t\t\ttitle: \"The Person receiving the copied dashboard.\",\r\n\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\tsetName: \"PersonWithUsername\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\tvalidateObject: true,\r\n\t\t\t\tallowBlankValue: true,\r\n\t\t\t\torder: 8,\r\n\t\t\t\tvisibleFields: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person7\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: null\r\n\t\t\t\t\t}, // AND\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person7\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: \"\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"Person9\",\r\n\t\t\t\tlabel: \"Person\",\r\n\t\t\t\ttitle: \"The Person receiving the copied dashboard.\",\r\n\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\tsetName: \"PersonWithUsername\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\tvalidateObject: true,\r\n\t\t\t\tallowBlankValue: true,\r\n\t\t\t\torder: 9,\r\n\t\t\t\tvisibleFields: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person8\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: null\r\n\t\t\t\t\t}, // AND\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person8\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: \"\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t}),\r\n\t\t\tnew TextboxQuestion({\r\n\t\t\t\tkey: \"Person10\",\r\n\t\t\t\tlabel: \"Person\",\r\n\t\t\t\ttitle: \"The Person receiving the copied dashboard.\",\r\n\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\tsetName: \"PersonWithUsername\",\r\n\t\t\t\trequired: false,\r\n\t\t\t\tvalidateObject: true,\r\n\t\t\t\tallowBlankValue: true,\r\n\t\t\t\torder: 9,\r\n\t\t\t\tvisibleFields: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person9\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: null\r\n\t\t\t\t\t}, // AND\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person9\",\r\n\t\t\t\t\t\toperator: \"!=\",\r\n\t\t\t\t\t\tvalue: \"\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t}),\r\n\t\t]\r\n\t\tthis.isLoading = false;\r\n\t\tthis.title = \"Copy Dashboard: \" + this.dashboard.Name;\r\n\t\tthis.subTitle = this.dashboard.Description != \"null\" ? this.dashboard.Description : \"Copying this dashboard\";\r\n\t}\r\n\r\n\tsetUpForm() {\r\n\t\tthis.setUpDynamicFormQuestions();\r\n\t}\r\n\r\n\tsubmitForm(submittedValues: any) {\r\n\t\tGlobal.User.DebugMode && console.log(\"dashboard-copy.component.ts: submitForm: submittedValues = %O\", submittedValues);\r\n\t\tGlobal.User.DebugMode && console.log(\"dashboard-copy.component.ts: dashboard to copy = %O\", this.dashboard);\r\n\t\tvar submittedValuesObject = JSON.parse(submittedValues);\r\n\t\tvar keys: Array = Object.keys(submittedValuesObject);\r\n\t\tvar arrayOfUserIds: Array = [];\r\n\t\tkeys.forEach((key:string) => {\r\n\t\t\tif (submittedValuesObject[key] != null) {\r\n\t\t\t\tarrayOfUserIds.push(submittedValuesObject[key].toString());\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar listOfUserIds = arrayOfUserIds.join(\",\");\r\n\r\n\t\tvar singleCopyToCurrentLoggedInUser = arrayOfUserIds.firstOrDefault((id:any) => { return id }) == Global.User.currentUser.Id && arrayOfUserIds.length == 1;\r\n\t\tGlobal.User.DebugMode && console.log(\"dashboard-copy: singleCopyToCurrentLoggedInUser = \" + singleCopyToCurrentLoggedInUser);\r\n\t\tif (!singleCopyToCurrentLoggedInUser) {\r\n\t\t\tthis.swalWithBootstrapButtons\r\n\t\t\t\t.fire({\r\n\t\t\t\t\ttitle: \"Are you sure?\",\r\n\t\t\t\t\thtml: \"Copy the \" + this.dashboard.Name + (this.dashboard.Description != \"null\" ? \" : \" + this.dashboard.Description : \"\") + \" to the list of people selected?\",\r\n\t\t\t\t\tshowCancelButton: true,\r\n\t\t\t\t\tconfirmButtonText: \"Yes\",\r\n\t\t\t\t\tcancelButtonText: \"No\",\r\n\t\t\t\t\treverseButtons: false\r\n\t\t\t\t})\r\n\t\t\t\t.then((result) => {\r\n\t\t\t\t\tif (result.value) {\r\n\t\t\t\t\t\t// Send back the list of user Ids for copying this dashboard. \r\n\t\t\t\t\t\tthis.dialogRef.close(listOfUserIds);\r\n\t\t\t\t\t} else if (result.dismiss === swal.DismissReason.cancel) {\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(\"User simply cancelled the dashboard copy.\");\r\n\t\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\t\tmessage: \"'\" + this.dashboard.Name + (this.dashboard.Description != \"null\" ? \" : \" + this.dashboard.Description : \"\") + \"' was NOT copied.\",\r\n\t\t\t\t\t\t\ttitle: \"Dashboards\"\r\n\t\t\t\t\t\t}).then((data:any) => {\r\n\t\t\t\t\t\t\tthis.dialogRef.close();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\t//-- the user is trying to copy the dashboard to themselves. --Kirk T. Sherer, September 2, 2020.\r\n\t\t\tthis.dialogRef.close(listOfUserIds);\r\n\t\t}\r\n\t}\r\n}\r\n","
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t

        {{ title }}

        \r\n \r\n\t\t\t\t
        {{ subTitle }}
        \r\n\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n
        \r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DashboardEditComponent } from 'projects/shared-lib/src/lib/components/dashboard-edit/dashboard-edit.component';\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\n\r\n\r\n\r\n@Component({\r\n selector: \"dashboard-demo\",\r\n templateUrl: \"dashboard-demo.component.html\",\r\n styleUrls: [\"dashboard-demo.component.scss\"],\r\n})\r\nexport class DashboardDemoComponent {\r\n public canvas: any;\r\n public ctx;\r\n public datasets: any;\r\n public data: any;\r\n public myChartData;\r\n public clicked = true;\r\n public clicked1 = false;\r\n public clicked2 = false;\r\n\r\n constructor(private dialog: MatDialog, private dataService: DataService, private router: Router) { }\r\n\r\n addNewDashboardModal(): void {\r\n const dashboardEditModal = this.dialog.open(DashboardEditComponent, {\r\n data: 0,\r\n panelClass: \"no-overflow\",\r\n });\r\n\r\n dashboardEditModal.afterClosed().subscribe((result) => {\r\n //Global.User.DebugMode && console.log(\"The modal was closed\");\r\n //if not submitted, then result is undefined\r\n //Global.User.DebugMode && console.log(\"addNewDashboardModal result = %O\", result);\r\n if (result !== undefined) {\r\n this.dataService.dashboardCreatedFromModal();\r\n Global.CurrentMenuItem = result[0].Name;\r\n this.router.navigate([\"layout/dashboard/\" + result[0].Id]);\r\n }\r\n });\r\n }\r\n}\r\n","
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t

        Welcome to iOPSPro!

        \r\n\t\t\t\t\t

        To get started, add a new dashboard by clicking the button below.

        \r\n\t\t\t\t
        \r\n\r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t

        \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t

        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n
        \r\n","import { Component, AfterViewInit, OnDestroy, ChangeDetectorRef, ViewChild } from \"@angular/core\";\r\n\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport _ from 'lodash';\r\n\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\nimport { DisplaySetupService } from 'projects/shared-lib/src/lib/services/display-setup.service';\r\nimport { GseService } from 'projects/shared-lib/src/lib/services/gse.service';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\n\r\n\r\n\r\n@Component({\r\n selector: \"locate-all-gse\",\r\n templateUrl: \"./locate-all-gse.component.html\",\r\n styleUrls: [\"./locate-all-gse.component.scss\"],\r\n})\r\nexport class LocateAllGSEComponent implements AfterViewInit, OnDestroy {\r\n @ViewChild('locateAllGSEChild') locateAllGSEChild: any;\r\n\r\n private route$: any;\r\n public mapDiv: string = \"map\";\r\n\r\n private zoomLevel: number = 18;\r\n public fullScreen: boolean = true;\r\n public mapOptions: any;\r\n private gse: any;\r\n public width: number;\r\n public height: number;\r\n fullDataCache$: BehaviorSubject;\r\n tagGraphSingleModalSubscription: any;\r\n gseIdList = [];\r\n infoWindowContent: string;\r\n intervalId: any;\r\n tagOptions: any[];\r\n markers: Array;\r\n defaultLeftWidth = 20;\r\n defaultRightWidth = 80;\r\n isDataLoading: boolean;\r\n gseFiltered: Array;\r\n\r\n\r\n\r\n constructor(private route: ActivatedRoute, private dataService: DataService, private displaySetup: DisplaySetupService, public dialog: MatDialog, private ref: ChangeDetectorRef, public gseService: GseService, private toastr: ToastrService) {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.isDataLoading = true;\r\n\r\n\r\n }\r\n\r\n\r\n toggleZonesOnMap() {\r\n this.locateAllGSEChild.toggleZonesOnMap();\r\n\r\n\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n Global.User.DebugMode && console.log(\"ngOnDestroy invoked...\");\r\n\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t

        Location of all Ground Support Equipment

        \r\n\r\n \r\n
        \r\n \r\n\r\n
        \r\n\r\n\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n \r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n\r\n
        \r\n","import { Component, OnInit, OnDestroy, NgZone } from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { AuthenticationService } from 'projects/shared-lib/src/lib/services/authentication.service';\r\nimport { CacheUtilityService } from 'projects/shared-lib/src/lib/services/cache-utility.service';\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\nimport { SecurityService } from 'projects/shared-lib/src/lib/services/security.service';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\n\r\nimport { filter } from 'rxjs/operators';\r\n\r\n\r\nimport swal from \"sweetalert2\";\r\nimport { IGlobal } from 'projects/shared-lib/src/lib/_models/global.model';\r\n\r\n@Component({\r\n\tselector: 'forgot-password',\r\n\ttemplateUrl: './forgot-password.component.html',\r\n\tstyleUrls: ['./forgot-password.component.scss'],\r\n})\r\nexport class ForgotPasswordComponent implements OnInit, OnDestroy {\r\n\tpublic global: IGlobal = Global;\r\n\r\n\tpublic resetPasswordForm: FormGroup;\r\n\tprivate newPassword: FormControl = null;\r\n\tprivate newPasswordConfirmation: FormControl = null;\r\n\tpublic passwordsMatch: boolean = false;\r\n\tpublic url: string = window.origin;\r\n\tprivate authenticationSubscription$: any;\r\n\tprivate activatedRoute$: any;\r\n\tprivate currentUserIsBeingAuthenticated: boolean = false;\r\n\tprivate loginProcessLoading: boolean = false;\r\n\tprivate currentUserIsLoggedIn: boolean = false;\r\n\r\n\tmouseoverLogin = false;\r\n\tpublic deviceWidth: number;\r\n\r\n\tprivate passwordToken: string;\r\n\r\n\tconstructor(\r\n\t\tprivate activatedRoute: ActivatedRoute,\r\n\t\tprivate router: Router,\r\n\t\tprivate dataService: DataService,\r\n\t\tprivate authenticationService: AuthenticationService,\r\n\t\tprivate zone: NgZone,\r\n\t\tprivate cacheUtilityService: CacheUtilityService,\r\n\t\tprivate securityService: SecurityService\r\n\t) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.passwordToken = this.activatedRoute.snapshot.paramMap.get('pwt');\r\n\t\t// if (this.passwordToken == undefined) {\r\n\t\t// this.activatedRoute$ = this.activatedRoute.params.subscribe((params) => {\r\n\t\t// this.passwordToken = params[\"pwt\"];\r\n\t\t// });\r\n\t\t// }\r\n\r\n\t\tconsole.log(\r\n\t\t\t'ForgotPasswordComponent: this.passwordToken = ' +\r\n\t\t\t\tthis.passwordToken\r\n\t\t);\r\n\t\tthis.newPassword = new FormControl('', Validators.required);\r\n\t\tthis.newPasswordConfirmation = new FormControl('', Validators.required);\r\n\t\tthis.resetPasswordForm = new FormGroup({\r\n\t\t\tnewPassword: this.newPassword,\r\n\t\t\tnewPasswordConfirmation: this.newPasswordConfirmation,\r\n\t\t});\r\n\t\tthis.setupResetPasswordForm();\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tGlobal.User.DebugMode && console.log('ngOnDestroy invoked...');\r\n\t\tthis.removeResetPasswordForm();\r\n\t\tthis.authenticationSubscription$ &&\r\n\t\t\tthis.authenticationSubscription$.unsubscribe();\r\n\t\tthis.activatedRoute$ && this.activatedRoute$.unsubscribe();\r\n\t}\r\n\r\n\tsetupResetPasswordForm() {\r\n\t\tconst body = document.getElementsByTagName('body')[0];\r\n\t\tbody.classList.add('login-page');\r\n\t}\r\n\r\n\tremoveResetPasswordForm() {\r\n\t\tconst body = document.getElementsByTagName('body')[0];\r\n\t\tbody.classList.remove('login-page');\r\n\t}\r\n\r\n\tvalidateNewPassword() {\r\n\t\treturn this.newPassword.valid || this.newPassword.untouched;\r\n\t}\r\n\r\n\tvalidateNewPasswordConfirmation() {\r\n\t\tthis.passwordsMatch =\r\n\t\t\tthis.newPassword.value == this.newPasswordConfirmation.value;\r\n\t\treturn (\r\n\t\t\tthis.newPasswordConfirmation.valid ||\r\n\t\t\tthis.newPasswordConfirmation.untouched\r\n\t\t);\r\n\t}\r\n\r\n\tresetPassword(formValues: any) {\r\n\t\tconsole.log('formValues = %O', formValues);\r\n\t\tthis.dataService\r\n\t\t\t.ChangePassword(this.passwordToken, formValues.newPassword)\r\n\t\t\t.then((data: any) => {\r\n\t\t\t\tconsole.log('ChangePassword: data = %O', data);\r\n\t\t\t\tvar userRecord = data.body.first();\r\n\t\t\t\tthis.sendAlertToUser(userRecord.Email);\r\n\t\t\t\tconsole.log(\r\n\t\t\t\t\t'username = ' +\r\n\t\t\t\t\t\tuserRecord.username +\r\n\t\t\t\t\t\t', password = ' +\r\n\t\t\t\t\t\tformValues.newPassword\r\n\t\t\t\t);\r\n\t\t\t\tvar time0 = performance.now();\r\n\t\t\t\tthis.authenticationService\r\n\t\t\t\t\t.loginWithUsernameAndPassword(\r\n\t\t\t\t\t\tuserRecord.Username,\r\n\t\t\t\t\t\tformValues.newPassword\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.then(\r\n\t\t\t\t\t\t(accessToken: any) => {\r\n\t\t\t\t\t\t\tvar time = performance.now() - time0;\r\n\t\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\t\t\"time for webAPI to authenticate user = \" + time\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t//console.log(\"user.Id = \" + user.Id);\r\n\t\t\t\t\t\t\tconsole.log(\"user access token = \" + accessToken);\r\n\t\t\t\t\t\t\tif (!accessToken) {\r\n\t\t\t\t\t\t\t\t// -- login was invalid, so fire error about incorrect username / password.\r\n\t\t\t\t\t\t\t\tthis.invalidPasswordAlert();\r\n\t\t\t\t\t\t\t\tthis.currentUserIsBeingAuthenticated = false;\r\n\t\t\t\t\t\t\t\tthis.loginProcessLoading = false;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tthis.currentUserIsLoggedIn = true;\r\n\t\t\t\t\t\t\t\t// --login was valid, so navigate to the main layout.\r\n\t\t\t\t\t\t\t\tthis.securityService.processLoggedInUser(\r\n\t\t\t\t\t\t\t\t\taccessToken\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t(err: Error) => {\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\t\t\t`user was not authorized. Error: ${err.message}`\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t});\r\n\t}\r\n\r\n\tsendAlertToUser(email: string) {\r\n\t\tswal.fire({\r\n\t\t\ttitle: 'Password Change',\r\n\t\t\tposition: 'center',\r\n\t\t\thtml: 'Your iOPS password has been changed.',\r\n\t\t});\r\n\t}\r\n\r\n\tinvalidPasswordAlert() {\r\n\t\tswal.fire({\r\n\t\t\ttitle: 'Incorrect',\r\n\r\n\t\t\tposition: 'top',\r\n\t\t\ttext: 'Username or Password is not valid.',\r\n\t\t});\r\n\t}\r\n}\r\n","
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t\"\"[src]=\"global.imagesUrl\r\n\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n
        \r\n","import { Injectable, InjectionToken } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from \"@angular/router\";\r\nimport { SecurityService } from 'projects/shared-lib/src/lib/services/security.service';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\nimport { Observable } from \"rxjs\";\r\n\r\nconst externalUrlProvider = new InjectionToken('externalUrlRedirectResolver');\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AuthGuard {\r\n constructor(private securityService: SecurityService, private router: Router) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\r\n const externalUrl = route.paramMap.get('externalUrl');\r\n if (externalUrl != null) {\r\n try {\r\n //window.open(\"https://www.mlb.com/astros\", '_self');\r\n //document.location.href = externalUrl;\r\n window.open(externalUrl, '_self');\r\n }\r\n catch (error) {\r\n console.log(\"Error going to externalUrl '\" + externalUrl + \"'... Error message: \" + error);\r\n }\r\n }\r\n else {\r\n return this.checkLoggedIn(state.url);\r\n }\r\n }\r\n\r\n checkLoggedIn(url: string): boolean {\r\n if (Global.User.isLoggedIn) {\r\n return true;\r\n }\r\n\r\n if (!Global.passwordToken) {\r\n this.securityService.redirectUrl = url;\r\n this.router.navigate([\"user/login\"]);\r\n return false;\r\n }\r\n else {\r\n return true; //-- allow this user to continue to the forgot-password route. --Kirk T. Sherer, July 30, 2021.\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Inject } from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\n\r\nimport { Router } from \"@angular/router\";\r\nimport swal from \"sweetalert2\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { IGlobal } from \"projects/shared-lib/src/lib/_models/global.model\";\r\nimport { QuestionBase } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-base\";\r\n\r\n@Component({\r\n\tselector: \"registration\",\r\n\ttemplateUrl: \"./registration.component.html\",\r\n\tstyleUrls: [\"./registration.component.scss\"]\r\n})\r\nexport class RegistrationComponent implements OnInit {\r\n\tpublic registrationForm: FormGroup;\r\n\tpublic firstName: FormControl = null;\r\n\tpublic lastName: FormControl = null;\r\n\tpublic emailAddress: FormControl = null;\r\n\tpublic claimedOrganization: FormControl = null;\r\n\tpublic mobilePhone: FormControl = null;\r\n\r\n\tpublic global: IGlobal = Global;\r\n\tpublic dataCache: any;\r\n\r\n\tpublic emailPattern: string = \"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$\";\r\n\tpublic mobilePhonePattern: string = \"^[0-9]*$\"\r\n\tpublic mouseoverRegistration = false;\r\n\tpublic isLoading: boolean = true;\r\n\r\n\tpublic userSettings: any;\r\n\tpublic form: FormGroup;\r\n\tpublic editFields: QuestionBase[];\r\n\tpublic stateAbbreviations: any;\r\n\tpublic formOptions: any;\r\n\tpublic isFormLoading: boolean = true;\r\n\tpublic organizations: any;\r\n\r\n\t//public state: boolean = true;\r\n\tpublic dashboardColor: boolean = true;\r\n\tpublic isCollapsed: boolean = true;\r\n\tpublic darkTheme: boolean = true;\r\n\tpublic lastSliderSelection: boolean = false;\r\n\tpublic darkTheme$: Subject;\r\n\tpublic selectedColor: string = \"dark-blue\";\r\n\tpublic sidebarMini: boolean = false;\r\n\r\n\tconstructor(private dataService: DataService, private router: Router) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tthis.firstName = new FormControl(\"\", [Validators.required, this.noWhitespaceValidator]);\r\n\t\tthis.lastName = new FormControl(\"\", [Validators.required, this.noWhitespaceValidator]);\r\n\t\tthis.emailAddress = new FormControl(\"\", [Validators.required, this.noWhitespaceValidator, Validators.pattern(this.emailPattern)]);\r\n\t\tthis.claimedOrganization = new FormControl(\"\", [Validators.required, this.noWhitespaceValidator]);\r\n\t\tthis.mobilePhone = new FormControl(\"\", [Validators.required, this.noWhitespaceValidator, Validators.pattern(this.mobilePhonePattern)]);\r\n\t\tthis.setUpForm();\r\n\t}\r\n\r\n\tsetUpForm() {\r\n\t\tthis.registrationForm = new FormGroup({\r\n\t\t\tfirstName: this.firstName,\r\n\t\t\tlastName: this.lastName,\r\n\t\t\temailAddress: this.emailAddress,\r\n\t\t\tclaimedOrganization: this.claimedOrganization,\r\n\t\t\tmobilePhone: this.mobilePhone\r\n\t\t});\r\n\r\n\t\tthis.isLoading = false;\r\n\t}\r\n\r\n\tpublic noWhitespaceValidator(control: FormControl) {\r\n\t\treturn (control.value || '').trim().length ? null : { 'whitespace': true }; \r\n\t}\r\n\r\n\tregister(values: any) {\r\n\t\tGlobal.User.isRequestingAccount = true;\r\n\t\tconsole.log(\"registrationFormValues: %O\", values);\r\n\t\tif (values.firstName != null && values.firstName != \"\" && values.lastName != null && values.lastName != \"\" && values.emailAddress != null && values.emailAddress != \"\" ) {\r\n\t\t\tvar paramString = \"@FirstName='\" + values.firstName.trim() + \"', @LastName='\" + values.lastName.trim() + \"', @EmailAddress='\" + values.emailAddress + \"'\";\r\n\t\t\tif (values.claimedOrganization) {\r\n\t\t\t\tparamString += \", @ClaimedOrganization='\" + values.claimedOrganization.trim() + \"'\";\r\n\t\t\t}\r\n\t\t\tif (values.mobilePhone) {\r\n\t\t\t\tparamString += \", @MobilePhone='\" + values.mobilePhone.trim() + \"'\";\r\n\t\t\t}\r\n\t\t\tconsole.log(\"paramString: %O\", paramString);\r\n\t\t\tthis.dataService.RequestUserAccount(paramString).then((data: any) => {\r\n\t\t\t\tif (data) {\r\n\t\t\t\t\tconsole.log(\"dataService.RequestUserAccount: data.body = %O\", data.body);\r\n\t\t\t\t\tthis.sendNotificationToUser();\r\n\t\t\t\t\tthis.router.navigate([\"/login\"]);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\t//-- user got around the form requirements to enter something for the first name, last name, and email address, so just send them back to the login screen. --Kirk T. Sherer, March 19, 2024. \r\n\t\t\tGlobal.User.isRequestingAccount = false;\r\n\t\t\tthis.router.navigate([\"/login\"]);\r\n\t\t}\r\n\t}\r\n\r\n\tvalidateFirstName() {\r\n\t\t//console.log(\"this.firstName = %O\", this.firstName);\r\n\t\treturn this.firstName.valid || this.firstName.untouched;\r\n\t}\r\n\r\n\tvalidateLastName() {\r\n\t\t//console.log(\"this.lastName = %O\", this.lastName);\r\n\t\treturn this.lastName.valid || this.lastName.untouched;\r\n\t}\r\n\r\n\tcheckForEmptyEmailAddress() {\r\n\t\treturn this.emailAddress.untouched;\r\n\t}\r\n\r\n\tvalidateEmailAddress() {\r\n\t\treturn this.emailAddress.valid || this.emailAddress.untouched;\r\n\t}\r\n\r\n\tvalidateOrganization() {\r\n\t\treturn this.claimedOrganization.valid || this.claimedOrganization.untouched;\r\n\t}\r\n\r\n\tvalidateMobilePhone() {\r\n\t\treturn this.mobilePhone.valid || this.mobilePhone.untouched;\r\n\t}\r\n\r\n\tsendNotificationToUser() {\r\n\t\tswal.fire({\r\n\t\t\ttitle: \"Request Sent\",\r\n\r\n\t\t\tposition: \"center\",\r\n\t\t\thtml: \"Your request for an iOPS account has been submitted. Please check your \" + this.emailAddress.value + \" email for further communication about your access.\",\r\n\t\t\tshowCancelButton: false,\r\n\t\t\tconfirmButtonColor: \"#3085d6\",\r\n\t\t\tcancelButtonColor: \"#d33\",\r\n\t\t\tconfirmButtonText: \"Ok\",\r\n\t\t\treverseButtons: false\r\n\t\t}).then((result) => {\r\n\t\t\tGlobal.User.isRequestingAccount = false;\r\n\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t});\r\n\t}\r\n\r\n\tcancel() {\r\n\t\tswal.fire({\r\n\t\t\tposition: \"center\",\r\n\t\t\ttitle: \"Are You Sure?\",\r\n\t\t\thtml: \"Are you sure you wish to cancel your request for an iOPS account?\",\r\n\t\t\tshowCancelButton: true,\r\n\t\t\tconfirmButtonColor: \"#3085d6\",\r\n\t\t\tcancelButtonColor: \"#d33\",\r\n\t\t\tconfirmButtonText: \"Yes\",\r\n\t\t\treverseButtons: false\r\n\t\t}).then((result) => {\r\n\t\t\tif (result.value) {\r\n\t\t\t\tGlobal.User.isRequestingAccount = false;\r\n\t\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\"\"\r\n\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t

        Request Account

        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tPlease provide a valid first name.\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tPlease provide a valid last name.\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tPlease provide your valid email address.\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tPlease provide your valid Organization name.\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tPlease provide a valid mobile number.\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n
        \r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\n\r\n\r\n@Component({\r\n\tselector: \"app-home\",\r\n\ttemplateUrl: \"./home.component.html\",\r\n\tstyleUrls: [\"./home.component.scss\"],\r\n})\r\nexport class HomeComponent implements OnInit {\r\n\tconstructor(private router: Router) {}\r\n\r\n\tngOnInit() {\r\n\t\tconsole.log(\"home page invoked...\");\r\n\t\tconsole.log(\"HomePage: private router: Router injected...\");\r\n\t\tif (!Global.User.isLoggedIn && !Global.User.isBeingAuthenticated) {\r\n\t\t\tconsole.log(\"HomePage: Navigating to /login...\");\r\n\t\t\tthis.router.navigate([\"user/login\"]);\r\n\t\t} else {\r\n\t\t\tif (Global.User.isLoggedIn) {\r\n\t\t\t\tif (Global.User.currentUser.Dashboards) {\r\n\t\t\t\t\tthis.router.navigate([\"layout/dashboard/\" + Global.User.currentUser.Dashboards[0].Id]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tGlobal.CurrentMenuItem = \"Welcome Screen\";\r\n\r\n\t\t\t\t\tthis.router.navigate([\"layout/dashboard-demo\"]); // -- go to demo dashboard since user doesn't have any dashboards yet. --Kirk T. Sherer, February 4, 2020.\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.router.navigate([\"authentication\"]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","let jQuery = require('jquery');\nif (!window.$) {\n window.$ = jQuery;\n}\nif (!window.jQuery) {\n window.jQuery = jQuery;\n}\nif (!window.kendo) {\n window.kendo = require('./telerikReportViewer.kendo.min');\n}","import { Component, Input, ViewEncapsulation, ViewChild } from '@angular/core';\nimport '../dependencies/initExtDeps';\nimport { ReportViewer } from '../dependencies/telerikReportViewer';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nconst _c0 = [\"container\"];\nexport let TelerikReportViewerComponent = /*#__PURE__*/(() => {\n class TelerikReportViewerComponent {\n ngOnInit() {\n this.reportViewerID = this.id || \"reportViewer1\";\n this.keepClientAlive = this.keepClientAlive === undefined ? true : this.keepClientAlive;\n }\n ngAfterViewInit() {\n this.viewerObject = new ReportViewer(this.container.nativeElement, {\n id: this.reportViewerID,\n serviceUrl: this.serviceUrl,\n reportServer: this.reportServer,\n trvTemplateUrl: this.templateUrl,\n initialPageAreaImageUrl: this.initialPageAreaImageUrl,\n reportSource: this.reportSource,\n sendEmail: this.sendEmail,\n scale: this.scale,\n scaleMode: this.scaleMode,\n viewMode: this.viewMode,\n pageMode: this.pageMode,\n parameters: this.parameters,\n persistSession: this.persistSession,\n parameterEditors: this.parameterEditors,\n authenticationToken: this.authenticationToken,\n ready: this.ready,\n printMode: this.printMode,\n selector: this.selector,\n disabledButtonClass: this.disabledButtonClass,\n checkedButtonClass: this.checkedButtonClass,\n exportBegin: this.exportBegin,\n exportEnd: this.exportEnd,\n printBegin: this.printBegin,\n printEnd: this.printEnd,\n renderingBegin: this.renderingBegin,\n renderingEnd: this.renderingEnd,\n sendEmailBegin: this.sendEmailBegin,\n sendEmailEnd: this.sendEmailEnd,\n updateUi: this.updateUi,\n pageReady: this.pageReady,\n error: this.error,\n interactiveActionExecuting: this.interactiveActionExecuting,\n interactiveActionEnter: this.interactiveActionEnter,\n interactiveActionLeave: this.interactiveActionLeave,\n viewerToolTipOpening: this.viewerToolTipOpening,\n enableAccessibility: this.enableAccessibility,\n searchMetadataOnDemand: this.searchMetadataOnDemand,\n parametersAreaVisible: this.parametersAreaVisible,\n documentMapVisible: this.documentMapVisible,\n documentMapAreaPosition: this.documentMapAreaPosition,\n parametersAreaPosition: this.parametersAreaPosition,\n keepClientAlive: this.keepClientAlive\n });\n this.commands = this.viewerObject.commands;\n }\n ngOnDestroy() {\n this.viewerObject.dispose();\n }\n refreshReport() {\n return this.viewerObject.refreshReport();\n }\n getReportSource() {\n return this.viewerObject.reportSource();\n }\n setReportSource(rs) {\n return this.viewerObject.reportSource(rs);\n }\n getViewMode() {\n return this.viewerObject.viewMode();\n }\n setViewMode(vm) {\n return this.viewerObject.viewMode(vm);\n }\n getScale() {\n return this.viewerObject.scale();\n }\n setScale(scale) {\n return this.viewerObject.scale(scale);\n }\n pageCount() {\n return this.viewerObject.pageCount();\n }\n currentPage() {\n return this.viewerObject.currentPage();\n }\n setAuthenticationToken(token) {\n return this.viewerObject.authenticationToken(token);\n }\n getAccessibilityKeyMap() {\n return this.viewerObject.accessibilityKeyMap();\n }\n setAccessibilityKeyMap(keyMap) {\n return this.viewerObject.accessibilityKeyMap(keyMap);\n }\n bind(eventName, eventHandler) {\n this.viewerObject.bind(eventName, eventHandler);\n }\n unbind(eventName, eventHandler) {\n this.viewerObject.unbind(eventName, eventHandler);\n }\n unbindAll(eventName) {\n this.viewerObject.unbind(eventName);\n }\n getPageMode() {\n return this.viewerObject.pageMode();\n }\n setPageMode(psm) {\n return this.viewerObject.pageMode(psm);\n }\n clearReportSource() {\n return this.viewerObject.clearReportSource();\n }\n dispose() {\n this.viewerObject.dispose();\n }\n getReportParameters() {\n return this.viewerObject.getReportParameters();\n }\n }\n TelerikReportViewerComponent.ɵfac = function TelerikReportViewerComponent_Factory(t) {\n return new (t || TelerikReportViewerComponent)();\n };\n TelerikReportViewerComponent.ɵcmp = /*@__PURE__*/i0.ɵɵdefineComponent({\n type: TelerikReportViewerComponent,\n selectors: [[\"tr-viewer\"]],\n viewQuery: function TelerikReportViewerComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first);\n }\n },\n inputs: {\n id: \"id\",\n serviceUrl: \"serviceUrl\",\n reportServer: \"reportServer\",\n templateUrl: \"templateUrl\",\n initialPageAreaImageUrl: \"initialPageAreaImageUrl\",\n reportSource: \"reportSource\",\n sendEmail: \"sendEmail\",\n parameters: \"parameters\",\n scale: \"scale\",\n scaleMode: \"scaleMode\",\n viewMode: \"viewMode\",\n pageMode: \"pageMode\",\n persistSession: \"persistSession\",\n parameterEditors: \"parameterEditors\",\n authenticationToken: \"authenticationToken\",\n printMode: \"printMode\",\n selector: \"selector\",\n disabledButtonClass: \"disabledButtonClass\",\n checkedButtonClass: \"checkedButtonClass\",\n enableAccessibility: \"enableAccessibility\",\n searchMetadataOnDemand: \"searchMetadataOnDemand\",\n parametersAreaVisible: \"parametersAreaVisible\",\n documentMapVisible: \"documentMapVisible\",\n ready: \"ready\",\n error: \"error\",\n parametersAreaPosition: \"parametersAreaPosition\",\n documentMapAreaPosition: \"documentMapAreaPosition\",\n exportBegin: \"exportBegin\",\n exportEnd: \"exportEnd\",\n sendEmailBegin: \"sendEmailBegin\",\n sendEmailEnd: \"sendEmailEnd\",\n pageReady: \"pageReady\",\n printBegin: \"printBegin\",\n printEnd: \"printEnd\",\n renderingBegin: \"renderingBegin\",\n renderingEnd: \"renderingEnd\",\n updateUi: \"updateUi\",\n interactiveActionExecuting: \"interactiveActionExecuting\",\n interactiveActionEnter: \"interactiveActionEnter\",\n interactiveActionLeave: \"interactiveActionLeave\",\n viewerToolTipOpening: \"viewerToolTipOpening\",\n keepClientAlive: \"keepClientAlive\",\n containerStyle: \"containerStyle\"\n },\n decls: 3,\n vars: 2,\n consts: [[3, \"ngStyle\"], [\"container\", \"\"]],\n template: function TelerikReportViewerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0, 1);\n i0.ɵɵtext(2, \"Loading Report Viewer...\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngStyle\", ctx.containerStyle);\n i0.ɵɵattribute(\"id\", ctx.reportViewerID);\n }\n },\n dependencies: [i1.NgStyle],\n encapsulation: 2\n });\n return TelerikReportViewerComponent;\n})();\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TelerikReportViewerComponent } from './telerik-report-viewer.component';\nimport * as i0 from \"@angular/core\";\n/**\n * Represents the [NgModule](https://angular.io/docs/ts/latest/guide/ngmodule.html)\n * definition for the Telerik Report Viewer component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Grid module\n * import { TelerikReportingModule } from './telerik-reporting/telerik-reporting.module';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * @@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, TelerikReportingModule], // import Grid module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * ```\n */\nexport let TelerikReportingModule = /*#__PURE__*/(() => {\n class TelerikReportingModule {}\n TelerikReportingModule.ɵfac = function TelerikReportingModule_Factory(t) {\n return new (t || TelerikReportingModule)();\n };\n TelerikReportingModule.ɵmod = /*@__PURE__*/i0.ɵɵdefineNgModule({\n type: TelerikReportingModule\n });\n TelerikReportingModule.ɵinj = /*@__PURE__*/i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n return TelerikReportingModule;\n})();\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(TelerikReportingModule, {\n declarations: [TelerikReportViewerComponent],\n imports: [CommonModule],\n exports: [TelerikReportViewerComponent]\n });\n})();\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { tap } from \"rxjs/operators\";\r\n\r\nimport { process, State, CompositeFilterDescriptor, distinct, GroupDescriptor } from \"@progress/kendo-data-query\";\r\n\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\nimport { IGlobal } from 'projects/shared-lib/src/lib/_models/global.model';\r\n\r\n\r\n@Component({\r\n selector: \"app-customer-reports\",\r\n templateUrl: \"./customer-reports.component.html\",\r\n styleUrls: [\"./customer-reports.component.scss\"],\r\n})\r\nexport class CustomerReportsComponent implements OnInit {\r\n customerReportsLoading = true;\r\n viewerContainerStyle = {\r\n position: \"relative\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n [\"font-family\"]: \"ms sans serif\",\r\n };\r\n public global: IGlobal = Global;\r\n authenticationToken: string;\r\n categories: any;\r\n reports: any;\r\n public gridViewReports: any;\r\n public state: State = { skip: 0 };\r\n public reportsState: State = { skip: 0 };\r\n public viewReportsList: boolean = true;\r\n public displayReport: boolean = false;\r\n public reportSourceObject: any;\r\n public groups: GroupDescriptor[] = [{ field: \"CategoryName\" }];\r\n currentReportName: string;\r\n public userReportCategories: any;\r\n\r\n constructor(private http: HttpClient, private dataService: DataService) { }\r\n\r\n execute(report) {\r\n this.currentReportName = report.CategoryName + \"/\" + report.Name;\r\n this.reportSourceObject = {\r\n report: report.CategoryName + \"/\" + report.Name,\r\n parameters: {\r\n accessToken: this.global.User.currentUser.ODataAccessToken,\r\n },\r\n };\r\n console.log(report);\r\n this.viewReportsList = false;\r\n this.displayReport = true;\r\n }\r\n\r\n reportList(refresh?: boolean) {\r\n //console.log(\"going back to reports list...\");\r\n this.viewReportsList = true;\r\n\r\n this.displayReport = false;\r\n }\r\n\r\n ngOnInit() {\r\n let httpHeaders = new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"\",\r\n });\r\n let httpOptions = {\r\n headers: httpHeaders,\r\n observe: \"response\" as \"response\",\r\n reponseType: \"json\",\r\n withCredentials: false,\r\n };\r\n const http$ = this.http\r\n .post(\"https://stage.reporting.iopspro.com/Token\", \"grant_type=password&username=iops-application&password=d19476A9331BCA9C326E6F607651A240CD4DC0CDFD9BF5B29E43A3A4D31D0A6A!\", httpOptions)\r\n .toPromise()\r\n .then((data: any) => {\r\n let httpGetHeaders = new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"Bearer \" + data.body.access_token,\r\n });\r\n this.authenticationToken = data.body.access_token;\r\n let httpGetOptions = {\r\n headers: httpGetHeaders,\r\n observe: \"response\" as \"response\",\r\n reponseType: \"json\",\r\n withCredentials: false,\r\n };\r\n console.log(data);\r\n this.http\r\n .get(\"https://stage.reporting.iopspro.com/api/reportserver/v2/categories\", httpGetOptions)\r\n .toPromise()\r\n .then((data: any) => {\r\n let categories: any = data.body;\r\n console.log(categories);\r\n this.categories = categories;\r\n let statement = \"API.GetUserReportCategories @Username = '\" + this.global.User.currentUser.Username + \"'\";\r\n this.dataService.SQLActionAsPromise(statement).then((data: any) => {\r\n console.log(data);\r\n\r\n this.userReportCategories = [];\r\n data.forEach((category) => {\r\n this.userReportCategories.push(category.Name);\r\n });\r\n\r\n this.http\r\n .get(\"https://stage.reporting.iopspro.com/api/reportserver/v2/reports\", httpGetOptions)\r\n .toPromise()\r\n .then((data: any) => {\r\n this.reports = data.body;\r\n\r\n this.reports.forEach((report) => {\r\n report.CategoryName = this.categories.find((category) => category.Id === report.CategoryId).Name;\r\n });\r\n\r\n this.reports = this.reports.filter((report) => {\r\n return this.userReportCategories.indexOf(report.CategoryName) != -1;\r\n });\r\n this.customerReportsLoading = false;\r\n this.gridViewReports = process(this.reports, { group: this.groups });\r\n });\r\n });\r\n });\r\n });\r\n }\r\n}\r\n","
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t

        Reports

        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t

        Note: Data source for reports is from production, your application is looking to test. Reports generated here and compared to test data may not match as test data doesn't always match prod data.

        \r\n\t\t\t\t\t\t
        \r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t

        \r\n\t\t\t\t\t\t\t{{ currentReportName }}\r\n\t\t\t\t\t\t

        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\r\n
        \r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup, FormControl } from \"@angular/forms\";\r\n\r\nimport { QuestionBase } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-base\";\r\nimport { SiteQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-site\";\r\nimport { DateQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-date\";\r\nimport { NumberQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-number\";\r\nimport { TextboxQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-textbox\";\r\nimport { DropdownQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-dropdown\";\r\nimport { ReadOnlyQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-read-only\";\r\nimport moment from \"moment\";\r\nimport swal from \"sweetalert2\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { GridDataResult, PageChangeEvent } from \"@progress/kendo-angular-grid\";\r\nimport { process, State, CompositeFilterDescriptor, distinct } from \"@progress/kendo-data-query\";\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { UtilityService } from \"projects/shared-lib/src/lib/services/utility.service\";\r\nimport { UibButtonQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-uib-button\";\r\n\r\n@Component({\r\n\tselector: \"app-admin-reports\",\r\n\ttemplateUrl: \"./admin-reports.component.html\",\r\n\tstyleUrls: [\"./admin-reports.component.scss\"]\r\n})\r\nexport class AdminReportsComponent implements OnInit {\r\n\t@ViewChild(MatSort, { static: false }) sort: MatSort;\r\n\r\n\tpublic reports: any;\r\n\tpublic viewReportsList: boolean = true;\r\n\tpublic editingReport: boolean = false;\r\n\tpublic enterExecuteParameters: boolean = false;\r\n\tpublic executingReport: boolean = false;\r\n\tpublic deletingReport: boolean = false;\r\n\tpublic displayReport: boolean = false;\r\n\r\n\tpublic parameterList: any;\r\n\tpublic permittedSites: any = Global.User.PermittedSites;\r\n\tpublic selectedReport: any;\r\n\tpublic today: Date = new Date();\r\n\tpublic yesterday: Date;\r\n\tpublic selectedSite: any;\r\n\tpublic selectedStoredProcedure: any;\r\n\tpublic storedProcedureList: any;\r\n\tpublic settings: any;\r\n\tpublic editForm: FormBuilder;\r\n\tpublic editReportFormGroup: FormGroup;\r\n\tpublic executeReportFormGroup: FormGroup;\r\n\r\n\tpublic newStoredProceduresExist: boolean = true;\r\n\tpublic addingNewReport: boolean = false;\r\n\tpublic loadingEditForm: boolean = false;\r\n\tpublic isLoadingParameters: boolean = false;\r\n\r\n\tpublic reportData: any;\r\n\tpublic reportHeader: any;\r\n\tprivate parameterListAsString: string = \"\";\r\n\tpublic isLoading: boolean = true;\r\n\tpublic parameterCount: number = 0;\r\n\r\n\tpublic payLoad: string = \"\";\r\n\tpublic executeFieldsAndValues: Array;\r\n\tpublic editFieldsAndValues: Array;\r\n\r\n\tpublic editQuestions: QuestionBase[];\r\n\tpublic parameterQuestions: QuestionBase[];\r\n\tpublic editFormOptions: any;\r\n\tpublic executeFormOptions: any;\r\n\r\n\tprivate swalWithBootstrapButtons: any;\r\n\tpublic editHeader: string;\r\n\tpublic editSubHeader: string;\r\n\t//Material table Properties\r\n\tpublic dataSource: MatTableDataSource;\r\n\t//Kendo UI properties\r\n\tpublic skip = 0;\r\n\tpublic reportsSkip = 0;\r\n\tpublic gridView: GridDataResult;\r\n\tpublic gridViewReports: any;\r\n\tpublic filterT: CompositeFilterDescriptor;\r\n\r\n\tpublic pageSize = 100;\r\n\r\n\tpublic pageSizeReports = 100;\r\n\tpublic displayedColumns: string[];\r\n\tpublic filteredGridData: any;\r\n\r\n\tpublic state: State = { skip: 0 };\r\n\tpublic reportsState: State = { skip: 0 };\r\n\r\n\tconstructor(private dataService: DataService, public formBuilder: FormBuilder, private toastr: ToastrService, private utilityService: UtilityService) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.yesterday = this.getYesterdaysDate();\r\n\r\n\t\tconsole.log(\"this.today = \" + this.today + \", this.yesterday = \" + this.getYesterdaysDate());\r\n\r\n\t\tthis.dataService.SQLActionAsPromise(\"URPT.GetListOfReportDefinitions\").then((data: any) => {\r\n\t\t\tthis.reports = data;\r\n\r\n\t\t\tthis.gridViewReports = process(this.reports, this.reportsState);\r\n\t\t\tconsole.log(\"this.reports = %O\", this.reports);\r\n\t\t\tthis.isLoading = false;\r\n\t\t});\r\n\r\n\t\tthis.editReportFormGroup = new FormGroup({\r\n\t\t\tstoredProcedure: new FormControl()\r\n\t\t});\r\n\t}\r\n\r\n\tpublic distinctPrimitive(fieldName: string): any {\r\n\t\treturn distinct(this.reports, fieldName).map((item) => item[fieldName]);\r\n\t}\r\n\r\n\tpublic pageChange(event: PageChangeEvent): void {\r\n\t\tthis.skip = event.skip;\r\n\t\tthis.state.skip = event.skip;\r\n\t\tthis.state.take = event.take;\r\n\t\tthis.gridView = process(this.reportData, this.state);\r\n\t}\r\n\r\n\tpublic pageChangeReports(event: PageChangeEvent): void {\r\n\t\tthis.reportsSkip = event.skip;\r\n\t\tthis.reportsState.skip = event.skip;\r\n\t\tthis.reportsState.take = event.take;\r\n\t\tthis.gridViewReports = process(this.reports, this.reportsState);\r\n\t}\r\n\r\n\tpublic filterChangeReports(filter: CompositeFilterDescriptor): void {\r\n\t\tthis.filterT = filter;\r\n\t\tthis.reportsState.filter = filter;\r\n\t\tthis.gridViewReports = process(this.reports, this.reportsState);\r\n\t}\r\n\r\n\tpublic filterChange(filter: CompositeFilterDescriptor): void {\r\n\t\tthis.state.filter = filter;\r\n\t\tthis.gridView = process(this.reportData, this.state);\r\n\t}\r\n\r\n\tpublic sortChange(sort: any): void {\r\n\t\tthis.state.sort = sort;\r\n\t\tthis.gridView = process(this.reportData, this.state);\r\n\t}\r\n\r\n\tpublic sortChangeReports(sort: any): void {\r\n\t\tthis.reportsState.sort = sort;\r\n\t\tthis.gridViewReports = process(this.reports, this.reportsState);\r\n\t}\r\n\r\n\tgetYesterdaysDate() {\r\n\t\tvar days = 1; // Days you want to subtract\r\n\t\tvar date = new Date();\r\n\t\tvar last = new Date(date.getTime() - days * 24 * 60 * 60 * 1000);\r\n\t\treturn last;\r\n\t}\r\n\r\n\tgetLatestReportsList() {\r\n\t\tthis.dataService.SQLActionAsPromise(\"URPT.GetListOfReportDefinitions\").then((data: any) => {\r\n\t\t\tthis.reports = data.then;\r\n\t\t\tconsole.log(\"this.reports = %O\", this.reports);\r\n\t\t\tthis.isLoading = false;\r\n\t\t});\r\n\t}\r\n\r\n\tedit(report?: any) {\r\n\t\tthis.viewReportsList = false;\r\n\t\tthis.editingReport = true;\r\n\t\tthis.executingReport = false;\r\n\t\tthis.displayReport = false;\r\n\r\n\t\tthis.loadingEditForm = true;\r\n\t\tthis.addingNewReport = false;\r\n\r\n\t\tthis.editFieldsAndValues = [];\r\n\r\n\t\tthis.editFormOptions = {\r\n\t\t\tsubmitButtonText: \"Save Report\",\r\n\t\t\tcancelButtonText: \"Cancel\"\r\n\t\t};\r\n\r\n\t\tif (!report) {\r\n\t\t\tthis.editHeader = \"Add New Report\";\r\n\t\t\tthis.editSubHeader = \"Please edit the fields listed here for your new report.\";\r\n\t\t\tconsole.log(\"adding new report...\");\r\n\t\t\tthis.selectedReport = null;\r\n\t\t\tthis.addingNewReport = true;\r\n\t\t\t//-- only get the stored procedures that don't currently have a report definition (hence the reason for 'true' as a parameter value when getting the list of stored procedures.) Will display a message if none exist. --Kirk T. Sherer, March 30, 2020.\r\n\r\n\t\t\tthis.dataService.SQLActionAsPromise(\"URPT.ListOfAllStoredProcedures @WithoutReportDefinition=1\").then((data: any) => {\r\n\t\t\t\tconsole.log(\"stored procedures: %O\", data);\r\n\t\t\t\tif (data.length != 0) {\r\n\t\t\t\t\tthis.storedProcedureList = data;\r\n\t\t\t\t\tthis.newStoredProceduresExist = true;\r\n\t\t\t\t\t//-- build out the options list for the dynamic form.\r\n\t\t\t\t\tvar optionsList = [];\r\n\t\t\t\t\tdata.forEach((sp: any) => {\r\n\t\t\t\t\t\tvar obj: any = {};\r\n\t\t\t\t\t\tobj.key = sp.ObjectId;\r\n\t\t\t\t\t\tobj.value = sp.Name;\r\n\t\t\t\t\t\toptionsList.push(obj);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tconsole.log(\"optionsList = %O\", optionsList);\r\n\t\t\t\t\t//-- create the dropdown question structure for the stored procedure.\r\n\t\t\t\t\tvar field = new DropdownQuestion({\r\n\t\t\t\t\t\tkey: \"storedProcedure\",\r\n\t\t\t\t\t\tlabel: \"Stored Procedure Name\",\r\n\t\t\t\t\t\toptions: optionsList,\r\n\t\t\t\t\t\torder: 1\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tthis.editFieldsAndValues.push(field);\r\n\r\n\t\t\t\t\tconsole.log(\"this.editFieldsAndValues = %O\", this.editFieldsAndValues);\r\n\t\t\t\t\tthis.editQuestions = this.editFieldsAndValues;\r\n\t\t\t\t\tthis.parameterList = data;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.newStoredProceduresExist = false;\r\n\t\t\t\t\tthis.storedProcedureList = null;\r\n\t\t\t\t}\r\n\t\t\t\tthis.loadingEditForm = false;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.editHeader = \"Edit Report: \";\r\n\t\t\tthis.editSubHeader = \"Please edit the fields listed here for this specific report.\";\r\n\t\t\tconsole.log(\"editing report...%O\", report);\r\n\t\t\tthis.selectedReport = report;\r\n\t\t\tthis.dataService.SQLActionAsPromise(\"URPT.ListOfAllStoredProcedures \" + \"\").then((data: any) => {\r\n\t\t\t\tconsole.log(\"stored procedures: %O\", data);\r\n\t\t\t\tif (data.length != 0) {\r\n\t\t\t\t\tthis.selectedStoredProcedure = this.selectedReport && data.first((d: any) => d.ObjectId == this.selectedReport.ObjectId);\r\n\t\t\t\t\tthis.storedProcedureList = data;\r\n\t\t\t\t\t//-- build out the options list for the dynamic form.\r\n\t\t\t\t\tvar optionsList = [];\r\n\t\t\t\t\tdata.forEach((sp: any) => {\r\n\t\t\t\t\t\tvar obj: any = {};\r\n\t\t\t\t\t\tobj.key = sp.ObjectId;\r\n\t\t\t\t\t\tobj.value = sp.Name;\r\n\t\t\t\t\t\toptionsList.push(obj);\r\n\t\t\t\t\t});\r\n\t\t\t\t\t//-- create the dropdown question structure for the stored procedure.\r\n\t\t\t\t\tvar field = new DropdownQuestion({\r\n\t\t\t\t\t\tkey: \"storedProcedure\",\r\n\t\t\t\t\t\tlabel: \"Stored Procedure Name\",\r\n\t\t\t\t\t\tselected: this.selectedReport.ObjectId,\r\n\t\t\t\t\t\toptions: optionsList,\r\n\t\t\t\t\t\torder: 1\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.editFieldsAndValues.push(field);\r\n\r\n\t\t\t\t\t//-- now build out the read-only fields so they will also show up on the edit form. --Kirk T. Sherer, April 8, 2020.\r\n\t\t\t\t\tif (this.selectedReport) {\r\n\t\t\t\t\t\tvar category = new ReadOnlyQuestion({\r\n\t\t\t\t\t\t\tkey: \"category\",\r\n\t\t\t\t\t\t\tlabel: \"Category\",\r\n\t\t\t\t\t\t\tvalue: this.selectedReport.Category,\r\n\t\t\t\t\t\t\torder: 2\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tthis.editFieldsAndValues.push(category);\r\n\r\n\t\t\t\t\t\tvar reportName = new ReadOnlyQuestion({\r\n\t\t\t\t\t\t\tkey: \"reportName\",\r\n\t\t\t\t\t\t\tlabel: \"Report Name\",\r\n\t\t\t\t\t\t\tvalue: this.selectedReport.ReportName,\r\n\t\t\t\t\t\t\torder: 3\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tthis.editFieldsAndValues.push(reportName);\r\n\r\n\t\t\t\t\t\tvar createdBy = new ReadOnlyQuestion({\r\n\t\t\t\t\t\t\tkey: \"createdBy\",\r\n\t\t\t\t\t\t\tlabel: \"Created By\",\r\n\t\t\t\t\t\t\tvalue: this.selectedReport.CreatedBy + \" - \" + moment(this.selectedReport.CreationDate).format(\"MM/DD/YYYY hh:mm A\"),\r\n\t\t\t\t\t\t\torder: 4\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tthis.editFieldsAndValues.push(createdBy);\r\n\r\n\t\t\t\t\t\tvar lastModifiedBy = new ReadOnlyQuestion({\r\n\t\t\t\t\t\t\tkey: \"lastModifiedBy\",\r\n\t\t\t\t\t\t\tlabel: \"Last Modified By\",\r\n\t\t\t\t\t\t\tvalue: this.selectedReport.LastModifiedBy + \" - \" + moment(this.selectedReport.LastModifiedDate).format(\"MM/DD/YYYY hh:mm A\"),\r\n\t\t\t\t\t\t\torder: 5\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tthis.editFieldsAndValues.push(lastModifiedBy);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconsole.log(\"this.editFieldsAndValues = %O\", this.editFieldsAndValues);\r\n\t\t\t\t\tthis.editQuestions = this.editFieldsAndValues;\r\n\t\t\t\t\tthis.loadingEditForm = false;\r\n\t\t\t\t\tthis.parameterList = data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tsubmitEditedReport(submittedValues: string) {\r\n\t\tconsole.log(\"edited report change submitted...\");\r\n\t\tvar submittedValuesObject = JSON.parse(submittedValues);\r\n\t\t//console.log(\"submittedValuesObject = %O\", submittedValuesObject);\r\n\t\t// console.log(\"Object.keys(submittedValuesObject) = %O\", Object.keys(submittedValuesObject));\r\n\t\tvar keys: Array = Object.keys(submittedValuesObject);\r\n\r\n\t\t//-- building a parameter list to attach to the end of the stored procedure to execute it. --Kirk T. Sherer, April 7, 2020.\r\n\t\tthis.parameterListAsString = \"\";\r\n\t\tvar countOfParameters = 1;\r\n\t\tkeys.forEach((key: any) => {\r\n\t\t\tvar questions = this.editQuestions;\r\n\t\t\tquestions.forEach((question: any) => {\r\n\t\t\t\tif (key == question.key && question.controlType != \"read-only\") {\r\n\t\t\t\t\tvar value = submittedValuesObject[key];\r\n\t\t\t\t\tconsole.log(\"key: \" + key + \", value: \" + value);\r\n\t\t\t\t\tthis.parameterListAsString += key + \"=\";\r\n\t\t\t\t\tif (isNaN(submittedValuesObject[key])) {\r\n\t\t\t\t\t\tthis.parameterListAsString += \"'\" + value + \"'\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.parameterListAsString += value;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (countOfParameters < keys.length) {\r\n\t\t\t\t\t\tthis.parameterListAsString += \", \";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcountOfParameters++;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconsole.log(\"this.parameterListAsString = \" + this.parameterListAsString);\r\n\t\tvar newParameterListAsString = this.parameterListAsString.replace(\"storedProcedure\", \"@ObjectId\");\r\n\t\tnewParameterListAsString += \",@UserId=\" + Global.User.currentUser.Id;\r\n\t\tnewParameterListAsString = newParameterListAsString.replace(\", ,\", \",\");\r\n\r\n\t\tconsole.log(\"newParameterListAsString = \" + newParameterListAsString);\r\n\t\tthis.dataService.SQLActionAsPromise(\"URPT.AddOrUpdateReportDefinition \" + newParameterListAsString).then((data: any) => {\r\n\t\t\tconsole.log(\"data = %O\", data);\r\n\t\t\tthis.reportList(true); //-- return back to the report list after inserting/updating the report.\r\n\t\t});\r\n\t}\r\n\tdelete(report: any) {\r\n\t\tthis.swalWithBootstrapButtons = swal.mixin({\r\n\t\t\tcustomClass: {\r\n\t\t\t\tconfirmButton: \"btn btn-danger\",\r\n\t\t\t\tcancelButton: \"btn btn-success\"\r\n\t\t\t},\r\n\t\t\tbuttonsStyling: false\r\n\t\t});\r\n\t\tconsole.log(\"Marking \" + report.ObjectId + \" report for deletion...\");\r\n\t\tconsole.log(\"report = %O\", report);\r\n\r\n\t\tthis.swalWithBootstrapButtons\r\n\t\t\t.fire({\r\n\t\t\t\ttitle: \"Are you sure?\",\r\n\t\t\t\ttext: \"You are trying to delete the '\" + report.ReportName + \"' report. Cancel if you would rather keep it.\",\r\n\t\t\t\tshowCancelButton: true,\r\n\t\t\t\tconfirmButtonText: \"Delete Report\",\r\n\t\t\t\tcancelButtonText: \"Cancel\",\r\n\t\t\t\treverseButtons: false\r\n\t\t\t})\r\n\t\t\t.then((result: any) => {\r\n\t\t\t\tif (result.value) {\r\n\t\t\t\t\t// logic for deleting dashboard goes here.\r\n\t\t\t\t\tthis.dataService.SQLActionAsPromise(\"URPT.MarkReportForDeletion \" + report.Id + \", @UserId=\" + Global.User.currentUser.Id).then((data: any) => {\r\n\t\t\t\t\t\tconsole.log(\"data = %O\", data);\r\n\t\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\t\tmessage: \"'\" + report.ReportName + \"' has been DELETED.\",\r\n\t\t\t\t\t\t\ttitle: \"Universal Reporting\"\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t// this.toastr.info(\"'\" + report.ReportName + \"' has been DELETED.\", \"Universal Reporting\");\r\n\t\t\t\t\t\tthis.reportList(true); //-- go get list of reports again.\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\tmessage: \"'\" + report.ReportName + \"' has NOT been deleted.\",\r\n\t\t\t\t\t\ttitle: \"Universal Reporting\"\r\n\t\t\t\t\t});\r\n\t\t\t\t\t// this.toastr.info(\"'\" + report.ReportName + \"' has NOT been deleted.\", \"Universal Reporting\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\texecute(report: any) {\r\n\t\tconsole.log(\"executing \" + report.ObjectId + \" report...\");\r\n\t\tthis.editingReport = false;\r\n\t\tthis.displayReport = false;\r\n\t\tthis.executingReport = true;\r\n\t\tthis.isLoadingParameters = true;\r\n\t\tthis.reportData = null;\r\n\t\tthis.reportHeader = null;\r\n\r\n\t\tthis.selectedReport = report;\r\n\t\tconsole.log(\"report.ObjectId = \" + report.ObjectId);\r\n\t\tthis.dataService.SQLActionAsPromise(\"URPT.GetReportListOfParameters \" + report.ObjectId).then((data: any) => {\r\n\t\t\tconsole.log(\"report parameters: %O\", data);\r\n\t\t\tthis.parameterList = data;\r\n\t\t\tif (data.length != 0) {\r\n\t\t\t\tconsole.log(\"display list of parameters. %O\", data);\r\n\t\t\t\tthis.executeFieldsAndValues = [];\r\n\t\t\t\tlet questions: QuestionBase[] = [];\r\n\r\n\t\t\t\tdata.forEach((d: any) => {\r\n\t\t\t\t\tvar field: QuestionBase;\r\n\t\t\t\t\tconsole.log(\"d = %O\", d);\r\n\t\t\t\t\tif (d.Name.indexOf(\"Site\") > 0) {\r\n\t\t\t\t\t\tfield =\r\n\t\t\t\t\t\tnew UibButtonQuestion({\r\n\t\t\t\t\t\t\tkey: d.Name,\r\n\t\t\t\t\t\t\tlabel: d.DisplayName,\r\n\t\t\t\t\t\t\ttitle: \"Please select the Site for this report.\",\r\n\t\t\t\t\t\t\tlistOfValues: this.dataService.cache.sites,\r\n\t\t\t\t\t\t\trequired: d.IsRequired,\r\n\t\t\t\t\t\t\torder: 1\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tswitch (d.Type) {\r\n\t\t\t\t\t\t\tcase \"datetime\":\r\n\t\t\t\t\t\t\t\tfield = new DateQuestion({\r\n\t\t\t\t\t\t\t\t\tkey: d.Name,\r\n\t\t\t\t\t\t\t\t\tlabel: d.DisplayName,\r\n\t\t\t\t\t\t\t\t\tvalue: d.DefaultValue,\r\n\t\t\t\t\t\t\t\t\trequired: d.IsRequired,\r\n\t\t\t\t\t\t\t\t\torder: 2\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tcase \"numeric\":\r\n\t\t\t\t\t\t\tcase \"decimal\":\r\n\t\t\t\t\t\t\tcase d.Type.indexOf(\"int\") > 0:\r\n\t\t\t\t\t\t\t\tfield = new NumberQuestion({\r\n\t\t\t\t\t\t\t\t\tkey: d.Name,\r\n\t\t\t\t\t\t\t\t\tlabel: d.DisplayName,\r\n\t\t\t\t\t\t\t\t\tvalue: d.DefaultValue,\r\n\t\t\t\t\t\t\t\t\trequired: d.IsRequired,\r\n\r\n\t\t\t\t\t\t\t\t\torder: 3\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\tfield = new TextboxQuestion({\r\n\t\t\t\t\t\t\t\t\tkey: d.Name,\r\n\t\t\t\t\t\t\t\t\tlabel: d.DisplayName,\r\n\t\t\t\t\t\t\t\t\tvalue: d.DefaultValue == null ? \"\" : d.DefaultValue,\r\n\t\t\t\t\t\t\t\t\trequired: d.IsRequired,\r\n\t\t\t\t\t\t\t\t\torder: 4\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.executeFieldsAndValues.push(field);\r\n\r\n\t\t\t\t\t//var fieldAndValue: any = { Name: d.Name, Value: d.DefaultValue };\r\n\t\t\t\t\t//this.executeFieldsAndValues.push(fieldAndValue);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//console.log(\"this.executeFields = %O\", this.executeFields);\r\n\t\t\t\tconsole.log(\"this.executeFieldsAndValues = %O\", this.executeFieldsAndValues);\r\n\t\t\t\tthis.parameterQuestions = this.executeFieldsAndValues;\r\n\t\t\t\tthis.executeFormOptions = {\r\n\t\t\t\t\tsubmitButtonText: \"Execute Report\",\r\n\t\t\t\t\tcancelButtonText: \"Cancel\"\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.viewReportsList = false;\r\n\t\t\t\tthis.isLoadingParameters = false;\r\n\t\t\t} else {\r\n\t\t\t\t//-- no parameters found for this stored procedure. Just execute the stored procedure.\r\n\r\n\t\t\t\tthis.executingReport = false;\r\n\t\t\t\tthis.viewReportsList = false;\r\n\t\t\t\tthis.isLoadingParameters = false;\r\n\t\t\t\tthis.parameterList = null;\r\n\t\t\t\tthis.parameterListAsString = \"\";\r\n\t\t\t\tconsole.log(\"run stored procedure.\");\r\n\t\t\t\tthis.runStoredProcedure(report);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tsubmitParametersAndExecute(submittedValues: string) {\r\n\t\t//console.log(\"reports.component.ts: submitDynamicForm: submittedValues = %O\", submittedValues);\r\n\t\t// var parameterListAsString = values.replace('{','').replace('}','').replace(/:/g,'=').replace(/\\\"/g,'');\r\n\t\t// console.log(\"reports.component.ts: parameterListAsString = \" + parameterListAsString);\r\n\t\tvar submittedValuesObject = JSON.parse(submittedValues);\r\n\t\t//console.log(\"submittedValuesObject = %O\", submittedValuesObject);\r\n\t\t// console.log(\"Object.keys(submittedValuesObject) = %O\", Object.keys(submittedValuesObject));\r\n\t\tvar keys: Array = Object.keys(submittedValuesObject);\r\n\t\t//-- building a parameter list to attach to the end of the stored procedure to execute it. --Kirk T. Sherer, April 7, 2020.\r\n\t\tthis.parameterListAsString = \"\";\r\n\t\tvar countOfParameters = 1;\r\n\t\tkeys.forEach((key: any) => {\r\n\t\t\tvar value = submittedValuesObject[key];\r\n\t\t\tconsole.log(\"key: \" + key + \", value: \" + value);\r\n\t\t\tthis.parameterListAsString += key + \"=\";\r\n\t\t\tif (isNaN(submittedValuesObject[key])) {\r\n\t\t\t\tthis.parameterListAsString += \"'\" + value + \"'\";\r\n\t\t\t} else {\r\n\t\t\t\tthis.parameterListAsString += value;\r\n\t\t\t}\r\n\t\t\tif (countOfParameters < keys.length) {\r\n\t\t\t\tthis.parameterListAsString += \", \";\r\n\t\t\t}\r\n\t\t\tcountOfParameters++;\r\n\t\t});\r\n\r\n\t\t//console.log(\"this.parameterListAsString = \" + this.parameterListAsString);\r\n\t\tthis.runStoredProcedure(this.selectedReport); //-- this runs the stored procedure and appends this parameter list as string to the end of the stored procedure. --Kirk T. Sherer, April 7, 2020.\r\n\t}\r\n\r\n\treportList(refresh?: boolean) {\r\n\t\t//console.log(\"going back to reports list...\");\r\n\t\tthis.viewReportsList = true;\r\n\t\tthis.editingReport = false;\r\n\t\tthis.executingReport = false;\r\n\t\tthis.displayReport = false;\r\n\t\tthis.addingNewReport = false;\r\n\t\tthis.isLoadingParameters = false;\r\n\t\tthis.loadingEditForm = false;\r\n\r\n\t\tif (refresh) {\r\n\t\t\tthis.getLatestReportsList();\r\n\t\t}\r\n\t}\r\n\trunStoredProcedure(report: any) {\r\n\t\tconsole.log(\"running report...%O\", report);\r\n\t\tthis.displayReport = true;\r\n\t\tthis.addingNewReport = false;\r\n\t\tthis.viewReportsList = false;\r\n\t\tthis.editingReport = false;\r\n\t\tthis.executingReport = false;\r\n\t\tthis.isLoadingParameters = false;\r\n\t\tthis.loadingEditForm = false;\r\n\r\n\t\tthis.dataSource = new MatTableDataSource();\r\n\r\n\t\tconsole.log(\"this.dataSource = %O\", this.dataSource);\r\n\t\tthis.isLoading = true;\r\n\r\n\t\tvar sqlString = \"URPT.\" + report.StoredProcedureName + \" \" + this.parameterListAsString;\r\n\t\tthis.dataService.SQLActionAsPromise(sqlString).then((data: any) => {\r\n\t\t\tlet returnedData = data;\r\n\t\t\tconsole.log(\"data returned from stored procedure: %O\", returnedData);\r\n\r\n\t\t\tconsole.log(\"this.dataSource = %O\", this.dataSource);\r\n\t\t\tvar fieldNames: string = \"\";\r\n\t\t\tvar reportData: any = [];\r\n\r\n\t\t\tfor (let row in returnedData) {\r\n\t\t\t\tvar record: any = returnedData[row];\r\n\t\t\t\tfor (let propertyName in record) {\r\n\t\t\t\t\tif (+row == 0) {\r\n\t\t\t\t\t\tfieldNames += propertyName + \",\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar reportHeader: any = fieldNames\r\n\t\t\t\t.split(\",\")\r\n\t\t\t\t.where((f: any) => f != \"\")\r\n\t\t\t\t.select((f: string) => {\r\n\t\t\t\t\tvar outputObject = {};\r\n\t\t\t\t\toutputObject = {\r\n\t\t\t\t\t\tname: f,\r\n\t\t\t\t\t\tlabel: f.replace(/_/g, \" \")\r\n\t\t\t\t\t};\r\n\t\t\t\t\treturn outputObject;\r\n\t\t\t\t})\r\n\t\t\t\t.toArray();\r\n\r\n\t\t\t//console.log(\"reportHeader = %O\", reportHeader);\r\n\r\n\t\t\tthis.reportHeader = reportHeader;\r\n\t\t\tthis.reportData = returnedData;\r\n\r\n\t\t\tthis.displayedColumns = reportHeader.map((column: any) => column.name);\r\n\t\t\tthis.gridView = process(this.reportData, this.state);\r\n\t\t\tthis.dataSource = new MatTableDataSource(returnedData);\r\n\t\t\tthis.dataSource.sort = this.sort;\r\n\r\n\t\t\tconsole.log(\"this.dataSource = %O\", this.dataSource);\r\n\t\t\tconsole.log(\"this.dataSource.filteredData.length = \" + this.dataSource.filteredData.length);\r\n\t\t\t// if (this.dataSource.filteredData.length > 0) {\r\n\t\t\t// \tthis.isLoading = false;\r\n\t\t\t// }\r\n\t\t\tthis.isLoading = false;\r\n\t\t\t//console.log(\"this.isLoading = \" + this.isLoading);\r\n\t\t});\r\n\t}\r\n\r\n\tselectSite(event: Event, site: any): void {\r\n\t\tthis.selectedSite = site;\r\n\t\tconsole.log(\"selectedSite = %O\", site);\r\n\t\tthis.parameterListAsString = \"@Site=\" + site.Id;\r\n\t}\r\n\r\n\tapplyFilter(filterValue: string) {\r\n\t\tfilterValue = filterValue.trim().toLowerCase();\r\n\t\tthis.dataSource.filter = filterValue;\r\n\t}\r\n}\r\n","
        \r\n\t\r\n\r\n\t\r\n\t\r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t

        Reports

        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n\t\r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t\t

        \r\n\t\t\t\t\t{{ selectedReport.ReportName }}\r\n\t\t\t\t

        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n\t\r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t

        \r\n\t\t\t\t\t\tReport Parameters:   {{ selectedReport.ReportName }}\r\n\t\t\t\t\t

        \r\n\t\t\t\t\t
        Please enter the parameter values to execute this report.
        \r\n\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n\t\r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t

        \r\n\t\t\t\t\t\t{{ editHeader\r\n\t\t\t\t\t\t}}  {{ selectedReport.ReportName }}\r\n\t\t\t\t\t

        \r\n\t\t\t\t\t
        {{ editSubHeader }}
        \r\n\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t

        No new stored procedures have been defined. Please go to SQL Server to create a new URPT report.

        \r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n
        \r\n","import {\r\n\tComponent,\r\n\tInput,\r\n\tOutput,\r\n\tEventEmitter,\r\n\tAfterViewInit,\r\n} from '@angular/core';\r\nimport {\r\n\tCompositeFilterDescriptor,\r\n\tdistinct,\r\n\tfilterBy,\r\n\tFilterDescriptor,\r\n} from '@progress/kendo-data-query';\r\nimport { FilterService } from '@progress/kendo-angular-grid';\r\n\r\n@Component({\r\n\tselector: 'lib-multicheck-filter',\r\n\ttemplateUrl: './multicheck-filter.component.html',\r\n\tstyleUrls: ['./multicheck-filter.component.scss'],\r\n})\r\nexport class MulticheckFilterComponent implements AfterViewInit {\r\n\t@Input() public isPrimitive: boolean;\r\n\t@Input() public currentFilter: CompositeFilterDescriptor;\r\n\t@Input() public data;\r\n\t@Input() public textField;\r\n\t@Input() public valueField;\r\n\t@Input() public filterService: FilterService;\r\n\t@Input() public field: string;\r\n\t@Output() public valueChange = new EventEmitter();\r\n\r\n\tpublic currentData: any;\r\n\tpublic showFilter = true;\r\n\tprivate value: any[] = [];\r\n\r\n\tpublic textAccessor = (dataItem: any) =>\r\n\t\tthis.isPrimitive ? dataItem : dataItem[this.textField];\r\n\tpublic valueAccessor = (dataItem: any) =>\r\n\t\tthis.isPrimitive ? dataItem : dataItem[this.valueField];\r\n\r\n\tpublic ngAfterViewInit() {\r\n\t\tthis.currentData = this.data;\r\n\t\tthis.value = this.currentFilter.filters.map(\r\n\t\t\t(f: FilterDescriptor) => f.value\r\n\t\t);\r\n\r\n\t\tthis.showFilter =\r\n\t\t\ttypeof this.textAccessor(this.currentData[0]) === 'string';\r\n\t}\r\n\r\n\tpublic isItemSelected(item) {\r\n\t\treturn this.value.some((x) => x === this.valueAccessor(item));\r\n\t}\r\n\r\n\tpublic onSelectionChange(item, li) {\r\n\t\tif (this.value.some((x) => x === item)) {\r\n\t\t\tthis.value = this.value.filter((x) => x !== item);\r\n\t\t} else {\r\n\t\t\tthis.value.push(item);\r\n\t\t}\r\n\r\n\t\tthis.filterService.filter({\r\n\t\t\tfilters: this.value.map((value) => ({\r\n\t\t\t\tfield: this.field,\r\n\t\t\t\toperator: 'eq',\r\n\t\t\t\tvalue,\r\n\t\t\t})),\r\n\t\t\tlogic: 'or',\r\n\t\t});\r\n\r\n\t\tthis.onFocus(li);\r\n\t}\r\n\r\n\tpublic onInput(e: any) {\r\n\t\tthis.currentData = distinct(\r\n\t\t\t[\r\n\t\t\t\t...this.currentData.filter((dataItem) =>\r\n\t\t\t\t\tthis.value.some(\r\n\t\t\t\t\t\t(val) => val === this.valueAccessor(dataItem)\r\n\t\t\t\t\t)\r\n\t\t\t\t),\r\n\t\t\t\t...filterBy(this.data, {\r\n\t\t\t\t\toperator: 'contains',\r\n\t\t\t\t\tfield: this.textField,\r\n\t\t\t\t\tvalue: e.target.value,\r\n\t\t\t\t}),\r\n\t\t\t],\r\n\t\t\tthis.textField\r\n\t\t);\r\n\t}\r\n\r\n\tpublic onFocus(li: any): void {\r\n\t\tconst ul = li.parentNode;\r\n\t\tconst below =\r\n\t\t\tul.scrollTop + ul.offsetHeight < li.offsetTop + li.offsetHeight;\r\n\t\tconst above = li.offsetTop < ul.scrollTop;\r\n\r\n\t\t// Scroll to focused checkbox\r\n\t\tif (below || above) {\r\n\t\t\tul.scrollTop = li.offsetTop;\r\n\t\t}\r\n\t}\r\n}\r\n","
          \r\n\t
        • \r\n\t \r\n\t
        • \r\n\t\r\n\t \r\n\t \r\n\t\t{{ textAccessor(item) }}\r\n\t \r\n\t\r\n
        \r\n","import {\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tViewChild,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { MatSort } from '@angular/material/sort';\r\n\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport {\r\n\tGridDataResult,\r\n\tMultipleSortSettings,\r\n\tPageChangeEvent,\r\n\tRowClassArgs,\r\n} from '@progress/kendo-angular-grid';\r\nimport {\r\n\tCompositeFilterDescriptor,\r\n\tprocess,\r\n\tState,\r\n} from '@progress/kendo-data-query';\r\nimport moment from 'moment';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { filter, map, startWith, switchMapTo } from 'rxjs/operators';\r\n\r\nimport { QuestionBase } from 'projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-base';\r\nimport { DropdownQuestion } from 'projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-dropdown';\r\nimport { ReadOnlyQuestion } from 'projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-read-only';\r\nimport { ReadOnlyTextareaQuestion } from 'projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-read-only-textarea';\r\nimport { SliderYesNoQuestion } from 'projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-slider-yes-no';\r\nimport { TextareaQuestion } from 'projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-textarea';\r\nimport { TextboxQuestion } from 'projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-textbox';\r\nimport { GridSettings } from 'projects/shared-lib/src/lib/_models/grid-settings.interface';\r\n\r\nimport swal from 'sweetalert2';\r\nimport $ from 'jquery';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { UibButtonQuestion } from 'projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-uib-button';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\n\r\nimport { DataService } from 'projects/shared-lib/src/lib/services/data.service';\r\nimport { SignalRCoreService } from 'projects/shared-lib/src/lib/services/signalr-core.service';\r\nimport { UtilityService } from 'projects/shared-lib/src/lib/services/utility.service';\r\nimport { IGlobal } from 'projects/shared-lib/src/lib/_models/global.model';\r\nimport { FileUploadListComponent } from 'projects/shared-lib/src/lib/components/file-upload-list/file-upload-list.component';\r\nimport { IUserIssue } from 'projects/shared-lib/src/lib/_models/user-issue.model';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n\tselector: 'lib-customer-issues-list',\r\n\ttemplateUrl: './customer-issues-list.component.html',\r\n\tstyleUrls: ['./customer-issues-list.component.scss'],\r\n})\r\nexport class CustomerIssuesListComponent implements OnInit, OnDestroy {\r\n\t@ViewChild('issuesGrid') private issuesGridViewChild;\r\n\r\n\t@ViewChild(MatSort, { static: false }) sort: MatSort;\r\n\tpublic issuesGroups: any;\r\n\tpublic viewIssuesList: boolean = true;\r\n\tpublic editingIssue: boolean = false;\r\n\tpublic enterExecuteParameters: boolean = false;\r\n\tpublic executingIssue: boolean = false;\r\n\tpublic deletingIssue: boolean = false;\r\n\tpublic displayIssue: boolean = false;\r\n\r\n\tpublic parameterList: any;\r\n\tpublic permittedSites: any = Global.User.PermittedSites;\r\n\tpublic selectedIssue: any;\r\n\tpublic today: Date = new Date();\r\n\tpublic yesterday: Date;\r\n\tpublic selectedSite: any;\r\n\tpublic selectedStoredProcedure: any;\r\n\tpublic storedProcedureList: any;\r\n\tpublic settings: any;\r\n\tpublic editForm: FormBuilder;\r\n\tpublic editIssueFormGroup: FormGroup;\r\n\tpublic discussionIssueFormGroup: FormGroup;\r\n\r\n\tpublic addingNewIssue: boolean = false;\r\n\tpublic loadingEditForm: boolean = false;\r\n\tpublic isLoadingParameters: boolean = false;\r\n\r\n\tpublic issueData: any;\r\n\tpublic issueHeader: any;\r\n\tprivate parameterListAsString: string = '';\r\n\tpublic isLoading: boolean = true;\r\n\tpublic parameterCount: number = 0;\r\n\r\n\tpublic payLoad: string = '';\r\n\tpublic discussionFieldsAndValues: Array;\r\n\tpublic editFieldsAndValues: Array;\r\n\r\n\tpublic editQuestions: QuestionBase[];\r\n\tpublic parameterQuestions: QuestionBase[];\r\n\tpublic editFormOptions: any;\r\n\tpublic discussionFormOptions: any;\r\n\r\n\tprivate swalWithBootstrapButtons: any;\r\n\tpublic editHeader: string;\r\n\tpublic editSubHeader: string;\r\n\t//Material table Properties\r\n\tpublic dataSource: MatTableDataSource;\r\n\t//Kendo UI properties\r\n\tpublic skip = 0;\r\n\tpublic issuesSkip = 0;\r\n\tpublic gridView: GridDataResult;\r\n\tpublic gridViewIssues: any = [];\r\n\tpublic filterT: CompositeFilterDescriptor;\r\n\r\n\tpublic pageSize = 100;\r\n\r\n\tpublic pageSizeIssues = 100;\r\n\tpublic displayedColumns: string[];\r\n\tpublic filteredGridData: any;\r\n\tpublic popupTitle: string = 'Issues List';\r\n\tpublic state: State = { skip: 0 };\r\n\tpublic issuesState: State = { skip: 0 };\r\n\tpublic theme: string;\r\n\tprivate fullDataCache$: any;\r\n\tpublic subjects: Array = [];\r\n\tprivate componentName: string = 'customer-issues: ';\r\n\tpublic discussion: any;\r\n\tprivate issueUpdated$: any;\r\n\tprivate issueAdded$: any;\r\n\tprivate listUpdated$: any;\r\n\tprivate discussionUpdated$: any;\r\n\tprivate currentlyEditingIssueId: number;\r\n\tpublic listOfPeople: any;\r\n\tpublic filteredPeople: Observable;\r\n\tpublic myControl = new FormControl();\r\n\r\n\tpublic CountOfFilesUploaded: number = 0;\r\n\tpublic fileImageData: any;\r\n\tpublic FileImageLibraryControlObject: any;\r\n\tpublic issuesListTitle: string;\r\n\tpublic currentLoggedInUserDisplay: string =\r\n\t\tGlobal.User.currentUser.GivenName +\r\n\t\t' ' +\r\n\t\tGlobal.User.currentUser.FamilyName +\r\n\t\t' (' +\r\n\t\tGlobal.User.currentUser.Username +\r\n\t\t')';\r\n\tpublic global: IGlobal = Global;\r\n\tprivate isLoadingEditScreen: boolean = true;\r\n\r\n\tpublic issuesGridSettings: GridSettings = {\r\n\t\tstate: {\r\n\t\t\tskip: 0,\r\n\t\t\tfilter: {\r\n\t\t\t\tlogic: 'and',\r\n\t\t\t\tfilters: [],\r\n\t\t\t},\r\n\t\t\tgroup: [],\r\n\t\t\ttake: 15,\r\n\t\t\tsort: [],\r\n\t\t},\r\n\t\tcolumnsConfig: [\r\n\t\t\t{\r\n\t\t\t\tfield: 'Id',\r\n\t\t\t\ttitle: 'Id',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 100,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'CreationDate',\r\n\t\t\t\ttitle: 'Creation Date',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\tfilter: 'date',\r\n\t\t\t\t_width: 80,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'Subject',\r\n\t\t\t\ttitle: 'Subject',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 80,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'CreatedBy',\r\n\t\t\t\ttitle: 'Created By',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 80,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'AssignedTo',\r\n\t\t\t\ttitle: 'Rep Name',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 80,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'Description',\r\n\t\t\t\ttitle: 'Description',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 135,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'LastModifiedBy',\r\n\t\t\t\ttitle: 'Last Modified By',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 80,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'LastModifiedDate',\r\n\t\t\t\ttitle: 'Last Modified Date',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\tfilter: 'date',\r\n\t\t\t\t_width: 80,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'Resolved',\r\n\t\t\t\ttitle: 'Resolved',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 50,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'Actions',\r\n\t\t\t\ttitle: 'Actions',\r\n\t\t\t\tfilterable: false,\r\n\t\t\t\t_width: 150,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'NotifyAssignedUser',\r\n\t\t\t\ttitle: 'Notify Assigned User',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 30,\r\n\t\t\t\thidden: true,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'NotifyCreatorUser',\r\n\t\t\t\ttitle: 'Notify Creator User',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 30,\r\n\t\t\t\thidden: true,\r\n\t\t\t},\r\n\t\t],\r\n\t};\r\n\tpublic sortSettings: MultipleSortSettings = {\r\n\t\tmode: 'multiple',\r\n\t\tinitialDirection: 'desc',\r\n\t\tallowUnsort: true,\r\n\t\tshowIndexes: true,\r\n\t};\r\n\r\n\tpublic discussionGridSettings: GridSettings = {\r\n\t\tstate: {\r\n\t\t\tskip: 0,\r\n\t\t\tfilter: {\r\n\t\t\t\tlogic: 'and',\r\n\t\t\t\tfilters: [],\r\n\t\t\t},\r\n\t\t\ttake: 15,\r\n\t\t},\r\n\r\n\t\tcolumnsConfig: [\r\n\t\t\t{\r\n\t\t\t\tfield: 'Date',\r\n\t\t\t\ttitle: 'Date',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\tfilter: 'date',\r\n\t\t\t\t_width: 30,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'Person',\r\n\t\t\t\ttitle: 'Person',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 30,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: 'Comments',\r\n\t\t\t\ttitle: 'Comments',\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 250,\r\n\t\t\t\tencoded: false,\r\n\t\t\t},\r\n\t\t],\r\n\t};\r\n\tAdminDevelopmentTeam: any;\r\n\r\n\tconstructor(\r\n\t\tpublic dataService: DataService,\r\n\t\tpublic formBuilder: FormBuilder,\r\n\t\tprivate toastr: ToastrService,\r\n\t\tprivate signalRCore: SignalRCoreService,\r\n\t\tprivate changeDetector: ChangeDetectorRef,\r\n\t\tpublic dialog: MatDialog,\r\n\t\tprivate utilityService: UtilityService,\r\n\t\tprivate router: Router\r\n\t) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.utilityService.updateCurrentMenuItem('Customer Issues');\r\n\t\tif (Global.User.isAdmin) {\r\n\t\t\tthis.issuesGridSettings.state.sort = [\r\n\t\t\t\t{ dir: 'asc', field: 'Resolved' },\r\n\t\t\t\t{ dir: 'desc', field: 'LastModifiedDate' },\r\n\t\t\t];\r\n\t\t\tthis.dataService\r\n\t\t\t\t.SQLActionAsPromise('API.GetListOfDevelopers')\r\n\t\t\t\t.then((data: any) => {\r\n\t\t\t\t\tthis.AdminDevelopmentTeam = data;\r\n\t\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\tthis.componentName +\r\n\t\t\t\t\t\t\t\t'this.AdminDevelopmentTeam = %O',\r\n\t\t\t\t\t\t\tthis.AdminDevelopmentTeam\r\n\t\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.issuesGridSettings.state.sort = [\r\n\t\t\t\t{ dir: 'desc', field: 'LastModifiedDate' },\r\n\t\t\t];\r\n\t\t}\r\n\r\n\t\tthis.yesterday = this.getYesterdaysDate();\r\n\t\tGlobal.User.DebugMode &&\r\n\t\t\tconsole.log(\r\n\t\t\t\tthis.componentName +\r\n\t\t\t\t\t'this.today = ' +\r\n\t\t\t\t\tthis.today +\r\n\t\t\t\t\t', this.yesterday = ' +\r\n\t\t\t\t\tthis.getYesterdaysDate()\r\n\t\t\t);\r\n\r\n\t\tthis.editIssueFormGroup = new FormGroup({\r\n\t\t\tsubject: new FormControl(),\r\n\t\t\tdescription: new FormControl(),\r\n\t\t\tcreatedBy: new FormControl(),\r\n\t\t\tresolved: new FormControl(),\r\n\t\t});\r\n\r\n\t\tthis.discussionIssueFormGroup = new FormGroup({\r\n\t\t\tresponse: new FormControl(),\r\n\t\t});\r\n\t}\r\n\r\n\tnavigate(whereToGo){\r\n\t\tconst whereToGoUrl = '/layout/issues/' + whereToGo;\r\n\t\tthis.router.navigate([whereToGoUrl]);\r\n\t}\r\n\r\n\tpublic groupChangeIssues(groups: any): void {\r\n\t\tthis.issuesGridSettings.state.group = groups;\r\n\t\tthis.gridViewIssues = process(\r\n\t\t\tthis.dataService.cache.userIssues,\r\n\t\t\tthis.issuesGridSettings.state\r\n\t\t);\r\n\t}\r\n\r\n\tngAfterViewInit() {\r\n\t\tvar service = this;\r\n\t\tif (!Global.User.isAdmin) {\r\n\t\t\tvar currentUserOrganizationId =\r\n\t\t\t\tthis.dataService.cache.people.filter((p: any) => {\r\n\t\t\t\t\treturn p.UserId == Global.User.currentUser.Id;\r\n\t\t\t\t})[0].OrganizationId;\r\n\r\n\t\t\tthis.listOfPeople = this.dataService.cache.people.filter(\r\n\t\t\t\t(p: any) => {\r\n\t\t\t\t\treturn p.OrganizationId == currentUserOrganizationId;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\t//-- since this user is a system administrator, let them see all people. --Kirk T. Sherer, November 16, 2020.\r\n\t\t\tthis.listOfPeople = this.dataService.cache.people;\r\n\t\t}\r\n\r\n\t\tthis.filteredPeople = this.myControl.valueChanges.pipe(\r\n\t\t\tstartWith(''),\r\n\t\t\tmap((value) => this.peopleFilter(value))\r\n\t\t);\r\n\r\n\t\t//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\t\t//-- NOTE --\r\n\t\t//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\t\t//-- We are already joining the User Issues group and the System Updates group in the SignalR service. There is no need to join or unjoin these groups in this or any other component. --Kirk T. Sherer, July 15, 2024.\r\n\t\t//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\t\tservice.issueUpdated$ = service.signalRCore.broadcastMessages$\r\n\t\t\t.pipe(filter((msg: any) => msg.code == 'Issue Updated' || msg.code == 'SQL.UserIssue.Update'))\r\n\t\t\t.subscribe((data: any) => {\r\n\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\tservice.componentName +\r\n\t\t\t\t\t\t\t': SignalR Message received. Code: ' +\r\n\t\t\t\t\t\t\tdata.code +\r\n\t\t\t\t\t\t\t', data.object received via SignalR: %O',\r\n\t\t\t\t\t\tdata?.object\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\tservice.gridViewIssues = process(\r\n\t\t\t\t\tthis.dataService.cache.userIssues,\r\n\t\t\t\t\tthis.issuesGridSettings.state\r\n\t\t\t\t);\r\n\t\t\t\t//--this updates the Kendo Grid Data with whatever changed in SignalR for the main User Issue structure in the data cache.\r\n\t\t\t});\r\n\r\n\r\n\t\tservice.discussionUpdated$ = service.signalRCore.broadcastMessages$\r\n\t\t\t.pipe(filter((msg: any) => msg.code == 'Issue Discussion Updated'))\r\n\t\t\t.subscribe((data: any) => {\r\n\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\tservice.componentName +\r\n\t\t\t\t\t\t\t': SignalR Message received. Code: ' +\r\n\t\t\t\t\t\t\tdata.code +\r\n\t\t\t\t\t\t\t', data.object received via SignalR: %O',\r\n\t\t\t\t\t\tdata?.object\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\tif (data.object) {\r\n\t\t\t\t\t//-- this section is to get the latest discussion record and append it to the list of discussion records if we're currently editing the same issue.\r\n\t\t\t\t\tvar updatedCurrentlyEditingIssue = data.object?.first(\r\n\t\t\t\t\t\t(i: any) => {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\ti.UserIssueId == service.currentlyEditingIssueId\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t\tif (updatedCurrentlyEditingIssue) {\r\n\t\t\t\t\t\t//-- the issue I'm editing just got updated by someone else on the application. Update my discussion panel in place. --Kirk T. Sherer, April 19, 2021.\r\n\t\t\t\t\t\tvar newDiscussionId = data.object.first((d: any) => {\r\n\t\t\t\t\t\t\treturn d.Id;\r\n\t\t\t\t\t\t}).Id;\r\n\t\t\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\t\tthis.componentName +\r\n\t\t\t\t\t\t\t\t\t'newDiscussionId = ' +\r\n\t\t\t\t\t\t\t\t\tnewDiscussionId\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\tvar existingDiscussionContainingSignalRDiscussionRecord =\r\n\t\t\t\t\t\t\tservice.discussion\r\n\t\t\t\t\t\t\t\t.where((disc: any) => {\r\n\t\t\t\t\t\t\t\t\treturn disc.Id == newDiscussionId;\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.toArray();\r\n\t\t\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\t\tthis.componentName +\r\n\t\t\t\t\t\t\t\t\t'existingDiscussionContainingSignalRDiscussionRecord = %O',\r\n\t\t\t\t\t\t\t\texistingDiscussionContainingSignalRDiscussionRecord\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\texistingDiscussionContainingSignalRDiscussionRecord.length ==\r\n\t\t\t\t\t\t\t0\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t//-- if we made it here, the discussion record we received from SignalR does not exist in the current discussion list. Add it since we're editing the\r\n\t\t\t\t\t\t\t//-- same User Issue. --Kirk T. Sherer, April 27, 2021.\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\t\t\tthis.componentName +\r\n\t\t\t\t\t\t\t\t\t\t'service.currentlyEditingIssueId = ' +\r\n\t\t\t\t\t\t\t\t\t\tservice.currentlyEditingIssueId\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\t\t\tthis.componentName + 'data.object = %O',\r\n\t\t\t\t\t\t\t\t\tdata.object\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\t\t\tthis.componentName +\r\n\t\t\t\t\t\t\t\t\t\t'service.discussion = %O',\r\n\t\t\t\t\t\t\t\t\tservice.discussion\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\tservice.getIssueDiscussion(\r\n\t\t\t\t\t\t\t\tservice.currentlyEditingIssueId,\r\n\t\t\t\t\t\t\t\tdata.object,\r\n\t\t\t\t\t\t\t\tservice.discussion\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tservice.issueAdded$ = service.signalRCore.broadcastMessages$\r\n\t\t\t.pipe(filter((msg: any) => msg.code == 'UserIssue Inserted'))\r\n\t\t\t.subscribe((data: any) => {\r\n\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\tservice.componentName +\r\n\t\t\t\t\t\t\t': SignalR Message received. Code: ' +\r\n\t\t\t\t\t\t\tdata.code\r\n\t\t\t\t\t);\r\n\t\t\t\tservice.gridViewIssues = process(\r\n\t\t\t\t\tthis.dataService.cache.userIssues,\r\n\t\t\t\t\tthis.issuesGridSettings.state\r\n\t\t\t\t); //--this updates the Kendo Grid Data with whatever changed in SignalR for the main User Issue structure in the data cache.\r\n\t\t\t});\r\n\r\n\t\tif (!Global.FullDataCacheExists) {\r\n\t\t\tthis.fullDataCache$ =\r\n\t\t\t\tthis.dataService.fullDataCacheExists$.subscribe((data: any) => {\r\n\t\t\t\t\tif (data === true) {\r\n\t\t\t\t\t\tif (Global.Theme === 'light') {\r\n\t\t\t\t\t\t\tthis.theme = 'light';\r\n\t\t\t\t\t\t} else if (Global.Theme === 'dark') {\r\n\t\t\t\t\t\t\tthis.theme = 'dark';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.getLatestIssuesList();\r\n\t\t\t\t\t\tthis.fullDataCache$.unsubscribe();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tif (Global.Theme === 'light') {\r\n\t\t\t\tthis.theme = 'light';\r\n\t\t\t} else if (Global.Theme === 'dark') {\r\n\t\t\t\tthis.theme = 'dark';\r\n\t\t\t}\r\n\t\t\tthis.getLatestIssuesList();\r\n\t\t}\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.issueUpdated$ && this.issueUpdated$.unsubscribe();\r\n\t\tthis.listUpdated$ && this.listUpdated$.unsubscribe();\r\n\t}\r\n\r\n\tpublic fetchData(): Observable {\r\n\t\treturn new Observable((observer) => {\r\n\t\t\tobserver.next(this.dataService.cache.userIssues);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate peopleFilter(value: string): string[] {\r\n\t\tconst filterValue = value.toLowerCase();\r\n\t\treturn this.listOfPeople\r\n\t\t\t.map((x: any) => x.FullNameWithUsername)\r\n\t\t\t.filter((option: string) => {\r\n\t\t\t\tif (option != undefined) {\r\n\t\t\t\t\treturn option.toLowerCase().includes(filterValue);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tpublic distinctPrimitive(fieldName: string): any {\r\n\t\t//return distinct(this.issues, fieldName).map((item) => item[fieldName]);\r\n\t}\r\n\r\n\tpublic pageChange(event: PageChangeEvent): void {\r\n\t\tthis.skip = event.skip;\r\n\t\tthis.state.skip = event.skip;\r\n\t\tthis.state.take = event.take;\r\n\t\tthis.gridView = process(this.issueData, this.state);\r\n\t}\r\n\r\n\tpublic pageChangeIssues(event: PageChangeEvent): void {\r\n\t\tthis.issuesSkip = event.skip;\r\n\t\tthis.issuesGridSettings.state.skip = event.skip;\r\n\t\tthis.issuesGridSettings.state.take = event.take;\r\n\t\tthis.gridViewIssues = process(\r\n\t\t\tthis.dataService.cache.userIssues,\r\n\t\t\tthis.issuesGridSettings.state\r\n\t\t);\r\n\t}\r\n\r\n\tpublic filterChangeIssues(filter: CompositeFilterDescriptor): void {\r\n\t\tthis.filterT = filter;\r\n\t\tthis.issuesGridSettings.state.filter = filter;\r\n\t\tthis.gridViewIssues = process(\r\n\t\t\tthis.dataService.cache.userIssues,\r\n\t\t\tthis.issuesGridSettings.state\r\n\t\t);\r\n\t}\r\n\r\n\tpublic filterChange(filter: CompositeFilterDescriptor): void {\r\n\t\tthis.state.filter = filter;\r\n\t\tthis.gridView = process(this.issueData, this.state);\r\n\t}\r\n\r\n\tpublic sortChange(sort: any): void {\r\n\t\tthis.state.sort = sort;\r\n\t\tthis.gridView = process(this.issueData, this.state);\r\n\t}\r\n\r\n\tpublic sortChangeIssues(sort: any): void {\r\n\t\tthis.issuesGridSettings.state.sort = sort;\r\n\t\tthis.gridViewIssues = process(\r\n\t\t\tthis.dataService.cache.userIssues,\r\n\t\t\tthis.issuesGridSettings.state\r\n\t\t);\r\n\t}\r\n\r\n\tgetYesterdaysDate() {\r\n\t\tvar days = 1; // Days you want to subtract\r\n\t\tvar date = new Date();\r\n\t\tvar last = new Date(date.getTime() - days * 24 * 60 * 60 * 1000);\r\n\t\treturn last;\r\n\t}\r\n\r\n\tgetLatestIssuesList() {\r\n\t\tthis.subjects = this.dataService.cache.userIssueSubjects;\r\n\t\tthis.gridViewIssues = process(\r\n\t\t\tthis.dataService.cache.userIssues,\r\n\t\t\tthis.issuesGridSettings.state\r\n\t\t);\r\n\r\n\t\tif (Global.User.isAdmin) {\r\n\t\t\t//this.issues = this.dataService.cache.userIssues.where((issue:IUserIssue) => { return issue.Resolved == false }).toArray(); //-- this will get all open issues.\r\n\t\t\t//sql = \"API.Issues_GetListOfIssues @viewAllIssues = 1\"; //-- this will get all open issues. <-- this is wrong. @ViewAllIssues=1 means 'true', I want to View ALL issues.\r\n\t\t\tthis.issuesListTitle = 'Customer Issues';\r\n\t\t} else {\r\n\t\t\tthis.issuesListTitle = 'Issues List for ';\r\n\t\t}\r\n\r\n\t\tthis.issuesGridViewChild?.collapseGroup('1');\r\n\t\tthis.isLoading = false;\r\n\t}\r\n\r\n\tgetIssueDiscussion(issue: any, lastDiscussion?: any, discussion?: any) {\r\n\t\tif (!this.discussion || (!lastDiscussion && !discussion)) {\r\n\t\t\t//-- if we don't have deicer events populated yet, or we didn't send a current deicing event, then go get the list of deicer events again from SQL Server. --Kirk T. Sherer, October 12, 2020.\r\n\t\t\tthis.dataService\r\n\t\t\t\t.SQLActionAsPromise('API.Issues_GetIssueDiscussion ' + issue)\r\n\t\t\t\t.then((data: any) => {\r\n\t\t\t\t\tvar discussion = data;\r\n\t\t\t\t\tthis.discussionGridSettings.gridData = process(\r\n\t\t\t\t\t\tdiscussion,\r\n\t\t\t\t\t\tthis.discussionGridSettings.state\r\n\t\t\t\t\t);\r\n\t\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\tthis.componentName +\r\n\t\t\t\t\t\t\t\t'this.discussionGridSettings.gridData = %O',\r\n\t\t\t\t\t\t\tthis.discussionGridSettings.gridData\r\n\t\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tif (discussion && !lastDiscussion) {\r\n\t\t\t\t//-- we arrived at this function with the list of discussion records, but no new ones to append to the list. Just display the same list again. --Kirk T. Sherer, April 19, 2021.\r\n\t\t\t\tthis.discussionGridSettings.gridData = process(\r\n\t\t\t\t\tdiscussion,\r\n\t\t\t\t\tthis.discussionGridSettings.state\r\n\t\t\t\t);\r\n\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\tthis.componentName +\r\n\t\t\t\t\t\t\t'this.discussionGridSettings.gridData = %O',\r\n\t\t\t\t\t\tthis.discussionGridSettings.gridData\r\n\t\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\t//-- we are arriving here with a list of discussion records, as well as a new record to add to the list. --Kirk T. Sherer, April 19, 2021.\r\n\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\tthis.componentName + 'this.discussion = %O',\r\n\t\t\t\t\t\tthis.discussion\r\n\t\t\t\t\t);\r\n\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\tthis.componentName + 'lastDiscussion = %O',\r\n\t\t\t\t\t\tlastDiscussion\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\tvar discussion = this.discussion;\r\n\t\t\t\tlastDiscussion.forEach((d: any) => {\r\n\t\t\t\t\td.Date = new Date(d.DateMS);\r\n\t\t\t\t\td.Comments = this.stringToHTML(d.Comments);\r\n\t\t\t\t});\r\n\t\t\t\tdiscussion.push(lastDiscussion.first());\r\n\t\t\t\tvar newDiscussionList = discussion\r\n\t\t\t\t\t.orderByDescending((d: any) => {\r\n\t\t\t\t\t\treturn d.DateMS;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.toArray();\r\n\t\t\t\tthis.discussion = newDiscussionList;\r\n\t\t\t\tthis.discussionGridSettings.gridData = process(\r\n\t\t\t\t\tnewDiscussionList,\r\n\t\t\t\t\tthis.discussionGridSettings.state\r\n\t\t\t\t);\r\n\t\t\t\t$('#response').trigger('click'); //--should set focus back to textarea after submission of text. --Kirk T. Sherer, April 20, 2021.\r\n\r\n\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\tthis.componentName +\r\n\t\t\t\t\t\t\t'this.discussionGridSettings.gridData after adding new discussion record = %O',\r\n\t\t\t\t\t\tthis.discussionGridSettings.gridData\r\n\t\t\t\t\t);\r\n\t\t\t\tthis.changeDetector.detectChanges();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstringToHTML(textString: string) {\r\n\t\tvar parser = new DOMParser();\r\n\t\tvar doc = parser.parseFromString(textString, 'text/html');\r\n\t\tvar text = doc.body.innerHTML;\r\n\t\t//console.log(this.componentName + \"stringToHTML(\" + textString + \") = \" + text);\r\n\t\tvar returnText =\r\n\t\t\ttextString != undefined\r\n\t\t\t\t? text\r\n\t\t\t\t\t\t.split('
        ')\r\n\t\t\t\t\t\t.join('\\n')\r\n\t\t\t\t\t\t.split('

        ')\r\n\t\t\t\t\t\t.join('')\r\n\t\t\t\t\t\t.split('

        ')\r\n\t\t\t\t\t\t.join('')\r\n\t\t\t\t\t\t.split('<')\r\n\t\t\t\t\t\t.join('<')\r\n\t\t\t\t\t\t.split('>')\r\n\t\t\t\t\t\t.join('>')\r\n\t\t\t\t\t\t.split('

        ')\r\n\t\t\t\t\t\t.join('')\r\n\t\t\t\t\t\t.split('

        ')\r\n\t\t\t\t\t\t.join('')\r\n\t\t\t\t: '';\r\n\t\treturn returnText;\r\n\t}\r\n\r\n\twarningFunctionWhenReopeningAnIssue(\r\n\t\tresolvedStatus: boolean,\r\n\t\tissueId: number\r\n\t) {\r\n\t\tvar service = this;\r\n\t\tif (!resolvedStatus) {\r\n\t\t\t//-- the resolved status is not yet true, so this is the warning to the user that they are trying to resolve it.\r\n\t\t\tservice.swalWithBootstrapButtons = swal.mixin({\r\n\t\t\t\tcustomClass: {\r\n\t\t\t\t\tconfirmButton: 'btn btn-danger',\r\n\t\t\t\t\tcancelButton: 'btn btn-success',\r\n\t\t\t\t},\r\n\t\t\t\tbuttonsStyling: false,\r\n\t\t\t});\r\n\t\t\tconsole.log(\r\n\t\t\t\t'Marking Customer Issue #' +\r\n\t\t\t\t\tservice.dataService.cache.userIssuesObject[issueId].Id +\r\n\t\t\t\t\t' as resolved...'\r\n\t\t\t);\r\n\r\n\t\t\tservice.swalWithBootstrapButtons\r\n\t\t\t\t.fire({\r\n\t\t\t\t\ttitle: 'Are you sure?',\r\n\t\t\t\t\thtml:\r\n\t\t\t\t\t\t\"You are trying to resolve the '\" +\r\n\t\t\t\t\t\tservice.dataService.cache.userIssuesObject[issueId].Id +\r\n\t\t\t\t\t\t\"' issue. Cancel if you would rather keep it open.\",\r\n\t\t\t\t\tshowCancelButton: true,\r\n\t\t\t\t\tconfirmButtonText: 'Resolve Issue',\r\n\t\t\t\t\tcancelButtonText: 'Cancel',\r\n\t\t\t\t\treverseButtons: false,\r\n\t\t\t\t})\r\n\t\t\t\t.then((result: any) => {\r\n\t\t\t\t\tif (result.value) {\r\n\t\t\t\t\t\t// logic for resolving issue goes here.\r\n\t\t\t\t\t\tservice.dataService\r\n\t\t\t\t\t\t\t.SQLActionAsPromise(\r\n\t\t\t\t\t\t\t\t'API.Issues_SetResolveField @IssueId=' +\r\n\t\t\t\t\t\t\t\t\tservice.dataService.cache.userIssuesObject[\r\n\t\t\t\t\t\t\t\t\t\tissueId\r\n\t\t\t\t\t\t\t\t\t].Id +\r\n\t\t\t\t\t\t\t\t\t', @UserId=' +\r\n\t\t\t\t\t\t\t\t\tGlobal.User.currentUser.Id +\r\n\t\t\t\t\t\t\t\t\t', @IsResolved=1'\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t.then((data: any) => {\r\n\t\t\t\t\t\t\t\tconsole.log('data = %O', data);\r\n\t\t\t\t\t\t\t\tservice.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\t\t\ttype: 'info',\r\n\t\t\t\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\t\t\t\t'Customer Issue #' +\r\n\t\t\t\t\t\t\t\t\t\tservice.dataService.cache\r\n\t\t\t\t\t\t\t\t\t\t\t.userIssuesObject[issueId].Id +\r\n\t\t\t\t\t\t\t\t\t\t' has been resolved.',\r\n\t\t\t\t\t\t\t\t\ttitle: 'Customer Issues',\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tthis.signalRCore.notifyOtherClientsInGroup(\r\n\t\t\t\t\t\t\t\t\t'User Issues',\r\n\t\t\t\t\t\t\t\t\t'Issue Updated',\r\n\t\t\t\t\t\t\t\t\tservice.dataService.cache.userIssuesObject[\r\n\t\t\t\t\t\t\t\t\t\tissueId\r\n\t\t\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tservice.issueList(true); //-- go get list of issues again.\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tservice.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\ttype: 'info',\r\n\t\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\t\t'Customer Issue #' +\r\n\t\t\t\t\t\t\t\tservice.dataService.cache.userIssuesObject[\r\n\t\t\t\t\t\t\t\t\tissueId\r\n\t\t\t\t\t\t\t\t].Id +\r\n\t\t\t\t\t\t\t\t' has NOT been resolved.',\r\n\t\t\t\t\t\t\ttitle: 'Customer Issues',\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\t//-- the resolved status is true. User must have a reason for re-opening the issue, so just allow the update.\r\n\t\t\tvar requestJSON = [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Resolved',\r\n\t\t\t\t\tsqlStatement:\r\n\t\t\t\t\t\t'API.Issues_UpdateRecordByIdAndFieldName @UserIssueId=' +\r\n\t\t\t\t\t\tservice.dataService.cache.userIssuesObject[issueId].Id +\r\n\t\t\t\t\t\t', @iOPSUserId=' +\r\n\t\t\t\t\t\tGlobal.User.currentUser.Id +\r\n\t\t\t\t\t\t\", @FieldName='Resolution', @FieldValue=null\",\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'IsResolved',\r\n\t\t\t\t\tsqlStatement:\r\n\t\t\t\t\t\t'API.Issues_SetResolveField @IssueId=' +\r\n\t\t\t\t\t\tservice.dataService.cache.userIssuesObject[issueId].Id +\r\n\t\t\t\t\t\t', @UserId=' +\r\n\t\t\t\t\t\tGlobal.User.currentUser.Id +\r\n\t\t\t\t\t\t', @IsResolved=0',\r\n\t\t\t\t},\r\n\t\t\t];\r\n\t\t\tservice.dataService\r\n\t\t\t\t.SQLMultiAction(\r\n\t\t\t\t\trequestJSON,\r\n\t\t\t\t\tGlobal.User.currentUser.ODataAccessToken\r\n\t\t\t\t)\r\n\t\t\t\t.then((data: any) => {\r\n\t\t\t\t\tconsole.log('data = %O', data);\r\n\t\t\t\t\tservice.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\ttype: 'info',\r\n\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\t'Customer Issue #' +\r\n\t\t\t\t\t\t\tservice.dataService.cache.userIssuesObject[issueId]\r\n\t\t\t\t\t\t\t\t.Id +\r\n\t\t\t\t\t\t\t' has been re-opened.',\r\n\t\t\t\t\t\ttitle: 'Customer Issues',\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.signalRCore.notifyOtherClientsInGroup(\r\n\t\t\t\t\t\t'User Issues',\r\n\t\t\t\t\t\t'Issue Updated',\r\n\t\t\t\t\t\tservice.dataService.cache.userIssuesObject[issueId]\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tsubmitEditedIssue(submittedValues: string) {\r\n\t\tvar service = this;\r\n\t\tconsole.log('edited issue change submitted...');\r\n\t\tvar submittedValuesObject = JSON.parse(submittedValues);\r\n\t\t//console.log(\"submittedValuesObject = %O\", submittedValuesObject);\r\n\t\t// console.log(\"Object.keys(submittedValuesObject) = %O\", Object.keys(submittedValuesObject));\r\n\t\tvar keys: Array = Object.keys(submittedValuesObject);\r\n\r\n\t\tservice.parameterListAsString = '';\r\n\t\tvar countOfParameters = 1;\r\n\t\tkeys.forEach((key: any) => {\r\n\t\t\tvar questions = service.editQuestions;\r\n\t\t\tquestions.forEach((question: any) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\tkey == question.key &&\r\n\t\t\t\t\tquestion.controlType != 'read-only'\r\n\t\t\t\t) {\r\n\t\t\t\t\tvar value = submittedValuesObject[key];\r\n\t\t\t\t\tconsole.log('key: ' + key + ', value: ' + value);\r\n\t\t\t\t\tswitch (key) {\r\n\t\t\t\t\t\tcase 'createdBy':\r\n\t\t\t\t\t\t\t//-- since this is using a person-selector, the value coming back is a JSON object.\r\n\t\t\t\t\t\t\t//-- Get the UserId from the value object that was returned. --Kirk T. Sherer, April 22, 2021.\r\n\t\t\t\t\t\t\tvar UserId = value.UserId;\r\n\t\t\t\t\t\t\tservice.parameterListAsString +=\r\n\t\t\t\t\t\t\t\t'@UserId=' + UserId;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'subject':\r\n\t\t\t\t\t\t\tservice.parameterListAsString +=\r\n\t\t\t\t\t\t\t\t'@SubjectId=' + value;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tservice.parameterListAsString += '@' + key + '=';\r\n\t\t\t\t\t\t\tif (isNaN(submittedValuesObject[key])) {\r\n\t\t\t\t\t\t\t\tservice.parameterListAsString +=\r\n\t\t\t\t\t\t\t\t\t\"'\" +\r\n\t\t\t\t\t\t\t\t\tservice.utilityService.updateStringToSQLSyntax(\r\n\t\t\t\t\t\t\t\t\t\tvalue\r\n\t\t\t\t\t\t\t\t\t) +\r\n\t\t\t\t\t\t\t\t\t\"'\";\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tservice.parameterListAsString += value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (countOfParameters < keys.length) {\r\n\t\t\t\t\t\tservice.parameterListAsString += ', ';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcountOfParameters++;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tkey == 'createdBy' &&\r\n\t\t\t\t\t\tquestion.controlType == 'read-only'\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t//-- the non-admin user is trying to log another issue from their list of existing issues since their 'createdBy' field\r\n\t\t\t\t\t\t//-- is listed as a read-only field. So we have to send their UserId as the @UserId parameter so we'll know this issue\r\n\t\t\t\t\t\t//-- was submitted by them. --Kirk T. Sherer, April 26, 2021.\r\n\t\t\t\t\t\tservice.parameterListAsString +=\r\n\t\t\t\t\t\t\t'@UserId=' + Global.User.currentUser.Id;\r\n\t\t\t\t\t\tif (countOfParameters < keys.length) {\r\n\t\t\t\t\t\t\tservice.parameterListAsString += ', ';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcountOfParameters++;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconsole.log(\r\n\t\t\t'this.parameterListAsString = ' + service.parameterListAsString\r\n\t\t);\r\n\t\tvar newParameterListAsString = (service.parameterListAsString +=\r\n\t\t\t', @CreatorUserId=' + Global.User.currentUser.Id);\r\n\t\tnewParameterListAsString = newParameterListAsString.replace(', ,', ',');\r\n\r\n\t\tconsole.log('newParamterListAsString = ' + newParameterListAsString);\r\n\t\tservice.dataService\r\n\t\t\t.SQLActionAsPromise(\r\n\t\t\t\t'API.User_SubmitIssue ' + newParameterListAsString\r\n\t\t\t)\r\n\t\t\t.then((data: any) => {\r\n\t\t\t\tconsole.log('data = %O', data);\r\n\t\t\t\tvar issueId = data?.first().Id;\r\n\t\t\t\tservice.signalRCore.notifyOtherClientsInGroup(\r\n\t\t\t\t\t'User Issues',\r\n\t\t\t\t\t'Issue Updated',\r\n\t\t\t\t\tservice.dataService.cache.userIssuesObject[issueId]\r\n\t\t\t\t);\r\n\t\t\t\tservice.gridViewIssues = process(\r\n\t\t\t\t\tthis.dataService.cache.userIssues,\r\n\t\t\t\t\tthis.issuesGridSettings.state\r\n\t\t\t\t);\r\n\t\t\t\t//--this updates the Kendo Grid Data with whatever changed in SignalR for the main User Issue structure in the data cache.\r\n\t\t\t\tservice.issueList(true); //-- return back to the issue list after inserting/updating the issue.\r\n\t\t\t});\r\n\t}\r\n\r\n\tpublic submitResponse(issue: any) {\r\n\t\tvar service = this;\r\n\t\tconsole.log(\r\n\t\t\t'this.editFormOptions.saveStoredProcedureName = ' +\r\n\t\t\t\tthis.editFormOptions.saveStoredProcedureName +\r\n\t\t\t\t', issue = ' +\r\n\t\t\t\tissue\r\n\t\t);\r\n\t\tconsole.log(\r\n\t\t\t'this.discussionIssueFormGroup = %O',\r\n\t\t\tthis.discussionIssueFormGroup\r\n\t\t);\r\n\t\tvar newDiscussion = service.stringToHTML(\r\n\t\t\tthis.discussionIssueFormGroup.controls.response.value\r\n\t\t);\r\n\t\tvar discussion = newDiscussion.split(\"'\").join(\"''\");\r\n\t\tvar sql =\r\n\t\t\tthis.editFormOptions.saveStoredProcedureName +\r\n\t\t\t\", 'Comments', '\" +\r\n\t\t\tdiscussion +\r\n\t\t\t\"'\";\r\n\t\tconsole.log('sql = ' + sql);\r\n\t\tthis.dataService.SQLActionAsPromise(sql).then((data: any) => {\r\n\t\t\tconsole.log('data = %O', data);\r\n\t\t\tthis.discussionIssueFormGroup.controls.response.reset();\r\n\t\t\tconsole.log('issue = ' + issue + ', data = %O', data);\r\n\t\t\tconsole.log('this.discussion = %O', this.discussion);\r\n\t\t\tthis.getIssueDiscussion(issue, data, this.discussion);\r\n\t\t\tthis.signalRCore.notifyOtherClientsInGroup(\r\n\t\t\t\t'User Issues',\r\n\t\t\t\t'Issue Discussion Updated',\r\n\t\t\t\tdata\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\tupdateRowColor(context: RowClassArgs) {\r\n\t\tlet rowUpdated = context.dataItem.RecentlyUpdated;\r\n\t\treturn {\r\n\t\t\trecentlyUpdated: rowUpdated,\r\n\t\t};\r\n\t}\r\n\r\n\tissueList(refresh?: boolean) {\r\n\t\t//console.log(\"going back to issues list...\");\r\n\t\tthis.viewIssuesList = true;\r\n\t\tthis.editingIssue = false;\r\n\t\tthis.executingIssue = false;\r\n\t\tthis.displayIssue = false;\r\n\t\tthis.addingNewIssue = false;\r\n\t\tthis.isLoadingParameters = false;\r\n\t\tthis.loadingEditForm = false;\r\n\r\n\t\tif (refresh) {\r\n\t\t\tthis.getLatestIssuesList();\r\n\t\t}\r\n\t}\r\n\r\n\tselectSite(event: Event, site: any): void {\r\n\t\tthis.selectedSite = site;\r\n\t\tconsole.log('selectedSite = %O', site);\r\n\t\tthis.parameterListAsString = '@Site=' + site.Id;\r\n\t}\r\n\r\n\tapplyFilter(filterValue: string) {\r\n\t\tfilterValue = filterValue.trim().toLowerCase();\r\n\t\tthis.dataSource.filter = filterValue;\r\n\t}\r\n\r\n\tsetFileImageUploadSettings(issue: any) {\r\n\t\tvar service = this;\r\n\t\tGlobal.User.DebugMode &&\r\n\t\t\tconsole.log(\r\n\t\t\t\tservice.componentName +\r\n\t\t\t\t\t': setting up File Image Upload functions. Issue = %O',\r\n\t\t\t\tissue\r\n\t\t\t);\r\n\t\tvar entityId = issue.Id;\r\n\t\tvar entityType = 'UserIssue';\r\n\t\tvar title: string = 'Issue #' + issue.Id + ' Documentation';\r\n\t\tservice.CountOfFilesUploaded = issue.CountOfFilesUploaded;\r\n\r\n\t\tissue.openFileImageUploadWindow = function () {\r\n\t\t\tvar sqlStatement = \"API.FileImageManagement @Type='List', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @UserId=\" + Global.User.currentUser.Id;\r\n\t\t\tservice.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + sqlStatement + \" = %O\", data);\r\n\t\t\t\tservice.fileImageData = data;\r\n\t\t\t\tservice.FileImageLibraryControlObject = {\r\n\t\t\t\t\timageKeys: service.fileImageData.filter((i: any) => {\r\n\t\t\t\t\t\treturn i.ImageKey;\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t//---B\r\n\t\t\t\t\tremoveUploadFunction(deletedImageKey: string) {\r\n\t\t\t\t\t\tservice.dataService.SQLActionAsPromise(\"API.FileImageManagement @Type='Delete', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @ImageKey='\" + deletedImageKey + \"', @UserId=\" + Global.User.currentUser.Id).then((remainingFileImageKeyList: any) => {\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"remainingFileImageKeyList after deletion: %O\", remainingFileImageKeyList);\r\n\t\t\t\t\t\t\tservice.FileImageLibraryControlObject.imageKeys = remainingFileImageKeyList;\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"service.FileImageLibraryControlObject.imageKeys.length = \" + service.FileImageLibraryControlObject.imageKeys.length);\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"service.FileImageLibraryControlObject = %O\", service.FileImageLibraryControlObject);\r\n\t\t\t\t\t\t\tservice.signalRCore.notifyOtherClientsInGroup(\"User Issues\", \"Files Changed\", service.FileImageLibraryControlObject);\r\n\t\t\t\t\t\t\tservice.fileImageData = remainingFileImageKeyList;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\t\t\t\t\t//---B\r\n\t\t\t\t\taddUploadFunction(newImageKey: string) {\r\n\t\t\t\t\t\tservice.dataService.SQLActionAsPromise(\"API.FileImageManagement @Type='Add', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @ImageKey='\" + newImageKey + \"', @UserId=\" + Global.User.currentUser.Id).then((updatedFileImageKeyList: any) => {\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"updatedFileImageKeyList after new file added: %O\", updatedFileImageKeyList);\r\n\t\t\t\t\t\t\tservice.FileImageLibraryControlObject.imageKeys = updatedFileImageKeyList;\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"service.FileImageLibraryControlObject.imageKeys.length = \" + service.FileImageLibraryControlObject.imageKeys.length);\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"service.FileImageLibraryControlObject = %O\", service.FileImageLibraryControlObject);\r\n\t\t\t\t\t\t\tservice.signalRCore.notifyOtherClientsInGroup(\"User Issues\", \"Files Uploaded\", service.FileImageLibraryControlObject);\r\n\t\t\t\t\t\t\tservice.fileImageData = updatedFileImageKeyList;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmode: null,\r\n\t\t\t\t\tlistTitle: title,\r\n\t\t\t\t\tentityId: entityId,\r\n\t\t\t\t\tentityType: entityType,\r\n\t\t\t\t\tcloseUploadWindowFunction() {\r\n\t\t\t\t\t\tservice.FileImageLibraryControlObject = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tservice.openDialog(\"fileUpload\");\r\n\t\t\t});\r\n\t\t};\r\n\t}\r\n\r\n\topenDialog(type: string): void {\r\n\t\tvar innerWidth = window.innerWidth;\r\n\t\tif (type == 'fileUpload') {\r\n\t\t\tconst dialogRef = this.dialog.open(FileUploadListComponent, {\r\n\t\t\t\twidth: '70%',\r\n\t\t\t\theight: '70%',\r\n\t\t\t});\r\n\r\n\t\t\tdialogRef.componentInstance.fileImageLibraryControlObject =\r\n\t\t\t\tthis.FileImageLibraryControlObject;\r\n\r\n\t\t\tdialogRef.afterClosed().subscribe((result) => {\r\n\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\tconsole.log(this.componentName + ': The dialog was closed');\r\n\t\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\tthis.componentName +\r\n\t\t\t\t\t\t\t': this.FileImageLibraryControlObject.imageKeys.length = ' +\r\n\t\t\t\t\t\t\tthis.FileImageLibraryControlObject.imageKeys.length\r\n\t\t\t\t\t);\r\n\t\t\t\tthis.CountOfFilesUploaded =\r\n\t\t\t\t\tthis.FileImageLibraryControlObject.imageKeys.length;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","\r\n\r\n
        \r\n\r\n\r\n\r\n\t\r\n\t
        \r\n\r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t

        \r\n\t\t\t\t\t{{ issuesListTitle }}{{ currentLoggedInUserDisplay }}\r\n\t\t\t\t

        \r\n\t\t\t\t

        \r\n\t\t\t\t\t{{ issuesListTitle }}\r\n\t\t\t\t

        \r\n\t\t\t\t\r\n\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{ dataItem[column.field] | date : \"MM/dd/yyyy hh:mm a\" }}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tcheck_circle\r\n\r\n\t\t\t\t\t\t\t\thighlight_off\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t 0 ? dataItem.DiscussionCount + ' entr' + (dataItem.DiscussionCount > 1 ? 'ies' : 'y') + ' currently.' : '' }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t[matTooltipPosition]=\"'above'\"\r\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t\t\t\t\t\t'object-contains-content': dataItem.DiscussionCount >= 1\r\n\t\t\t\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"padding-left: 7px; padding-right: 7px\"\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t1\r\n\t\t\t\t\t\t\t\t\t
        \r\n\r\n\t\t\t\t\t\t\t\t\t 0 ? dataItem.CountOfFilesUploaded + ' file' + (dataItem.CountOfFilesUploaded > 1 ? 's' : '') + ' uploaded currently.' : '' }}\"\r\n\t\t\t\t\t\t\t\t\t\t[matTooltipPosition]=\"'above'\"\r\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t\t\t\t\t'object-contains-content': dataItem.CountOfFilesUploaded >= 1\r\n\t\t\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t\t\t\tstyle=\"margin-left: 8px\"\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t
        \r\n\r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t
        \r\n\r\n\t
        \r\n\r\n
        \r\n\r\n\r\n\r\n\r\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { IGlobal } from \"projects/shared-lib/src/lib/_models/global.model\";\r\nimport { SignalRCoreService } from \"projects/shared-lib/src/lib/services/signalr-core.service\";\r\n\r\n@Component({\r\n\tselector: \"system-tables\",\r\n\ttemplateUrl: \"./system-tables.component.html\",\r\n\tstyleUrls: [\"./system-tables.component.scss\"]\r\n})\r\nexport class SystemTablesComponent implements OnInit, OnDestroy {\r\n\tpublic global: IGlobal = Global;\r\n\tpublic columns: any;\r\n\tpublic componentName: string = \"system-tables: \";\r\n\r\n\t// public selectedEntity: any;\r\n\t// public selectedEntity$: Subject = new Subject();\r\n\r\n\tconstructor(private dataService: DataService, private changeDetector: ChangeDetectorRef, private router: Router, private signalR: SignalRCoreService) {}\r\n\r\n\tngOnInit() {\r\n\t\t// this.selectedEntity = { label: \"RDN Starting Point\", setName: \"RDN Starting Point\" };\r\n\t\t// this.selectedEntity$.subscribe((entity: any) => {\r\n\t\t// \tthis.selectedEntity = entity;\r\n\t\t// \tconsole.log(\"selectedEntity$.subscription invoked: this.selectedEntity = %O\", this.selectedEntity);\r\n\t\t// });\r\n\t\t// if (Global.User.systemTableStructure != null) {\r\n\t\t// \tthis.columns = Global.User.systemTableStructure; //-- if we've already been to System Tables, then the Global.User.systemTableStructure has already been built. Just use that instead of rebuilding the list.\r\n\t\t// }\r\n\t\t// else {\r\n\t\t\tthis.initialize(); //-- this builds out the System Table list and assigns the result to Global.User.systemTableStructure. --Kirk T. Sherer, December 7, 2023.\r\n\t\t//}\r\n\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tvar systemTableList = Global.AdminTableEditorStates.orderBy((tableEntry: any) => {\r\n\t\t\treturn tableEntry.label;\r\n\t\t}).toArray();\r\n\r\n\t\tvar global: IGlobal = Global;\r\n\t\tvar typeOfAdmin = global.User.isAdmin ? \"System\" : global.User.isOrgAdmin ? \"Organization\" : global.User.isSiteAdmin ? \"Site\" : null;\r\n\t\tvar isRockstar = global.User.currentUser.Rockstar ?? false;\r\n\r\n\t\tvar listOfPermittedTablesToEdit = [];\r\n\r\n\t\tsystemTableList.forEach((tableEntry: any) => {\r\n\r\n\t\t\t//-- list of system tables without children --\r\n\t\t\tvar authorizedRolesArray = tableEntry.role?.split(\",\");\r\n\t\t\tvar authorizedPrivilegesArray = tableEntry.privilege?.split(\",\");\r\n\t\t\tif (authorizedRolesArray != undefined || authorizedPrivilegesArray != undefined) {\r\n\t\t\t\tif (authorizedRolesArray != undefined) {\r\n\t\t\t\t\tauthorizedRolesArray.forEach((role: string) => {\r\n\t\t\t\t\t\t// if (tableEntry.setName == \"Person\" || tableEntry.setName == \"PersonBySingleOrganization\") {\r\n\t\t\t\t\t\t// \tconsole.log(\"Person\");\r\n\t\t\t\t\t\t// }\r\n\t\t\t\t\t\tswitch (role) {\r\n\t\t\t\t\t\t\tcase \"OrganizationAdministrator\":\r\n\t\t\t\t\t\t\t\tif (typeOfAdmin == \"Organization\") {\r\n\t\t\t\t\t\t\t\t\tvar existingEntry = listOfPermittedTablesToEdit.firstOrDefault((arrayEntry: any) => {\r\n\t\t\t\t\t\t\t\t\t\treturn arrayEntry.setName == tableEntry.setName;\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tif (existingEntry == null) {\r\n\t\t\t\t\t\t\t\t\t\tlistOfPermittedTablesToEdit.push(tableEntry);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"SystemAdministrator\":\r\n\t\t\t\t\t\t\t\tif (typeOfAdmin == \"System\") {\r\n\t\t\t\t\t\t\t\t\tvar existingEntry = listOfPermittedTablesToEdit.firstOrDefault((arrayEntry: any) => {\r\n\t\t\t\t\t\t\t\t\t\treturn arrayEntry.setName == tableEntry.setName;\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tif (existingEntry == null) {\r\n\t\t\t\t\t\t\t\t\t\tlistOfPermittedTablesToEdit.push(tableEntry);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"SiteAdministrator\":\r\n\t\t\t\t\t\t\t\tif (typeOfAdmin == \"Site\") {\r\n\t\t\t\t\t\t\t\t\tvar existingEntry = listOfPermittedTablesToEdit.firstOrDefault((arrayEntry: any) => {\r\n\t\t\t\t\t\t\t\t\t\treturn arrayEntry.setName == tableEntry.setName;\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tif (existingEntry == null) {\r\n\t\t\t\t\t\t\t\t\t\tlistOfPermittedTablesToEdit.push(tableEntry);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"Rockstar\":\r\n\t\t\t\t\t\t\t\tif (isRockstar) {\r\n\t\t\t\t\t\t\t\t\tvar existingEntry = listOfPermittedTablesToEdit.firstOrDefault((arrayEntry: any) => {\r\n\t\t\t\t\t\t\t\t\t\treturn arrayEntry.setName == tableEntry.setName;\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tif (existingEntry == null) {\r\n\t\t\t\t\t\t\t\t\t\tlistOfPermittedTablesToEdit.push(tableEntry);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tif (authorizedPrivilegesArray != undefined) {\r\n\t\t\t\t\tauthorizedPrivilegesArray.forEach((tablePrivilege: string) => {\r\n\t\t\t\t\t\tif (global.User.currentUser.Menu.Privileges[tablePrivilege] == true && !typeOfAdmin) {\r\n\t\t\t\t\t\t\tvar existingEntry = listOfPermittedTablesToEdit.firstOrDefault((arrayEntry: any) => {\r\n\t\t\t\t\t\t\t\treturn arrayEntry.setName == tableEntry.setName;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tif (existingEntry == null) {\r\n\t\t\t\t\t\t\t\tlistOfPermittedTablesToEdit.push(tableEntry);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (typeOfAdmin == \"System\") {\r\n\t\t\t\t\tlistOfPermittedTablesToEdit.push(tableEntry); //-- if there are no defined roles or privileges for the System Table, then only grant it to System Administrators. --Kirk T. Sherer, December 8, 2023.\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//-- list of system tables with children --\r\n\t\t\tif (tableEntry.children != null) {\r\n\t\t\t\tvar parentTableEntry = listOfPermittedTablesToEdit.firstOrDefault((arrayEntry: any) => {\r\n\t\t\t\t\treturn arrayEntry.label == tableEntry.label;\r\n\t\t\t\t});\r\n\t\t\t\tif (parentTableEntry == null) {\r\n\t\t\t\t\tlistOfPermittedTablesToEdit.push(tableEntry);\r\n\t\t\t\t\tparentTableEntry = listOfPermittedTablesToEdit.firstOrDefault((arrayEntry: any) => {\r\n\t\t\t\t\t\treturn arrayEntry.label == tableEntry.label;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tvar childEntries = [];\r\n\r\n\t\t\t\ttableEntry.children.forEach((child:any) => {\r\n\t\t\t\t\tvar authorizedRolesArray = child.role?.split(\",\");\r\n\t\t\t\t\tvar authorizedPrivilegesArray = child.privilege?.split(\",\");\r\n\r\n\t\t\t\t\tif (authorizedRolesArray != undefined || authorizedPrivilegesArray != undefined) {\r\n\t\t\t\t\t\tif (authorizedRolesArray != undefined) {\r\n\t\t\t\t\t\t\tauthorizedRolesArray.forEach((role: string) => {\r\n\t\t\t\t\t\t\t\tswitch (role) {\r\n\t\t\t\t\t\t\t\t\tcase \"OrganizationAdministrator\":\r\n\t\t\t\t\t\t\t\t\t\tif (typeOfAdmin == \"Organization\") {\r\n\t\t\t\t\t\t\t\t\t\t\tvar existingEntry = childEntries.firstOrDefault((arrayEntry: any) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn arrayEntry.setName == child.setName;\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\tif (existingEntry == null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tchildEntries.push(child);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\tcase \"SystemAdministrator\":\r\n\t\t\t\t\t\t\t\t\t\tif (typeOfAdmin == \"System\") {\r\n\t\t\t\t\t\t\t\t\t\t\tvar existingEntry = childEntries.firstOrDefault((arrayEntry: any) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn arrayEntry.setName == child.setName;\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\tif (existingEntry == null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tchildEntries.push(child);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\tcase \"SiteAdministrator\":\r\n\t\t\t\t\t\t\t\t\t\tif (typeOfAdmin == \"Site\") {\r\n\t\t\t\t\t\t\t\t\t\t\tvar existingEntry = childEntries.firstOrDefault((arrayEntry: any) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn arrayEntry.setName == child.setName;\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\tif (existingEntry == null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tchildEntries.push(child);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (authorizedPrivilegesArray != undefined) {\r\n\t\t\t\t\t\t\tauthorizedPrivilegesArray.forEach((tablePrivilege: string) => {\r\n\t\t\t\t\t\t\t\tif (Global.User.currentUser.Menu.Privileges[tablePrivilege] == true && !typeOfAdmin) {\r\n\t\t\t\t\t\t\t\t\tvar existingEntry = childEntries.firstOrDefault((arrayEntry: any) => {\r\n\t\t\t\t\t\t\t\t\t\treturn arrayEntry.setName == child.setName;\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tif (existingEntry == null) {\r\n\t\t\t\t\t\t\t\t\t\tchildEntries.push(child);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (typeOfAdmin == \"System\") {\r\n\t\t\t\t\t\t\tchildEntries.push(child); //-- if there are no defined roles or privileges for the System Table, then only grant it to System Administrators. --Kirk T. Sherer, December 8, 2023.\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\r\n\t\t\t\tparentTableEntry.children = childEntries.orderBy((child: any) => { return child.label }).toArray();\r\n\t\t\t\t//console.log(\"parentTableEntry = %O\", parentTableEntry);\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\t//console.log(\"listOfPermittedTablesToEdit = %O\", listOfPermittedTablesToEdit);\r\n\r\n\t\tvar countOfSystemTables = listOfPermittedTablesToEdit.length;\r\n\t\tvar arrayOfChildRecords = listOfPermittedTablesToEdit.where((tableEntry:any) => { return tableEntry.children != undefined\t}).toArray();\r\n\t\tarrayOfChildRecords.forEach((item:any) => {\r\n\t\t\tcountOfSystemTables += item.children.length;\r\n\t\t})\r\n\t\tvar countOfGroups = arrayOfChildRecords.length;\r\n\t\tcountOfSystemTables += countOfGroups;\r\n\t\tvar splitCount = countOfSystemTables > 10 ? countOfSystemTables / 2 : countOfSystemTables;\r\n\t\tvar counter: number = 1;\r\n\t\tGlobal.User.DebugMode && console.log(\"system-tables: count of System Tables = \" + countOfSystemTables + \", splitCount = \" + splitCount);\r\n\t\tlistOfPermittedTablesToEdit.forEach((tableEntry: any) => {\r\n\t\t\ttableEntry.count = counter;\r\n\t\t\tif (counter < splitCount + 1) {\r\n\t\t\t\ttableEntry.column = 1;\r\n\t\t\t} else {\r\n\t\t\t\ttableEntry.column = 2;\r\n\t\t\t}\r\n\t\t\tif (tableEntry.children != undefined) {\r\n\t\t\t\t//-- the following keeps all the children together and puts them in the second column if the length of the children array plus the counter is greater than the splitCount of all entries + 1.\r\n\t\t\t\tif ((counter + tableEntry.children.length) < (splitCount + 1)) {\r\n\t\t\t\t\ttableEntry.column = 1;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ttableEntry.column = 2;\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttableEntry.children.forEach((child:any) => {\r\n\t\t\t\t\tchild.count = counter;\r\n\t\t\t\t\tchild.column = tableEntry.column; //-- keep all the children in the same column as the parent.\r\n\t\t\t\t\tcounter++;\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tcounter++;\r\n\t\t});\r\n\t\tGlobal.User.DebugMode && console.log(\"system-tables: systemTableList = %O\", listOfPermittedTablesToEdit);\r\n\r\n\t\tthis.columns = [\r\n\t\t\t{\r\n\t\t\t\titems: listOfPermittedTablesToEdit\r\n\t\t\t\t\t.where((tableEntry: any) => {\r\n\t\t\t\t\t\treturn tableEntry.column == 1;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.select((tableEntry: any) => {\r\n\t\t\t\t\t\treturn { label: tableEntry.label, setName: tableEntry.setName, role: tableEntry.role, privilege: tableEntry.privilege, children: tableEntry.children };\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.toArray()\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\titems: listOfPermittedTablesToEdit\r\n\t\t\t\t\t.where((tableEntry: any) => {\r\n\t\t\t\t\t\treturn tableEntry.column == 2;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.select((tableEntry: any) => {\r\n\t\t\t\t\t\treturn { label: tableEntry.label, setName: tableEntry.setName, role: tableEntry.role, privilege: tableEntry.privilege, children: tableEntry.children };\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.toArray()\r\n\t\t\t}\r\n\t\t];\r\n\r\n\t\tGlobal.User.DebugMode && console.log(\"system-tables: this.columns = %O\", this.columns);\r\n\t\tGlobal.User.systemTableStructure = this.columns; //-- this is so we don't have to rebuild this structure every time we return to the System Table list.\r\n\t\tthis.signalR.LogActivity(\"Accessed System Tables.\");\r\n\r\n\t}\r\n\r\n\tcheckAuthorization(tableEntry: any): boolean {\r\n\t\tvar authorizedRolesArray = tableEntry.role.split(\",\");\r\n\t\tvar isAuthorized = false;\r\n\t\tvar validatingUserAccess = true;\r\n\t\tif (authorizedRolesArray != undefined) {\r\n\t\t\tauthorizedRolesArray.forEach((role: string) => {\r\n\t\t\t\tswitch (role) {\r\n\t\t\t\t\tcase \"OrganizationAdministrator\":\r\n\t\t\t\t\t\tif (validatingUserAccess && Global.User.isOrgAdmin) {\r\n\t\t\t\t\t\t\tisAuthorized = true;\r\n\t\t\t\t\t\t\tvalidatingUserAccess = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"SystemAdministrator\":\r\n\t\t\t\t\t\tif (validatingUserAccess && Global.User.isAdmin) {\r\n\t\t\t\t\t\t\tisAuthorized = true;\r\n\t\t\t\t\t\t\tvalidatingUserAccess = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"SiteAdministrator\":\r\n\t\t\t\t\t\tif (validatingUserAccess && Global.User.isSiteAdmin) {\r\n\t\t\t\t\t\t\tisAuthorized = true;\r\n\t\t\t\t\t\t\tvalidatingUserAccess = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tif (validatingUserAccess) {\r\n\t\t\t\t\t\t\tisAuthorized = false;\r\n\t\t\t\t\t\t\tvalidatingUserAccess = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tisAuthorized = true; //-- it's ok to display this system table since no role has been defined for it.\r\n\t\t}\r\n\t\tconsole.log(this.componentName + \"checkAuthorization(\" + tableEntry.label + \"): \" + isAuthorized + \". tableEntry = %O\", tableEntry);\r\n\t\treturn isAuthorized;\r\n\t}\r\n\r\n\tselectEntity(item: any) {\r\n\t\tif (this.checkAuthorization(item)) {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"selectEntity function invoked: item = %O\", item);\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"Routing user to /layout/tables/\" + item.setName);\r\n\r\n\t\t\t// this.selectedEntity$.next(item);\r\n\t\t\tthis.router.navigate([\"/layout/tables/\" + item.setName]).then((data: boolean) => {\r\n\t\t\t\t\tif (!data) {\r\n\t\t\t\t\t\t//-- weren't able to route to the setName.\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"Routing user to /layout/tables/\" + item.setName + \" was unsuccessful.\");\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//-- routing to the release notes was successful.\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"Routing user to /layout/tables/\" + item.setName + \" was successful.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((e) => {\r\n\t\t\t\t\t//-- Error in routing to the release notes, so route the user to the last visited route.\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"Error in routing user to /layout/tables/\" + item.setName + \": \" + e);\r\n\t\t\t\t});\r\n\r\n\t\t\t// var sqlStatement = \"API.RDN_JSONObjectForSQLEntity @setName='\" + item.setName + \"'\";\r\n\t\t\t// console.log(\"sqlStatement = \" + sqlStatement);\r\n\t\t\t// this.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\t// \tconsole.log(\"data = %O\", data);\r\n\t\t\t// \tthis.selectedEntity = data;\r\n\t\t\t// });\r\n\t\t}\r\n\t}\r\n\r\n\topenTableEditor(item: any) {}\r\n}\r\n","
        \r\n
        System Tables
        \r\n
        \r\n
          \r\n
          \r\n
          \r\n
            \r\n
          • \r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t\t
            {{item.label}}
            \r\n\t\t\t\t\t\t\t\t
              \r\n\t\t\t\t\t\t\t\t\t
            • \r\n\t\t\t\t\t\t\t\t\t\t
              \r\n\t\t\t\t\t\t\t\t\t\t\t{{child.label}}\r\n\t\t\t\t\t\t\t\t\t\t
              \r\n\t\t\t\t\t\t\t\t\t
            • \r\n\t\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t
            \r\n\t\t\t\t\t\t\t\t{{item.label}}\r\n\t\t\t\t\t\t\t
            \r\n
          • \r\n
          \r\n
          \r\n
          \r\n
        \r\n
        \r\n
        \r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { CurrencyPipe } from \"@angular/common\";\r\nimport { Global } from \"../../_constants/global.variables\";\r\nimport _ from \"lodash\";\r\nimport swal from \"sweetalert2\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { FormControl, FormGroup } from \"@angular/forms\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport moment from \"moment\";\r\nimport { DomSanitizer, SafeResourceUrl } from \"@angular/platform-browser\";\r\nimport { DataService } from \"../../services/data.service\";\r\nimport { SecurityService } from \"../../services/security.service\";\r\nimport { IGlobal } from \"../../_models/global.model\";\r\nimport { UtilityService } from \"../../services/utility.service\";\r\nimport { RecursiveDataNavigatorService } from \"../../services/recursive-data-navigator.service\";\r\nimport { CdkDragDrop, CdkDrag, moveItemInArray } from \"@angular/cdk/drag-drop\";\r\nimport { FileUploadListComponent } from \"../file-upload-list/file-upload-list.component\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { AuthenticationService } from \"../../services/authentication.service\";\r\nimport { SignalRCoreService } from \"../../services/signalr-core.service\";\r\nimport { TextboxQuestion } from \"../../_models/dynamic-fields/questions/question-textbox\";\r\nimport { SliderYesNoQuestion } from \"../../_models/dynamic-fields/questions/question-slider-yes-no\";\r\nimport { NewPropertyQuestion } from \"../../_models/dynamic-fields/questions/question-new-property\";\r\n\r\nexport interface EditRecordObject {\r\n\trow?: any;\r\n\ttype?: string;\r\n\tevent?: any;\r\n\tindexReference?: any;\r\n}\r\n@Component({\r\n\tselector: \"lib-recursive-data-navigator\",\r\n\ttemplateUrl: \"./recursive-data-navigator.component.html\",\r\n\tstyleUrls: [\"./recursive-data-navigator.component.scss\"]\r\n})\r\nexport class RecursiveDataNavigatorComponent implements OnInit {\r\n\t@Input() public options: any;\r\n\tpublic global: IGlobal = Global;\r\n\tpublic searchText: string;\r\n\tpublic entity: any;\r\n\tpublic editModel: any;\r\n\tpublic showEditPane: boolean = false;\r\n\tpublic fileImageUploadEnabled: boolean = false;\r\n\tpublic jsonObject: any;\r\n\tpublic componentName: string = \"RDN: \";\r\n\tprivate structure: any;\r\n\tpublic currentSet: any;\r\n\tpublic selectedRecursiveSet: any;\r\n\tpublic trElement: string;\r\n\tpublic numberOfColumns: number = 0;\r\n\tpublic mainStoredProcedure: string;\r\n\tpublic containingDivId: number;\r\n\tpublic recursiveSetColumnNamesForThisInstance: Array;\r\n\tpublic currentStatus: string;\r\n\tpublic editFormOptions: any;\r\n\tpublic currentSetData: any;\r\n\tpublic currentSetDataCountOfRecords: number;\r\n\tpublic editFormTitle: string;\r\n\tpublic editFormSubTitle: string;\r\n\tpublic currentlyEditedRecord: any;\r\n\tpublic loadingEditForm: boolean = false;\r\n\tpublic allowAddRecord: boolean = true;\r\n\tpublic allowDownloadList: boolean = false;\r\n\tpublic allowCreateTagsForAsset: boolean = false;\r\n\tpublic visibleColumns: any;\r\n\tpublic currentChildColumnLink: string;\r\n\tpublic currentChildColumnLinkValue: any;\r\n\tpublic latestFullStoredProcedureString: string;\r\n\tpublic currentXPosition: number;\r\n\tpublic currentYPosition: number;\r\n\tpublic currentIndex: string;\r\n\tpublic allowDragAndDrop: boolean = false;\r\n\tpublic isLoadingList: boolean = false;\r\n\tpublic editQuestions: any;\r\n\r\n\tpublic min: Date = new Date(1917, 0, 1);\r\n\tpublic max: Date = new Date(2000, 11, 31);\r\n\r\n\tprivate currentStatus$: BehaviorSubject = new BehaviorSubject(\"\");\r\n\tpublic accessTokenChanged$: any;\r\n\tpublic currentUserAccessToken: string = Global.User.currentUser.ODataAccessToken;\r\n\tpublic currentUserIsAdmin: boolean = Global.User.isAdmin;\r\n\tprivate videoKeyURL: string = Global.Video.serverArchiveUrl;\r\n\tprivate accessToken: string = Global.User.currentUser.ODataAccessToken;\r\n\r\n\tprivate downloadSet: string = \"\";\r\n\r\n\tpublic iconmenu: string = \"doc,docx,xls,xlsm,xlsx,msg,pdf,ppt,pptx,js,css,mp4,mp3,wav,zip,txt,json,config,cs,aspx,html,tif,tiff,vsd,chm,asp,sql,hl7,xml,linq,rdl,wma,msi,exe,reg,csv,webm\";\r\n\tprivate gseAssetTypeIds: Array = [86292, 86293, 86294, 86295, 86296, 86297, 86299, 86300];\r\n\tprivate fleetAssetTypeIds: Array = [86313, 86314];\r\n\r\n\tpublic myForm: FormGroup = new FormGroup({\r\n\t\tbirthDate: new FormControl(new Date(2000, 10, 10))\r\n\t});\r\n\r\n\tpublic fileImageData: any;\r\n\tpublic FileImageLibraryControlObject: any;\r\n\tpublic countOfFilesUploaded: number = 0;\r\n\tprivate fullDataCacheSubscription: any;\r\n\tpublic fullDataCacheExists: boolean = false;\r\n\r\n\tconstructor(private dataService: DataService, public rdnService: RecursiveDataNavigatorService, private toastr: ToastrService, private securityService: SecurityService, private sanitizer: DomSanitizer, private utilityService: UtilityService, public dialog: MatDialog, private authenticationService: AuthenticationService, private signalR: SignalRCoreService) {\r\n\t\tthis.searchForText = _.debounce(this.searchForText, 300);\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.rdnService.currentUser$.next(Global.User.currentUser);\r\n\t\tthis.getCurrentUserODataAccessToken();\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"initialize --> Global.User.currentUser.ODataAccessToken = \" + Global.User.currentUser.ODataAccessToken);\r\n\r\n\t\tif (!Global.FullDataCacheExists) {\r\n\t\t\tthis.fullDataCacheSubscription = this.dataService.fullDataCacheExists$.subscribe((data: any) => {\r\n\t\t\t\tif (data === true) {\r\n\t\t\t\t\tthis.fullDataCacheExists = true;\r\n\t\t\t\t\tthis.initialize();\r\n\t\t\t\t\tthis.fullDataCacheSubscription?.unsubscribe();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.fullDataCacheExists = true;\r\n\t\t\tthis.initialize();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tgetCurrentUserODataAccessToken() {\r\n\t\tthis.currentUserAccessToken = Global.User.currentUser.ODataAccessToken;\r\n\t\tthis.currentUserIsAdmin = Global.User.isAdmin;\r\n\t\tconsole.log(this.componentName + \"Global.User.isAdmin = \" + Global.User.isAdmin);\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tthis.structure = this.rdnService.structure;\r\n\t\tthis.currentStatus = \"\";\r\n\r\n\t\tthis.currentStatus$.subscribe((currentStatus: string) => {\r\n\t\t\tif (currentStatus == \"view-list\" && this.currentIndex != null) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tlet element = document.getElementById(this.currentIndex);\r\n\t\t\t\t\telement?.scrollIntoView({\r\n\t\t\t\t\t\tbehavior: \"smooth\",\r\n\t\t\t\t\t\tblock: \"nearest\",\r\n\t\t\t\t\t\tinline: \"start\"\r\n\t\t\t\t\t});\r\n\t\t\t\t}, 300);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"initialize --> options = %O\", this.options);\r\n\t\tthis.currentChildColumnLink = this.options.childColumnLink;\r\n\t\tthis.currentChildColumnLinkValue = this.options.childColumnLinkValue;\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"initialize --> currentChildColumnLink = \", this.currentChildColumnLink);\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"initialize --> currentChildColumnLinkValue = \", this.currentChildColumnLinkValue);\r\n\t\tvar requestedSetName = this.options.setName;\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"initialize --> options.setName = \" + requestedSetName);\r\n\t\tthis.currentSet = this.structure.firstOrDefault((s: any) => {\r\n\t\t\treturn s.setName == requestedSetName;\r\n\t\t});\r\n\t\tif (this.currentSet == null) {\r\n\t\t\tthis.currentSet = this.rdnService.structure.firstOrDefault((s: any) => {\r\n\t\t\t\treturn s.sets?.firstOrDefault((set: any) => {\r\n\t\t\t\t\treturn set.Name == requestedSetName;\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tthis.currentSet.setName = requestedSetName;\r\n\t\t\tthis.currentSet.tableDisplay.originalSQLStoredProcedure = this.currentSet.tableDisplay.originalSQLStoredProcedure == null ? this.currentSet.tableDisplay.sqlStoredProcedure : this.currentSet.tableDisplay.originalSQLStoredProcedure;\r\n\t\t\tthis.currentSet.tableDisplay.sqlStoredProcedure =\r\n\t\t\t\tthis.currentSet.tableDisplay.originalSQLStoredProcedure +\r\n\t\t\t\tthis.currentSet.sets.firstOrDefault((set: any) => {\r\n\t\t\t\t\treturn set.Name == requestedSetName;\r\n\t\t\t\t}).ParameterValue;\r\n\t\t}\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"initialize --> Global.RDN.recursedSets = %O\", Global.RDN.recursedSets);\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"initialize --> currentSet = %O\", this.currentSet);\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"initialize --> currentSet.setName = \" + this.currentSet.setName);\r\n\t\tthis.signalR.LogActivity(\"Working with RDN Set: \" + this.currentSet.setName);\r\n\t\tthis.containingDivId = this.options.containingDivId;\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"initialize --> containingDivId = \" + this.options.containingDivId);\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"initialize --> Global.User.currentUser.ODataAccessToken = \" + Global.User.currentUser.ODataAccessToken);\r\n\t\tthis.allowAddRecord = this.currentSet.editor && this.currentSet.editor.fields.length > 0 && this.currentSet.tableDisplay.allowModification && !this.currentSet.tableDisplay.disableAddRecord && ((this.options.containingDivId == null && !this.currentSet.tableDisplay.disableAddRecordOutsideRecursedSet) || (this.options.containingDivId != null && !this.currentSet.tableDisplay.disableAddRecordInsideRecursedSet));\r\n\t\tthis.allowDownloadList = this.currentSet.editor && this.currentSet.editor.fields.length > 0 && this.currentSet.tableDisplay.allowDownloadList;\r\n\t\tthis.allowCreateTagsForAsset = this.currentSet.editor && this.currentSet.editor.fields.length > 0 && this.currentSet.tableDisplay.allowCreateTagsForAsset;\r\n\r\n\t\tthis.visibleColumns = this.currentSet.tableDisplay.displayColumns\r\n\t\t\t.where((col: any) => {\r\n\t\t\t\tvar columnShouldBeVisible = true;\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"col.name = \" + col.name + \", col.hidden = \" + col.hidden + \", col.role = \" + col.role + \", currentUserIsAdmin = \" + this.currentUserIsAdmin);\r\n\t\t\t\tif (col.role == \"SystemAdministrator\" && !this.currentUserIsAdmin) {\r\n\t\t\t\t\tcolumnShouldBeVisible = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (col.hidden == true) {\r\n\t\t\t\t\t\tcolumnShouldBeVisible = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn columnShouldBeVisible == true ? columnShouldBeVisible : false;\r\n\t\t\t})\r\n\t\t\t.toArray();\r\n\r\n\t\tthis.allowDragAndDrop =\r\n\t\t\tthis.currentSet.tableDisplay.displayColumns\r\n\t\t\t\t.where((col: any) => {\r\n\t\t\t\t\treturn col.name == \"Ordinal\";\r\n\t\t\t\t})\r\n\t\t\t\t.firstOrDefault() != null;\r\n\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"this.visibleColumns = %O\", this.visibleColumns);\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"this.allowDragAndDrop = %O\", this.allowDragAndDrop);\r\n\t\tthis.numberOfColumns = this.visibleColumns.length;\r\n\t\tvar sqlStoredProcedure = null;\r\n\r\n\t\tif (this.currentSet?.tableDisplay?.dataCacheCollection != null) {\r\n\t\t\tthis.formatDataCacheCollection();\r\n\t\t}\r\n\t\telse if (this.currentSet.tableDisplay.apiUrl != null) {\r\n\t\t\tvar service = this;\r\n\t\t\tvar url = service.currentSet.tableDisplay.apiUrl;\r\n\r\n\t\t\tif (service.currentChildColumnLink != null) {\r\n\t\t\t\turl += \"?\" + service.currentChildColumnLink + \"=\" + service.currentChildColumnLinkValue;\r\n\t\t\t}\r\n\t\t\tservice.dataService.CallThingMethod(url).then((data:any) => {\r\n\t\t\t\tservice.signalR.LogActivity(\"Execution of \" + url + \" was successful.\");\r\n\t\t\t\tservice.formatData(data, \"JSON\");\r\n\t\t\t\tservice.currentStatus$.next(this.currentStatus);\r\n\t\t\t\tservice.isLoadingList = false;\r\n\t\t\t\treturn data;\r\n\t\t\t});\r\n\t\t}\r\n\t\telse if (this.currentSet.tableDisplay.sqlStoredProcedure != null) {\r\n\t\t\tthis.buildStoredProcedureString(this.currentSet.tableDisplay.sqlStoredProcedure, this.options, this.currentSet.tableDisplay.expandedStoredProcedure ? null : this.currentSet.tableDisplay.displayColumns); //-- if the stored procedure is already expanding the relational fields, then don't send the display columns. They are already listed in the stored procedure.\r\n\t\t} else {\r\n\t\t\tif (this.currentSet.tableDisplay.tableName != null) {\r\n\t\t\t\tthis.buildStoredProcedureString(\"API.RDN_GetTop50RecordsForSQLTable @tableName='\" + this.currentSet.tableDisplay.tableName + \"'\", this.options, this.currentSet.tableDisplay.displayColumns);\r\n\t\t\t}\r\n\t\t}\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"Global.RDN = %O\", Global.RDN);\r\n\t}\r\n\r\n\tformatDataCacheCollection() {\r\n\t\tthis.isLoadingList = true;\r\n\t\tvar data = [];\r\n\t\tif (this.currentSet.tableDisplay.orderBy != null) {\r\n\t\t\tif (this.currentSet.tableDisplay.orderBy.sortOrder == \"desc\") {\r\n\t\t\t\tdata = _.orderBy(this.currentSet.tableDisplay.dataCacheCollection, this.currentSet.tableDisplay.orderBy.column, \"desc\");\r\n\t\t\t} else {\r\n\t\t\t\tdata = _.orderBy(this.currentSet.tableDisplay.dataCacheCollection, this.currentSet.tableDisplay.orderBy.column, \"asc\");\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdata = this.currentSet.tableDisplay.dataCacheCollection;\r\n\t\t}\r\n\r\n\t\tif (data.length > 0) {\r\n\t\t\tdata = data?.take(50).toArray();\r\n\t\t\tthis.formatData(data, \"data cache\");\r\n\t\t}\r\n\t\tthis.currentStatus$.next(this.currentStatus);\r\n\t\tthis.rdnService.editingForm$.next(Global.RDN.editingForm);\r\n\t\tthis.isLoadingList = false;\r\n\t}\r\n\r\n\tbuildStoredProcedureString(sqlStoredProcedure: string, options: any, displayColumns?: any) {\r\n\t\tif (this.currentSet.tableDisplay.entityName == \"Security.iOPSUser\" || this.currentSet.tableDisplay.entityName == \"Person\" || this.currentSet.tableDisplay.entityName == \"Camera\") {\r\n\t\t\tthis.getCurrentUserODataAccessToken();\r\n\t\t\tsqlStoredProcedure += \" @accessToken='\" + this.currentUserAccessToken + \"'\";\r\n\t\t} else if (sqlStoredProcedure == \"API.RDN_SiteList_BySingleOrganization\") {\r\n\t\t\tsqlStoredProcedure += \" @Username='\" + Global.User.currentUser.Username + \"'\";\r\n\t\t}\r\n\r\n\t\tif (displayColumns) {\r\n\t\t\tvar fieldList = displayColumns\r\n\t\t\t\t.where((c: any) => {\r\n\t\t\t\t\treturn c.type != \"set\" && c.name != \"actions\";\r\n\t\t\t\t})\r\n\t\t\t\t.toArray()\r\n\t\t\t\t.select((col: any) => {\r\n\t\t\t\t\treturn col.name;\r\n\t\t\t\t})\r\n\t\t\t\t.toArray()\r\n\t\t\t\t.join(\",\");\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"fieldList = \" + fieldList);\r\n\r\n\t\t\tif (fieldList != \"\") {\r\n\t\t\t\tsqlStoredProcedure = sqlStoredProcedure + \", @fieldList='\" + fieldList + \"'\";\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this.currentSet.tableDisplay.listFilter != null) {\r\n\t\t\t\tsqlStoredProcedure = sqlStoredProcedure + \" \" + this.currentSet.tableDisplay.listFilter.parameterForStoredProcedure + \"=\" + this.currentSet.tableDisplay.listFilter.trueParameter.value;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (options.childColumnLink && sqlStoredProcedure.indexOf(\"RDN_GetTop50RecordsForSQLTable\") > 0) {\r\n\t\t\tsqlStoredProcedure = sqlStoredProcedure + \", @childColumnLink='\" + options.childColumnLink + \"', @childColumnLinkValue='\" + options.childColumnLinkValue + \"'\";\r\n\t\t} else {\r\n\t\t\tif (options.childColumnLink) {\r\n\t\t\t\t//-- we're using a stored procedure that is expecting the 'childColumnLink' as the actual field name for the childColumnLinkValue. --Kirk T. Sherer, May 12, 2021.\r\n\t\t\t\tif (sqlStoredProcedure.indexOf(\"@\") > 0) {\r\n\t\t\t\t\t//-- if we already have at least one @ parameter, add a comma since we're adding another one. --Kirk T. Sherer, June 2, 2021.\r\n\t\t\t\t\tsqlStoredProcedure += \", \";\r\n\t\t\t\t}\r\n\t\t\t\tif (options.childColumnLink.indexOf(\"Id\") == -1) {\r\n\t\t\t\t\t//-- we're not dealing with an Id field for the column link, so we'll have to assume the field needs quotes around the value. --Kirk T. Sherer, June 11, 2021.\r\n\t\t\t\t\tsqlStoredProcedure += \" @\" + options.childColumnLink + \"='\" + options.childColumnLinkValue + \"'\";\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsqlStoredProcedure += \" @\" + options.childColumnLink + \"=\" + options.childColumnLinkValue;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (options.parameters) {\r\n\t\t\t\t\tvar numberOfParameters = options.parameters.length;\r\n\t\t\t\t\tvar countOfParameters = 0;\r\n\t\t\t\t\toptions.parameters.forEach((parameter: any) => {\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"parameter.Value = \" + parameter.Value);\r\n\t\t\t\t\t\tvar isDate = moment.isDate(parameter.Value);\r\n\t\t\t\t\t\tif (isDate) {\r\n\t\t\t\t\t\t\tparameter.Value = this.utilityService.ConvertDateTimeToUTCDateTimeAndFormatForSQLParameter(parameter.Value);\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"parameter.Value = \" + parameter.Value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (parameter.Name.indexOf(\"Id\") == -1) {\r\n\t\t\t\t\t\t\t//-- we're not dealing with an Id field for the column link, so we'll have to assume the field needs quotes around the value. --Kirk T. Sherer, November 4, 2022.\r\n\t\t\t\t\t\t\tsqlStoredProcedure += \" \" + parameter.Name + \"='\" + parameter.Value + \"'\";\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tsqlStoredProcedure += \" \" + parameter.Name + \"=\" + parameter.Value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcountOfParameters++;\r\n\t\t\t\t\t\tif (countOfParameters < numberOfParameters) {\r\n\t\t\t\t\t\t\tsqlStoredProcedure += \", \";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"parameter = %O\", parameter);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!this.mainStoredProcedure) {\r\n\t\t\tthis.mainStoredProcedure = sqlStoredProcedure; //-- saving this as the baseline stored procedure string for search text to go back to original list. --Kirk T. Sherer, May 12, 2021.\r\n\t\t}\r\n\r\n\t\tthis.executeStoredProcedure(sqlStoredProcedure);\r\n\t}\r\n\r\n\texecuteStoredProcedure(sqlStoredProcedure: string) {\r\n\t\tvar service = this;\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"<--- executeStoredProcedure invoked --->\");\r\n\t\tGlobal.User.DebugMode && console.log(service.componentName + \"executeStoredProcedure --> sqlStoredProcedure = \" + sqlStoredProcedure);\r\n\r\n\t\tthis.latestFullStoredProcedureString = sqlStoredProcedure;\r\n\t\ttry {\r\n\t\t\tthis.signalR.LogActivity(\"Executed RDN Stored Procedure: \" + sqlStoredProcedure);\r\n\r\n\t\t\tthis.isLoadingList = true;\r\n\t\t\tthis.dataService.SQLActionAsPromise(sqlStoredProcedure).then((data: any) => {\r\n\t\t\t\tthis.signalR.LogActivity(\"Execution of RDN Stored Procedure was successful.\");\r\n\t\t\t\tthis.formatData(data, \"stored procedure\");\r\n\t\t\t\tservice.currentStatus$.next(service.currentStatus);\r\n\t\t\t\tthis.isLoadingList = false;\r\n\t\t\t\treturn data;\r\n\t\t\t});\r\n\t\t} catch (error) {\r\n\t\t\tswal.fire(\"ERROR: \" + error.message);\r\n\t\t\tthis.isLoadingList = false;\r\n\t\t}\r\n\t}\r\n\r\n\tformatData(data: any, formatType: string) {\r\n\t\tvar service = this;\r\n\t\tGlobal.User.DebugMode && console.log(service.componentName + formatType + \" result set = %O\", data);\r\n\r\n\t\tservice.currentSetData = data;\r\n\t\tservice.currentSetDataCountOfRecords = data.length;\r\n\t\tGlobal.User.DebugMode && console.log(service.componentName + \"service.currentSetDataCountOfRecords = \" + service.currentSetDataCountOfRecords);\r\n\r\n\t\tif (data.length > 0) {\r\n\r\n\t\t\tthis.recursiveSetColumnNamesForThisInstance = service.currentSet.tableDisplay.displayColumns\r\n\t\t\t.where((column: any) => {\r\n\t\t\t\treturn column.type == \"set\";\r\n\t\t\t})\r\n\t\t\t.select((column: any) => {\r\n\t\t\t\treturn column.name;\r\n\t\t\t})\r\n\t\t\t.toArray();\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"this.recursiveSetColumnNamesForThisInstance = %O\", this.recursiveSetColumnNamesForThisInstance);\r\n\r\n\t\t\tif (service.currentSet.tableDisplay.orderBy != null) {\r\n\t\t\t\tif (service.currentSet.tableDisplay.orderBy.sortOrder == \"desc\") {\r\n\t\t\t\t\tdata = _.orderBy(data, service.currentSet.tableDisplay.orderBy.column, \"desc\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdata = _.orderBy(data, service.currentSet.tableDisplay.orderBy.column, \"asc\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar downloadFieldsExist = false;\r\n\r\n\t\t\tdata.forEach((row: any) => {\r\n\t\t\t\tvar downloadRowString = \"\";\r\n\t\t\t\tvar countOfDownloadFields = 0;\r\n\t\t\t\t//Global.User.DebugMode && console.log(service.componentName + \"row = %O\", row);\r\n\t\t\t\tvar originalRow = row;\r\n\t\t\t\t//Global.User.DebugMode && console.log(service.componentName + \"originalRow = %O\", originalRow);\r\n\t\t\t\tservice.currentSet.tableDisplay.displayColumns.forEach((column: any) => {\r\n\t\t\t\t\t//Current State\r\n\t\t\t\t\t//row[column.name] = a primitive value;\r\n\t\t\t\t\t//\r\n\t\t\t\t\t//Reformat to:\r\n\t\t\t\t\tif (column.download) {\r\n\t\t\t\t\t\tif (countOfDownloadFields > 0) {\r\n\t\t\t\t\t\t\tdownloadRowString += \"~~!!\" + column.name + \"^\" + row[column.name];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tdownloadRowString += column.name + \"^\" + row[column.name];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcountOfDownloadFields++;\r\n\t\t\t\t\t\tdownloadFieldsExist = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (column.type == \"text\") {\r\n\t\t\t\t\t\tvar columnValue = \"\" + row[column.name];\r\n\r\n\t\t\t\t\t\tvar plusSignDelimiter = \"+++\";\r\n\t\t\t\t\t\tif (columnValue.indexOf(plusSignDelimiter) !== -1) {\r\n\t\t\t\t\t\t\tif (columnValue.indexOf(plusSignDelimiter) <= 1) {\r\n\t\t\t\t\t\t\t\tcolumnValue = columnValue.replace(\"+++\", \"\");\r\n\t\t\t\t\t\t\t\tif (columnValue.indexOf(plusSignDelimiter) !== -1) {\r\n\t\t\t\t\t\t\t\t\tcolumnValue = columnValue.split(\"+++\").join(\"\\r\\n\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tcolumnValue = columnValue.split(\"+++\").join(\"\\r\\n\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"columnValue.slice(columnValue.length - 7) = \" + columnValue.slice(columnValue.length - 7));\r\n\r\n\t\t\t\t\t\t\tif (columnValue.slice(columnValue.length - 7) == \"\\r\\nAND\\r\\n\") {\r\n\t\t\t\t\t\t\t\tcolumnValue = columnValue.substring(0, columnValue.length - 7);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcolumnValue = row[column.name];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\trow[column.name] = {\r\n\t\t\t\t\t\t\tvalue: columnValue,\r\n\t\t\t\t\t\t\trdnRecursionSet: null\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\trow[column.name] = {\r\n\t\t\t\t\t\t\tvalue: row[column.name],\r\n\t\t\t\t\t\t\trdnRecursionSet: null\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (column.type == \"set\") {\r\n\t\t\t\t\t\tvar currentContainingDivId = ++Global.RDN.maxId;\r\n\r\n\t\t\t\t\t\tif (column.parentColumnLink != null) {\r\n\t\t\t\t\t\t\tvar recursiveSet = {\r\n\t\t\t\t\t\t\t\tcontainingDivId: currentContainingDivId,\r\n\t\t\t\t\t\t\t\tparentColumnLink: column.parentColumnLink,\r\n\t\t\t\t\t\t\t\tchildColumnLink: column.childColumnLink,\r\n\t\t\t\t\t\t\t\tchildColumnLinkValue: originalRow[column.parentColumnLink]?.value != null ? originalRow[column.parentColumnLink].value : originalRow[column.parentColumnLink], //--original row contains the row the way it came from SQL Server.\r\n\t\t\t\t\t\t\t\tsetName: column.setName\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\trow[column.name].rdnRecursionSet = recursiveSet;\r\n\t\t\t\t\t\t\tGlobal.RDN.recursedSets.push(recursiveSet);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t//-- sending parameters to the stored procedure rather than a child column link since the table represented in the stored procedure really isn't a child table of the table where the\r\n\t\t\t\t\t\t\t//-- button-click originated. --Kirk T. Sherer, November 4, 2022.\r\n\t\t\t\t\t\t\tvar parameterListWithValues = [];\r\n\t\t\t\t\t\t\tcolumn.parameters.forEach((parameter: any) => {\r\n\t\t\t\t\t\t\t\tvar parameterWithValue = {\r\n\t\t\t\t\t\t\t\t\tName: parameter.name,\r\n\t\t\t\t\t\t\t\t\tValue: originalRow[parameter.value]?.value != null ? originalRow[parameter.value].value : originalRow[parameter.value]\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\tparameterListWithValues.push(parameterWithValue);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tvar storedProcedureRecursiveSet = {\r\n\t\t\t\t\t\t\t\tcontainingDivId: currentContainingDivId,\r\n\t\t\t\t\t\t\t\tparameters: parameterListWithValues,\r\n\t\t\t\t\t\t\t\tsetName: column.setName\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\trow[column.name].rdnRecursionSet = storedProcedureRecursiveSet;\r\n\t\t\t\t\t\t\tGlobal.RDN.recursedSets.push(storedProcedureRecursiveSet);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (column.type == \"file-image\") {\r\n\t\t\t\t\t\tvar imageKey = originalRow[\"ImageKey\"]?.value != null ? originalRow[\"ImageKey\"]?.value : originalRow[\"ImageKey\"];\r\n\t\t\t\t\t\tif (imageKey != null) {\r\n\t\t\t\t\t\t\tvar filename = originalRow[\"Filename\"]?.value != null ? originalRow[\"Filename\"]?.value : originalRow[\"Filename\"];\r\n\t\t\t\t\t\t\tvar fileExtension = filename.split(\".\")[1];\r\n\t\t\t\t\t\t\tvar iconFile = null;\r\n\t\t\t\t\t\t\tif (this.iconmenu.indexOf(fileExtension.toLowerCase()) > -1) {\r\n\t\t\t\t\t\t\t\t//This is an icon file display. Assign the right one.\r\n\t\t\t\t\t\t\t\ticonFile = global.imagesUrl + \"assets/img/FileUpload/icon-\" + fileExtension + \".png\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvar isVideoServerImage = originalRow[\"IsVideoServerImage\"]?.value != null ? originalRow[\"IsVideoServerImage\"]?.value : originalRow[\"IsVideoServerImage\"];\r\n\t\t\t\t\t\t\tvar videoServerFilename = originalRow[\"VideoServerFilename\"]?.value != null ? originalRow[\"VideoServerFilename\"]?.value : originalRow[\"VideoServerFilename\"];\r\n\t\t\t\t\t\t\tvar thumbnailUrl = null;\r\n\t\t\t\t\t\t\tvar thumbnailBase64 = originalRow[\"ThumbnailBase64\"]?.value != null ? originalRow[\"ThumbnailBase64\"]?.value : originalRow[\"ThumbnailBase64\"];\r\n\t\t\t\t\t\t\tvar thumbnailImage = thumbnailBase64 ? this.sanitizer.bypassSecurityTrustResourceUrl(\"data:image/png;base64,\" + thumbnailBase64) : null;\r\n\t\t\t\t\t\t\tvar viewUrl = null;\r\n\t\t\t\t\t\t\tif (isVideoServerImage && isVideoServerImage == true) {\r\n\t\t\t\t\t\t\t\tviewUrl = this.videoKeyURL + videoServerFilename + \"?accessToken=\" + encodeURIComponent(this.accessToken);\r\n\t\t\t\t\t\t\t\tthumbnailUrl = null;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tthumbnailUrl = this.dataService.imageKeyURL + imageKey;\r\n\t\t\t\t\t\t\t\tviewUrl = thumbnailUrl;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar fileImage = {\r\n\t\t\t\t\t\t\t\tname: filename,\r\n\t\t\t\t\t\t\t\ticonFile: iconFile,\r\n\t\t\t\t\t\t\t\tthumbnailImage: thumbnailImage,\r\n\t\t\t\t\t\t\t\tthumbnailUrl: thumbnailUrl,\r\n\t\t\t\t\t\t\t\tviewUrl: viewUrl\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\trow[column.name].fileImage = fileImage;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tif (downloadFieldsExist) {\r\n\t\t\t\t\tdownloadRowString += \"\\r\\n\";\r\n\t\t\t\t\tservice.downloadSet += downloadRowString;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tGlobal.User.DebugMode && console.log(service.componentName + \"formatData --> this.currentSet = %O\", service.currentSet);\r\n\t\tGlobal.User.DebugMode && console.log(service.componentName + \"formatData --> this.currentSetData = %O\", service.currentSetData);\r\n\t\tconsole.log(\"Global.User = %O\", Global.User);\r\n\t\tvar global: IGlobal = Global;\r\n\t\tif (!Global.User.isAdmin && service.currentSet.setName == \"Sites\") {\r\n\t\t\tvar listOfValidSites = service.currentSetData\r\n\t\t\t\t.where((csd: any) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\tGlobal.User.PermittedSites.firstOrDefault((site: any) => {\r\n\t\t\t\t\t\t\treturn site.Id == csd.Id.value;\r\n\t\t\t\t\t\t}) != null\r\n\t\t\t\t\t);\r\n\t\t\t\t})\r\n\t\t\t\t.where((site: any) => {\r\n\t\t\t\t\treturn Global.User.Role[site.Name.value].Administrator == true;\r\n\t\t\t\t})\r\n\t\t\t\t.toArray();\r\n\t\t\tconsole.log(\"listOfValidSites = %O\", listOfValidSites);\r\n\t\t\tservice.currentSetData = listOfValidSites;\r\n\t\t}\r\n\t\tGlobal.User.DebugMode && console.log(service.componentName + \"formatData --> this.currentSet.setName = \" + this.currentSet.setName);\r\n\t\tservice.currentStatus = \"view-list\";\r\n\t}\r\n\r\n\tgoToSet(rowFieldData: any, event: Event) {\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\t\tif (this.selectedRecursiveSet == rowFieldData.rdnRecursionSet) {\r\n\t\t\t//-- user is trying to collapse the recursive set. Just unset everything so the list goes back to normal. --Kirk T. Sherer, June 16, 2021.\r\n\t\t\tthis.selectedRecursiveSet = null;\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"this.selectedRecursiveSet set back to null since user clicked on same button to collapse it.\");\r\n\t\t} else {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"<--- goToSet invoked --->\");\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"rowFieldData = %O\", rowFieldData);\r\n\t\t\tvar trElement = \"rdnRecursionSetContainingDiv_Id\" + rowFieldData.rdnRecursionSet.containingDivId;\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"trElement = \" + trElement);\r\n\t\t\trowFieldData.rdnRecursionSet.trElement = trElement;\r\n\t\t\tthis.selectedRecursiveSet = rowFieldData.rdnRecursionSet;\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"this.selectedRecursiveSet = %O\", this.selectedRecursiveSet);\r\n\t\t}\r\n\t}\r\n\r\n\tsendChangePasswordToken(username: any, event: Event) {\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"<--- sendChangePasswordToken invoked --->\");\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"username = \" + username);\r\n\r\n\t\tif (username) {\r\n\t\t\t//-- log that someone else is sending the password token rather than the actual person. --Kirk T. Sherer, August 12, 2021.\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"attempting to send reset password token to \" + username + \"'s email account...\");\r\n\t\t\tthis.dataService.RequestToResetPassword(username, \"\" + Global.User.currentUser.Id).then((data: any) => {\r\n\t\t\t\tthis.signalR.LogActivity(\"Sent change password token email to \" + username + \".\");\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"sendPasswordToken: data.body = %O\", data.body);\r\n\t\t\t\tvar email = data.body.first();\r\n\t\t\t\tthis.sendAlertToUser(email);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tsendAlertToUser(email: string) {\r\n\t\tif (email == undefined) {\r\n\t\t\tswal.fire({\r\n\t\t\t\tposition: \"center\",\r\n\t\t\t\thtml: \"A Change Password email has been sent to the user's email address.
        This password change token can be used only once and it will expire in one (1) hour.\"\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tswal.fire({\r\n\t\t\t\tposition: \"center\",\r\n\t\t\t\thtml: \"A Change Password email has been sent to \" + email + \".
        This password change token can be used only once and it will expire in one (1) hour.\"\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tlogInAs(username: any, event: Event) {\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"<--- logInAs invoked --->\");\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"username = \" + username);\r\n\r\n\t\t//-- the following stored procedure will set the 'AdminstratorCurrentlyLoggedInAsUserId' field on the user's account so we can audit what the administrator is doing against their own UserId while logged in as the other user. --Kirk T. Sherer, September 1, 2022.\r\n\t\tvar sql = \"Security.Admin_LogInAs_Username @Username='\" + username + \"', @UserId=\" + Global.User.currentUser.Id;\r\n\t\tthis.dataService.SQLActionAsPromise(sql).then((data: any) => {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"sql: \" + sql + \", data: %O\", data);\r\n\t\t\tthis.signalR.LogActivity(\"Executed RDN stored procedure: \" + sql + \".\");\r\n\r\n\t\t\tswal.fire({\r\n\t\t\t\tposition: \"center\",\r\n\t\t\t\thtml: \"You are now logging in as '\" + username + \"'. You will have to log out of this user's account and back into your own account when finished.\"\r\n\t\t\t}).then(() => {\r\n\t\t\t\tvar currentAdminUser = Global.User.currentUser;\r\n\t\t\t\tthis.signalR.LogActivity(\"'\" + currentAdminUser.Username + \"' is logging in as '\" + username + \"'.\");\r\n\t\t\t\tlocalStorage.removeItem(\"currentUser\");\r\n\t\t\t\tGlobal.User.DebugMode = false;\r\n\t\t\t\tGlobal.User.Menu = null;\r\n\t\t\t\tGlobal.User.PermittedSites = null;\r\n\t\t\t\tGlobal.User.Privilege = null;\r\n\t\t\t\tGlobal.User.Role = null;\r\n\t\t\t\tGlobal.User.currentUser = null;\r\n\t\t\t\tGlobal.User.isAdmin = false;\r\n\t\t\t\tGlobal.User.isOrgAdmin = false;\r\n\t\t\t\tGlobal.User.isSiteAdmin = false;\r\n\t\t\t\tGlobal.User.isLoggedIn = false;\r\n\t\t\t\tGlobal.User.needToBuildMenu = true;\r\n\t\t\t\tGlobal.SignalR.ListOfTagNamePrefixes = null;\r\n\t\t\t\tGlobal.SignalR.ListOfAdditionalSignalRGroups = null;\r\n\t\t\t\tthis.signalR.stopHub();\r\n\t\t\t\tthis.securityService.logInAsDifferentUser(data.first().AdminLogInAsToken);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tsearchForText(event: any) {\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"event = %O\", event);\r\n\t\tthis.searchText = event;\r\n\r\n\t\tif (this.currentSet.tableDisplay.apiUrl != null) {\r\n\t\t\t//-- if this is using an API, set up the search query for the API:\r\n\t\t\tvar service = this;\r\n\t\t\tvar url = service.currentSet.tableDisplay.apiUrl;\r\n\r\n\t\t\tif (service.currentChildColumnLink != null) {\r\n\t\t\t\turl += \"?\" + service.currentChildColumnLink + \"=\" + service.currentChildColumnLinkValue;\r\n\t\t\t}\r\n\r\n\t\t\turl += \"?withProperties=no&assetName=%2A&search=\" + this.searchText;\r\n\r\n\t\t\tservice.dataService.CallThingMethod(url).then((data:any) => {\r\n\t\t\t\tservice.signalR.LogActivity(\"Execution of \" + url + \" was successful.\");\r\n\t\t\t\tservice.formatData(data, \"JSON\");\r\n\t\t\t\tservice.currentStatus$.next(this.currentStatus);\r\n\t\t\t\tservice.isLoadingList = false;\r\n\t\t\t\treturn data;\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\t//-- this set is using a standard stored procedure call.\r\n\t\t\tvar sqlStoredProcedure = this.mainStoredProcedure;\r\n\r\n\t\t\tvar parsedSearchText = this.searchText.trim().split(\"'\").join(\"''\"); //--this.searchText.replace(/\\s/g, \"\")\r\n\t\t\tif (this.mainStoredProcedure.indexOf(\",\") > 0 || this.mainStoredProcedure.indexOf(\"@\") > 0) {\r\n\t\t\t\tsqlStoredProcedure = sqlStoredProcedure + \", @SearchText='\" + parsedSearchText + \"'\"; //-- search text parameter must have comma in front since there are other parameters in the sql stored procedure string. --Kirk T. Sherer, May 12, 2021.\r\n\t\t\t} else {\r\n\t\t\t\tsqlStoredProcedure = sqlStoredProcedure + \" @SearchText='\" + parsedSearchText + \"'\"; //-- no comma needed after main stored procedure since @SearchText is the only parameter in the list. --Kirk T. Sherer, May 12, 2021.\r\n\t\t\t}\r\n\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"sqlStoredProcedure = \" + sqlStoredProcedure);\r\n\t\t\tif (this.searchText == \"\") {\r\n\t\t\t\tsqlStoredProcedure = this.mainStoredProcedure;\r\n\t\t\t}\r\n\r\n\t\t\tthis.executeStoredProcedure(sqlStoredProcedure);\r\n\t\t}\r\n\t}\r\n\r\n\topenInNewWindow(url: string, event: Event) {\r\n\t\tthis.signalR.LogActivity(\"Opening \" + url + \" in another window...\");\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\t\twindow.open(url + \"&accessToken=\" + encodeURIComponent(Global.User.currentUser.ODataAccessToken), \"_blank\").focus();\r\n\t}\r\n\r\n\tCancelEdit() {\r\n\t\tthis.signalR.LogActivity(\"Cancelled editing of record.\");\r\n\r\n\t\tthis.entity = null;\r\n\t\tthis.editModel = null;\r\n\t\tthis.showEditPane = false;\r\n\t\tthis.options.editor.standaloneShow = false;\r\n\t}\r\n\r\n\tupdateTags() {\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"updateTags function was invoked... \");\r\n\t\tvar service = this;\r\n\t\tvar swalWithBootstrapButtons = swal.mixin({\r\n\t\t\tcustomClass: {\r\n\t\t\t\tconfirmButton: \"btn btn-danger\",\r\n\t\t\t\tcancelButton: \"btn btn-success\"\r\n\t\t\t},\r\n\t\t\tbuttonsStyling: false\r\n\t\t});\r\n\t\tswalWithBootstrapButtons\r\n\t\t\t.fire({\r\n\t\t\t\ttitle: \"Are you sure?\",\r\n\t\t\t\thtml: \"This will add or update ALL of the tags that are not matching in the list. You won't be able to revert this once the operation is complete.\",\r\n\t\t\t\tshowCancelButton: true,\r\n\t\t\t\tconfirmButtonText: \"Update Tags\",\r\n\t\t\t\tcancelButtonText: \"Cancel\",\r\n\t\t\t\treverseButtons: false\r\n\t\t\t})\r\n\t\t\t.then((result) => {\r\n\t\t\t\tif (result.value) {\r\n\t\t\t\t\tvar sql = \"API.RDN_GetPLCProgramRevisionPossibleTags @UpdateTags=1, @UserId=\" + Global.User.currentUser.Id + \",\";\r\n\t\t\t\t\tif (this.options.parameters) {\r\n\t\t\t\t\t\tvar numberOfParameters = this.options.parameters.length;\r\n\t\t\t\t\t\tvar countOfParameters = 0;\r\n\t\t\t\t\t\tthis.options.parameters.forEach((parameter: any) => {\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"parameter.Value = \" + parameter.Value);\r\n\t\t\t\t\t\t\tvar isDate = moment.isDate(parameter.Value);\r\n\t\t\t\t\t\t\tif (isDate) {\r\n\t\t\t\t\t\t\t\tparameter.Value = this.utilityService.ConvertDateTimeToUTCDateTimeAndFormatForSQLParameter(parameter.Value);\r\n\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"parameter.Value = \" + parameter.Value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (parameter.Name.indexOf(\"Id\") == -1) {\r\n\t\t\t\t\t\t\t\t//-- we're not dealing with an Id field for the column link, so we'll have to assume the field needs quotes around the value. --Kirk T. Sherer, November 4, 2022.\r\n\t\t\t\t\t\t\t\tsql += \" \" + parameter.Name + \"='\" + parameter.Value + \"'\";\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tsql += \" \" + parameter.Name + \"=\" + parameter.Value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcountOfParameters++;\r\n\t\t\t\t\t\t\tif (countOfParameters < numberOfParameters) {\r\n\t\t\t\t\t\t\t\tsql += \", \";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"parameter = %O\", parameter);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tthis.isLoadingList = true;\r\n\t\t\t\t\t\tthis.executeStoredProcedure(this.mainStoredProcedure); //-- go back to previous data.\r\n\r\n\t\t\t\t\t\tthis.dataService.SQLActionAsPromise(sql).then((data: any) => {\r\n\t\t\t\t\t\t\tthis.isLoadingList = false;\r\n\t\t\t\t\t\t\tif (data.length > 0) {\r\n\t\t\t\t\t\t\t\tvar countOfNewTags = data.first().CountOfNewTags;\r\n\t\t\t\t\t\t\t\tvar countOfUpdatedTags = data.first().CountOfUpdatedTags;\r\n\t\t\t\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\t\t\ttype: \"success\",\r\n\t\t\t\t\t\t\t\t\ttitle: \"Updated Asset\",\r\n\t\t\t\t\t\t\t\t\tmessage: \"New Tags inserted: \" + countOfNewTags + \", Updated Tags: \" + countOfUpdatedTags + \" from PLC Program Revision Tag Simple Name list.\"\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\t\t\ttype: \"error\",\r\n\t\t\t\t\t\t\t\t\tmessage: \"Tags were not inserted or updated from PLC Program Revision Tag Simple Name list.\"\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (result.dismiss === swal.DismissReason.cancel) {\r\n\t\t\t\t\tthis.signalR.LogActivity(\"Cancelled add/update of tags for a specific asset.\");\r\n\t\t\t\t\tservice.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\tmessage: this.currentSet.tableDisplay.entityDisplayName + \" tags have NOT been modified for the asset.\",\r\n\t\t\t\t\t\ttitle: service.currentSet.tableDisplay.label\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\tdownloadList() {\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"download list was invoked... downloadSet = %O\", this.downloadSet);\r\n\r\n\t\tif (this.downloadSet != \"\") {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"running webAPI for downloading the list...\");\r\n\t\t\tthis.dataService.downloadDatasetAsExcelSpreadsheet(this.downloadSet).then((data: any) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"dataService.downloadDatasetAsExcelSpreadsheet data: %O\", data);\r\n\t\t\t\t//Global.User.DebugMode && console.log(this.componentName + \"dataService.downloadDatasetAsExcelSpreadsheet data.image: %O\", data.image);\r\n\t\t\t\tconst element = document.createElement(\"a\");\r\n\t\t\t\t//element.type = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n\t\t\t\telement.href = URL.createObjectURL(data);\r\n\t\t\t\telement.download = \"SpreadsheetDownload.xlsx\";\r\n\t\t\t\tdocument.body.appendChild(element);\r\n\t\t\t\telement.click();\r\n\t\t\t\t//window.open(fileURL);\r\n\r\n\t\t\t\t// var url: any = this.sanitizer.bypassSecurityTrustResourceUrl(\"data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\" + data);\r\n\r\n\t\t\t\t// var intHSize = window.screen.availWidth * 0.7;\r\n\t\t\t\t// var intVSize = window.screen.availHeight * 0.7;\r\n\t\t\t\t// var intTop = (window.screen.availHeight - intVSize) / 2;\r\n\t\t\t\t// var intLeft = (window.screen.availWidth - intHSize) / 2;\r\n\t\t\t\t// var sngWindow_Size_Percentage = 0.85;\r\n\r\n\t\t\t\t// var strFeatures = \"\";\r\n\t\t\t\t// intHSize = window.screen.availWidth * sngWindow_Size_Percentage * 0.6;\r\n\t\t\t\t// intVSize = window.screen.availHeight * sngWindow_Size_Percentage;\r\n\t\t\t\t// intTop = (window.screen.availHeight - intVSize) / 2;\r\n\t\t\t\t// intLeft = (window.screen.availWidth - intHSize) / 2;\r\n\t\t\t\t// strFeatures = \"top=\" + intTop + \",left=\" + intLeft + \",height=\" + intVSize + \",width=\" + intHSize + \", scrollbars=yes, resizable=yes, location=no\";\r\n\t\t\t\t// console.log(\"data returned from dataService.downloadDatasetAsExcelSpreadsheet. url =%O\", url);\r\n\r\n\t\t\t\t// var SRWindow = window.open(url, \"SRWindow\", strFeatures);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\treloadRDNQuestions(event: any) {\r\n\t\tif (this.editQuestions == undefined) {\r\n\t\t\tthis.editQuestions = event;\r\n\t\t}\r\n\t\tconsole.log(\"this.editQuestions = %O\", this.editQuestions);\r\n\t\tthis.currentSet.editor.fields = event;\r\n\t}\r\n\r\n\teditRecord(editRecordObject: EditRecordObject) {\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"editRecord for \" + this.currentSet.tableDisplay.entityDisplayName + \" invoked... %O\", editRecordObject);\r\n\r\n\t\tlet row = editRecordObject.row;\r\n\t\tlet type = editRecordObject.type;\r\n\t\tlet event = editRecordObject.event;\r\n\t\tlet index = editRecordObject.indexReference;\r\n\t\tif (event != null) {\r\n\t\t\tvar cX = event.clientX;\r\n\t\t\tvar screenX = event.screenX;\r\n\t\t\tvar cY = event.clientY;\r\n\t\t\tvar screenY = event.screenY;\r\n\t\t\tvar coords1 = \"client - X: \" + cX + \", Y coords: \" + cY;\r\n\t\t\tvar coords2 = \"screen - X: \" + screenX + \", Y coords: \" + screenY;\r\n\r\n\t\t\tthis.currentXPosition = screenX;\r\n\t\t\tthis.currentYPosition = screenY;\r\n\t\t}\r\n\r\n\t\tif (index != null) {\r\n\t\t\tthis.currentIndex = this.currentSet.tableDisplay.entityName + \"_\" + index;\r\n\t\t}\r\n\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"editingRecord: currentChildColumnLink = \" + this.currentChildColumnLink + \", currentChildColumnLinkValue = \" + this.currentChildColumnLinkValue);\r\n\t\tvar service = this;\r\n\t\tthis.loadingEditForm = true;\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"edit record invoked. type = \" + type + \", row = %O\", row);\r\n\t\tGlobal.RDN.editingForm = true;\r\n\t\tthis.rdnService.editingForm$.next(Global.RDN.editingForm);\r\n\t\tthis.editFormTitle = type == \"add\" ? \"Adding New \" + this.currentSet.tableDisplay.entityDisplayName + \" Record\" : \"Editing \" + this.currentSet.tableDisplay.entityDisplayName + \" Record\";\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \" \" + this.editFormTitle);\r\n\t\tthis.signalR.LogActivity(this.editFormTitle);\r\n\r\n\t\tthis.editFormOptions = {\r\n\t\t\tsubmitButtonText: type == \"add\" ? \"Add New Record\" : \"Save Changes\",\r\n\t\t\tsaveValuesPerField: this.currentSet.editor.saveApiUrl != undefined ? true : false,\r\n\t\t\tsaveStoredProcedureName: this.currentSet.editor.saveStoredProcedureName ?? null,\r\n\t\t\tsaveApiUrl: this.currentSet.editor.saveApiUrl != undefined ? this.currentSet.editor.saveApiUrl + \"?thingId=\" + row[\"id\"]?.value + \"&\" : null,\r\n\t\t\tdeleteApiUrl: this.currentSet.editor.deleteApiUrl != undefined ? this.currentSet.editor.deleteApiUrl + \"?thingId=\" + row[\"id\"]?.value + \"&\" : null,\r\n\t\t\tallowAddNewQuestion: this.currentSet.editor.allowAddNewQuestion ?? false,\r\n\t\t\tcancelButtonText: \"Cancel\"\r\n\t\t};\r\n\r\n\r\n\t\tconsole.log(\"this.editFormOptions = %O\", this.editFormOptions);\r\n\r\n\t\tif (type == \"edit\") {\r\n\t\t\tvar fieldList = this.currentSet.editor.fields\r\n\t\t\t\t.select((field: any) => {\r\n\t\t\t\t\treturn field.key.replace(\"@\", \"\");\r\n\t\t\t\t})\r\n\t\t\t\t.toArray()\r\n\t\t\t\t.join(\",\");\r\n\r\n\t\t\tthis.currentlyEditedRecord = row;\r\n\r\n\t\t\tif (this.currentSet.editor.editApiUrl != null) {\r\n\t\t\t\tthis.currentSet.editor.getEditValuesFromList = true;\r\n\t\t\t\tthis.dataService.CallThingMethod(this.currentSet.editor.editApiUrl + \"?Id=\" + row[\"id\"].value).then((data:any) => {\r\n\t\t\t\t\tconsole.log(\"editable fields = %O\", data);\r\n\t\t\t\t\tfieldList = data.select((item: any) => { return item.key }).toArray().join(\",\");\r\n\t\t\t\t\tthis.currentSet.editor.properties = data;\r\n\t\t\t\t\tthis.buildEditFormFields(row);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvar editStoredProcedureName = \"\";\r\n\r\n\t\t\t\tif (this.currentSet.editor.editStoredProcedureName != null) {\r\n\t\t\t\t\teditStoredProcedureName = this.currentSet.editor.editStoredProcedureName + \" @entityId=\" + row[\"Id\"].value + \", @UserId=\" + Global.User.currentUser.Id; //-- this is if the developer wants to be more creative in editing the record (i.e. by joining other fields that might not be part of a single record edit.)\r\n\t\t\t\t\tif (this.currentSet.editor.parentKeyField != null) {\r\n\t\t\t\t\t\teditStoredProcedureName += \", @parentKeyField=\" + row[this.currentSet.editor.parentKeyField].value;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (this.currentSet.editor.getEditValuesFromList) {\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\teditStoredProcedureName = \"API.RDN_EditSQLTableRecord @entityId=\" + row[\"Id\"].value + \", @entityName='\" + this.currentSet.tableDisplay.entityName + \"', @fieldList='\" + fieldList + \"', @UserId=\" + Global.User.currentUser.Id; //-- this is the default stored procedure for editing the current record.\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"fieldList = \" + fieldList);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"editStoredProcedureName = \" + editStoredProcedureName);\r\n\t\t\t\tthis.buildEditFormFields(row, editStoredProcedureName);\r\n\r\n\t\t\t}\r\n\r\n\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"currentSet: %O\", this.currentSet);\r\n\t\t\tthis.currentStatus = \"edit-record\";\r\n\t\t\tthis.currentStatus$.next(this.currentStatus);\r\n\t\t} else {\r\n\t\t\t//-- if we made it here, we're adding a new record. That means any childColumnLink field values (if available) are for the Parent Key Field, not the ID number of the record we're adding. --Kirk T. Sherer, March 20, 2023\r\n\t\t\tthis.currentlyEditedRecord = null;\r\n\t\t\tthis.currentSet.childColumnLink = this.currentChildColumnLink;\r\n\t\t\tthis.currentSet.childColumnLinkValue = this.currentChildColumnLinkValue;\r\n\t\t\tthis.currentSet.editor.fields.forEach((field: any) => {\r\n\t\t\t\tfield.value = null;\r\n\t\t\t\tif (field.type == \"parent-key-field\") {\r\n\t\t\t\t\tif (field.key == this.currentChildColumnLink) {\r\n\t\t\t\t\t\tfield.value = this.currentChildColumnLinkValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (field.key == \"Id\") {\r\n\t\t\t\t\tfield.visible = false; //-- this is an insert of a record, so there's no need to display the Id field. --Kirk T. Sherer, July 7, 2021.\r\n\t\t\t\t}\r\n\t\t\t\tif (field.buttonList && field.buttonList.parameters != null) {\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"field.buttonList.parameters = %O\", field.buttonList.parameters);\r\n\t\t\t\t\tfield.buttonList.parameters.forEach((parameter: any) => {\r\n\t\t\t\t\t\tif (parameter.listValue != null) {\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"parameter.listValue = \" + parameter.listValue);\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"this.currentSetData = %O\", this.currentSetData);\r\n\t\t\t\t\t\t\tthis.currentSetData.forEach((row: any) => {\r\n\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"row = %O\", row);\r\n\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"row[parameter.listLookupField] = %O\", row[parameter.listLookupField]);\r\n\t\t\t\t\t\t\t\tif (row[parameter.listLookupField].value == parameter.listLookupValue) {\r\n\t\t\t\t\t\t\t\t\tparameter.value = row[parameter.listValue].value;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"parameter.value = \" + parameter.value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"currentSet: %O\", this.currentSet);\r\n\t\t\tthis.loadingEditForm = false;\r\n\t\t\tthis.currentStatus = \"edit-record\";\r\n\t\t\tthis.currentStatus$.next(this.currentStatus);\r\n\t\t}\r\n\t}\r\n\r\n\tbuildEditFormFields(row: any, editStoredProcedureName?: string) {\r\n\t\t//-- build field list for editing.\r\n\t\tvar service = this;\r\n\t\tif (!service.currentSet.editor.getEditValuesFromList) {\r\n\t\t\tservice.signalR.LogActivity(\"Executing RDN Edit stored procedure: \" + editStoredProcedureName);\r\n\t\t\tservice.dataService.SQLActionAsPromise(editStoredProcedureName).then((data: any) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \" \" + service.currentSet.editor.editStoredProcedureName + \" data = %O\", data);\r\n\t\t\t\tservice.currentSet.editor.fields.forEach((field: any) => {\r\n\t\t\t\t\tdata.forEach((row: any) => {\r\n\t\t\t\t\t\t//Global.User.DebugMode && console.log(this.componentName + \"field.key: \" + field.key + \", row['\" + field.key.replace(\"@\", \"\") + \"'] = %O\", row[field.key.replace(\"@\", \"\")]);\r\n\t\t\t\t\t\tif (field.type == \"date\") {\r\n\t\t\t\t\t\t\tif (row[field.key.replace(\"@\", \"\")] == null) {\r\n\t\t\t\t\t\t\t\tfield.value = null;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tfield.value = new Date(row[field.key.replace(\"@\", \"\")]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tfield.value = row[field.key.replace(\"@\", \"\")];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (field.buttonList && field.buttonList.parameters != null) {\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"field.buttonList.parameters = %O\", field.buttonList.parameters);\r\n\t\t\t\t\t\tfield.buttonList.parameters.forEach((parameter: any) => {\r\n\t\t\t\t\t\t\tif (parameter.listValue != null) {\r\n\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"parameter.listValue = \" + parameter.listValue);\r\n\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"this.currentSetData = %O\", service.currentSetData);\r\n\t\t\t\t\t\t\t\tservice.currentSetData.forEach((row: any) => {\r\n\t\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"row = %O\", row);\r\n\t\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"row[parameter.listLookupField] = %O\", row[parameter.listLookupField]);\r\n\t\t\t\t\t\t\t\t\tif (row[parameter.listLookupField].value == parameter.listLookupValue) {\r\n\t\t\t\t\t\t\t\t\t\tparameter.value = row[parameter.listValue].value;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"parameter.value = \" + parameter.value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (field.listOfValues != null) {\r\n\t\t\t\t\t\tfield.listOfValues.forEach((listItem: any) => {\r\n\t\t\t\t\t\t\tif (listItem.value != null) {\r\n\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"listItem.Value = \" + listItem.value);\r\n\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"this.currentSetData = %O\", service.currentSetData);\r\n\t\t\t\t\t\t\t\tservice.currentSetData.forEach((row: any) => {\r\n\t\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"row = %O\", row);\r\n\t\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"row[listItem.Id] = %O\", row[listItem.Id]);\r\n\t\t\t\t\t\t\t\t\tif (row[field.key].value == listItem.value) {\r\n\t\t\t\t\t\t\t\t\t\tlistItem.value = row[field.key].value;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"listItem.Value = \" + listItem.value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\t);\r\n\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"this.currentSet.editor.fields = %O\", service.currentSet.editor.fields);\r\n\t\t\t\tservice.loadingEditForm = false;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t// -- using the current 'row' for the record we are editing. This prevents us from having to run another stored procedure to retrieve the same information that is already in the\r\n\t\t\t// -- list being displayed. The user clicked on the pencil to edit it, and we're just simply using that row to fill in the fields. This would work for any set of records where\r\n\t\t\t// -- the list contains all of the editable fields for the edit form. --Kirk T. Sherer, March 6, 2023.\r\n\r\n\t\t\tif (service.currentSet.editor.properties != null) {\r\n\t\t\t\tconsole.log(\"this.currentSet.editor.properties = %O\", service.currentSet.editor.properties);\r\n\t\t\t\tvar visibleProperties = service.currentSet.editor.properties.where((property:any) => {\r\n\t\t\t\t\tvar isHidden = property.isHidden;\r\n\t\t\t\t\treturn property.isHidden == false\r\n\t\t\t\t}).toArray();\r\n\r\n\t\t\t\tvisibleProperties.forEach((property:any) => {\r\n\t\t\t\t\tvar definedPropertyInRDN = service.currentSet.editor.fields.firstOrDefault((field:any) => { return field.key == property.name });\r\n\t\t\t\t\tif (!definedPropertyInRDN) {\r\n\t\t\t\t\t\tvar propertyNameDisplay = property.name.replace(/([A-Z])/g, ' $1').trim();\r\n\t\t\t\t\t\tif (property.type == \"Boolean\") {\r\n\t\t\t\t\t\t\tvar newBooleanField = new SliderYesNoQuestion({\r\n\t\t\t\t\t\t\t\tkey: property.name,\r\n\t\t\t\t\t\t\t\tlabel: propertyNameDisplay,\r\n\t\t\t\t\t\t\t\ttitle: \"Is this \" + propertyNameDisplay + \" property true or false?\",\r\n\t\t\t\t\t\t\t\torder: service.currentSet.editor.properties.length + 1,\r\n\t\t\t\t\t\t\t\tvalue: property.value,\r\n\t\t\t\t\t\t\t\tisDynamicProperty: true\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tservice.currentSet.editor.fields.push(newBooleanField); //-- adding a new field for the property that is not defined in the RDN service.\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tvar newTextField = new TextboxQuestion({\r\n\t\t\t\t\t\t\t\tkey: property.name,\r\n\t\t\t\t\t\t\t\tlabel: propertyNameDisplay,\r\n\t\t\t\t\t\t\t\ttitle: \"Please fill in the appropriate value for this \" + propertyNameDisplay + \" field.\",\r\n\t\t\t\t\t\t\t\torder: service.currentSet.editor.properties.length + 1,\r\n\t\t\t\t\t\t\t\ttype: \"text\",\r\n\t\t\t\t\t\t\t\trequired: false,\r\n\t\t\t\t\t\t\t\tvalue: property.value,\r\n\t\t\t\t\t\t\t\tisDynamicProperty: true\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tservice.currentSet.editor.fields.push(newTextField); //-- adding a new field for the property that is not defined in the RDN service.\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvar field = definedPropertyInRDN;\r\n\t\t\t\t\t\t//-- we're receiving properties from the Thing webAPI. If we don't have a field defined that matches on the property, we'll have to build a new question for the property coming from the API.\r\n\t\t\t\t\t\tservice.formatDefinedField(field, property);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tvar fieldsDefinedInRDNButNotInPropertiesList = service.currentSet.editor.fields.where((field:any) => {\r\n\t\t\t\t\treturn field.value == undefined;\r\n\r\n\t\t\t\t}).toArray();\r\n\r\n\t\t\t\tfieldsDefinedInRDNButNotInPropertiesList.forEach((field:any) => {\r\n\t\t\t\t\tif (field.key == \"Name\" || field.key == \"Latitude\" || field.key == \"Longitude\" || field.key == \"Id\") {\r\n\t\t\t\t\t\t//-- for IoT.Thing records, these fields come from the main record, not the properties.\r\n\t\t\t\t\t\tfield.value = row[field.key.toLowerCase()].value;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tconsole.log(\"fieldsDefinedInRDNButNotInPropertiesList = %O\", fieldsDefinedInRDNButNotInPropertiesList);\r\n\r\n\t\t\t\tservice.currentSet.editor.HasDynamicProperties = service.currentSet.editor.fields.where((field:any) => { return field.isDynamicProperty == true }).toArray().length > 0;\r\n\r\n\t\t\t\tconsole.log(\"this.currentSet.editor.HasDynamicProperties = \" + service.currentSet.editor.HasDynamicProperties);\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tservice.currentSet.editor.fields.forEach((field: any) => {\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"field.key: \" + field.key + \", row['\" + field.key.replace(\"@\", \"\") + \"'] = %O\", row[field.key.replace(\"@\", \"\")]);\r\n\t\t\t\t\tvar property = row[field.key.replace(\"@\", \"\")];\r\n\t\t\t\t\tservice.formatDefinedField(field, property);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"this.currentSet.editor.fields = %O\", service.currentSet.editor.fields);\r\n\t\t\tservice.editQuestions = service.currentSet.editor.fields;\r\n\r\n\t\t\tservice.loadingEditForm = false;\r\n\t\t}\r\n\t}\r\n\r\n\tformatDefinedField(field:any, property:any) {\r\n\t\tif (field.type == \"date\") {\r\n\t\t\tif (property.value == null) {\r\n\t\t\t\tfield.value = null;\r\n\t\t\t} else {\r\n\t\t\t\tfield.value = new Date(property.value);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (field.controlType != \"text-differences-comparison\") {\r\n\t\t\t\tif (field.controlType == \"slider-yes-no\" || field.controlType == \"slider-true-false\" || field.controlType == \"slider\" || field.controlType == \"true-false-button\") {\r\n\t\t\t\t\tfield.value = property?.value == undefined ? false : property?.value == \"True\" || property?.value == true || property?.value == 1 ? true : false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfield.value = property?.value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (field.buttonList && field.buttonList.parameters != null) {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"field.buttonList.parameters = %O\", field.buttonList.parameters);\r\n\t\t\tfield.buttonList.parameters.forEach((parameter: any) => {\r\n\t\t\t\tif (parameter.listValue != null) {\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"parameter.listValue = \" + parameter.listValue);\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"this.currentSetData = %O\", this.currentSetData);\r\n\t\t\t\t\tthis.currentSetData.forEach((row: any) => {\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"row = %O\", row);\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"row[parameter.listLookupField] = %O\", row[parameter.listLookupField]);\r\n\t\t\t\t\t\tif (row[parameter.listLookupField].value == parameter.listLookupValue) {\r\n\t\t\t\t\t\t\tparameter.value = row[parameter.listValue].value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"parameter.value = \" + parameter.value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\teditRecordLegacy(row: any, type: string, event: any, index?: any) {\r\n\t\tif (event != null) {\r\n\t\t\tvar cX = event.clientX;\r\n\t\t\tvar screenX = event.screenX;\r\n\t\t\tvar cY = event.clientY;\r\n\t\t\tvar screenY = event.screenY;\r\n\t\t\tvar coords1 = \"client - X: \" + cX + \", Y coords: \" + cY;\r\n\t\t\tvar coords2 = \"screen - X: \" + screenX + \", Y coords: \" + screenY;\r\n\r\n\t\t\tthis.currentXPosition = screenX;\r\n\t\t\tthis.currentYPosition = screenY;\r\n\t\t}\r\n\r\n\t\tif (index != null) {\r\n\t\t\tthis.currentIndex = this.currentSet.tableDisplay.entityName + \"_\" + index;\r\n\t\t}\r\n\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"editingRecord: currentChildColumnLink = \" + this.currentChildColumnLink + \", currentChildColumnLinkValue = \" + this.currentChildColumnLinkValue);\r\n\t\tvar service = this;\r\n\t\tthis.loadingEditForm = true;\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"edit record invoked. type = \" + type + \", row = %O\", row);\r\n\t\tGlobal.RDN.editingForm = true;\r\n\t\tthis.rdnService.editingForm$.next(Global.RDN.editingForm);\r\n\t\tthis.editFormTitle = type == \"add\" ? \"Adding New \" + this.currentSet.tableDisplay.entityDisplayName + \" Record\" : \"Editing \" + this.currentSet.tableDisplay.entityDisplayName + \" Record\";\r\n\r\n\t\tthis.editFormOptions = {\r\n\t\t\tsubmitButtonText: type == \"add\" ? \"Add New Record\" : \"Save Changes\",\r\n\t\t\tsaveValuesPerField: false,\r\n\t\t\tsaveStoredProcedureName: this.currentSet.editor.saveStoredProcedureName,\r\n\t\t\tcancelButtonText: \"Cancel\"\r\n\t\t};\r\n\r\n\t\tif (type == \"edit\") {\r\n\t\t\tthis.currentlyEditedRecord = row;\r\n\t\t\t//-- build field list for editing.\r\n\t\t\tvar fieldList = this.currentSet.editor.fields\r\n\t\t\t\t.select((field: any) => {\r\n\t\t\t\t\treturn field.key.replace(\"@\", \"\");\r\n\t\t\t\t})\r\n\t\t\t\t.toArray()\r\n\t\t\t\t.join(\",\");\r\n\r\n\t\t\tvar editStoredProcedureName = \"API.RDN_EditSQLTableRecord @entityId=\" + row[\"Id\"].value + \", @entityName='\" + this.currentSet.tableDisplay.entityName + \"', @fieldList='\" + fieldList + \"', @UserId=\" + Global.User.currentUser.Id; //-- this is the default stored procedure for editing the current record.\r\n\t\t\tif (service.currentSet.editor.editStoredProcedureName != null) {\r\n\t\t\t\teditStoredProcedureName = service.currentSet.editor.editStoredProcedureName + \" @entityId=\" + row[\"Id\"].value + \", @UserId=\" + Global.User.currentUser.Id; //-- this is if the developer wants to be more creative in editing the record (i.e. by joining other fields that might not be part of a single record edit.)\r\n\t\t\t} else {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"fieldList = \" + fieldList);\r\n\t\t\t}\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"editStoredProcedureName = \" + editStoredProcedureName);\r\n\r\n\t\t\tthis.dataService.SQLActionAsPromise(editStoredProcedureName).then((data: any) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(service.currentSet.editor.editStoredProcedureName + \" data = %O\", data);\r\n\t\t\t\tservice.currentSet.editor.fields.forEach((field: any) => {\r\n\t\t\t\t\tdata.forEach((row: any) => {\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"field.key: \" + field.key + \", row['\" + field.key.replace(\"@\", \"\") + \"'] = %O\", row[field.key.replace(\"@\", \"\")]);\r\n\t\t\t\t\t\tif (field.type == \"date\") {\r\n\t\t\t\t\t\t\tfield.value = new Date(row[field.key.replace(\"@\", \"\")]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tfield.value = row[field.key.replace(\"@\", \"\")];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"service.currentSet.editor.fields = %O\", service.currentSet.editor.fields);\r\n\t\t\t\tthis.loadingEditForm = false;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tservice.currentlyEditedRecord = null;\r\n\t\t\tservice.currentSet.childColumnLink = service.currentChildColumnLink;\r\n\t\t\tservice.currentSet.childColumnLinkValue = service.currentChildColumnLinkValue;\r\n\t\t\tservice.currentSet.editor.fields.forEach((field: any) => {\r\n\t\t\t\tfield.value = null;\r\n\t\t\t\tif (field.type == \"parent-key-field\") {\r\n\t\t\t\t\tif (field.key == service.currentChildColumnLink) {\r\n\t\t\t\t\t\tfield.value = service.currentChildColumnLinkValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (field.key == \"Id\") {\r\n\t\t\t\t\tfield.visible = false; //-- this is an insert of a record, so there's no need to display the Id field. --Kirk T. Sherer, July 7, 2021.\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"currentSet: %O\", service.currentSet);\r\n\r\n\t\t\tservice.loadingEditForm = false;\r\n\t\t}\r\n\t\tservice.currentStatus = \"edit-record\";\r\n\t\tservice.currentStatus$.next(service.currentStatus);\r\n\t}\r\n\r\n\tdeleteRecord(row: any) {\r\n\t\tvar service = this;\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"deleting record = %O\", row);\r\n\t\tvar nameOfRecord = row[\"Name\"] != null ? row[\"Name\"].value : null;\r\n\r\n\t\tvar swalWithBootstrapButtons = swal.mixin({\r\n\t\t\tcustomClass: {\r\n\t\t\t\tconfirmButton: \"btn btn-danger\",\r\n\t\t\t\tcancelButton: \"btn btn-success\"\r\n\t\t\t},\r\n\t\t\tbuttonsStyling: false\r\n\t\t});\r\n\t\tswalWithBootstrapButtons\r\n\t\t\t.fire({\r\n\t\t\t\ttitle: \"Are you sure?\",\r\n\t\t\t\thtml: \"This will remove the \" + (nameOfRecord != null ? \"'\" + nameOfRecord + \"'\" : \"\") + \" record from the \" + this.currentSet.tableDisplay.entityDisplayName + \" list. You won't be able to revert this.\",\r\n\t\t\t\tshowCancelButton: true,\r\n\t\t\t\tconfirmButtonText: \"Delete Record\",\r\n\t\t\t\tcancelButtonText: \"Cancel\",\r\n\t\t\t\treverseButtons: false\r\n\t\t\t})\r\n\t\t\t.then((result) => {\r\n\t\t\t\tif (result.value) {\r\n\t\t\t\t\t// logic for deleting dashboard goes here.\r\n\t\t\t\t\tvar sqlStoredProcedureForDelete = \"API.RDN_SetSQLRecordToDeletedStatus @tableName='\" + this.currentSet.tableDisplay.entityName + \"', @Id=\" + row[\"Id\"].value + \", @UserId=\" + Global.User.currentUser.Id;\r\n\t\t\t\t\tif (this.currentSet.tableDisplay.deleteStoredProcedure != null) {\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"Executing \" + this.currentSet.tableDisplay.deleteStoredProcedure + \" stored procedure for deletion ...\");\r\n\t\t\t\t\t\tsqlStoredProcedureForDelete = this.currentSet.tableDisplay.deleteStoredProcedure + \" @\" + this.currentSet.tableDisplay.entityName.replace(\"dbo.\", \"\") + \"Id=\" + row[\"Id\"].value + \", @UserId=\" + Global.User.currentUser.Id;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"marking record for deletion...\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.signalR.LogActivity(\"Executing RDN delete stored procedure: \" + sqlStoredProcedureForDelete);\r\n\t\t\t\t\tthis.dataService.SQLActionAsPromise(sqlStoredProcedureForDelete).then((data: any) => {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tvar error = data\r\n\t\t\t\t\t\t\t\t.where((d: any) => {\r\n\t\t\t\t\t\t\t\t\treturn d.ErrorMessage;\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.toArray();\r\n\t\t\t\t\t\t\tif (error.length == 0) {\r\n\t\t\t\t\t\t\t\tvar successful = data.length == 0 ? null : data.first();\r\n\t\t\t\t\t\t\t\tif (successful?.SuccessfulMessage == null) {\r\n\t\t\t\t\t\t\t\t\tservice.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\t\t\t\t\tmessage: service.currentSet.tableDisplay.entityDisplayName + (nameOfRecord != null ? \" '\" + nameOfRecord + \"'\" : \"\") + \" record has been DELETED.\",\r\n\t\t\t\t\t\t\t\t\t\ttitle: service.currentSet.tableDisplay.label\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tservice.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\t\t\t\t\tmessage: data.first().SuccessfulMessage,\r\n\t\t\t\t\t\t\t\t\t\ttitle: service.currentSet.tableDisplay.label\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tswalWithBootstrapButtons.fire({\r\n\t\t\t\t\t\t\t\t\ttitle: \"ERROR\",\r\n\t\t\t\t\t\t\t\t\thtml: error.first().ErrorMessage,\r\n\t\t\t\t\t\t\t\t\tshowCancelButton: false,\r\n\t\t\t\t\t\t\t\t\tconfirmButtonText: \"OK\",\r\n\t\t\t\t\t\t\t\t\treverseButtons: false\r\n\t\t\t\t\t\t\t\t}); //-- pop up an alert with the error message.\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tservice.executeStoredProcedure(service.latestFullStoredProcedureString);\r\n\t\t\t\t\t\t\tservice.backToList();\r\n\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\tservice.executeStoredProcedure(service.latestFullStoredProcedureString);\r\n\t\t\t\t\t\t\tservice.backToList();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t} else if (result.dismiss === swal.DismissReason.cancel) {\r\n\t\t\t\t\tthis.signalR.LogActivity(\"Cancelled deletion of record.\");\r\n\t\t\t\t\tservice.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\tmessage: this.currentSet.tableDisplay.entityDisplayName + \" record has NOT been deleted.\",\r\n\t\t\t\t\t\ttitle: service.currentSet.tableDisplay.label\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tcopyRecord(row: any) {\r\n\t\tvar service = this;\r\n\t\tvar swalWithBootstrapButtons = swal.mixin({\r\n\t\t\tcustomClass: {\r\n\t\t\t\tconfirmButton: \"btn btn-danger\",\r\n\t\t\t\tcancelButton: \"btn btn-success\"\r\n\t\t\t},\r\n\t\t\tbuttonsStyling: false\r\n\t\t});\r\n\t\tswalWithBootstrapButtons\r\n\t\t\t.fire({\r\n\t\t\t\ttitle: \"Are you sure?\",\r\n\t\t\t\thtml: \"This will create a duplicate copy of the \" + this.currentSet.tableDisplay.entityDisplayName + \" record. If this record is copied in error, you will have to delete the copy.\",\r\n\t\t\t\tshowCancelButton: true,\r\n\t\t\t\tconfirmButtonText: \"Copy Record\",\r\n\t\t\t\tcancelButtonText: \"Cancel\",\r\n\t\t\t\treverseButtons: false\r\n\t\t\t})\r\n\t\t\t.then((result) => {\r\n\t\t\t\tif (result.value) {\r\n\t\t\t\t\tif (this.currentSet.tableDisplay.copyStoredProcedure != null) {\r\n\t\t\t\t\t\tthis.signalR.LogActivity(\"Executing RDN Copy stored procedure: \" + this.currentSet.tableDisplay.copyStoredProcedure );\r\n\t\t\t\t\t\tthis.dataService.SQLActionAsPromise(this.currentSet.tableDisplay.copyStoredProcedure + \" @\" + this.currentSet.tableDisplay.entityName.replace(\"dbo.\", \"\") + \"Id=\" + row[\"Id\"].value + \", @UserId=\" + Global.User.currentUser.Id).then((data: any) => {\r\n\t\t\t\t\t\t\tvar errorMessage = data\r\n\t\t\t\t\t\t\t\t.where((d: any) => {\r\n\t\t\t\t\t\t\t\t\treturn d.ErrorMessage;\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.toArray();\r\n\t\t\t\t\t\t\tif (errorMessage.length == 0) {\r\n\t\t\t\t\t\t\t\tservice.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\t\t\t\tmessage: service.currentSet.tableDisplay.entityDisplayName + \" record has been COPIED.\",\r\n\t\t\t\t\t\t\t\t\ttitle: service.currentSet.tableDisplay.label\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tswal.fire(errorMessage.first().ErrorMessage); //-- pop up an alert with the error message.\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tservice.backToList();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (result.dismiss === swal.DismissReason.cancel) {\r\n\t\t\t\t\tthis.signalR.LogActivity(\"Cancelled copy of record.\");\r\n\t\t\t\t\tservice.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\tmessage: service.currentSet.tableDisplay.entityDisplayName + \" record has NOT been copied.\",\r\n\t\t\t\t\t\ttitle: service.currentSet.tableDisplay.label\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tbackToList() {\r\n\t\tthis.currentStatus = \"view-list\";\r\n\t\tthis.currentStatus$.next(this.currentStatus);\r\n\t\tGlobal.RDN.editingForm = false;\r\n\t\tthis.rdnService.editingForm$.next(Global.RDN.editingForm);\r\n\t\tthis.signalR.LogActivity(\"Returned to the current RDN list.\");\r\n\t\t// if (this.latestFullStoredProcedureString) {\r\n\t\t// \t// -- go back to the stored procedure that built out the current list, if it exists. --Kirk T. Sherer, June 16, 2021.\r\n\t\t// \tthis.executeStoredProcedure(this.latestFullStoredProcedureString);\r\n\t\t// }\r\n\t\t// else {\r\n\t\t// \tif (this.currentSet.tableDisplay.sqlStoredProcedure != null) {\r\n\t\t// \t\tthis.buildStoredProcedureString(this.currentSet.tableDisplay.sqlStoredProcedure, this.options, (this.currentSet.tableDisplay.expandedStoredProcedure ? null : this.currentSet.tableDisplay.displayColumns)); //-- if the stored procedure is already expanding the relational fields, then don't send the display columns. They are already listed in the stored procedure.\r\n\t\t// \t}\r\n\t\t// \telse {\r\n\t\t// \t\tif (this.currentSet.tableDisplay.entityName != null) {\r\n\t\t// \t\t\tthis.buildStoredProcedureString(\"API.RDN_GetTop50RecordsForSQLTable @tableName='\" + this.currentSet.tableDisplay.entityName + \"'\", this.options, this.currentSet.tableDisplay.displayColumns);\r\n\t\t// \t\t}\r\n\t\t// \t}\r\n\t\t// }\r\n\t}\r\n\r\n\tsubmitEditForm(submittedValues: any) {\r\n\r\n\t\tvar service = this;\r\n\t\t// if (this.editFormOptions.saveStoredProcedureName != null && this.editFormOptions.saveValuesPerField == false)\r\n\t\t// {\r\n\t\t\t//Global.User.DebugMode && console.log(this.componentName + \"submitEditForm: submittedValues = %O\", submittedValues);\r\n\t\t\tvar submittedValuesObject = JSON.parse(submittedValues);\r\n\t\t\t//Global.User.DebugMode && console.log(this.componentName + \"submittedValuesObject = %O\", submittedValuesObject);\r\n\t\t\t// Global.User.DebugMode && console.log(this.componentName + \"Object.keys(submittedValuesObject) = %O\", Object.keys(submittedValuesObject));\r\n\t\t\tvar keys: Array = Object.keys(submittedValuesObject);\r\n\r\n\t\t\tvar displayFieldListArray = [];\r\n\t\t\tservice.currentSet.tableDisplay.displayColumns.forEach((column: any) => {\r\n\t\t\t\tif (column.name != \"actions\") {\r\n\t\t\t\t\tdisplayFieldListArray.push(column.name);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tvar displayFieldList = displayFieldListArray.join(\",\");\r\n\r\n\t\t\tvar questions = this.currentSet.editor.fields;\r\n\t\t\tconsole.log(\"questions = %O\", questions);\r\n\t\t\tvar fieldListArray = [];\r\n\t\t\t//-- this is adding a new record, not editing an existing record. Use the API.RDN_InsertRecordIntoSQLTable with the following parameters: @tableName, @fieldList (comma-separated list of field names), @fieldValues (comma-separated list with appropriate quotations for values in same field order), @UserId (user that is adding the record.)\r\n\t\t\tkeys.forEach((key: any) => {\r\n\t\t\t\tquestions.forEach((question: any) => {\r\n\t\t\t\t\tif (key == question.key && (question.type == \"parent-key-field\" || (question.controlType != \"read-only\" && question.type != \"parent-key-field\" && question.type != \"primary-key-field\"))) {\r\n\t\t\t\t\t\tfieldListArray.push(key);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tvar fieldList = fieldListArray.join(\",\"); //-- don't get any read-only fields since we won't be sending read-only values to the stored procedure. --Kirk T. Sherer, June 14, 2021.\r\n\r\n\t\t\tconsole.log(\"field list = \" + fieldList);\r\n\t\t\tvar saveStoredProcedureName = this.currentSet.editor.saveStoredProcedureName; //-- this is the stored procedure you will run if you don't want the generic insert/update stored procedure to run. Typically this will be for unique save situations where there is more than one table involved. --Kirk T. Sherer, August 12, 2021.\r\n\r\n\t\t\tif (!this.currentlyEditedRecord && !saveStoredProcedureName) {\r\n\t\t\t\t//-- this is adding a new record, not editing an existing record or adding a new record with a specific stored procedure. Use the API.RDN_InsertRecordIntoSQLTable with the following parameters: @tableName, @fieldList (comma-separated list of field names), @fieldValues (comma-separated list with appropriate quotations for values in same field order), @UserId (user that is adding the record.)\r\n\t\t\t\tvar fieldValuesArray = [];\r\n\t\t\t\tvar fieldValues = \"\";\r\n\t\t\t\tkeys.forEach((key: any) => {\r\n\t\t\t\t\tvar questions = this.currentSet.editor.fields;\r\n\t\t\t\t\tquestions.forEach((question: any) => {\r\n\t\t\t\t\t\tif (key == question.key && (question.type == \"parent-key-field\" || (question.controlType != \"read-only\" && question.controlType != \"read-only-textarea-large\" && question.controlType != \"read-only-textarea\" && question.type != \"parent-key-field\" && question.type != \"primary-key-field\" && question.controlType != \"text-differences-comparison\"))) {\r\n\t\t\t\t\t\t\tvar value = submittedValuesObject[key];\r\n\t\t\t\t\t\t\tif (typeof value == \"object\") {\r\n\t\t\t\t\t\t\t\t//--if we made it here with an entire object, then get the Id value of the object since it came from a selector. --Kirk T. Sherer, May 25, 2021.\r\n\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"value = %O\", value);\r\n\t\t\t\t\t\t\t\tif (key == \"Id\") {\r\n\t\t\t\t\t\t\t\t\tvar idFieldValue = value[\"Id\"];\r\n\t\t\t\t\t\t\t\t\tfieldValuesArray.push(idFieldValue); //submittedValuesObject[key].Id;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tif (!value) {\r\n\t\t\t\t\t\t\t\t\t\tfieldValuesArray.push(\"null\");\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tfieldValuesArray.push(\"'\" + value.split(\"'\").join(\"''\") + \"'\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tif (value == null) {\r\n\t\t\t\t\t\t\t\t\tfieldValuesArray.push(\"null\");\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tswitch (question.controlType) {\r\n\t\t\t\t\t\t\t\t\t\tcase \"date\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"datetime\":\r\n\t\t\t\t\t\t\t\t\t\t\tfieldValuesArray.push(\"'\" + moment(value).format(\"MM/DD/YYYY HH:mm:ss\") + \"'\");\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\tcase \"number\":\r\n\t\t\t\t\t\t\t\t\t\t\tfieldValuesArray.push(isNaN(value) ? \"null\" : +value);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\tcase \"slider\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"slider-yes-no\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"slider-true-false\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"true-false-button\":\r\n\t\t\t\t\t\t\t\t\t\t\t//-- these are all boolean fields in SQL Server. Save a blank, text 0, numeric 0, or boolean false value as numeric 0 (bit=0 is false in SQL), else numeric 1 (bit=1 is true in SQL). --Kirk T. Sherer, January 18, 2023.\r\n\t\t\t\t\t\t\t\t\t\t\tif (value == \"true\" || value == \"false\" || value == true || value == false) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t//-- this is a boolean field. Set it as 1 for true or 0 for false.\r\n\t\t\t\t\t\t\t\t\t\t\t\tfieldValuesArray.push(value == \"true\" || value == true ? \"1\" : \"0\");\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\tcase \"file-upload\":\r\n\t\t\t\t\t\t\t\t\t\t\tfieldValuesArray.push(value == null ? \"null\" : \"'\" + value + \"'\");\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\tcase \"textbox\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"textarea\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"textarea-fancy\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"textarea-large\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"uib-button-multi-select\":\r\n\t\t\t\t\t\t\t\t\t\t\tif (value == 0 || value == \"0\" || value == \"\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (key.indexOf(\"ValueWhenActive\") != -1 || key.indexOf(\"OutputFalseValue\") != -1 || key.indexOf(\"OutputTrueValue\") != -1 ) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (value == \"\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfieldValuesArray.push(\"null\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfieldValuesArray.push(\"'\" + value + \"'\"); //-- taking whatever is in the 'ValueWhenActive', OutputFalseValue, or OutputTrueValue field. Do not reset to a null value when zero is entered. --Kirk T. Sherer, January 30, 2024.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldValuesArray.push(\"null\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (key.indexOf(\"Id\") != -1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldValuesArray.push(value); //-- this is an ID field, and if it has a value, we don't need quotes around it. --Kirk T. Sherer, June 8, 2023.\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (typeof value.split == \"function\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfieldValuesArray.push(\"'\" + value.split(\"'\").join(\"''\") + \"'\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfieldValuesArray.push(\"'\" + value + \"'\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t\t\tfieldValuesArray.push(value);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t\tfieldValues = fieldValuesArray.join(\",\");\r\n\t\t\t\tconsole.log(\"field values = \" + fieldValues);\r\n\r\n\t\t\t\tvar sqlStoredProcedure = \"API.RDN_InsertRecordIntoSQLTable\";\r\n\t\t\t\tif (saveStoredProcedureName) {\r\n\t\t\t\t\tsqlStoredProcedure = saveStoredProcedureName;\r\n\t\t\t\t\t//-- build out the field list array as separate parameters with values for the specific stored procedure that isn't the generic API.RDN_InsertRecordIntoSQLTable since specific stored procedures will have the fields listed as parameters. --Kirk T. Sherer, August 23, 2021.\r\n\t\t\t\t}\r\n\t\t\t\tnewParameterListAsString = \"@tableName='\" + this.currentSet.tableDisplay.entityName + \"', @fieldList='\" + fieldList + \"', @fieldValues='\" + fieldValues.split(\"'\").join(\"''\") + \"', @sqlStoredProcedure='\" + this.latestFullStoredProcedureString.split(\"'\").join(\"''\") + \"', @UserId=\" + Global.User.currentUser.Id;\r\n\t\t\t\tsqlStoredProcedure = sqlStoredProcedure + \" \" + newParameterListAsString;\r\n\t\t\t} else {\r\n\t\t\t\t//-- we're editing an existing record or we're inserting a new record with a specific stored procedure. Using the API.RDN_UpdateSQLTable (or the specific stored procedure) by adding the list of fields and their corresponding values as a comma-separated list of SQL update statements. This will be sent as SQL to the destination stored procedure.\r\n\t\t\t\t//-- building a parameter list to attach to the end of the stored procedure to execute it. --Kirk T. Sherer, April 7, 2020.\r\n\t\t\t\tvar submittedValuesAsString = submittedValues;\r\n\t\t\t\tvar parameterListAsString = \"\";\r\n\t\t\t\tvar countOfParameters = 1;\r\n\r\n\t\t\t\tkeys.forEach((key: any) => {\r\n\t\t\t\t\tvar questions = this.currentSet.editor.fields;\r\n\t\t\t\t\tquestions.forEach((question: any) => {\r\n\t\t\t\t\t\tif (key == question.key && (question.type == \"parent-key-field\" || (question.controlType != \"read-only\" && question.controlType != \"read-only-textarea-large\" && question.controlType != \"read-only-textarea\" && question.type != \"parent-key-field\" && question.type != \"primary-key-field\" && question.controlType != \"text-differences-comparison\"))) {\r\n\t\t\t\t\t\t\tvar value = submittedValuesObject[key];\r\n\r\n\t\t\t\t\t\t\tif (question.controlType == \"uib-button-multi-select\") {\r\n\t\t\t\t\t\t\t\tvalue = question.listOfValues\r\n\t\t\t\t\t\t\t\t\t?.where((d: any) => {\r\n\t\t\t\t\t\t\t\t\t\treturn d.IsSelected == 1;\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t.select((vals: any) => {\r\n\t\t\t\t\t\t\t\t\t\treturn vals.Id;\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t.toArray()\r\n\t\t\t\t\t\t\t\t\t.join(\",\"); //-- multi-select will be comma-separated list of Id numbers to pass to the stored procedure. --Kirk T. Sherer, September 9, 2021.\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (this.currentSet.editor.saveStoredProcedureName != null) {\r\n\t\t\t\t\t\t\t\tif (key.indexOf(\"@\") == -1) {\r\n\t\t\t\t\t\t\t\t\t//-- if the name of the field in the JSON object doesn't have an '@' in front of it, place one there since it will be a parameter in the save stored procedure. --Kirk T. Sherer, May 28, 2021.\r\n\t\t\t\t\t\t\t\t\tkey = \"@\" + key;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t//-- if we don't have a saveStoredProcedureName defined, but the field keys are prefixed with a '@' for a stored procedure parameter, we have to remove them since\r\n\t\t\t\t\t\t\t\t//-- we're including the key/value pairs in the parameterListAsString variable. --Kirk T. Sherer, May 28, 2021.\r\n\t\t\t\t\t\t\t\tif (key.indexOf(\"@\") != -1) {\r\n\t\t\t\t\t\t\t\t\tkey = key.replace(\"@\", \"\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"key: \" + key + \", value: \" + value);\r\n\t\t\t\t\t\t\tparameterListAsString += key + \"=\";\r\n\t\t\t\t\t\t\tif (typeof value == \"object\" && value != null) {\r\n\t\t\t\t\t\t\t\t//--if we made it here with an entire object, then get the Id value of the object since it came from a selector. --Kirk T. Sherer, May 25, 2021.\r\n\t\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"value = %O\", value);\r\n\t\t\t\t\t\t\t\tvar idFieldValue = value[\"Id\"];\r\n\t\t\t\t\t\t\t\tparameterListAsString += idFieldValue; //submittedValuesObject[key].Id;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tif (value == null) {\r\n\t\t\t\t\t\t\t\t\tparameterListAsString += \"null\";\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tswitch (question.controlType) {\r\n\t\t\t\t\t\t\t\t\t\tcase \"date\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"datetime\":\r\n\t\t\t\t\t\t\t\t\t\t\tparameterListAsString += \"'\" + moment(value).format(\"MM/DD/YYYY HH:mm:ss\") + \"'\";\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\tcase \"number\":\r\n\t\t\t\t\t\t\t\t\t\t\tparameterListAsString += isNaN(value) ? \"null\" : +value;\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\tcase \"slider\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"slider-yes-no\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"slider-true-false\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"true-false-button\":\r\n\t\t\t\t\t\t\t\t\t\t\t//-- these are all boolean fields in SQL Server. Save a blank, text 0, numeric 0, or boolean false value as numeric 0 (bit=0 is false in SQL), else numeric 1 (bit=1 is true in SQL). --Kirk T. Sherer, January 18, 2023.\r\n\t\t\t\t\t\t\t\t\t\t\tif (value == \"true\" || value == \"false\" || value == true || value == false) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t//-- this is a boolean field. Set it as 1 for true or 0 for false.\r\n\t\t\t\t\t\t\t\t\t\t\t\tparameterListAsString += value == \"true\" || value == true ? \"1\" : \"0\";\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\tcase \"file-upload\":\r\n\t\t\t\t\t\t\t\t\t\t\tparameterListAsString += value == null ? \"null\" : \"'\" + value + \"'\";\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\tcase \"textbox\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"textarea\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"textarea-fancy\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"textarea-large\":\r\n\t\t\t\t\t\t\t\t\t\tcase \"uib-button-multi-select\":\r\n\t\t\t\t\t\t\t\t\t\t\tif (value == 0 || value == \"0\" || value == \"\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (key.indexOf(\"ValueWhenActive\") != -1 || key.indexOf(\"OutputFalseValue\") != -1 || key.indexOf(\"OutputTrueValue\") != -1 ) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (value == \"\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparameterListAsString += \"null\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparameterListAsString += \"'\" + value + \"'\"; //-- taking whatever is in the 'ValueWhenActive', OutputFalseValue, or OutputTrueValue field. Do not reset to a null value when zero is entered. --Kirk T. Sherer, January 30, 2024.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tparameterListAsString += \"null\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"key.indexOf(\" + key + \") = \" + key.indexOf(\"Id\"));\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (key.indexOf(\"Id\") != -1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tparameterListAsString += value; //-- this is an ID field, and if it has a value, we don't need quotes around it. --Kirk T. Sherer, June 8, 2023.\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (typeof value.split == \"function\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparameterListAsString += \"'\" + value.split(\"'\").join(\"''\") + \"'\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparameterListAsString += \"'\" + value + \"'\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t\t\tparameterListAsString += value;\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (countOfParameters < keys.length) {\r\n\t\t\t\t\t\t\t\tparameterListAsString += \",\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcountOfParameters++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"parameterListAsString = \" + parameterListAsString);\r\n\t\t\t\tvar newParameterListAsString = parameterListAsString;\r\n\t\t\t\tnewParameterListAsString = newParameterListAsString.replace(\", ,\", \",\");\r\n\t\t\t\tif (newParameterListAsString.substr(newParameterListAsString.length - 1) == \",\") {\r\n\t\t\t\t\tnewParameterListAsString = newParameterListAsString.substr(0, newParameterListAsString.length - 1); // just exclude the trailing character since it's a comma.\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar sqlStoredProcedure = \"API.RDN_UpdateSQLTable\";\r\n\t\t\t\tif (saveStoredProcedureName) {\r\n\t\t\t\t\tsqlStoredProcedure = saveStoredProcedureName + \" \" + newParameterListAsString + \", @Id=\" + (this.currentlyEditedRecord && this.currentlyEditedRecord[\"Id\"]?.value != null ? this.currentlyEditedRecord[\"Id\"].value : \"null\") + \", @UserId=\" + Global.User.currentUser.Id;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnewParameterListAsString = \"@tableName='\" + this.currentSet.tableDisplay.entityName + \"', @fieldUpdates='\" + newParameterListAsString.split(\"'\").join(\"''\") + \"', @Id=\" + this.currentlyEditedRecord[\"Id\"].value + \", @UserId=\" + Global.User.currentUser.Id;\r\n\t\t\t\t\tsqlStoredProcedure = sqlStoredProcedure + \" \" + newParameterListAsString;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"sqlStoredProcedure = \" + sqlStoredProcedure);\r\n\t\t\t}\r\n\r\n\t\t\tthis.signalR.LogActivity(\"Executing add/update record stored procedure: \" + sqlStoredProcedure);\r\n\t\t\t//--insert new record or update existing record here.\r\n\t\t\tthis.dataService.SQLActionAsPromise(sqlStoredProcedure).then((data: any) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"data was submitted.\");\r\n\t\t\t\tvar possibleErrorMessage = data.firstOrDefault((d: any) => {\r\n\t\t\t\t\treturn d.ErrorMessage;\r\n\t\t\t\t});\r\n\t\t\t\tif (possibleErrorMessage) {\r\n\t\t\t\t\tvar actualErrorMessage = data.first((d: any) => {\r\n\t\t\t\t\t\treturn d;\r\n\t\t\t\t\t}).ErrorMessage;\r\n\t\t\t\t\tswal.fire({\r\n\t\t\t\t\t\ttitle: \"

        Error saving \" + service.currentSet.tableDisplay.entityName + \" record

        \",\r\n\t\t\t\t\t\thtml: \"

        \" + actualErrorMessage + (Global.User.isAdmin ? \"

        \" + sqlStoredProcedure : \"\") + \"

        \"\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log((!this.currentlyEditedRecord ? \"Added \" : \"Edited \") + \"record: data = %O\", data);\r\n\t\t\t\t\tthis.signalR.LogActivity(\"Successfully \" + (!this.currentlyEditedRecord ? \"Added \" : \"Edited \") + \"record.\");\r\n\t\t\t\t\t// if (!this.currentlyEditedRecord) {\r\n\t\t\t\t\t// \tvar row = data.first();\r\n\t\t\t\t\t// \tvar originalRow = row;\r\n\t\t\t\t\t// \t//Global.User.DebugMode && console.log(service.componentName + \"originalRow = %O\", originalRow);\r\n\t\t\t\t\t// \tservice.currentSet.tableDisplay.displayColumns.forEach((column: any) => {\r\n\t\t\t\t\t// \t\t//Current State\r\n\t\t\t\t\t// \t\t//row[column.name] = a primitive value;\r\n\t\t\t\t\t// \t\t//\r\n\t\t\t\t\t// \t\t//Reformat to:\r\n\t\t\t\t\t// \t\trow[column.name] = {\r\n\t\t\t\t\t// \t\t\tvalue: row[column.name],\r\n\t\t\t\t\t// \t\t\trdnRecursionSet: null\r\n\t\t\t\t\t// \t\t};\r\n\r\n\t\t\t\t\t// \t\tif (column.type == 'set') {\r\n\r\n\t\t\t\t\t// \t\t\tvar currentContainingDivId = ++Global.RDN.maxId;\r\n\r\n\t\t\t\t\t// \t\t\tvar recursiveSet = {\r\n\t\t\t\t\t// \t\t\t\tcontainingDivId: currentContainingDivId,\r\n\t\t\t\t\t// \t\t\t\tparentColumnLink: column.parentColumnLink,\r\n\t\t\t\t\t// \t\t\t\tchildColumnLink: column.childColumnLink,\r\n\t\t\t\t\t// \t\t\t\tchildColumnLinkValue: originalRow[column.parentColumnLink].value != null ? originalRow[column.parentColumnLink].value : originalRow[column.parentColumnLink], //--original row contains the row the way it came from SQL Server.\r\n\t\t\t\t\t// \t\t\t\tsetName: column.setName\r\n\t\t\t\t\t// \t\t\t};\r\n\r\n\t\t\t\t\t// \t\t\trow[column.name].rdnRecursionSet = recursiveSet;\r\n\t\t\t\t\t// \t\t\tGlobal.RDN.recursedSets.push(recursiveSet);\r\n\t\t\t\t\t// \t\t}\r\n\r\n\t\t\t\t\t// \t});\r\n\t\t\t\t\t// \tservice.currentSetData.push(row);\r\n\t\t\t\t\t// \tservice.currentSetDataCountOfRecords++;\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t// else {\r\n\t\t\t\t\t// \tvar editedRow = data.first();\r\n\t\t\t\t\t// \tGlobal.User.DebugMode && console.log(service.componentName + \"editForm --> editedRow = %O\", editedRow);\r\n\t\t\t\t\t// \tGlobal.User.DebugMode && console.log(service.componentName + \"editing record --> this.currentSet = %O\", service.currentSet);\r\n\t\t\t\t\t// \tGlobal.User.DebugMode && console.log(service.componentName + \"editing record --> this.currentSetData = %O\", service.currentSetData);\r\n\t\t\t\t\t// \tvar editedRowInDataSet = service.currentSetData.first((d:any) => { return d['Id'].value == editedRow.Id });\r\n\t\t\t\t\t// \tservice.currentSet.tableDisplay.displayColumns.forEach((column: any) => {\r\n\t\t\t\t\t// \t\t//Current State\r\n\t\t\t\t\t// \t\t//row[column.name] = a primitive value;\r\n\t\t\t\t\t// \t\t//\r\n\t\t\t\t\t// \t\t//Reformat to:\r\n\t\t\t\t\t// \t\tif (column.type != 'set') {\r\n\t\t\t\t\t// \t\t\teditedRowInDataSet[column.name] = {\r\n\t\t\t\t\t// \t\t\t\tvalue: editedRow[column.name],\r\n\t\t\t\t\t// \t\t\t\trdnRecursionSet: null\r\n\t\t\t\t\t// \t\t\t};\r\n\t\t\t\t\t// \t\t}\r\n\t\t\t\t\t// \t});\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t// Global.User.DebugMode && console.log(service.componentName + \"editing record --> this.currentSet.setName = \" + this.currentSet.setName);\r\n\t\t\t\t\t// service.backToList();\r\n\r\n\t\t\t\t\tthis.currentStatus = \"view-list\";\r\n\t\t\t\t\tGlobal.RDN.editingForm = false;\r\n\r\n\t\t\t\t\tif (this.currentSet?.tableDisplay?.dataCacheCollection != null) {\r\n\t\t\t\t\t\tservice.formatDataCacheCollection();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.currentStatus$.next(this.currentStatus);\r\n\t\t\t\t\t\tthis.rdnService.editingForm$.next(Global.RDN.editingForm);\r\n\t\t\t\t\t\tservice.executeStoredProcedure(service.latestFullStoredProcedureString);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\r\n\t\t//}\r\n\r\n\t}\r\n\r\n\tpublic viewFile(fileImage: any) {\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"trying to view the file... file = %O\", fileImage);\r\n\t\tvar url = fileImage.viewUrl;\r\n\r\n\t\tvar intHSize = window.screen.availWidth * 0.7;\r\n\t\tvar intVSize = window.screen.availHeight * 0.7;\r\n\t\tvar intTop = (window.screen.availHeight - intVSize) / 2;\r\n\t\tvar intLeft = (window.screen.availWidth - intHSize) / 2;\r\n\t\tvar sngWindow_Size_Percentage = 0.85;\r\n\r\n\t\tvar strFeatures = \"\";\r\n\t\tintHSize = window.screen.availWidth * sngWindow_Size_Percentage * 0.6;\r\n\t\tintVSize = window.screen.availHeight * sngWindow_Size_Percentage;\r\n\t\tintTop = (window.screen.availHeight - intVSize) / 2;\r\n\t\tintLeft = (window.screen.availWidth - intHSize) / 2;\r\n\t\tstrFeatures = \"top=\" + intTop + \",left=\" + intLeft + \",height=\" + intVSize + \",width=\" + intHSize + \", scrollbars=yes, resizable=yes, location=no\";\r\n\r\n\t\tvar SRWindow = window.open(url, \"SRWindow\", strFeatures);\r\n\t}\r\n\r\n\tdrop(event: CdkDragDrop, list: any) {\r\n\t\tvar service = this;\r\n\t\tmoveItemInArray(list, event.previousIndex, event.currentIndex);\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"event.previousIndex = \" + event.previousIndex + \", event.currentIndex = \" + event.currentIndex);\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"list = %O\", list);\r\n\t\tlet ordinalValue = 1;\r\n\t\tvar countOfItemsInList = 0;\r\n\t\tvar newList = null;\r\n\t\tvar finishedWithUpdate = false;\r\n\t\tvar requestJSON: any = [];\r\n\t\tlist.forEach((item: any) => {\r\n\t\t\titem.Ordinal.value = ordinalValue;\r\n\t\t\tordinalValue++;\r\n\t\t\tvar sqlStatement = \"API.RDN_UpdateOrdinalInList @UserId=\" + Global.User.currentUser.Id + \", @tableName='\" + service.currentSet.tableDisplay.entityName + \"', @Id=\" + item.Id.value + \", @OrdinalValue=\" + item.Ordinal.value;\r\n\t\t\tvar listSQLObject = {\r\n\t\t\t\tlabel: \"List-\" + item.Ordinal.value,\r\n\t\t\t\tsqlStatement: sqlStatement\r\n\t\t\t};\r\n\t\t\trequestJSON.push(listSQLObject);\r\n\t\t\tcountOfItemsInList++;\r\n\t\t});\r\n\t\tGlobal.User.DebugMode && console.log(this.componentName + \"List drag-and-drop requestJSON = %O\", requestJSON);\r\n\t\tthis.dataService.SQLMultiAction(requestJSON).then((data: any) => {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"SQLMultiAction for requestJSON = %O\", data);\r\n\t\t\tvar collections: any = data;\r\n\t\t\tcollections.forEach((collection: any) => {\r\n\t\t\t\tif (collection.label == \"List-\" + countOfItemsInList) {\r\n\t\t\t\t\tnewList = collection.data; //-- get last update of the items for the final list.\r\n\t\t\t\t\tservice.executeStoredProcedure(service.latestFullStoredProcedureString); //-- only when we're finished updating all of the items for the new ordinal value do we need to notify the RDN to redisplay the list.\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\topenFileImageUploadWindow(entityType: string, title: string, entityId?: number) {\r\n\t\tvar service = this;\r\n\r\n\t\tif (entityId == undefined) {\r\n\t\t\tentityId = null;\r\n\t\t}\r\n\r\n\t\tvar sqlStatement = \"API.FileImageManagement @Type='List', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @UserId=\" + Global.User.currentUser.Id;\r\n\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": \" + sqlStatement + \" = %O\", data);\r\n\t\t\tthis.fileImageData = data;\r\n\t\t\tthis.FileImageLibraryControlObject = {\r\n\t\t\t\timageKeys: this.fileImageData.filter((i: any) => {\r\n\t\t\t\t\treturn i.ImageKey;\r\n\t\t\t\t}),\r\n\t\t\t\t//---B\r\n\t\t\t\tremoveUploadFunction(deletedImageKey: string) {\r\n\t\t\t\t\tservice.dataService.SQLActionAsPromise(\"API.FileImageManagement @Type='Delete', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @ImageKey='\" + deletedImageKey + \"', @UserId=\" + Global.User.currentUser.Id).then((deletedEntity: any) => {\r\n\t\t\t\t\t\tservice.fileImageData.splice(deletedEntity);\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t//---B\r\n\t\t\t\taddUploadFunction(newImageKey: string) {\r\n\t\t\t\t\tservice.dataService.SQLActionAsPromise(\"API.FileImageManagement @Type='Add', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @ImageKey='\" + newImageKey + \"', @UserId=\" + Global.User.currentUser.Id).then((newEntity: any) => {\r\n\t\t\t\t\t\tservice.fileImageData.push(newEntity);\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\tmode: null,\r\n\t\t\t\tlistTitle: title,\r\n\t\t\t\tentityId: entityId,\r\n\t\t\t\tentityType: entityType,\r\n\t\t\t\tcloseUploadWindowFunction() {\r\n\t\t\t\t\tservice.FileImageLibraryControlObject = null;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tthis.openFileUploadDialog();\r\n\t\t});\r\n\t}\r\n\r\n\topenFileUploadDialog(): void {\r\n\t\tvar innerWidth = window.innerWidth;\r\n\t\tconst dialogRef = this.dialog.open(FileUploadListComponent, {\r\n\t\t\twidth: \"70%\",\r\n\t\t\theight: \"70%\"\r\n\t\t});\r\n\r\n\t\tdialogRef.componentInstance.fileImageLibraryControlObject = this.FileImageLibraryControlObject;\r\n\r\n\t\tdialogRef.afterClosed().subscribe((result) => {\r\n\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": The File Upload dialog was closed\");\r\n\t\t\tthis.getCountOfFilesUploaded(this.FileImageLibraryControlObject.entityId, this.FileImageLibraryControlObject.entityType);\r\n\t\t});\r\n\t}\r\n\r\n\tgetCountOfFilesUploaded(entityId: number, entityType: string) {\r\n\t\tvar sqlStatement = \"API.FileImageManagement @Type='Count', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @UserId=\" + Global.User.currentUser.Id;\r\n\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\tvar listOfFiles = data;\r\n\t\t\tthis.countOfFilesUploaded = listOfFiles.length > 0 ? listOfFiles.first().CountOfFilesUploaded : 0;\r\n\t\t});\r\n\t}\r\n}\r\n","
        \r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t
        \r\n\t\t\t\t{{ currentSet.tableDisplay.label }} ({{ currentSetDataCountOfRecords > 0 ? currentSetDataCountOfRecords + ' item' + (currentSetDataCountOfRecords > 1 ? 's' : '') : '0 items' }})\r\n\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t
        {{ column.label }}
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t
        No records found for {{currentSet.tableDisplay.label}}.
        \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t{{ row[column.name].value }}\r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t{{ column.linkName }}\r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
        {{row['ConditionsInEnglish'].value}}
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
        {{row['ConditionWatchInEnglish'].value}}
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t{{ row[column.name].value }}\r\n\t\t\t\t\t\t\t\t\t
        {{ (row['CreationDate']?.value != null ? row['CreationDate']?.value : row['creationDate']?.value) | date:'MM/dd/yyyy HH:mm:ss.SSS'}}
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t{{ row[column.name].value }}\r\n\t\t\t\t\t\t\t\t\t
        {{ (row['LastModifiedDate']?.value != null ? row['LastModifiedDate'].value : row['lastModifiedDate'].value) | date:'MM/dd/yyyy HH:mm:ss.SSS'}}
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t{{ row[column.name].value }}\r\n\t\t\t\t\t\t\t\t\t
        {{row['RequestedDateMS'] | date:'MM/dd/yyyy HH:mm:ss.SSS'}}
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t{{ row[column.name].value }}\r\n\t\t\t\t\t\t\t\t\t
        {{row['ApprovedDateMS'] | date:'MM/dd/yyyy HH:mm:ss.SSS'}}
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t{{ row[column.name].value }}\r\n\t\t\t\t\t\t\t\t\t
        {{row['DateMovedToProductionMS'] | date:'MM/dd/yyyy HH:mm:ss.SSS'}}
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t{{ row[column.name].value }}\r\n\t\t\t\t\t\t\t\t\t
        {{row['SeverityLevel'].value}}
        \r\n\t\t\t\t\t\t\t\t\t
        {{row['SeverityLevel'].value}}
        \r\n\t\t\t\t\t\t\t\t\t
        {{row['SeverityLevel'].value}}
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t{{ row[column.name].value }}\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t{{ row[column.name].value }}\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\"photo\" {{row[column.name].fileImage.name}}\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\"photo\" {{row[column.name].fileImage.name}}\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\"photo\" {{row[column.name].fileImage.name}}\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t{{ row[column.name].value | date: 'MM/dd/yyyy HH:mm:ss.SSS'}}\r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        Yes
        \r\n\t\t\t\t\t\t\t\t\t
        No
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t{{ row[column.name].value | currency }}\r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n
        \r\n\r\n
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t

        {{editFormTitle}}


        \r\n\t\t\t
        Required fields are marked with an asterisk.
        \r\n\t\t\t\r\n\t\t
        \r\n\t\t
        \r\n\t\t\t\r\n\t\t
        \r\n\t
        \r\n
        \r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { StringFilterCellComponent } from \"@progress/kendo-angular-grid\";\r\nimport { RecursiveDataNavigatorService } from \"projects/shared-lib/src/lib/services/recursive-data-navigator.service\";\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { IGlobal } from \"projects/shared-lib/src/lib/_models/global.model\";\r\nimport { UtilityService } from \"projects/shared-lib/src/lib/services/utility.service\";\r\n\r\n@Component({\r\n\tselector: \"rdn-destination\",\r\n\ttemplateUrl: \"./rdn-destination.component.html\",\r\n\tstyleUrls: [\"./rdn-destination.component.scss\"]\r\n})\r\nexport class RdnDestinationComponent implements OnInit {\r\n\tpublic isLoading: boolean = false;\r\n\tpublic selectedEntity: any;\r\n\tpublic setName: string;\r\n\tpublic global: IGlobal = Global;\r\n\r\n\tconstructor(private activatedRoute: ActivatedRoute, private router: Router, public rdnService: RecursiveDataNavigatorService, public utilityService: UtilityService) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.setName = this.activatedRoute.snapshot.paramMap.get(\"setName\");\r\n\t\t\r\n\t\tvar requestedRDNSet = Global.AdminTableEditorStates.firstOrDefault((set: any) => {\treturn set.setName == this.setName;\t});\r\n\t\tif (requestedRDNSet != null) {\r\n\t\t\tGlobal.User.DebugMode && console.log(\"this.setName sent to this component = %O\", requestedRDNSet);\r\n\t\t\tthis.selectedEntity = requestedRDNSet;\r\n\t\t\tvar rdnSet = this.rdnService.structure.firstOrDefault((s: any) => { return s.setName == this.selectedEntity.setName; });\r\n\t\t\tif (rdnSet == null) {\r\n\t\t\t\trdnSet = this.rdnService.structure.firstOrDefault((s: any) => { \r\n\t\t\t\t\treturn s.sets?.firstOrDefault((set:any) => { return set.Name == this.selectedEntity.setName })\r\n\t\t\t\t});\r\n\t\t\t\tif (rdnSet == null) {\r\n\t\t\t\t\tthis.selectedEntity = null; //-- this is so the RDN doesn't actually start up since the selectedEntity is what is passed to the RDN component. \r\n\t\t\t\t\tthis.returnToSystemTableListAndShowToasterMessage(requestedRDNSet); //-- going back to list since the requested set name doesn't exist in the RDN Service. \r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(\"rdn-destination: Global.RDN = %O\", Global.RDN);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\t//-- check the grouping of System Tables to see if we have any that have children (i.e. sub-groups). If so, then check those groups to see if the children have the setName being sent from the System Tables component.\r\n\t\t\tvar arrayOfGroupingsWithChildRecords = Global.AdminTableEditorStates.where((tableEntry:any) => { return tableEntry.children != undefined\t}).toArray();\r\n\t\t\tif (arrayOfGroupingsWithChildRecords != null && arrayOfGroupingsWithChildRecords.length > 0)\r\n\t\t\t{\r\n\t\t\t\tvar childSet = null;\r\n\t\t\t\tarrayOfGroupingsWithChildRecords.forEach((group:any) => {\r\n\t\t\t\t\tchildSet = group.children.firstOrDefault((set: any) => { return set.setName == this.setName; });\r\n\t\t\t\t\tif (childSet != null) {\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(\"this.setName sent to this component = %O\", childSet);\r\n\t\t\t\t\t\tthis.selectedEntity = childSet;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (this.selectedEntity == null) {\r\n\t\t\t\t\t//-- no such set name exists in the RDN currently. Send back a toaster message indicating this for the logged-in administrative user.\r\n\t\t\t\t\tthis.returnToSystemTableListAndShowToasterMessage(requestedRDNSet); //-- use the one that was originally sent to us at the start of this function. \r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t//--check the RDN service to insure that the requested RDN set really exists in the RDN Service. \r\n\t\t\t\t\tvar rdnSet = this.rdnService.structure.firstOrDefault((s: any) => { return s.setName == this.selectedEntity.setName; });\r\n\t\t\t\t\tif (rdnSet == null) {\r\n\t\t\t\t\t\trdnSet = this.rdnService.structure.firstOrDefault((s: any) => { \r\n\t\t\t\t\t\t\treturn s.sets?.firstOrDefault((set:any) => { return set.Name == this.selectedEntity.setName })\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif (rdnSet == null) {\r\n\t\t\t\t\t\t\trequestedRDNSet = this.selectedEntity;\r\n\t\t\t\t\t\t\tthis.selectedEntity = null; //-- this is so the RDN doesn't actually start up since the selectedEntity is what is passed to the RDN component. \r\n\t\t\t\t\t\t\tthis.returnToSystemTableListAndShowToasterMessage(requestedRDNSet); //-- going back to list since the requested set name doesn't exist in the RDN Service. \r\n\t\t\t\t\t\t}\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(\"rdn-destination: Global.RDN = %O\", Global.RDN);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t//--if the user came here with a set name that does not exist, then just go back to the list of system tables. --Kirk T. Sherer, November 27, 2023. \r\n\t\t\t\tthis.returnToSystemTableListAndShowToasterMessage(requestedRDNSet);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t}\r\n\r\n\tbackToSystemTableList() {\r\n\t\tthis.router.navigate([\"layout/tables\"]);\r\n\t}\r\n\r\n\treturnToSystemTableListAndShowToasterMessage(set: any) {\r\n\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\ttype: \"info\",\r\n\t\t\tmessage: \"'\" + set.label + \"' does not exist in the RDN.\",\r\n\t\t\ttitle: \"Recursive Data Navigator\"\r\n\t\t});\r\n\t\tthis.backToSystemTableList();\r\n\t}\r\n}\r\n","
        \r\n\t\r\n\t\r\n\t
        \r\n
        \r\n
        \r\n \r\n

        {{ selectedEntity.label }}

        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n\t
        \r\n
        \r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'go-to-v1',\r\n templateUrl: './go-to-v1.component.html',\r\n styleUrls: ['./go-to-v1.component.scss']\r\n})\r\nexport class GoToV1Component implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n console.log(\"GoToV1Component: here\");\r\n }\r\n\r\n}\r\n","
        Going to Version 1...
        ","import { Component, AfterViewInit, ViewChild, ElementRef, NgZone } from \"@angular/core\";\r\nimport { FormControl, FormGroup } from \"@angular/forms\";\r\n\r\nimport { filter } from 'rxjs';\r\n\r\nimport { ResizeResult } from \"ngxtension/resize\";\r\n\r\nimport _ from \"lodash\";\r\n\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\n\r\nimport { SassHelperComponent } from \"../../_helpers/sass-helper/sass-helper.component\";\r\n\r\nimport { IGlobal } from \"projects/shared-lib/src/lib/_models/global.model\";\r\nimport { GridSettings } from \"projects/shared-lib/src/lib/_models/grid-settings.interface\";\r\n\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { SignalRCoreService } from '../../services/signalr-core.service';\r\n\r\nimport { KendoGridParentComponent } from '../kendo-grid-parent/kendo-grid-parent.component';\r\n\r\ndeclare var Highcharts: any;\r\n\r\n@Component({\r\n\tselector: 'lib-ninja-statistics-content',\r\n\ttemplateUrl: './ninja-statistics-content.component.html',\r\n\tstyleUrls: ['./ninja-statistics-content.component.scss'],\r\n})\r\nexport class NinjaStatisticsContentComponent implements AfterViewInit {\r\n\t@ViewChild('tagDataGrid') tagDataGrid: KendoGridParentComponent;\r\n\r\n\t@ViewChild(SassHelperComponent)\r\n\tprivate sassHelper: SassHelperComponent;\r\n\tHighcharts: typeof Highcharts = Highcharts;\r\n\r\n\tpublic style: any = 'smooth';\r\n\tfullDataCacheSubscription: any;\r\n\tpublic global: IGlobal = Global;\r\n\tsignalRUpdateSubscription: any;\r\n\tgridData = [];\r\n\tpublic grid = {\r\n\t\tname: 'Ninja Statistics',\r\n\t\tkeepLast50Group: new FormGroup({\r\n\t\t\tkeepLast50: new FormControl(true),\r\n\t\t}),\r\n\t\tkeepLast50: true,\r\n\t\ttitle: 'Ninja Statistics',\r\n\t\tdata: [],\r\n\t\tchartData: [],\r\n\t\tgridSettings: {\r\n\t\t\tstate: {\r\n\t\t\t\tskip: 0,\r\n\t\t\t\tfilter: {\r\n\t\t\t\t\tlogic: 'and',\r\n\t\t\t\t\tfilters: [],\r\n\t\t\t\t},\r\n\t\t\t\ttake: 15,\r\n\t\t\t},\r\n\t\t\tcolumnsConfig: [],\r\n\t\t} as GridSettings,\r\n\t};\r\n\tpublic seriesArray: any[] = [];\r\n\tpublic AverageObservationsPerSecondChartData = [];\r\n\tpublic DeletionQueueLengthChartData = [];\r\n\tpublic ObservationInsertQueueLengthChartData = [];\r\n\tpublic PausedChartData = [];\r\n\tpublic TagStructureQueueLengthChartData = [];\r\n\r\n\tpublic isLoading: boolean = false;\r\n\t@ViewChild('kendoGrid') kendoGrid;\r\n\t@ViewChild('calculatedDataRow') calculatedDataRow: ElementRef;\r\n\trowHeight = 26;\r\n\teventDataPageSize: number;\r\n\tgridLineColor: string = 'white';\r\n\taxisItemColor: string = 'white';\r\n\tchartBackgroundColor: string = '#27304C';\r\n\r\n\tcolorChangedSubscription: any;\r\n\ttheme: string;\r\n\tchartLabelColors: string;\r\n\tchart: any;\r\n\tchartHasBeenDrawn: boolean = false;\r\n\tgridOrderedArray: any[];\r\n\tNinjaUpdateInterval: any;\r\n\tpublic componentName: string = 'ninja-statistics: ';\r\n\ttableData: any[];\r\n\tparentSystemToJoin: any;\r\n\tpublic widgetGroupSettings: any;\r\n\r\n\tconstructor(\r\n\t\tprivate dataService: DataService,\r\n\t\tprivate zone: NgZone,\r\n\t\tprivate signalRCore: SignalRCoreService\r\n\t) {}\r\n\r\n\tngAfterViewInit() {\r\n\t\tthis.parentSystemToJoin = 964255;\r\n\t\tthis.isLoading = true;\r\n\r\n\t\tif (!Global.FullDataCacheExists) {\r\n\t\t\tthis.fullDataCacheSubscription =\r\n\t\t\t\tthis.dataService.fullDataCacheExists$.subscribe((data: any) => {\r\n\t\t\t\t\tif (data === true) {\r\n\t\t\t\t\t\tthis.initialize();\r\n\t\t\t\t\t\tthis.fullDataCacheSubscription.unsubscribe();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.initialize();\r\n\t\t}\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tGlobal.User.DebugMode &&\r\n\t\t\tconsole.log(this.componentName + 'intializing Ninja Statistics...');\r\n\t\tthis.colorChangedSubscription =\r\n\t\t\tthis.dataService.colorChanged$.subscribe((data: any) => {\r\n\t\t\t\tif (data === 'light') {\r\n\t\t\t\t\tthis.CreateTheme('light');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.CreateTheme('dark');\r\n\t\t\t\t}\r\n\t\t\t\tthis.setupAndDeployChart(true);\r\n\t\t\t});\r\n\t\tif (Global.Theme === 'light') {\r\n\t\t\tthis.CreateTheme('light');\r\n\t\t} else {\r\n\t\t\tthis.CreateTheme('dark');\r\n\t\t}\r\n\r\n\t\tthis.dataService\r\n\t\t\t.GetAllSignalRObservationFormattedTagsForAssetIdIntoInventory(\r\n\t\t\t\tthis.parentSystemToJoin\r\n\t\t\t)\r\n\t\t\t.subscribe((data) => {\r\n\t\t\t\tconsole.log(data);\r\n\t\t\t\tlet assetObjectInCache =\r\n\t\t\t\t\tthis.dataService.cache.assetsObject[\r\n\t\t\t\t\t\tthis.parentSystemToJoin\r\n\t\t\t\t\t];\r\n\r\n\r\n\t\t\t\tthis.widgetGroupSettings = {\r\n\t\t\t\t\tWidgetId: 999,\r\n\t\t\t\t\tGroupList: 'PS' + assetObjectInCache.ParentSystemId,\r\n\t\t\t\t\tIsPopup: false\r\n\t\t\t\t}\r\n\t\t\t\t//this.signalRCore.joinParentSystemGroupsThroughSignalR(this.widgetGroupSettings);\r\n\r\n\t\t\t\tthis.seriesArray = [];\r\n\t\t\t\tlet dt = new Date();\r\n\t\t\t\tthis.tableData = [];\r\n\t\t\t\tlet tableDataInsert: any = {};\r\n\t\t\t\tconsole;\r\n\t\t\t\tthis.dataService.cache.assetsObject[\r\n\t\t\t\t\tthis.parentSystemToJoin\r\n\t\t\t\t].Tags.forEach((tag: any) => {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t!this.removeNonTrendableTags(tag) &&\r\n\t\t\t\t\t\ttag.JBTStandardObservation !== undefined\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tlet tagObject = {\r\n\t\t\t\t\t\t\ttagId: tag.TagId,\r\n\t\t\t\t\t\t\tname: tag.JBTStandardObservation.Name,\r\n\t\t\t\t\t\t\tdata: [],\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\ttagObject.data.push([\r\n\t\t\t\t\t\t\tdt.getTime(),\r\n\t\t\t\t\t\t\tparseInt(tag.Value),\r\n\t\t\t\t\t\t]);\r\n\t\t\t\t\t\tthis.seriesArray.push(tagObject);\r\n\t\t\t\t\t\tthis.grid.gridSettings.columnsConfig.push({\r\n\t\t\t\t\t\t\tfield: tagObject.name,\r\n\t\t\t\t\t\t\ttitle: tagObject.name,\r\n\t\t\t\t\t\t\tfilterable: true,\r\n\t\t\t\t\t\t\t_width: 200,\r\n\t\t\t\t\t\t\thidden: !this.evaluateIfSeriesShouldBeShownAtStartUp(\r\n\t\t\t\t\t\t\t\ttagObject\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t? true\r\n\t\t\t\t\t\t\t\t: false,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\ttableDataInsert[tagObject.name] = parseInt(tag.Value);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.log(tag);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\ttableDataInsert.trueDateObject = dt;\r\n\t\t\t\tthis.tableData.push(tableDataInsert);\r\n\r\n\t\t\t\tthis.grid.gridSettings.columnsConfig.push({\r\n\t\t\t\t\tfield: 'trueDateObject',\r\n\t\t\t\t\ttitle: 'Current Date Time',\r\n\t\t\t\t\tfilterable: true,\r\n\t\t\t\t\t_width: 200,\r\n\t\t\t\t\thidden: false,\r\n\t\t\t\t});\r\n\t\t\t\tconsole.log(this.seriesArray);\r\n\r\n\t\t\t\tthis.setupSubscriberForNinjaStatistics();\r\n\r\n\t\t\t\tthis.signalRCore.broadcastMessages$\r\n\t\t\t\t\t.pipe(\r\n\t\t\t\t\t\tfilter((msg: any) =>\r\n\t\t\t\t\t\t\tmsg.groupName?.includes('PS103285')\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.subscribe((data) => {\r\n\t\t\t\t\t\tvar signalRData: any = data;\r\n\t\t\t\t\t\tconsole.log('SignalR System Data = %O', signalRData);\r\n\t\t\t\t\t\tthis.insertRecordsIntoCharts(\r\n\t\t\t\t\t\t\tthis.dataService.cache.assetsObject[\r\n\t\t\t\t\t\t\t\tthis.parentSystemToJoin\r\n\t\t\t\t\t\t\t].Tags\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t});\r\n\t\t\t});\r\n\t}\r\n\r\n\tCreateTheme(theme: string) {\r\n\t\tif (theme === 'light') {\r\n\t\t\tthis.theme = 'light';\r\n\t\t\tthis.chartBackgroundColor = 'white';\r\n\t\t\tthis.chartLabelColors = 'grey';\r\n\t\t\tthis.gridLineColor = 'grey';\r\n\t\t\tthis.axisItemColor = 'grey';\r\n\t\t} else {\r\n\t\t\tthis.theme = 'dark';\r\n\t\t\tthis.chartBackgroundColor = '#27304C';\r\n\t\t\tthis.chartLabelColors = 'white';\r\n\t\t\tthis.gridLineColor = 'white';\r\n\t\t\tthis.axisItemColor = 'white';\r\n\t\t}\r\n\t}\r\n\r\n\tinsertRecordsIntoCharts(records) {\r\n\t\tlet dt = new Date();\r\n\t\tlet tableDataInsert: any = {};\r\n\t\trecords.forEach((tag) => {\r\n\t\t\tif (\r\n\t\t\t\t!this.removeNonTrendableTags(tag) &&\r\n\t\t\t\ttag.JBTStandardObservation !== undefined\r\n\t\t\t) {\r\n\t\t\t\tlet seriesIndex = this.seriesArray.findIndex((series) => {\r\n\t\t\t\t\treturn series.tagId === tag.TagId;\r\n\t\t\t\t});\r\n\t\t\t\tlet dataUpdate = [dt.getTime(), parseInt(tag.Value)];\r\n\r\n\t\t\t\tthis.seriesArray[seriesIndex].data.push(dataUpdate);\r\n\t\t\t\ttableDataInsert[tag.JBTStandardObservation.Name] = parseInt(\r\n\t\t\t\t\ttag.Value\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n\t\ttableDataInsert.trueDateObject = dt;\r\n\t\tthis.tableData.unshift(tableDataInsert);\r\n\t}\r\n\r\n\tsetupAndDeployChart(themeChanged?) {\r\n\t\tif (this.chartHasBeenDrawn === false || themeChanged) {\r\n\t\t\tlet chartOptions = {\r\n\t\t\t\tchart: {\r\n\t\t\t\t\tbackgroundColor:\r\n\t\t\t\t\t\tthis.theme === 'dark' ? 'rgb(39,41,61)' : 'white',\r\n\t\t\t\t\tstyle: {\r\n\t\t\t\t\t\tfontFamily: 'Poppins, sans-serif',\r\n\t\t\t\t\t\tcolor:\r\n\t\t\t\t\t\t\tthis.theme === 'dark'\r\n\t\t\t\t\t\t\t\t? this.sassHelper.readProperty(\r\n\t\t\t\t\t\t\t\t\t\t'body-text-color-light'\r\n\t\t\t\t\t\t\t\t )\r\n\t\t\t\t\t\t\t\t: this.sassHelper.readProperty(\r\n\t\t\t\t\t\t\t\t\t\t'body-text-color-dark'\r\n\t\t\t\t\t\t\t\t ),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\r\n\t\t\t\taccessibility: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t},\r\n\r\n\t\t\t\ttime: {\r\n\t\t\t\t\tuseUTC: false,\r\n\t\t\t\t},\r\n\t\t\t\tplotOptions: {\r\n\t\t\t\t\tseries: {\r\n\t\t\t\t\t\tevents: {\r\n\t\t\t\t\t\t\tlegendItemClick: (series) => {\r\n\t\t\t\t\t\t\t\tconsole.log(series);\r\n\t\t\t\t\t\t\t\tlet foundIndex =\r\n\t\t\t\t\t\t\t\t\tthis.grid.gridSettings.columnsConfig.findIndex(\r\n\t\t\t\t\t\t\t\t\t\t(column) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tcolumn.field ===\r\n\t\t\t\t\t\t\t\t\t\t\t\tseries.target.name\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tif (foundIndex !== -1) {\r\n\t\t\t\t\t\t\t\t\tthis.grid.gridSettings.columnsConfig[\r\n\t\t\t\t\t\t\t\t\t\tfoundIndex\r\n\t\t\t\t\t\t\t\t\t].hidden = series.target.visible;\r\n\t\t\t\t\t\t\t\t\tif (this.tagDataGrid) {\r\n\t\t\t\t\t\t\t\t\t\tthis.tagDataGrid\r\n\t\t\t\t\t\t\t\t\t\t\t.gridDataSubject.next(this.tableData);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tlegend: {\r\n\t\t\t\t\tenabled: true,\r\n\t\t\t\t\titemStyle: {\r\n\t\t\t\t\t\tcolor:\r\n\t\t\t\t\t\t\tthis.theme === 'dark'\r\n\t\t\t\t\t\t\t\t? this.sassHelper.readProperty(\r\n\t\t\t\t\t\t\t\t\t\t'body-text-color-light'\r\n\t\t\t\t\t\t\t\t )\r\n\t\t\t\t\t\t\t\t: this.sassHelper.readProperty(\r\n\t\t\t\t\t\t\t\t\t\t'body-text-color-dark'\r\n\t\t\t\t\t\t\t\t ),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tcredits: { enabled: false },\r\n\r\n\t\t\t\trangeSelector: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t},\r\n\r\n\t\t\t\texporting: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t},\r\n\t\t\t\tlabels: {\r\n\t\t\t\t\tstyle: {\r\n\t\t\t\t\t\tcolor:\r\n\t\t\t\t\t\t\tthis.theme === 'dark'\r\n\t\t\t\t\t\t\t\t? this.sassHelper.readProperty(\r\n\t\t\t\t\t\t\t\t\t\t'body-text-color-light'\r\n\t\t\t\t\t\t\t\t )\r\n\t\t\t\t\t\t\t\t: this.sassHelper.readProperty(\r\n\t\t\t\t\t\t\t\t\t\t'body-text-color-dark'\r\n\t\t\t\t\t\t\t\t ),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\ttooltip: {\r\n\t\t\t\t\tpointFormatter: function () {\r\n\t\t\t\t\t\tlet uToFixed = function (\r\n\t\t\t\t\t\t\tnumber: number,\r\n\t\t\t\t\t\t\tfractionSize: number\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tif (+number == 0) {\r\n\t\t\t\t\t\t\t\treturn number;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tconst fixed = +(\r\n\t\t\t\t\t\t\t\tMath.round(\r\n\t\t\t\t\t\t\t\t\t+(number.toString() + 'e' + fractionSize)\r\n\t\t\t\t\t\t\t\t).toString() +\r\n\t\t\t\t\t\t\t\t'e' +\r\n\t\t\t\t\t\t\t\t-fractionSize\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tlet fixedNumberAsString = fixed.toString();\r\n\r\n\t\t\t\t\t\t\tif (fixedNumberAsString.indexOf('.') < 0) {\r\n\t\t\t\t\t\t\t\tfixedNumberAsString += '.0';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn fixedNumberAsString;\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tlet tToFixed = function (number, fractionSize) {\r\n\t\t\t\t\t\t\tif (+number == 0) {\r\n\t\t\t\t\t\t\t\treturn number;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (number) {\r\n\t\t\t\t\t\t\t\tvar returnNumber = +(\r\n\t\t\t\t\t\t\t\t\tMath.round(\r\n\t\t\t\t\t\t\t\t\t\t+(\r\n\t\t\t\t\t\t\t\t\t\t\tnumber.toString() +\r\n\t\t\t\t\t\t\t\t\t\t\t'e' +\r\n\t\t\t\t\t\t\t\t\t\t\tfractionSize\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t).toString() +\r\n\t\t\t\t\t\t\t\t\t'e' +\r\n\t\t\t\t\t\t\t\t\t-fractionSize\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\treturn returnNumber || number;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t\tthis.series.name +\r\n\t\t\t\t\t\t\t': ' +\r\n\t\t\t\t\t\t\t(this.series.options.isDigital\r\n\t\t\t\t\t\t\t\t? tToFixed(this.y, 0)\r\n\t\t\t\t\t\t\t\t: uToFixed(this.y, 1)) +\r\n\t\t\t\t\t\t\t'
        '\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tvalueDecimals: 2,\r\n\t\t\t\t\tsplit: true,\r\n\t\t\t\t\tshared: false,\r\n\t\t\t\t\tfollowPointer: true,\r\n\t\t\t\t},\r\n\r\n\t\t\t\tseries: this.seriesArray,\r\n\t\t\t};\r\n\r\n\t\t\tthis.zone.runOutsideAngular(() => {\r\n\t\t\t\tthis.chart = Highcharts.stockChart(\r\n\t\t\t\t\t'ninjaStatisticsChart',\r\n\t\t\t\t\tchartOptions\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t\tthis.chart.series.forEach((currentSeries, index) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!this.evaluateIfSeriesShouldBeShownAtStartUp(currentSeries)\r\n\t\t\t\t) {\r\n\t\t\t\t\tcurrentSeries.hide();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.chart.series.forEach((currentSeries, index) => {\r\n\t\t\t\tif (currentSeries.name !== 'Navigator 1') {\r\n\t\t\t\t\tif (index !== this.chart.series.length - 2) {\r\n\t\t\t\t\t\tcurrentSeries.setData(\r\n\t\t\t\t\t\t\tthis.seriesArray[index].data,\r\n\t\t\t\t\t\t\tfalse\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tcurrentSeries.setData(\r\n\t\t\t\t\t\t\tthis.seriesArray[index].data,\r\n\t\t\t\t\t\t\ttrue\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (this.tagDataGrid) {\r\n\t\t\tthis.tagDataGrid.gridDataSubject.next(this.tableData);;\r\n\t\t}\r\n\r\n\t\tthis.isLoading = false;\r\n\t}\r\n\r\n\tprivate removeNonTrendableTags(tag): boolean {\r\n\t\tlet listOfTagsToIgnoreByShortName = [\r\n\t\t\t'IOPS|NINJA|STATISTICS|RUNNINGTIME',\r\n\t\t\t'IOPS|NINJA|STATISTICS|REDISREADERSTATUS',\r\n\t\t\t'IOPS|NINJA|STATISTICS|HIGHESTREDISLOCKHOLDERCOUNTDESCRIPTION',\r\n\t\t\t'IOPS|NINJA|STATISTICS|HIGHESTREDISLOCKHOLDERTIMEDESCRIPTION',\r\n\t\t\t'IOPS|NINJA|STATISTICS|TAGCREATIONS',\r\n\t\t];\r\n\t\tif (listOfTagsToIgnoreByShortName.includes(tag.ShortTagName)) {\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate evaluateIfSeriesShouldBeShownAtStartUp(seriesOrTagObject): boolean {\r\n\t\tif (\r\n\t\t\tseriesOrTagObject.name.includes('Queue') ||\r\n\t\t\tseriesOrTagObject.name.includes('Average Observations per Second')\r\n\t\t) {\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\ttabHasChanged(event) {\r\n\t\tthis.setupAndDeployChart();\r\n\t}\r\n\r\n\tsetupSubscriberForNinjaStatistics() {\r\n\t\tthis.setupAndDeployChart();\r\n\t\tthis.chartHasBeenDrawn = true;\r\n\t\tthis.NinjaUpdateInterval = setInterval(() => {\r\n\t\t\tthis.setupAndDeployChart();\r\n\t\t}, 10000);\r\n\t}\r\n\r\n\tonResized(event: ResizeResult): void {\r\n\t\tthis.eventDataPageSize = Math.floor(((event.height - 120) / this.rowHeight) * 3);\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tclearTimeout(this.NinjaUpdateInterval);\r\n\t\tif (!_.isNil(this.widgetGroupSettings)) {\r\n\t\t\t//this.signalRCore.leaveParentSystemGroupsThroughSignalR(this.widgetGroupSettings);\r\n\t\t}\r\n\r\n\t}\r\n}\r\n","\r\n
        \r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t\r\n\t
        \r\n
        \r\n","import { Component, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n@Component({\r\n\tselector: 'app-ninja-statistics',\r\n\ttemplateUrl: './ninja-statistics.component.html',\r\n\tstyleUrls: ['./ninja-statistics.component.scss'],\r\n})\r\nexport class NinjaStatisticsComponent implements AfterViewInit {\r\n\tngAfterViewInit(): void {}\r\n}\r\n","\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Component, EventEmitter, OnInit, Output } from \"@angular/core\";\r\n\r\nimport moment from \"moment\";\r\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\r\n\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { UtilityService } from \"projects/shared-lib/src/lib/services/utility.service\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\n\r\n@Component({\r\n\tselector: \"lib-potd\",\r\n\ttemplateUrl: \"./potd.component.html\",\r\n\tstyleUrls: [\"./potd.component.scss\"],\r\n})\r\nexport class PotdComponent implements OnInit {\r\n\t@Output() submittedValues = new EventEmitter();\r\n\r\n\tpublic fields: Array;\r\n\tpublic formOptions: any;\r\n\tpublic webAPIResponse: boolean = false;\r\n\tprivate currentDate: any;\r\n\tpublic passwordValue: string;\r\n\tpublic jetwayAccessValue: string;\r\n\tpublic form: FormGroup;\r\n\tpublic processingForm: boolean = false;\r\n\tpayLoad = \"\";\r\n\tpublic componentName: string = \"potd (shared-lib): \";\r\n\r\n\tconstructor(\r\n\t\tpublic utilityService: UtilityService,\r\n\t\tprivate http: HttpClient,\r\n\t\tprivate dataService: DataService\r\n\t) {\r\n\t\tif (Global.Data.dataServerIsLocal) {\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tGlobal.User.DebugMode &&\r\n\t\t\tconsole.log(this.componentName + \"intializing POTD...\");\r\n\r\n\t\tthis.currentDate = moment(new Date()).format(\"MM/DD/YYYY\");\r\n\t\tconsole.log(\"this.currentDate = \" + this.currentDate);\r\n\t\tthis.formOptions = {\r\n\t\t\tsubmitButtonText: \"Generate Password\",\r\n\t\t\tfunctionToExecute: this.submitParametersAndExecute,\r\n\t\t};\r\n\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tDate: new FormControl(),\r\n\t\t\tPassword: new FormControl({ value: \"\", disabled: true }),\r\n\t\t\tJetwayAccess: new FormControl({ value: \"\", disabled: true }),\r\n\t\t});\r\n\r\n\t\tthis.form.controls[\"Date\"].setValue(new Date(this.currentDate));\r\n\t}\r\n\r\n\tsubmitParametersAndExecute(submittedValues: string) {\r\n\t\tconsole.log(\"POTD: submittedValues = %O\", submittedValues);\r\n\t\t// var parameterListAsString = values.replace('{','').replace('}','').replace(/:/g,'=').replace(/\\\"/g,'');\r\n\t\t// console.log(\"reports.component.ts: parameterListAsString = \" + parameterListAsString);\r\n\t\tvar submittedValuesObject = JSON.parse(submittedValues);\r\n\t\tconsole.log(\"submittedValuesObject = %O\", submittedValuesObject);\r\n\t\tvar dateSelected = submittedValuesObject.Date;\r\n\r\n\t\tGlobal.User.DebugMode &&\r\n\t\t\tconsole.log(\"dataServerIsLocal = \" + Global.Data.dataServerIsLocal);\r\n\r\n\t\tvar time0 = performance.now();\r\n\t\tthis.httpPost(dateSelected).then((dataSentBackFromWebApi: any) => {\r\n\t\t\tvar time = performance.now() - time0;\r\n\t\t\tconsole.log(\r\n\t\t\t\t\"time for webAPI to respond with result: \" +\r\n\t\t\t\t\ttime +\r\n\t\t\t\t\t\" milliseconds.\"\r\n\t\t\t);\r\n\t\t\tconsole.log(\r\n\t\t\t\t\"data sent back from webAPI: \" + dataSentBackFromWebApi\r\n\t\t\t);\r\n\t\t\tthis.webAPIResponse = true;\r\n\t\t\tvar potd = JSON.parse(dataSentBackFromWebApi);\r\n\t\t\tconsole.log(\"potd: %O\", potd);\r\n\t\t\tthis.webAPIResponse = true;\r\n\t\t\tthis.form.controls[\"Password\"].setValue(potd.Password);\r\n\t\t\tthis.form.controls[\"JetwayAccess\"].setValue(potd.JetwayAccess);\r\n\r\n\t\t\tthis.passwordValue = potd.Password;\r\n\t\t\tthis.jetwayAccessValue = potd.JetwayAccess;\r\n\t\t\tthis.dataService.LogEvent(\r\n\t\t\t\t13,\r\n\t\t\t\t\"Viewed Password of the Day from the webAPI.\"\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\thttpPost = function (datetimeString: string) {\r\n\t\tlet httpOptions = {\r\n\t\t\theaders: new HttpHeaders({\r\n\t\t\t\t\"Content-Type\": \"application/json\",\r\n\t\t\t\tAuthorization: Global.User.currentUser.ODataAccessToken,\r\n\t\t\t}),\r\n\t\t};\r\n\r\n\t\tGlobal.User.DebugMode &&\r\n\t\t\tconsole.log(\"dataServerIsLocal = \" + Global.Data.dataServerIsLocal);\r\n\r\n\t\tconst http$ = this.http\r\n\t\t\t.post(this.dataService.potdUrl, datetimeString, httpOptions)\r\n\t\t\t.toPromise();\r\n\t\treturn http$;\r\n\t};\r\n\r\n\tclearFormWhenChangingDate() {\r\n\t\tthis.webAPIResponse = false;\r\n\t\tthis.form.reset(); //-- reset the form. Otherwise if this is false, the user wants to retain the values entered on the form. --Kirk T. Sherer, October 14, 2020.\r\n\t\tthis.processingForm = false; //-- have to reset this so that the submit button is ready to use again. --Kirk T. Sherer, July 22, 2021.\r\n\t}\r\n\r\n\tonSubmit(submitButtonPressed?: boolean) {\r\n\t\tGlobal.User.DebugMode &&\r\n\t\t\tconsole.log(\"submitButtonPressed = \" + submitButtonPressed);\r\n\t\tif (submitButtonPressed) {\r\n\t\t\tthis.processingForm = submitButtonPressed;\r\n\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\tconsole.log(\r\n\t\t\t\t\t\"onSubmit invoked... this.form.value = %O\",\r\n\t\t\t\t\tthis.form.value\r\n\t\t\t\t);\r\n\t\t\t//var submittedValues = this.form.value;\r\n\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\tconsole.log(\r\n\t\t\t\t\t\"this.form.getRawValue() = %O\",\r\n\t\t\t\t\tthis.form.getRawValue()\r\n\t\t\t\t);\r\n\t\t\tvar payLoad = {};\r\n\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\tconsole.log(\"this.form.controls = %O\", this.form.controls);\r\n\t\t\tfor (const field in this.form.controls) {\r\n\t\t\t\t// 'field' is a string\r\n\r\n\t\t\t\tconst control: any = this.form.get(field); // 'control' is a FormControl\r\n\t\t\t\tGlobal.User.DebugMode && console.log(\"control = %O\", control);\r\n\t\t\t\tif (field == \"Date\") {\r\n\t\t\t\t\tpayLoad[field] = moment.isDate(control.value)\r\n\t\t\t\t\t\t? this.utilityService.DateTimeInMilliseconds(\r\n\t\t\t\t\t\t\t\tcontrol.value\r\n\t\t\t\t\t\t )\r\n\t\t\t\t\t\t: null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tconsole.log(\"payload = %O\", payLoad);\r\n\t\t\tthis.payLoad = JSON.stringify(payLoad);\r\n\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\tconsole.log(\"this.payLoad = %O\", this.payLoad);\r\n\t\t\tthis.submittedValues.emit(this.payLoad);\r\n\t\t\tthis.submitParametersAndExecute(this.payLoad);\r\n\t\t}\r\n\t}\r\n}\r\n","
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t

        \r\n\t\t\t\t\t\tGenerate Password\r\n\t\t\t\t\t

        \r\n\t\t\t\t\t
        Please enter a date to generate the password of the day.
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n
        \r\n","import { Component, Input, AfterViewInit } from '@angular/core';\r\nimport { DataService } from '../../services/data.service';\r\nimport { GridSettings } from '../../_models/grid-settings.interface';\r\nimport { process, State, GroupDescriptor } from '@progress/kendo-data-query';\r\nimport { Global } from '../../_constants/global.variables';\r\n\r\n@Component({\r\n\tselector: 'lib-training-lessons',\r\n\ttemplateUrl: './training-lessons.component.html',\r\n\tstyleUrls: ['./training-lessons.component.scss'],\r\n})\r\nexport class TrainingLessonsComponent implements AfterViewInit {\r\n\t@Input() public category: any;\r\n\tpublic gridSettings: GridSettings = {\r\n\t\tstate: {\r\n\t\t\tskip: 0,\r\n\t\t\tfilter: {\r\n\t\t\t\tlogic: 'and',\r\n\t\t\t\tfilters: [],\r\n\t\t\t},\r\n\t\t},\r\n\r\n\t\tcolumnsConfig: [],\r\n\t};\r\n\tisLoading: boolean;\r\n\tprivate videoKeyURL: string = Global.Video.serverArchiveUrl;\r\n\tprivate accessToken: string = Global.User.currentUser.ODataAccessToken;\r\n\r\n\t// \tCreationDate\r\n\t// :\r\n\t// Thu Dec 08 2022 09:07:17 GMT-0600 (Central Standard Time) {}\r\n\t// CreationDateMS\r\n\t// :\r\n\t// 1670512037230\r\n\t// CreatorUser\r\n\t// :\r\n\t// \"Dylan Richard\"\r\n\t// Description\r\n\t// :\r\n\t// \"This course will teach you the basics of IOPS showing you dashboard setup, including dashboard options, widget control and others.\"\r\n\t// Id\r\n\t// :\r\n\t// 1\r\n\t// LastModifiedDate\r\n\t// :\r\n\t// Fri Dec 09 2022 08:58:40 GMT-0600 (Central Standard Time) {}\r\n\t// LastModifiedDateMS\r\n\t// :\r\n\t// 1670597920130\r\n\t// LastModifiedUser\r\n\t// :\r\n\t// \"Dylan Richard\"\r\n\t// Name\r\n\t// :\r\n\t// \"Introduction to IOPS \"\r\n\r\n\tconstructor(private dataService: DataService) {}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tthis.isLoading = true;\r\n\t\tconsole.log(this.category);\r\n\t\tvar sql =\r\n\t\t\t'API.RDN_GetTrainingCourseLessons @TrainingCourseId = ' +\r\n\t\t\tthis.category.Id;\r\n\r\n\t\tthis.dataService.SQLActionAsPromise(sql).then((dataObject: any) => {\r\n\t\t\tif (dataObject) {\r\n\t\t\t\tconsole.log(dataObject);\r\n\t\t\t\tdataObject.forEach((element: any) => {\r\n\t\t\t\t\tif (element.VideoServerFilename) {\r\n\t\t\t\t\t\telement.viewUrl =\r\n\t\t\t\t\t\t\tthis.videoKeyURL +\r\n\t\t\t\t\t\t\telement.VideoServerFilename +\r\n\t\t\t\t\t\t\t'?accessToken=' +\r\n\t\t\t\t\t\t\tencodeURIComponent(this.accessToken);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\telement.viewUrl = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tthis.gridSettings.gridData = process(\r\n\t\t\t\t\tdataObject,\r\n\t\t\t\t\tthis.gridSettings.state\r\n\t\t\t\t);\r\n\t\t\t\tthis.isLoading = false;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tloadVideo(lesson: any) {\r\n\t\tif (!lesson.edit) {\r\n\t\t\tGlobal.User.DebugMode &&\r\n\t\t\t\tconsole.log('trying to view the file... file = %O', lesson);\r\n\t\t\tvar url = lesson.viewUrl;\r\n\r\n\t\t\tvar intHSize = window.screen.availWidth * 0.7;\r\n\t\t\tvar intVSize = window.screen.availHeight * 0.7;\r\n\t\t\tvar intTop = (window.screen.availHeight - intVSize) / 2;\r\n\t\t\tvar intLeft = (window.screen.availWidth - intHSize) / 2;\r\n\t\t\tvar sngWindow_Size_Percentage = 0.85;\r\n\r\n\t\t\tvar strFeatures = '';\r\n\t\t\tintHSize =\r\n\t\t\t\twindow.screen.availWidth * sngWindow_Size_Percentage * 0.6;\r\n\t\t\tintVSize = window.screen.availHeight * sngWindow_Size_Percentage;\r\n\t\t\tintTop = (window.screen.availHeight - intVSize) / 2;\r\n\t\t\tintLeft = (window.screen.availWidth - intHSize) / 2;\r\n\t\t\tstrFeatures =\r\n\t\t\t\t'top=' +\r\n\t\t\t\tintTop +\r\n\t\t\t\t',left=' +\r\n\t\t\t\tintLeft +\r\n\t\t\t\t',height=' +\r\n\t\t\t\tintVSize +\r\n\t\t\t\t',width=' +\r\n\t\t\t\tintHSize +\r\n\t\t\t\t', scrollbars=yes, resizable=yes, location=no';\r\n\r\n\t\t\tvar SRWindow = window.open(url, 'SRWindow', strFeatures);\r\n\t\t}\r\n\t}\r\n}\r\n","\r\n\r\n\r\n\r\n {{rowIndex + 1}}\r\n\r\n\r\n\r\n\r\n \r\n\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n\r\n","import { Component, AfterViewInit } from '@angular/core';\r\nimport { DataService } from '../../services/data.service';\r\nimport { GridSettings } from '../../_models/grid-settings.interface';\r\nimport { process, State, GroupDescriptor } from '@progress/kendo-data-query';\r\n\r\n@Component({\r\n\tselector: 'lib-training-courses',\r\n\ttemplateUrl: './training-courses.component.html',\r\n\tstyleUrls: ['./training-courses.component.scss'],\r\n})\r\nexport class TrainingCoursesComponent implements AfterViewInit {\r\n\tisLoading: boolean;\r\n\tpublic gridSettings: GridSettings = {\r\n\t\tstate: {\r\n\t\t\tskip: 0,\r\n\t\t\tfilter: {\r\n\t\t\t\tlogic: 'and',\r\n\t\t\t\tfilters: [],\r\n\t\t\t},\r\n\t\t},\r\n\r\n\t\tcolumnsConfig: [],\r\n\t};\r\n\tconstructor(private dataService: DataService) {}\r\n\r\n\t// \treationDate\r\n\t// :\r\n\t// Thu Dec 08 2022 09:07:17 GMT-0600 (Central Standard Time) {}\r\n\t// CreationDateMS\r\n\t// :\r\n\t// 1670512037230\r\n\t// CreatorUser\r\n\t// :\r\n\t// \"Dylan Richard\"\r\n\t// Description\r\n\t// :\r\n\t// \"This course will teach you the basics of IOPS showing you dashboard setup, including dashboard options, widget control and others.\"\r\n\t// Id\r\n\t// :\r\n\t// 1\r\n\t// LastModifiedDate\r\n\t// :\r\n\t// Fri Dec 09 2022 08:58:40 GMT-0600 (Central Standard Time) {}\r\n\t// LastModifiedDateMS\r\n\t// :\r\n\t// 1670597920130\r\n\t// LastModifiedUser\r\n\t// :\r\n\t// \"Dylan Richard\"\r\n\t// Name\r\n\t// :\r\n\t// \"Introduction to IOPS \"\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tthis.isLoading = true;\r\n\t\tvar sql = 'API.RDN_GetTrainingCourses';\r\n\t\tthis.dataService.SQLActionAsPromise(sql).then((dataObject: any) => {\r\n\t\t\tif (dataObject) {\r\n\t\t\t\tconsole.log(dataObject);\r\n\t\t\t\tthis.gridSettings.gridData = process(\r\n\t\t\t\t\tdataObject,\r\n\t\t\t\t\tthis.gridSettings.state\r\n\t\t\t\t);\r\n\t\t\t\tthis.isLoading = false;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t

        Training Courses

        \r\n\t\t\t\t\t

        iOPS is an incredibly powerful application\r\n\t\t\t\t\t\tthat we have tried to make as easy to use as possible. We created these training courses so that\r\n\t\t\t\t\t\tyou could learn as much as possible about all of the controls iOPS provides, on demand. Each\r\n\t\t\t\t\t\tcourse has a set of video lessons available. Click the + symbol to expand each course and see\r\n\t\t\t\t\t\tthe available lessons for that course.

        \r\n\r\n\r\n\r\n\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t {{rowIndex +\r\n\t\t\t\t\t\t\t\t\t1}}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n\r\n
        \r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { Global } from '../_constants/global.variables';\r\nimport _ from 'lodash';\r\nimport { DataService } from '../../lib/services/data.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PunchoutGuard {\r\n\tconstructor(\r\n\t\tpublic dataService: DataService\r\n\t) { }\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\r\n\t console.log('Asset Id selected = %O', route.params.id);\r\n\t let selectedAssetId = route.params.id;\r\n\t let assetIsAllowed = false;\r\n\r\n\t let asset = this.dataService.cache.assets.find((a) => a.Id == parseInt(selectedAssetId));\r\n\t if (asset != undefined)\r\n\t\t assetIsAllowed = true;\r\n\r\n\t return assetIsAllowed;\r\n }\r\n}\r\n","import { AfterViewInit, Component } from \"@angular/core\";\r\nimport { DataService } from \"../../services/data.service\";\r\n\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { IGlobal } from \"projects/shared-lib/src/lib/_models/global.model\";\r\nimport { DropdownQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-dropdown\";\r\nimport { ReadOnlyQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-read-only\";\r\nimport { ReadOnlyTextareaQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-read-only-textarea\";\r\nimport { SliderYesNoQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-slider-yes-no\";\r\nimport { TextareaQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-textarea\";\r\nimport { GridSettings } from \"../../_models/grid-settings.interface\";\r\nimport { CompositeFilterDescriptor, process, State } from \"@progress/kendo-data-query\";\r\nimport moment from \"moment\";\r\nimport { UibButtonQuestion } from \"projects/shared-lib/src/lib/_models/dynamic-fields/questions/question-uib-button\";\r\nimport { SignalRCoreService } from \"../../services/signalr-core.service\";\r\nimport { UtilityService } from \"../../services/utility.service\";\r\nimport swal from \"sweetalert2\";\r\nimport { MatDialog, MatDialogRef } from \"@angular/material/dialog\";\r\nimport { FileUploadListComponent } from \"projects/shared-lib/src/lib/components/file-upload-list/file-upload-list.component\";\r\nimport { GridDataResult, PageChangeEvent, RowClassArgs } from \"@progress/kendo-angular-grid\";\r\nimport { FormControl, FormGroup } from \"@angular/forms\";\r\nimport { TextboxQuestion } from \"../../_models/dynamic-fields/questions/question-textbox\";\r\n\r\n@Component({\r\n\tselector: \"lib-customer-issues-item\",\r\n\ttemplateUrl: \"./customer-issues-item.component.html\",\r\n\tstyleUrls: [\"./customer-issues-item.component.scss\"]\r\n})\r\nexport class CustomerIssuesItemComponent implements AfterViewInit {\r\n\tselectedIssue: any;\r\n\tisLoadingEditScreen: boolean = true;\r\n\tcurrentlyEditingIssueId: number;\r\n\teditingIssue: boolean = true;\r\n\texecutingIssue: boolean;\r\n\tdisplayIssue: boolean;\r\n\tloadingEditForm: boolean = true;\r\n\taddingNewIssue: boolean;\r\n\teditFieldsAndValues: any[];\r\n\tsubjects: any;\r\n\teditHeader: string;\r\n\teditSubHeader: string;\r\n\teditFormOptions: any;\r\n\teditQuestions: (DropdownQuestion | TextareaQuestion | ReadOnlyQuestion)[];\r\n\tpublic global: IGlobal = Global;\r\n\tpublic CountOfFilesUploaded: number = 0;\r\n\r\n\tdiscussion: any;\r\n\tpublic gridView: GridDataResult;\r\n\tpublic discussionIssueFormGroup: FormGroup;\r\n\tpublic state: State = { skip: 0 };\r\n\tpublic currentUserIsDeveloper: boolean = false;\r\n\tprivate componentName: string = \"customer-issues-item: \";\r\n\r\n\tpublic issuesGridSettings: GridSettings = {\r\n\t\tstate: {\r\n\t\t\tskip: 0,\r\n\t\t\tfilter: {\r\n\t\t\t\tlogic: \"and\",\r\n\t\t\t\tfilters: []\r\n\t\t\t},\r\n\t\t\tgroup: [],\r\n\t\t\ttake: 15,\r\n\t\t\tsort: []\r\n\t\t},\r\n\t\tcolumnsConfig: [\r\n\t\t\t{\r\n\t\t\t\tfield: \"Id\",\r\n\t\t\t\ttitle: \"Id\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 100\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"CreationDate\",\r\n\t\t\t\ttitle: \"Creation Date\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\tfilter: \"date\",\r\n\t\t\t\t_width: 80\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"Subject\",\r\n\t\t\t\ttitle: \"Subject\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 80\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"CreatedBy\",\r\n\t\t\t\ttitle: \"Created By\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 80\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"AssignedTo\",\r\n\t\t\t\ttitle: \"Rep Name\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 80\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"Description\",\r\n\t\t\t\ttitle: \"Description\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 135\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"LastModifiedBy\",\r\n\t\t\t\ttitle: \"Last Modified By\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 80\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"LastModifiedDate\",\r\n\t\t\t\ttitle: \"Last Modified Date\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\tfilter: \"date\",\r\n\t\t\t\t_width: 80\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"Resolved\",\r\n\t\t\t\ttitle: \"Resolved\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 50\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"Actions\",\r\n\t\t\t\ttitle: \"Actions\",\r\n\t\t\t\tfilterable: false,\r\n\t\t\t\t_width: 150\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"NotifyAssignedUser\",\r\n\t\t\t\ttitle: \"Notify Assigned User\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 30,\r\n\t\t\t\thidden: true\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"NotifyCreatorUser\",\r\n\t\t\t\ttitle: \"Notify Creator User\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 30,\r\n\t\t\t\thidden: true\r\n\t\t\t}\r\n\t\t]\r\n\t};\r\n\r\n\tpublic discussionGridSettings: GridSettings = {\r\n\t\tstate: {\r\n\t\t\tskip: 0,\r\n\t\t\tfilter: {\r\n\t\t\t\tlogic: \"and\",\r\n\t\t\t\tfilters: []\r\n\t\t\t},\r\n\t\t\ttake: 15\r\n\t\t},\r\n\r\n\t\tcolumnsConfig: [\r\n\t\t\t{\r\n\t\t\t\tfield: \"Date\",\r\n\t\t\t\ttitle: \"Date\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\tfilter: \"date\",\r\n\t\t\t\t_width: 30\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"Person\",\r\n\t\t\t\ttitle: \"Person\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 30\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"Comments\",\r\n\t\t\t\ttitle: \"Comments\",\r\n\t\t\t\tfilterable: true,\r\n\t\t\t\t_width: 250,\r\n\t\t\t\tencoded: false\r\n\t\t\t}\r\n\t\t]\r\n\t};\r\n\tAdminDevelopmentTeam: any;\r\n\tfileImageData: any;\r\n\tFileImageLibraryControlObject: {\r\n\t\timageKeys: any;\r\n\t\t//---B\r\n\t\tremoveUploadFunction(deletedImageKey: string): void;\r\n\t\t//---B\r\n\t\taddUploadFunction(newImageKey: string): void;\r\n\t\tmode: any;\r\n\t\tlistTitle: string;\r\n\t\tentityId: any;\r\n\t\tentityType: string;\r\n\t\tcloseUploadWindowFunction(): void;\r\n\t};\r\n\tswalWithBootstrapButtons: any;\r\n\tparameterListAsString: string;\r\n\tskip: number = 0;\r\n\tissueData: any;\r\n\tpublic issueHeader: any;\r\n\r\n\tconstructor(\r\n\t\tpublic dataService: DataService,\r\n\r\n\t\tprivate signalRCore: SignalRCoreService,\r\n\t\tprivate utilityService: UtilityService,\r\n\t\tpublic dialogRef: MatDialogRef,\r\n\t\tpublic dialog: MatDialog\r\n\t) {}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tthis.discussionIssueFormGroup = new FormGroup({\r\n\t\t\tresponse: new FormControl()\r\n\t\t});\r\n\t\tthis.selectedIssue = this.dataService.cache.userIssues.find((ui) => {\r\n\t\t\treturn ui.Id == this.dataService.currentSelectedIssueId;\r\n\t\t});\r\n\t\tif (Global.User.isAdmin) {\r\n\t\t\tthis.dataService.SQLActionAsPromise(\"API.GetListOfDevelopers\").then((data: any) => {\r\n\t\t\t\tthis.AdminDevelopmentTeam = data;\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"this.AdminDevelopmentTeam = %O\", this.AdminDevelopmentTeam);\r\n\t\t\t\tthis.currentUserIsDeveloper =\r\n\t\t\t\t\tdata.firstOrDefault((u: any) => {\r\n\t\t\t\t\t\treturn u.Id == Global.User.currentUser.Id;\r\n\t\t\t\t\t}) != null\r\n\t\t\t\t\t\t? true\r\n\t\t\t\t\t\t: false;\r\n\t\t\t\tthis.edit();\r\n\t\t\t\tconsole.log(this.selectedIssue);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.edit();\r\n\r\n\t\t}\r\n\t}\r\n\tedit(issueIds?: any) {\r\n\t\tlet issueId: any = this.dataService.currentSelectedIssueId === \"newIssue\" ? this.dataService.currentSelectedIssueId : parseInt(this.dataService.currentSelectedIssueId);\r\n\t\tvar service = this;\r\n\t\tservice.isLoadingEditScreen = true;\r\n\r\n\t\tservice.currentlyEditingIssueId = +this.dataService.currentSelectedIssueId;\r\n\t\tservice.executingIssue = false;\r\n\t\tservice.displayIssue = false;\r\n\r\n\t\tservice.loadingEditForm = true;\r\n\t\tservice.addingNewIssue = false;\r\n\r\n\t\tservice.editFieldsAndValues = [];\r\n\r\n\t\tvar subjectOptionsList = [];\r\n\t\tthis.subjects = this.dataService.cache.userIssueSubjects;\r\n\r\n\t\tservice.subjects.forEach((subject: any) => {\r\n\t\t\tvar obj: any = {};\r\n\t\t\tobj.key = subject.Id;\r\n\t\t\tobj.value = subject.Name;\r\n\t\t\tsubjectOptionsList.push(obj);\r\n\t\t});\r\n\r\n\t\tif (issueId == \"newIssue\") {\r\n\t\t\tservice.editHeader = \"Add New Issue\";\r\n\t\t\tservice.editSubHeader = \"Please edit the fields listed here for your new issue. To attach an image to the issue, please create the issue here first then visit the issue in the issue list to attach an image.\";\r\n\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"adding new issue...\");\r\n\t\t\tservice.selectedIssue = null;\r\n\t\t\tservice.addingNewIssue = true;\r\n\r\n\t\t\tservice.editFormOptions = {\r\n\t\t\t\tsubmitButtonText: \"Submit Issue\",\r\n\t\t\t\tsaveValuesPerField: false,\r\n\t\t\t\tsaveStoredProcedureName: \"API.User_SubmitIssue \",\r\n\t\t\t\tcancelButtonText: \"Cancel\",\r\n\t\t\t\tsignalRGroupToNotify: \"User Issues\",\r\n\t\t\t\tsignalRNotifyCode: \"Issue Updated\"\r\n\t\t\t};\r\n\t\t\tvar questions = [\r\n\t\t\t\tnew DropdownQuestion({\r\n\t\t\t\t\tkey: \"subject\",\r\n\t\t\t\t\tlabel: \"Subject\",\r\n\t\t\t\t\ttitle: \"Select the correct Subject where this issue is occurring.\",\r\n\t\t\t\t\toptions: subjectOptionsList,\r\n\t\t\t\t\torder: 1\r\n\t\t\t\t}),\r\n\t\t\t\tnew TextareaQuestion({\r\n\t\t\t\t\tkey: \"Description\",\r\n\t\t\t\t\tlabel: \"Description\",\r\n\t\t\t\t\ttitle: \"Please enter a detailed description of the Issue.\",\r\n\t\t\t\t\torder: 2,\r\n\t\t\t\t\tresize: \"vertical\"\r\n\t\t\t\t})\r\n\t\t\t];\r\n\r\n\t\t\tif (this.currentUserIsDeveloper) {\r\n\t\t\t\tquestions.push(\r\n\t\t\t\t\tnew TextboxQuestion({\r\n\t\t\t\t\t\tkey: \"createdBy\",\r\n\t\t\t\t\t\tlabel: \"Created By\",\r\n\t\t\t\t\t\ttitle: \"The person who is logging the issue. This may be the current user, but this selector allows you to choose the correct person that first reported the issue.\",\r\n\t\t\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\t\t\tsetName: \"iOPSUsers\",\r\n\t\t\t\t\t\trequired: true,\r\n\t\t\t\t\t\tvalidateObject: true,\r\n\t\t\t\t\t\tallowBlankValue: false,\r\n\t\t\t\t\t\torder: 3,\r\n\t\t\t\t\t\tvalue: Global.User.currentUser.Id\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tquestions.push(\r\n\t\t\t\t\tnew ReadOnlyQuestion({\r\n\t\t\t\t\t\tkey: \"createdBy\",\r\n\t\t\t\t\t\tlabel: \"Created By\",\r\n\t\t\t\t\t\tvalue: Global.User.currentUser.GivenName + \" \" + Global.User.currentUser.FamilyName,\r\n\t\t\t\t\t\torder: 3\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tservice.editQuestions = questions;\r\n\t\t\tservice.loadingEditForm = false;\r\n\t\t} else {\r\n\t\t\tservice.editFormOptions = {\r\n\t\t\t\tsaveValuesPerField: true,\r\n\t\t\t\tsaveStoredProcedureName: \"API.Issues_UpdateRecordByIdAndFieldName \" + issueId + \", \" + service.global.User.currentUser.Id,\r\n\t\t\t\tsignalRGroupToNotify: \"User Issues\",\r\n\t\t\t\tsignalRNotifyCode: \"Issue Updated\",\r\n\t\t\t\tdataCacheObject: service.dataService.cache.userIssuesObject[issueId]\r\n\t\t\t};\r\n\r\n\t\t\tservice.editHeader = \"Editing Issue #\";\r\n\t\t\tservice.editSubHeader = \"Please edit the fields listed here for this specific issue.\";\r\n\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"editing issue...%O\", issueId);\r\n\r\n\t\t\t//-- NOTE: \tThis is the only stored procedure we're using to retrieve information about the issue since the UserIssue record is in the data cache. So we're\r\n\t\t\t//--\t\tonly auditing the editing of the record via this stored procedure, and it also is the one that will reset the Notify fields if the person editing\r\n\t\t\t//--\t\tthe record is the creator user or the assigned to user. --Kirk T. Sherer, August 10, 2023.\r\n\t\t\tservice.dataService.SQLActionAsPromise(\"API.Issues_GetIssueDiscussion @IssueId=\" + issueId + \", @UserId=\" + Global.User.currentUser.Id).then((data: any) => {\r\n\t\t\t\tvar discussion = data;\r\n\t\t\t\tdiscussion.forEach((d: any) => {\r\n\t\t\t\t\td.Date = new Date(d.DateMS);\r\n\t\t\t\t\t//d.Comments = this.stringToHTML(d.Comments); //--this.stringToHTML(d.Comments);\r\n\t\t\t\t});\r\n\t\t\t\tservice.discussion = discussion;\r\n\t\t\t\tservice.discussionGridSettings.gridData = process(discussion, service.discussionGridSettings.state);\r\n\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"this.discussionGridSettings.gridData = %O\", service.discussionGridSettings.gridData);\r\n\t\t\t\t//-- now build out the read-only fields so they will also show up on the edit form. --Kirk T. Sherer, April 8, 2020.\r\n\t\t\t\tservice.selectedIssue = service.dataService.cache.userIssuesObject[issueId];\r\n\r\n\t\t\t\tvar questions = [\r\n\t\t\t\t\tnew ReadOnlyQuestion({\r\n\t\t\t\t\t\tkey: \"Id\",\r\n\t\t\t\t\t\tlabel: \"Issue Id #\",\r\n\t\t\t\t\t\tvalue: service.dataService.cache.userIssuesObject[issueId].Id,\r\n\t\t\t\t\t\torder: 1\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tnew ReadOnlyQuestion({\r\n\t\t\t\t\t\tkey: \"Subject\",\r\n\t\t\t\t\t\tlabel: \"Subject\",\r\n\t\t\t\t\t\tvalue: service.dataService.cache.userIssuesObject[issueId].Subject,\r\n\t\t\t\t\t\torder: 2\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tnew ReadOnlyTextareaQuestion({\r\n\t\t\t\t\t\tkey: \"Description\",\r\n\t\t\t\t\t\tlabel: \"Description\",\r\n\t\t\t\t\t\tvalue: service.dataService.cache.userIssuesObject[issueId].Description,\r\n\t\t\t\t\t\tresize: \"vertical\",\r\n\t\t\t\t\t\torder: 3\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tnew ReadOnlyQuestion({\r\n\t\t\t\t\t\tkey: \"Organization\",\r\n\t\t\t\t\t\tlabel: \"Organization\",\r\n\t\t\t\t\t\tvalue: service.dataService.cache.userIssuesObject[issueId].Organization,\r\n\t\t\t\t\t\torder: 5\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tnew ReadOnlyQuestion({\r\n\t\t\t\t\t\tkey: \"Email\",\r\n\t\t\t\t\t\tlabel: \"Email\",\r\n\t\t\t\t\t\tvalue: service.dataService.cache.userIssuesObject[issueId].Email,\r\n\t\t\t\t\t\torder: 6\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tnew ReadOnlyQuestion({\r\n\t\t\t\t\t\tkey: \"Phone\",\r\n\t\t\t\t\t\tlabel: \"Phone\",\r\n\t\t\t\t\t\tvalue: service.dataService.cache.userIssuesObject[issueId].Phone,\r\n\t\t\t\t\t\torder: 7\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tnew ReadOnlyQuestion({\r\n\t\t\t\t\t\tkey: \"CreationDate\",\r\n\t\t\t\t\t\tlabel: \"Creation Date\",\r\n\t\t\t\t\t\tvalue: moment(new Date(service.dataService.cache.userIssuesObject[issueId].CreationDateMS)).format(\"MM/DD/YYYY hh:mm A\"),\r\n\t\t\t\t\t\ttitle: \"This is when the issue was initially created.\",\r\n\t\t\t\t\t\torder: 8\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tnew ReadOnlyQuestion({\r\n\t\t\t\t\t\tkey: \"LastModifiedBy\",\r\n\t\t\t\t\t\tlabel: \"Last Modified By\",\r\n\t\t\t\t\t\tvalue: service.dataService.cache.userIssuesObject[issueId].LastModifiedBy + \" - \" + moment(new Date(service.dataService.cache.userIssuesObject[issueId].LastModifiedDateMS)).format(\"MM/DD/YYYY hh:mm A\"),\r\n\t\t\t\t\t\ttitle: \"This is the last person that modified this issue and the date/time they last modified the issue.\",\r\n\t\t\t\t\t\torder: 9\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tnew UibButtonQuestion({\r\n\t\t\t\t\t\tkey: \"AssignedToUserId\",\r\n\t\t\t\t\t\tlabel: \"Assigned Representative\",\r\n\t\t\t\t\t\ttitle: \"Choose the team member to handle this issue.\",\r\n\t\t\t\t\t\torder: 10,\r\n\t\t\t\t\t\tvalue: service.dataService.cache.userIssuesObject[issueId].AssignedToUserId,\r\n\t\t\t\t\t\tlistOfValues: this.AdminDevelopmentTeam,\r\n\t\t\t\t\t\tvisible: Global.User.isAdmin\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tnew ReadOnlyQuestion({\r\n\t\t\t\t\t\tkey: \"AssignedToUserId\",\r\n\t\t\t\t\t\tlabel: \"Assigned Representative\",\r\n\t\t\t\t\t\ttitle: \"The support representative that has been assigned to this issue.\",\r\n\t\t\t\t\t\torder: 10,\r\n\t\t\t\t\t\tvalue: service.dataService.cache.userIssuesObject[issueId].AssignedTo,\r\n\t\t\t\t\t\tvisible: !Global.User.isAdmin\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tnew TextareaQuestion({\r\n\t\t\t\t\t\tkey: \"Resolution\",\r\n\t\t\t\t\t\tlabel: \"Resolution\",\r\n\t\t\t\t\t\tresize: \"vertical\",\r\n\t\t\t\t\t\tvalue: service.dataService.cache.userIssuesObject[issueId].Resolution,\r\n\t\t\t\t\t\ttitle: \"Enter the resolution of this issue here.\",\r\n\t\t\t\t\t\tallowBlankValue: true,\r\n\t\t\t\t\t\torder: 11\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tnew SliderYesNoQuestion({\r\n\t\t\t\t\t\tkey: \"Resolved\",\r\n\t\t\t\t\t\tlabel: \"Resolved\",\r\n\t\t\t\t\t\tvalue: service.dataService.cache.userIssuesObject[issueId].Resolved,\r\n\t\t\t\t\t\tonChangeFunction: () => service.warningFunctionWhenReopeningAnIssue(service.dataService.cache.userIssuesObject[issueId].Resolved, issueId),\r\n\t\t\t\t\t\ttitle: \"Select 'Yes' if this issue has been resolved. Please enter the resolution if it has been resolved.\",\r\n\t\t\t\t\t\torder: 12\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tnew SliderYesNoQuestion({\r\n\t\t\t\t\t\tkey: \"NotifyCreatorUser\",\r\n\t\t\t\t\t\tlabel: \"Notify Creator User\",\r\n\t\t\t\t\t\tvalue: discussion.length === 0 ? (service.dataService.cache.userIssuesObject[issueId].CreatorUserId == Global.User.currentUser.Id ? service.dataService.cache.userIssuesObject[issueId].NofityCreatorUser == false : service.dataService.cache.userIssuesObject[issueId].NofityCreatorUser) : discussion.first().NotifyCreatorUser, //--we may have updated this field when retrieving the discussion, so just get it from that recordset rather than the data cache.\r\n\t\t\t\t\t\ttitle: \"Should the original creator be notified?\",\r\n\t\t\t\t\t\torder: 13,\r\n\t\t\t\t\t\tvisible: Global.User.isAdmin\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tnew SliderYesNoQuestion({\r\n\t\t\t\t\t\tkey: \"NotifyAssignedUser\",\r\n\t\t\t\t\t\tlabel: \"Notify Assigned User\",\r\n\t\t\t\t\t\tvalue: discussion.length === 0 ? (service.dataService.cache.userIssuesObject[issueId].AssignedToUserId == Global.User.currentUser.Id ? service.dataService.cache.userIssuesObject[issueId].NotifyAssignedUser == false : service.dataService.cache.userIssuesObject[issueId].NotifyAssignedUser) : discussion.first().NotifyAssignedUser, //--we may have updated this field when retrieving the discussion, so just get it from that recordset rather than the data cache.\r\n\t\t\t\t\t\ttitle: \"Should the Assigned To person be notified?\",\r\n\t\t\t\t\t\torder: 14,\r\n\t\t\t\t\t\tvisible: Global.User.isAdmin\r\n\t\t\t\t\t})\r\n\t\t\t\t];\r\n\r\n\t\t\t\tif (this.currentUserIsDeveloper) {\r\n\t\t\t\t\tquestions.push(\r\n\t\t\t\t\t\tnew TextboxQuestion({\r\n\t\t\t\t\t\t\tkey: \"CreatorUserId\",\r\n\t\t\t\t\t\t\tlabel: \"Created By\",\r\n\t\t\t\t\t\t\ttitle: \"The person who is logging the issue. This may be the current user, but this selector allows you to choose the correct person that first reported the issue.\",\r\n\t\t\t\t\t\t\ttype: \"generic-selector\",\r\n\t\t\t\t\t\t\tsetName: \"iOPSUsers\",\r\n\t\t\t\t\t\t\trequired: true,\r\n\t\t\t\t\t\t\tvalidateObject: true,\r\n\t\t\t\t\t\t\tallowBlankValue: false,\r\n\t\t\t\t\t\t\torder: 4,\r\n\t\t\t\t\t\t\tvalue: service.dataService.cache.userIssuesObject[issueId].CreatorUserId\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tquestions.push(\r\n\t\t\t\t\t\tnew ReadOnlyQuestion({\r\n\t\t\t\t\t\t\tkey: \"createdBy\",\r\n\t\t\t\t\t\t\tlabel: \"Created By\",\r\n\t\t\t\t\t\t\tvalue: service.dataService.cache.userIssuesObject[issueId].CreatedBy,\r\n\t\t\t\t\t\t\torder: 4\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tservice.editQuestions = questions;\r\n\t\t\t\tservice.setFileImageUploadSettings(service.dataService.cache.userIssuesObject[issueId]);\r\n\r\n\t\t\t\tservice.loadingEditForm = false;\r\n\t\t\t\tservice.isLoadingEditScreen = false;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tsetFileImageUploadSettings(issue: any) {\r\n\t\tvar service = this;\r\n\t\tGlobal.User.DebugMode && console.log(service.componentName + \": setting up File Image Upload functions. Issue = %O\", issue);\r\n\t\tvar entityId = issue.Id;\r\n\t\tvar entityType = \"UserIssue\";\r\n\t\tvar title: string = \"Issue #\" + issue.Id + \" Documentation\";\r\n\t\tservice.CountOfFilesUploaded = issue.CountOfFilesUploaded;\r\n\r\n\t\tissue.openFileImageUploadWindow = function () {\r\n\t\t\tvar sqlStatement = \"API.FileImageManagement @Type='List', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @UserId=\" + Global.User.currentUser.Id;\r\n\t\t\tservice.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + sqlStatement + \" = %O\", data);\r\n\t\t\t\tservice.fileImageData = data;\r\n\t\t\t\tservice.FileImageLibraryControlObject = {\r\n\t\t\t\t\timageKeys: service.fileImageData.filter((i: any) => {\r\n\t\t\t\t\t\treturn i.ImageKey;\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t//---B\r\n\t\t\t\t\tremoveUploadFunction(deletedImageKey: string) {\r\n\t\t\t\t\t\tservice.dataService.SQLActionAsPromise(\"API.FileImageManagement @Type='Delete', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @ImageKey='\" + deletedImageKey + \"', @UserId=\" + Global.User.currentUser.Id).then((remainingFileImageKeyList: any) => {\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"remainingFileImageKeyList after deletion: %O\", remainingFileImageKeyList);\r\n\t\t\t\t\t\t\tservice.FileImageLibraryControlObject.imageKeys = remainingFileImageKeyList;\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"service.FileImageLibraryControlObject.imageKeys.length = \" + service.FileImageLibraryControlObject.imageKeys.length);\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"service.FileImageLibraryControlObject = %O\", service.FileImageLibraryControlObject);\r\n\t\t\t\t\t\t\tservice.signalRCore.notifyOtherClientsInGroup(service.editFormOptions.signalRGroupToNotify, \"Files Changed\", service.FileImageLibraryControlObject);\r\n\t\t\t\t\t\t\tservice.fileImageData = remainingFileImageKeyList;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\t\t\t\t\t//---B\r\n\t\t\t\t\taddUploadFunction(newImageKey: string) {\r\n\t\t\t\t\t\tservice.dataService.SQLActionAsPromise(\"API.FileImageManagement @Type='Add', @EntityType='\" + entityType + \"', @EntityId=\" + entityId + \", @ImageKey='\" + newImageKey + \"', @UserId=\" + Global.User.currentUser.Id).then((updatedFileImageKeyList: any) => {\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"updatedFileImageKeyList after new file added: %O\", updatedFileImageKeyList);\r\n\t\t\t\t\t\t\tservice.FileImageLibraryControlObject.imageKeys = updatedFileImageKeyList;\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"service.FileImageLibraryControlObject.imageKeys.length = \" + service.FileImageLibraryControlObject.imageKeys.length);\r\n\t\t\t\t\t\t\tGlobal.User.DebugMode && console.log(service.componentName + \"service.FileImageLibraryControlObject = %O\", service.FileImageLibraryControlObject);\r\n\t\t\t\t\t\t\tservice.signalRCore.notifyOtherClientsInGroup(service.editFormOptions.signalRGroupToNotify, \"Files Uploaded\", service.FileImageLibraryControlObject);\r\n\t\t\t\t\t\t\tservice.fileImageData = updatedFileImageKeyList;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmode: null,\r\n\t\t\t\t\tlistTitle: title,\r\n\t\t\t\t\tentityId: entityId,\r\n\t\t\t\t\tentityType: entityType,\r\n\t\t\t\t\tcloseUploadWindowFunction() {\r\n\t\t\t\t\t\tservice.FileImageLibraryControlObject = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tservice.openDialog(\"fileUpload\");\r\n\t\t\t});\r\n\t\t};\r\n\t}\r\n\r\n\topenDialog(type: string): void {\r\n\t\tvar innerWidth = window.innerWidth;\r\n\t\tif (type == \"fileUpload\") {\r\n\t\t\tconst dialogRef = this.dialog.open(FileUploadListComponent, {\r\n\t\t\t\twidth: \"70%\",\r\n\t\t\t\theight: \"70%\"\r\n\t\t\t});\r\n\r\n\t\t\tdialogRef.componentInstance.fileImageLibraryControlObject = this.FileImageLibraryControlObject;\r\n\r\n\t\t\tdialogRef.afterClosed().subscribe((result) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": The dialog was closed\");\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \": this.FileImageLibraryControlObject.imageKeys.length = \" + this.FileImageLibraryControlObject.imageKeys.length);\r\n\t\t\t\tthis.CountOfFilesUploaded = this.FileImageLibraryControlObject.imageKeys.length;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\twarningFunctionWhenReopeningAnIssue(resolvedStatus: boolean, issueId: number) {\r\n\t\tvar service = this;\r\n\t\tif (!resolvedStatus) {\r\n\t\t\t//-- the resolved status is not yet true, so this is the warning to the user that they are trying to resolve it.\r\n\t\t\tservice.swalWithBootstrapButtons = swal.mixin({\r\n\t\t\t\tcustomClass: {\r\n\t\t\t\t\tconfirmButton: \"btn btn-danger\",\r\n\t\t\t\t\tcancelButton: \"btn btn-success\"\r\n\t\t\t\t},\r\n\t\t\t\tbuttonsStyling: false\r\n\t\t\t});\r\n\t\t\tconsole.log(\"Marking Customer Issue #\" + service.dataService.cache.userIssuesObject[issueId].Id + \" as resolved...\");\r\n\r\n\t\t\tservice.swalWithBootstrapButtons\r\n\t\t\t\t.fire({\r\n\t\t\t\t\ttitle: \"Are you sure?\",\r\n\t\t\t\t\thtml: \"You are trying to resolve the '\" + service.dataService.cache.userIssuesObject[issueId].Id + \"' issue. Cancel if you would rather keep it open.\",\r\n\t\t\t\t\tshowCancelButton: true,\r\n\t\t\t\t\tconfirmButtonText: \"Resolve Issue\",\r\n\t\t\t\t\tcancelButtonText: \"Cancel\",\r\n\t\t\t\t\treverseButtons: false\r\n\t\t\t\t})\r\n\t\t\t\t.then((result: any) => {\r\n\t\t\t\t\tif (result.value) {\r\n\t\t\t\t\t\t// logic for resolving issue goes here.\r\n\t\t\t\t\t\tservice.dataService.SQLActionAsPromise(\"API.Issues_SetResolveField @IssueId=\" + service.dataService.cache.userIssuesObject[issueId].Id + \", @UserId=\" + Global.User.currentUser.Id + \", @IsResolved=1\").then((data: any) => {\r\n\t\t\t\t\t\t\tconsole.log(\"data = %O\", data);\r\n\t\t\t\t\t\t\tservice.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\t\t\tmessage: \"Customer Issue #\" + service.dataService.cache.userIssuesObject[issueId].Id + \" has been resolved.\",\r\n\t\t\t\t\t\t\t\ttitle: \"Customer Issues\"\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tservice.signalRCore.notifyOtherClientsInGroup(service.editFormOptions.signalRGroupToNotify, service.editFormOptions.signalRNotifyCode, service.dataService.cache.userIssuesObject[issueId]);\r\n\t\t\t\t\t\t\tservice.dialogRef.close();\r\n\t\t\t\t\t\t\t// service.issueList(true); //-- go get list of issues again.\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tservice.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\t\t\tmessage: \"Customer Issue #\" + service.dataService.cache.userIssuesObject[issueId].Id + \" has NOT been resolved.\",\r\n\t\t\t\t\t\t\ttitle: \"Customer Issues\"\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\t//-- the resolved status is true. User must have a reason for re-opening the issue, so just allow the update.\r\n\t\t\tvar requestJSON = [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"Resolved\",\r\n\t\t\t\t\tsqlStatement: \"API.Issues_UpdateRecordByIdAndFieldName @UserIssueId=\" + service.dataService.cache.userIssuesObject[issueId].Id + \", @iOPSUserId=\" + Global.User.currentUser.Id + \", @FieldName='Resolution', @FieldValue=null\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: \"IsResolved\",\r\n\t\t\t\t\tsqlStatement: \"API.Issues_SetResolveField @IssueId=\" + service.dataService.cache.userIssuesObject[issueId].Id + \", @UserId=\" + Global.User.currentUser.Id + \", @IsResolved=0\"\r\n\t\t\t\t}\r\n\t\t\t];\r\n\t\t\tservice.dataService.SQLMultiAction(requestJSON, Global.User.currentUser.ODataAccessToken).then((data: any) => {\r\n\t\t\t\tconsole.log(\"data = %O\", data);\r\n\t\t\t\tservice.utilityService.showToastMessageShared({\r\n\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t\tmessage: \"Customer Issue #\" + service.dataService.cache.userIssuesObject[issueId].Id + \" has been re-opened.\",\r\n\t\t\t\t\ttitle: \"Customer Issues\"\r\n\t\t\t\t});\r\n\t\t\t\tservice.signalRCore.notifyOtherClientsInGroup(service.editFormOptions.signalRGroupToNotify, service.editFormOptions.signalRNotifyCode, service.dataService.cache.userIssuesObject[issueId]);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tsubmitEditedIssue(submittedValues: string) {\r\n\t\tvar service = this;\r\n\t\tconsole.log(\"edited issue change submitted...\");\r\n\t\tvar submittedValuesObject = JSON.parse(submittedValues);\r\n\t\t//console.log(\"submittedValuesObject = %O\", submittedValuesObject);\r\n\t\t// console.log(\"Object.keys(submittedValuesObject) = %O\", Object.keys(submittedValuesObject));\r\n\t\tvar keys: Array = Object.keys(submittedValuesObject);\r\n\r\n\t\tservice.parameterListAsString = \"\";\r\n\t\tvar countOfParameters = 1;\r\n\t\tkeys.forEach((key: any) => {\r\n\t\t\tvar questions = service.editQuestions;\r\n\t\t\tquestions.forEach((question: any) => {\r\n\t\t\t\tif (key == question.key && question.controlType != \"read-only\") {\r\n\t\t\t\t\tvar value = submittedValuesObject[key];\r\n\t\t\t\t\tconsole.log(\"key: \" + key + \", value: \" + value);\r\n\t\t\t\t\tswitch (key) {\r\n\t\t\t\t\t\tcase \"createdBy\":\r\n\t\t\t\t\t\t\t//-- since this is using a person-selector, the value coming back is a JSON object.\r\n\t\t\t\t\t\t\t//-- Get the UserId from the value object that was returned. --Kirk T. Sherer, April 22, 2021.\r\n\t\t\t\t\t\t\tvar UserId = value?.UserId != null ? value.UserId : value; // -- if there is no value object, then the value is the UserId. --Kirk T. Sherer, February 23, 2024.\r\n\t\t\t\t\t\t\tservice.parameterListAsString += \"@UserId=\" + UserId;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase \"subject\":\r\n\t\t\t\t\t\t\tservice.parameterListAsString += \"@SubjectId=\" + value;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tservice.parameterListAsString += \"@\" + key + \"=\";\r\n\t\t\t\t\t\t\tif (isNaN(submittedValuesObject[key])) {\r\n\t\t\t\t\t\t\t\tservice.parameterListAsString += \"'\" + service.utilityService.updateStringToSQLSyntax(value) + \"'\";\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tservice.parameterListAsString += value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (countOfParameters < keys.length) {\r\n\t\t\t\t\t\tservice.parameterListAsString += \", \";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcountOfParameters++;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (key == \"createdBy\" && question.controlType == \"read-only\") {\r\n\t\t\t\t\t\t//-- the non-admin user is trying to log another issue from their list of existing issues since their 'createdBy' field\r\n\t\t\t\t\t\t//-- is listed as a read-only field. So we have to send their UserId as the @UserId parameter so we'll know this issue\r\n\t\t\t\t\t\t//-- was submitted by them. --Kirk T. Sherer, April 26, 2021.\r\n\t\t\t\t\t\tservice.parameterListAsString += \"@UserId=\" + Global.User.currentUser.Id;\r\n\t\t\t\t\t\tif (countOfParameters < keys.length) {\r\n\t\t\t\t\t\t\tservice.parameterListAsString += \", \";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcountOfParameters++;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconsole.log(\"this.parameterListAsString = \" + service.parameterListAsString);\r\n\t\tvar newParameterListAsString = (service.parameterListAsString += \", @CreatorUserId=\" + Global.User.currentUser.Id);\r\n\t\tnewParameterListAsString = newParameterListAsString.replace(\", ,\", \",\");\r\n\r\n\t\tconsole.log(\"newParamterListAsString = \" + newParameterListAsString);\r\n\t\tservice.dataService.SQLActionAsPromise(\"API.User_SubmitIssue \" + newParameterListAsString).then((data: any) => {\r\n\t\t\tconsole.log(\"data = %O\", data);\r\n\t\t\tvar issueId = data?.first().Id;\r\n\t\t\tservice.signalRCore.notifyOtherClientsInGroup(\"User Issues\", \"Issue Updated\", service.dataService.cache.userIssuesObject[issueId]);\r\n\r\n\t\t\t//--this updates the Kendo Grid Data with whatever changed in SignalR for the main User Issue structure in the data cache.\r\n\t\t\tthis.dialogRef.close(); //-- return back to the issue list after inserting/updating the issue.\r\n\t\t});\r\n\t}\r\n\r\n\tpublic submitResponse(issue: any) {\r\n\t\tvar service = this;\r\n\t\tconsole.log(\"this.editFormOptions.saveStoredProcedureName = \" + this.editFormOptions.saveStoredProcedureName + \", issue = \" + issue);\r\n\t\tconsole.log(\"this.discussionIssueFormGroup = %O\", this.discussionIssueFormGroup);\r\n\t\tvar newDiscussion = service.stringToHTML(this.discussionIssueFormGroup.controls.response.value);\r\n\t\tvar discussion = newDiscussion.split(\"'\").join(\"''\");\r\n\t\tvar sql = this.editFormOptions.saveStoredProcedureName + \", 'Comments', '\" + discussion + \"'\";\r\n\t\tconsole.log(\"sql = \" + sql);\r\n\t\tthis.dataService.SQLActionAsPromise(sql).then((data: any) => {\r\n\t\t\tconsole.log(\"data = %O\", data);\r\n\t\t\tthis.discussionIssueFormGroup.controls.response.reset();\r\n\t\t\tconsole.log(\"issue = \" + issue + \", data = %O\", data);\r\n\t\t\tconsole.log(\"this.discussion = %O\", this.discussion);\r\n\t\t\tthis.getIssueDiscussion(issue, data, this.discussion);\r\n\t\t\tthis.signalRCore.notifyOtherClientsInGroup(\"User Issues\", \"Issue Discussion Updated\", data);\r\n\t\t});\r\n\t}\r\n\r\n\tstringToHTML(textString: string) {\r\n\t\tvar parser = new DOMParser();\r\n\t\tvar doc = parser.parseFromString(textString, \"text/html\");\r\n\t\tvar text = doc.body.innerHTML;\r\n\t\t//console.log(this.componentName + \"stringToHTML(\" + textString + \") = \" + text);\r\n\t\tvar returnText = textString != undefined ? text.split(\"
        \").join(\"\\n\").split(\"

        \").join(\"\").split(\"

        \").join(\"\").split(\"<\").join(\"<\").split(\">\").join(\">\").split(\"

        \").join(\"\").split(\"

        \").join(\"\") : \"\";\r\n\t\treturn returnText;\r\n\t}\r\n\r\n\tgetIssueDiscussion(issue: any, lastDiscussion?: any, discussion?: any) {\r\n\t\tif (!this.discussion || (!lastDiscussion && !discussion)) {\r\n\t\t\t//-- if we don't have deicer events populated yet, or we didn't send a current deicing event, then go get the list of deicer events again from SQL Server. --Kirk T. Sherer, October 12, 2020.\r\n\t\t\tthis.dataService.SQLActionAsPromise(\"API.Issues_GetIssueDiscussion \" + issue).then((data: any) => {\r\n\t\t\t\tvar discussion = data;\r\n\t\t\t\tthis.discussionGridSettings.gridData = process(discussion, this.discussionGridSettings.state);\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"this.discussionGridSettings.gridData = %O\", this.discussionGridSettings.gridData);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tif (discussion && !lastDiscussion) {\r\n\t\t\t\t//-- we arrived at this function with the list of discussion records, but no new ones to append to the list. Just display the same list again. --Kirk T. Sherer, April 19, 2021.\r\n\t\t\t\tthis.discussionGridSettings.gridData = process(discussion, this.discussionGridSettings.state);\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"this.discussionGridSettings.gridData = %O\", this.discussionGridSettings.gridData);\r\n\t\t\t} else {\r\n\t\t\t\t//-- we are arriving here with a list of discussion records, as well as a new record to add to the list. --Kirk T. Sherer, April 19, 2021.\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"this.discussion = %O\", this.discussion);\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"lastDiscussion = %O\", lastDiscussion);\r\n\r\n\t\t\t\tvar discussion = this.discussion;\r\n\t\t\t\tlastDiscussion.forEach((d: any) => {\r\n\t\t\t\t\td.Date = new Date(d.DateMS);\r\n\t\t\t\t\td.Comments = this.stringToHTML(d.Comments);\r\n\t\t\t\t});\r\n\t\t\t\tdiscussion.push(lastDiscussion.first());\r\n\t\t\t\tvar newDiscussionList = discussion\r\n\t\t\t\t\t.orderByDescending((d: any) => {\r\n\t\t\t\t\t\treturn d.DateMS;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.toArray();\r\n\t\t\t\tthis.discussion = newDiscussionList;\r\n\t\t\t\tthis.discussionGridSettings.gridData = process(newDiscussionList, this.discussionGridSettings.state);\r\n\t\t\t\t$(\"#response\").trigger(\"click\"); //--should set focus back to textarea after submission of text. --Kirk T. Sherer, April 20, 2021.\r\n\r\n\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"this.discussionGridSettings.gridData after adding new discussion record = %O\", this.discussionGridSettings.gridData);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic filterChange(filter: CompositeFilterDescriptor): void {\r\n\t\tthis.state.filter = filter;\r\n\t\tthis.gridView = process(this.issueData, this.state);\r\n\t}\r\n\r\n\tpublic sortChange(sort: any): void {\r\n\t\tthis.state.sort = sort;\r\n\t\tthis.gridView = process(this.issueData, this.state);\r\n\t}\r\n\r\n\tpublic pageChange(event: PageChangeEvent): void {\r\n\t\tthis.skip = event.skip;\r\n\t\tthis.state.skip = event.skip;\r\n\t\tthis.state.take = event.take;\r\n\t\tthis.gridView = process(this.issueData, this.state);\r\n\t}\r\n\r\n\tupdateRowColor(context: RowClassArgs) {\r\n\t\tlet rowUpdated = context.dataItem.RecentlyUpdated;\r\n\t\treturn {\r\n\t\t\trecentlyUpdated: rowUpdated\r\n\t\t};\r\n\t}\r\n}\r\n","
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\r\n\t\t\t
        \r\n\t\t\t

        \r\n\t\t\t\t{{ selectedIssue.IssueName }}\r\n\t\t\t

        \r\n\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t
        \r\n\t\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n
        \r\n
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t

        \r\n\t\t\t\t{{ editHeader\r\n\t\t\t\t}}  {{ selectedIssue.Id }}\r\n\t\t\t

        \r\n\t\t\t\r\n\t\t\t\r\n\t\t\t
        {{ editSubHeader }}
        \r\n\t\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{{ dataItem.Date | date : \"MM/dd/yy HH:mm:ss\" }}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t No discussion about this issue yet. \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n\t
        \r\n\r\n\t\t
        \r\n\t\t\t

        \r\n\t\t\t\tLoading Issue\r\n\t\t\t

        \r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t
        \r\n\t\t
        \r\n\t\t\t\r\n\r\n\t\t
        \r\n\t
        \r\n\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CustomerIssuesItemComponent } from '../customer-issues-item/customer-issues-item.component';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n\tselector: 'lib-dialog-entry',\r\n\ttemplateUrl: './dialog-entry.component.html',\r\n\tstyleUrls: ['./dialog-entry.component.scss'],\r\n})\r\nexport class DialogEntryComponent implements OnInit, OnDestroy {\r\n\tconstructor(public dialog: MatDialog, private router: Router) {\r\n\t\tconsole.log('constructor dialog-entry');\r\n\t\tthis.openDialog();\r\n\t}\r\n\topenDialog(): void {\r\n\t\tconst dialogRef = this.dialog.open(CustomerIssuesItemComponent, {\r\n\t\t\twidth: '95%',\r\n\t\t\theight: '95%',\r\n\t\t});\r\n\t\tdialogRef.afterClosed().subscribe((result) => {\r\n\t\t\tthis.router.navigate(['/layout/issues']);\r\n\t\t});\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tconsole.log('dialog-entry.component.ts');\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tconsole.log('dialog-entry.component.ts');\r\n\t}\r\n}\r\n","

        dialog-entry works!

        \r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { DataService } from '../services/data.service';\r\nimport { UtilityService } from '../services/utility.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class CustomerIssueGuard {\r\n\tconstructor(\r\n\t\tpublic dataService: DataService,\r\n\t\tpublic utilityService: UtilityService\r\n\t) {}\r\n\tcanActivate(\r\n\t\troute: ActivatedRouteSnapshot,\r\n\t\tstate: RouterStateSnapshot\r\n\t):\r\n\t\t| Observable\r\n\t\t| Promise\r\n\t\t| boolean\r\n\t\t| UrlTree {\r\n\t\tlet selectedCustomerIssueId = route.params.id;\r\n\t\tconsole.log(selectedCustomerIssueId);\r\n\t\tconsole.log(this.dataService.cache.userIssues);\r\n\t\tlet foundCustomerIssue = this.dataService.cache.userIssues.find(\r\n\t\t\t(ui) => ui.Id == selectedCustomerIssueId\r\n\t\t);\r\n\t\tif (\r\n\t\t\tfoundCustomerIssue != undefined ||\r\n\t\t\tselectedCustomerIssueId == 'newIssue'\r\n\t\t) {\r\n\t\t\tthis.dataService.currentSelectedIssueId = selectedCustomerIssueId;\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\ttype: 'error',\r\n\t\t\t\tmessage: 'You are not allowed to view this issue.',\r\n\t\t\t});\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot, UrlTree } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { Global } from \"../_constants/global.variables\";\r\nimport { UtilityService } from \"../services/utility.service\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class DashboardAccessGuard {\r\n\tconstructor(\r\n\t\tprivate router: Router,\r\n\t\tprivate utilityService: UtilityService\r\n\t) {}\r\n\tcanActivate(\r\n\t\troute: ActivatedRouteSnapshot,\r\n\t\tstate: RouterStateSnapshot\r\n\t):\r\n\t\t| Observable\r\n\t\t| Promise\r\n\t\t| boolean\r\n\t\t| UrlTree {\r\n\t\tlet selectedDashboardId = route.params.id;\r\n\t\tlet ifAllowed = false;\r\n\t\tlet foundDashboard = Global.User.currentUser.Dashboards.find(\r\n\t\t\t(obj) => obj.Id == selectedDashboardId\r\n\t\t);\r\n\r\n\t\tif (foundDashboard != undefined) {\r\n\t\t\tifAllowed = true;\r\n\t\t} else {\r\n\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\ttype: \"info\",\r\n\t\t\t\tmessage: \"Route does not exist. Redirecting to dashboard list.\",\r\n\t\t\t\ttitle: \"Dashboards\",\r\n\t\t\t});\r\n\t\t\tthis.router.navigate([\"/layout/dashboard-list\"]);\r\n\t\t\tifAllowed = false;\r\n\t\t}\r\n\r\n\t\treturn ifAllowed;\r\n\t}\r\n}\r\n","import { Component, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DataService } from '../../services/data.service';\r\nimport { Global } from '../../_constants/global.variables';\r\nimport { UtilityService } from \"../../services/utility.service\";\r\nimport { GridSettings } from \"../../_models/grid-settings.interface\";\r\nimport { KendoGridParentComponent } from \"../kendo-grid-parent/kendo-grid-parent.component\";\r\n\r\n@Component({\r\n selector: 'lib-user-engagement-report',\r\n templateUrl: './user-engagement-report.component.html',\r\n styleUrls: ['./user-engagement-report.component.scss']\r\n})\r\n\r\nexport class UserEngagementReportComponent implements AfterViewInit {\r\n\t@ViewChild('parentContentPunchout') parentContentPunchout: any;\r\n\tparentHeight: any;\r\n\r\n\tpublic listOfOrganizations: any;\r\n\tpublic orgListSelected: Array;\r\n\tpublic userListfromDB: Array;\r\n\tpublic userListSelected: Array;\r\n\tpublic userActivity: Array;\r\n\tpublic noUserActivity: boolean = false;\r\n\t@ViewChild(\"activityGrid\") activityGrid: KendoGridParentComponent;\r\n\tstartDate = new FormControl(new Date(this.utilityService.GetQueryDateDaysAgo(7)).toISOString());\r\n\tendDate = new FormControl(new Date().toISOString());\r\n\r\n\r\n\tpublic kendoGrids = {\r\n\t\tactivity: {\r\n\t\t\tdata: [],\r\n\t\t\tgroupable: false,\r\n\t\t\tgridSettings: {\r\n\t\t\t\tstate: {\r\n\t\t\t\t\tskip: 0,\r\n\t\t\t\t\tfilter: {\r\n\t\t\t\t\t\tlogic: \"and\",\r\n\t\t\t\t\t\tfilters: []\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttake: 30\r\n\t\t\t\t},\r\n\t\t\t\tcolumnsConfig: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"Person\",\r\n\t\t\t\t\t\ttitle: \"Person\",\r\n\t\t\t\t\t\tfilterable: true,\r\n\t\t\t\t\t\t_width: 100,\r\n\t\t\t\t\t\tminResizableWidth: 150\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"LogDate\",\r\n\t\t\t\t\t\ttitle: \"Log Date\",\r\n\t\t\t\t\t\tfilterable: true,\r\n\t\t\t\t\t\tfilter: \"date\",\r\n\t\t\t\t\t\tincludeInChooser: true,\r\n\t\t\t\t\t\t_width: 50\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: \"UserEventType\",\r\n\t\t\t\t\t\ttitle: \"User Event Type\",\r\n\t\t\t\t\t\tfilterable: true,\r\n\t\t\t\t\t\t_width: 50\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: 'Description',\r\n\t\t\t\t\t\ttitle: 'Description',\r\n\t\t\t\t\t\tfilterable: true,\r\n\t\t\t\t\t\t_width: 200,\r\n\t\t\t\t\t\tminResizableWidth: 200\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t} as GridSettings,\r\n\t\t},\r\n\t};\r\n\r\n\tconstructor(\r\n\t\tpublic dataService: DataService,\r\n\t\tprivate utilityService: UtilityService\r\n\t) {\r\n\r\n\t}\r\n\r\n ngAfterViewInit(): void {\r\n\tthis.parentHeight = this.parentContentPunchout.nativeElement.clientHeight;\r\n\t this.listOfOrganizations = this.dataService.cache.organizations.where((organization:any) => { return organization.CountOfPeople > 0 }).toArray();\r\n\t this.listOfOrganizations.sort((a, b) => a.Mnemonic.localeCompare(b.Mnemonic));\r\n\t this.orgListSelected = new Array();\r\n\t this.userListfromDB = new Array();\r\n\t this.userListSelected = new Array();\r\n\t this.userActivity = new Array();\r\n\r\n\t}\r\n\r\n\tchange(event) {\r\n\r\n\t\tif (event.isUserInput && event.source.selected) {\r\n\t\t\tconsole.log(event.source.value);\r\n\t\t\tthis.orgListSelected.push(event.source.value.Id);\r\n\t\t\tthis.getUserListFromDB();\r\n\t\t}\r\n\t\tif (event.isUserInput && !event.source.selected) {\r\n\t\t\tlet index = this.orgListSelected.findIndex((o: any) => {\r\n\t\t\t\treturn o == event.source.value.Id;\r\n\t\t\t});\r\n\t\t\tthis.orgListSelected.splice(index, 1);\r\n\t\t\tthis.getUserListFromDB();\r\n\t\t}\r\n\r\n\t}\r\n\tchangeUser(event) {\r\n\r\n\t\tif (event.isUserInput && event.source.selected) {\r\n\t\t\tconsole.log(event.source.value);\r\n\t\t\tthis.userListSelected.push(event.source.value.UserId);\r\n\t\t}\r\n\t\tif (event.isUserInput && !event.source.selected) {\r\n\t\t\tlet index = this.userListSelected.findIndex((o: any) => {\r\n\t\t\t\treturn o == event.source.value.UserId;\r\n\t\t\t});\r\n\t\t\tthis.userListSelected.splice(index, 1);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tgetUserListFromDB() {\r\n\t\tvar orgList = this.orgListSelected.toString();\r\n\t\tvar currentUserId = Global.User.currentUser.Id;\r\n\t\tthis.userListSelected = [];\r\n\t\tlet statement =\r\n\t\t\t'Security.UserEngagement_ListOfUsersByOrganization @ListOfOrganizationIds = ' +\r\n\t\t\t\"'\" + orgList + \"'\" +\r\n\t\t\t', @UserId = ' +\r\n\t\t\tcurrentUserId;\r\n\t\tthis.dataService.SQLActionAsPromise(statement).then((data: any) => {\r\n\t\t\tthis.userListfromDB = data;\r\n\t\t});\r\n\t}\r\n\r\n\tgetUserActivity() {\r\n\t\tconsole.log(this);\r\n\t\tvar userList;\r\n\t\tif (this.userListSelected.length > 0)\r\n\t\t\tuserList = this.userListSelected.toString();\r\n\t\telse {\r\n\t\t\tvar allUsersInSelectedOrg = new Array();\r\n\t\t\tthis.userListfromDB.forEach((u: any) => {\r\n\t\t\t\tallUsersInSelectedOrg.push(u.UserId)\r\n\t\t\t});\r\n\t\t\tuserList = allUsersInSelectedOrg.toString();\r\n\t\t}\r\n\r\n\t\tvar currentUserId = Global.User.currentUser.Id;\r\n\t\tvar startDateTime = this.utilityService.ConvertDateTimeToUTCDateTimeAndFormatForSQLParameter(this.startDate.value);\r\n\t\tvar endDateTime = this.utilityService.ConvertDateTimeToUTCDateTimeAndFormatForSQLParameter(this.endDate.value);\r\n\r\n\t\tlet statement =\r\n\t\t\t'Security.UserEngagement_UserActivityByListOfUsers @ListOfUsers = ' +\r\n\t\t\t\"'\" + userList + \"'\" +\r\n\t\t\t', @UserId = ' +\r\n\t\t\tcurrentUserId +\r\n\t\t\t', @StartDate = ' +\r\n\t\t\t\"'\" + startDateTime + \"'\" +\r\n\t\t\t', @EndDate = ' +\r\n\t\t\t\"'\" + endDateTime + \"'\";\r\n\t\tthis.dataService.SQLActionAsPromise(statement).then((data: any) => {\r\n\t\t\tthis.userActivity = [];\r\n\t\t\tif (data.length == 0)\r\n\t\t\t\tthis.noUserActivity = true;\r\n\r\n\t\t\telse {\r\n\t\t\t\tthis.noUserActivity = false;\r\n\t\t\t\tdata.forEach((u) => {\r\n\t\t\t\t\tu.DateTime = this.utilityService.ConvertDateTimeToUTCDateTimeAndFormatForSQLParameter(u.LogDate);\r\n\t\t\t\t})\r\n\t\t\t\tthis.userActivity = data;\r\n\t\t\t\tif(this.activityGrid != undefined){\r\n\t\t\t\t\tthis.activityGrid.gridDataSubject.next(this.userActivity);\r\n\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t}\r\n\t\t});\r\n }\r\n\r\n}\r\n","
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t

        \r\n\t\t\t\t\t\tUser Engagement Report\r\n\t\t\t\t\t

        \r\n\t\t\t\t\t

        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t{{org.SelectorName}}\r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        0\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t{{user.UsernameDisplay}}\r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t
        0\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tStart Date (required)\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        0\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tEnd Date (required)\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        0\" style=\"display: inline-block\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t

        No User Activity for the selected Users/Timeframe

        \r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\r\n\r\n\r\n\t\t
        \r\n
        \r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DataService } from '../../services/data.service';\r\nimport { CanvasGsePopupSettingsComponent } from '../../components/canvas-gse-popup-settings/canvas-gse-popup-settings.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CanvasPopupSettingsComponent } from '../canvas-popup-settings/canvas-popup-settings.component';\r\n\r\n@Component({\r\n selector: 'lib-canvas-designer',\r\n templateUrl: './canvas-designer.component.html',\r\n styleUrls: ['./canvas-designer.component.scss']\r\n})\r\nexport class CanvasDesignerComponent implements OnInit {\r\n\tpublic selectedTemplate: any = undefined;\r\n\twidgetObject: any;\r\n\r\n\tconstructor(private dataService: DataService, public dialog: MatDialog,) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n\topenTemplatePopup() {\r\n\t\tthis.selectedTemplate = false;\r\n\t\tconst canvasPopupSettingsModal = this.dialog.open(\r\n\t\t\tCanvasPopupSettingsComponent,\r\n\t\t\t{\r\n\t\t\t\twidth: '70%',\r\n\t\t\t\theight: '70%',\r\n\t\t}\r\n\t);\r\n\r\n\t canvasPopupSettingsModal\r\n\t\t .afterClosed()\r\n\t\t .subscribe((result) => {\r\n\t\t\t if (result) {\r\n\t\t\t\t this.widgetObject = { fromCanvasDesigner: 'modelTemplate' };\r\n\t\t\t\t this.widgetObject.result = result;\r\n\t\t\t\t this.selectedTemplate = true;\r\n\t\t\t }\r\n\t\t });\r\n}\r\n\r\nopenGSETemplatePopup() {\r\n\tthis.selectedTemplate = false;\r\n\tconst canvasGsePopupSettingsModal = this.dialog.open(\r\n\t\tCanvasGsePopupSettingsComponent,\r\n\t\t{\r\n\t\t\twidth: '70%',\r\n\t\t\theight: '60%',\r\n\t\t\tdata: {\r\n\t\t\t\tCanvasTemplateTypeId: 1,\r\n\t\t\t},\r\n\t\t}\r\n\t);\r\n\r\n\tcanvasGsePopupSettingsModal\r\n\t\t.afterClosed()\r\n\t\t.subscribe((result) => {\r\n\t\t\tif (result) {\r\n\t\t\t\tthis.widgetObject = { fromCanvasDesigner: 'fleetTemplate' };\r\n\t\t\t\tthis.widgetObject.AngularDirectiveName = 'canvas';\r\n\t\t\t\tthis.widgetObject.result = result;\r\n\t\t\t\tthis.selectedTemplate = true;\r\n\t\t\t}\r\n\t\t});\r\n}\r\n\r\n}\r\n","
        \r\n\t\r\n\t\t
        \r\n\t\t\t\r\n\t\t\t\tCanvas Designer\r\n\t\t\t\r\n\r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t
        \r\n\t\t
        \r\n\t\t\t\r\n\t\t
        \r\n\t
        \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Global } from 'projects/shared-lib/src/lib/_constants/global.variables';\r\nimport { IGlobal } from 'projects/shared-lib/src/lib/_models/global.model';\r\nimport { DataService } from '../../services/data.service';\r\nimport { SignalRCoreService } from '../../services/signalr-core.service';\r\nimport { filter } from 'rxjs';\r\nimport { UtilityService } from '../../services/utility.service';\r\n\r\n\r\n@Component({\r\n selector: 'lib-logbook',\r\n templateUrl: './logbook.component.html',\r\n styleUrls: ['./logbook.component.scss']\r\n})\r\nexport class LogbookComponent implements OnInit {\r\n\tpublic global: IGlobal = Global;\r\n\tpublic gridSettings = {\r\n\t\tstate: {\r\n\t\t\tskip: 0,\r\n\t\t\tfilter: {\r\n\t\t\t\tlogic: 'and',\r\n\t\t\t\tfilters: []\r\n\t\t\t}\r\n\t\t},\r\n\t\tcolumnsConfig: [\r\n\r\n\t\t\t{\r\n\t\t\t field: \"Id\",\r\n\t\t\t title: \"Id\",\r\n\t\t\t _width: 75,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"CreatorName\",\r\n\t\t\t\ttitle: \"Creator\",\r\n\t\t\t\t_width: 100,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"AssetName\",\r\n\t\t\t\ttitle: \"Asset\",\r\n\t\t\t\t_width: 150,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t field: \"Description\",\r\n\t\t\t title: \"Description\",\r\n\t\t\t _width: 300,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"LastModifiedDate\",\r\n\t\t\t\ttitle: \"Last Modified Date\",\r\n\t\t\t\t_width: 75\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfield: \"EditNote\",\r\n\t\t\t\ttitle: \"Actions\",\r\n\t\t\t\t_width: 100,\r\n\t\t\t},\r\n\r\n\t\t ],\r\n\t}\r\n\r\n\tpublic logsArray: any;\r\n\tsignalRSubscription: any;\r\n\r\n\r\n constructor(\r\n\tpublic dataService: DataService,\r\n\tpublic signalRCore: SignalRCoreService,\r\n\tpublic utilityService: UtilityService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n\tthis.utilityService.updateCurrentMenuItem('Logbook');\r\n\r\n\tthis.initialize();\r\n\tthis.signalRSubscription = this.signalRCore.broadcastMessages$.pipe(filter((msg: any) =>\r\n\t\t\t\t\t\t\t\t\tmsg.code == \"dataService.cache.entityLogs Added\" ||\r\n\t\t\t\t\t\t\t\t\tmsg.code == \"dataService.cache.entityLogs Modified\" ||\r\n\t\t\t\t\t\t\t\t\tmsg.code == \"dataService.cache.entityLogs Deleted\"\r\n\t\t)).subscribe(\r\n\t\t(msg: any) => {\r\n\t\t\tthis.initialize();\r\n\t\t});\r\n }\r\n\r\n initialize() {\r\n\tGlobal.User.DebugMode && console.log(this.dataService.cache.entityLogs);\r\n\tthis.logsArray = this.dataService.cache.entityLogs\r\n\t\t.where((log: any) => {\r\n\t\t\tvar logOrganizationId = this.dataService.cache.people.firstOrDefault((person: any) => { return person.UserId == log.CreatorUserId })?.OrganizationId;\r\n\t\t\treturn (Global.User.currentUser.Organization.Id == logOrganizationId && (log.IsPrivate == null || log.IsPrivate == false))\r\n\t\t\t\t\t|| (log.IsPrivate == true && log.CreatorUserId == Global.User.currentUser.Id)\r\n\t\t})\r\n\t\t.select((visiblelog: any) => {\r\n\t\t\tvar EntityLogTypeName = this.dataService.cache.entityLogTypesObject[visiblelog.EntityLogTypeId]?.Name;\r\n\t\t\tvar assetName;\r\n\r\n\t\t\tif(EntityLogTypeName == \"Asset\") {\r\n\r\n\t\t\t\tif(this.dataService.cache.assetsObject[visiblelog.EntityId].Name == \"PBB\" ||\r\n\t\t\t\t\tthis.dataService.cache.assetsObject[visiblelog.EntityId].Name == \"GPU\" ||\r\n\t\t\t\t\tthis.dataService.cache.assetsObject[visiblelog.EntityId].Name == \"PCA\" ||\r\n\t\t\t\t\tthis.dataService.cache.assetsObject[visiblelog.EntityId].Name == \"AHU\"\r\n\t\t\t\t) {\r\n\t\t\t\t\tassetName = this.dataService.cache.assetsObject[visiblelog.EntityId].Site.Name + \" \" +\r\n\t\t\t\t\t\t\t\t\tthis.dataService.cache.assetsObject[visiblelog.EntityId].ParentSystem.Name + \" \" +\r\n\t\t\t\t\t\t\t\t\tthis.dataService.cache.assetsObject[visiblelog.EntityId].Name;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tassetName = this.dataService.cache.assetsObject[visiblelog.EntityId].Name;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\tvar output = {\r\n\t\t\t\tId: visiblelog.Id,\r\n\t\t\t\tDescription: visiblelog.Description,\r\n\t\t\t\tCreationDate: visiblelog.CreationDate,\r\n\t\t\t\tCreatorUserId: visiblelog.CreatorUserId,\r\n\t\t\t\tCreatorName: this.dataService.cache.people.firstOrDefault((person: any) => { return person.UserId == visiblelog.CreatorUserId })?.FullName,\r\n\t\t\t\tLastModifiedDate: visiblelog.LastModifiedDate,\r\n\t\t\t\tLastModifiedName: this.dataService.cache.people.firstOrDefault((person: any) => { return person.UserId == visiblelog.LastModifiedUserId })?.FullName,\r\n\t\t\t\tEntityLogTypeName: EntityLogTypeName,\r\n\t\t\t\tAssetName: assetName,\r\n\t\t\t\tCountOfFilesUploaded: visiblelog.CountOfFilesUploaded,\r\n\t\t\t\tCountOfLogComments: visiblelog.CountOfLogComments,\r\n\t\t\t\tEntityId: visiblelog.EntityId,\r\n\t\t\t\tEntityLogTypeId: visiblelog.EntityLogTypeId,\r\n\t\t\t\tIsPrivate: visiblelog.IsPrivate,\r\n\t\t\t\tKeywords: visiblelog.Keywords,\r\n\t\t\t};\r\n\r\n\t\t\treturn output;\r\n\t\t}).toArray();\r\n\r\n\r\n\tGlobal.User.DebugMode && console.log(this.logsArray);\r\n }\r\n\r\n\tgetCountOfFilesUploadedForEntity(entity: any, entityId: number, entityType: string) {\r\n\t\tvar sqlStatement = \"API.FileImageManagement 'Count', '\" + entityType + \"', \" + entityId + \", @UserId = \" + Global.User.currentUser.Id;\r\n\t\tthis.dataService.SQLActionAsPromise(sqlStatement).then((data: any) => {\r\n\t\t\tvar listOfFiles = data;\r\n\t\t\tentity.CountOfFilesUploaded = listOfFiles.length > 0\r\n\t\t\t\t\t? listOfFiles.first().CountOfFilesUploaded\r\n\t\t\t\t\t: 0;\r\n\t\t});\r\n\t}\r\n\r\n\r\n ngOnDestroy() {\r\n\tGlobal.User.DebugMode && console.log('ngOnDestroy invoked...');\r\n\r\n\tif (this.signalRSubscription !== undefined) {\r\n\t\tthis.signalRSubscription.unsubscribe();\r\n\t}\r\n\r\n}\r\n\r\n}\r\n","\r\n\r\n
        \r\n\r\n\r\n\r\n\t\r\n\t
        \r\n\r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t

        Logbook

        \r\n\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t
        \r\n\r\n\t
        \r\n\r\n
        \r\n\r\n\r\n\r\n\r\n","import { Component, ContentChildren, QueryList, OnInit, NgZone, Renderer2, AfterViewInit, OnDestroy } from \"@angular/core\";\r\n\r\nimport { CdkDragDrop, CdkDrag, moveItemInArray } from \"@angular/cdk/drag-drop\";\r\nimport _ from \"lodash\";\r\nimport { Subject, Subscription, fromEvent } from \"rxjs\";\r\nimport { SidebarComponent } from \"../../../../../desktop/src/app/_layout/sidebar/sidebar.component\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\n\r\nimport swal from \"sweetalert2\";\r\nimport { DataService } from \"projects/shared-lib/src/lib/services/data.service\";\r\nimport { Global } from \"projects/shared-lib/src/lib/_constants/global.variables\";\r\nimport { UtilityService } from \"projects/shared-lib/src/lib/services/utility.service\";\r\nimport { State, process } from \"@progress/kendo-data-query\";\r\nimport { tap, take } from \"rxjs/operators\";\r\nimport { RowClassArgs } from \"@progress/kendo-angular-grid\";\r\n\r\nconst tableRow = (node) => node.tagName.toLowerCase() === \"tr\";\r\n\r\nconst closest = (node, predicate) => {\r\n\twhile (node && !predicate(node)) {\r\n\t\tnode = node.parentNode;\r\n\t}\r\n\r\n\treturn node;\r\n};\r\n\r\n@Component({\r\n\ttemplateUrl: \"./canvas-tabs-list.component.html\",\r\n\tstyleUrls: [\"./canvas-tabs-list.component.scss\"]\r\n})\r\nexport class CanvasTabsListComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\tpublic static returned: Subject = new Subject();\r\n\r\n\tpublic canvasTabs: any;\r\n\tcdkDragData: any;\r\n\tprivate swalWithBootstrapButtons: any;\r\n\tprivate updatingCanvasTabsList: boolean = false;\r\n\tprivate finishedWithUpdatingCanvasTabsList: boolean = true;\r\n\tprivate componentName: string = \"canvas-tabs-list: \";\r\n\tpublic state: State = {\r\n\t\tskip: 0\r\n\t};\r\n\tpublic gridData: any;\r\n\r\n\tprivate currentSubscription: Subscription;\r\n\r\n\tconstructor(private dataService: DataService, public dialog: MatDialog, private router: Router, private toastr: ToastrService, private utilityService: UtilityService, private renderer: Renderer2, private zone: NgZone) {\r\n\t\tCanvasTabsListComponent.returned.subscribe((res) => {\r\n\t\t\tthis.getCanvasTabsListForUser();\r\n\t\t});\r\n\t\tthis.swalWithBootstrapButtons = swal.mixin({\r\n\t\t\tcustomClass: {\r\n\t\t\t\tconfirmButton: \"btn btn-danger\",\r\n\t\t\t\tcancelButton: \"btn btn-success\"\r\n\t\t\t},\r\n\t\t\tbuttonsStyling: false\r\n\t\t});\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.getCanvasTabsListForUser();\r\n\t}\r\n\r\n\tngAfterViewInit() {\r\n\t\tthis.currentSubscription = this.handleDragAndDrop();\r\n\t}\r\n\r\n\tpublic dataStateChange(state: State): void {\r\n\t\tthis.state = state;\r\n\t\tthis.gridData = process(this.canvasTabs, this.state);\r\n\t\tif (this.currentSubscription) {\r\n\t\t\tthis.currentSubscription.unsubscribe();\r\n\r\n\t\t}\r\n\t\tthis.zone.onStable.pipe(take(1)).subscribe(() => (this.currentSubscription = this.handleDragAndDrop()));\r\n\t}\r\n\r\n\tpublic rowCallback(context: RowClassArgs) {\r\n\t\treturn {\r\n\t\t\tdragging: context.dataItem.dragging\r\n\t\t};\r\n\t}\r\n\r\n\tprivate handleDragAndDrop(): Subscription {\r\n\t\tconst sub = new Subscription(() => { });\r\n\t\tlet draggedItemIndex;\r\n\r\n\t\tconst tableRows = Array.from(document.querySelectorAll(\".k-grid tr\"));\r\n\t\ttableRows.forEach((item) => {\r\n\t\t\tthis.renderer.setAttribute(item, \"draggable\", \"true\");\r\n\t\t\tconst dragStart = fromEvent(item, \"dragstart\");\r\n\t\t\tconst dragOver = fromEvent(item, \"dragover\");\r\n\t\t\tconst dragEnd = fromEvent(item, \"dragend\");\r\n\r\n\t\t\tsub.add(\r\n\t\t\t\tdragStart\r\n\t\t\t\t\t.pipe(\r\n\t\t\t\t\t\ttap(({ dataTransfer }) => {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tconst dragImgEl = document.createElement(\"span\");\r\n\t\t\t\t\t\t\t\tdragImgEl.setAttribute(\"style\", \"position: absolute; display: block; top: 0; left: 0; width: 0; height: 0;\");\r\n\t\t\t\t\t\t\t\tdocument.body.appendChild(dragImgEl);\r\n\t\t\t\t\t\t\t\tdataTransfer.setDragImage(dragImgEl, 0, 0);\r\n\t\t\t\t\t\t\t} catch (err) {\r\n\t\t\t\t\t\t\t\t// IE doesn't support setDragImage\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t// Firefox won't drag without setting data\r\n\t\t\t\t\t\t\t\tdataTransfer.setData(\"application/json\", \"\");\r\n\t\t\t\t\t\t\t} catch (err) {\r\n\t\t\t\t\t\t\t\t// IE doesn't support MIME types in setData\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.subscribe(({ target }) => {\r\n\t\t\t\t\t\tconst row: HTMLTableRowElement = target;\r\n\t\t\t\t\t\tdraggedItemIndex = row.rowIndex;\r\n\t\t\t\t\t\tconst dataItem = this.gridData.data[draggedItemIndex];\r\n\t\t\t\t\t\tdataItem.dragging = true;\r\n\t\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\t\tsub.add(\r\n\t\t\t\tdragOver.subscribe((e: any) => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tconst dataItem = this.gridData.data.splice(draggedItemIndex, 1)[0];\r\n\t\t\t\t\tconst dropIndex = closest(e.target, tableRow).rowIndex;\r\n\t\t\t\t\tconst dropItem = this.gridData.data[dropIndex];\r\n\r\n\t\t\t\t\tdraggedItemIndex = dropIndex;\r\n\t\t\t\t\tthis.zone.run(() => this.gridData.data.splice(dropIndex, 0, dataItem));\r\n\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\t\tsub.add(\r\n\t\t\t\tdragEnd.subscribe((e: any) => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tconst dataItem = this.gridData.data[draggedItemIndex];\r\n\t\t\t\t\tdataItem.dragging = false;\r\n\r\n\t\t\t\t\tlet tabRanking = 1;\r\n\t\t\t\t\tvar countOfCanvasTabs = 0;\r\n\t\t\t\t\tvar newCanvasTabList = null;\r\n\t\t\t\t\tthis.updatingCanvasTabsList = true;\r\n\t\t\t\t\tvar finishedWithUpdate = false;\r\n\t\t\t\t\tvar requestJSON: any = [];\r\n\t\t\t\t\tthis.gridData.data.forEach((d: any) => {\r\n\t\t\t\t\t\td.CanvasTemplateTabRanking = tabRanking;\r\n\t\t\t\t\t\ttabRanking++;\r\n\t\t\t\t\t\tvar sqlStatement = \"API.Canvas_UpdateCanvasTemplateRanking @CanvasTemplateId=\" + d.Id + \", @CanvasTemplateTabRanking=\" + d.CanvasTemplateTabRanking;\r\n\t\t\t\t\t\tvar canvasTabsSQLObject = {\r\n\t\t\t\t\t\t\tlabel: \"Canvas-\" + d.CanvasTemplateTabRanking,\r\n\t\t\t\t\t\t\tsqlStatement: sqlStatement\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\trequestJSON.push(canvasTabsSQLObject);\r\n\t\t\t\t\t\tcountOfCanvasTabs++;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"CanvasTab List drag-and-drop requestJSON = %O\", requestJSON);\r\n\t\t\t\t\tthis.dataService.SQLMultiAction(requestJSON).then((data: any) => {\r\n\t\t\t\t\t\tGlobal.User.DebugMode && console.log(this.componentName + \"SQLMultiAction for requestJSON = %O\", data);\r\n\t\t\t\t\t\tvar collections: any = data;\r\n\t\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\ttype: 'success',\r\n\t\t\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t\t\t'You have successfully re-ordered the canvas tabs for all users. ',\r\n\t\t\t\t\t\t\ttitle: 'Canvas Tabs',\r\n\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\tcollections.forEach((collection: any) => {\r\n\t\t\t\t\t\t\tif (collection.label == \"CanvasTabs-\" + countOfCanvasTabs) {\r\n\t\t\t\t\t\t\t\tnewCanvasTabList = collection.data; //-- get last update of the canvasTabs for the final list.\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\treturn sub;\r\n\t}\r\n\r\n\r\n\r\n\tgetCanvasTabsListForUser() {\r\n\t\tthis.canvasTabs = this.dataService.cache.canvasTemplates.filter((p: any) => {\r\n\t\t\treturn (\r\n\t\t\t\tp.CanvasTemplateTypeId == 1\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\tif(this.canvasTabs.length > 0){\r\n\t\t\tthis.canvasTabs.forEach((record) => {\r\n\t\t\t\tvar user = this.dataService.cache.people.filter((p: any) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\tp.UserId == record.CreatorUserId\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t\t\trecord.CreatorName = user[0].FullName;\r\n\t\t\t});\r\n\t\t}\r\n\t\t\tthis.canvasTabs.sort(\r\n\t\t\t\t(a, b) => a.CanvasTemplateTabRanking - b.CanvasTemplateTabRanking\r\n\t\t\t);\r\n\t\tthis.gridData = process(this.canvasTabs, this.state);\r\n\t}\r\n\r\n\tupdateMenuItem(canvasTabs: any) {\r\n\t\tGlobal.CurrentMenuItem = canvasTabs.Name;\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tif (this.currentSubscription) {\r\n\t\t\tthis.currentSubscription.unsubscribe();\r\n\r\n\t\t}\r\n\t}\r\n}\r\n","
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t

        Canvas Tabs By Ranking

        \r\n\t\t\t
        \r\n\t\t\t
        \r\n\r\n\t\t\t\t
        0\" class=\"table-responsive table-container\" >\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\r\n\t\t\t
        \r\n\t\t
        \r\n\t
        \r\n
        \r\n","import { Routes } from \"@angular/router\";\r\nimport { LoginComponent } from \"../user/login.component\";\r\nimport { LogoutComponent } from \"../user/logout.component\";\r\nimport { AuthenticationComponent } from \"../user/authentication/authentication.component\";\r\n\r\nimport { DashboardComponent } from \"../_layout/dashboard/dashboard.component\";\r\n// import { WidgetComponent } from '../_layout/dashboard/widget/widget.component';\r\nimport { RecipesComponent } from \"../_layout/advanced/recipes/recipes.component\";\r\n\r\nimport { LayoutComponent } from \"../_layout/layout.component\";\r\nimport { DashboardListComponent } from '../_layout/dashboard/dashboard-list/dashboard-list.component';\r\nimport { DashboardDemoComponent } from '../_layout/dashboard/dashboard-demo/dashboard-demo.component';\r\n\r\nimport { LocateAllGSEComponent } from '../_layout/advanced/maps/locate-all-gse/locate-all-gse.component';\r\n\r\nimport { IssuesComponent } from '../_layout/navbar/issues/issues.component';\r\nimport { ForgotPasswordComponent } from '../user/forgot-password/forgot-password.component';\r\n\r\nimport { AuthGuard } from '../user/authentication/authorization.guard';\r\nimport { RegistrationComponent } from '../user/registration/registration.component';\r\nimport { HomeComponent } from '../home/home.component';\r\nimport { CustomerReportsComponent } from '../_layout/advanced/customer-reports/customer-reports.component';\r\nimport { AdminReportsComponent } from '../_layout/advanced/admin-reports/admin-reports.component';\r\nimport { CustomerIssuesListComponent } from 'projects/shared-lib/src/lib/components/customer-issues-list/customer-issues-list.component';\r\nimport { SystemTablesComponent } from '../_layout/advanced/system-tables/system-tables.component';\r\nimport { RdnDestinationComponent } from '../_layout/advanced/system-tables/rdn-destination/rdn-destination.component';\r\nimport { GoToV1Component } from '../user/go-to-v1/go-to-v1.component';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { NinjaStatisticsComponent } from '../_layout/shared/widgets/ninja-statistics/ninja-statistics.component';\r\nimport { AssetSummaryViewComponent } from 'projects/shared-lib/src/lib/components/asset-summary-view/asset-summary-view.component';\r\nimport { PotdComponent } from 'projects/shared-lib/src/lib/_other-template-components/potd/potd.component';\r\nimport { DashboardEditComponent } from 'projects/shared-lib/src/lib/components/dashboard-edit/dashboard-edit.component';\r\nimport { TestObservationDelayComponent } from \"projects/shared-lib/src/lib/components/test-observation-delay/test-observation-delay.component\";\r\nimport { TrainingCoursesComponent } from 'projects/shared-lib/src/lib/components/training-courses/training-courses.component';\r\nimport { AssetSummaryParentComponent } from 'projects/shared-lib/src/lib/components/asset-summary-parent/asset-summary-parent.component';\r\nimport { PunchoutGuard } from 'projects/shared-lib/src/lib/guards/punchout.guard';\r\nimport { DialogEntryComponent } from 'projects/shared-lib/src/lib/components/dialog-entry/dialog-entry.component';\r\nimport { CustomerIssueGuard } from 'projects/shared-lib/src/lib/guards/customer-issue.guard';\r\nimport { ReleaseNotesComponent } from 'projects/shared-lib/src/lib/components/release-notes/release-notes.component';\r\nimport { DashboardAccessGuard } from \"projects/shared-lib/src/lib/guards/dashboard-access.guard\";\r\nimport { UserEngagementReportComponent } from \"projects/shared-lib/src/lib/components/user-engagement-report/user-engagement-report.component\";\r\nimport { CanvasComponent } from \"projects/shared-lib/src/public-api\";\r\nimport { CanvasDesignerComponent } from \"projects/shared-lib/src/lib/components/canvas-designer/canvas-designer.component\";\r\n\r\nimport { LogbookComponent } from \"projects/shared-lib/src/lib/components/logbook/logbook.component\";\r\nimport { CanvasTabsListComponent } from \"../../../../shared-lib/src/lib/components/canvas-tabs-list/canvas-tabs-list.component\";\r\n\r\nexport const detailedRoutes: Routes = [\r\n\t{\r\n\t\tpath: \"home\",\r\n\t\tcanActivate: [AuthGuard],\r\n\t\tcomponent: HomeComponent,\r\n\t},\r\n\t{\r\n\t\tpath: \"user\",\r\n\t\tchildren: [\r\n\t\t\t{ path: \"authentication\", component: AuthenticationComponent },\r\n\t\t\t{ path: \"login\", component: LoginComponent },\r\n\t\t\t{ path: \"logout\", component: LogoutComponent },\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tpath: \"forgot-password/:pwt\",\r\n\t\tcomponent: ForgotPasswordComponent,\r\n\t},\r\n\t{\r\n\t\tpath: \"registration\",\r\n\t\tcomponent: RegistrationComponent,\r\n\t},\r\n\t{\r\n\t\tpath: \"layout\",\r\n\t\tcanActivate: [AuthGuard],\r\n\t\tcomponent: LayoutComponent,\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"dashboard-demo\",\r\n\t\t\t\t\t\tcomponent: DashboardDemoComponent,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"dashboard-list\",\r\n\t\t\t\t\t\tcomponent: DashboardListComponent,\r\n\t\t\t\t\t\tchildren: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: \"dashboard-edit/:id\",\r\n\t\t\t\t\t\t\t\tcomponent: DashboardEditComponent,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"dashboard/:id\",\r\n\t\t\t\t\t\tcomponent: DashboardComponent,\r\n\t\t\t\t\t\tcanActivate: [DashboardAccessGuard],\r\n\r\n\t\t\t\t\t\t// children: [\r\n\t\t\t\t\t\t// { path: 'widget/:id', component: WidgetComponent }\r\n\t\t\t\t\t\t// ]\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t//-- do not delete this next one. This is for the Recipes. See the AngularJS version for details. --Kirk T. Sherer, April 21, 2020.\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"recipes\",\r\n\t\t\t\t\t\tcomponent: RecipesComponent,\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"potd\",\r\n\t\t\t\t\t\tcomponent: PotdComponent,\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"user-engagement-report\",\r\n\t\t\t\t\t\tcomponent: UserEngagementReportComponent,\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"trainingCourses\",\r\n\t\t\t\t\t\tcomponent: TrainingCoursesComponent,\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"testObs\",\r\n\t\t\t\t\t\tcomponent: TestObservationDelayComponent,\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"issues\",\r\n\t\t\t\t\t\tcomponent: CustomerIssuesListComponent,\r\n\t\t\t\t\t\tchildren: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: \":id\",\r\n\t\t\t\t\t\t\t\tcomponent: DialogEntryComponent,\r\n\t\t\t\t\t\t\t\tcanActivate: [CustomerIssueGuard],\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"logbook\",\r\n\t\t\t\t\t\tcomponent: LogbookComponent,\r\n\t\t\t\t\t\t// children: [\r\n\t\t\t\t\t\t// \t{\r\n\t\t\t\t\t\t// \t\tpath: \":id\",\r\n\t\t\t\t\t\t// \t\tcomponent: DialogEntryComponent,\r\n\t\t\t\t\t\t// \t\tcanActivate: [CustomerIssueGuard],\r\n\t\t\t\t\t\t// \t},\r\n\t\t\t\t\t\t// ],\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"releaseNotes\",\r\n\t\t\t\t\t\tcomponent: ReleaseNotesComponent,\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"tables\",\r\n\t\t\t\t\t\tcomponent: SystemTablesComponent,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"tables/:setName\",\r\n\t\t\t\t\t\tcomponent: RdnDestinationComponent,\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"adminReports\",\r\n\t\t\t\t\t\tcomponent: AdminReportsComponent,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"customerReports\",\r\n\t\t\t\t\t\tcomponent: CustomerReportsComponent,\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"userIssues\",\r\n\t\t\t\t\t\tcomponent: IssuesComponent,\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"ninjaProcessorData\",\r\n\t\t\t\t\t\tcomponent: NinjaStatisticsComponent,\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t//-- do not delete these next two. This is for the All Tags Graph and the All Tag updates. See the AngularJS version for what they do. --Kirk T. Sherer, April 21, 2020.\r\n\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"locateAllGSE/:id\",\r\n\t\t\t\t\t\tcomponent: LocateAllGSEComponent,\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"assets\",\r\n\t\t\t\t\t\tcomponent: AssetSummaryViewComponent,\r\n\t\t\t\t\t\tchildren: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: \":id\",\r\n\t\t\t\t\t\t\t\tcomponent: AssetSummaryParentComponent,\r\n\t\t\t\t\t\t\t\tcanActivate: [PunchoutGuard],\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"canvas-designer\",\r\n\t\t\t\t\t\tcomponent: CanvasDesignerComponent,\r\n\t\t\t\t\t\tchildren: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: \":id\",\r\n\t\t\t\t\t\t\t\tcomponent: CanvasComponent,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"canvas-tabs-list\",\r\n\t\t\t\t\t\tcomponent: CanvasTabsListComponent,\r\n\r\n\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\r\n\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tpath: \"go-to-v1\",\r\n\t\tcanActivate: [AuthGuard],\r\n\t\tcomponent: GoToV1Component,\r\n\t},\r\n\t{\r\n\t\tpath: \"\",\r\n\t\tredirectTo: \"user/authentication\",\r\n\t\tpathMatch: \"full\",\r\n\t},\r\n\t{\r\n\t\tpath: \"**\",\r\n\t\tredirectTo: \"user/authentication\",\r\n\t\tpathMatch: \"full\",\r\n\t},\r\n];\r\n","import { InjectionToken, NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { Routes, RouterModule, ActivatedRouteSnapshot } from \"@angular/router\";\r\n\r\nimport { detailedRoutes } from \"./_constants/detailed.routes\";\r\nconst externalUrlProvider = new InjectionToken('externalUrlRedirectResolver');\r\n// const routes: Routes = [\r\n// {\r\n// path: \"user\",\r\n// loadChildren: \"./user/user.module#UserModule\"\r\n// },\r\n// {\r\n// path: \"layout\",\r\n// loadChildren: \"./_layout/layout.module#LayoutModule\"\r\n// },\r\n// {\r\n// path: \"\",\r\n// redirectTo: \"authentication\",\r\n// pathMatch: \"full\"\r\n// }//,\r\n// // {\r\n// // path: \"**\",\r\n// // redirectTo: \"authentication\"\r\n// // }\r\n// ];\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tRouterModule.forRoot(detailedRoutes, {\r\n\t\t\tuseHash: true,\r\n\t\t\tscrollPositionRestoration: \"enabled\",\r\n\t\t\tanchorScrolling: \"enabled\",\r\n\t\t\tscrollOffset: [0, 64],\r\n\t\t\tenableTracing: false,\r\n\t\t}),\r\n\t],\r\n\texports: [RouterModule],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: externalUrlProvider,\r\n\t\t\tuseValue: (route: ActivatedRouteSnapshot) => {\r\n\r\n\t\t\t\tconst externalUrl = route.paramMap.get('externalUrl');\r\n\t\t\t\twindow.open(externalUrl, '_self');\r\n\t\t\t},\r\n\t\t},\r\n\t]\r\n})\r\nexport class AppRoutingModule {}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { LoginComponent } from \"./login.component\";\r\nimport { AuthenticationComponent } from \"./authentication/authentication.component\";\r\nimport { LogoutComponent } from \"./logout.component\";\r\nimport { ForgotPasswordComponent } from \"./forgot-password/forgot-password.component\";\r\nimport { RegistrationComponent } from './registration/registration.component';\r\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\r\nimport { PersonalInformationComponent } from './personal-information/personal-information.component';\r\nimport { GoToV1Component } from './go-to-v1/go-to-v1.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { DynamicFormModule } from \"../../../../shared-lib/src/lib/components/dynamic-form/dynamic-form.module\";\r\nimport { PersonalAlertEscalationComponent } from './personal-alert-escalation/personal-alert-escalation.component';\r\nimport { MaterialModule } from '../_other-modules/material.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n AuthenticationComponent,\r\n LoginComponent,\r\n LogoutComponent,\r\n ForgotPasswordComponent,\r\n RegistrationComponent,\r\n PersonalInformationComponent,\r\n GoToV1Component,\r\n\t\tPersonalAlertEscalationComponent,\r\n ],\r\n providers: [\r\n {\r\n provide: MatDialogRef,\r\n useValue: {},\r\n },\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n MatDialogModule,\r\n MatTooltipModule,\r\n DynamicFormModule,\r\n\t\tMaterialModule,\r\n ]\r\n})\r\nexport class UserModule {}\r\n","import * as i0 from '@angular/core';\nimport { Directive, Input, Injectable, Component, HostBinding, EventEmitter, Output, NgModule } from '@angular/core';\nimport { NgClass, NgFor, NgIf, CommonModule } from '@angular/common';\nconst _c0 = [\"*\"];\nconst _c1 = a0 => [\"nav-item\", a0];\nfunction TabsetComponent_li_1_span_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 7);\n i0.ɵɵlistener(\"click\", function TabsetComponent_li_1_span_4_Template_span_click_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const tabz_r4 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n $event.preventDefault();\n return i0.ɵɵresetView(ctx_r2.removeTab(tabz_r4));\n });\n i0.ɵɵtext(1, \" \\u274C\");\n i0.ɵɵelementEnd();\n }\n}\nfunction TabsetComponent_li_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 3);\n i0.ɵɵlistener(\"keydown\", function TabsetComponent_li_1_Template_li_keydown_0_listener($event) {\n const i_r2 = i0.ɵɵrestoreView(_r1).index;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.keyNavActions($event, i_r2));\n });\n i0.ɵɵelementStart(1, \"a\", 4);\n i0.ɵɵlistener(\"click\", function TabsetComponent_li_1_Template_a_click_1_listener() {\n const tabz_r4 = i0.ɵɵrestoreView(_r1).$implicit;\n return i0.ɵɵresetView(tabz_r4.active = true);\n });\n i0.ɵɵelementStart(2, \"span\", 5);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, TabsetComponent_li_1_span_4_Template, 2, 0, \"span\", 6);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const tabz_r4 = ctx.$implicit;\n i0.ɵɵclassProp(\"active\", tabz_r4.active)(\"disabled\", tabz_r4.disabled);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(15, _c1, tabz_r4.customClass || \"\"));\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"active\", tabz_r4.active)(\"disabled\", tabz_r4.disabled);\n i0.ɵɵattribute(\"aria-controls\", tabz_r4.id ? tabz_r4.id : \"\")(\"aria-selected\", !!tabz_r4.active)(\"id\", tabz_r4.id ? tabz_r4.id + \"-link\" : \"\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTransclude\", tabz_r4.headingRef);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(tabz_r4.heading);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", tabz_r4.removable);\n }\n}\nlet NgTranscludeDirective = /*#__PURE__*/(() => {\n class NgTranscludeDirective {\n set ngTransclude(templateRef) {\n this._ngTransclude = templateRef;\n if (templateRef) {\n this.viewRef.createEmbeddedView(templateRef);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get ngTransclude() {\n return this._ngTransclude;\n }\n constructor(viewRef) {\n this.viewRef = viewRef;\n }\n static {\n this.ɵfac = function NgTranscludeDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgTranscludeDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgTranscludeDirective,\n selectors: [[\"\", \"ngTransclude\", \"\"]],\n inputs: {\n ngTransclude: \"ngTransclude\"\n },\n standalone: true\n });\n }\n }\n return NgTranscludeDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TabsetConfig = /*#__PURE__*/(() => {\n class TabsetConfig {\n constructor() {\n /** provides default navigation context class: 'tabs' or 'pills' */\n this.type = 'tabs';\n /** provides possibility to set keyNavigations enable or disable, by default is enable */\n this.isKeysAllowed = true;\n /** aria label for tab list */\n this.ariaLabel = 'Tabs';\n }\n static {\n this.ɵfac = function TabsetConfig_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TabsetConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TabsetConfig,\n factory: TabsetConfig.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return TabsetConfig;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// todo: add active event to tab\n// todo: fix? mixing static and dynamic tabs position tabs in order of creation\nlet TabsetComponent = /*#__PURE__*/(() => {\n class TabsetComponent {\n /** if true tabs will be placed vertically */\n get vertical() {\n return this._vertical;\n }\n set vertical(value) {\n this._vertical = value;\n this.setClassMap();\n }\n /** if true tabs fill the container and have a consistent width */\n get justified() {\n return this._justified;\n }\n set justified(value) {\n this._justified = value;\n this.setClassMap();\n }\n /** navigation context class: 'tabs' or 'pills' */\n get type() {\n return this._type;\n }\n set type(value) {\n this._type = value;\n this.setClassMap();\n }\n get isKeysAllowed() {\n return this._isKeysAllowed;\n }\n set isKeysAllowed(value) {\n this._isKeysAllowed = value;\n }\n constructor(config, renderer, elementRef) {\n this.renderer = renderer;\n this.elementRef = elementRef;\n this.clazz = true;\n this.tabs = [];\n this.classMap = {};\n /** aria label for tab list */\n this.ariaLabel = 'Tabs';\n this.isDestroyed = false;\n this._vertical = false;\n this._justified = false;\n this._type = 'tabs';\n this._isKeysAllowed = true;\n Object.assign(this, config);\n }\n ngOnDestroy() {\n this.isDestroyed = true;\n }\n addTab(tab) {\n this.tabs.push(tab);\n tab.active = this.tabs.length === 1 && !tab.active;\n }\n removeTab(tab, options = {\n reselect: true,\n emit: true\n }) {\n const index = this.tabs.indexOf(tab);\n if (index === -1 || this.isDestroyed) {\n return;\n }\n // Select a new tab if the tab to be removed is selected and not destroyed\n if (options.reselect && tab.active && this.hasAvailableTabs(index)) {\n const newActiveIndex = this.getClosestTabIndex(index);\n this.tabs[newActiveIndex].active = true;\n }\n if (options.emit) {\n tab.removed.emit(tab);\n }\n this.tabs.splice(index, 1);\n if (tab.elementRef.nativeElement.parentNode) {\n this.renderer.removeChild(tab.elementRef.nativeElement.parentNode, tab.elementRef.nativeElement);\n }\n }\n keyNavActions(event, index) {\n if (!this.isKeysAllowed) {\n return;\n }\n const list = Array.from(this.elementRef.nativeElement.querySelectorAll('.nav-link'));\n // const activeElList = list.filter((el: HTMLElement) => !el.classList.contains('disabled'));\n if (event.keyCode === 13 || event.key === 'Enter' || event.keyCode === 32 || event.key === 'Space') {\n event.preventDefault();\n const currentTab = list[index % list.length];\n currentTab.click();\n return;\n }\n if (event.keyCode === 39 || event.key === 'RightArrow') {\n let nextTab;\n let shift = 1;\n do {\n nextTab = list[(index + shift) % list.length];\n shift++;\n } while (nextTab.classList.contains('disabled'));\n nextTab.focus();\n return;\n }\n if (event.keyCode === 37 || event.key === 'LeftArrow') {\n let previousTab;\n let shift = 1;\n let i = index;\n do {\n if (i - shift < 0) {\n i = list.length - 1;\n previousTab = list[i];\n shift = 0;\n } else {\n previousTab = list[i - shift];\n }\n shift++;\n } while (previousTab.classList.contains('disabled'));\n previousTab.focus();\n return;\n }\n if (event.keyCode === 36 || event.key === 'Home') {\n event.preventDefault();\n let firstTab;\n let shift = 0;\n do {\n firstTab = list[shift % list.length];\n shift++;\n } while (firstTab.classList.contains('disabled'));\n firstTab.focus();\n return;\n }\n if (event.keyCode === 35 || event.key === 'End') {\n event.preventDefault();\n let lastTab;\n let shift = 1;\n let i = index;\n do {\n if (i - shift < 0) {\n i = list.length - 1;\n lastTab = list[i];\n shift = 0;\n } else {\n lastTab = list[i - shift];\n }\n shift++;\n } while (lastTab.classList.contains('disabled'));\n lastTab.focus();\n return;\n }\n if (event.keyCode === 46 || event.key === 'Delete') {\n if (this.tabs[index].removable) {\n this.removeTab(this.tabs[index]);\n if (list[index + 1]) {\n list[(index + 1) % list.length].focus();\n return;\n }\n if (list[list.length - 1]) {\n list[0].focus();\n }\n }\n }\n }\n getClosestTabIndex(index) {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return -1;\n }\n for (let step = 1; step <= tabsLength; step += 1) {\n const prevIndex = index - step;\n const nextIndex = index + step;\n if (this.tabs[prevIndex] && !this.tabs[prevIndex].disabled) {\n return prevIndex;\n }\n if (this.tabs[nextIndex] && !this.tabs[nextIndex].disabled) {\n return nextIndex;\n }\n }\n return -1;\n }\n hasAvailableTabs(index) {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return false;\n }\n for (let i = 0; i < tabsLength; i += 1) {\n if (!this.tabs[i].disabled && i !== index) {\n return true;\n }\n }\n return false;\n }\n setClassMap() {\n this.classMap = {\n 'nav-stacked': this.vertical,\n 'flex-column': this.vertical,\n 'nav-justified': this.justified,\n [`nav-${this.type}`]: true\n };\n }\n static {\n this.ɵfac = function TabsetComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TabsetComponent)(i0.ɵɵdirectiveInject(TabsetConfig), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TabsetComponent,\n selectors: [[\"tabset\"]],\n hostVars: 2,\n hostBindings: function TabsetComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"tab-container\", ctx.clazz);\n }\n },\n inputs: {\n vertical: \"vertical\",\n justified: \"justified\",\n type: \"type\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 4,\n vars: 3,\n consts: [[\"role\", \"tablist\", 1, \"nav\", 3, \"click\", \"ngClass\"], [3, \"ngClass\", \"active\", \"disabled\", \"keydown\", 4, \"ngFor\", \"ngForOf\"], [1, \"tab-content\"], [3, \"keydown\", \"ngClass\"], [\"href\", \"javascript:void(0);\", \"role\", \"tab\", 1, \"nav-link\", 3, \"click\"], [3, \"ngTransclude\"], [\"class\", \"bs-remove-tab\", 3, \"click\", 4, \"ngIf\"], [1, \"bs-remove-tab\", 3, \"click\"]],\n template: function TabsetComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"ul\", 0);\n i0.ɵɵlistener(\"click\", function TabsetComponent_Template_ul_click_0_listener($event) {\n return $event.preventDefault();\n });\n i0.ɵɵtemplate(1, TabsetComponent_li_1_Template, 5, 17, \"li\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"div\", 2);\n i0.ɵɵprojection(3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngClass\", ctx.classMap);\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.tabs);\n }\n },\n dependencies: [NgClass, NgFor, NgTranscludeDirective, NgIf],\n styles: [\"[_nghost-%COMP%] .nav-tabs[_ngcontent-%COMP%] .nav-item.disabled[_ngcontent-%COMP%] a.disabled[_ngcontent-%COMP%]{cursor:default}\"]\n });\n }\n }\n return TabsetComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TabDirective = /*#__PURE__*/(() => {\n class TabDirective {\n /** if set, will be added to the tab's class attribute. Multiple classes are supported. */\n get customClass() {\n return this._customClass;\n }\n set customClass(customClass) {\n if (this.customClass) {\n this.customClass.split(' ').forEach(cssClass => {\n this.renderer.removeClass(this.elementRef.nativeElement, cssClass);\n });\n }\n this._customClass = customClass ? customClass.trim() : '';\n if (this.customClass) {\n this.customClass.split(' ').forEach(cssClass => {\n this.renderer.addClass(this.elementRef.nativeElement, cssClass);\n });\n }\n }\n /** tab active state toggle */\n get active() {\n return this._active;\n }\n set active(active) {\n if (this._active === active) {\n return;\n }\n if (this.disabled && active || !active) {\n if (this._active && !active) {\n this.deselect.emit(this);\n this._active = active;\n }\n return;\n }\n this._active = active;\n this.selectTab.emit(this);\n this.tabset.tabs.forEach(tab => {\n if (tab !== this) {\n tab.active = false;\n }\n });\n }\n get ariaLabelledby() {\n return this.id ? `${this.id}-link` : '';\n }\n constructor(tabset, elementRef, renderer) {\n this.elementRef = elementRef;\n this.renderer = renderer;\n /** if true tab can not be activated */\n this.disabled = false;\n /** if true tab can be removable, additional button will appear */\n this.removable = false;\n /** fired when tab became active, $event:Tab equals to selected instance of Tab component */\n this.selectTab = new EventEmitter();\n /** fired when tab became inactive, $event:Tab equals to deselected instance of Tab component */\n this.deselect = new EventEmitter();\n /** fired before tab will be removed, $event:Tab equals to instance of removed tab */\n this.removed = new EventEmitter();\n this.addClass = true;\n this.role = 'tabpanel';\n this._active = false;\n this._customClass = '';\n this.tabset = tabset;\n this.tabset.addTab(this);\n }\n ngOnInit() {\n this.removable = !!this.removable;\n }\n ngOnDestroy() {\n this.tabset.removeTab(this, {\n reselect: false,\n emit: false\n });\n }\n static {\n this.ɵfac = function TabDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TabDirective)(i0.ɵɵdirectiveInject(TabsetComponent), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TabDirective,\n selectors: [[\"tab\"], [\"\", \"tab\", \"\"]],\n hostVars: 7,\n hostBindings: function TabDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id)(\"role\", ctx.role)(\"aria-labelledby\", ctx.ariaLabelledby);\n i0.ɵɵclassProp(\"active\", ctx.active)(\"tab-pane\", ctx.addClass);\n }\n },\n inputs: {\n heading: \"heading\",\n id: \"id\",\n disabled: \"disabled\",\n removable: \"removable\",\n customClass: \"customClass\",\n active: \"active\"\n },\n outputs: {\n selectTab: \"selectTab\",\n deselect: \"deselect\",\n removed: \"removed\"\n },\n exportAs: [\"tab\"],\n standalone: true\n });\n }\n }\n return TabDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Should be used to mark element as a template for tab heading */\nlet TabHeadingDirective = /*#__PURE__*/(() => {\n class TabHeadingDirective {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(templateRef, tab) {\n tab.headingRef = templateRef;\n }\n static {\n this.ɵfac = function TabHeadingDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TabHeadingDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(TabDirective));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TabHeadingDirective,\n selectors: [[\"\", \"tabHeading\", \"\"]],\n standalone: true\n });\n }\n }\n return TabHeadingDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TabsModule = /*#__PURE__*/(() => {\n class TabsModule {\n // @deprecated method not required anymore, will be deleted in v19.0.0\n static forRoot() {\n return {\n ngModule: TabsModule,\n providers: []\n };\n }\n static {\n this.ɵfac = function TabsModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TabsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TabsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n }\n return TabsModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { NgTranscludeDirective, TabDirective, TabHeadingDirective, TabsModule, TabsetComponent, TabsetConfig };\n","import * as i0 from '@angular/core';\nimport { Injectable, forwardRef, EventEmitter, Component, Input, Output, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgClass, NgIf, NgTemplateOutlet, NgFor, CommonModule } from '@angular/common';\n\n// todo: split\n/** Provides default values for Pagination and pager components */\nconst _c0 = (a0, a1) => ({\n \"pull-left\": a0,\n \"float-left\": a1\n});\nconst _c1 = (a0, a1) => ({\n \"pull-right\": a0,\n \"float-right\": a1\n});\nconst _c2 = (a0, a1) => ({\n disabled: a0,\n currentPage: a1\n});\nconst _c3 = (a0, a1, a2) => ({\n disabled: a0,\n $implicit: a1,\n currentPage: a2\n});\nfunction PaginationComponent_li_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 11)(1, \"a\", 12);\n i0.ɵɵlistener(\"click\", function PaginationComponent_li_1_Template_a_click_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.selectPage(1, $event));\n });\n i0.ɵɵelementContainer(2, 13);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n const defaultFirstTemplate_r3 = i0.ɵɵreference(13);\n i0.ɵɵclassProp(\"disabled\", ctx_r1.noPrevious() || ctx_r1.disabled);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.customFirstTemplate || defaultFirstTemplate_r3)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(4, _c2, ctx_r1.noPrevious() || ctx_r1.disabled, ctx_r1.page));\n }\n}\nfunction PaginationComponent_li_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 14)(1, \"a\", 12);\n i0.ɵɵlistener(\"click\", function PaginationComponent_li_2_Template_a_click_1_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.selectPage(ctx_r1.page - 1, $event));\n });\n i0.ɵɵelementContainer(2, 13);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n const defaultPreviousTemplate_r5 = i0.ɵɵreference(11);\n i0.ɵɵclassProp(\"disabled\", ctx_r1.noPrevious() || ctx_r1.disabled);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.customPreviousTemplate || defaultPreviousTemplate_r5)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(4, _c2, ctx_r1.noPrevious() || ctx_r1.disabled, ctx_r1.page));\n }\n}\nfunction PaginationComponent_li_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 15)(1, \"a\", 12);\n i0.ɵɵlistener(\"click\", function PaginationComponent_li_3_Template_a_click_1_listener($event) {\n const pg_r7 = i0.ɵɵrestoreView(_r6).$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.selectPage(pg_r7.number, $event));\n });\n i0.ɵɵelementContainer(2, 13);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const pg_r7 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n const defaultPageTemplate_r8 = i0.ɵɵreference(7);\n i0.ɵɵclassProp(\"active\", pg_r7.active)(\"disabled\", ctx_r1.disabled && !pg_r7.active);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.customPageTemplate || defaultPageTemplate_r8)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction3(6, _c3, ctx_r1.disabled, pg_r7, ctx_r1.page));\n }\n}\nfunction PaginationComponent_li_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 16)(1, \"a\", 12);\n i0.ɵɵlistener(\"click\", function PaginationComponent_li_4_Template_a_click_1_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.selectPage(ctx_r1.page + 1, $event));\n });\n i0.ɵɵelementContainer(2, 13);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n const defaultNextTemplate_r10 = i0.ɵɵreference(9);\n i0.ɵɵclassProp(\"disabled\", ctx_r1.noNext() || ctx_r1.disabled);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.customNextTemplate || defaultNextTemplate_r10)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(4, _c2, ctx_r1.noNext() || ctx_r1.disabled, ctx_r1.page));\n }\n}\nfunction PaginationComponent_li_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r11 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 17)(1, \"a\", 12);\n i0.ɵɵlistener(\"click\", function PaginationComponent_li_5_Template_a_click_1_listener($event) {\n i0.ɵɵrestoreView(_r11);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.selectPage(ctx_r1.totalPages, $event));\n });\n i0.ɵɵelementContainer(2, 13);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n const defaultLastTemplate_r12 = i0.ɵɵreference(15);\n i0.ɵɵclassProp(\"disabled\", ctx_r1.noNext() || ctx_r1.disabled);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.customLastTemplate || defaultLastTemplate_r12)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(4, _c2, ctx_r1.noNext() || ctx_r1.disabled, ctx_r1.page));\n }\n}\nfunction PaginationComponent_ng_template_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const page_r13 = ctx.$implicit;\n i0.ɵɵtextInterpolate(page_r13.text);\n }\n}\nfunction PaginationComponent_ng_template_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtextInterpolate(ctx_r1.getText(\"next\"));\n }\n}\nfunction PaginationComponent_ng_template_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtextInterpolate(ctx_r1.getText(\"previous\"));\n }\n}\nfunction PaginationComponent_ng_template_12_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtextInterpolate(ctx_r1.getText(\"first\"));\n }\n}\nfunction PaginationComponent_ng_template_14_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtextInterpolate(ctx_r1.getText(\"last\"));\n }\n}\nlet PaginationConfig = /*#__PURE__*/(() => {\n class PaginationConfig {\n constructor() {\n this.main = {\n itemsPerPage: 10,\n boundaryLinks: false,\n directionLinks: true,\n firstText: 'First',\n previousText: 'Previous',\n nextText: 'Next',\n lastText: 'Last',\n pageBtnClass: '',\n rotate: true\n };\n this.pager = {\n itemsPerPage: 15,\n previousText: '« Previous',\n nextText: 'Next »',\n pageBtnClass: '',\n align: true\n };\n }\n static {\n this.ɵfac = function PaginationConfig_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PaginationConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PaginationConfig,\n factory: PaginationConfig.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return PaginationConfig;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst PAGER_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PagerComponent),\n multi: true\n};\nlet PagerComponent = /*#__PURE__*/(() => {\n class PagerComponent {\n constructor(elementRef, paginationConfig, changeDetection) {\n this.elementRef = elementRef;\n this.changeDetection = changeDetection;\n /** if `true` aligns each link to the sides of pager */\n this.align = false;\n /** if false first and last buttons will be hidden */\n this.boundaryLinks = false;\n /** if false previous and next buttons will be hidden */\n this.directionLinks = true;\n // labels\n /** first button text */\n this.firstText = 'First';\n /** previous button text */\n this.previousText = '« Previous';\n /** next button text */\n this.nextText = 'Next »';\n /** last button text */\n this.lastText = 'Last';\n /** if true current page will in the middle of pages list */\n this.rotate = true;\n // css\n /** add class to */\n this.pageBtnClass = '';\n /** if true pagination component will be disabled */\n this.disabled = false;\n /** fired when total pages count changes, $event:number equals to total pages count */\n this.numPages = new EventEmitter();\n /** fired when page was changed, $event:{page, itemsPerPage} equals to\n * object with current page index and number of items per page\n */\n this.pageChanged = new EventEmitter();\n this.onChange = Function.prototype;\n this.onTouched = Function.prototype;\n this.classMap = '';\n this.inited = false;\n this._itemsPerPage = 15;\n this._totalItems = 0;\n this._totalPages = 0;\n this._page = 1;\n this.elementRef = elementRef;\n if (!this.config) {\n this.configureOptions(Object.assign({}, paginationConfig.main, paginationConfig.pager));\n }\n }\n /** maximum number of items per page. If value less than 1 will display all items on one page */\n get itemsPerPage() {\n return this._itemsPerPage;\n }\n set itemsPerPage(v) {\n this._itemsPerPage = v;\n this.totalPages = this.calculateTotalPages();\n }\n /** total number of items in all pages */\n get totalItems() {\n return this._totalItems;\n }\n set totalItems(v) {\n this._totalItems = v;\n this.totalPages = this.calculateTotalPages();\n }\n get totalPages() {\n return this._totalPages;\n }\n set totalPages(v) {\n this._totalPages = v;\n this.numPages.emit(v);\n if (this.inited) {\n this.selectPage(this.page);\n }\n }\n get page() {\n return this._page;\n }\n set page(value) {\n const _previous = this._page;\n this._page = value > this.totalPages ? this.totalPages : value || 1;\n this.changeDetection.markForCheck();\n if (_previous === this._page || typeof _previous === 'undefined') {\n return;\n }\n this.pageChanged.emit({\n page: this._page,\n itemsPerPage: this.itemsPerPage\n });\n }\n configureOptions(config) {\n this.config = Object.assign({}, config);\n }\n ngOnInit() {\n if (typeof window !== 'undefined') {\n this.classMap = this.elementRef.nativeElement.getAttribute('class') || '';\n }\n // watch for maxSize\n if (typeof this.maxSize === 'undefined') {\n this.maxSize = this.config?.maxSize || 0;\n }\n if (typeof this.rotate === 'undefined') {\n this.rotate = !!this.config?.rotate;\n }\n if (typeof this.boundaryLinks === 'undefined') {\n this.boundaryLinks = !!this.config?.boundaryLinks;\n }\n if (typeof this.directionLinks === 'undefined') {\n this.directionLinks = !!this.config?.directionLinks;\n }\n if (typeof this.pageBtnClass === 'undefined') {\n this.pageBtnClass = this.config?.pageBtnClass || '';\n }\n // base class\n if (typeof this.itemsPerPage === 'undefined') {\n this.itemsPerPage = this.config?.itemsPerPage || 0;\n }\n this.totalPages = this.calculateTotalPages();\n // this class\n this.pages = this.getPages(this.page, this.totalPages);\n this.inited = true;\n }\n writeValue(value) {\n this.page = value;\n this.pages = this.getPages(this.page, this.totalPages);\n }\n getText(key) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this[`${key}Text`] || this.config[`${key}Text`];\n }\n noPrevious() {\n return this.page === 1;\n }\n noNext() {\n return this.page === this.totalPages;\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n selectPage(page, event) {\n if (event) {\n event.preventDefault();\n }\n if (!this.disabled) {\n if (event && event.target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const target = event.target;\n target.blur();\n }\n this.writeValue(page);\n this.onChange(this.page);\n }\n }\n // Create page object used in template\n makePage(num, text, active) {\n return {\n text,\n number: num,\n active\n };\n }\n getPages(currentPage, totalPages) {\n const pages = [];\n // Default page limits\n let startPage = 1;\n let endPage = totalPages;\n const isMaxSized = typeof this.maxSize !== 'undefined' && this.maxSize < totalPages;\n // recompute if maxSize\n if (isMaxSized && this.maxSize) {\n if (this.rotate) {\n // Current page is displayed in the middle of the visible ones\n startPage = Math.max(currentPage - Math.floor(this.maxSize / 2), 1);\n endPage = startPage + this.maxSize - 1;\n // Adjust if limit is exceeded\n if (endPage > totalPages) {\n endPage = totalPages;\n startPage = endPage - this.maxSize + 1;\n }\n } else {\n // Visible pages are paginated with maxSize\n startPage = (Math.ceil(currentPage / this.maxSize) - 1) * this.maxSize + 1;\n // Adjust last page if limit is exceeded\n endPage = Math.min(startPage + this.maxSize - 1, totalPages);\n }\n }\n // Add page number links\n for (let num = startPage; num <= endPage; num++) {\n const page = this.makePage(num, num.toString(), num === currentPage);\n pages.push(page);\n }\n // Add links to move between page sets\n if (isMaxSized && !this.rotate) {\n if (startPage > 1) {\n const previousPageSet = this.makePage(startPage - 1, '...', false);\n pages.unshift(previousPageSet);\n }\n if (endPage < totalPages) {\n const nextPageSet = this.makePage(endPage + 1, '...', false);\n pages.push(nextPageSet);\n }\n }\n return pages;\n }\n // base class\n calculateTotalPages() {\n const totalPages = this.itemsPerPage < 1 ? 1 : Math.ceil(this.totalItems / this.itemsPerPage);\n return Math.max(totalPages || 0, 1);\n }\n static {\n this.ɵfac = function PagerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(PaginationConfig), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerComponent,\n selectors: [[\"pager\"]],\n inputs: {\n align: \"align\",\n maxSize: \"maxSize\",\n boundaryLinks: \"boundaryLinks\",\n directionLinks: \"directionLinks\",\n firstText: \"firstText\",\n previousText: \"previousText\",\n nextText: \"nextText\",\n lastText: \"lastText\",\n rotate: \"rotate\",\n pageBtnClass: \"pageBtnClass\",\n disabled: \"disabled\",\n itemsPerPage: \"itemsPerPage\",\n totalItems: \"totalItems\"\n },\n outputs: {\n numPages: \"numPages\",\n pageChanged: \"pageChanged\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([PAGER_CONTROL_VALUE_ACCESSOR]), i0.ɵɵStandaloneFeature],\n decls: 7,\n vars: 24,\n consts: [[1, \"pager\"], [3, \"ngClass\"], [\"href\", \"\", 3, \"click\"]],\n template: function PagerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ul\", 0)(1, \"li\", 1)(2, \"a\", 2);\n i0.ɵɵlistener(\"click\", function PagerComponent_Template_a_click_2_listener($event) {\n return ctx.selectPage(ctx.page - 1, $event);\n });\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(4, \"li\", 1)(5, \"a\", 2);\n i0.ɵɵlistener(\"click\", function PagerComponent_Template_a_click_5_listener($event) {\n return ctx.selectPage(ctx.page + 1, $event);\n });\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵclassMap(ctx.pageBtnClass);\n i0.ɵɵclassProp(\"disabled\", ctx.noPrevious())(\"previous\", ctx.align);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(18, _c0, ctx.align, ctx.align));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx.getText(\"previous\"));\n i0.ɵɵadvance();\n i0.ɵɵclassMap(ctx.pageBtnClass);\n i0.ɵɵclassProp(\"disabled\", ctx.noNext())(\"next\", ctx.align);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(21, _c1, ctx.align, ctx.align));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx.getText(\"next\"));\n }\n },\n dependencies: [NgClass],\n encapsulation: 2\n });\n }\n }\n return PagerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst PAGINATION_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PaginationComponent),\n multi: true\n};\nlet PaginationComponent = /*#__PURE__*/(() => {\n class PaginationComponent {\n constructor(elementRef, paginationConfig, changeDetection) {\n this.elementRef = elementRef;\n this.changeDetection = changeDetection;\n /** if `true` aligns each link to the sides of pager */\n this.align = true;\n /** if false first and last buttons will be hidden */\n this.boundaryLinks = false;\n /** if false previous and next buttons will be hidden */\n this.directionLinks = true;\n /** if true current page will in the middle of pages list */\n this.rotate = true;\n // css\n /** add class to */\n this.pageBtnClass = '';\n /** if true pagination component will be disabled */\n this.disabled = false;\n /** fired when total pages count changes, $event:number equals to total pages count */\n this.numPages = new EventEmitter();\n /** fired when page was changed, $event:{page, itemsPerPage} equals to object\n * with current page index and number of items per page\n */\n this.pageChanged = new EventEmitter();\n this.onChange = Function.prototype;\n this.onTouched = Function.prototype;\n this.classMap = '';\n this.inited = false;\n this._itemsPerPage = 10;\n this._totalItems = 0;\n this._totalPages = 0;\n this._page = 1;\n this.elementRef = elementRef;\n if (!this.config) {\n this.configureOptions(paginationConfig.main);\n }\n }\n /** maximum number of items per page. If value less than 1 will display all items on one page */\n get itemsPerPage() {\n return this._itemsPerPage;\n }\n set itemsPerPage(v) {\n this._itemsPerPage = v;\n this.totalPages = this.calculateTotalPages();\n }\n /** total number of items in all pages */\n get totalItems() {\n return this._totalItems;\n }\n set totalItems(v) {\n this._totalItems = v;\n this.totalPages = this.calculateTotalPages();\n }\n get totalPages() {\n return this._totalPages;\n }\n set totalPages(v) {\n this._totalPages = v;\n this.numPages.emit(v);\n if (this.inited) {\n this.selectPage(this.page);\n }\n }\n get page() {\n return this._page;\n }\n set page(value) {\n const _previous = this._page;\n this._page = value > this.totalPages ? this.totalPages : value || 1;\n this.changeDetection.markForCheck();\n if (_previous === this._page || typeof _previous === 'undefined') {\n return;\n }\n this.pageChanged.emit({\n page: this._page,\n itemsPerPage: this.itemsPerPage\n });\n }\n configureOptions(config) {\n this.config = Object.assign({}, config);\n }\n ngOnInit() {\n if (typeof window !== 'undefined') {\n this.classMap = this.elementRef.nativeElement.getAttribute('class') || '';\n }\n // watch for maxSize\n if (typeof this.maxSize === 'undefined') {\n this.maxSize = this.config?.maxSize || 0;\n }\n if (typeof this.rotate === 'undefined') {\n this.rotate = !!this.config?.rotate;\n }\n if (typeof this.boundaryLinks === 'undefined') {\n this.boundaryLinks = !!this.config?.boundaryLinks;\n }\n if (typeof this.directionLinks === 'undefined') {\n this.directionLinks = !!this.config?.directionLinks;\n }\n if (typeof this.pageBtnClass === 'undefined') {\n this.pageBtnClass = this.config?.pageBtnClass || '';\n }\n // base class\n if (typeof this.itemsPerPage === 'undefined') {\n this.itemsPerPage = this.config?.itemsPerPage || 0;\n }\n this.totalPages = this.calculateTotalPages();\n // this class\n this.pages = this.getPages(this.page, this.totalPages);\n this.inited = true;\n }\n writeValue(value) {\n this.page = value;\n this.pages = this.getPages(this.page, this.totalPages);\n }\n getText(key) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this[`${key}Text`] || this.config[`${key}Text`];\n }\n noPrevious() {\n return this.page === 1;\n }\n noNext() {\n return this.page === this.totalPages;\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n selectPage(page, event) {\n if (event) {\n event.preventDefault();\n }\n if (!this.disabled) {\n if (event && event.target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const target = event.target;\n target.blur();\n }\n this.writeValue(page);\n this.onChange(this.page);\n }\n }\n // Create page object used in template\n makePage(num, text, active) {\n return {\n text,\n number: num,\n active\n };\n }\n getPages(currentPage, totalPages) {\n const pages = [];\n // Default page limits\n let startPage = 1;\n let endPage = totalPages;\n const isMaxSized = typeof this.maxSize !== 'undefined' && this.maxSize < totalPages;\n // recompute if maxSize\n if (isMaxSized && this.maxSize) {\n if (this.rotate) {\n // Current page is displayed in the middle of the visible ones\n startPage = Math.max(currentPage - Math.floor(this.maxSize / 2), 1);\n endPage = startPage + this.maxSize - 1;\n // Adjust if limit is exceeded\n if (endPage > totalPages) {\n endPage = totalPages;\n startPage = endPage - this.maxSize + 1;\n }\n } else {\n // Visible pages are paginated with maxSize\n startPage = (Math.ceil(currentPage / this.maxSize) - 1) * this.maxSize + 1;\n // Adjust last page if limit is exceeded\n endPage = Math.min(startPage + this.maxSize - 1, totalPages);\n }\n }\n // Add page number links\n for (let num = startPage; num <= endPage; num++) {\n const page = this.makePage(num, num.toString(), num === currentPage);\n pages.push(page);\n }\n // Add links to move between page sets\n if (isMaxSized && !this.rotate) {\n if (startPage > 1) {\n const previousPageSet = this.makePage(startPage - 1, '...', false);\n pages.unshift(previousPageSet);\n }\n if (endPage < totalPages) {\n const nextPageSet = this.makePage(endPage + 1, '...', false);\n pages.push(nextPageSet);\n }\n }\n return pages;\n }\n // base class\n calculateTotalPages() {\n const totalPages = this.itemsPerPage < 1 ? 1 : Math.ceil(this.totalItems / this.itemsPerPage);\n return Math.max(totalPages || 0, 1);\n }\n static {\n this.ɵfac = function PaginationComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PaginationComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(PaginationConfig), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PaginationComponent,\n selectors: [[\"pagination\"]],\n inputs: {\n align: \"align\",\n maxSize: \"maxSize\",\n boundaryLinks: \"boundaryLinks\",\n directionLinks: \"directionLinks\",\n firstText: \"firstText\",\n previousText: \"previousText\",\n nextText: \"nextText\",\n lastText: \"lastText\",\n rotate: \"rotate\",\n pageBtnClass: \"pageBtnClass\",\n disabled: \"disabled\",\n customPageTemplate: \"customPageTemplate\",\n customNextTemplate: \"customNextTemplate\",\n customPreviousTemplate: \"customPreviousTemplate\",\n customFirstTemplate: \"customFirstTemplate\",\n customLastTemplate: \"customLastTemplate\",\n itemsPerPage: \"itemsPerPage\",\n totalItems: \"totalItems\"\n },\n outputs: {\n numPages: \"numPages\",\n pageChanged: \"pageChanged\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([PAGINATION_CONTROL_VALUE_ACCESSOR]), i0.ɵɵStandaloneFeature],\n decls: 16,\n vars: 6,\n consts: [[\"defaultPageTemplate\", \"\"], [\"defaultNextTemplate\", \"\"], [\"defaultPreviousTemplate\", \"\"], [\"defaultFirstTemplate\", \"\"], [\"defaultLastTemplate\", \"\"], [1, \"pagination\", 3, \"ngClass\"], [\"class\", \"pagination-first page-item\", 3, \"disabled\", 4, \"ngIf\"], [\"class\", \"pagination-prev page-item\", 3, \"disabled\", 4, \"ngIf\"], [\"class\", \"pagination-page page-item\", 3, \"active\", \"disabled\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"pagination-next page-item\", 3, \"disabled\", 4, \"ngIf\"], [\"class\", \"pagination-last page-item\", 3, \"disabled\", 4, \"ngIf\"], [1, \"pagination-first\", \"page-item\"], [\"href\", \"\", 1, \"page-link\", 3, \"click\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"pagination-prev\", \"page-item\"], [1, \"pagination-page\", \"page-item\"], [1, \"pagination-next\", \"page-item\"], [1, \"pagination-last\", \"page-item\"]],\n template: function PaginationComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ul\", 5);\n i0.ɵɵtemplate(1, PaginationComponent_li_1_Template, 3, 7, \"li\", 6)(2, PaginationComponent_li_2_Template, 3, 7, \"li\", 7)(3, PaginationComponent_li_3_Template, 3, 10, \"li\", 8)(4, PaginationComponent_li_4_Template, 3, 7, \"li\", 9)(5, PaginationComponent_li_5_Template, 3, 7, \"li\", 10);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, PaginationComponent_ng_template_6_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor)(8, PaginationComponent_ng_template_8_Template, 1, 1, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor)(10, PaginationComponent_ng_template_10_Template, 1, 1, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor)(12, PaginationComponent_ng_template_12_Template, 1, 1, \"ng-template\", null, 3, i0.ɵɵtemplateRefExtractor)(14, PaginationComponent_ng_template_14_Template, 1, 1, \"ng-template\", null, 4, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngClass\", ctx.classMap);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.boundaryLinks);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.directionLinks);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.pages);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.directionLinks);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.boundaryLinks);\n }\n },\n dependencies: [NgClass, NgIf, NgTemplateOutlet, NgFor],\n encapsulation: 2\n });\n }\n }\n return PaginationComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PaginationModule = /*#__PURE__*/(() => {\n class PaginationModule {\n // @deprecated method not required anymore, will be deleted in v19.0.0\n static forRoot() {\n return {\n ngModule: PaginationModule,\n providers: []\n };\n }\n static {\n this.ɵfac = function PaginationModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PaginationModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: PaginationModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n }\n return PaginationModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { PagerComponent, PaginationComponent, PaginationConfig, PaginationModule };\n","import { __decorate, __metadata } from 'tslib';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, Component, ChangeDetectionStrategy, Input, Output, NgModule } from '@angular/core';\nimport { OnChange } from 'ngx-bootstrap/utils';\nimport { NgIf, NgClass } from '@angular/common';\nconst _c0 = [\"*\"];\nfunction AlertComponent_ng_template_0_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 2);\n i0.ɵɵlistener(\"click\", function AlertComponent_ng_template_0_ng_template_1_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.close());\n });\n i0.ɵɵelementStart(1, \"span\", 3);\n i0.ɵɵtext(2, \"\\xD7\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"span\", 4);\n i0.ɵɵtext(4, \"Close\");\n i0.ɵɵelementEnd()();\n }\n}\nfunction AlertComponent_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵtemplate(1, AlertComponent_ng_template_0_ng_template_1_Template, 5, 0, \"ng-template\", 0);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(\"alert alert-\" + ctx_r1.type);\n i0.ɵɵproperty(\"ngClass\", ctx_r1.classes);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.dismissible);\n }\n}\nlet AlertConfig = /*#__PURE__*/(() => {\n class AlertConfig {\n constructor() {\n /** default alert type */\n this.type = 'warning';\n /** is alerts are dismissible by default */\n this.dismissible = false;\n /** default time before alert will dismiss */\n this.dismissOnTimeout = undefined;\n }\n static {\n this.ɵfac = function AlertConfig_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AlertConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AlertConfig,\n factory: AlertConfig.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return AlertConfig;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AlertComponent = /*#__PURE__*/(() => {\n class AlertComponent {\n constructor(_config, changeDetection) {\n this.changeDetection = changeDetection;\n /** Alert type.\n * Provides one of four bootstrap supported contextual classes:\n * `success`, `info`, `warning` and `danger`\n */\n this.type = 'warning';\n /** If set, displays an inline \"Close\" button */\n this.dismissible = false;\n /** Is alert visible */\n this.isOpen = true;\n /** This event fires immediately after close instance method is called,\n * $event is an instance of Alert component.\n */\n this.onClose = new EventEmitter();\n /** This event fires when alert closed, $event is an instance of Alert component */\n this.onClosed = new EventEmitter();\n this.classes = '';\n this.dismissibleChange = new EventEmitter();\n Object.assign(this, _config);\n this.dismissibleChange.subscribe((/*dismissible: boolean*/\n ) => {\n this.classes = this.dismissible ? 'alert-dismissible' : '';\n this.changeDetection.markForCheck();\n });\n }\n ngOnInit() {\n if (this.dismissOnTimeout) {\n // if dismissOnTimeout used as attr without binding, it will be a string\n setTimeout(() => this.close(), parseInt(this.dismissOnTimeout, 10));\n }\n }\n // todo: animation ` If the .fade and .in classes are present on the element,\n // the alert will fade out before it is removed`\n /**\n * Closes an alert by removing it from the DOM.\n */\n close() {\n if (!this.isOpen) {\n return;\n }\n this.onClose.emit(this);\n this.isOpen = false;\n this.changeDetection.markForCheck();\n this.onClosed.emit(this);\n }\n static {\n this.ɵfac = function AlertComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AlertComponent)(i0.ɵɵdirectiveInject(AlertConfig), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AlertComponent,\n selectors: [[\"alert\"], [\"bs-alert\"]],\n inputs: {\n type: \"type\",\n dismissible: \"dismissible\",\n dismissOnTimeout: \"dismissOnTimeout\",\n isOpen: \"isOpen\"\n },\n outputs: {\n onClose: \"onClose\",\n onClosed: \"onClosed\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 1,\n consts: [[3, \"ngIf\"], [\"role\", \"alert\", 3, \"ngClass\"], [\"type\", \"button\", \"aria-label\", \"Close\", 1, \"close\", \"btn-close\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"visually-hidden\"], [1, \"sr-only\", \"visually-hidden\"]],\n template: function AlertComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, AlertComponent_ng_template_0_Template, 3, 4, \"ng-template\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.isOpen);\n }\n },\n dependencies: [NgIf, NgClass],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n __decorate([OnChange(), __metadata(\"design:type\", Object)], AlertComponent.prototype, \"dismissible\", void 0);\n return AlertComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AlertModule = /*#__PURE__*/(() => {\n class AlertModule {\n // @deprecated method not required anymore, will be deleted in v19.0.0\n static forRoot() {\n return {\n ngModule: AlertModule,\n providers: []\n };\n }\n static {\n this.ɵfac = function AlertModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AlertModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: AlertModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return AlertModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AlertComponent, AlertConfig, AlertModule };\n","function mod(n, x) {\n return (n % x + x) % x;\n}\nfunction absFloor(num) {\n return num < 0 ? Math.ceil(num) || 0 : Math.floor(num);\n}\nfunction isString(str) {\n return typeof str === 'string';\n}\nfunction isDate(value) {\n return value instanceof Date || Object.prototype.toString.call(value) === '[object Date]';\n}\nfunction isBoolean(value) {\n return value === true || value === false;\n}\nfunction isDateValid(date) {\n return date && date.getTime && !isNaN(date.getTime());\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isFunction(fn) {\n return fn instanceof Function || Object.prototype.toString.call(fn) === '[object Function]';\n}\nfunction isNumber(value) {\n return typeof value === 'number' || Object.prototype.toString.call(value) === '[object Number]';\n}\nfunction isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n}\nfunction hasOwnProp(a /*object*/, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\nfunction isObject(input /*object*/) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n}\nfunction isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n }\n let k;\n for (k in obj) {\n // eslint-disable-next-line no-prototype-builtins\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n return true;\n}\nfunction isUndefined(input) {\n return input === void 0;\n}\nfunction toInt(argumentForCoercion) {\n const coercedNumber = +argumentForCoercion;\n let value = 0;\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n return value;\n}\nconst aliases = {};\nconst _mapUnits = {\n date: 'day',\n hour: 'hours',\n minute: 'minutes',\n second: 'seconds',\n millisecond: 'milliseconds'\n};\nfunction addUnitAlias(unit, shorthand) {\n const lowerCase = unit.toLowerCase();\n let _unit = unit;\n if (lowerCase in _mapUnits) {\n _unit = _mapUnits[lowerCase];\n }\n aliases[lowerCase] = aliases[`${lowerCase}s`] = aliases[shorthand] = _unit;\n}\nfunction normalizeUnits(units) {\n return isString(units) ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n}\nfunction normalizeObjectUnits(inputObject) {\n const normalizedInput = {};\n let normalizedProp;\n let prop;\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n return normalizedInput;\n}\n\n// place in new Date([array])\nconst YEAR = 0;\nconst MONTH = 1;\nconst DATE = 2;\nconst HOUR = 3;\nconst MINUTE = 4;\nconst SECOND = 5;\nconst MILLISECOND = 6;\nconst WEEK = 7;\nconst WEEKDAY = 8;\nfunction zeroFill(num, targetLength, forceSign) {\n const absNumber = `${Math.abs(num)}`;\n const zerosToFill = targetLength - absNumber.length;\n const sign = num >= 0;\n const _sign = sign ? forceSign ? '+' : '' : '-';\n // todo: this is crazy slow\n const _zeros = Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1);\n return _sign + _zeros + absNumber;\n}\nconst formatFunctions = {};\nconst formatTokenFunctions = {};\nconst formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction addFormatToken(token, padded, ordinal, callback) {\n if (token) {\n formatTokenFunctions[token] = callback;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(callback.apply(null, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function (date, opts) {\n return opts.locale.ordinal(callback.apply(null, arguments), token);\n };\n }\n}\nfunction makeFormatFunction(format) {\n const array = format.match(formattingTokens);\n const length = array.length;\n const formatArr = new Array(length);\n for (let i = 0; i < length; i++) {\n formatArr[i] = formatTokenFunctions[array[i]] ? formatTokenFunctions[array[i]] : removeFormattingTokens(array[i]);\n }\n return function (date, locale, isUTC, offset = 0) {\n let output = '';\n for (let j = 0; j < length; j++) {\n output += isFunction(formatArr[j]) ? formatArr[j].call(null, date, {\n format,\n locale,\n isUTC,\n offset\n }) : formatArr[j];\n }\n return output;\n };\n}\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction createUTCDate(y, m, d) {\n // eslint-disable-next-line prefer-rest-params\n const date = new Date(Date.UTC.apply(null, arguments));\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n return date;\n}\nfunction createDate(y, m = 0, d = 1, h = 0, M = 0, s = 0, ms = 0) {\n const date = new Date(y, m, d, h, M, s, ms);\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n return date;\n}\nfunction getHours(date, isUTC = false) {\n return isUTC ? date.getUTCHours() : date.getHours();\n}\nfunction getMinutes(date, isUTC = false) {\n return isUTC ? date.getUTCMinutes() : date.getMinutes();\n}\nfunction getSeconds(date, isUTC = false) {\n return isUTC ? date.getUTCSeconds() : date.getSeconds();\n}\nfunction getMilliseconds(date, isUTC = false) {\n return isUTC ? date.getUTCMilliseconds() : date.getMilliseconds();\n}\nfunction getTime(date) {\n return date.getTime();\n}\nfunction getDay(date, isUTC = false) {\n return isUTC ? date.getUTCDay() : date.getDay();\n}\nfunction getDate(date, isUTC = false) {\n return isUTC ? date.getUTCDate() : date.getDate();\n}\nfunction getMonth(date, isUTC = false) {\n return isUTC ? date.getUTCMonth() : date.getMonth();\n}\nfunction getFullYear(date, isUTC = false) {\n return isUTC ? date.getUTCFullYear() : date.getFullYear();\n}\nfunction getUnixTime(date) {\n return Math.floor(date.valueOf() / 1000);\n}\nfunction unix(date) {\n return Math.floor(date.valueOf() / 1000);\n}\nfunction getFirstDayOfMonth(date) {\n return createDate(date.getFullYear(), date.getMonth(), 1, date.getHours(), date.getMinutes(), date.getSeconds());\n}\nfunction daysInMonth$1(date) {\n return _daysInMonth(date.getFullYear(), date.getMonth());\n}\nfunction _daysInMonth(year, month) {\n return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();\n}\nfunction isFirstDayOfWeek(date, firstDayOfWeek) {\n return date.getDay() === Number(firstDayOfWeek);\n}\nfunction isSameMonth(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n return isSameYear(date1, date2) && getMonth(date1) === getMonth(date2);\n}\nfunction isSameYear(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n return getFullYear(date1) === getFullYear(date2);\n}\nfunction isSameDay$1(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n return isSameYear(date1, date2) && isSameMonth(date1, date2) && getDate(date1) === getDate(date2);\n}\nconst match1 = /\\d/; // 0 - 9\nconst match2 = /\\d\\d/; // 00 - 99\nconst match3 = /\\d{3}/; // 000 - 999\nconst match4 = /\\d{4}/; // 0000 - 9999\nconst match6 = /[+-]?\\d{6}/; // -999999 - 999999\nconst match1to2 = /\\d\\d?/; // 0 - 99\nconst match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\nconst match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\nconst match1to3 = /\\d{1,3}/; // 0 - 999\nconst match1to4 = /\\d{1,4}/; // 0 - 9999\nconst match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\nconst matchUnsigned = /\\d+/; // 0 - inf\nconst matchSigned = /[+-]?\\d+/; // -inf - inf\nconst matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\nconst matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\nconst matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n// any word (or two) characters or numbers including two/three word month in arabic.\n// includes scottish gaelic two word and hyphenated months\nconst matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\nconst regexes = {};\nfunction addRegexToken(token, regex, strictRegex) {\n if (isFunction(regex)) {\n regexes[token] = regex;\n return;\n }\n regexes[token] = function (isStrict, locale) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n}\nfunction getParseRegexForToken(token, locale) {\n const _strict = false;\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n return regexes[token](_strict, locale);\n}\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(str) {\n return regexEscape(str.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, (matched, p1, p2, p3, p4) => p1 || p2 || p3 || p4));\n}\nfunction regexEscape(str) {\n return str.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\nconst tokens = {};\nfunction addParseToken(token, callback) {\n const _token = isString(token) ? [token] : token;\n let func = callback;\n if (isNumber(callback)) {\n func = function (input, array, config) {\n array[callback] = toInt(input);\n return config;\n };\n }\n if (isArray(_token) && isFunction(func)) {\n let i;\n for (i = 0; i < _token.length; i++) {\n tokens[_token[i]] = func;\n }\n }\n}\nfunction addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, _token) {\n config._w = config._w || {};\n return callback(input, config._w, config, _token);\n });\n}\nfunction addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n return config;\n}\nconst priorities = {};\nfunction addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n}\n/*\nexport function getPrioritizedUnits(unitsObj) {\n const units = [];\n let unit;\n for (unit in unitsObj) {\n if (unitsObj.hasOwnProperty(unit)) {\n units.push({ unit, priority: priorities[unit] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n\n return units;\n}\n*/\n\nfunction initDayOfMonth() {\n // FORMATTING\n addFormatToken('D', ['DD', 2, false], 'Do', function (date, opts) {\n return getDate(date, opts.isUTC).toString(10);\n });\n // ALIASES\n addUnitAlias('date', 'D');\n // PRIOROITY\n addUnitPriority('date', 9);\n // PARSING\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n return locale._dayOfMonthOrdinalParse || locale._ordinalParse;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array, config) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n return config;\n });\n}\nfunction defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n}\nfunction getParsingFlags(config) {\n if (config._pf == null) {\n config._pf = defaultParsingFlags();\n }\n return config._pf;\n}\n\n// FORMATTING\nfunction getYear(date, opts) {\n if (opts.locale.getFullYear) {\n return opts.locale.getFullYear(date, opts.isUTC).toString();\n }\n return getFullYear(date, opts.isUTC).toString();\n}\nfunction initYear() {\n addFormatToken('Y', null, null, function (date, opts) {\n const y = getFullYear(date, opts.isUTC);\n return y <= 9999 ? y.toString(10) : `+${y}`;\n });\n addFormatToken(null, ['YY', 2, false], null, function (date, opts) {\n return (getFullYear(date, opts.isUTC) % 100).toString(10);\n });\n addFormatToken(null, ['YYYY', 4, false], null, getYear);\n addFormatToken(null, ['YYYYY', 5, false], null, getYear);\n addFormatToken(null, ['YYYYYY', 6, true], null, getYear);\n // ALIASES\n addUnitAlias('year', 'y');\n // PRIORITIES\n addUnitPriority('year', 1);\n // PARSING\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array, config) {\n array[YEAR] = input.length === 2 ? parseTwoDigitYear(input) : toInt(input);\n return config;\n });\n addParseToken('YY', function (input, array, config) {\n array[YEAR] = parseTwoDigitYear(input);\n return config;\n });\n addParseToken('Y', function (input, array, config) {\n array[YEAR] = parseInt(input, 10);\n return config;\n });\n}\nfunction parseTwoDigitYear(input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n}\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\nfunction isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\n\n// todo: this is duplicate, source in date-getters.ts\nfunction daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n const modMonth = mod(month, 12);\n const _year = year + (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(_year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n}\nfunction initMonth() {\n // FORMATTING\n addFormatToken('M', ['MM', 2, false], 'Mo', function (date, opts) {\n return (getMonth(date, opts.isUTC) + 1).toString(10);\n });\n addFormatToken('MMM', null, null, function (date, opts) {\n return opts.locale.monthsShort(date, opts.format, opts.isUTC);\n });\n addFormatToken('MMMM', null, null, function (date, opts) {\n return opts.locale.months(date, opts.format, opts.isUTC);\n });\n // ALIASES\n addUnitAlias('month', 'M');\n // PRIORITY\n addUnitPriority('month', 8);\n // PARSING\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array, config) {\n array[MONTH] = toInt(input) - 1;\n return config;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n const month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = !!input;\n }\n return config;\n });\n}\nconst defaultTimeUnit = {\n year: 0,\n month: 0,\n day: 0,\n hour: 0,\n minute: 0,\n seconds: 0\n};\nfunction shiftDate(date, unit) {\n const _unit = Object.assign({}, defaultTimeUnit, unit);\n const year = date.getFullYear() + (_unit.year || 0);\n const month = date.getMonth() + (_unit.month || 0);\n let day = date.getDate() + (_unit.day || 0);\n if (_unit.month && !_unit.day) {\n day = Math.min(day, daysInMonth(year, month));\n }\n return createDate(year, month, day, date.getHours() + (_unit.hour || 0), date.getMinutes() + (_unit.minute || 0), date.getSeconds() + (_unit.seconds || 0));\n}\nfunction setFullDate(date, unit) {\n return createDate(getNum(date.getFullYear(), unit.year), getNum(date.getMonth(), unit.month), 1,\n // day, to avoid issue with wrong months selection at the end of current month (#5371)\n getNum(date.getHours(), unit.hour), getNum(date.getMinutes(), unit.minute), getNum(date.getSeconds(), unit.seconds), getNum(date.getMilliseconds(), unit.milliseconds));\n}\nfunction getNum(def, num) {\n return isNumber(num) ? num : def;\n}\nfunction setFullYear(date, value, isUTC) {\n const _month = getMonth(date, isUTC);\n const _date = getDate(date, isUTC);\n const _year = getFullYear(date, isUTC);\n if (isLeapYear(_year) && _month === 1 && _date === 29) {\n const _daysInMonth = daysInMonth(value, _month);\n isUTC ? date.setUTCFullYear(value, _month, _daysInMonth) : date.setFullYear(value, _month, _daysInMonth);\n }\n isUTC ? date.setUTCFullYear(value) : date.setFullYear(value);\n return date;\n}\nfunction setMonth(date, value, isUTC) {\n const dayOfMonth = Math.min(getDate(date), daysInMonth(getFullYear(date), value));\n isUTC ? date.setUTCMonth(value, dayOfMonth) : date.setMonth(value, dayOfMonth);\n return date;\n}\nfunction setDay(date, value, isUTC) {\n isUTC ? date.setUTCDate(value) : date.setDate(value);\n return date;\n}\nfunction setHours(date, value, isUTC) {\n isUTC ? date.setUTCHours(value) : date.setHours(value);\n return date;\n}\nfunction setMinutes(date, value, isUTC) {\n isUTC ? date.setUTCMinutes(value) : date.setMinutes(value);\n return date;\n}\nfunction setSeconds(date, value, isUTC) {\n isUTC ? date.setUTCSeconds(value) : date.setSeconds(value);\n return date;\n}\nfunction setMilliseconds(date, value, isUTC) {\n isUTC ? date.setUTCMilliseconds(value) : date.setMilliseconds(value);\n return date;\n}\nfunction setDate(date, value, isUTC) {\n isUTC ? date.setUTCDate(value) : date.setDate(value);\n return date;\n}\nfunction setTime(date, value) {\n date.setTime(value);\n return date;\n}\n\n// fastest way to clone date\n// https://jsperf.com/clone-date-object2\nfunction cloneDate(date) {\n return new Date(date.getTime());\n}\nfunction startOf(date, unit, isUTC) {\n const _date = cloneDate(date);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (unit) {\n case 'year':\n setMonth(_date, 0, isUTC);\n /* falls through */\n case 'quarter':\n case 'month':\n setDate(_date, 1, isUTC);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n case 'date':\n setHours(_date, 0, isUTC);\n /* falls through */\n case 'hours':\n setMinutes(_date, 0, isUTC);\n /* falls through */\n case 'minutes':\n setSeconds(_date, 0, isUTC);\n /* falls through */\n case 'seconds':\n setMilliseconds(_date, 0, isUTC);\n }\n // weeks are a special case\n if (unit === 'week') {\n setLocaleDayOfWeek(_date, 0, {\n isUTC\n });\n }\n if (unit === 'isoWeek') {\n setISODayOfWeek(_date, 1);\n }\n // quarters are also special\n if (unit === 'quarter') {\n setMonth(_date, Math.floor(getMonth(_date, isUTC) / 3) * 3, isUTC);\n }\n return _date;\n}\nfunction endOf(date, unit, isUTC) {\n let _unit = unit;\n // 'date' is an alias for 'day', so it should be considered as such.\n if (_unit === 'date') {\n _unit = 'day';\n }\n const start = startOf(date, _unit, isUTC);\n const _step = add(start, 1, _unit === 'isoWeek' ? 'week' : _unit, isUTC);\n const res = subtract(_step, 1, 'milliseconds', isUTC);\n return res;\n}\nfunction initDayOfYear() {\n // FORMATTING\n addFormatToken('DDD', ['DDDD', 3, false], 'DDDo', function (date) {\n return getDayOfYear(date).toString(10);\n });\n // ALIASES\n addUnitAlias('dayOfYear', 'DDD');\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n return config;\n });\n}\nfunction getDayOfYear(date, isUTC) {\n const date1 = +startOf(date, 'day', isUTC);\n const date2 = +startOf(date, 'year', isUTC);\n const someDate = date1 - date2;\n const oneDay = 1000 * 60 * 60 * 24;\n return Math.round(someDate / oneDay) + 1;\n}\nfunction setDayOfYear(date, input) {\n const dayOfYear = getDayOfYear(date);\n return add(date, input - dayOfYear, 'day');\n}\n\n/**\n *\n * @param {number} year\n * @param {number} dow - start-of-first-week\n * @param {number} doy - start-of-year\n * @returns {number}\n */\nfunction firstWeekOffset(year, dow, doy) {\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n const fwd = dow - doy + 7;\n // first-week day local weekday -- which local weekday is fwd\n const fwdlw = (createUTCDate(year, 0, fwd).getUTCDay() - dow + 7) % 7;\n return -fwdlw + fwd - 1;\n}\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n const localWeekday = (7 + weekday - dow) % 7;\n const weekOffset = firstWeekOffset(year, dow, doy);\n const dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset;\n let resYear;\n let resDayOfYear;\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n}\nfunction weekOfYear(date, dow, doy, isUTC) {\n const weekOffset = firstWeekOffset(getFullYear(date, isUTC), dow, doy);\n const week = Math.floor((getDayOfYear(date, isUTC) - weekOffset - 1) / 7) + 1;\n let resWeek;\n let resYear;\n if (week < 1) {\n resYear = getFullYear(date, isUTC) - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(getFullYear(date, isUTC), dow, doy)) {\n resWeek = week - weeksInYear(getFullYear(date, isUTC), dow, doy);\n resYear = getFullYear(date, isUTC) + 1;\n } else {\n resYear = getFullYear(date, isUTC);\n resWeek = week;\n }\n return {\n week: resWeek,\n year: resYear\n };\n}\nfunction weeksInYear(year, dow, doy) {\n const weekOffset = firstWeekOffset(year, dow, doy);\n const weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\nconst MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\nconst defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\nconst defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\nconst defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\nconst defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\nconst defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\nconst defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n};\nconst defaultOrdinal = '%d';\nconst defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\nconst defaultMonthsShortRegex = matchWord;\nconst defaultMonthsRegex = matchWord;\nclass Locale {\n constructor(config) {\n if (config) {\n this.set(config);\n }\n }\n set(config) {\n let confKey;\n for (confKey in config) {\n // eslint-disable-next-line no-prototype-builtins\n if (!config.hasOwnProperty(confKey)) {\n continue;\n }\n const prop = config[confKey];\n const key = isFunction(prop) ? confKey : `_${confKey}`;\n this[key] = prop;\n }\n this._config = config;\n }\n calendar(key, date, now) {\n const output = this._calendar[key] || this._calendar[\"sameElse\"];\n return isFunction(output) ? output.call(null, date, now) : output;\n }\n longDateFormat(key) {\n const format = this._longDateFormat[key];\n const formatUpper = this._longDateFormat[key.toUpperCase()];\n if (format || !formatUpper) {\n return format;\n }\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n return this._longDateFormat[key];\n }\n get invalidDate() {\n return this._invalidDate;\n }\n set invalidDate(val) {\n this._invalidDate = val;\n }\n ordinal(num, token) {\n return this._ordinal.replace('%d', num.toString(10));\n }\n preparse(str, format) {\n return str;\n }\n getFullYear(date, isUTC = false) {\n return getFullYear(date, isUTC);\n }\n postformat(str) {\n return str;\n }\n relativeTime(num, withoutSuffix, str, isFuture) {\n const output = this._relativeTime[str];\n return isFunction(output) ? output(num, withoutSuffix, str, isFuture) : output.replace(/%d/i, num.toString(10));\n }\n pastFuture(diff, output) {\n const format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n months(date, format, isUTC = false) {\n if (!date) {\n return isArray(this._months) ? this._months : this._months.standalone;\n }\n if (isArray(this._months)) {\n return this._months[getMonth(date, isUTC)];\n }\n const key = (this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone';\n return this._months[key][getMonth(date, isUTC)];\n }\n monthsShort(date, format, isUTC = false) {\n if (!date) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort.standalone;\n }\n if (isArray(this._monthsShort)) {\n return this._monthsShort[getMonth(date, isUTC)];\n }\n const key = MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone';\n return this._monthsShort[key][getMonth(date, isUTC)];\n }\n monthsParse(monthName, format, strict) {\n let date;\n let regex;\n if (this._monthsParseExact) {\n return this.handleMonthStrictParse(monthName, format, strict);\n }\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n let i;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n date = new Date(Date.UTC(2000, i));\n if (strict && !this._longMonthsParse[i]) {\n const _months = this.months(date, '', true).replace('.', '');\n const _shortMonths = this.monthsShort(date, '', true).replace('.', '');\n this._longMonthsParse[i] = new RegExp(`^${_months}$`, 'i');\n this._shortMonthsParse[i] = new RegExp(`^${_shortMonths}$`, 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = `^${this.months(date, '', true)}|^${this.monthsShort(date, '', true)}`;\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // testing the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n }\n if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n }\n if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this.computeMonthsParse();\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n }\n return this._monthsRegex;\n }\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n }\n monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this.computeMonthsParse();\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n }\n return this._monthsShortRegex;\n }\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n /** Week */\n week(date, isUTC) {\n return weekOfYear(date, this._week.dow, this._week.doy, isUTC).week;\n }\n firstDayOfWeek() {\n return this._week.dow;\n }\n firstDayOfYear() {\n return this._week.doy;\n }\n weekdays(date, format, isUTC) {\n if (!date) {\n return isArray(this._weekdays) ? this._weekdays : this._weekdays.standalone;\n }\n if (isArray(this._weekdays)) {\n return this._weekdays[getDay(date, isUTC)];\n }\n const _key = this._weekdays.isFormat.test(format) ? 'format' : 'standalone';\n return this._weekdays[_key][getDay(date, isUTC)];\n }\n weekdaysMin(date, format, isUTC) {\n return date ? this._weekdaysMin[getDay(date, isUTC)] : this._weekdaysMin;\n }\n weekdaysShort(date, format, isUTC) {\n return date ? this._weekdaysShort[getDay(date, isUTC)] : this._weekdaysShort;\n }\n // proto.weekdaysParse = localeWeekdaysParse;\n weekdaysParse(weekdayName, format, strict) {\n let i;\n let regex;\n if (this._weekdaysParseExact) {\n return this.handleWeekStrictParse(weekdayName, format, strict);\n }\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n // fix: here is the issue\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(`^${this.weekdays(date, '', true).replace('.', '\\.?')}$`, 'i');\n this._shortWeekdaysParse[i] = new RegExp(`^${this.weekdaysShort(date, '', true).replace('.', '\\.?')}$`, 'i');\n this._minWeekdaysParse[i] = new RegExp(`^${this.weekdaysMin(date, '', true).replace('.', '\\.?')}$`, 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = `^${this.weekdays(date, '', true)}|^${this.weekdaysShort(date, '', true)}|^${this.weekdaysMin(date, '', true)}`;\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n if (!isArray(this._fullWeekdaysParse) || !isArray(this._shortWeekdaysParse) || !isArray(this._minWeekdaysParse) || !isArray(this._weekdaysParse)) {\n return;\n }\n // testing the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n // proto.weekdaysRegex = weekdaysRegex;\n weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = matchWord;\n }\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n // proto.weekdaysShortRegex = weekdaysShortRegex;\n // proto.weekdaysMinRegex = weekdaysMinRegex;\n weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = matchWord;\n }\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = matchWord;\n }\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n isPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return input.toLowerCase().charAt(0) === 'p';\n }\n meridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n }\n return isLower ? 'am' : 'AM';\n }\n formatLongDate(key) {\n this._longDateFormat = this._longDateFormat ? this._longDateFormat : defaultLongDateFormat;\n const format = this._longDateFormat[key];\n const formatUpper = this._longDateFormat[key.toUpperCase()];\n if (format || !formatUpper) {\n return format;\n }\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, val => {\n return val.slice(1);\n });\n return this._longDateFormat[key];\n }\n handleMonthStrictParse(monthName, format, strict) {\n const llc = monthName.toLocaleLowerCase();\n let i;\n let ii;\n let mom;\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = new Date(2000, i);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n if (strict) {\n if (format === 'MMM') {\n ii = this._shortMonthsParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n ii = this._longMonthsParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n if (format === 'MMM') {\n ii = this._shortMonthsParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._longMonthsParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n ii = this._longMonthsParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._shortMonthsParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n handleWeekStrictParse(weekdayName, format, strict) {\n let ii;\n const llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n let i;\n for (i = 0; i < 7; ++i) {\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n this._minWeekdaysParse[i] = this.weekdaysMin(date).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(date).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(date, '').toLocaleLowerCase();\n }\n }\n if (!isArray(this._weekdaysParse) || !isArray(this._shortWeekdaysParse) || !isArray(this._minWeekdaysParse)) {\n return;\n }\n if (strict) {\n if (format === 'dddd') {\n ii = this._weekdaysParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = this._shortWeekdaysParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = this._minWeekdaysParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._shortWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._minWeekdaysParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = this._shortWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._minWeekdaysParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = this._minWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._shortWeekdaysParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n computeMonthsParse() {\n const shortPieces = [];\n const longPieces = [];\n const mixedPieces = [];\n let date;\n let i;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n date = new Date(2000, i);\n shortPieces.push(this.monthsShort(date, ''));\n longPieces.push(this.months(date, ''));\n mixedPieces.push(this.months(date, ''));\n mixedPieces.push(this.monthsShort(date, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n this._monthsRegex = new RegExp(`^(${mixedPieces.join('|')})`, 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(`^(${longPieces.join('|')})`, 'i');\n this._monthsShortStrictRegex = new RegExp(`^(${shortPieces.join('|')})`, 'i');\n }\n computeWeekdaysParse() {\n const minPieces = [];\n const shortPieces = [];\n const longPieces = [];\n const mixedPieces = [];\n let i;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n // let mom = createUTC([2000, 1]).day(i);\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n const minp = this.weekdaysMin(date);\n const shortp = this.weekdaysShort(date);\n const longp = this.weekdays(date);\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n this._weekdaysRegex = new RegExp(`^(${mixedPieces.join('|')})`, 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp(`^(${longPieces.join('|')})`, 'i');\n this._weekdaysShortStrictRegex = new RegExp(`^(${shortPieces.join('|')})`, 'i');\n this._weekdaysMinStrictRegex = new RegExp(`^(${minPieces.join('|')})`, 'i');\n }\n}\nfunction cmpLenRev(a, b) {\n return b.length - a.length;\n}\nconst defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n};\nconst defaultInvalidDate = 'Invalid date';\nconst defaultLocaleWeek = {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n};\nconst defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\nconst defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n};\nconst baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n};\n\n// compare two arrays, return the number of differences\nfunction compareArrays(array1, array2, dontConvert) {\n const len = Math.min(array1.length, array2.length);\n const lengthDiff = Math.abs(array1.length - array2.length);\n let diffs = 0;\n let i;\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n}\n\n// FORMATTING\nfunction initWeek() {\n addFormatToken('w', ['ww', 2, false], 'wo', function (date, opts) {\n return getWeek(date, opts.locale).toString(10);\n });\n addFormatToken('W', ['WW', 2, false], 'Wo', function (date) {\n return getISOWeek(date).toString(10);\n });\n // ALIASES\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n // PRIORITIES\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n // PARSING\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n return config;\n });\n // export function getSetWeek (input) {\n // var week = this.localeData().week(this);\n // return input == null ? week : this.add((input - week) * 7, 'd');\n // }\n}\nfunction setWeek(date, input, locale = getLocale()) {\n const week = getWeek(date, locale);\n return add(date, (input - week) * 7, 'day');\n}\nfunction getWeek(date, locale = getLocale(), isUTC) {\n return locale.week(date, isUTC);\n}\n// export function getSetISOWeek (input) {\n// var week = weekOfYear(this, 1, 4).week;\n// return input == null ? week : this.add((input - week) * 7, 'd');\n// }\nfunction setISOWeek(date, input) {\n const week = getISOWeek(date);\n return add(date, (input - week) * 7, 'day');\n}\nfunction getISOWeek(date, isUTC) {\n return weekOfYear(date, 1, 4, isUTC).week;\n}\n\n// FORMATTING\nfunction initWeekYear() {\n addFormatToken(null, ['gg', 2, false], null, function (date, opts) {\n // return this.weekYear() % 100;\n return (getWeekYear(date, opts.locale) % 100).toString();\n });\n addFormatToken(null, ['GG', 2, false], null, function (date) {\n // return this.isoWeekYear() % 100;\n return (getISOWeekYear(date) % 100).toString();\n });\n addWeekYearFormatToken('gggg', _getWeekYearFormatCb);\n addWeekYearFormatToken('ggggg', _getWeekYearFormatCb);\n addWeekYearFormatToken('GGGG', _getISOWeekYearFormatCb);\n addWeekYearFormatToken('GGGGG', _getISOWeekYearFormatCb);\n // ALIASES\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n // PRIORITY\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n // PARSING\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n return config;\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = parseTwoDigitYear(input);\n return config;\n });\n}\nfunction addWeekYearFormatToken(token, getter) {\n addFormatToken(null, [token, token.length, false], null, getter);\n}\nfunction _getWeekYearFormatCb(date, opts) {\n return getWeekYear(date, opts.locale).toString();\n}\nfunction _getISOWeekYearFormatCb(date) {\n return getISOWeekYear(date).toString();\n}\n// MOMENTS\nfunction getSetWeekYear(date, input, locale = getLocale(), isUTC) {\n return getSetWeekYearHelper(date, input,\n // this.week(),\n getWeek(date, locale, isUTC),\n // this.weekday(),\n getLocaleDayOfWeek(date, locale, isUTC), locale.firstDayOfWeek(), locale.firstDayOfYear(), isUTC);\n}\nfunction getWeekYear(date, locale = getLocale(), isUTC) {\n return weekOfYear(date, locale.firstDayOfWeek(), locale.firstDayOfYear(), isUTC).year;\n}\nfunction getSetISOWeekYear(date, input, isUTC) {\n return getSetWeekYearHelper(date, input, getISOWeek(date, isUTC), getISODayOfWeek(date, isUTC), 1, 4);\n}\nfunction getISOWeekYear(date, isUTC) {\n return weekOfYear(date, 1, 4, isUTC).year;\n}\nfunction getISOWeeksInYear(date, isUTC) {\n return weeksInYear(getFullYear(date, isUTC), 1, 4);\n}\nfunction getWeeksInYear(date, isUTC, locale = getLocale()) {\n return weeksInYear(getFullYear(date, isUTC), locale.firstDayOfWeek(), locale.firstDayOfYear());\n}\nfunction getSetWeekYearHelper(date, input, week, weekday, dow, doy, isUTC) {\n if (!input) {\n return getWeekYear(date, void 0, isUTC);\n }\n const weeksTarget = weeksInYear(input, dow, doy);\n const _week = week > weeksTarget ? weeksTarget : week;\n return setWeekAll(date, input, _week, weekday, dow, doy);\n}\nfunction setWeekAll(date, weekYear, week, weekday, dow, doy) {\n const dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n const _date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n setFullYear(date, getFullYear(_date, true), true);\n setMonth(date, getMonth(_date, true), true);\n setDate(date, getDate(_date, true), true);\n return date;\n}\n\n// todo: add support for timezones\nfunction initTimezone() {\n // FORMATTING\n addFormatToken('z', null, null, function (date, opts) {\n return opts.isUTC ? 'UTC' : '';\n });\n addFormatToken('zz', null, null, function (date, opts) {\n return opts.isUTC ? 'Coordinated Universal Time' : '';\n });\n}\n// MOMENTS\nfunction getZoneAbbr(isUTC) {\n return isUTC ? 'UTC' : '';\n}\nfunction getZoneName(isUTC) {\n return isUTC ? 'Coordinated Universal Time' : '';\n}\nfunction initTimestamp() {\n // FORMATTING\n addFormatToken('X', null, null, function (date) {\n return unix(date).toString(10);\n });\n addFormatToken('x', null, null, function (date) {\n return date.valueOf().toString(10);\n });\n // PARSING\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n return config;\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n return config;\n });\n}\nfunction initSecond() {\n // FORMATTING\n addFormatToken('s', ['ss', 2, false], null, function (date, opts) {\n return getSeconds(date, opts.isUTC).toString(10);\n });\n // ALIASES\n addUnitAlias('second', 's');\n // PRIORITY\n addUnitPriority('second', 15);\n // PARSING\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n}\nfunction initQuarter() {\n // FORMATTING\n addFormatToken('Q', null, 'Qo', function (date, opts) {\n return getQuarter(date, opts.isUTC).toString(10);\n });\n // ALIASES\n addUnitAlias('quarter', 'Q');\n // PRIORITY\n addUnitPriority('quarter', 7);\n // PARSING\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array, config) {\n array[MONTH] = (toInt(input) - 1) * 3;\n return config;\n });\n}\n// MOMENTS\nfunction getQuarter(date, isUTC = false) {\n return Math.ceil((getMonth(date, isUTC) + 1) / 3);\n}\nfunction setQuarter(date, quarter, isUTC) {\n return setMonth(date, (quarter - 1) * 3 + getMonth(date, isUTC) % 3, isUTC);\n}\n// export function getSetQuarter(input) {\n// return input == null\n// ? Math.ceil((this.month() + 1) / 3)\n// : this.month((input - 1) * 3 + this.month() % 3);\n// }\n\n// FORMATTING\nfunction addOffsetFormatToken(token, separator) {\n addFormatToken(token, null, null, function (date, config) {\n let offset = getUTCOffset(date, {\n _isUTC: config.isUTC,\n _offset: config.offset\n });\n let sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n}\nfunction initOffset() {\n addOffsetFormatToken('Z', ':');\n addOffsetFormatToken('ZZ', '');\n // PARSING\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n return config;\n });\n}\n// HELPERS\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nconst chunkOffset = /([\\+\\-]|\\d\\d)/gi;\nfunction offsetFromString(matcher, str) {\n const matches = (str || '').match(matcher);\n if (matches === null) {\n return null;\n }\n const chunk = matches[matches.length - 1];\n const parts = chunk.match(chunkOffset) || ['-', '0', '0'];\n const minutes = parseInt(parts[1], 10) * 60 + toInt(parts[2]);\n const _min = parts[0] === '+' ? minutes : -minutes;\n return minutes === 0 ? 0 : _min;\n}\n// Return a moment from input, that is local/utc/zone equivalent to model.\nfunction cloneWithOffset(input, date, config = {}) {\n if (!config._isUTC) {\n return input;\n }\n const res = cloneDate(date);\n // todo: input._d - res._d + ((res._offset || 0) - (input._offset || 0))*60000\n const offsetDiff = (config._offset || 0) * 60000;\n const diff = input.valueOf() - res.valueOf() + offsetDiff;\n // Use low-level api, because this fn is low-level api.\n res.setTime(res.valueOf() + diff);\n // todo: add timezone handling\n // hooks.updateOffset(res, false);\n return res;\n}\nfunction getDateOffset(date) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(date.getTimezoneOffset() / 15) * 15;\n}\n// HOOKS\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\n// todo: it's from moment timezones\n// hooks.updateOffset = function () {\n// };\n// MOMENTS\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getUTCOffset(date, config = {}) {\n const _offset = config._offset || 0;\n return config._isUTC ? _offset : getDateOffset(date);\n}\nfunction setUTCOffset(date, input, keepLocalTime, keepMinutes, config = {}) {\n const offset = config._offset || 0;\n let localAdjust;\n let _input = input;\n let _date = date;\n if (isString(_input)) {\n _input = offsetFromString(matchShortOffset, _input);\n if (_input === null) {\n return _date;\n }\n } else if (isNumber(_input) && Math.abs(_input) < 16 && !keepMinutes) {\n _input = _input * 60;\n }\n if (!config._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(_date);\n }\n config._offset = _input;\n config._isUTC = true;\n if (localAdjust != null) {\n _date = add(_date, localAdjust, 'minutes');\n }\n if (offset !== _input) {\n if (!keepLocalTime || config._changeInProgress) {\n _date = add(_date, _input - offset, 'minutes', config._isUTC);\n // addSubtract(this, createDuration(_input - offset, 'm'), 1, false);\n } else if (!config._changeInProgress) {\n config._changeInProgress = true;\n // todo: add timezone handling\n // hooks.updateOffset(this, true);\n config._changeInProgress = null;\n }\n }\n return _date;\n}\n/*\nexport function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n*/\nfunction setOffsetToUTC(date, keepLocalTime) {\n return setUTCOffset(date, 0, keepLocalTime);\n}\nfunction isDaylightSavingTime(date) {\n return getUTCOffset(date) > getUTCOffset(setMonth(cloneDate(date), 0)) || getUTCOffset(date) > getUTCOffset(setMonth(cloneDate(date), 5));\n}\n/*export function setOffsetToLocal(date: Date, isUTC?: boolean, keepLocalTime?: boolean) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}*/\nfunction setOffsetToParsedOffset(date, input, config = {}) {\n if (config._tzm != null) {\n return setUTCOffset(date, config._tzm, false, true, config);\n }\n if (isString(input)) {\n const tZone = offsetFromString(matchOffset, input);\n if (tZone != null) {\n return setUTCOffset(date, tZone, false, false, config);\n }\n return setUTCOffset(date, 0, true, false, config);\n }\n return date;\n}\nfunction hasAlignedHourOffset(date, input) {\n const _input = input ? getUTCOffset(input, {\n _isUTC: false\n }) : 0;\n return (getUTCOffset(date) - _input) % 60 === 0;\n}\n// DEPRECATED\n/*export function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n const c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n const other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}*/\n// in Khronos\n/*export function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nexport function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nexport function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}*/\n\nfunction initMinute() {\n // FORMATTING\n addFormatToken('m', ['mm', 2, false], null, function (date, opts) {\n return getMinutes(date, opts.isUTC).toString(10);\n });\n // ALIASES\n addUnitAlias('minute', 'm');\n // PRIORITY\n addUnitPriority('minute', 14);\n // PARSING\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n}\n\n// FORMATTING\nfunction initMillisecond() {\n addFormatToken('S', null, null, function (date, opts) {\n return (~~(getMilliseconds(date, opts.isUTC) / 100)).toString(10);\n });\n addFormatToken(null, ['SS', 2, false], null, function (date, opts) {\n return (~~(getMilliseconds(date, opts.isUTC) / 10)).toString(10);\n });\n addFormatToken(null, ['SSS', 3, false], null, function (date, opts) {\n return getMilliseconds(date, opts.isUTC).toString(10);\n });\n addFormatToken(null, ['SSSS', 4, false], null, function (date, opts) {\n return (getMilliseconds(date, opts.isUTC) * 10).toString(10);\n });\n addFormatToken(null, ['SSSSS', 5, false], null, function (date, opts) {\n return (getMilliseconds(date, opts.isUTC) * 100).toString(10);\n });\n addFormatToken(null, ['SSSSSS', 6, false], null, function (date, opts) {\n return (getMilliseconds(date, opts.isUTC) * 1000).toString(10);\n });\n addFormatToken(null, ['SSSSSSS', 7, false], null, function (date, opts) {\n return (getMilliseconds(date, opts.isUTC) * 10000).toString(10);\n });\n addFormatToken(null, ['SSSSSSSS', 8, false], null, function (date, opts) {\n return (getMilliseconds(date, opts.isUTC) * 100000).toString(10);\n });\n addFormatToken(null, ['SSSSSSSSS', 9, false], null, function (date, opts) {\n return (getMilliseconds(date, opts.isUTC) * 1000000).toString(10);\n });\n // ALIASES\n addUnitAlias('millisecond', 'ms');\n // PRIORITY\n addUnitPriority('millisecond', 16);\n // PARSING\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n let token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n function parseMs(input, array, config) {\n array[MILLISECOND] = toInt(parseFloat(`0.${input}`) * 1000);\n return config;\n }\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n}\nfunction initHour() {\n // FORMATTING\n function hFormat(date, isUTC) {\n return getHours(date, isUTC) % 12 || 12;\n }\n function kFormat(date, isUTC) {\n return getHours(date, isUTC) || 24;\n }\n addFormatToken('H', ['HH', 2, false], null, function (date, opts) {\n return getHours(date, opts.isUTC).toString(10);\n });\n addFormatToken('h', ['hh', 2, false], null, function (date, opts) {\n return hFormat(date, opts.isUTC).toString(10);\n });\n addFormatToken('k', ['kk', 2, false], null, function (date, opts) {\n return kFormat(date, opts.isUTC).toString(10);\n });\n addFormatToken('hmm', null, null, function (date, opts) {\n const _h = hFormat(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n return `${_h}${_mm}`;\n });\n addFormatToken('hmmss', null, null, function (date, opts) {\n const _h = hFormat(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n const _ss = zeroFill(getSeconds(date, opts.isUTC), 2);\n return `${_h}${_mm}${_ss}`;\n });\n addFormatToken('Hmm', null, null, function (date, opts) {\n const _H = getHours(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n return `${_H}${_mm}`;\n });\n addFormatToken('Hmmss', null, null, function (date, opts) {\n const _H = getHours(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n const _ss = zeroFill(getSeconds(date, opts.isUTC), 2);\n return `${_H}${_mm}${_ss}`;\n });\n function meridiem(token, lowercase) {\n addFormatToken(token, null, null, function (date, opts) {\n return opts.locale.meridiem(getHours(date, opts.isUTC), getMinutes(date, opts.isUTC), lowercase);\n });\n }\n meridiem('a', true);\n meridiem('A', false);\n // ALIASES\n addUnitAlias('hour', 'h');\n // PRIORITY\n addUnitPriority('hour', 13);\n // PARSING\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n const kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n return config;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n return config;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n return config;\n });\n addParseToken('hmm', function (input, array, config) {\n const pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n return config;\n });\n addParseToken('hmmss', function (input, array, config) {\n const pos1 = input.length - 4;\n const pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n return config;\n });\n addParseToken('Hmm', function (input, array, config) {\n const pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n return config;\n });\n addParseToken('Hmmss', function (input, array, config) {\n const pos1 = input.length - 4;\n const pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n return config;\n });\n}\n\n// internal storage for locale config files\nconst locales = {};\nconst localeFamilies = {};\nlet globalLocale;\nfunction normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least,\n// but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n let next;\n let locale;\n let i = 0;\n while (i < names.length) {\n const split = normalizeLocale(names[i]).split('-');\n let j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n // the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return null;\n}\nfunction mergeConfigs(parentConfig, childConfig) {\n const res = Object.assign({}, parentConfig);\n for (const childProp in childConfig) {\n if (!hasOwnProp(childConfig, childProp)) {\n continue;\n }\n if (isObject(parentConfig[childProp]) && isObject(childConfig[childProp])) {\n res[childProp] = {};\n Object.assign(res[childProp], parentConfig[childProp]);\n Object.assign(res[childProp], childConfig[childProp]);\n } else if (childConfig[childProp] != null) {\n res[childProp] = childConfig[childProp];\n } else {\n delete res[childProp];\n }\n }\n for (const parentProp in parentConfig) {\n if (hasOwnProp(parentConfig, parentProp) && !hasOwnProp(childConfig, parentProp) && isObject(parentConfig[parentProp])) {\n // make sure changes to properties don't modify parent config\n res[parentProp] = Object.assign({}, res[parentProp]);\n }\n }\n return res;\n}\nfunction loadLocale(name) {\n // no way!\n /* var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }*/\n if (!locales[name]) {\n console.error(`Khronos locale error: please load locale \"${name}\" before using it`);\n // throw new Error(`Khronos locale error: please load locale \"${name}\" before using it`);\n }\n return locales[name];\n}\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction getSetGlobalLocale(key, values) {\n let data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else if (isString(key)) {\n data = defineLocale(key, values);\n }\n if (data) {\n globalLocale = data;\n }\n }\n return globalLocale && globalLocale._abbr;\n}\nfunction defineLocale(name, config) {\n if (config === null) {\n // useful for testing\n delete locales[name];\n globalLocale = getLocale('en');\n return null;\n }\n if (!config) {\n return;\n }\n let parentConfig = baseConfig;\n config.abbr = name;\n if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name,\n config\n });\n return null;\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n return locales[name];\n}\nfunction updateLocale(name, config) {\n let _config = config;\n if (_config != null) {\n let parentConfig = baseConfig;\n // MERGE\n const tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n _config = mergeConfigs(parentConfig, _config);\n const locale = new Locale(_config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n}\n// returns locale data\nfunction getLocale(key) {\n setDefaultLocale();\n if (!key) {\n return globalLocale;\n }\n // let locale;\n const _key = isArray(key) ? key : [key];\n return chooseLocale(_key);\n}\nfunction listLocales() {\n return Object.keys(locales);\n}\nfunction setDefaultLocale() {\n if (locales[`en`]) {\n return undefined;\n }\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal(num) {\n const b = num % 10;\n const output = toInt(num % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return num + output;\n }\n });\n initWeek();\n initWeekYear();\n initYear();\n initTimezone();\n initTimestamp();\n initSecond();\n initQuarter();\n initOffset();\n initMonth();\n initMinute();\n initMillisecond();\n initHour();\n initDayOfYear();\n initDayOfWeek();\n initDayOfMonth();\n}\nconst ordering = ['year', 'quarter', 'month', 'week', 'day', 'hours', 'minutes', 'seconds', 'milliseconds'];\nconst orderingHash = ordering.reduce((mem, order) => {\n mem[order] = true;\n return mem;\n}, {});\nfunction isDurationValid(duration) {\n const durationKeys = Object.keys(duration);\n if (durationKeys.some(key => {\n return key in orderingHash && duration[key] === null || isNaN(duration[key]);\n })) {\n return false;\n }\n // for (let key in duration) {\n // if (!(indexOf.call(ordering, key) !== -1 && (duration[key] == null || !isNaN(duration[key])))) {\n // return false;\n // }\n // }\n let unitHasDecimal = false;\n for (let i = 0; i < ordering.length; ++i) {\n if (duration[ordering[i]]) {\n // only allow non-integers for smallest unit\n if (unitHasDecimal) {\n return false;\n }\n if (duration[ordering[i]] !== toInt(duration[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n return true;\n}\n// export function isValid() {\n// return this._isValid;\n// }\n//\n// export function createInvalid(): Duration {\n// return createDuration(NaN);\n// }\n\nfunction absCeil(number) {\n return number < 0 ? Math.floor(number) : Math.ceil(number);\n}\nfunction bubble(dur) {\n let milliseconds = dur._milliseconds;\n let days = dur._days;\n let months = dur._months;\n const data = dur._data;\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n const seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n const minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n const hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24);\n // convert days to months\n const monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n // 12 months -> 1 year\n const years = absFloor(months / 12);\n months %= 12;\n data.day = days;\n data.month = months;\n data.year = years;\n return dur;\n}\nfunction daysToMonths(day) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return day * 4800 / 146097;\n}\nfunction monthsToDays(month) {\n // the reverse of daysToMonths\n return month * 146097 / 4800;\n}\nlet round = Math.round;\nconst thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month\n M: 11 // months to year\n};\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(str, num, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(num || 1, !!withoutSuffix, str, isFuture);\n}\nfunction relativeTime(posNegDuration, withoutSuffix, locale) {\n const duration = createDuration(posNegDuration).abs();\n const seconds = round(duration.as('s'));\n const minutes = round(duration.as('m'));\n const hours = round(duration.as('h'));\n const days = round(duration.as('d'));\n const months = round(duration.as('M'));\n const years = round(duration.as('y'));\n const a = seconds <= thresholds[\"ss\"] && ['s', seconds] || seconds < thresholds[\"s\"] && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds[\"m\"] && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds[\"h\"] && ['hh', hours] || days <= 1 && ['d'] || days < thresholds[\"d\"] && ['dd', days] || months <= 1 && ['M'] || months < thresholds[\"M\"] && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n const b = [a[0], a[1], withoutSuffix, +posNegDuration > 0, locale];\n // a[2] = withoutSuffix;\n // a[3] = +posNegDuration > 0;\n // a[4] = locale;\n return substituteTimeAgo.apply(null, b);\n}\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds[\"ss\"] = limit - 1;\n }\n return true;\n}\n// export function humanize(withSuffix) {\n// if (!this.isValid()) {\n// return this.localeData().invalidDate();\n// }\n//\n// const locale = this.localeData();\n// let output = relativeTime(this, !withSuffix, locale);\n//\n// if (withSuffix) {\n// output = locale.pastFuture(+this, output);\n// }\n//\n// return locale.postformat(output);\n// }\n\nclass Duration {\n constructor(duration, config = {}) {\n this._data = {};\n this._locale = getLocale();\n this._locale = config && config._locale || getLocale();\n // const normalizedInput = normalizeObjectUnits(duration);\n const normalizedInput = duration;\n const years = normalizedInput.year || 0;\n const quarters = normalizedInput.quarter || 0;\n const months = normalizedInput.month || 0;\n const weeks = normalizedInput.week || 0;\n const days = normalizedInput.day || 0;\n const hours = normalizedInput.hours || 0;\n const minutes = normalizedInput.minutes || 0;\n const seconds = normalizedInput.seconds || 0;\n const milliseconds = normalizedInput.milliseconds || 0;\n this._isValid = isDurationValid(normalizedInput);\n // representation for dateAddRemove\n this._milliseconds = +milliseconds + seconds * 1000 + minutes * 60 * 1000 +\n // 1000 * 60\n hours * 1000 * 60 * 60; // using 1000 * 60 * 60\n // instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n // this._data = {};\n // this._locale = getLocale();\n // this._bubble();\n return bubble(this);\n }\n isValid() {\n return this._isValid;\n }\n humanize(withSuffix) {\n // throw new Error(`TODO: implement`);\n if (!this.isValid()) {\n return this.localeData().invalidDate;\n }\n const locale = this.localeData();\n let output = relativeTime(this, !withSuffix, locale);\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n return locale.postformat(output);\n }\n localeData() {\n return this._locale;\n }\n locale(localeKey) {\n if (!localeKey) {\n return this._locale._abbr;\n }\n this._locale = getLocale(localeKey) || this._locale;\n return this;\n }\n abs() {\n const mathAbs = Math.abs;\n const data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.month = mathAbs(data.month);\n data.year = mathAbs(data.year);\n return this;\n }\n as(_units) {\n if (!this.isValid()) {\n return NaN;\n }\n let days;\n let months;\n const milliseconds = this._milliseconds;\n const units = normalizeUnits(_units);\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n return units === 'month' ? months : months / 12;\n }\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hours':\n return days * 24 + milliseconds / 36e5;\n case 'minutes':\n return days * 1440 + milliseconds / 6e4;\n case 'seconds':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'milliseconds':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error(`Unknown unit ${units}`);\n }\n }\n valueOf() {\n if (!this.isValid()) {\n return NaN;\n }\n return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n }\n}\nfunction isDuration(obj) {\n return obj instanceof Duration;\n}\nfunction isValid(config) {\n if (config._isValid == null) {\n const flags = getParsingFlags(config);\n const parsedParts = Array.prototype.some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n let isNowValid = !isNaN(config._d && config._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n if (config._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n if (Object.isFrozen == null || !Object.isFrozen(config)) {\n config._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return config._isValid;\n}\nfunction createInvalid(config, flags) {\n config._d = new Date(NaN);\n Object.assign(getParsingFlags(config), flags || {\n userInvalidated: true\n });\n return config;\n}\nfunction markInvalid(config) {\n config._isValid = false;\n return config;\n}\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\nconst extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\nconst basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\nconst tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\nconst isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/, true], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/, true], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/, true], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/, true], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/, true], ['YYYYMMDD', /\\d{8}/, true],\n// YYYYMM is NOT allowed by the standard\n['GGGG[W]WWE', /\\d{4}W\\d{3}/, true], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/, true]];\n// iso time formats and regexes\nconst isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]];\nconst aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\nconst obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\nconst rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n// date from iso format\nfunction configFromISO(config) {\n if (!isString(config._i)) {\n return config;\n }\n const input = config._i;\n const match = extendedIsoRegex.exec(input) || basicIsoRegex.exec(input);\n let allowTime;\n let dateFormat;\n let timeFormat;\n let tzFormat;\n if (!match) {\n config._isValid = false;\n return config;\n }\n // getParsingFlags(config).iso = true;\n let i;\n let l;\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return config;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return config;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return config;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return config;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n return configFromStringAndFormat(config);\n}\nfunction extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n return result;\n}\nfunction untruncateYear(yearStr) {\n const year = parseInt(yearStr, 10);\n return year <= 49 ? year + 2000 : year;\n}\nfunction preprocessRFC2822(str) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return str.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').trim();\n}\nfunction checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n const weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr);\n const weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n}\nfunction calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n const hm = parseInt(numOffset, 10);\n const m = hm % 100;\n const h = (hm - m) / 100;\n return h * 60 + m;\n }\n}\n// date and time from ref 2822 format\nfunction configFromRFC2822(config) {\n if (!isString(config._i)) {\n return config;\n }\n const match = rfc2822.exec(preprocessRFC2822(config._i));\n if (!match) {\n return markInvalid(config);\n }\n const parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return config;\n }\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n getParsingFlags(config).rfc2822 = true;\n return config;\n}\n// date from iso format or fallback\nfunction configFromString(config) {\n if (!isString(config._i)) {\n return config;\n }\n const matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return config;\n }\n // todo: update logic processing\n // isISO -> configFromISO\n // isRFC -> configFromRFC\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return config;\n }\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return config;\n }\n // Final attempt, use Input Fallback\n // hooks.createFromInputFallback(config);\n return createInvalid(config);\n}\n// hooks.createFromInputFallback = deprecate(\n// 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n// 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n// 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n// 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n// function (config) {\n// config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n// }\n// );\n\n// moment.js\n// version : 2.18.1\n// authors : Tim Wood, Iskren Chernev, Moment.js contributors\n// license : MIT\n// momentjs.com\nfunction formatDate(date, format, locale, isUTC, offset = 0) {\n const _locale = getLocale(locale || 'en');\n if (!_locale) {\n throw new Error(`Locale \"${locale}\" is not defined, please add it with \"defineLocale(...)\"`);\n }\n const _format = format || (isUTC ? 'YYYY-MM-DDTHH:mm:ss[Z]' : 'YYYY-MM-DDTHH:mm:ssZ');\n const output = formatMoment(date, _format, _locale, isUTC, offset);\n if (!output) {\n return output;\n }\n return _locale.postformat(output);\n}\n// format date using native date object\nfunction formatMoment(date, _format, locale, isUTC, offset = 0) {\n if (!isDateValid(date)) {\n return locale.invalidDate;\n }\n const format = expandFormat(_format, locale);\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](date, locale, isUTC, offset);\n}\nfunction expandFormat(_format, locale) {\n let format = _format;\n let i = 5;\n const localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n const replaceLongDateFormatTokens = input => {\n return locale.formatLongDate(input) || input;\n };\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n return format;\n}\n\n// Pick the first defined of two or three arguments.\nfunction defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n}\nfunction currentDateArray(config) {\n const nowValue = new Date();\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nfunction configFromArray(config) {\n const input = [];\n let i;\n let date;\n let yearToUse;\n if (config._d) {\n return config;\n }\n const currentDate = currentDateArray(config);\n // compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n // if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n date = new Date(Date.UTC(yearToUse, 0, config._dayOfYear));\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n }\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n // eslint-disable-next-line prefer-spread\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n const expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n // check for mismatching day of week\n if (config._w && typeof config._w[\"d\"] !== 'undefined' && config._w[\"d\"] !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n return config;\n}\nfunction dayOfYearFromWeekInfo(config) {\n let weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n const w = config._w;\n if (w[\"GG\"] != null || w[\"W\"] != null || w[\"E\"] != null) {\n dow = 1;\n doy = 4;\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w[\"GG\"], config._a[YEAR], weekOfYear(new Date(), 1, 4).year);\n week = defaults(w[\"W\"], 1);\n weekday = defaults(w[\"E\"], 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n const curWeek = weekOfYear(new Date(), dow, doy);\n weekYear = defaults(w[\"gg\"], config._a[YEAR], curWeek.year);\n // Default to current week.\n week = defaults(w[\"w\"], curWeek.week);\n if (w[\"d\"] != null) {\n // weekday -- low day numbers are considered next week\n weekday = w[\"d\"];\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w[\"e\"] != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w[\"e\"] + dow;\n if (w[\"e\"] < 0 || w[\"e\"] > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n return config;\n}\nfunction checkOverflow(config) {\n let overflow;\n const a = config._a;\n if (a && getParsingFlags(config).overflow === -2) {\n // todo: fix this sh*t\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n if (getParsingFlags(config)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(config)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(config)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n getParsingFlags(config).overflow = overflow;\n }\n return config;\n}\n\n// constant that refers to the ISO standard\n// hooks.ISO_8601 = function () {};\nconst ISO_8601 = 'ISO_8601';\n// constant that refers to the RFC 2822 form\n// hooks.RFC_2822 = function () {};\nconst RFC_2822 = 'RFC_2822';\n// date from string and format string\nfunction configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === ISO_8601) {\n return configFromISO(config);\n }\n if (config._f === RFC_2822) {\n return configFromRFC2822(config);\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n if (isArray(config._f) || !config._i && config._i !== 0) {\n return config;\n }\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n let input = config._i.toString();\n let totalParsedInputLength = 0;\n const inputLength = input.length;\n const tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n let i;\n let token;\n let parsedInput;\n let skipped;\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (input.match(getParseRegexForToken(token, config._locale)) || [])[0];\n if (parsedInput) {\n skipped = input.substr(0, input.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n input = input.slice(input.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = inputLength - totalParsedInputLength;\n if (input.length > 0) {\n getParsingFlags(config).unusedInput.push(input);\n }\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = void 0;\n }\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n configFromArray(config);\n return checkOverflow(config);\n}\nfunction meridiemFixWrap(locale, _hour, meridiem) {\n let hour = _hour;\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n }\n if (locale.isPM == null) {\n // this is not supposed to happen\n return hour;\n }\n // Fallback\n const isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n}\n\n// date from string and array of format strings\nfunction configFromStringAndArray(config) {\n let tempConfig;\n let bestMoment;\n let scoreToBeat;\n let currentScore;\n if (!config._f || config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n return createInvalid(config);\n }\n let i;\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = Object.assign({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n if (!isValid(tempConfig)) {\n continue;\n }\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n // or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n return Object.assign(config, bestMoment || tempConfig);\n}\nfunction configFromObject(config) {\n if (config._d) {\n return config;\n }\n const input = config._i;\n if (isObject(input)) {\n const i = normalizeObjectUnits(input);\n config._a = [i.year, i.month, i.day, i.hours, i.minutes, i.seconds, i.milliseconds]\n // todo: obsolete -> remove it\n .map(obj => isString(obj) ? parseInt(obj, 10) : obj);\n }\n return configFromArray(config);\n}\nfunction createFromConfig(config) {\n const res = checkOverflow(prepareConfig(config));\n // todo: remove, in moment.js it's never called cuz of moment constructor\n res._d = new Date(res._d != null ? res._d.getTime() : NaN);\n if (!isValid(Object.assign({}, res, {\n _isValid: null\n }))) {\n res._d = new Date(NaN);\n }\n // todo: update offset\n /*if (res._nextDay) {\n // Adding is smart enough around DST\n res._d = add(res._d, 1, 'day');\n res._nextDay = undefined;\n }*/\n return res;\n}\nfunction prepareConfig(config) {\n let input = config._i;\n const format = config._f;\n config._locale = config._locale || getLocale(config._l);\n if (input === null || format === undefined && input === '') {\n return createInvalid(config, {\n nullInput: true\n });\n }\n if (isString(input)) {\n config._i = input = config._locale.preparse(input, format);\n }\n if (isDate(input)) {\n config._d = cloneDate(input);\n return config;\n }\n // todo: add check for recursion\n if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n if (!isValid(config)) {\n config._d = null;\n }\n return config;\n}\nfunction configFromInput(config) {\n const input = config._i;\n if (isUndefined(input)) {\n config._d = new Date();\n } else if (isDate(input)) {\n config._d = cloneDate(input);\n } else if (isString(input)) {\n configFromString(config);\n } else if (isArray(input) && input.length) {\n const _arr = input.slice(0);\n config._a = _arr.map(obj => isString(obj) ? parseInt(obj, 10) : obj);\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n // hooks.createFromInputFallback(config);\n return createInvalid(config);\n }\n return config;\n}\nfunction createLocalOrUTC(input, format, localeKey, strict, isUTC) {\n const config = {};\n let _input = input;\n // params switch -> skip; testing it well\n // if (localeKey === true || localeKey === false) {\n // strict = localeKey;\n // localeKey = undefined;\n // }\n // todo: fail fast and return not valid date\n if (isObject(_input) && isObjectEmpty(_input) || isArray(_input) && _input.length === 0) {\n _input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n // config._isAMomentObject = true;\n config._useUTC = config._isUTC = isUTC;\n config._l = localeKey;\n config._i = _input;\n config._f = format;\n config._strict = strict;\n return createFromConfig(config);\n}\nfunction parseDate(input, format, localeKey, strict, isUTC) {\n if (isDate(input)) {\n return input;\n }\n const config = createLocalOrUTC(input, format, localeKey, strict, isUTC);\n return config._d;\n}\nfunction utcAsLocal(date) {\n if (!(date instanceof Date)) {\n return null;\n }\n return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n}\nfunction absRound(num) {\n return num < 0 ? Math.round(num * -1) * -1 : Math.round(num);\n}\nfunction isAfter(date1, date2, units = 'milliseconds') {\n if (!date1 || !date2) {\n return false;\n }\n if (units === 'milliseconds') {\n return date1.valueOf() > date2.valueOf();\n }\n return date2.valueOf() < startOf(date1, units).valueOf();\n}\nfunction isBefore(date1, date2, units = 'milliseconds') {\n if (!date1 || !date2) {\n return false;\n }\n if (units === 'milliseconds') {\n return date1.valueOf() < date2.valueOf();\n }\n return endOf(date1, units).valueOf() < date2.valueOf();\n}\nfunction isDisabledDay(date, daysDisabled) {\n if (typeof daysDisabled === 'undefined' || !daysDisabled || !daysDisabled.length) {\n return false;\n }\n return daysDisabled.some(day => day === date.getDay());\n}\nfunction isBetween(date, from, to, units, inclusivity = '()') {\n const leftBound = inclusivity[0] === '(' ? isAfter(date, from, units) : !isBefore(date, from, units);\n const rightBound = inclusivity[1] === ')' ? isBefore(date, to, units) : !isAfter(date, to, units);\n return leftBound && rightBound;\n}\nfunction isSame(date1, date2, units = 'milliseconds') {\n if (!date1 || !date2) {\n return false;\n }\n if (units === 'milliseconds') {\n return date1.valueOf() === date2.valueOf();\n }\n const inputMs = date2.valueOf();\n return startOf(date1, units).valueOf() <= inputMs && inputMs <= endOf(date1, units).valueOf();\n}\nfunction isSameDay(date1, date2) {\n return date1.getDay() == date2.getDay();\n}\nfunction isSameOrAfter(date1, date2, units) {\n return isSame(date1, date2, units) || isAfter(date1, date2, units);\n}\nfunction isSameOrBefore(date1, date2, units) {\n return isSame(date1, date2, units) || isBefore(date1, date2, units);\n}\n\n// ASP.NET json date format regex\nconst aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n// and further modified to allow for strings containing both week and day\nconst isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\nfunction createDuration(input, key, config = {}) {\n const duration = convertDuration(input, key);\n // matching against regexp is expensive, do it on demand\n return new Duration(duration, config);\n}\nfunction convertDuration(input, key) {\n // checks for null or undefined\n if (input == null) {\n return {};\n }\n if (isDuration(input)) {\n return {\n milliseconds: input._milliseconds,\n day: input._days,\n month: input._months\n };\n }\n if (isNumber(input)) {\n // duration = {};\n return key ? {\n [key]: input\n } : {\n milliseconds: input\n };\n }\n if (isString(input)) {\n let match = aspNetRegex.exec(input);\n if (match) {\n const sign = match[1] === '-' ? -1 : 1;\n return {\n year: 0,\n day: toInt(match[DATE]) * sign,\n hours: toInt(match[HOUR]) * sign,\n minutes: toInt(match[MINUTE]) * sign,\n seconds: toInt(match[SECOND]) * sign,\n // the millisecond decimal point is included in the match\n milliseconds: toInt(absRound(toInt(match[MILLISECOND]) * 1000)) * sign\n };\n }\n match = isoRegex.exec(input);\n if (match) {\n const sign = match[1] === '-' ? -1 : match[1] === '+' ? 1 : 1;\n return {\n year: parseIso(match[2], sign),\n month: parseIso(match[3], sign),\n week: parseIso(match[4], sign),\n day: parseIso(match[5], sign),\n hours: parseIso(match[6], sign),\n minutes: parseIso(match[7], sign),\n seconds: parseIso(match[8], sign)\n };\n }\n }\n if (isObject(input) && ('from' in input || 'to' in input)) {\n const diffRes = momentsDifference(parseDate(input.from), parseDate(input.to));\n return {\n milliseconds: diffRes.milliseconds,\n month: diffRes.months\n };\n }\n return input;\n}\n// createDuration.fn = Duration.prototype;\n// createDuration.invalid = invalid;\nfunction parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n const res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\nfunction positiveMomentsDifference(base, other) {\n const res = {\n milliseconds: 0,\n months: 0\n };\n res.months = getMonth(other) - getMonth(base) + (getFullYear(other) - getFullYear(base)) * 12;\n const _basePlus = add(cloneDate(base), res.months, 'month');\n if (isAfter(_basePlus, other)) {\n --res.months;\n }\n res.milliseconds = +other - +add(cloneDate(base), res.months, 'month');\n return res;\n}\nfunction momentsDifference(base, other) {\n if (!(isDateValid(base) && isDateValid(other))) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n let res;\n const _other = cloneWithOffset(other, base, {\n _offset: base.getTimezoneOffset()\n });\n if (isBefore(base, _other)) {\n res = positiveMomentsDifference(base, _other);\n } else {\n res = positiveMomentsDifference(_other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n return res;\n}\nfunction add(date, val, period, isUTC) {\n const dur = createDuration(val, period);\n return addSubtract(date, dur, 1, isUTC);\n}\nfunction subtract(date, val, period, isUTC) {\n const dur = createDuration(val, period);\n return addSubtract(date, dur, -1, isUTC);\n}\nfunction addSubtract(date, duration, isAdding, isUTC) {\n const milliseconds = duration._milliseconds;\n const days = absRound(duration._days);\n const months = absRound(duration._months);\n // todo: add timezones support\n // const _updateOffset = updateOffset == null ? true : updateOffset;\n if (months) {\n setMonth(date, getMonth(date, isUTC) + months * isAdding, isUTC);\n }\n if (days) {\n setDate(date, getDate(date, isUTC) + days * isAdding, isUTC);\n }\n if (milliseconds) {\n setTime(date, getTime(date) + milliseconds * isAdding);\n }\n return cloneDate(date);\n // todo: add timezones support\n // if (_updateOffset) {\n // hooks.updateOffset(date, days || months);\n // }\n}\nfunction initDayOfWeek() {\n // FORMATTING\n addFormatToken('d', null, 'do', function (date, opts) {\n return getDay(date, opts.isUTC).toString(10);\n });\n addFormatToken('dd', null, null, function (date, opts) {\n return opts.locale.weekdaysMin(date, opts.format, opts.isUTC);\n });\n addFormatToken('ddd', null, null, function (date, opts) {\n return opts.locale.weekdaysShort(date, opts.format, opts.isUTC);\n });\n addFormatToken('dddd', null, null, function (date, opts) {\n return opts.locale.weekdays(date, opts.format, opts.isUTC);\n });\n addFormatToken('e', null, null, function (date, opts) {\n return getLocaleDayOfWeek(date, opts.locale, opts.isUTC).toString(10);\n // return getDay(date, opts.isUTC).toString(10);\n });\n addFormatToken('E', null, null, function (date, opts) {\n return getISODayOfWeek(date, opts.isUTC).toString(10);\n });\n // ALIASES\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n // PARSING\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n const weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week[\"d\"] = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = !!input;\n }\n return config;\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n return config;\n });\n}\n// HELPERS\nfunction parseWeekday(input, locale) {\n if (!isString(input)) {\n return input;\n }\n const _num = parseInt(input, 10);\n if (!isNaN(_num)) {\n return _num;\n }\n const _weekDay = locale.weekdaysParse(input);\n if (isNumber(_weekDay)) {\n return _weekDay;\n }\n return null;\n}\nfunction parseIsoWeekday(input, locale = getLocale()) {\n if (isString(input)) {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNumber(input) && isNaN(input) ? null : input;\n}\n// MOMENTS\nfunction getSetDayOfWeek(date, input, opts) {\n if (!input) {\n return getDayOfWeek(date, opts.isUTC);\n }\n return setDayOfWeek(date, input, opts.locale, opts.isUTC);\n}\nfunction setDayOfWeek(date, input, locale = getLocale(), isUTC) {\n const day = getDay(date, isUTC);\n const _input = parseWeekday(input, locale);\n return add(date, _input - day, 'day');\n}\nfunction getDayOfWeek(date, isUTC) {\n return getDay(date, isUTC);\n}\n/********************************************/\n// todo: utc\n// getSetLocaleDayOfWeek\nfunction getLocaleDayOfWeek(date, locale = getLocale(), isUTC) {\n return (getDay(date, isUTC) + 7 - locale.firstDayOfWeek()) % 7;\n}\nfunction setLocaleDayOfWeek(date, input, opts = {}) {\n const weekday = getLocaleDayOfWeek(date, opts.locale, opts.isUTC);\n return add(date, input - weekday, 'day');\n}\n// getSetISODayOfWeek\nfunction getISODayOfWeek(date, isUTC) {\n return getDay(date, isUTC) || 7;\n}\nfunction setISODayOfWeek(date, input, opts = {}) {\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n const weekday = parseIsoWeekday(input, opts.locale);\n return setDayOfWeek(date, getDayOfWeek(date) % 7 ? weekday : weekday - 7);\n}\n\n//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\nconst symbolMap$2 = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠'\n};\nconst numberMap$2 = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n};\nconst pluralForm$1 = function (num) {\n return num === 0 ? 0 : num === 1 ? 1 : num === 2 ? 2 : num % 100 >= 3 && num % 100 <= 10 ? 3 : num % 100 >= 11 ? 4 : 5;\n};\nconst plurals$1 = {\n s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n};\nconst pluralize$1 = function (u) {\n return function (num, withoutSuffix) {\n const f = pluralForm$1(num);\n let str = plurals$1[u][pluralForm$1(num)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, num.toString());\n };\n};\nconst months$3 = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'];\nconst arLocale = {\n abbr: 'ar',\n months: months$3,\n monthsShort: months$3,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM(input) {\n return 'م' === input;\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize$1('s'),\n ss: pluralize$1('s'),\n m: pluralize$1('m'),\n mm: pluralize$1('m'),\n h: pluralize$1('h'),\n hh: pluralize$1('h'),\n d: pluralize$1('d'),\n dd: pluralize$1('d'),\n M: pluralize$1('M'),\n MM: pluralize$1('M'),\n y: pluralize$1('y'),\n yy: pluralize$1('y')\n },\n preparse(str) {\n return str.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap$2[match];\n }).replace(/،/g, ',');\n },\n postformat(str) {\n return str.replace(/\\d/g, function (match) {\n return symbolMap$2[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Iskren Ivov Chernev : https://github.com/ichernev\n//! author : Kunal Marwaha : https://github.com/marwahaha\n//! author : Matt Grande : https://github.com/mattgrande\n//! author : Isaac Cambron : https://github.com/icambron\n//! author : Venelin Manchev : https://github.com/vmanchev\nconst bgLocale = {\n abbr: 'bg',\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort: 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function (d) {\n switch (d) {\n case 0:\n case 3:\n case 6:\n return '[В изминалата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[В изминалия] dddd [в] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дни',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (_num) {\n const number = Number(_num);\n let lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Xavier Arbat : https://github.com/XavisaurusRex\nlet monthsShortDot$5 = 'gen._feb._mar._abr._mai._jun._jul._ago._set._oct._nov._des.'.split('_'),\n monthsShort$7 = 'ene_feb_mar_abr_mai_jun_jul_ago_set_oct_nov_des'.split('_');\nlet monthsParse$6 = [/^gen/i, /^feb/i, /^mar/i, /^abr/i, /^mai/i, /^jun/i, /^jul/i, /^ago/i, /^set/i, /^oct/i, /^nov/i, /^des/i];\nlet monthsRegex$5 = /^(gener|febrer|març|abril|maig|juny|juliol|agost|setembre|octubre|novembre|desembre|gen\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|jun\\.?|jul\\.?|ago\\.?|set\\.?|oct\\.?|nov\\.?|des\\.?)/i;\nconst caLocale = {\n abbr: 'ca',\n months: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortDot$5;\n }\n if (/-MMM-/.test(format)) {\n return monthsShort$7[getMonth(date, isUTC)];\n }\n return monthsShortDot$5[getMonth(date, isUTC)];\n },\n monthsRegex: monthsRegex$5,\n monthsShortRegex: monthsRegex$5,\n monthsStrictRegex: /^(gener|febrer|març|abril|maig|juny|juliol|agost|setembre|octubre|novembre|desembre)/i,\n monthsShortStrictRegex: /^(gen\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|jun\\.?|jul\\.?|ago\\.?|set\\.?|oct\\.?|nov\\.?|des\\.?)/i,\n monthsParse: monthsParse$6,\n longMonthsParse: monthsParse$6,\n shortMonthsParse: monthsParse$6,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\n weekdaysShort: 'diu._dil._dim._dix._dij._div._dis.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay(date) {\n return '[avui a ' + ('la' + (getHours(date) !== 1) ? 'les' : '') + '] LT';\n },\n nextDay(date) {\n return '[dema a ' + ('la' + (getHours(date) !== 1) ? 'les' : '') + '] LT';\n },\n nextWeek(date) {\n return 'dddd [a ' + ('la' + (getHours(date) !== 1) ? 'les' : '') + '] LT';\n },\n lastDay(date) {\n return '[ahir a ' + ('la' + (getHours(date) !== 1) ? 'les' : '') + '] LT';\n },\n lastWeek(date) {\n return '[el] dddd [' + ('passada la ' + (getHours(date) !== 1) ? 'passades les' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|on|er|rt|é)/,\n ordinal(_num) {\n const num = Number(_num);\n const output = num > 4 ? 'é' : num === 1 || num === 3 ? 'r' : num === 2 ? 'n' : num === 4 ? 't' : 'é';\n return num + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\nconst months$2 = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_');\nconst monthsShort$6 = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');\nfunction plural$4(num) {\n return num > 1 && num < 5 && ~~(num / 10) !== 1;\n}\nfunction translate$6(num, withoutSuffix, key, isFuture) {\n const result = num + ' ';\n switch (key) {\n case 's':\n // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss':\n // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural$4(num) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n // break;\n case 'm':\n // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm':\n // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural$4(num) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n // break;\n case 'h':\n // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh':\n // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural$4(num) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n // break;\n case 'd':\n // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd':\n // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural$4(num) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n // break;\n case 'M':\n // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM':\n // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural$4(num) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n // break;\n case 'y':\n // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy':\n // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural$4(num) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n // break;\n }\n}\nconst csLocale = {\n abbr: 'cs',\n months: months$2,\n monthsShort: monthsShort$6,\n monthsParse: function (months, monthsShort) {\n let i,\n _monthsParse = [];\n for (i = 0; i < 12; i++) {\n // use custom parser to solve problem with July (červenec)\n _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');\n }\n return _monthsParse;\n }(months$2, monthsShort$6),\n shortMonthsParse: function (monthsShort) {\n let i,\n _shortMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');\n }\n return _shortMonthsParse;\n }(monthsShort$6),\n longMonthsParse: function (months) {\n let i,\n _longMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');\n }\n return _longMonthsParse;\n }(months$2),\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY'\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate$6,\n ss: translate$6,\n m: translate$6,\n mm: translate$6,\n h: translate$6,\n hh: translate$6,\n d: translate$6,\n dd: translate$6,\n M: translate$6,\n MM: translate$6,\n y: translate$6,\n yy: translate$6\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Danish (Denmark) [da]\n//! author : Per Hansen : https://github.com/perhp\nconst daLocale = {\n abbr: 'da',\n months: 'Januar_Februar_Marts_April_Maj_Juni_Juli_August_September_Oktober_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_Maj_Jun_Jul_Aug_Sep_Okt_Nov_Dec'.split('_'),\n weekdays: 'Søndag_Mandag_Tirsdag_Onsdag_Torsdag_Fredag_Lørdag'.split('_'),\n weekdaysShort: 'Søn_Man_Tir_Ons_Tor_Fre_Lør'.split('_'),\n weekdaysMin: 'Sø_Ma_Ti_On_To_Fr_Lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\nfunction processRelativeTime$2(num, withoutSuffix, key, isFuture) {\n const format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [num + ' Tage', num + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [num + ' Monate', num + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [num + ' Jahre', num + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n}\nconst deLocale = {\n abbr: 'de',\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime$2,\n mm: '%d Minuten',\n h: processRelativeTime$2,\n hh: '%d Stunden',\n d: processRelativeTime$2,\n dd: processRelativeTime$2,\n M: processRelativeTime$2,\n MM: processRelativeTime$2,\n y: processRelativeTime$2,\n yy: processRelativeTime$2\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\nconst enGbLocale = {\n abbr: 'en-gb',\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal(_num) {\n const num = Number(_num);\n const b = num % 10,\n output = ~~(num % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return num + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\nlet monthsShortDot$4 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort$5 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\nlet monthsParse$5 = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\nlet monthsRegex$4 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\nconst esDoLocale = {\n abbr: 'es-do',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortDot$4;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$5[getMonth(date, isUTC)];\n } else {\n return monthsShortDot$4[getMonth(date, isUTC)];\n }\n },\n monthsRegex: monthsRegex$4,\n monthsShortRegex: monthsRegex$4,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$5,\n longMonthsParse: monthsParse$5,\n shortMonthsParse: monthsParse$5,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay(date) {\n return '[hoy a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n nextDay(date) {\n return '[mañana a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n nextWeek(date) {\n return 'dddd [a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n lastDay(date) {\n return '[ayer a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n lastWeek(date) {\n return '[el] dddd [pasado a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\nlet monthsShortDot$3 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\nlet monthsParse$4 = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\nlet monthsRegex$3 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\nconst esLocale = {\n abbr: 'es',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortDot$3;\n }\n if (/-MMM-/.test(format)) {\n return monthsShort$4[getMonth(date, isUTC)];\n }\n return monthsShortDot$3[getMonth(date, isUTC)];\n },\n monthsRegex: monthsRegex$3,\n monthsShortRegex: monthsRegex$3,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$4,\n longMonthsParse: monthsParse$4,\n shortMonthsParse: monthsParse$4,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay(date) {\n return '[hoy a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n nextDay(date) {\n return '[mañana a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n nextWeek(date) {\n return 'dddd [a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n lastDay(date) {\n return '[ayer a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n lastWeek(date) {\n return '[el] dddd [pasado a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Spanish (Puerto Rico) [es-pr]\nlet monthsShortDot$2 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_');\nlet monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\nconst esPrLocale = {\n abbr: 'es-pr',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortDot$2;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$3[getMonth(date, isUTC)];\n } else {\n return monthsShortDot$2[getMonth(date, isUTC)];\n }\n },\n monthsParseExact: true,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay(date) {\n return '[hoy a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n nextDay(date) {\n return '[mañana a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n nextWeek(date) {\n return 'dddd [a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n lastDay(date) {\n return '[ayer a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n lastWeek(date) {\n return '[el] dddd [pasado a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\nlet monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_');\nlet monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\nconst esUsLocale = {\n abbr: 'es-us',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortDot$1;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$2[getMonth(date, isUTC)];\n } else {\n return monthsShortDot$1[getMonth(date, isUTC)];\n }\n },\n monthsParseExact: true,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM [de] D [de] YYYY',\n LLL: 'MMMM [de] D [de] YYYY h:mm A',\n LLLL: 'dddd, MMMM [de] D [de] YYYY h:mm A'\n },\n calendar: {\n sameDay(date) {\n return '[hoy a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n nextDay(date) {\n return '[mañana a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n nextWeek(date) {\n return 'dddd [a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n lastDay(date) {\n return '[ayer a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n lastWeek(date) {\n return '[el] dddd [pasado a la' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Chris Gedrim : https://github.com/a90machado\nconst processRelativeTime$1 = function (num, withoutSuffix, key, isFuture) {\n const format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [num + 'sekundi', num + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [num + ' minuti', num + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [num + ' tunni', num + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [num + ' kuu', num + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [num + ' aasta', num + ' aastat']\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n};\nconst etLocale = {\n abbr: 'et',\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime$1,\n ss: processRelativeTime$1,\n m: processRelativeTime$1,\n mm: processRelativeTime$1,\n h: processRelativeTime$1,\n hh: processRelativeTime$1,\n d: processRelativeTime$1,\n dd: '%d päeva',\n M: processRelativeTime$1,\n MM: processRelativeTime$1,\n y: processRelativeTime$1,\n yy: processRelativeTime$1\n },\n dayOfMonthOrdinalParse: /\\d{1,2}./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n// https://github.com/moment/moment/blob/develop/locale/fi.js\nvar numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', numbersPast[7], numbersPast[8], numbersPast[9]];\nfunction translate$5(num, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(num, isFuture) + ' ' + result;\n return result;\n}\nfunction verbalNumber(num, isFuture) {\n return num < 10 ? isFuture ? numbersFuture[num] : numbersPast[num] : num;\n}\nconst fiLocale = {\n abbr: 'fi',\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate$5,\n ss: translate$5,\n m: translate$5,\n mm: translate$5,\n h: translate$5,\n hh: translate$5,\n d: translate$5,\n dd: translate$5,\n M: translate$5,\n MM: translate$5,\n y: translate$5,\n yy: translate$5\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\nconst frLocale = {\n abbr: 'fr',\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal(_num, period) {\n const num = Number(_num);\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return num + (num === 1 ? 'er' : '');\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return num + (num === 1 ? 'er' : 'e');\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return num + (num === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : French Canadian [fr-ca]\n//! author : Ali Hasan : https://github.com/alihasan00\nconst frCaLocale = {\n abbr: 'fr-ca',\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e|)/,\n ordinal(_num, period) {\n const num = Number(_num);\n switch (period) {\n case 'D':\n return num + (num === 1 ? 'er' : '');\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return num + (num === 1 ? 'er' : 'e');\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return num + (num === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Darío Beiró : https://github.com/quinobravo\nlet monthsShortDot = 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsShort$1 = 'xan_feb_mar_abr_mai_xuñ_xul_ago_set_out_nov_dec'.split('_');\nlet monthsParse$3 = [/^xan/i, /^feb/i, /^mar/i, /^abr/i, /^mai/i, /^xuñ/i, /^xul/i, /^ago/i, /^set/i, /^out/i, /^nov/i, /^dec/i];\nlet monthsRegex$2 = /^(xaneiro|febreiro|marzo|abril|maio|xuño|xullo|agosto|setembro|outubro|novembro|decembro|xan\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|xuñ\\.?|xul\\.?|ago\\.?|set\\.?|out\\.?|nov\\.?|dec\\.?)/i;\nconst glLocale = {\n abbr: 'gl',\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortDot;\n }\n if (/-MMM-/.test(format)) {\n return monthsShort$1[getMonth(date, isUTC)];\n }\n return monthsShortDot[getMonth(date, isUTC)];\n },\n monthsRegex: monthsRegex$2,\n monthsShortRegex: monthsRegex$2,\n monthsStrictRegex: /^(xaneiro|febreiro|marzo|abril|maio|xuño|xullo|agosto|setembro|outubro|novembro|decembro)/i,\n monthsShortStrictRegex: /^(xan\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|xuñ\\.?|xul\\.?|ago\\.?|set\\.?|out\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse$3,\n longMonthsParse: monthsParse$3,\n shortMonthsParse: monthsParse$3,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay(date) {\n return '[hoxe á' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n nextDay(date) {\n return '[mañan á' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n nextWeek(date) {\n return 'dddd [á' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n lastDay(date) {\n return '[onte á' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n lastWeek(date) {\n return '[o] dddd [pasado á' + (getHours(date) !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'fai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\nconst heLocale = {\n abbr: 'he',\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),\n monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh(num) {\n if (num === 2) {\n return 'שעתיים';\n }\n return num + ' שעות';\n },\n d: 'יום',\n dd(num) {\n if (num === 2) {\n return 'יומיים';\n }\n return num + ' ימים';\n },\n M: 'חודש',\n MM(num) {\n if (num === 2) {\n return 'חודשיים';\n }\n return num + ' חודשים';\n },\n y: 'שנה',\n yy(num) {\n if (num === 2) {\n return 'שנתיים';\n } else if (num % 10 === 0 && num !== 10) {\n return num + ' שנה';\n }\n return num + ' שנים';\n }\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM(input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem(hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n }\n};\n\n//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\nlet symbolMap$1 = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०'\n },\n numberMap$1 = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\nconst hiLocale = {\n abbr: 'hi',\n months: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),\n monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे'\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष'\n },\n preparse(str) {\n return str.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap$1[match];\n });\n },\n postformat(str) {\n return str.replace(/\\d/g, function (match) {\n return symbolMap$1[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\nlet weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\nfunction translate$4(num, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return isFuture || withoutSuffix ? 'néhány másodperc' : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix ? ' másodperc' : ' másodperce');\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n}\nfunction week(date, isFuture) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[getDayOfWeek(date)] + '] LT[-kor]';\n}\nconst huLocale = {\n abbr: 'hu',\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort: 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM(input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem(hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek(date) {\n return week(date, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek(date) {\n return week(date, false);\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate$4,\n ss: translate$4,\n m: translate$4,\n mm: translate$4,\n h: translate$4,\n hh: translate$4,\n d: translate$4,\n dd: translate$4,\n M: translate$4,\n MM: translate$4,\n y: translate$4,\n yy: translate$4\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Danijel Grmec : https://github.com/cobaltsis\nconst hrLocale = {\n abbr: 'hr',\n months: 'Siječanj_Veljača_Ožujak_Travanj_Svibanj_Lipanj_Srpanj_Kolovoz_Rujan_Listopad_Studeni_Prosinac'.split('_'),\n monthsShort: 'Sij_Velj_Ožu_Tra_Svi_Lip_Srp_Kol_Ruj_Lis_Stu_Pro'.split('_'),\n weekdays: 'Nedjelja_Ponedjeljak_Utorak_Srijeda_Četvrtak_Petak_Subota'.split('_'),\n weekdaysShort: 'Ned_Pon_Uto_Sri_Čet_Pet_Sub'.split('_'),\n weekdaysMin: 'Ne_Po_Ut_Sr_Če_Pe_Su'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Danas u] LT',\n nextDay: '[Sutra u] LT',\n nextWeek: 'dddd [u] LT',\n lastDay: '[Jučer u] LT',\n lastWeek: '[Zadnji] dddd [u] LT',\n sameElse: 'L'\n },\n invalidDate: 'Neispravan datum',\n relativeTime: {\n future: 'za %s',\n past: '%s prije',\n s: 'nekoliko sekundi',\n ss: '%d sekundi',\n m: 'minuta',\n mm: '%d minuta',\n h: 'sat',\n hh: '%d sati',\n d: 'dan',\n dd: '%d dana',\n M: 'mjesec',\n MM: '%d mjeseci',\n y: 'godina',\n yy: '%d godina'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal(_num) {\n const num = Number(_num);\n const b = num % 10,\n output = ~~(num % 100 / 10) === 1 ? '.' : b === 1 ? '.' : b === 2 ? '.' : b === 3 ? '.' : '.';\n return num + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Indonesia [id]\n//! author : Romy Kusuma : https://github.com/rkusuma\n//! reference: https://github.com/moment/moment/blob/develop/locale/id.js\nconst idLocale = {\n abbr: 'id',\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\nconst itLocale = {\n abbr: 'it',\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future(num) {\n return (/^[0-9].+$/.test(num.toString(10)) ? 'tra' : 'in') + ' ' + num;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: 'un\\'ora',\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\nconst jaLocale = {\n abbr: 'ja',\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 HH:mm dddd',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日 HH:mm dddd'\n },\n meridiemParse: /午前|午後/i,\n isPM(input) {\n return input === '午後';\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: '[来週]dddd LT',\n lastDay: '[昨日] LT',\n lastWeek: '[前週]dddd LT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal(num, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + '日';\n default:\n return num.toString(10);\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年'\n }\n};\n\n//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/irakli-janiashvili\n//! author : Levan Tskipuri : https://github.com/tskipa\nconst kaLocale = {\n abbr: 'ka',\n months: {\n format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_'),\n standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_')\n },\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),\n isFormat: /(წინა|შემდეგ)/\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L'\n },\n relativeTime: {\n future(s) {\n var st = s.toString();\n return /(წამი|წუთი|საათი|წელი)/.test(st) ? st.replace(/ი$/, 'ში') : st + 'ში';\n },\n past(s) {\n var st = s.toString();\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(st)) {\n return st.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(st)) {\n return st.replace(/წელი$/, 'წლის წინ');\n }\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი'\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal(_num, _period) {\n const num = Number(_num);\n if (num === 0) {\n return num.toString();\n }\n if (num === 1) {\n return num + '-ლი';\n }\n if (num < 20 || num <= 100 && num % 20 === 0 || num % 100 === 0) {\n return 'მე-' + num;\n }\n return num + '-ე';\n },\n week: {\n dow: 1,\n doy: 4\n }\n};\n\n// ! moment.js locale configuration\n// ! locale : Kazakh [kk]\n// ! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\nconst suffixes$1 = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші'\n};\nconst kkLocale = {\n abbr: 'kk',\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal(_num) {\n const a = _num % 10;\n const b = _num >= 100 ? 100 : null;\n return _num + (suffixes$1[_num] || suffixes$1[a] || suffixes$1[b]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \nconst koLocale = {\n abbr: 'ko',\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm'\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (num, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + '일';\n case 'M':\n return num + '월';\n case 'w':\n case 'W':\n return num + '주';\n default:\n return num.toString(10);\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n }\n};\n\n//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Stanislavas Guk : https://github.com/ixoster\nconst units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus'\n};\nfunction translateSeconds(num, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n}\nfunction translateSingular(num, withoutSuffix, key, isFuture) {\n return withoutSuffix ? forms(key)[0] : isFuture ? forms(key)[1] : forms(key)[2];\n}\nfunction special(num) {\n return num % 10 === 0 || num > 10 && num < 20;\n}\nfunction forms(key) {\n return units[key].split('_');\n}\nfunction translate$3(num, withoutSuffix, key, isFuture) {\n let result = num + ' ';\n if (num === 1) {\n return result + translateSingular(num, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(num) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(num) ? forms(key)[1] : forms(key)[2]);\n }\n }\n}\nconst ltLocale = {\n abbr: 'lt',\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate$3,\n m: translateSingular,\n mm: translate$3,\n h: translateSingular,\n hh: translate$3,\n d: translateSingular,\n dd: translate$3,\n M: translateSingular,\n MM: translate$3,\n y: translateSingular,\n yy: translate$3\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal(num) {\n return num + '-oji';\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Matiss Janis Aboltins : https://github.com/matissjanis\nconst lvLocale = {\n abbr: 'lv',\n months: 'Janvāris_Februāris_Marts_Aprīlis_Maijs_Jūnijs_Jūlijs_Augusts_Septembris_Oktobris_Novembris_Decembris'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_Mai_Jūn_Jūl_Aug_Sep_Okt_Nov_Dec'.split('_'),\n weekdays: 'Svētdiena_Pirmdiena_Otrdiena_Trešdiena_Ceturtdiena_Piektdiena_Sestdiena'.split('_'),\n weekdaysShort: 'Svētd_Pirmd_Otrd_Trešd_Ceturtd_Piektd_Sestd'.split('_'),\n weekdaysMin: 'Sv_Pi_Ot_Tr_Ce_Pk_Se'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: 'dažām sekundēm',\n ss: '%d sekundēm',\n m: 'minūtes',\n mm: '%d minūtēm',\n h: 'stundas',\n hh: '%d stundām',\n d: 'dienas',\n dd: '%d dienām',\n M: 'mēneša',\n MM: '%d mēnešiem',\n y: 'gada',\n yy: '%d gadiem'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal(num) {\n return num + '.';\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\nfunction translate$2(num, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return num + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return num + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return num + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return num + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return num + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return num + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return num.toString(10);\n }\n}\nconst mnLocale = {\n abbr: 'mn',\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),\n monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm'\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate$2,\n ss: translate$2,\n m: translate$2,\n mm: translate$2,\n h: translate$2,\n hh: translate$2,\n d: translate$2,\n dd: translate$2,\n M: translate$2,\n MM: translate$2,\n y: translate$2,\n yy: translate$2\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (num, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + ' өдөр';\n default:\n return num.toString(10);\n }\n }\n};\n\n//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\nconst nbLocale = {\n abbr: 'nb',\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\nlet monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_');\nlet monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\nlet monthsParse$2 = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\nlet monthsRegex$1 = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\nconst nlBeLocale = {\n abbr: 'nl-be',\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortWithDots$1;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots$1[getMonth(date, isUTC)];\n } else {\n return monthsShortWithDots$1[getMonth(date, isUTC)];\n }\n },\n monthsRegex: monthsRegex$1,\n monthsShortRegex: monthsRegex$1,\n monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse$2,\n longMonthsParse: monthsParse$2,\n shortMonthsParse: monthsParse$2,\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal(_num) {\n const num = Number(_num);\n return num + (num === 1 || num === 8 || num >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\nlet monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\nlet monthsParse$1 = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\nlet monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\nconst nlLocale = {\n abbr: 'nl',\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[getMonth(date, isUTC)];\n } else {\n return monthsShortWithDots[getMonth(date, isUTC)];\n }\n },\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse$1,\n longMonthsParse: monthsParse$1,\n shortMonthsParse: monthsParse$1,\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal(_num) {\n const num = Number(_num);\n return num + (num === 1 || num === 8 || num >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\nlet monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_');\nlet monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');\nfunction plural$3(num) {\n return num % 10 < 5 && num % 10 > 1 && ~~(num / 10) % 10 !== 1;\n}\nfunction translate$1(num, withoutSuffix, key) {\n let result = num + ' ';\n switch (key) {\n case 'ss':\n return result + (plural$3(num) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural$3(num) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural$3(num) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural$3(num) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural$3(num) ? 'lata' : 'lat');\n }\n}\nconst plLocale = {\n abbr: 'pl',\n months(date, format, isUTC) {\n if (!date) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return '(' + monthsSubjective[getMonth(date, isUTC)] + '|' + monthsNominative[getMonth(date, isUTC)] + ')';\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[getMonth(date, isUTC)];\n } else {\n return monthsNominative[getMonth(date, isUTC)];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[W niedzielę o] LT';\n case 2:\n return '[We wtorek o] LT';\n case 3:\n return '[W środę o] LT';\n case 5:\n return '[W piątek o] LT';\n case 6:\n return '[W sobotę o] LT';\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 4:\n return '[W zeszłą czwartek o] LT';\n case 5:\n return '[W zeszłą piątek o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate$1,\n m: translate$1,\n mm: translate$1,\n h: translate$1,\n hh: translate$1,\n d: '1 dzień',\n dd: '%d dni',\n M: 'miesiąc',\n MM: translate$1,\n y: 'rok',\n yy: translate$1\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\nconst ptBrLocale = {\n abbr: 'pt-br',\n months: 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek(date) {\n return getDayOfWeek(date) === 0 || getDayOfWeek(date) === 6 ? '[Último] dddd [às] LT' :\n // Saturday + Sunday\n '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'em %s',\n past: '%s atrás',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº'\n};\n\n// ! moment.js locale configuration\n// ! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n// ! author : Earle white: https://github.com/5earle\nfunction relativeTimeWithPlural$2(num, withoutSuffix, key) {\n let format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n MM: 'luni',\n yy: 'ani'\n };\n let separator = ' ';\n if (num % 100 >= 20 || num >= 100 && num % 100 === 0) {\n separator = ' de ';\n }\n return num + separator + format[key];\n}\nconst roLocale = {\n abbr: 'ro',\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort: 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural$2,\n m: 'un minut',\n mm: relativeTimeWithPlural$2,\n h: 'o oră',\n hh: relativeTimeWithPlural$2,\n d: 'o zi',\n dd: relativeTimeWithPlural$2,\n M: 'o lună',\n MM: relativeTimeWithPlural$2,\n y: 'un an',\n yy: relativeTimeWithPlural$2\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! Author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\nfunction plural$2(word, num) {\n let forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n}\nfunction relativeTimeWithPlural$1(num, withoutSuffix, key) {\n let format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет'\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n }\n return num + ' ' + plural$2(format[key], +num);\n}\nlet monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];\n// http://new.gramota.ru/spravka/rules/139-prop : § 103\n// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\nconst ruLocale = {\n abbr: 'ru',\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку ?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\n },\n weekdays: {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n // Выражение, которое соотвествует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar: {\n sameDay: '[Сегодня в] LT',\n nextDay: '[Завтра в] LT',\n lastDay: '[Вчера в] LT',\n nextWeek(date, now) {\n if (getWeek(now) !== getWeek(date)) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[В следующее] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd [в] LT';\n }\n } else {\n if (getDayOfWeek(date) === 2) {\n return '[Во] dddd [в] LT';\n } else {\n return '[В] dddd [в] LT';\n }\n }\n },\n lastWeek(date, now) {\n if (getWeek(now) !== getWeek(date)) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[В прошлое] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd [в] LT';\n }\n } else {\n if (getDayOfWeek(date) === 2) {\n return '[Во] dddd [в] LT';\n } else {\n return '[В] dddd [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural$1,\n m: relativeTimeWithPlural$1,\n mm: relativeTimeWithPlural$1,\n h: 'час',\n hh: relativeTimeWithPlural$1,\n d: 'день',\n dd: relativeTimeWithPlural$1,\n M: 'месяц',\n MM: relativeTimeWithPlural$1,\n y: 'год',\n yy: relativeTimeWithPlural$1\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM(input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal(_num, period) {\n const num = Number(_num);\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return num + '-й';\n case 'D':\n return num + '-го';\n case 'w':\n case 'W':\n return num + '-я';\n default:\n return num.toString(10);\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Jozef Pažin : https://github.com/atiris\nconst months$1 = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_');\nconst monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\nfunction plural$1(num) {\n return num > 1 && num < 5 && ~~(num / 10) !== 1;\n}\nfunction translate(num, withoutSuffix, key, isFuture) {\n const result = num + ' ';\n switch (key) {\n case 's':\n // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss':\n // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(num) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n // break;\n case 'm':\n // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm':\n // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(num) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n // break;\n case 'h':\n // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh':\n // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(num) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n // break;\n case 'd':\n // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd':\n // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(num) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n // break;\n case 'M':\n // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM':\n // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(num) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n // break;\n case 'y':\n // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy':\n // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(num) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n // break;\n }\n}\nconst skLocale = {\n abbr: 'sk',\n months: months$1,\n monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY'\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'o %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : mihan : https://github.com/mihan\nfunction processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += withoutSuffix || isFuture ? 'sekund' : 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n}\nconst slLocale = {\n abbr: 'sl',\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n nextWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Agon Cecelia : https://github.com/agoncecelia\nconst sqLocale = {\n abbr: 'sq',\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Dielë_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'Di_He_Ma_Me_En_Pr_Sh'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'në %s',\n past: 'para %sve',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minut',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n // need clarification\n ordinal: '%d.',\n // need clarification\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\nconst svLocale = {\n abbr: 'sv',\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(e|a)/,\n ordinal(_num) {\n const num = Number(_num);\n let b = num % 10,\n output = ~~(num % 100 / 10) === 1 ? 'e' : b === 1 ? 'a' : b === 2 ? 'a' : b === 3 ? 'e' : 'e';\n return num + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n// moment.js locale configuration\n// locale : Thai [th]\n// author : Watcharapol Sanitwong : https://github.com/tumit\nconst thLocale = {\n abbr: 'th',\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM(input) {\n return input === 'หลังเที่ยง';\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี'\n }\n};\n\n// moment.js locale configuration\n// locale : Thai-Buddhist Era [th-be]\n// author : Watcharapol Sanitwong : https://github.com/tumit\nconst thBeLocale = {\n abbr: 'th-be',\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM(input) {\n return input === 'หลังเที่ยง';\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี'\n },\n preparse(str, format) {\n const _format = thBeLocale.longDateFormat[format] ? thBeLocale.longDateFormat[format] : format;\n // endsWith('YYYY')\n if (_format.indexOf('YYYY', _format.length - 'YYYY'.length) !== -1) {\n const ddMM = str.substr(0, str.length - 4);\n const yyyy = parseInt(str.substr(str.length - 4), 10) - 543;\n return ddMM + yyyy;\n }\n return str;\n },\n getFullYear(date, isUTC = false) {\n return 543 + (isUTC ? date.getUTCFullYear() : date.getFullYear());\n }\n};\n\n//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\nlet suffixes = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n 6: '\\'ncı',\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n};\nconst trLocale = {\n abbr: 'tr',\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,\n ordinal(_num) {\n const num = Number(_num);\n if (num === 0) {\n // special case for zero\n return num + '\\'ıncı';\n }\n let a = num % 10,\n b = num % 100 - a,\n c = num >= 100 ? 100 : null;\n return num + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\nfunction plural(word, num) {\n let forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n}\nfunction relativeTimeWithPlural(num, withoutSuffix, key) {\n let format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n }\n if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n }\n return num + ' ' + plural(format[key], +num);\n}\nfunction weekdaysCaseReplace(date, format, isUTC) {\n let weekdays = {\n nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n };\n if (!date) {\n return weekdays.nominative;\n }\n let nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format) ? 'accusative' : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format) ? 'genitive' : 'nominative';\n return weekdays[nounCase][getDayOfWeek(date, isUTC)];\n}\nfunction processHoursFunction(str) {\n return function (date) {\n return str + 'о' + (getHours(date) === 11 ? 'б' : '') + '] LT';\n };\n}\nconst ukLocale = {\n abbr: 'uk',\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),\n standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm'\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [')(date);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [')(date);\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM(input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal(_num, period) {\n const num = Number(_num);\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return num + '-й';\n case 'D':\n return num + '-го';\n default:\n return num.toString();\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Việt Nam [vi]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\nconst viLocale = {\n abbr: 'vi',\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n monthsShort: 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM(input) {\n return /^ch$/i.test(input);\n },\n meridiem(hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal(_num) {\n return '' + _num;\n },\n week: {\n dow: 1,\n // Thứ Hai là ngày đầu tuần.\n doy: 4 // Tuần chứa ngày 4 tháng 1 là tuần đầu tiên trong năm.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\nconst zhCnLocale = {\n abbr: 'zh-cn',\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem(hour, minute, isLower) {\n let hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal(_num, period) {\n const num = Number(_num);\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + '日';\n case 'M':\n return num + '月';\n case 'w':\n case 'W':\n return num + '周';\n default:\n return num.toString();\n }\n },\n relativeTime: {\n future: '%s内',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年'\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Meysam Bahadori: https://github.com/MeysamBahadori\nconst symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠'\n};\nconst numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n};\nconst pluralForm = function (num) {\n return num === 0 ? 0 : num === 1 ? 1 : num === 2 ? 2 : num % 100 >= 3 && num % 100 <= 10 ? 3 : num % 100 >= 11 ? 4 : 5;\n};\nvar plurals = {\n s: ['کمتر از یک ثانیه', 'یک ثانیه', ['دو ثانیه', 'دو ثانیه'], '%d ثانیه', '%d ثانیه', '%d ثانیه'],\n m: ['کمتر از یک دقیقه', 'یک دقیقه', ['دو دقیقه', 'دو دقیقه'], '%d دقیقه', '%d دقیقه', '%d دقیقه'],\n h: ['کمتر از یک ساعت', 'یک ساعت', ['دو ساعت', 'دو ساعت'], '%d ساعت', '%d ساعت', '%d ساعت'],\n d: ['کمتر از یک روز', 'یک روز', ['دو روز', 'دو روز'], '%d روز', '%d روز', '%d روز'],\n M: ['کمتر از یک ماه', 'یک ماه', ['دو ماه', 'دو ماه'], '%d ماه', '%d ماه', '%d ماه'],\n y: ['کمتر از یک سال', 'یک سال', ['دو سال', 'دو سال'], '%d سال', '%d سال', '%d سال']\n};\nconst pluralize = function (u) {\n return function (num, withoutSuffix) {\n const f = pluralForm(num);\n let str = plurals[u][pluralForm(num)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, num.toString());\n };\n};\nconst months = ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'می', 'ژوئن', 'جولای', 'آگوست', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'];\nconst faLocale = {\n abbr: 'fa',\n months: months,\n monthsShort: months,\n weekdays: 'یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه_شنبه'.split('_'),\n weekdaysShort: 'یکشنبه_دو‌شنبه_سه‌شنبه_چهار‌شنبه_پنج‌شنبه_جمعه_شنبه'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM(input) {\n return 'م' === input;\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[امروز در ساعت] LT',\n nextDay: '[فردا در ساعت] LT',\n nextWeek: 'dddd [در ساعت] LT',\n lastDay: '[دیروز در ساعت] LT',\n lastWeek: 'dddd [در ساعت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'پیش %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n preparse(str) {\n return str.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat(str) {\n return str.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 80 // The week that contains March 21th is the first week of the year.\n }\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { add, arLocale, bgLocale, caLocale, csLocale, daLocale, deLocale, defineLocale, enGbLocale, endOf, esDoLocale, esLocale, esPrLocale, esUsLocale, etLocale, faLocale, fiLocale, formatDate, frCaLocale, frLocale, getDay, getFirstDayOfMonth, getFullYear, getLocale, getMonth, getSetGlobalLocale, glLocale, heLocale, hiLocale, hrLocale, huLocale, idLocale, isAfter, isArray, isBefore, isDate, isDateValid, isDisabledDay, isFirstDayOfWeek, isSame, isSameDay$1 as isSameDay, isSameMonth, isSameYear, itLocale, jaLocale, kaLocale, kkLocale, koLocale, listLocales, ltLocale, lvLocale, mnLocale, nbLocale, nlBeLocale, nlLocale, parseDate, plLocale, ptBrLocale, roLocale, ruLocale, setFullDate, shiftDate, skLocale, slLocale, sqLocale, startOf, subtract, svLocale, thBeLocale, thLocale, trLocale, ukLocale, updateLocale, utcAsLocal, viLocale, zhCnLocale };\n","import { BehaviorSubject, queueScheduler, Observable } from 'rxjs';\nimport { observeOn, scan, map, distinctUntilChanged } from 'rxjs/operators';\nclass MiniState extends BehaviorSubject {\n constructor(_initialState, actionsDispatcher$, reducer) {\n super(_initialState);\n const actionInQueue$ = actionsDispatcher$.pipe(observeOn(queueScheduler));\n const state$ = actionInQueue$.pipe(scan((state, action) => {\n if (!action) {\n return state;\n }\n return reducer(state, action);\n }, _initialState));\n state$.subscribe(value => this.next(value));\n }\n}\n\n/**\n * @copyright ngrx\n */\nclass MiniStore extends Observable {\n constructor(_dispatcher,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _reducer,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n state$) {\n super();\n this._dispatcher = _dispatcher;\n this._reducer = _reducer;\n this.source = state$;\n }\n select(pathOrMapFn) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const mapped$ = this.source?.pipe(map(pathOrMapFn)) || new Observable().pipe(map(pathOrMapFn));\n return mapped$.pipe(distinctUntilChanged());\n }\n lift(operator) {\n const store = new MiniStore(this._dispatcher, this._reducer, this);\n store.operator = operator;\n return store;\n }\n dispatch(action) {\n this._dispatcher.next(action);\n }\n next(action) {\n this._dispatcher.next(action);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error(err) {\n this._dispatcher.error(err);\n }\n complete() {\n /*noop*/\n }\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MiniState, MiniStore };\n","import * as i0 from '@angular/core';\nimport { Injectable, forwardRef, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { MiniStore, MiniState } from 'ngx-bootstrap/mini-ngrx';\nimport { NgIf } from '@angular/common';\nfunction TimepickerComponent_td_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\");\n i0.ɵɵtext(1, \"\\xA0\\xA0\\xA0\");\n i0.ɵɵelementEnd();\n }\n}\nfunction TimepickerComponent_td_7_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td\")(1, \"a\", 1);\n i0.ɵɵlistener(\"click\", function TimepickerComponent_td_7_Template_a_click_1_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changeMinutes(ctx_r1.minuteStep));\n });\n i0.ɵɵelement(2, \"span\", 2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"disabled\", !ctx_r1.canIncrementMinutes || !ctx_r1.isEditable);\n }\n}\nfunction TimepickerComponent_td_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\");\n i0.ɵɵtext(1, \"\\xA0\");\n i0.ɵɵelementEnd();\n }\n}\nfunction TimepickerComponent_td_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td\")(1, \"a\", 1);\n i0.ɵɵlistener(\"click\", function TimepickerComponent_td_9_Template_a_click_1_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changeSeconds(ctx_r1.secondsStep));\n });\n i0.ɵɵelement(2, \"span\", 2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"disabled\", !ctx_r1.canIncrementSeconds || !ctx_r1.isEditable);\n }\n}\nfunction TimepickerComponent_td_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\");\n i0.ɵɵtext(1, \"\\xA0\\xA0\\xA0\");\n i0.ɵɵelementEnd();\n }\n}\nfunction TimepickerComponent_td_11_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"td\");\n }\n}\nfunction TimepickerComponent_td_15_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\");\n i0.ɵɵtext(1, \"\\xA0:\\xA0\");\n i0.ɵɵelementEnd();\n }\n}\nfunction TimepickerComponent_td_16_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td\", 4)(1, \"input\", 5);\n i0.ɵɵlistener(\"wheel\", function TimepickerComponent_td_16_Template_input_wheel_1_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n ctx_r1.prevDef($event);\n return i0.ɵɵresetView(ctx_r1.changeMinutes(ctx_r1.minuteStep * ctx_r1.wheelSign($event), \"wheel\"));\n })(\"keydown.ArrowUp\", function TimepickerComponent_td_16_Template_input_keydown_ArrowUp_1_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changeMinutes(ctx_r1.minuteStep, \"key\"));\n })(\"keydown.ArrowDown\", function TimepickerComponent_td_16_Template_input_keydown_ArrowDown_1_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changeMinutes(-ctx_r1.minuteStep, \"key\"));\n })(\"change\", function TimepickerComponent_td_16_Template_input_change_1_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateMinutes($event.target));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"has-error\", ctx_r1.invalidMinutes);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"is-invalid\", ctx_r1.invalidMinutes);\n i0.ɵɵproperty(\"placeholder\", ctx_r1.minutesPlaceholder)(\"readonly\", ctx_r1.readonlyInput)(\"disabled\", ctx_r1.disabled)(\"value\", ctx_r1.minutes);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.labelMinutes);\n }\n}\nfunction TimepickerComponent_td_17_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\");\n i0.ɵɵtext(1, \"\\xA0:\\xA0\");\n i0.ɵɵelementEnd();\n }\n}\nfunction TimepickerComponent_td_18_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td\", 4)(1, \"input\", 5);\n i0.ɵɵlistener(\"wheel\", function TimepickerComponent_td_18_Template_input_wheel_1_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n ctx_r1.prevDef($event);\n return i0.ɵɵresetView(ctx_r1.changeSeconds(ctx_r1.secondsStep * ctx_r1.wheelSign($event), \"wheel\"));\n })(\"keydown.ArrowUp\", function TimepickerComponent_td_18_Template_input_keydown_ArrowUp_1_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changeSeconds(ctx_r1.secondsStep, \"key\"));\n })(\"keydown.ArrowDown\", function TimepickerComponent_td_18_Template_input_keydown_ArrowDown_1_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changeSeconds(-ctx_r1.secondsStep, \"key\"));\n })(\"change\", function TimepickerComponent_td_18_Template_input_change_1_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateSeconds($event.target));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"has-error\", ctx_r1.invalidSeconds);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"is-invalid\", ctx_r1.invalidSeconds);\n i0.ɵɵproperty(\"placeholder\", ctx_r1.secondsPlaceholder)(\"readonly\", ctx_r1.readonlyInput)(\"disabled\", ctx_r1.disabled)(\"value\", ctx_r1.seconds);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.labelSeconds);\n }\n}\nfunction TimepickerComponent_td_19_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\");\n i0.ɵɵtext(1, \"\\xA0\\xA0\\xA0\");\n i0.ɵɵelementEnd();\n }\n}\nfunction TimepickerComponent_td_20_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td\")(1, \"button\", 8);\n i0.ɵɵlistener(\"click\", function TimepickerComponent_td_20_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.toggleMeridian());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"disabled\", !ctx_r1.isEditable || !ctx_r1.canToggleMeridian);\n i0.ɵɵproperty(\"disabled\", !ctx_r1.isEditable || !ctx_r1.canToggleMeridian);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"\", ctx_r1.meridian, \" \");\n }\n}\nfunction TimepickerComponent_td_25_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\");\n i0.ɵɵtext(1, \"\\xA0\\xA0\\xA0\");\n i0.ɵɵelementEnd();\n }\n}\nfunction TimepickerComponent_td_26_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td\")(1, \"a\", 1);\n i0.ɵɵlistener(\"click\", function TimepickerComponent_td_26_Template_a_click_1_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changeMinutes(-ctx_r1.minuteStep));\n });\n i0.ɵɵelement(2, \"span\", 7);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"disabled\", !ctx_r1.canDecrementMinutes || !ctx_r1.isEditable);\n }\n}\nfunction TimepickerComponent_td_27_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\");\n i0.ɵɵtext(1, \"\\xA0\");\n i0.ɵɵelementEnd();\n }\n}\nfunction TimepickerComponent_td_28_Template(rf, ctx) {\n if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td\")(1, \"a\", 1);\n i0.ɵɵlistener(\"click\", function TimepickerComponent_td_28_Template_a_click_1_listener() {\n i0.ɵɵrestoreView(_r8);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changeSeconds(-ctx_r1.secondsStep));\n });\n i0.ɵɵelement(2, \"span\", 7);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"disabled\", !ctx_r1.canDecrementSeconds || !ctx_r1.isEditable);\n }\n}\nfunction TimepickerComponent_td_29_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\");\n i0.ɵɵtext(1, \"\\xA0\\xA0\\xA0\");\n i0.ɵɵelementEnd();\n }\n}\nfunction TimepickerComponent_td_30_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"td\");\n }\n}\nlet TimepickerActions = /*#__PURE__*/(() => {\n class TimepickerActions {\n static {\n this.WRITE_VALUE = '[timepicker] write value from ng model';\n }\n static {\n this.CHANGE_HOURS = '[timepicker] change hours';\n }\n static {\n this.CHANGE_MINUTES = '[timepicker] change minutes';\n }\n static {\n this.CHANGE_SECONDS = '[timepicker] change seconds';\n }\n static {\n this.SET_TIME_UNIT = '[timepicker] set time unit';\n }\n static {\n this.UPDATE_CONTROLS = '[timepicker] update controls';\n }\n writeValue(value) {\n return {\n type: TimepickerActions.WRITE_VALUE,\n payload: value\n };\n }\n changeHours(event) {\n return {\n type: TimepickerActions.CHANGE_HOURS,\n payload: event\n };\n }\n changeMinutes(event) {\n return {\n type: TimepickerActions.CHANGE_MINUTES,\n payload: event\n };\n }\n changeSeconds(event) {\n return {\n type: TimepickerActions.CHANGE_SECONDS,\n payload: event\n };\n }\n setTime(value) {\n return {\n type: TimepickerActions.SET_TIME_UNIT,\n payload: value\n };\n }\n updateControls(value) {\n return {\n type: TimepickerActions.UPDATE_CONTROLS,\n payload: value\n };\n }\n static {\n this.ɵfac = function TimepickerActions_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimepickerActions)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TimepickerActions,\n factory: TimepickerActions.ɵfac,\n providedIn: 'platform'\n });\n }\n }\n return TimepickerActions;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst dex = 10;\nconst hoursPerDay = 24;\nconst hoursPerDayHalf = 12;\nconst minutesPerHour = 60;\nconst secondsPerMinute = 60;\nfunction isValidDate(value) {\n if (!value) {\n return false;\n }\n if (value instanceof Date && isNaN(value.getHours())) {\n return false;\n }\n if (typeof value === 'string') {\n return isValidDate(new Date(value));\n }\n return true;\n}\nfunction isValidLimit(controls, newDate) {\n if (controls.min && newDate < controls.min) {\n return false;\n }\n if (controls.max && newDate > controls.max) {\n return false;\n }\n return true;\n}\nfunction toNumber(value) {\n if (typeof value === 'undefined') {\n return NaN;\n }\n if (typeof value === 'number') {\n return value;\n }\n return parseInt(value, dex);\n}\nfunction isNumber(value) {\n return !isNaN(toNumber(value));\n}\nfunction parseHours(value, isPM = false) {\n const hour = toNumber(value);\n if (isNaN(hour) || hour < 0 || hour > (isPM ? hoursPerDayHalf : hoursPerDay)) {\n return NaN;\n }\n return hour;\n}\nfunction parseMinutes(value) {\n const minute = toNumber(value);\n if (isNaN(minute) || minute < 0 || minute > minutesPerHour) {\n return NaN;\n }\n return minute;\n}\nfunction parseSeconds(value) {\n const seconds = toNumber(value);\n if (isNaN(seconds) || seconds < 0 || seconds > secondsPerMinute) {\n return NaN;\n }\n return seconds;\n}\nfunction parseTime(value) {\n if (typeof value === 'string') {\n return new Date(value);\n }\n return value;\n}\nfunction changeTime(value, diff) {\n if (!value) {\n return changeTime(createDate(new Date(), 0, 0, 0), diff);\n }\n if (!diff) {\n return value;\n }\n let hour = value.getHours();\n let minutes = value.getMinutes();\n let seconds = value.getSeconds();\n if (diff.hour) {\n hour = hour + toNumber(diff.hour);\n }\n if (diff.minute) {\n minutes = minutes + toNumber(diff.minute);\n }\n if (diff.seconds) {\n seconds = seconds + toNumber(diff.seconds);\n }\n return createDate(value, hour, minutes, seconds);\n}\nfunction setTime(value, opts) {\n let hour = parseHours(opts.hour);\n const minute = parseMinutes(opts.minute);\n const seconds = parseSeconds(opts.seconds) || 0;\n if (opts.isPM && hour !== 12) {\n hour += hoursPerDayHalf;\n }\n if (!value) {\n if (!isNaN(hour) && !isNaN(minute)) {\n return createDate(new Date(), hour, minute, seconds);\n }\n return value;\n }\n if (isNaN(hour) || isNaN(minute)) {\n return value;\n }\n return createDate(value, hour, minute, seconds);\n}\nfunction createDate(value, hours, minutes, seconds) {\n const newValue = new Date(value.getFullYear(), value.getMonth(), value.getDate(), hours, minutes, seconds, value.getMilliseconds());\n // #3139 ensure date part remains unchanged\n newValue.setFullYear(value.getFullYear());\n newValue.setMonth(value.getMonth());\n newValue.setDate(value.getDate());\n return newValue;\n}\nfunction padNumber(value) {\n const _value = value.toString();\n if (_value.length > 1) {\n return _value;\n }\n return `0${_value}`;\n}\nfunction isHourInputValid(hours, isPM) {\n return !isNaN(parseHours(hours, isPM));\n}\nfunction isMinuteInputValid(minutes) {\n return !isNaN(parseMinutes(minutes));\n}\nfunction isSecondInputValid(seconds) {\n return !isNaN(parseSeconds(seconds));\n}\nfunction isInputLimitValid(diff, max, min) {\n const newDate = setTime(new Date(), diff);\n if (!newDate) {\n return false;\n }\n if (max && newDate > max) {\n return false;\n }\n if (min && newDate < min) {\n return false;\n }\n return true;\n}\nfunction isOneOfDatesEmpty(hours, minutes, seconds) {\n return hours.length === 0 || minutes.length === 0 || seconds.length === 0;\n}\nfunction isInputValid(hours, minutes = '0', seconds = '0', isPM) {\n return isHourInputValid(hours, isPM) && isMinuteInputValid(minutes) && isSecondInputValid(seconds);\n}\nfunction canChangeValue(state, event) {\n if (state.readonlyInput || state.disabled) {\n return false;\n }\n if (event) {\n if (event.source === 'wheel' && !state.mousewheel) {\n return false;\n }\n if (event.source === 'key' && !state.arrowkeys) {\n return false;\n }\n }\n return true;\n}\nfunction canChangeHours(event, controls) {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementHours) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementHours) {\n return false;\n }\n return true;\n}\nfunction canChangeMinutes(event, controls) {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementMinutes) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementMinutes) {\n return false;\n }\n return true;\n}\nfunction canChangeSeconds(event, controls) {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementSeconds) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementSeconds) {\n return false;\n }\n return true;\n}\nfunction getControlsValue(state) {\n const {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowkeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n } = state;\n return {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowkeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n };\n}\nfunction timepickerControls(value, state) {\n const hoursPerDay = 24;\n const hoursPerDayHalf = 12;\n const {\n min,\n max,\n hourStep,\n minuteStep,\n secondsStep,\n showSeconds\n } = state;\n const res = {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n canToggleMeridian: true\n };\n if (!value) {\n return res;\n }\n // compare dates\n if (max) {\n const _newHour = changeTime(value, {\n hour: hourStep\n });\n res.canIncrementHours = max > _newHour && value.getHours() + hourStep < hoursPerDay;\n if (!res.canIncrementHours) {\n const _newMinutes = changeTime(value, {\n minute: minuteStep\n });\n res.canIncrementMinutes = showSeconds ? max > _newMinutes : max >= _newMinutes;\n }\n if (!res.canIncrementMinutes) {\n const _newSeconds = changeTime(value, {\n seconds: secondsStep\n });\n res.canIncrementSeconds = max >= _newSeconds;\n }\n if (value.getHours() < hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, {\n hour: hoursPerDayHalf\n }) < max;\n }\n }\n if (min) {\n const _newHour = changeTime(value, {\n hour: -hourStep\n });\n res.canDecrementHours = min < _newHour;\n if (!res.canDecrementHours) {\n const _newMinutes = changeTime(value, {\n minute: -minuteStep\n });\n res.canDecrementMinutes = showSeconds ? min < _newMinutes : min <= _newMinutes;\n }\n if (!res.canDecrementMinutes) {\n const _newSeconds = changeTime(value, {\n seconds: -secondsStep\n });\n res.canDecrementSeconds = min <= _newSeconds;\n }\n if (value.getHours() >= hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, {\n hour: -hoursPerDayHalf\n }) > min;\n }\n }\n return res;\n}\n\n/** Provides default configuration values for timepicker */\nlet TimepickerConfig = /*#__PURE__*/(() => {\n class TimepickerConfig {\n constructor() {\n /** hours change step */\n this.hourStep = 1;\n /** minutes change step */\n this.minuteStep = 5;\n /** seconds changes step */\n this.secondsStep = 10;\n /** if true works in 12H mode and displays AM/PM. If false works in 24H mode and hides AM/PM */\n this.showMeridian = true;\n /** meridian labels based on locale */\n this.meridians = ['AM', 'PM'];\n /** if true hours and minutes fields will be readonly */\n this.readonlyInput = false;\n /** if true hours and minutes fields will be disabled */\n this.disabled = false;\n /** if true emptyTime is not marked as invalid */\n this.allowEmptyTime = false;\n /** if true scroll inside hours and minutes inputs will change time */\n this.mousewheel = true;\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n this.arrowkeys = true;\n /** if true spinner arrows above and below the inputs will be shown */\n this.showSpinners = true;\n /** show seconds in timepicker */\n this.showSeconds = false;\n /** show minutes in timepicker */\n this.showMinutes = true;\n /** placeholder for hours field in timepicker */\n this.hoursPlaceholder = 'HH';\n /** placeholder for minutes field in timepicker */\n this.minutesPlaceholder = 'MM';\n /** placeholder for seconds field in timepicker */\n this.secondsPlaceholder = 'SS';\n /** hours aria label */\n this.ariaLabelHours = 'hours';\n /** minutes aria label */\n this.ariaLabelMinutes = 'minutes';\n /** seconds aria label */\n this.ariaLabelSeconds = 'seconds';\n }\n static {\n this.ɵfac = function TimepickerConfig_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimepickerConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TimepickerConfig,\n factory: TimepickerConfig.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return TimepickerConfig;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst initialState = {\n value: void 0,\n config: new TimepickerConfig(),\n controls: {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n canToggleMeridian: true\n }\n};\nfunction timepickerReducer(state = initialState, action) {\n switch (action.type) {\n case TimepickerActions.WRITE_VALUE:\n {\n return Object.assign({}, state, {\n value: action.payload\n });\n }\n case TimepickerActions.CHANGE_HOURS:\n {\n if (!canChangeValue(state.config, action.payload) || !canChangeHours(action.payload, state.controls)) {\n return state;\n }\n const _newTime = changeTime(state.value, {\n hour: action.payload.step\n });\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n return Object.assign({}, state, {\n value: _newTime\n });\n }\n case TimepickerActions.CHANGE_MINUTES:\n {\n if (!canChangeValue(state.config, action.payload) || !canChangeMinutes(action.payload, state.controls)) {\n return state;\n }\n const _newTime = changeTime(state.value, {\n minute: action.payload.step\n });\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n return Object.assign({}, state, {\n value: _newTime\n });\n }\n case TimepickerActions.CHANGE_SECONDS:\n {\n if (!canChangeValue(state.config, action.payload) || !canChangeSeconds(action.payload, state.controls)) {\n return state;\n }\n const _newTime = changeTime(state.value, {\n seconds: action.payload.step\n });\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n return Object.assign({}, state, {\n value: _newTime\n });\n }\n case TimepickerActions.SET_TIME_UNIT:\n {\n if (!canChangeValue(state.config)) {\n return state;\n }\n const _newTime = setTime(state.value, action.payload);\n return Object.assign({}, state, {\n value: _newTime\n });\n }\n case TimepickerActions.UPDATE_CONTROLS:\n {\n const _newControlsState = timepickerControls(state.value, action.payload);\n const _newState = {\n value: state.value,\n config: action.payload,\n controls: _newControlsState\n };\n if (state.config.showMeridian !== _newState.config.showMeridian) {\n if (state.value) {\n _newState.value = new Date(state.value);\n }\n }\n return Object.assign({}, state, _newState);\n }\n default:\n return state;\n }\n}\nlet TimepickerStore = /*#__PURE__*/(() => {\n class TimepickerStore extends MiniStore {\n constructor() {\n const _dispatcher = new BehaviorSubject({\n type: '[mini-ngrx] dispatcher init'\n });\n const state = new MiniState(initialState, _dispatcher, timepickerReducer);\n super(_dispatcher, timepickerReducer, state);\n }\n static {\n this.ɵfac = function TimepickerStore_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimepickerStore)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TimepickerStore,\n factory: TimepickerStore.ɵfac,\n providedIn: 'platform'\n });\n }\n }\n return TimepickerStore;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst TIMEPICKER_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimepickerComponent),\n multi: true\n};\nlet TimepickerComponent = /*#__PURE__*/(() => {\n class TimepickerComponent {\n constructor(_config, _cd, _store, _timepickerActions) {\n this._cd = _cd;\n this._store = _store;\n this._timepickerActions = _timepickerActions;\n /** hours change step */\n this.hourStep = 1;\n /** minutes change step */\n this.minuteStep = 5;\n /** seconds change step */\n this.secondsStep = 10;\n /** if true hours and minutes fields will be readonly */\n this.readonlyInput = false;\n /** if true hours and minutes fields will be disabled */\n this.disabled = false;\n /** if true scroll inside hours and minutes inputs will change time */\n this.mousewheel = true;\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n this.arrowkeys = true;\n /** if true spinner arrows above and below the inputs will be shown */\n this.showSpinners = true;\n /** if true meridian button will be shown */\n this.showMeridian = true;\n /** show minutes in timepicker */\n this.showMinutes = true;\n /** show seconds in timepicker */\n this.showSeconds = false;\n /** meridian labels based on locale */\n this.meridians = ['AM', 'PM'];\n /** placeholder for hours field in timepicker */\n this.hoursPlaceholder = 'HH';\n /** placeholder for minutes field in timepicker */\n this.minutesPlaceholder = 'MM';\n /** placeholder for seconds field in timepicker */\n this.secondsPlaceholder = 'SS';\n /** emits true if value is a valid date */\n this.isValid = new EventEmitter();\n /** emits value of meridian*/\n this.meridianChange = new EventEmitter();\n // ui variables\n this.hours = '';\n this.minutes = '';\n this.seconds = '';\n this.meridian = '';\n // min\\max validation for input fields\n this.invalidHours = false;\n this.invalidMinutes = false;\n this.invalidSeconds = false;\n // aria-label variables\n this.labelHours = 'hours';\n this.labelMinutes = 'minutes';\n this.labelSeconds = 'seconds';\n // time picker controls state\n this.canIncrementHours = true;\n this.canIncrementMinutes = true;\n this.canIncrementSeconds = true;\n this.canDecrementHours = true;\n this.canDecrementMinutes = true;\n this.canDecrementSeconds = true;\n this.canToggleMeridian = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.onChange = Function.prototype;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.onTouched = Function.prototype;\n this.config = _config;\n Object.assign(this, this.config);\n this.timepickerSub = _store.select(state => state.value).subscribe(value => {\n // update UI values if date changed\n this._renderTime(value);\n this.onChange(value);\n this._store.dispatch(this._timepickerActions.updateControls(getControlsValue(this)));\n });\n _store.select(state => state.controls).subscribe(controlsState => {\n const isTimepickerInputValid = isInputValid(this.hours, this.minutes, this.seconds, this.isPM());\n const isValid = this.config.allowEmptyTime ? this.isOneOfDatesIsEmpty() || isTimepickerInputValid : isTimepickerInputValid;\n this.isValid.emit(isValid);\n Object.assign(this, controlsState);\n _cd.markForCheck();\n });\n }\n /** @deprecated - please use `isEditable` instead */\n get isSpinnersVisible() {\n return this.showSpinners && !this.readonlyInput;\n }\n get isEditable() {\n return !(this.readonlyInput || this.disabled);\n }\n resetValidation() {\n this.invalidHours = false;\n this.invalidMinutes = false;\n this.invalidSeconds = false;\n }\n isPM() {\n return this.showMeridian && this.meridian === this.meridians[1];\n }\n prevDef($event) {\n $event.preventDefault();\n }\n wheelSign($event) {\n return Math.sign($event.deltaY || 0) * -1;\n }\n ngOnChanges() {\n this._store.dispatch(this._timepickerActions.updateControls(getControlsValue(this)));\n }\n changeHours(step, source = '') {\n this.resetValidation();\n this._store.dispatch(this._timepickerActions.changeHours({\n step,\n source\n }));\n }\n changeMinutes(step, source = '') {\n this.resetValidation();\n this._store.dispatch(this._timepickerActions.changeMinutes({\n step,\n source\n }));\n }\n changeSeconds(step, source = '') {\n this.resetValidation();\n this._store.dispatch(this._timepickerActions.changeSeconds({\n step,\n source\n }));\n }\n updateHours(target) {\n this.resetValidation();\n this.hours = target.value;\n const isTimepickerInputValid = isHourInputValid(this.hours, this.isPM()) && this.isValidLimit();\n const isValid = this.config.allowEmptyTime ? this.isOneOfDatesIsEmpty() || isTimepickerInputValid : isTimepickerInputValid;\n if (!isValid) {\n this.invalidHours = true;\n this.isValid.emit(false);\n this.onChange(null);\n return;\n }\n this._updateTime();\n }\n updateMinutes(target) {\n this.resetValidation();\n this.minutes = target.value;\n const isTimepickerInputValid = isMinuteInputValid(this.minutes) && this.isValidLimit();\n const isValid = this.config.allowEmptyTime ? this.isOneOfDatesIsEmpty() || isTimepickerInputValid : isTimepickerInputValid;\n if (!isValid) {\n this.invalidMinutes = true;\n this.isValid.emit(false);\n this.onChange(null);\n return;\n }\n this._updateTime();\n }\n updateSeconds(target) {\n this.resetValidation();\n this.seconds = target.value;\n const isTimepickerInputValid = isSecondInputValid(this.seconds) && this.isValidLimit();\n const isValid = this.config.allowEmptyTime ? this.isOneOfDatesIsEmpty() || isTimepickerInputValid : isTimepickerInputValid;\n if (!isValid) {\n this.invalidSeconds = true;\n this.isValid.emit(false);\n this.onChange(null);\n return;\n }\n this._updateTime();\n }\n isValidLimit() {\n return isInputLimitValid({\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n }, this.max, this.min);\n }\n isOneOfDatesIsEmpty() {\n return isOneOfDatesEmpty(this.hours, this.minutes, this.seconds);\n }\n _updateTime() {\n const _seconds = this.showSeconds ? this.seconds : void 0;\n const _minutes = this.showMinutes ? this.minutes : void 0;\n const isTimepickerInputValid = isInputValid(this.hours, _minutes, _seconds, this.isPM());\n const isValid = this.config.allowEmptyTime ? this.isOneOfDatesIsEmpty() || isTimepickerInputValid : isTimepickerInputValid;\n if (!isValid) {\n this.isValid.emit(false);\n this.onChange(null);\n return;\n }\n this._store.dispatch(this._timepickerActions.setTime({\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n }));\n }\n toggleMeridian() {\n if (!this.showMeridian || !this.isEditable) {\n return;\n }\n const _hoursPerDayHalf = 12;\n this._store.dispatch(this._timepickerActions.changeHours({\n step: _hoursPerDayHalf,\n source: ''\n }));\n }\n /**\n * Write a new value to the element.\n */\n writeValue(obj) {\n if (isValidDate(obj)) {\n this.resetValidation();\n this._store.dispatch(this._timepickerActions.writeValue(parseTime(obj)));\n } else if (obj == null) {\n this._store.dispatch(this._timepickerActions.writeValue());\n }\n }\n /**\n * Set the function to be called when the control receives a change event.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /**\n * Set the function to be called when the control receives a touch event.\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * This function is called when the control status changes to or from \"disabled\".\n * Depending on the value, it will enable or disable the appropriate DOM element.\n *\n * @param isDisabled\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this._cd.markForCheck();\n }\n ngOnDestroy() {\n this.timepickerSub?.unsubscribe();\n }\n _renderTime(value) {\n if (!value || !isValidDate(value)) {\n this.hours = '';\n this.minutes = '';\n this.seconds = '';\n this.meridian = this.meridians[0];\n this.meridianChange.emit(this.meridian);\n return;\n }\n const _value = parseTime(value);\n if (!_value) {\n return;\n }\n const _hoursPerDayHalf = 12;\n let _hours = _value.getHours();\n if (this.showMeridian) {\n this.meridian = this.meridians[_hours >= _hoursPerDayHalf ? 1 : 0];\n this.meridianChange.emit(this.meridian);\n _hours = _hours % _hoursPerDayHalf;\n // should be 12 PM, not 00 PM\n if (_hours === 0) {\n _hours = _hoursPerDayHalf;\n }\n }\n this.hours = padNumber(_hours);\n this.minutes = padNumber(_value.getMinutes());\n this.seconds = padNumber(_value.getUTCSeconds());\n }\n static {\n this.ɵfac = function TimepickerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimepickerComponent)(i0.ɵɵdirectiveInject(TimepickerConfig), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(TimepickerStore), i0.ɵɵdirectiveInject(TimepickerActions));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TimepickerComponent,\n selectors: [[\"timepicker\"]],\n inputs: {\n hourStep: \"hourStep\",\n minuteStep: \"minuteStep\",\n secondsStep: \"secondsStep\",\n readonlyInput: \"readonlyInput\",\n disabled: \"disabled\",\n mousewheel: \"mousewheel\",\n arrowkeys: \"arrowkeys\",\n showSpinners: \"showSpinners\",\n showMeridian: \"showMeridian\",\n showMinutes: \"showMinutes\",\n showSeconds: \"showSeconds\",\n meridians: \"meridians\",\n min: \"min\",\n max: \"max\",\n hoursPlaceholder: \"hoursPlaceholder\",\n minutesPlaceholder: \"minutesPlaceholder\",\n secondsPlaceholder: \"secondsPlaceholder\"\n },\n outputs: {\n isValid: \"isValid\",\n meridianChange: \"meridianChange\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([TIMEPICKER_CONTROL_VALUE_ACCESSOR, TimepickerStore, TimepickerActions]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 31,\n vars: 33,\n consts: [[1, \"text-center\", 3, \"hidden\"], [\"href\", \"javascript:void(0);\", 1, \"btn\", \"btn-link\", 3, \"click\"], [1, \"bs-chevron\", \"bs-chevron-up\"], [4, \"ngIf\"], [1, \"form-group\", \"mb-3\"], [\"type\", \"text\", \"maxlength\", \"2\", 1, \"form-control\", \"text-center\", \"bs-timepicker-field\", 3, \"wheel\", \"keydown.ArrowUp\", \"keydown.ArrowDown\", \"change\", \"placeholder\", \"readonly\", \"disabled\", \"value\"], [\"class\", \"form-group mb-3\", 3, \"has-error\", 4, \"ngIf\"], [1, \"bs-chevron\", \"bs-chevron-down\"], [\"type\", \"button\", 1, \"btn\", \"btn-default\", \"text-center\", 3, \"click\", \"disabled\"]],\n template: function TimepickerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"table\")(1, \"tbody\")(2, \"tr\", 0)(3, \"td\")(4, \"a\", 1);\n i0.ɵɵlistener(\"click\", function TimepickerComponent_Template_a_click_4_listener() {\n return ctx.changeHours(ctx.hourStep);\n });\n i0.ɵɵelement(5, \"span\", 2);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(6, TimepickerComponent_td_6_Template, 2, 0, \"td\", 3)(7, TimepickerComponent_td_7_Template, 3, 2, \"td\", 3)(8, TimepickerComponent_td_8_Template, 2, 0, \"td\", 3)(9, TimepickerComponent_td_9_Template, 3, 2, \"td\", 3)(10, TimepickerComponent_td_10_Template, 2, 0, \"td\", 3)(11, TimepickerComponent_td_11_Template, 1, 0, \"td\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(12, \"tr\")(13, \"td\", 4)(14, \"input\", 5);\n i0.ɵɵlistener(\"wheel\", function TimepickerComponent_Template_input_wheel_14_listener($event) {\n ctx.prevDef($event);\n return ctx.changeHours(ctx.hourStep * ctx.wheelSign($event), \"wheel\");\n })(\"keydown.ArrowUp\", function TimepickerComponent_Template_input_keydown_ArrowUp_14_listener() {\n return ctx.changeHours(ctx.hourStep, \"key\");\n })(\"keydown.ArrowDown\", function TimepickerComponent_Template_input_keydown_ArrowDown_14_listener() {\n return ctx.changeHours(-ctx.hourStep, \"key\");\n })(\"change\", function TimepickerComponent_Template_input_change_14_listener($event) {\n return ctx.updateHours($event.target);\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(15, TimepickerComponent_td_15_Template, 2, 0, \"td\", 3)(16, TimepickerComponent_td_16_Template, 2, 9, \"td\", 6)(17, TimepickerComponent_td_17_Template, 2, 0, \"td\", 3)(18, TimepickerComponent_td_18_Template, 2, 9, \"td\", 6)(19, TimepickerComponent_td_19_Template, 2, 0, \"td\", 3)(20, TimepickerComponent_td_20_Template, 3, 4, \"td\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(21, \"tr\", 0)(22, \"td\")(23, \"a\", 1);\n i0.ɵɵlistener(\"click\", function TimepickerComponent_Template_a_click_23_listener() {\n return ctx.changeHours(-ctx.hourStep);\n });\n i0.ɵɵelement(24, \"span\", 7);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(25, TimepickerComponent_td_25_Template, 2, 0, \"td\", 3)(26, TimepickerComponent_td_26_Template, 3, 2, \"td\", 3)(27, TimepickerComponent_td_27_Template, 2, 0, \"td\", 3)(28, TimepickerComponent_td_28_Template, 3, 2, \"td\", 3)(29, TimepickerComponent_td_29_Template, 2, 0, \"td\", 3)(30, TimepickerComponent_td_30_Template, 1, 0, \"td\", 3);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"hidden\", !ctx.showSpinners);\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"disabled\", !ctx.canIncrementHours || !ctx.isEditable);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.showMinutes);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showMinutes);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showSeconds);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showSeconds);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showMeridian);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showMeridian);\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"has-error\", ctx.invalidHours);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"is-invalid\", ctx.invalidHours);\n i0.ɵɵproperty(\"placeholder\", ctx.hoursPlaceholder)(\"readonly\", ctx.readonlyInput)(\"disabled\", ctx.disabled)(\"value\", ctx.hours);\n i0.ɵɵattribute(\"aria-label\", ctx.labelHours);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showMinutes);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showMinutes);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showSeconds);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showSeconds);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showMeridian);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showMeridian);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"hidden\", !ctx.showSpinners);\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"disabled\", !ctx.canDecrementHours || !ctx.isEditable);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.showMinutes);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showMinutes);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showSeconds);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showSeconds);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showMeridian);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showMeridian);\n }\n },\n dependencies: [NgIf],\n styles: [\".bs-chevron{border-style:solid;display:block;width:9px;height:9px;position:relative;border-width:3px 0px 0 3px}.bs-chevron-up{-webkit-transform:rotate(45deg);transform:rotate(45deg);top:2px}.bs-chevron-down{-webkit-transform:rotate(-135deg);transform:rotate(-135deg);top:-2px}.bs-timepicker-field{width:65px;padding:.375rem .55rem}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return TimepickerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TimepickerModule = /*#__PURE__*/(() => {\n class TimepickerModule {\n // @deprecated method not required anymore, will be deleted in v19.0.0\n static forRoot() {\n return {\n ngModule: TimepickerModule,\n providers: []\n };\n }\n static {\n this.ɵfac = function TimepickerModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimepickerModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TimepickerModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return TimepickerModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TimepickerActions, TimepickerComponent, TimepickerConfig, TimepickerModule, TimepickerStore };\n","import * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, Component, ChangeDetectionStrategy, Input, Output, ViewChild, HostBinding, Directive, forwardRef, Host, HostListener, NgModule } from '@angular/core';\nimport { filter, map, take, takeUntil, distinctUntilChanged } from 'rxjs/operators';\nimport { isFirstDayOfWeek, getDay, shiftDate, isBefore, endOf, isAfter, startOf, isArray, isSame, getFirstDayOfMonth, formatDate, getLocale, isSameMonth, isSameDay, isDisabledDay, isSameYear, isDateValid, setFullDate, getMonth, getFullYear, isDate, parseDate, utcAsLocal } from 'ngx-bootstrap/chronos';\nimport * as i5 from 'ngx-bootstrap/positioning';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport * as i6 from 'ngx-bootstrap/timepicker';\nimport { TimepickerModule } from 'ngx-bootstrap/timepicker';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { Subscription, BehaviorSubject, combineLatest, Subject } from 'rxjs';\nimport { MiniStore, MiniState } from 'ngx-bootstrap/mini-ngrx';\nimport { NgFor, NgIf, NgClass, NgSwitch, NgSwitchCase, AsyncPipe, CommonModule } from '@angular/common';\nimport * as i2 from 'ngx-bootstrap/tooltip';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport * as i2$1 from 'ngx-bootstrap/component-loader';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\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 */\nfunction BsCustomDatesViewComponent_button_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 2);\n i0.ɵɵlistener(\"click\", function BsCustomDatesViewComponent_button_1_Template_button_click_0_listener() {\n const range_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.selectFromRanges(range_r2));\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const range_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"selected\", range_r2.value === ctx_r2.selectedRange);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", range_r2.label, \" \");\n }\n}\nfunction BsDatepickerNavigationViewComponent_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1, \" \\u200B \");\n i0.ɵɵelementStart(2, \"button\", 2);\n i0.ɵɵlistener(\"click\", function BsDatepickerNavigationViewComponent_ng_container_3_Template_button_click_2_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.view(\"month\"));\n });\n i0.ɵɵelementStart(3, \"span\");\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"disabled\", ctx_r1.isDisabled);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.calendar.monthTitle);\n }\n}\nconst _c0 = [[[\"bs-datepicker-navigation-view\"]], \"*\"];\nconst _c1 = [\"bs-datepicker-navigation-view\", \"*\"];\nfunction BsCalendarLayoutComponent_bs_current_date_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"bs-current-date\", 4);\n }\n}\nfunction BsCalendarLayoutComponent_bs_timepicker_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"bs-timepicker\");\n }\n}\nfunction BsYearsCalendarViewComponent_tr_4_td_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td\", 4);\n i0.ɵɵlistener(\"click\", function BsYearsCalendarViewComponent_tr_4_td_1_Template_td_click_0_listener() {\n const year_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.viewYear(year_r2));\n })(\"mouseenter\", function BsYearsCalendarViewComponent_tr_4_td_1_Template_td_mouseenter_0_listener() {\n const year_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.hoverYear(year_r2, true));\n })(\"mouseleave\", function BsYearsCalendarViewComponent_tr_4_td_1_Template_td_mouseleave_0_listener() {\n const year_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.hoverYear(year_r2, false));\n });\n i0.ɵɵelementStart(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const year_r2 = ctx.$implicit;\n i0.ɵɵclassProp(\"disabled\", year_r2.isDisabled)(\"is-highlighted\", year_r2.isHovered);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"selected\", year_r2.isSelected);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(year_r2.label);\n }\n}\nfunction BsYearsCalendarViewComponent_tr_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\");\n i0.ɵɵtemplate(1, BsYearsCalendarViewComponent_tr_4_td_1_Template, 3, 7, \"td\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const row_r4 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", row_r4);\n }\n}\nfunction BsMonthCalendarViewComponent_tr_4_td_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td\", 4);\n i0.ɵɵlistener(\"click\", function BsMonthCalendarViewComponent_tr_4_td_1_Template_td_click_0_listener() {\n const month_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.viewMonth(month_r2));\n })(\"mouseenter\", function BsMonthCalendarViewComponent_tr_4_td_1_Template_td_mouseenter_0_listener() {\n const month_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.hoverMonth(month_r2, true));\n })(\"mouseleave\", function BsMonthCalendarViewComponent_tr_4_td_1_Template_td_mouseleave_0_listener() {\n const month_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.hoverMonth(month_r2, false));\n });\n i0.ɵɵelementStart(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const month_r2 = ctx.$implicit;\n i0.ɵɵclassProp(\"disabled\", month_r2.isDisabled)(\"is-highlighted\", month_r2.isHovered);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"selected\", month_r2.isSelected);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(month_r2.label);\n }\n}\nfunction BsMonthCalendarViewComponent_tr_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\");\n i0.ɵɵtemplate(1, BsMonthCalendarViewComponent_tr_4_td_1_Template, 3, 7, \"td\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const row_r4 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", row_r4);\n }\n}\nconst _c2 = [\"bsDatepickerDayDecorator\", \"\"];\nfunction BsDaysCalendarViewComponent_th_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"th\");\n }\n}\nfunction BsDaysCalendarViewComponent_th_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"th\", 5);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const i_r1 = ctx.index;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"\", ctx_r1.calendar.weekdays[i_r1], \" \");\n }\n}\nfunction BsDaysCalendarViewComponent_tr_8_td_1_span_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 11);\n i0.ɵɵlistener(\"click\", function BsDaysCalendarViewComponent_tr_8_td_1_span_1_Template_span_click_0_listener() {\n i0.ɵɵrestoreView(_r3);\n const week_r4 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.selectWeek(week_r4));\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const i_r5 = i0.ɵɵnextContext(2).index;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.calendar.weekNumbers[i_r5]);\n }\n}\nfunction BsDaysCalendarViewComponent_tr_8_td_1_span_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 12);\n i0.ɵɵlistener(\"click\", function BsDaysCalendarViewComponent_tr_8_td_1_span_2_Template_span_click_0_listener() {\n i0.ɵɵrestoreView(_r6);\n const week_r4 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.selectWeek(week_r4));\n })(\"mouseenter\", function BsDaysCalendarViewComponent_tr_8_td_1_span_2_Template_span_mouseenter_0_listener() {\n i0.ɵɵrestoreView(_r6);\n const week_r4 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.weekHoverHandler(week_r4, true));\n })(\"mouseleave\", function BsDaysCalendarViewComponent_tr_8_td_1_span_2_Template_span_mouseleave_0_listener() {\n i0.ɵɵrestoreView(_r6);\n const week_r4 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.weekHoverHandler(week_r4, false));\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const i_r5 = i0.ɵɵnextContext(2).index;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.calendar.weekNumbers[i_r5]);\n }\n}\nfunction BsDaysCalendarViewComponent_tr_8_td_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 8);\n i0.ɵɵtemplate(1, BsDaysCalendarViewComponent_tr_8_td_1_span_1_Template, 2, 1, \"span\", 9)(2, BsDaysCalendarViewComponent_tr_8_td_1_span_2_Template, 2, 1, \"span\", 10);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"active-week\", ctx_r1.isWeekHovered);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isiOS);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.isiOS);\n }\n}\nfunction BsDaysCalendarViewComponent_tr_8_td_2_span_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 17);\n i0.ɵɵlistener(\"click\", function BsDaysCalendarViewComponent_tr_8_td_2_span_1_Template_span_click_0_listener() {\n i0.ɵɵrestoreView(_r7);\n const day_r8 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.selectDay(day_r8));\n })(\"mouseenter\", function BsDaysCalendarViewComponent_tr_8_td_2_span_1_Template_span_mouseenter_0_listener() {\n i0.ɵɵrestoreView(_r7);\n const day_r8 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.hoverDay(day_r8, true));\n })(\"mouseleave\", function BsDaysCalendarViewComponent_tr_8_td_2_span_1_Template_span_mouseleave_0_listener() {\n i0.ɵɵrestoreView(_r7);\n const day_r8 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.hoverDay(day_r8, false));\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const day_r8 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵpropertyInterpolate(\"tooltip\", day_r8.tooltipText);\n i0.ɵɵproperty(\"day\", day_r8);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"\", day_r8.label, \" 3\");\n }\n}\nfunction BsDaysCalendarViewComponent_tr_8_td_2_span_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 18);\n i0.ɵɵlistener(\"click\", function BsDaysCalendarViewComponent_tr_8_td_2_span_2_Template_span_click_0_listener() {\n i0.ɵɵrestoreView(_r9);\n const day_r8 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.selectDay(day_r8));\n })(\"mouseenter\", function BsDaysCalendarViewComponent_tr_8_td_2_span_2_Template_span_mouseenter_0_listener() {\n i0.ɵɵrestoreView(_r9);\n const day_r8 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.hoverDay(day_r8, true));\n })(\"mouseleave\", function BsDaysCalendarViewComponent_tr_8_td_2_span_2_Template_span_mouseleave_0_listener() {\n i0.ɵɵrestoreView(_r9);\n const day_r8 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.hoverDay(day_r8, false));\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const day_r8 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"day\", day_r8);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"\", day_r8.label, \" 2\");\n }\n}\nfunction BsDaysCalendarViewComponent_tr_8_td_2_span_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 19);\n i0.ɵɵlistener(\"click\", function BsDaysCalendarViewComponent_tr_8_td_2_span_3_Template_span_click_0_listener() {\n i0.ɵɵrestoreView(_r10);\n const day_r8 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.selectDay(day_r8));\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const day_r8 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"day\", day_r8);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"\", day_r8.label, \" 1\");\n }\n}\nfunction BsDaysCalendarViewComponent_tr_8_td_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 13);\n i0.ɵɵtemplate(1, BsDaysCalendarViewComponent_tr_8_td_2_span_1_Template, 2, 3, \"span\", 14)(2, BsDaysCalendarViewComponent_tr_8_td_2_span_2_Template, 2, 2, \"span\", 15)(3, BsDaysCalendarViewComponent_tr_8_td_2_span_3_Template, 2, 2, \"span\", 16);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.isiOS && ctx_r1.isShowTooltip);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.isiOS && !ctx_r1.isShowTooltip);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isiOS);\n }\n}\nfunction BsDaysCalendarViewComponent_tr_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\");\n i0.ɵɵtemplate(1, BsDaysCalendarViewComponent_tr_8_td_1_Template, 3, 4, \"td\", 6)(2, BsDaysCalendarViewComponent_tr_8_td_2_Template, 4, 3, \"td\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const week_r4 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.options && ctx_r1.options.showWeekNumbers);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", week_r4.days);\n }\n}\nconst _c3 = [\"startTP\"];\nfunction BsDatepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"bs-days-calendar-view\", 13);\n i0.ɵɵpipe(1, \"async\");\n i0.ɵɵlistener(\"onNavigate\", function BsDatepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onNavigate_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.navigateTo($event));\n })(\"onViewMode\", function BsDatepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onViewMode_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setViewMode($event));\n })(\"onHover\", function BsDatepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onHover_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.dayHoverHandler($event));\n })(\"onHoverWeek\", function BsDatepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onHoverWeek_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.weekHoverHandler($event));\n })(\"onSelect\", function BsDatepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onSelect_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.daySelectHandler($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const calendar_r4 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"bs-datepicker-multiple\", ctx_r1.multipleCalendars);\n i0.ɵɵproperty(\"calendar\", calendar_r4)(\"isDisabled\", ctx_r1.isDatePickerDisabled)(\"options\", i0.ɵɵpipeBind1(1, 5, ctx_r1.options$));\n }\n}\nfunction BsDatepickerContainerComponent_div_0_ng_container_4_div_4_timepicker_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"timepicker\", 15, 1);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"disabled\", ctx_r1.isDatePickerDisabled);\n }\n}\nfunction BsDatepickerContainerComponent_div_0_ng_container_4_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 14);\n i0.ɵɵelement(1, \"timepicker\", 15, 0);\n i0.ɵɵtemplate(3, BsDatepickerContainerComponent_div_0_ng_container_4_div_4_timepicker_3_Template, 2, 1, \"timepicker\", 16);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"disabled\", ctx_r1.isDatePickerDisabled);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isRangePicker);\n }\n}\nfunction BsDatepickerContainerComponent_div_0_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 10);\n i0.ɵɵtemplate(2, BsDatepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template, 2, 7, \"bs-days-calendar-view\", 11);\n i0.ɵɵpipe(3, \"async\");\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, BsDatepickerContainerComponent_div_0_ng_container_4_div_4_Template, 4, 2, \"div\", 12);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(3, 2, ctx_r1.daysCalendar$));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.withTimepicker);\n }\n}\nfunction BsDatepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"bs-month-calendar-view\", 18);\n i0.ɵɵlistener(\"onNavigate\", function BsDatepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onNavigate_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.navigateTo($event));\n })(\"onViewMode\", function BsDatepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onViewMode_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setViewMode($event));\n })(\"onHover\", function BsDatepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onHover_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.monthHoverHandler($event));\n })(\"onSelect\", function BsDatepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onSelect_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.monthSelectHandler($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const calendar_r6 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"bs-datepicker-multiple\", ctx_r1.multipleCalendars);\n i0.ɵɵproperty(\"calendar\", calendar_r6);\n }\n}\nfunction BsDatepickerContainerComponent_div_0_div_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 10);\n i0.ɵɵtemplate(1, BsDatepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template, 1, 3, \"bs-month-calendar-view\", 17);\n i0.ɵɵpipe(2, \"async\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(2, 1, ctx_r1.monthsCalendar));\n }\n}\nfunction BsDatepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"bs-years-calendar-view\", 18);\n i0.ɵɵlistener(\"onNavigate\", function BsDatepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onNavigate_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.navigateTo($event));\n })(\"onViewMode\", function BsDatepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onViewMode_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setViewMode($event));\n })(\"onHover\", function BsDatepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onHover_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.yearHoverHandler($event));\n })(\"onSelect\", function BsDatepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onSelect_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.yearSelectHandler($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const calendar_r8 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"bs-datepicker-multiple\", ctx_r1.multipleCalendars);\n i0.ɵɵproperty(\"calendar\", calendar_r8);\n }\n}\nfunction BsDatepickerContainerComponent_div_0_div_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 10);\n i0.ɵɵtemplate(1, BsDatepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template, 1, 3, \"bs-years-calendar-view\", 17);\n i0.ɵɵpipe(2, \"async\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(2, 1, ctx_r1.yearsCalendar));\n }\n}\nfunction BsDatepickerContainerComponent_div_0_div_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19)(1, \"button\", 20);\n i0.ɵɵtext(2, \"Apply\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"button\", 21);\n i0.ɵɵtext(4, \"Cancel\");\n i0.ɵɵelementEnd()();\n }\n}\nfunction BsDatepickerContainerComponent_div_0_div_8_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 24)(1, \"button\", 25);\n i0.ɵɵlistener(\"click\", function BsDatepickerContainerComponent_div_0_div_8_div_1_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r9);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setToday());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"today-left\", ctx_r1.todayPos === \"left\")(\"today-right\", ctx_r1.todayPos === \"right\")(\"today-center\", ctx_r1.todayPos === \"center\");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.todayBtnLbl);\n }\n}\nfunction BsDatepickerContainerComponent_div_0_div_8_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 26)(1, \"button\", 25);\n i0.ɵɵlistener(\"click\", function BsDatepickerContainerComponent_div_0_div_8_div_2_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r10);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.clearDate());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"clear-left\", ctx_r1.clearPos === \"left\")(\"clear-right\", ctx_r1.clearPos === \"right\")(\"clear-center\", ctx_r1.clearPos === \"center\");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.clearBtnLbl);\n }\n}\nfunction BsDatepickerContainerComponent_div_0_div_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19);\n i0.ɵɵtemplate(1, BsDatepickerContainerComponent_div_0_div_8_div_1_Template, 3, 7, \"div\", 22)(2, BsDatepickerContainerComponent_div_0_div_8_div_2_Template, 3, 7, \"div\", 23);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showTodayBtn);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showClearBtn);\n }\n}\nfunction BsDatepickerContainerComponent_div_0_div_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r11 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 27)(1, \"bs-custom-date-view\", 28);\n i0.ɵɵlistener(\"onSelect\", function BsDatepickerContainerComponent_div_0_div_9_Template_bs_custom_date_view_onSelect_1_listener($event) {\n i0.ɵɵrestoreView(_r11);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.setRangeOnCalendar($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"selectedRange\", ctx_r1.chosenRange)(\"ranges\", ctx_r1.customRanges)(\"customRangeLabel\", ctx_r1.customRangeBtnLbl);\n }\n}\nfunction BsDatepickerContainerComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 3)(1, \"div\", 4);\n i0.ɵɵlistener(\"@datepickerAnimation.done\", function BsDatepickerContainerComponent_div_0_Template_div_animation_datepickerAnimation_done_1_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.positionServiceEnable());\n });\n i0.ɵɵelementStart(2, \"div\", 5);\n i0.ɵɵpipe(3, \"async\");\n i0.ɵɵtemplate(4, BsDatepickerContainerComponent_div_0_ng_container_4_Template, 5, 4, \"ng-container\", 6)(5, BsDatepickerContainerComponent_div_0_div_5_Template, 3, 3, \"div\", 7)(6, BsDatepickerContainerComponent_div_0_div_6_Template, 3, 3, \"div\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(7, BsDatepickerContainerComponent_div_0_div_7_Template, 5, 0, \"div\", 8)(8, BsDatepickerContainerComponent_div_0_div_8_Template, 3, 2, \"div\", 8);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(9, BsDatepickerContainerComponent_div_0_div_9_Template, 2, 3, \"div\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r1.containerClass);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"@datepickerAnimation\", ctx_r1.animationState);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitch\", i0.ɵɵpipeBind1(3, 9, ctx_r1.viewMode));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngSwitchCase\", \"day\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"month\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"year\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showTodayBtn || ctx_r1.showClearBtn);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.customRanges && ctx_r1.customRanges.length > 0);\n }\n}\nfunction BsDatepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"bs-days-calendar-view\", 13);\n i0.ɵɵpipe(1, \"async\");\n i0.ɵɵlistener(\"onNavigate\", function BsDatepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onNavigate_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.navigateTo($event));\n })(\"onViewMode\", function BsDatepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onViewMode_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setViewMode($event));\n })(\"onHover\", function BsDatepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onHover_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.dayHoverHandler($event));\n })(\"onHoverWeek\", function BsDatepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onHoverWeek_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.weekHoverHandler($event));\n })(\"onSelect\", function BsDatepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onSelect_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.daySelectHandler($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const calendar_r4 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"bs-datepicker-multiple\", ctx_r1.multipleCalendars);\n i0.ɵɵproperty(\"calendar\", calendar_r4)(\"isDisabled\", ctx_r1.isDatePickerDisabled)(\"options\", i0.ɵɵpipeBind1(1, 5, ctx_r1.options$));\n }\n}\nfunction BsDatepickerInlineContainerComponent_div_0_ng_container_4_div_4_timepicker_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"timepicker\", 15, 1);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"disabled\", ctx_r1.isDatePickerDisabled);\n }\n}\nfunction BsDatepickerInlineContainerComponent_div_0_ng_container_4_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 14);\n i0.ɵɵelement(1, \"timepicker\", 15, 0);\n i0.ɵɵtemplate(3, BsDatepickerInlineContainerComponent_div_0_ng_container_4_div_4_timepicker_3_Template, 2, 1, \"timepicker\", 16);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"disabled\", ctx_r1.isDatePickerDisabled);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isRangePicker);\n }\n}\nfunction BsDatepickerInlineContainerComponent_div_0_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 10);\n i0.ɵɵtemplate(2, BsDatepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template, 2, 7, \"bs-days-calendar-view\", 11);\n i0.ɵɵpipe(3, \"async\");\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, BsDatepickerInlineContainerComponent_div_0_ng_container_4_div_4_Template, 4, 2, \"div\", 12);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(3, 2, ctx_r1.daysCalendar$));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.withTimepicker);\n }\n}\nfunction BsDatepickerInlineContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"bs-month-calendar-view\", 18);\n i0.ɵɵlistener(\"onNavigate\", function BsDatepickerInlineContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onNavigate_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.navigateTo($event));\n })(\"onViewMode\", function BsDatepickerInlineContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onViewMode_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setViewMode($event));\n })(\"onHover\", function BsDatepickerInlineContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onHover_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.monthHoverHandler($event));\n })(\"onSelect\", function BsDatepickerInlineContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onSelect_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.monthSelectHandler($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const calendar_r6 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"bs-datepicker-multiple\", ctx_r1.multipleCalendars);\n i0.ɵɵproperty(\"calendar\", calendar_r6);\n }\n}\nfunction BsDatepickerInlineContainerComponent_div_0_div_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 10);\n i0.ɵɵtemplate(1, BsDatepickerInlineContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template, 1, 3, \"bs-month-calendar-view\", 17);\n i0.ɵɵpipe(2, \"async\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(2, 1, ctx_r1.monthsCalendar));\n }\n}\nfunction BsDatepickerInlineContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"bs-years-calendar-view\", 18);\n i0.ɵɵlistener(\"onNavigate\", function BsDatepickerInlineContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onNavigate_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.navigateTo($event));\n })(\"onViewMode\", function BsDatepickerInlineContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onViewMode_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setViewMode($event));\n })(\"onHover\", function BsDatepickerInlineContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onHover_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.yearHoverHandler($event));\n })(\"onSelect\", function BsDatepickerInlineContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onSelect_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.yearSelectHandler($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const calendar_r8 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"bs-datepicker-multiple\", ctx_r1.multipleCalendars);\n i0.ɵɵproperty(\"calendar\", calendar_r8);\n }\n}\nfunction BsDatepickerInlineContainerComponent_div_0_div_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 10);\n i0.ɵɵtemplate(1, BsDatepickerInlineContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template, 1, 3, \"bs-years-calendar-view\", 17);\n i0.ɵɵpipe(2, \"async\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(2, 1, ctx_r1.yearsCalendar));\n }\n}\nfunction BsDatepickerInlineContainerComponent_div_0_div_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19)(1, \"button\", 20);\n i0.ɵɵtext(2, \"Apply\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"button\", 21);\n i0.ɵɵtext(4, \"Cancel\");\n i0.ɵɵelementEnd()();\n }\n}\nfunction BsDatepickerInlineContainerComponent_div_0_div_8_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 24)(1, \"button\", 25);\n i0.ɵɵlistener(\"click\", function BsDatepickerInlineContainerComponent_div_0_div_8_div_1_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r9);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setToday());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"today-left\", ctx_r1.todayPos === \"left\")(\"today-right\", ctx_r1.todayPos === \"right\")(\"today-center\", ctx_r1.todayPos === \"center\");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.todayBtnLbl);\n }\n}\nfunction BsDatepickerInlineContainerComponent_div_0_div_8_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 26)(1, \"button\", 25);\n i0.ɵɵlistener(\"click\", function BsDatepickerInlineContainerComponent_div_0_div_8_div_2_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r10);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.clearDate());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"clear-left\", ctx_r1.clearPos === \"left\")(\"clear-right\", ctx_r1.clearPos === \"right\")(\"clear-center\", ctx_r1.clearPos === \"center\");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.clearBtnLbl);\n }\n}\nfunction BsDatepickerInlineContainerComponent_div_0_div_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19);\n i0.ɵɵtemplate(1, BsDatepickerInlineContainerComponent_div_0_div_8_div_1_Template, 3, 7, \"div\", 22)(2, BsDatepickerInlineContainerComponent_div_0_div_8_div_2_Template, 3, 7, \"div\", 23);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showTodayBtn);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showClearBtn);\n }\n}\nfunction BsDatepickerInlineContainerComponent_div_0_div_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r11 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 27)(1, \"bs-custom-date-view\", 28);\n i0.ɵɵlistener(\"onSelect\", function BsDatepickerInlineContainerComponent_div_0_div_9_Template_bs_custom_date_view_onSelect_1_listener($event) {\n i0.ɵɵrestoreView(_r11);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.setRangeOnCalendar($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"selectedRange\", ctx_r1.chosenRange)(\"ranges\", ctx_r1.customRanges)(\"customRangeLabel\", ctx_r1.customRangeBtnLbl);\n }\n}\nfunction BsDatepickerInlineContainerComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 3)(1, \"div\", 4);\n i0.ɵɵlistener(\"@datepickerAnimation.done\", function BsDatepickerInlineContainerComponent_div_0_Template_div_animation_datepickerAnimation_done_1_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.positionServiceEnable());\n });\n i0.ɵɵelementStart(2, \"div\", 5);\n i0.ɵɵpipe(3, \"async\");\n i0.ɵɵtemplate(4, BsDatepickerInlineContainerComponent_div_0_ng_container_4_Template, 5, 4, \"ng-container\", 6)(5, BsDatepickerInlineContainerComponent_div_0_div_5_Template, 3, 3, \"div\", 7)(6, BsDatepickerInlineContainerComponent_div_0_div_6_Template, 3, 3, \"div\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(7, BsDatepickerInlineContainerComponent_div_0_div_7_Template, 5, 0, \"div\", 8)(8, BsDatepickerInlineContainerComponent_div_0_div_8_Template, 3, 2, \"div\", 8);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(9, BsDatepickerInlineContainerComponent_div_0_div_9_Template, 2, 3, \"div\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r1.containerClass);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"@datepickerAnimation\", ctx_r1.animationState);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitch\", i0.ɵɵpipeBind1(3, 9, ctx_r1.viewMode));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngSwitchCase\", \"day\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"month\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"year\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showTodayBtn || ctx_r1.showClearBtn);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.customRanges && ctx_r1.customRanges.length > 0);\n }\n}\nconst _c4 = [\"endTP\"];\nfunction BsDaterangepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"bs-days-calendar-view\", 13);\n i0.ɵɵpipe(1, \"async\");\n i0.ɵɵlistener(\"onNavigate\", function BsDaterangepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onNavigate_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.navigateTo($event));\n })(\"onViewMode\", function BsDaterangepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onViewMode_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setViewMode($event));\n })(\"onHover\", function BsDaterangepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onHover_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.dayHoverHandler($event));\n })(\"onHoverWeek\", function BsDaterangepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onHoverWeek_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.weekHoverHandler($event));\n })(\"onSelect\", function BsDaterangepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onSelect_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.daySelectHandler($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const calendar_r4 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"bs-datepicker-multiple\", ctx_r1.multipleCalendars);\n i0.ɵɵproperty(\"calendar\", calendar_r4)(\"isDisabled\", ctx_r1.isDatePickerDisabled)(\"options\", i0.ɵɵpipeBind1(1, 5, ctx_r1.options$));\n }\n}\nfunction BsDaterangepickerContainerComponent_div_0_ng_container_4_div_4_timepicker_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"timepicker\", 15, 1);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"disabled\", ctx_r1.isDatePickerDisabled);\n }\n}\nfunction BsDaterangepickerContainerComponent_div_0_ng_container_4_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 14);\n i0.ɵɵelement(1, \"timepicker\", 15, 0);\n i0.ɵɵtemplate(3, BsDaterangepickerContainerComponent_div_0_ng_container_4_div_4_timepicker_3_Template, 2, 1, \"timepicker\", 16);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"disabled\", ctx_r1.isDatePickerDisabled);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isRangePicker);\n }\n}\nfunction BsDaterangepickerContainerComponent_div_0_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 10);\n i0.ɵɵtemplate(2, BsDaterangepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template, 2, 7, \"bs-days-calendar-view\", 11);\n i0.ɵɵpipe(3, \"async\");\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, BsDaterangepickerContainerComponent_div_0_ng_container_4_div_4_Template, 4, 2, \"div\", 12);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(3, 2, ctx_r1.daysCalendar$));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.withTimepicker);\n }\n}\nfunction BsDaterangepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"bs-month-calendar-view\", 18);\n i0.ɵɵlistener(\"onNavigate\", function BsDaterangepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onNavigate_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.navigateTo($event));\n })(\"onViewMode\", function BsDaterangepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onViewMode_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setViewMode($event));\n })(\"onHover\", function BsDaterangepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onHover_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.monthHoverHandler($event));\n })(\"onSelect\", function BsDaterangepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onSelect_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.monthSelectHandler($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const calendar_r6 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"bs-datepicker-multiple\", ctx_r1.multipleCalendars);\n i0.ɵɵproperty(\"calendar\", calendar_r6);\n }\n}\nfunction BsDaterangepickerContainerComponent_div_0_div_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 10);\n i0.ɵɵtemplate(1, BsDaterangepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template, 1, 3, \"bs-month-calendar-view\", 17);\n i0.ɵɵpipe(2, \"async\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(2, 1, ctx_r1.monthsCalendar));\n }\n}\nfunction BsDaterangepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"bs-years-calendar-view\", 18);\n i0.ɵɵlistener(\"onNavigate\", function BsDaterangepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onNavigate_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.navigateTo($event));\n })(\"onViewMode\", function BsDaterangepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onViewMode_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setViewMode($event));\n })(\"onHover\", function BsDaterangepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onHover_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.yearHoverHandler($event));\n })(\"onSelect\", function BsDaterangepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onSelect_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.yearSelectHandler($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const calendar_r8 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"bs-datepicker-multiple\", ctx_r1.multipleCalendars);\n i0.ɵɵproperty(\"calendar\", calendar_r8);\n }\n}\nfunction BsDaterangepickerContainerComponent_div_0_div_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 10);\n i0.ɵɵtemplate(1, BsDaterangepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template, 1, 3, \"bs-years-calendar-view\", 17);\n i0.ɵɵpipe(2, \"async\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(2, 1, ctx_r1.yearsCalendar));\n }\n}\nfunction BsDaterangepickerContainerComponent_div_0_div_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19)(1, \"button\", 20);\n i0.ɵɵtext(2, \"Apply\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"button\", 21);\n i0.ɵɵtext(4, \"Cancel\");\n i0.ɵɵelementEnd()();\n }\n}\nfunction BsDaterangepickerContainerComponent_div_0_div_8_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 24)(1, \"button\", 25);\n i0.ɵɵlistener(\"click\", function BsDaterangepickerContainerComponent_div_0_div_8_div_1_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r9);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setToday());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"today-left\", ctx_r1.todayPos === \"left\")(\"today-right\", ctx_r1.todayPos === \"right\")(\"today-center\", ctx_r1.todayPos === \"center\");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.todayBtnLbl);\n }\n}\nfunction BsDaterangepickerContainerComponent_div_0_div_8_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 26)(1, \"button\", 25);\n i0.ɵɵlistener(\"click\", function BsDaterangepickerContainerComponent_div_0_div_8_div_2_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r10);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.clearDate());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"clear-left\", ctx_r1.clearPos === \"left\")(\"clear-right\", ctx_r1.clearPos === \"right\")(\"clear-center\", ctx_r1.clearPos === \"center\");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.clearBtnLbl);\n }\n}\nfunction BsDaterangepickerContainerComponent_div_0_div_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19);\n i0.ɵɵtemplate(1, BsDaterangepickerContainerComponent_div_0_div_8_div_1_Template, 3, 7, \"div\", 22)(2, BsDaterangepickerContainerComponent_div_0_div_8_div_2_Template, 3, 7, \"div\", 23);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showTodayBtn);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showClearBtn);\n }\n}\nfunction BsDaterangepickerContainerComponent_div_0_div_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r11 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 27)(1, \"bs-custom-date-view\", 28);\n i0.ɵɵlistener(\"onSelect\", function BsDaterangepickerContainerComponent_div_0_div_9_Template_bs_custom_date_view_onSelect_1_listener($event) {\n i0.ɵɵrestoreView(_r11);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.setRangeOnCalendar($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"selectedRange\", ctx_r1.chosenRange)(\"ranges\", ctx_r1.customRanges)(\"customRangeLabel\", ctx_r1.customRangeBtnLbl);\n }\n}\nfunction BsDaterangepickerContainerComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 3)(1, \"div\", 4);\n i0.ɵɵlistener(\"@datepickerAnimation.done\", function BsDaterangepickerContainerComponent_div_0_Template_div_animation_datepickerAnimation_done_1_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.positionServiceEnable());\n });\n i0.ɵɵelementStart(2, \"div\", 5);\n i0.ɵɵpipe(3, \"async\");\n i0.ɵɵtemplate(4, BsDaterangepickerContainerComponent_div_0_ng_container_4_Template, 5, 4, \"ng-container\", 6)(5, BsDaterangepickerContainerComponent_div_0_div_5_Template, 3, 3, \"div\", 7)(6, BsDaterangepickerContainerComponent_div_0_div_6_Template, 3, 3, \"div\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(7, BsDaterangepickerContainerComponent_div_0_div_7_Template, 5, 0, \"div\", 8)(8, BsDaterangepickerContainerComponent_div_0_div_8_Template, 3, 2, \"div\", 8);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(9, BsDaterangepickerContainerComponent_div_0_div_9_Template, 2, 3, \"div\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r1.containerClass);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"@datepickerAnimation\", ctx_r1.animationState);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitch\", i0.ɵɵpipeBind1(3, 9, ctx_r1.viewMode));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngSwitchCase\", \"day\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"month\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"year\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showTodayBtn || ctx_r1.showClearBtn);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.customRanges && ctx_r1.customRanges.length > 0);\n }\n}\nfunction BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"bs-days-calendar-view\", 13);\n i0.ɵɵpipe(1, \"async\");\n i0.ɵɵlistener(\"onNavigate\", function BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onNavigate_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.navigateTo($event));\n })(\"onViewMode\", function BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onViewMode_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setViewMode($event));\n })(\"onHover\", function BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onHover_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.dayHoverHandler($event));\n })(\"onHoverWeek\", function BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onHoverWeek_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.weekHoverHandler($event));\n })(\"onSelect\", function BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template_bs_days_calendar_view_onSelect_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.daySelectHandler($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const calendar_r4 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"bs-datepicker-multiple\", ctx_r1.multipleCalendars);\n i0.ɵɵproperty(\"calendar\", calendar_r4)(\"isDisabled\", ctx_r1.isDatePickerDisabled)(\"options\", i0.ɵɵpipeBind1(1, 5, ctx_r1.options$));\n }\n}\nfunction BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_div_4_timepicker_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"timepicker\", 15, 1);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"disabled\", ctx_r1.isDatePickerDisabled);\n }\n}\nfunction BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 14);\n i0.ɵɵelement(1, \"timepicker\", 15, 0);\n i0.ɵɵtemplate(3, BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_div_4_timepicker_3_Template, 2, 1, \"timepicker\", 16);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"disabled\", ctx_r1.isDatePickerDisabled);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isRangePicker);\n }\n}\nfunction BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 10);\n i0.ɵɵtemplate(2, BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template, 2, 7, \"bs-days-calendar-view\", 11);\n i0.ɵɵpipe(3, \"async\");\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_div_4_Template, 4, 2, \"div\", 12);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(3, 2, ctx_r1.daysCalendar$));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.withTimepicker);\n }\n}\nfunction BsDaterangepickerInlineContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"bs-month-calendar-view\", 18);\n i0.ɵɵlistener(\"onNavigate\", function BsDaterangepickerInlineContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onNavigate_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.navigateTo($event));\n })(\"onViewMode\", function BsDaterangepickerInlineContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onViewMode_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setViewMode($event));\n })(\"onHover\", function BsDaterangepickerInlineContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onHover_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.monthHoverHandler($event));\n })(\"onSelect\", function BsDaterangepickerInlineContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template_bs_month_calendar_view_onSelect_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.monthSelectHandler($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const calendar_r6 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"bs-datepicker-multiple\", ctx_r1.multipleCalendars);\n i0.ɵɵproperty(\"calendar\", calendar_r6);\n }\n}\nfunction BsDaterangepickerInlineContainerComponent_div_0_div_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 10);\n i0.ɵɵtemplate(1, BsDaterangepickerInlineContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template, 1, 3, \"bs-month-calendar-view\", 17);\n i0.ɵɵpipe(2, \"async\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(2, 1, ctx_r1.monthsCalendar));\n }\n}\nfunction BsDaterangepickerInlineContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"bs-years-calendar-view\", 18);\n i0.ɵɵlistener(\"onNavigate\", function BsDaterangepickerInlineContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onNavigate_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.navigateTo($event));\n })(\"onViewMode\", function BsDaterangepickerInlineContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onViewMode_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setViewMode($event));\n })(\"onHover\", function BsDaterangepickerInlineContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onHover_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.yearHoverHandler($event));\n })(\"onSelect\", function BsDaterangepickerInlineContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template_bs_years_calendar_view_onSelect_0_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.yearSelectHandler($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const calendar_r8 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"bs-datepicker-multiple\", ctx_r1.multipleCalendars);\n i0.ɵɵproperty(\"calendar\", calendar_r8);\n }\n}\nfunction BsDaterangepickerInlineContainerComponent_div_0_div_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 10);\n i0.ɵɵtemplate(1, BsDaterangepickerInlineContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template, 1, 3, \"bs-years-calendar-view\", 17);\n i0.ɵɵpipe(2, \"async\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(2, 1, ctx_r1.yearsCalendar));\n }\n}\nfunction BsDaterangepickerInlineContainerComponent_div_0_div_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19)(1, \"button\", 20);\n i0.ɵɵtext(2, \"Apply\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"button\", 21);\n i0.ɵɵtext(4, \"Cancel\");\n i0.ɵɵelementEnd()();\n }\n}\nfunction BsDaterangepickerInlineContainerComponent_div_0_div_8_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 24)(1, \"button\", 25);\n i0.ɵɵlistener(\"click\", function BsDaterangepickerInlineContainerComponent_div_0_div_8_div_1_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r9);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.setToday());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"today-left\", ctx_r1.todayPos === \"left\")(\"today-right\", ctx_r1.todayPos === \"right\")(\"today-center\", ctx_r1.todayPos === \"center\");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.todayBtnLbl);\n }\n}\nfunction BsDaterangepickerInlineContainerComponent_div_0_div_8_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 26)(1, \"button\", 25);\n i0.ɵɵlistener(\"click\", function BsDaterangepickerInlineContainerComponent_div_0_div_8_div_2_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r10);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.clearDate());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"clear-left\", ctx_r1.clearPos === \"left\")(\"clear-right\", ctx_r1.clearPos === \"right\")(\"clear-center\", ctx_r1.clearPos === \"center\");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.clearBtnLbl);\n }\n}\nfunction BsDaterangepickerInlineContainerComponent_div_0_div_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19);\n i0.ɵɵtemplate(1, BsDaterangepickerInlineContainerComponent_div_0_div_8_div_1_Template, 3, 7, \"div\", 22)(2, BsDaterangepickerInlineContainerComponent_div_0_div_8_div_2_Template, 3, 7, \"div\", 23);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showTodayBtn);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showClearBtn);\n }\n}\nfunction BsDaterangepickerInlineContainerComponent_div_0_div_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r11 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 27)(1, \"bs-custom-date-view\", 28);\n i0.ɵɵlistener(\"onSelect\", function BsDaterangepickerInlineContainerComponent_div_0_div_9_Template_bs_custom_date_view_onSelect_1_listener($event) {\n i0.ɵɵrestoreView(_r11);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.setRangeOnCalendar($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"selectedRange\", ctx_r1.chosenRange)(\"ranges\", ctx_r1.customRanges)(\"customRangeLabel\", ctx_r1.customRangeBtnLbl);\n }\n}\nfunction BsDaterangepickerInlineContainerComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 3)(1, \"div\", 4);\n i0.ɵɵlistener(\"@datepickerAnimation.done\", function BsDaterangepickerInlineContainerComponent_div_0_Template_div_animation_datepickerAnimation_done_1_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.positionServiceEnable());\n });\n i0.ɵɵelementStart(2, \"div\", 5);\n i0.ɵɵpipe(3, \"async\");\n i0.ɵɵtemplate(4, BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_Template, 5, 4, \"ng-container\", 6)(5, BsDaterangepickerInlineContainerComponent_div_0_div_5_Template, 3, 3, \"div\", 7)(6, BsDaterangepickerInlineContainerComponent_div_0_div_6_Template, 3, 3, \"div\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(7, BsDaterangepickerInlineContainerComponent_div_0_div_7_Template, 5, 0, \"div\", 8)(8, BsDaterangepickerInlineContainerComponent_div_0_div_8_Template, 3, 2, \"div\", 8);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(9, BsDaterangepickerInlineContainerComponent_div_0_div_9_Template, 2, 3, \"div\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r1.containerClass);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"@datepickerAnimation\", ctx_r1.animationState);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitch\", i0.ɵɵpipeBind1(3, 9, ctx_r1.viewMode));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngSwitchCase\", \"day\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"month\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"year\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showTodayBtn || ctx_r1.showClearBtn);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.customRanges && ctx_r1.customRanges.length > 0);\n }\n}\nlet BsDatepickerConfig = /*#__PURE__*/(() => {\n class BsDatepickerConfig {\n constructor() {\n /** sets use adaptive position */\n this.adaptivePosition = false;\n /** sets use UTC date time format */\n this.useUtc = false;\n /** turn on/off animation */\n this.isAnimated = false;\n /**\n * The view that the datepicker should start in\n */\n this.startView = 'day';\n /**\n * If true, returns focus to the datepicker / daterangepicker input after date selection\n */\n this.returnFocusToInput = false;\n /** CSS class which will be applied to datepicker container,\n * usually used to set color theme\n */\n this.containerClass = 'theme-green';\n // DatepickerRenderOptions\n this.displayMonths = 1;\n /**\n * Allows to hide week numbers in datepicker\n */\n this.showWeekNumbers = true;\n this.dateInputFormat = 'L';\n // range picker\n this.rangeSeparator = ' - ';\n /**\n * Date format for date range input field\n */\n this.rangeInputFormat = 'L';\n // DatepickerFormatOptions\n this.monthTitle = 'MMMM';\n this.yearTitle = 'YYYY';\n this.dayLabel = 'D';\n this.monthLabel = 'MMMM';\n this.yearLabel = 'YYYY';\n this.weekNumbers = 'w';\n /**\n * Shows 'today' button\n */\n this.showTodayButton = false;\n /**\n * Shows clear button\n */\n this.showClearButton = false;\n /**\n * Positioning of 'today' button\n */\n this.todayPosition = 'center';\n /**\n * Positioning of 'clear' button\n */\n this.clearPosition = 'right';\n /**\n * Label for 'today' button\n */\n this.todayButtonLabel = 'Today';\n /**\n * Label for 'clear' button\n */\n this.clearButtonLabel = 'Clear';\n /**\n * Label for 'custom range' button\n */\n this.customRangeButtonLabel = 'Custom Range';\n /**\n * Shows timepicker under datepicker\n */\n this.withTimepicker = false;\n /**\n * Set allowed positions of container.\n */\n this.allowedPositions = ['top', 'bottom'];\n /**\n * Set rule for datepicker closing. If value is true datepicker closes only if date is changed, if user changes only time datepicker doesn't close. It is available only if property withTimepicker is set true\n * */\n this.keepDatepickerOpened = false;\n /**\n * Allows keep invalid dates in range. Can be used with minDate, maxDate\n * */\n this.keepDatesOutOfRules = false;\n }\n static {\n this.ɵfac = function BsDatepickerConfig_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDatepickerConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BsDatepickerConfig,\n factory: BsDatepickerConfig.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return BsDatepickerConfig;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst DATEPICKER_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\nconst datepickerAnimation = trigger('datepickerAnimation', [state('animated-down', style({\n height: '*',\n overflow: 'hidden'\n})), transition('* => animated-down', [style({\n height: 0,\n overflow: 'hidden'\n}), animate(DATEPICKER_ANIMATION_TIMING)]), state('animated-up', style({\n height: '*',\n overflow: 'hidden'\n})), transition('* => animated-up', [style({\n height: '*',\n overflow: 'hidden'\n}), animate(DATEPICKER_ANIMATION_TIMING)]), transition('* => unanimated', animate('0s'))]);\nclass BsDatepickerAbstractComponent {\n constructor() {\n this.containerClass = '';\n this.customRanges = [];\n this.chosenRange = [];\n this._daysCalendarSub = new Subscription();\n this.selectedTimeSub = new Subscription();\n }\n set minDate(value) {\n this._effects?.setMinDate(value);\n }\n set maxDate(value) {\n this._effects?.setMaxDate(value);\n }\n set daysDisabled(value) {\n this._effects?.setDaysDisabled(value);\n }\n set datesDisabled(value) {\n this._effects?.setDatesDisabled(value);\n }\n set datesEnabled(value) {\n this._effects?.setDatesEnabled(value);\n }\n set isDisabled(value) {\n this._effects?.setDisabled(value);\n }\n set dateCustomClasses(value) {\n this._effects?.setDateCustomClasses(value);\n }\n set dateTooltipTexts(value) {\n this._effects?.setDateTooltipTexts(value);\n }\n set daysCalendar$(value) {\n this._daysCalendar$ = value;\n this._daysCalendarSub.unsubscribe();\n this._daysCalendarSub.add(this._daysCalendar$.subscribe(value => {\n this.multipleCalendars = !!value && value.length > 1;\n }));\n }\n get daysCalendar$() {\n return this._daysCalendar$;\n }\n // todo: valorkin fix\n // eslint-disable-next-line @typescript-eslint/no-unused-vars,@typescript-eslint/no-empty-function\n setViewMode(event) {}\n // eslint-disable-next-line\n navigateTo(event) {}\n // eslint-disable-next-line\n dayHoverHandler(event) {}\n // eslint-disable-next-line\n weekHoverHandler(event) {}\n // eslint-disable-next-line\n monthHoverHandler(event) {}\n // eslint-disable-next-line\n yearHoverHandler(event) {}\n // eslint-disable-next-line\n timeSelectHandler(date, index) {}\n // eslint-disable-next-line\n daySelectHandler(day) {}\n // eslint-disable-next-line\n monthSelectHandler(event) {}\n // eslint-disable-next-line\n yearSelectHandler(event) {}\n // eslint-disable-next-line\n setRangeOnCalendar(dates) {}\n // eslint-disable-next-line\n setToday() {}\n // eslint-disable-next-line\n clearDate() {}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _stopPropagation(event) {\n event.stopPropagation();\n }\n}\nlet BsDatepickerActions = /*#__PURE__*/(() => {\n class BsDatepickerActions {\n static {\n this.CALCULATE = '[datepicker] calculate dates matrix';\n }\n static {\n this.FORMAT = '[datepicker] format datepicker values';\n }\n static {\n this.FLAG = '[datepicker] set flags';\n }\n static {\n this.SELECT = '[datepicker] select date';\n }\n static {\n this.NAVIGATE_OFFSET = '[datepicker] shift view date';\n }\n static {\n this.NAVIGATE_TO = '[datepicker] change view date';\n }\n static {\n this.SET_OPTIONS = '[datepicker] update render options';\n }\n static {\n this.HOVER = '[datepicker] hover date';\n }\n static {\n this.CHANGE_VIEWMODE = '[datepicker] switch view mode';\n }\n static {\n this.SET_MIN_DATE = '[datepicker] set min date';\n }\n static {\n this.SET_MAX_DATE = '[datepicker] set max date';\n }\n static {\n this.SET_DAYSDISABLED = '[datepicker] set days disabled';\n }\n static {\n this.SET_DATESDISABLED = '[datepicker] set dates disabled';\n }\n static {\n this.SET_DATESENABLED = '[datepicker] set dates enabled';\n }\n static {\n this.SET_IS_DISABLED = '[datepicker] set is disabled';\n }\n static {\n this.SET_DATE_CUSTOM_CLASSES = '[datepicker] set date custom classes';\n }\n static {\n this.SET_DATE_TOOLTIP_TEXTS = '[datepicker] set date tooltip texts';\n }\n static {\n this.SET_LOCALE = '[datepicker] set datepicker locale';\n }\n static {\n this.SELECT_TIME = '[datepicker] select time';\n }\n static {\n this.SELECT_RANGE = '[daterangepicker] select dates range';\n }\n calculate() {\n return {\n type: BsDatepickerActions.CALCULATE\n };\n }\n format() {\n return {\n type: BsDatepickerActions.FORMAT\n };\n }\n flag() {\n return {\n type: BsDatepickerActions.FLAG\n };\n }\n select(date) {\n return {\n type: BsDatepickerActions.SELECT,\n payload: date\n };\n }\n selectTime(date, index) {\n return {\n type: BsDatepickerActions.SELECT_TIME,\n payload: {\n date,\n index\n }\n };\n }\n changeViewMode(event) {\n return {\n type: BsDatepickerActions.CHANGE_VIEWMODE,\n payload: event\n };\n }\n navigateTo(event) {\n return {\n type: BsDatepickerActions.NAVIGATE_TO,\n payload: event\n };\n }\n navigateStep(step) {\n return {\n type: BsDatepickerActions.NAVIGATE_OFFSET,\n payload: step\n };\n }\n setOptions(options) {\n return {\n type: BsDatepickerActions.SET_OPTIONS,\n payload: options\n };\n }\n // date range picker\n selectRange(value) {\n return {\n type: BsDatepickerActions.SELECT_RANGE,\n payload: value\n };\n }\n hoverDay(event) {\n return {\n type: BsDatepickerActions.HOVER,\n payload: event.isHovered ? event.cell.date : null\n };\n }\n minDate(date) {\n return {\n type: BsDatepickerActions.SET_MIN_DATE,\n payload: date\n };\n }\n maxDate(date) {\n return {\n type: BsDatepickerActions.SET_MAX_DATE,\n payload: date\n };\n }\n daysDisabled(days) {\n return {\n type: BsDatepickerActions.SET_DAYSDISABLED,\n payload: days\n };\n }\n datesDisabled(dates) {\n return {\n type: BsDatepickerActions.SET_DATESDISABLED,\n payload: dates\n };\n }\n datesEnabled(dates) {\n return {\n type: BsDatepickerActions.SET_DATESENABLED,\n payload: dates\n };\n }\n isDisabled(value) {\n return {\n type: BsDatepickerActions.SET_IS_DISABLED,\n payload: value\n };\n }\n setDateCustomClasses(value) {\n return {\n type: BsDatepickerActions.SET_DATE_CUSTOM_CLASSES,\n payload: value\n };\n }\n setDateTooltipTexts(value) {\n return {\n type: BsDatepickerActions.SET_DATE_TOOLTIP_TEXTS,\n payload: value\n };\n }\n setLocale(locale) {\n return {\n type: BsDatepickerActions.SET_LOCALE,\n payload: locale\n };\n }\n static {\n this.ɵfac = function BsDatepickerActions_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDatepickerActions)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BsDatepickerActions,\n factory: BsDatepickerActions.ɵfac,\n providedIn: 'platform'\n });\n }\n }\n return BsDatepickerActions;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsLocaleService = /*#__PURE__*/(() => {\n class BsLocaleService {\n constructor() {\n this._defaultLocale = 'en';\n this._locale = new BehaviorSubject(this._defaultLocale);\n this._localeChange = this._locale.asObservable();\n }\n get locale() {\n return this._locale;\n }\n get localeChange() {\n return this._localeChange;\n }\n get currentLocale() {\n return this._locale.getValue();\n }\n use(locale) {\n if (locale === this.currentLocale) {\n return;\n }\n this._locale.next(locale);\n }\n static {\n this.ɵfac = function BsLocaleService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsLocaleService)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BsLocaleService,\n factory: BsLocaleService.ɵfac,\n providedIn: 'platform'\n });\n }\n }\n return BsLocaleService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDatepickerEffects = /*#__PURE__*/(() => {\n class BsDatepickerEffects {\n constructor(_actions, _localeService) {\n this._actions = _actions;\n this._localeService = _localeService;\n this._subs = [];\n }\n init(_bsDatepickerStore) {\n this._store = _bsDatepickerStore;\n return this;\n }\n /** setters */\n setValue(value) {\n this._store?.dispatch(this._actions.select(value));\n }\n setRangeValue(value) {\n this._store?.dispatch(this._actions.selectRange(value));\n }\n setMinDate(value) {\n this._store?.dispatch(this._actions.minDate(value));\n return this;\n }\n setMaxDate(value) {\n this._store?.dispatch(this._actions.maxDate(value));\n return this;\n }\n setDaysDisabled(value) {\n this._store?.dispatch(this._actions.daysDisabled(value));\n return this;\n }\n setDatesDisabled(value) {\n this._store?.dispatch(this._actions.datesDisabled(value));\n return this;\n }\n setDatesEnabled(value) {\n this._store?.dispatch(this._actions.datesEnabled(value));\n return this;\n }\n setDisabled(value) {\n this._store?.dispatch(this._actions.isDisabled(value));\n return this;\n }\n setDateCustomClasses(value) {\n this._store?.dispatch(this._actions.setDateCustomClasses(value));\n return this;\n }\n setDateTooltipTexts(value) {\n this._store?.dispatch(this._actions.setDateTooltipTexts(value));\n return this;\n }\n /* Set rendering options */\n setOptions(_config) {\n const _options = Object.assign({\n locale: this._localeService.currentLocale\n }, _config);\n this._store?.dispatch(this._actions.setOptions(_options));\n return this;\n }\n /** view to mode bindings */\n setBindings(container) {\n if (!this._store) {\n return this;\n }\n container.selectedTime = this._store.select(state => state.selectedTime).pipe(filter(times => !!times));\n container.daysCalendar$ = this._store.select(state => state.flaggedMonths).pipe(filter(months => !!months));\n // month calendar\n container.monthsCalendar = this._store.select(state => state.flaggedMonthsCalendar).pipe(filter(months => !!months));\n // year calendar\n container.yearsCalendar = this._store.select(state => state.yearsCalendarFlagged).pipe(filter(years => !!years));\n container.viewMode = this._store.select(state => state.view?.mode);\n container.options$ = combineLatest([this._store.select(state => state.showWeekNumbers), this._store.select(state => state.displayMonths)]).pipe(map(latest => ({\n showWeekNumbers: latest[0],\n displayMonths: latest[1]\n })));\n return this;\n }\n /** event handlers */\n setEventHandlers(container) {\n container.setViewMode = event => {\n this._store?.dispatch(this._actions.changeViewMode(event));\n };\n container.navigateTo = event => {\n this._store?.dispatch(this._actions.navigateStep(event.step));\n };\n container.dayHoverHandler = event => {\n const _cell = event.cell;\n if (_cell.isOtherMonth || _cell.isDisabled) {\n return;\n }\n this._store?.dispatch(this._actions.hoverDay(event));\n _cell.isHovered = event.isHovered;\n };\n container.monthHoverHandler = event => {\n event.cell.isHovered = event.isHovered;\n };\n container.yearHoverHandler = event => {\n event.cell.isHovered = event.isHovered;\n };\n return this;\n }\n registerDatepickerSideEffects() {\n if (!this._store) {\n return this;\n }\n this._subs.push(this._store.select(state => state.view).subscribe(() => {\n this._store?.dispatch(this._actions.calculate());\n }));\n // format calendar values on month model change\n this._subs.push(this._store.select(state => state.monthsModel).pipe(filter(monthModel => !!monthModel)).subscribe(() => this._store?.dispatch(this._actions.format())));\n // flag day values\n this._subs.push(this._store.select(state => state.formattedMonths).pipe(filter(month => !!month)).subscribe(() => this._store?.dispatch(this._actions.flag())));\n // flag day values\n this._subs.push(this._store.select(state => state.selectedDate).pipe(filter(selectedDate => !!selectedDate)).subscribe(() => this._store?.dispatch(this._actions.flag())));\n // flag for date range picker\n this._subs.push(this._store.select(state => state.selectedRange).pipe(filter(selectedRange => !!selectedRange)).subscribe(() => this._store?.dispatch(this._actions.flag())));\n // monthsCalendar\n this._subs.push(this._store.select(state => state.monthsCalendar).subscribe(() => this._store?.dispatch(this._actions.flag())));\n // years calendar\n this._subs.push(this._store.select(state => state.yearsCalendarModel).pipe(filter(state => !!state)).subscribe(() => this._store?.dispatch(this._actions.flag())));\n // on hover\n this._subs.push(this._store.select(state => state.hoveredDate).pipe(filter(hoveredDate => !!hoveredDate)).subscribe(() => this._store?.dispatch(this._actions.flag())));\n // date custom classes\n this._subs.push(this._store.select(state => state.dateCustomClasses).pipe(filter(dateCustomClasses => !!dateCustomClasses)).subscribe(() => this._store?.dispatch(this._actions.flag())));\n // date tooltip texts\n this._subs.push(this._store.select(state => state.dateTooltipTexts).pipe(filter(dateTooltipTexts => !!dateTooltipTexts)).subscribe(() => this._store?.dispatch(this._actions.flag())));\n // on locale change\n this._subs.push(this._localeService.localeChange.subscribe(locale => this._store?.dispatch(this._actions.setLocale(locale))));\n return this;\n }\n destroy() {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n }\n static {\n this.ɵfac = function BsDatepickerEffects_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDatepickerEffects)(i0.ɵɵinject(BsDatepickerActions), i0.ɵɵinject(BsLocaleService));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BsDatepickerEffects,\n factory: BsDatepickerEffects.ɵfac,\n providedIn: 'platform'\n });\n }\n }\n return BsDatepickerEffects;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst defaultMonthOptions = {\n width: 7,\n height: 6\n};\nconst dayInMilliseconds = 24 * 60 * 60 * 1000;\nclass BsDatepickerState {\n constructor() {\n // DatepickerRenderOptions\n this.showWeekNumbers = true;\n this.displayMonths = 1;\n }\n}\nconst _initialView = {\n date: new Date(),\n mode: 'day'\n};\nconst initialDatepickerState = Object.assign(new BsDatepickerConfig(), {\n locale: 'en',\n view: _initialView,\n selectedRange: [],\n selectedTime: [],\n monthViewOptions: defaultMonthOptions\n});\nfunction getStartingDayOfCalendar(date, options) {\n if (isFirstDayOfWeek(date, options.firstDayOfWeek)) {\n return date;\n }\n const weekDay = getDay(date);\n const offset = calculateDateOffset(weekDay, options.firstDayOfWeek);\n return shiftDate(date, {\n day: -offset\n });\n}\nfunction calculateDateOffset(weekday, startingDayOffset) {\n const _startingDayOffset = Number(startingDayOffset);\n if (isNaN(_startingDayOffset)) {\n return 0;\n }\n if (_startingDayOffset === 0) {\n return weekday;\n }\n const offset = weekday - _startingDayOffset % 7;\n return offset < 0 ? offset + 7 : offset;\n}\nfunction isMonthDisabled(date, min, max) {\n const minBound = min && isBefore(endOf(date, 'month'), min, 'day');\n const maxBound = max && isAfter(startOf(date, 'month'), max, 'day');\n return minBound || maxBound || false;\n}\nfunction isYearDisabled(date, min, max) {\n const minBound = min && isBefore(endOf(date, 'year'), min, 'day');\n const maxBound = max && isAfter(startOf(date, 'year'), max, 'day');\n return minBound || maxBound || false;\n}\nfunction isDisabledDate(date, datesDisabled, unit) {\n if (!datesDisabled || !isArray(datesDisabled) || !datesDisabled.length) {\n return false;\n }\n if (unit && unit === 'year' && !datesDisabled[0].getDate()) {\n return datesDisabled.some(dateDisabled => isSame(date, dateDisabled, 'year'));\n }\n return datesDisabled.some(dateDisabled => isSame(date, dateDisabled, 'date'));\n}\nfunction isEnabledDate(date, datesEnabled, unit) {\n if (!datesEnabled || !isArray(datesEnabled) || !datesEnabled.length) {\n return false;\n }\n return !datesEnabled.some(enabledDate => isSame(date, enabledDate, unit || 'date'));\n}\nfunction getYearsCalendarInitialDate(state, calendarIndex = 0) {\n const model = state && state.yearsCalendarModel && state.yearsCalendarModel[calendarIndex];\n return model?.years[0] && model.years[0][0] && model.years[0][0].date;\n}\nfunction checkRangesWithMaxDate(ranges, maxDate) {\n if (!ranges) return ranges;\n if (!maxDate) return ranges;\n if (!ranges.length && !ranges[0].value) return ranges;\n ranges.forEach(item => {\n if (!item || !item.value) return ranges;\n if (item.value instanceof Date) return ranges;\n if (!(item.value instanceof Array && item.value.length)) return ranges;\n item.value = compareDateWithMaxDateHelper(item.value, maxDate);\n return ranges;\n });\n return ranges;\n}\nfunction checkBsValue(date, maxDate) {\n if (!date) return date;\n if (!maxDate) return date;\n if (date instanceof Array && !date.length) return date;\n if (date instanceof Date) return date;\n return compareDateWithMaxDateHelper(date, maxDate);\n}\nfunction compareDateWithMaxDateHelper(date, maxDate) {\n if (date instanceof Array) {\n const editedValues = date.map(item => {\n if (!item) return item;\n if (isAfter(item, maxDate, 'date')) item = maxDate;\n return item;\n });\n return editedValues;\n }\n return date;\n}\nfunction setCurrentTimeOnDateSelect(value) {\n if (!value) return value;\n return setCurrentTimeHelper(value);\n}\nfunction setDateRangesCurrentTimeOnDateSelect(value) {\n if (!value?.length) return value;\n value.map(date => {\n if (!date) {\n return date;\n }\n return setCurrentTimeHelper(date);\n });\n return value;\n}\nfunction setCurrentTimeHelper(date) {\n const now = new Date();\n date.setMilliseconds(now.getMilliseconds());\n date.setSeconds(now.getSeconds());\n date.setMinutes(now.getMinutes());\n date.setHours(now.getHours());\n return date;\n}\nfunction createMatrix(options, fn) {\n let prevValue = options.initialDate;\n const matrix = 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 return matrix;\n}\n\n// user and model input should handle parsing and validating input values\nfunction calcDaysCalendar(startingDate, options) {\n const firstDay = getFirstDayOfMonth(startingDate);\n const initialDate = getStartingDayOfCalendar(firstDay, options);\n // todo test\n const matrixOptions = {\n width: options.width || 0,\n height: options.height || 0,\n initialDate,\n shift: {\n day: 1\n }\n };\n const daysMatrix = createMatrix(matrixOptions, date => date);\n return {\n daysMatrix,\n month: firstDay\n };\n}\nfunction formatDaysCalendar(daysCalendar, formatOptions, monthIndex) {\n return {\n month: daysCalendar.month,\n monthTitle: formatDate(daysCalendar.month, formatOptions.monthTitle, formatOptions.locale),\n yearTitle: formatDate(daysCalendar.month, formatOptions.yearTitle, formatOptions.locale),\n weekNumbers: getWeekNumbers(daysCalendar.daysMatrix, formatOptions.weekNumbers, formatOptions.locale),\n weekdays: getShiftedWeekdays(formatOptions.locale),\n weeks: daysCalendar.daysMatrix.map((week, weekIndex) => ({\n days: week.map((date, dayIndex) => ({\n date,\n label: formatDate(date, formatOptions.dayLabel, formatOptions.locale),\n monthIndex,\n weekIndex,\n dayIndex\n }))\n })),\n hideLeftArrow: false,\n hideRightArrow: false,\n disableLeftArrow: false,\n disableRightArrow: false\n };\n}\nfunction getWeekNumbers(daysMatrix, format, locale) {\n return daysMatrix.map(days => days[0] ? formatDate(days[0], format, locale) : '');\n}\nfunction getShiftedWeekdays(locale) {\n const _locale = getLocale(locale);\n const weekdays = _locale.weekdaysShort();\n const firstDayOfWeek = _locale.firstDayOfWeek();\n return [...weekdays.slice(firstDayOfWeek), ...weekdays.slice(0, firstDayOfWeek)];\n}\nfunction flagDaysCalendar(formattedMonth, options) {\n formattedMonth.weeks.forEach(week => {\n week.days.forEach((day, dayIndex) => {\n // datepicker\n const isOtherMonth = !isSameMonth(day.date, formattedMonth.month);\n const isHovered = !isOtherMonth && isSameDay(day.date, options.hoveredDate);\n // date range picker\n const isSelectionStart = !isOtherMonth && options.selectedRange && isSameDay(day.date, options.selectedRange[0]);\n const isSelectionEnd = !isOtherMonth && options.selectedRange && isSameDay(day.date, options.selectedRange[1]);\n const isSelected = !isOtherMonth && isSameDay(day.date, options.selectedDate) || isSelectionStart || isSelectionEnd;\n const isInRange = !isOtherMonth && options.selectedRange && isDateInRange(day.date, options.selectedRange, options.hoveredDate);\n const isDisabled = options.isDisabled || isBefore(day.date, options.minDate, 'day') || isAfter(day.date, options.maxDate, 'day') || isDisabledDay(day.date, options.daysDisabled) || isDisabledDate(day.date, options.datesDisabled) || isEnabledDate(day.date, options.datesEnabled);\n const currentDate = new Date();\n const isToday = !isOtherMonth && isSameDay(day.date, currentDate);\n const customClasses = options.dateCustomClasses && options.dateCustomClasses.map(dcc => isSameDay(day.date, dcc.date) ? dcc.classes : []).reduce((previousValue, currentValue) => previousValue.concat(currentValue), []).join(' ') || '';\n const tooltipText = options.dateTooltipTexts && options.dateTooltipTexts.map(tt => isSameDay(day.date, tt.date) ? tt.tooltipText : '').reduce((previousValue, currentValue) => {\n previousValue.push(currentValue);\n return previousValue;\n }, []).join(' ') || '';\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 tooltipText\n });\n if (day.isOtherMonth !== newDay.isOtherMonth || day.isHovered !== newDay.isHovered || day.isSelected !== newDay.isSelected || day.isSelectionStart !== newDay.isSelectionStart || day.isSelectionEnd !== newDay.isSelectionEnd || day.isDisabled !== newDay.isDisabled || day.isInRange !== newDay.isInRange || day.customClasses !== newDay.customClasses || day.tooltipText !== newDay.tooltipText) {\n week.days[dayIndex] = newDay;\n }\n });\n });\n // todo: add check for linked calendars\n formattedMonth.hideLeftArrow = options.isDisabled || !!options.monthIndex && options.monthIndex > 0 && options.monthIndex !== options.displayMonths;\n formattedMonth.hideRightArrow = options.isDisabled || (!!options.monthIndex || options.monthIndex === 0) && !!options.displayMonths && options.monthIndex < options.displayMonths && options.monthIndex + 1 !== options.displayMonths;\n formattedMonth.disableLeftArrow = isMonthDisabled(shiftDate(formattedMonth.month, {\n month: -1\n }), options.minDate, options.maxDate);\n formattedMonth.disableRightArrow = isMonthDisabled(shiftDate(formattedMonth.month, {\n month: 1\n }), options.minDate, options.maxDate);\n return formattedMonth;\n}\nfunction isDateInRange(date, selectedRange, hoveredDate) {\n if (!date || !selectedRange || !selectedRange[0]) {\n return false;\n }\n if (selectedRange[1]) {\n return date > selectedRange[0] && date <= selectedRange[1];\n }\n if (hoveredDate) {\n return date > selectedRange[0] && date <= hoveredDate;\n }\n return false;\n}\nfunction canSwitchMode(mode, minMode) {\n return minMode ? mode >= minMode : true;\n}\nconst height$1 = 4;\nconst width$1 = 3;\nconst shift$1 = {\n month: 1\n};\nfunction formatMonthsCalendar(viewDate, formatOptions) {\n const initialDate = startOf(viewDate, 'year');\n const matrixOptions = {\n width: width$1,\n height: height$1,\n initialDate,\n shift: shift$1\n };\n const monthMatrix = createMatrix(matrixOptions, date => ({\n date,\n label: formatDate(date, formatOptions.monthLabel, formatOptions.locale)\n }));\n return {\n months: monthMatrix,\n monthTitle: '',\n yearTitle: formatDate(viewDate, formatOptions.yearTitle, formatOptions.locale),\n hideRightArrow: false,\n hideLeftArrow: false,\n disableRightArrow: false,\n disableLeftArrow: false\n };\n}\nfunction flagMonthsCalendar(monthCalendar, options) {\n monthCalendar.months.forEach((months, rowIndex) => {\n months.forEach((month, monthIndex) => {\n let isSelected;\n const isHovered = isSameMonth(month.date, options.hoveredMonth);\n const isDisabled = options.isDisabled || isDisabledDate(month.date, options.datesDisabled) || isEnabledDate(month.date, options.datesEnabled, 'month') || isMonthDisabled(month.date, options.minDate, options.maxDate);\n if (!options.selectedDate && options.selectedRange) {\n isSelected = isSameMonth(month.date, options.selectedRange[0]);\n if (!isSelected) {\n isSelected = isSameMonth(month.date, options.selectedRange[1]);\n }\n } else {\n isSelected = isSameMonth(month.date, options.selectedDate);\n }\n const newMonth = Object.assign(/*{},*/month, {\n isHovered,\n isDisabled,\n isSelected\n });\n if (month.isHovered !== newMonth.isHovered || month.isDisabled !== newMonth.isDisabled || month.isSelected !== newMonth.isSelected) {\n monthCalendar.months[rowIndex][monthIndex] = newMonth;\n }\n });\n });\n // todo: add check for linked calendars\n monthCalendar.hideLeftArrow = !!options.monthIndex && options.monthIndex > 0 && options.monthIndex !== options.displayMonths;\n monthCalendar.hideRightArrow = (!!options.monthIndex || options.monthIndex === 0) && (!!options.displayMonths || options.displayMonths === 0) && options.monthIndex < options.displayMonths && options.monthIndex + 1 !== options.displayMonths;\n monthCalendar.disableLeftArrow = isYearDisabled(shiftDate(monthCalendar.months[0][0].date, {\n year: -1\n }), options.minDate, options.maxDate);\n monthCalendar.disableRightArrow = isYearDisabled(shiftDate(monthCalendar.months[0][0].date, {\n year: 1\n }), options.minDate, options.maxDate);\n return monthCalendar;\n}\nconst height = 4;\nconst width = 4;\nconst yearsPerCalendar = height * width;\nconst initialYearShift = (Math.floor(yearsPerCalendar / 2) - 1) * -1;\nconst shift = {\n year: 1\n};\nfunction formatYearsCalendar(viewDate, formatOptions, previousInitialDate) {\n const initialDate = calculateInitialDate(viewDate, previousInitialDate);\n const matrixOptions = {\n width,\n height,\n initialDate,\n shift\n };\n const yearsMatrix = createMatrix(matrixOptions, date => ({\n date,\n label: formatDate(date, formatOptions.yearLabel, formatOptions.locale)\n }));\n const yearTitle = formatYearRangeTitle(yearsMatrix, formatOptions);\n return {\n years: yearsMatrix,\n monthTitle: '',\n yearTitle,\n hideLeftArrow: false,\n hideRightArrow: false,\n disableLeftArrow: false,\n disableRightArrow: false\n };\n}\nfunction calculateInitialDate(viewDate, previousInitialDate) {\n if (previousInitialDate && viewDate.getFullYear() >= previousInitialDate.getFullYear() && viewDate.getFullYear() < previousInitialDate.getFullYear() + yearsPerCalendar) {\n return previousInitialDate;\n }\n return shiftDate(viewDate, {\n year: initialYearShift\n });\n}\nfunction formatYearRangeTitle(yearsMatrix, formatOptions) {\n const from = formatDate(yearsMatrix[0][0].date, formatOptions.yearTitle, formatOptions.locale);\n const to = formatDate(yearsMatrix[height - 1][width - 1].date, formatOptions.yearTitle, formatOptions.locale);\n return `${from} - ${to}`;\n}\nfunction flagYearsCalendar(yearsCalendar, options) {\n yearsCalendar.years.forEach((years, rowIndex) => {\n years.forEach((year, yearIndex) => {\n let isSelected;\n const isHovered = isSameYear(year.date, options.hoveredYear);\n const isDisabled = options.isDisabled || isDisabledDate(year.date, options.datesDisabled, 'year') || isEnabledDate(year.date, options.datesEnabled, 'year') || isYearDisabled(year.date, options.minDate, options.maxDate);\n if (!options.selectedDate && options.selectedRange) {\n isSelected = isSameYear(year.date, options.selectedRange[0]);\n if (!isSelected) {\n isSelected = isSameYear(year.date, options.selectedRange[1]);\n }\n } else {\n isSelected = isSameYear(year.date, options.selectedDate);\n }\n const newMonth = Object.assign(/*{},*/year, {\n isHovered,\n isDisabled,\n isSelected\n });\n if (year.isHovered !== newMonth.isHovered || year.isDisabled !== newMonth.isDisabled || year.isSelected !== newMonth.isSelected) {\n yearsCalendar.years[rowIndex][yearIndex] = newMonth;\n }\n });\n });\n // todo: add check for linked calendars\n yearsCalendar.hideLeftArrow = !!options.yearIndex && options.yearIndex > 0 && options.yearIndex !== options.displayMonths;\n yearsCalendar.hideRightArrow = !!options.yearIndex && !!options.displayMonths && options.yearIndex < options.displayMonths && options.yearIndex + 1 !== options.displayMonths;\n yearsCalendar.disableLeftArrow = isYearDisabled(shiftDate(yearsCalendar.years[0][0].date, {\n year: -1\n }), options.minDate, options.maxDate);\n const i = yearsCalendar.years.length - 1;\n const j = yearsCalendar.years[i].length - 1;\n yearsCalendar.disableRightArrow = isYearDisabled(shiftDate(yearsCalendar.years[i][j].date, {\n year: 1\n }), options.minDate, options.maxDate);\n return yearsCalendar;\n}\nfunction copyTime(sourceDate, time) {\n if (!sourceDate || !isNaN(sourceDate.getTime())) {\n return;\n }\n sourceDate.setHours(time.getHours());\n sourceDate.setMinutes(time.getMinutes());\n sourceDate.setSeconds(time.getSeconds());\n sourceDate.setMilliseconds(time.getMilliseconds());\n}\nfunction bsDatepickerReducer(state = initialDatepickerState, action) {\n switch (action.type) {\n case BsDatepickerActions.CALCULATE:\n {\n return calculateReducer(state);\n }\n case BsDatepickerActions.FORMAT:\n {\n return formatReducer(state);\n }\n case BsDatepickerActions.FLAG:\n {\n return flagReducer(state);\n }\n case BsDatepickerActions.NAVIGATE_OFFSET:\n {\n return navigateOffsetReducer(state, action);\n }\n case BsDatepickerActions.NAVIGATE_TO:\n {\n const payload = action.payload;\n if (!state.view || !payload.unit) {\n return state;\n }\n const date = setFullDate(state.view.date, payload.unit);\n let newState;\n let mode;\n if (canSwitchMode(payload.viewMode, state.minMode)) {\n mode = payload.viewMode;\n newState = {\n view: {\n date,\n mode\n }\n };\n } else {\n mode = state.view.mode;\n newState = {\n selectedDate: date,\n view: {\n date,\n mode\n }\n };\n }\n return Object.assign({}, state, newState);\n }\n case BsDatepickerActions.CHANGE_VIEWMODE:\n {\n if (!canSwitchMode(action.payload, state.minMode) || !state.view) {\n return state;\n }\n const date = state.view.date;\n const mode = action.payload;\n const newState = {\n view: {\n date,\n mode\n }\n };\n return Object.assign({}, state, newState);\n }\n case BsDatepickerActions.HOVER:\n {\n return Object.assign({}, state, {\n hoveredDate: action.payload\n });\n }\n case BsDatepickerActions.SELECT:\n {\n if (!state.view) {\n return state;\n }\n const newState = {\n selectedDate: action.payload,\n view: state.view\n };\n if (Array.isArray(state.selectedTime)) {\n const _time = state.selectedTime[0];\n if (newState.selectedDate && _time) {\n copyTime(newState.selectedDate, _time);\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 = {\n mode,\n date\n };\n return Object.assign({}, state, newState);\n }\n case BsDatepickerActions.SELECT_TIME:\n {\n const {\n date,\n index\n } = action.payload;\n const selectedTime = state.selectedTime ? [...state.selectedTime] : [];\n selectedTime[index] = date;\n return Object.assign({}, state, {\n selectedTime\n });\n }\n case BsDatepickerActions.SET_OPTIONS:\n {\n if (!state.view) {\n return state;\n }\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 || isArray(newState.value) && isDateValid(newState.value[0]) && newState.value[0] || state.view.date;\n const date = getViewDate(_viewDate, newState.minDate, newState.maxDate);\n newState.view = {\n mode,\n date\n };\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 newState.selectedTime = newState.value.map(i => i);\n }\n // if new value is a date -> datepicker\n if (newState.value instanceof Date) {\n newState.selectedDate = newState.value;\n newState.selectedTime = [newState.value];\n }\n // provided value is not supported :)\n // need to report it somehow\n }\n return Object.assign({}, state, newState);\n }\n // date range picker\n case BsDatepickerActions.SELECT_RANGE:\n {\n if (!state.view) {\n return state;\n }\n const newState = {\n selectedRange: action.payload,\n view: state.view\n };\n newState.selectedRange?.forEach((dte, index) => {\n if (Array.isArray(state.selectedTime)) {\n const _time = state.selectedTime[index];\n if (_time) {\n copyTime(dte, _time);\n }\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 = {\n mode,\n date\n };\n return Object.assign({}, state, newState);\n }\n case BsDatepickerActions.SET_MIN_DATE:\n {\n return Object.assign({}, state, {\n minDate: action.payload\n });\n }\n case BsDatepickerActions.SET_MAX_DATE:\n {\n return Object.assign({}, state, {\n maxDate: action.payload\n });\n }\n case BsDatepickerActions.SET_IS_DISABLED:\n {\n return Object.assign({}, state, {\n isDisabled: action.payload\n });\n }\n case BsDatepickerActions.SET_DATE_CUSTOM_CLASSES:\n {\n return Object.assign({}, state, {\n dateCustomClasses: action.payload\n });\n }\n case BsDatepickerActions.SET_DATE_TOOLTIP_TEXTS:\n {\n return Object.assign({}, state, {\n dateTooltipTexts: action.payload\n });\n }\n default:\n return state;\n }\n}\nfunction calculateReducer(state) {\n if (!state.view) {\n return state;\n }\n // how many calendars\n let displayMonths;\n if (state.displayOneMonthRange && isDisplayOneMonth(state.view.date, state.minDate, state.maxDate)) {\n displayMonths = 1;\n } else {\n displayMonths = state.displayMonths || 1;\n }\n // use selected date on initial rendering if set\n let viewDate = state.view.date;\n if (state.view.mode === 'day' && state.monthViewOptions) {\n if (state.showPreviousMonth && state.selectedRange && state.selectedRange.length === 0) {\n viewDate = shiftDate(viewDate, {\n month: -1\n });\n }\n state.monthViewOptions.firstDayOfWeek = getLocale(state.locale).firstDayOfWeek();\n let 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(viewDate, state.monthViewOptions);\n viewDate = shiftDate(viewDate, {\n month: 1\n });\n }\n // Check if parameter enabled and check if it's not months navigation event\n if (state.preventChangeToNextMonth && state.flaggedMonths && state.hoveredDate) {\n const viewMonth = calcDaysCalendar(state.view.date, state.monthViewOptions);\n // Check if viewed right month same as in flaggedMonths state, then override months model with flaggedMonths\n if (state.flaggedMonths.length && state.flaggedMonths[1].month.getMonth() === viewMonth.month.getMonth()) {\n monthsModel = state.flaggedMonths.map(item => {\n if (state.monthViewOptions) {\n return calcDaysCalendar(item.month, state.monthViewOptions);\n }\n return null;\n }).filter(item => item !== null);\n }\n }\n return Object.assign({}, state, {\n monthsModel\n });\n }\n if (state.view.mode === 'month') {\n const monthsCalendar = new Array(displayMonths);\n for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {\n // todo: for unlinked calendars it will be harder\n monthsCalendar[calendarIndex] = formatMonthsCalendar(viewDate, getFormatOptions(state));\n viewDate = shiftDate(viewDate, {\n year: 1\n });\n }\n return Object.assign({}, state, {\n monthsCalendar\n });\n }\n if (state.view.mode === 'year') {\n const yearsCalendarModel = new Array(displayMonths);\n for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {\n // todo: for unlinked calendars it will be harder\n yearsCalendarModel[calendarIndex] = formatYearsCalendar(viewDate, getFormatOptions(state), state.minMode === 'year' ? getYearsCalendarInitialDate(state, calendarIndex) : undefined);\n viewDate = shiftDate(viewDate, {\n year: yearsPerCalendar\n });\n }\n return Object.assign({}, state, {\n yearsCalendarModel\n });\n }\n return state;\n}\nfunction formatReducer(state) {\n if (!state.view) {\n return state;\n }\n if (state.view.mode === 'day' && state.monthsModel) {\n const formattedMonths = state.monthsModel.map((month, monthIndex) => formatDaysCalendar(month, getFormatOptions(state), monthIndex));\n return Object.assign({}, state, {\n formattedMonths\n });\n }\n // how many calendars\n const displayMonths = state.displayMonths || 1;\n // check initial rendering\n // use selected date on initial rendering if set\n let viewDate = state.view.date;\n if (state.view.mode === 'month') {\n const monthsCalendar = new Array(displayMonths);\n for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {\n // todo: for unlinked calendars it will be harder\n monthsCalendar[calendarIndex] = formatMonthsCalendar(viewDate, getFormatOptions(state));\n viewDate = shiftDate(viewDate, {\n year: 1\n });\n }\n return Object.assign({}, state, {\n monthsCalendar\n });\n }\n if (state.view.mode === 'year') {\n const yearsCalendarModel = new Array(displayMonths);\n for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {\n // todo: for unlinked calendars it will be harder\n yearsCalendarModel[calendarIndex] = formatYearsCalendar(viewDate, getFormatOptions(state));\n viewDate = shiftDate(viewDate, {\n year: 16\n });\n }\n return Object.assign({}, state, {\n yearsCalendarModel\n });\n }\n return state;\n}\nfunction flagReducer(state) {\n if (!state.view) {\n return state;\n }\n const displayMonths = isDisplayOneMonth(state.view.date, state.minDate, state.maxDate) ? 1 : state.displayMonths;\n if (state.formattedMonths && state.view.mode === 'day') {\n const flaggedMonths = state.formattedMonths.map((formattedMonth, monthIndex) => 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 dateTooltipTexts: state.dateTooltipTexts,\n monthIndex\n }));\n return Object.assign({}, state, {\n flaggedMonths\n });\n }\n if (state.view.mode === 'month' && state.monthsCalendar) {\n const flaggedMonthsCalendar = state.monthsCalendar.map((formattedMonth, monthIndex) => flagMonthsCalendar(formattedMonth, {\n isDisabled: state.isDisabled,\n minDate: state.minDate,\n maxDate: state.maxDate,\n hoveredMonth: state.hoveredMonth,\n selectedDate: state.selectedDate,\n datesDisabled: state.datesDisabled,\n datesEnabled: state.datesEnabled,\n selectedRange: state.selectedRange,\n displayMonths,\n monthIndex\n }));\n return Object.assign({}, state, {\n flaggedMonthsCalendar\n });\n }\n if (state.view.mode === 'year' && state.yearsCalendarModel) {\n const yearsCalendarFlagged = state.yearsCalendarModel.map((formattedMonth, yearIndex) => flagYearsCalendar(formattedMonth, {\n isDisabled: state.isDisabled,\n minDate: state.minDate,\n maxDate: state.maxDate,\n hoveredYear: state.hoveredYear,\n selectedDate: state.selectedDate,\n datesDisabled: state.datesDisabled,\n datesEnabled: state.datesEnabled,\n selectedRange: state.selectedRange,\n displayMonths,\n yearIndex\n }));\n return Object.assign({}, state, {\n yearsCalendarFlagged\n });\n }\n return state;\n}\nfunction navigateOffsetReducer(state, action) {\n if (!state.view) {\n return state;\n }\n const date = shiftViewDate(state, action);\n if (!date) {\n return state;\n }\n const newState = {\n view: {\n mode: state.view.mode,\n date\n }\n };\n return Object.assign({}, state, newState);\n}\nfunction shiftViewDate(state, action) {\n if (!state.view) {\n return undefined;\n }\n if (state.view.mode === 'year' && state.minMode === 'year') {\n const initialDate = getYearsCalendarInitialDate(state, 0);\n if (initialDate) {\n const middleDate = shiftDate(initialDate, {\n year: -initialYearShift\n });\n return shiftDate(middleDate, action.payload);\n }\n }\n return shiftDate(startOf(state.view.date, 'month'), action.payload);\n}\nfunction getFormatOptions(state) {\n return {\n locale: state.locale,\n monthTitle: state.monthTitle,\n yearTitle: state.yearTitle,\n dayLabel: state.dayLabel,\n monthLabel: state.monthLabel,\n yearLabel: state.yearLabel,\n weekNumbers: state.weekNumbers\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 {\n class BsDatepickerStore extends MiniStore {\n constructor() {\n const _dispatcher = new BehaviorSubject({\n type: '[datepicker] dispatcher init'\n });\n const state = new MiniState(initialDatepickerState, _dispatcher, bsDatepickerReducer);\n super(_dispatcher, bsDatepickerReducer, state);\n }\n static {\n this.ɵfac = function BsDatepickerStore_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDatepickerStore)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BsDatepickerStore,\n factory: BsDatepickerStore.ɵfac,\n providedIn: 'platform'\n });\n }\n }\n return BsDatepickerStore;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsCustomDatesViewComponent = /*#__PURE__*/(() => {\n class BsCustomDatesViewComponent {\n constructor() {\n this.onSelect = new EventEmitter();\n }\n selectFromRanges(range) {\n this.onSelect.emit(range);\n }\n static {\n this.ɵfac = function BsCustomDatesViewComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsCustomDatesViewComponent)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BsCustomDatesViewComponent,\n selectors: [[\"bs-custom-date-view\"]],\n inputs: {\n ranges: \"ranges\",\n selectedRange: \"selectedRange\",\n customRangeLabel: \"customRangeLabel\"\n },\n outputs: {\n onSelect: \"onSelect\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 1,\n consts: [[1, \"bs-datepicker-predefined-btns\"], [\"type\", \"button\", \"class\", \"btn\", 3, \"selected\", \"click\", 4, \"ngFor\", \"ngForOf\"], [\"type\", \"button\", 1, \"btn\", 3, \"click\"]],\n template: function BsCustomDatesViewComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtemplate(1, BsCustomDatesViewComponent_button_1_Template, 2, 3, \"button\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.ranges);\n }\n },\n dependencies: [NgFor],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return BsCustomDatesViewComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** *************** */\n// events\n/** *************** */\nvar BsNavigationDirection = /*#__PURE__*/function (BsNavigationDirection) {\n BsNavigationDirection[BsNavigationDirection[\"UP\"] = 0] = \"UP\";\n BsNavigationDirection[BsNavigationDirection[\"DOWN\"] = 1] = \"DOWN\";\n return BsNavigationDirection;\n}(BsNavigationDirection || {});\nlet BsDatepickerNavigationViewComponent = /*#__PURE__*/(() => {\n class BsDatepickerNavigationViewComponent {\n constructor() {\n this.isDisabled = false;\n this.onNavigate = new EventEmitter();\n this.onViewMode = new EventEmitter();\n }\n navTo(down) {\n this.onNavigate.emit(down ? BsNavigationDirection.DOWN : BsNavigationDirection.UP);\n }\n view(viewMode) {\n if (this.isDisabled) {\n return;\n }\n this.onViewMode.emit(viewMode);\n }\n static {\n this.ɵfac = function BsDatepickerNavigationViewComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDatepickerNavigationViewComponent)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BsDatepickerNavigationViewComponent,\n selectors: [[\"bs-datepicker-navigation-view\"]],\n inputs: {\n calendar: \"calendar\",\n isDisabled: \"isDisabled\"\n },\n outputs: {\n onNavigate: \"onNavigate\",\n onViewMode: \"onViewMode\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 12,\n vars: 9,\n consts: [[\"type\", \"button\", 1, \"previous\", 3, \"click\", \"disabled\"], [4, \"ngIf\"], [\"type\", \"button\", 1, \"current\", 3, \"click\", \"disabled\"], [\"type\", \"button\", 1, \"next\", 3, \"click\", \"disabled\"]],\n template: function BsDatepickerNavigationViewComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"button\", 0);\n i0.ɵɵlistener(\"click\", function BsDatepickerNavigationViewComponent_Template_button_click_0_listener() {\n return ctx.navTo(true);\n });\n i0.ɵɵelementStart(1, \"span\");\n i0.ɵɵtext(2, \"\\u2039\");\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(3, BsDatepickerNavigationViewComponent_ng_container_3_Template, 5, 2, \"ng-container\", 1);\n i0.ɵɵtext(4, \" \\u200B \");\n i0.ɵɵelementStart(5, \"button\", 2);\n i0.ɵɵlistener(\"click\", function BsDatepickerNavigationViewComponent_Template_button_click_5_listener() {\n return ctx.view(\"year\");\n });\n i0.ɵɵelementStart(6, \"span\");\n i0.ɵɵtext(7);\n i0.ɵɵelementEnd()();\n i0.ɵɵtext(8, \" \\u200B \");\n i0.ɵɵelementStart(9, \"button\", 3);\n i0.ɵɵlistener(\"click\", function BsDatepickerNavigationViewComponent_Template_button_click_9_listener() {\n return ctx.navTo(false);\n });\n i0.ɵɵelementStart(10, \"span\");\n i0.ɵɵtext(11, \"\\u203A\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"visibility\", ctx.calendar.hideLeftArrow ? \"hidden\" : \"visible\");\n i0.ɵɵproperty(\"disabled\", ctx.calendar.disableLeftArrow);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx.calendar && ctx.calendar.monthTitle);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"disabled\", ctx.isDisabled);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx.calendar.yearTitle);\n i0.ɵɵadvance(2);\n i0.ɵɵstyleProp(\"visibility\", ctx.calendar.hideRightArrow ? \"hidden\" : \"visible\");\n i0.ɵɵproperty(\"disabled\", ctx.calendar.disableRightArrow);\n }\n },\n dependencies: [NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return BsDatepickerNavigationViewComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsTimepickerViewComponent = /*#__PURE__*/(() => {\n class BsTimepickerViewComponent {\n constructor() {\n this.ampm = 'ok';\n this.hours = 0;\n this.minutes = 0;\n }\n static {\n this.ɵfac = function BsTimepickerViewComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsTimepickerViewComponent)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BsTimepickerViewComponent,\n selectors: [[\"bs-timepicker\"]],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 16,\n vars: 3,\n consts: [[1, \"bs-timepicker-container\"], [1, \"bs-timepicker-controls\"], [\"type\", \"button\", 1, \"bs-decrease\"], [\"type\", \"text\", \"placeholder\", \"00\", 3, \"value\"], [\"type\", \"button\", 1, \"bs-increase\"], [\"type\", \"button\", 1, \"switch-time-format\"], [\"src\", \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAKCAYAAABi8KSDAAABSElEQVQYV3XQPUvDUBQG4HNuagtVqc6KgouCv6GIuIntYBLB9hcIQpLStCAIV7DYmpTcRWcXqZio3Vwc/UCc/QEqfgyKGbr0I7nS1EiHeqYzPO/h5SD0jaxUZjmSLCB+OFb+UFINFwASAEAdpu9gaGXVyAHHFQBkHpKHc6a9dzECvADyY9sqlAMsK9W0jzxDXqeytr3mhQckxSji27TJJ5/rPmIpwJJq3HrtduriYOurv1a4i1p5HnhkG9OFymi0ReoO05cGwb+ayv4dysVygjeFmsP05f8wpZQ8fsdvfmuY9zjWSNqUtgYFVnOVReILYoBFzdQI5/GGFzNHhGbeZnopDGU29sZbscgldmC99w35VOATTycIMMcBXIfpSVGzZhA6C8hh00conln6VQ9TGgV32OEAKQC4DrBq7CJwd0ggR7Vq/rPrfgB+C3sGypY5DAAAAABJRU5ErkJggg==\", \"alt\", \"\"]],\n template: function BsTimepickerViewComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1)(2, \"button\", 2);\n i0.ɵɵtext(3, \"-\");\n i0.ɵɵelementEnd();\n i0.ɵɵelement(4, \"input\", 3);\n i0.ɵɵelementStart(5, \"button\", 4);\n i0.ɵɵtext(6, \"+\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(7, \"div\", 1)(8, \"button\", 2);\n i0.ɵɵtext(9, \"-\");\n i0.ɵɵelementEnd();\n i0.ɵɵelement(10, \"input\", 3);\n i0.ɵɵelementStart(11, \"button\", 4);\n i0.ɵɵtext(12, \"+\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(13, \"button\", 5);\n i0.ɵɵtext(14);\n i0.ɵɵelement(15, \"img\", 6);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"value\", ctx.hours);\n i0.ɵɵadvance(6);\n i0.ɵɵproperty(\"value\", ctx.minutes);\n i0.ɵɵadvance(4);\n i0.ɵɵtextInterpolate1(\"\", ctx.ampm, \" \");\n }\n },\n encapsulation: 2\n });\n }\n }\n return BsTimepickerViewComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsCurrentDateViewComponent = /*#__PURE__*/(() => {\n class BsCurrentDateViewComponent {\n static {\n this.ɵfac = function BsCurrentDateViewComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsCurrentDateViewComponent)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BsCurrentDateViewComponent,\n selectors: [[\"bs-current-date\"]],\n inputs: {\n title: \"title\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 1,\n consts: [[1, \"current-timedate\"]],\n template: function BsCurrentDateViewComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx.title);\n }\n },\n encapsulation: 2\n });\n }\n }\n return BsCurrentDateViewComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsCalendarLayoutComponent = /*#__PURE__*/(() => {\n class BsCalendarLayoutComponent {\n static {\n this.ɵfac = function BsCalendarLayoutComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsCalendarLayoutComponent)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BsCalendarLayoutComponent,\n selectors: [[\"bs-calendar-layout\"]],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c1,\n decls: 6,\n vars: 2,\n consts: [[\"title\", \"hey there\", 4, \"ngIf\"], [1, \"bs-datepicker-head\"], [1, \"bs-datepicker-body\"], [4, \"ngIf\"], [\"title\", \"hey there\"]],\n template: function BsCalendarLayoutComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c0);\n i0.ɵɵtemplate(0, BsCalendarLayoutComponent_bs_current_date_0_Template, 1, 0, \"bs-current-date\", 0);\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 2);\n i0.ɵɵprojection(4, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, BsCalendarLayoutComponent_bs_timepicker_5_Template, 1, 0, \"bs-timepicker\", 3);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", false);\n i0.ɵɵadvance(5);\n i0.ɵɵproperty(\"ngIf\", false);\n }\n },\n dependencies: [NgIf, BsCurrentDateViewComponent, BsTimepickerViewComponent],\n encapsulation: 2\n });\n }\n }\n return BsCalendarLayoutComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsYearsCalendarViewComponent = /*#__PURE__*/(() => {\n class BsYearsCalendarViewComponent {\n constructor() {\n this.onNavigate = new EventEmitter();\n this.onViewMode = new EventEmitter();\n this.onSelect = new EventEmitter();\n this.onHover = new EventEmitter();\n }\n navigateTo(event) {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({\n step: {\n year: step * yearsPerCalendar\n }\n });\n }\n viewYear(year) {\n this.onSelect.emit(year);\n }\n hoverYear(cell, isHovered) {\n this.onHover.emit({\n cell,\n isHovered\n });\n }\n changeViewMode(event) {\n this.onViewMode.emit(event);\n }\n static {\n this.ɵfac = function BsYearsCalendarViewComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsYearsCalendarViewComponent)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BsYearsCalendarViewComponent,\n selectors: [[\"bs-years-calendar-view\"]],\n inputs: {\n calendar: \"calendar\"\n },\n outputs: {\n onNavigate: \"onNavigate\",\n onViewMode: \"onViewMode\",\n onSelect: \"onSelect\",\n onHover: \"onHover\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 5,\n vars: 2,\n consts: [[3, \"onNavigate\", \"onViewMode\", \"calendar\"], [\"role\", \"grid\", 1, \"years\"], [4, \"ngFor\", \"ngForOf\"], [\"role\", \"gridcell\", 3, \"disabled\", \"is-highlighted\", \"click\", \"mouseenter\", \"mouseleave\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"gridcell\", 3, \"click\", \"mouseenter\", \"mouseleave\"]],\n template: function BsYearsCalendarViewComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"bs-calendar-layout\")(1, \"bs-datepicker-navigation-view\", 0);\n i0.ɵɵlistener(\"onNavigate\", function BsYearsCalendarViewComponent_Template_bs_datepicker_navigation_view_onNavigate_1_listener($event) {\n return ctx.navigateTo($event);\n })(\"onViewMode\", function BsYearsCalendarViewComponent_Template_bs_datepicker_navigation_view_onViewMode_1_listener($event) {\n return ctx.changeViewMode($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"table\", 1)(3, \"tbody\");\n i0.ɵɵtemplate(4, BsYearsCalendarViewComponent_tr_4_Template, 2, 1, \"tr\", 2);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"calendar\", ctx.calendar);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngForOf\", ctx.calendar == null ? null : ctx.calendar.years);\n }\n },\n dependencies: [BsCalendarLayoutComponent, BsDatepickerNavigationViewComponent, NgFor],\n encapsulation: 2\n });\n }\n }\n return BsYearsCalendarViewComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsMonthCalendarViewComponent = /*#__PURE__*/(() => {\n class BsMonthCalendarViewComponent {\n constructor() {\n this.onNavigate = new EventEmitter();\n this.onViewMode = new EventEmitter();\n this.onSelect = new EventEmitter();\n this.onHover = new EventEmitter();\n }\n navigateTo(event) {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({\n step: {\n year: step\n }\n });\n }\n viewMonth(month) {\n this.onSelect.emit(month);\n }\n hoverMonth(cell, isHovered) {\n this.onHover.emit({\n cell,\n isHovered\n });\n }\n changeViewMode(event) {\n this.onViewMode.emit(event);\n }\n static {\n this.ɵfac = function BsMonthCalendarViewComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsMonthCalendarViewComponent)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BsMonthCalendarViewComponent,\n selectors: [[\"bs-month-calendar-view\"]],\n inputs: {\n calendar: \"calendar\"\n },\n outputs: {\n onNavigate: \"onNavigate\",\n onViewMode: \"onViewMode\",\n onSelect: \"onSelect\",\n onHover: \"onHover\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 5,\n vars: 2,\n consts: [[3, \"onNavigate\", \"onViewMode\", \"calendar\"], [\"role\", \"grid\", 1, \"months\"], [4, \"ngFor\", \"ngForOf\"], [\"role\", \"gridcell\", 3, \"disabled\", \"is-highlighted\", \"click\", \"mouseenter\", \"mouseleave\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"gridcell\", 3, \"click\", \"mouseenter\", \"mouseleave\"]],\n template: function BsMonthCalendarViewComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"bs-calendar-layout\")(1, \"bs-datepicker-navigation-view\", 0);\n i0.ɵɵlistener(\"onNavigate\", function BsMonthCalendarViewComponent_Template_bs_datepicker_navigation_view_onNavigate_1_listener($event) {\n return ctx.navigateTo($event);\n })(\"onViewMode\", function BsMonthCalendarViewComponent_Template_bs_datepicker_navigation_view_onViewMode_1_listener($event) {\n return ctx.changeViewMode($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"table\", 1)(3, \"tbody\");\n i0.ɵɵtemplate(4, BsMonthCalendarViewComponent_tr_4_Template, 2, 1, \"tr\", 2);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"calendar\", ctx.calendar);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngForOf\", ctx.calendar == null ? null : ctx.calendar.months);\n }\n },\n dependencies: [BsCalendarLayoutComponent, BsDatepickerNavigationViewComponent, NgFor],\n encapsulation: 2\n });\n }\n }\n return BsMonthCalendarViewComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDatepickerDayDecoratorComponent = /*#__PURE__*/(() => {\n class BsDatepickerDayDecoratorComponent {\n constructor(_config, _elRef, _renderer) {\n this._config = _config;\n this._elRef = _elRef;\n this._renderer = _renderer;\n this.day = {\n date: new Date(),\n label: ''\n };\n }\n ngOnInit() {\n if (this.day?.isToday && this._config && this._config.customTodayClass) {\n this._renderer.addClass(this._elRef.nativeElement, this._config.customTodayClass);\n }\n if (typeof this.day?.customClasses === 'string') {\n this.day?.customClasses.split(' ').filter(className => className).forEach(className => {\n this._renderer.addClass(this._elRef.nativeElement, className);\n });\n }\n }\n static {\n this.ɵfac = function BsDatepickerDayDecoratorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDatepickerDayDecoratorComponent)(i0.ɵɵdirectiveInject(BsDatepickerConfig), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BsDatepickerDayDecoratorComponent,\n selectors: [[\"\", \"bsDatepickerDayDecorator\", \"\"]],\n hostVars: 16,\n hostBindings: function BsDatepickerDayDecoratorComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"disabled\", ctx.day.isDisabled)(\"is-highlighted\", ctx.day.isHovered)(\"is-other-month\", ctx.day.isOtherMonth)(\"is-active-other-month\", ctx.day.isOtherMonthHovered)(\"in-range\", ctx.day.isInRange)(\"select-start\", ctx.day.isSelectionStart)(\"select-end\", ctx.day.isSelectionEnd)(\"selected\", ctx.day.isSelected);\n }\n },\n inputs: {\n day: \"day\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c2,\n decls: 1,\n vars: 1,\n template: function BsDatepickerDayDecoratorComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n i0.ɵɵtextInterpolate(ctx.day && ctx.day.label || \"\");\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return BsDatepickerDayDecoratorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDaysCalendarViewComponent = /*#__PURE__*/(() => {\n class BsDaysCalendarViewComponent {\n constructor(_config) {\n this._config = _config;\n this.onNavigate = new EventEmitter();\n this.onViewMode = new EventEmitter();\n this.onSelect = new EventEmitter();\n this.onHover = new EventEmitter();\n this.onHoverWeek = new EventEmitter();\n this.isiOS = /iPad|iPhone|iPod/.test(navigator.platform) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n if (this._config.dateTooltipTexts && this._config.dateTooltipTexts.length > 0) {\n this.isShowTooltip = true;\n }\n }\n navigateTo(event) {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({\n step: {\n month: step\n }\n });\n }\n changeViewMode(event) {\n this.onViewMode.emit(event);\n }\n selectDay(event) {\n this.onSelect.emit(event);\n }\n selectWeek(week) {\n if (!this._config.selectWeek && !this._config.selectWeekDateRange) {\n return;\n }\n if (week.days.length === 0) {\n return;\n }\n if (this._config.selectWeek && week.days[0] && !week.days[0].isDisabled && this._config.selectFromOtherMonth) {\n this.onSelect.emit(week.days[0]);\n return;\n }\n const selectedDay = week.days.find(day => {\n return this._config.selectFromOtherMonth ? !day.isDisabled : !day.isOtherMonth && !day.isDisabled;\n });\n this.onSelect.emit(selectedDay);\n if (this._config.selectWeekDateRange) {\n const days = week.days.slice(0);\n const lastDayOfRange = days.reverse().find(day => {\n return this._config.selectFromOtherMonth ? !day.isDisabled : !day.isOtherMonth && !day.isDisabled;\n });\n this.onSelect.emit(lastDayOfRange);\n }\n }\n weekHoverHandler(cell, isHovered) {\n if (!this._config.selectWeek && !this._config.selectWeekDateRange) {\n return;\n }\n const hasActiveDays = cell.days.find(day => {\n return this._config.selectFromOtherMonth ? !day.isDisabled : !day.isOtherMonth && !day.isDisabled;\n });\n if (hasActiveDays) {\n cell.isHovered = isHovered;\n this.isWeekHovered = isHovered;\n this.onHoverWeek.emit(cell);\n }\n }\n hoverDay(cell, isHovered) {\n if (this._config.selectFromOtherMonth && cell.isOtherMonth) {\n cell.isOtherMonthHovered = isHovered;\n }\n if (this._config.dateTooltipTexts) {\n cell.tooltipText = '';\n this._config.dateTooltipTexts.forEach(dateData => {\n if (isSameDay(dateData.date, cell.date)) {\n cell.tooltipText = dateData.tooltipText;\n return;\n }\n });\n }\n this.onHover.emit({\n cell,\n isHovered\n });\n }\n static {\n this.ɵfac = function BsDaysCalendarViewComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDaysCalendarViewComponent)(i0.ɵɵdirectiveInject(BsDatepickerConfig));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BsDaysCalendarViewComponent,\n selectors: [[\"bs-days-calendar-view\"]],\n inputs: {\n calendar: \"calendar\",\n options: \"options\",\n isDisabled: \"isDisabled\"\n },\n outputs: {\n onNavigate: \"onNavigate\",\n onViewMode: \"onViewMode\",\n onSelect: \"onSelect\",\n onHover: \"onHover\",\n onHoverWeek: \"onHoverWeek\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 9,\n vars: 5,\n consts: [[3, \"onNavigate\", \"onViewMode\", \"calendar\", \"isDisabled\"], [\"role\", \"grid\", 1, \"days\", \"weeks\"], [4, \"ngIf\"], [\"aria-label\", \"weekday\", 4, \"ngFor\", \"ngForOf\"], [4, \"ngFor\", \"ngForOf\"], [\"aria-label\", \"weekday\"], [\"class\", \"week\", 3, \"active-week\", 4, \"ngIf\"], [\"role\", \"gridcell\", 4, \"ngFor\", \"ngForOf\"], [1, \"week\"], [3, \"click\", 4, \"ngIf\"], [3, \"click\", \"mouseenter\", \"mouseleave\", 4, \"ngIf\"], [3, \"click\"], [3, \"click\", \"mouseenter\", \"mouseleave\"], [\"role\", \"gridcell\"], [\"bsDatepickerDayDecorator\", \"\", 3, \"day\", \"tooltip\", \"click\", \"mouseenter\", \"mouseleave\", 4, \"ngIf\"], [\"bsDatepickerDayDecorator\", \"\", 3, \"day\", \"click\", \"mouseenter\", \"mouseleave\", 4, \"ngIf\"], [\"bsDatepickerDayDecorator\", \"\", 3, \"day\", \"click\", 4, \"ngIf\"], [\"bsDatepickerDayDecorator\", \"\", 3, \"click\", \"mouseenter\", \"mouseleave\", \"day\", \"tooltip\"], [\"bsDatepickerDayDecorator\", \"\", 3, \"click\", \"mouseenter\", \"mouseleave\", \"day\"], [\"bsDatepickerDayDecorator\", \"\", 3, \"click\", \"day\"]],\n template: function BsDaysCalendarViewComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"bs-calendar-layout\")(1, \"bs-datepicker-navigation-view\", 0);\n i0.ɵɵlistener(\"onNavigate\", function BsDaysCalendarViewComponent_Template_bs_datepicker_navigation_view_onNavigate_1_listener($event) {\n return ctx.navigateTo($event);\n })(\"onViewMode\", function BsDaysCalendarViewComponent_Template_bs_datepicker_navigation_view_onViewMode_1_listener($event) {\n return ctx.changeViewMode($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"table\", 1)(3, \"thead\")(4, \"tr\");\n i0.ɵɵtemplate(5, BsDaysCalendarViewComponent_th_5_Template, 1, 0, \"th\", 2)(6, BsDaysCalendarViewComponent_th_6_Template, 2, 1, \"th\", 3);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(7, \"tbody\");\n i0.ɵɵtemplate(8, BsDaysCalendarViewComponent_tr_8_Template, 3, 2, \"tr\", 4);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"calendar\", ctx.calendar)(\"isDisabled\", !!ctx.isDisabled);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngIf\", ctx.options && ctx.options.showWeekNumbers);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.calendar.weekdays);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx.calendar.weeks);\n }\n },\n dependencies: [BsCalendarLayoutComponent, BsDatepickerNavigationViewComponent, NgIf, NgFor, BsDatepickerDayDecoratorComponent, TooltipModule, i2.TooltipDirective],\n encapsulation: 2\n });\n }\n }\n return BsDaysCalendarViewComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDatepickerContainerComponent = /*#__PURE__*/(() => {\n class BsDatepickerContainerComponent extends BsDatepickerAbstractComponent {\n set value(value) {\n this._effects?.setValue(value);\n }\n get isDatePickerDisabled() {\n return !!this._config.isDisabled;\n }\n get isDatepickerDisabled() {\n return this.isDatePickerDisabled ? '' : null;\n }\n get isDatepickerReadonly() {\n return this.isDatePickerDisabled ? '' : null;\n }\n constructor(_renderer, _config, _store, _element, _actions, _effects, _positionService) {\n super();\n this._config = _config;\n this._store = _store;\n this._element = _element;\n this._actions = _actions;\n this._positionService = _positionService;\n this.valueChange = new EventEmitter();\n this.animationState = 'void';\n this.isRangePicker = false;\n this._subs = [];\n this._effects = _effects;\n _renderer.setStyle(_element.nativeElement, 'display', 'block');\n _renderer.setStyle(_element.nativeElement, 'position', 'absolute');\n }\n ngOnInit() {\n this._positionService.setOptions({\n modifiers: {\n flip: {\n enabled: this._config.adaptivePosition\n },\n preventOverflow: {\n enabled: this._config.adaptivePosition\n }\n },\n allowedPositions: this._config.allowedPositions\n });\n this._positionService.event$?.pipe(take(1)).subscribe(() => {\n this._positionService.disable();\n if (this._config.isAnimated) {\n this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n return;\n }\n this.animationState = 'unanimated';\n });\n this.isOtherMonthsActive = this._config.selectFromOtherMonth;\n this.containerClass = this._config.containerClass;\n this.showTodayBtn = this._config.showTodayButton;\n this.todayBtnLbl = this._config.todayButtonLabel;\n this.todayPos = this._config.todayPosition;\n this.showClearBtn = this._config.showClearButton;\n this.clearBtnLbl = this._config.clearButtonLabel;\n this.clearPos = this._config.clearPosition;\n this.customRangeBtnLbl = this._config.customRangeButtonLabel;\n this.withTimepicker = this._config.withTimepicker;\n this._effects?.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).registerDatepickerSideEffects();\n let currentDate;\n // todo: move it somewhere else\n // on selected date change\n this._subs.push(this._store.select(state => state.selectedDate).subscribe(date => {\n currentDate = date;\n this.valueChange.emit(date);\n }));\n this._subs.push(this._store.select(state => state.selectedTime).subscribe(time => {\n if (!time || !time[0] || !(time[0] instanceof Date) || time[0] === currentDate) {\n return;\n }\n this.valueChange.emit(time[0]);\n }));\n this._store.dispatch(this._actions.changeViewMode(this._config.startView));\n }\n ngAfterViewInit() {\n this.selectedTimeSub.add(this.selectedTime?.subscribe(val => {\n if (Array.isArray(val) && val.length >= 1) {\n this.startTimepicker?.writeValue(val[0]);\n }\n }));\n this.startTimepicker?.registerOnChange(val => {\n this.timeSelectHandler(val, 0);\n });\n }\n get isTopPosition() {\n return this._element.nativeElement.classList.contains('top');\n }\n positionServiceEnable() {\n this._positionService.enable();\n }\n timeSelectHandler(date, index) {\n this._store.dispatch(this._actions.selectTime(date, index));\n }\n daySelectHandler(day) {\n if (!day) {\n return;\n }\n const isDisabled = this.isOtherMonthsActive ? day.isDisabled : day.isOtherMonth || day.isDisabled;\n if (isDisabled) {\n return;\n }\n this._store.dispatch(this._actions.select(day.date));\n }\n monthSelectHandler(day) {\n if (!day || day.isDisabled) {\n return;\n }\n this._store.dispatch(this._actions.navigateTo({\n unit: {\n month: getMonth(day.date),\n year: getFullYear(day.date)\n },\n viewMode: 'day'\n }));\n }\n yearSelectHandler(day) {\n if (!day || day.isDisabled) {\n return;\n }\n this._store.dispatch(this._actions.navigateTo({\n unit: {\n year: getFullYear(day.date)\n },\n viewMode: 'month'\n }));\n }\n setToday() {\n this._store.dispatch(this._actions.select(new Date()));\n }\n clearDate() {\n this._store.dispatch(this._actions.select(undefined));\n }\n ngOnDestroy() {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n this.selectedTimeSub.unsubscribe();\n this._effects?.destroy();\n }\n static {\n this.ɵfac = function BsDatepickerContainerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDatepickerContainerComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(BsDatepickerConfig), i0.ɵɵdirectiveInject(BsDatepickerStore), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(BsDatepickerActions), i0.ɵɵdirectiveInject(BsDatepickerEffects), i0.ɵɵdirectiveInject(i5.PositioningService));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BsDatepickerContainerComponent,\n selectors: [[\"bs-datepicker-container\"]],\n viewQuery: function BsDatepickerContainerComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c3, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.startTimepicker = _t.first);\n }\n },\n hostAttrs: [\"role\", \"dialog\", \"aria-label\", \"calendar\", 1, \"bottom\"],\n hostVars: 2,\n hostBindings: function BsDatepickerContainerComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function BsDatepickerContainerComponent_click_HostBindingHandler($event) {\n return ctx._stopPropagation($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx.isDatepickerDisabled)(\"readonly\", ctx.isDatepickerReadonly);\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([BsDatepickerStore, BsDatepickerEffects, BsDatepickerActions, PositioningService]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 3,\n consts: [[\"startTP\", \"\"], [\"endTP\", \"\"], [\"class\", \"bs-datepicker\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"bs-datepicker\", 3, \"ngClass\"], [1, \"bs-datepicker-container\"], [\"role\", \"application\", 1, \"bs-calendar-container\", 3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [\"class\", \"bs-media-container\", 4, \"ngSwitchCase\"], [\"class\", \"bs-datepicker-buttons\", 4, \"ngIf\"], [\"class\", \"bs-datepicker-custom-range\", 4, \"ngIf\"], [1, \"bs-media-container\"], [3, \"bs-datepicker-multiple\", \"calendar\", \"isDisabled\", \"options\", \"onNavigate\", \"onViewMode\", \"onHover\", \"onHoverWeek\", \"onSelect\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"bs-timepicker-in-datepicker-container\", 4, \"ngIf\"], [3, \"onNavigate\", \"onViewMode\", \"onHover\", \"onHoverWeek\", \"onSelect\", \"calendar\", \"isDisabled\", \"options\"], [1, \"bs-timepicker-in-datepicker-container\"], [3, \"disabled\"], [3, \"disabled\", 4, \"ngIf\"], [3, \"bs-datepicker-multiple\", \"calendar\", \"onNavigate\", \"onViewMode\", \"onHover\", \"onSelect\", 4, \"ngFor\", \"ngForOf\"], [3, \"onNavigate\", \"onViewMode\", \"onHover\", \"onSelect\", \"calendar\"], [1, \"bs-datepicker-buttons\"], [\"type\", \"button\", 1, \"btn\", \"btn-success\"], [\"type\", \"button\", 1, \"btn\", \"btn-default\"], [\"class\", \"btn-today-wrapper\", 3, \"today-left\", \"today-right\", \"today-center\", 4, \"ngIf\"], [\"class\", \"btn-clear-wrapper\", 3, \"clear-left\", \"clear-right\", \"clear-center\", 4, \"ngIf\"], [1, \"btn-today-wrapper\"], [1, \"btn\", \"btn-success\", 3, \"click\"], [1, \"btn-clear-wrapper\"], [1, \"bs-datepicker-custom-range\"], [3, \"onSelect\", \"selectedRange\", \"ranges\", \"customRangeLabel\"]],\n template: function BsDatepickerContainerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, BsDatepickerContainerComponent_div_0_Template, 10, 11, \"div\", 2);\n i0.ɵɵpipe(1, \"async\");\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", i0.ɵɵpipeBind1(1, 1, ctx.viewMode));\n }\n },\n dependencies: [NgIf, NgClass, NgSwitch, NgSwitchCase, NgFor, BsDaysCalendarViewComponent, TimepickerModule, i6.TimepickerComponent, BsMonthCalendarViewComponent, BsYearsCalendarViewComponent, BsCustomDatesViewComponent, AsyncPipe],\n encapsulation: 2,\n data: {\n animation: [datepickerAnimation]\n }\n });\n }\n }\n return BsDatepickerContainerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet previousDate$1;\nlet BsDatepickerDirective = /*#__PURE__*/(() => {\n class BsDatepickerDirective {\n get readonlyValue() {\n return this.isDisabled ? '' : null;\n }\n constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {\n this._config = _config;\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n /**\n * Placement of a datepicker. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n this.placement = 'bottom';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n this.triggers = 'click';\n /**\n * Close datepicker on outside click\n */\n this.outsideClick = true;\n /**\n * A selector specifying the element the datepicker should be appended to.\n */\n this.container = 'body';\n this.outsideEsc = true;\n this.isDestroy$ = new Subject();\n /**\n * Indicates whether datepicker's content is enabled or not\n */\n this.isDisabled = false;\n /**\n * Emits when datepicker value has been changed\n */\n this.bsValueChange = new EventEmitter();\n this._subs = [];\n this._dateInputFormat$ = new Subject();\n // todo: assign only subset of fields\n Object.assign(this, this._config);\n this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);\n this.onShown = this._datepicker.onShown;\n this.onHidden = this._datepicker.onHidden;\n this.isOpen$ = new BehaviorSubject(this.isOpen);\n }\n /**\n * Returns whether or not the datepicker is currently being shown\n */\n get isOpen() {\n return this._datepicker.isShown;\n }\n set isOpen(value) {\n this.isOpen$.next(value);\n }\n /**\n * Initial value of datepicker\n */\n set bsValue(value) {\n if (this._bsValue && value && this._bsValue.getTime() === value.getTime()) {\n return;\n }\n if (!this._bsValue && value && !this._config.withTimepicker) {\n const now = new Date();\n copyTime(value, now);\n }\n if (value && this.bsConfig?.initCurrentTime) {\n value = setCurrentTimeOnDateSelect(value);\n }\n this.initPreviousValue();\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n get dateInputFormat$() {\n return this._dateInputFormat$;\n }\n ngOnInit() {\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 this.initPreviousValue();\n }\n initPreviousValue() {\n previousDate$1 = this._bsValue;\n }\n ngOnChanges(changes) {\n if (changes[\"bsConfig\"]) {\n if (changes[\"bsConfig\"].currentValue?.initCurrentTime && changes[\"bsConfig\"].currentValue?.initCurrentTime !== changes[\"bsConfig\"].previousValue?.initCurrentTime && this._bsValue) {\n this.initPreviousValue();\n this._bsValue = setCurrentTimeOnDateSelect(this._bsValue);\n this.bsValueChange.emit(this._bsValue);\n }\n this.setConfig();\n this._dateInputFormat$.next(this.bsConfig && this.bsConfig.dateInputFormat);\n }\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n if (changes[\"minDate\"]) {\n this._datepickerRef.instance.minDate = this.minDate;\n }\n if (changes[\"maxDate\"]) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n }\n if (changes[\"daysDisabled\"]) {\n this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n }\n if (changes[\"datesDisabled\"]) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n }\n if (changes[\"datesEnabled\"]) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n }\n if (changes[\"isDisabled\"]) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n }\n if (changes[\"dateCustomClasses\"]) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n }\n if (changes[\"dateTooltipTexts\"]) {\n this._datepickerRef.instance.dateTooltipTexts = this.dateTooltipTexts;\n }\n }\n initSubscribes() {\n // if date changes from external source (model -> view)\n this._subs.push(this.bsValueChange.subscribe(value => {\n if (this._datepickerRef) {\n this._datepickerRef.instance.value = value;\n }\n }));\n // if date changes from picker (view -> model)\n if (this._datepickerRef) {\n this._subs.push(this._datepickerRef.instance.valueChange.subscribe(value => {\n this.initPreviousValue();\n this.bsValue = value;\n if (this.keepDatepickerModalOpened()) {\n return;\n }\n this.hide();\n }));\n }\n }\n keepDatepickerModalOpened() {\n if (!previousDate$1 || !this.bsConfig?.keepDatepickerOpened || !this._config.withTimepicker) {\n return false;\n }\n return this.isDateSame();\n }\n isDateSame() {\n return previousDate$1 instanceof Date && this._bsValue?.getDate() === previousDate$1?.getDate() && this._bsValue?.getMonth() === previousDate$1?.getMonth() && this._bsValue?.getFullYear() === previousDate$1?.getFullYear();\n }\n ngAfterViewInit() {\n this.isOpen$.pipe(filter(isOpen => isOpen !== this.isOpen), takeUntil(this.isDestroy$)).subscribe(() => this.toggle());\n }\n /**\n * Opens an element’s datepicker. This is considered a “manual” triggering of\n * the datepicker.\n */\n show() {\n if (this._datepicker.isShown) {\n return;\n }\n this.setConfig();\n this._datepickerRef = this._datepicker.provide({\n provide: BsDatepickerConfig,\n useValue: this._config\n }).attach(BsDatepickerContainerComponent).to(this.container).position({\n attachment: this.placement\n }).show({\n placement: this.placement\n });\n this.initSubscribes();\n }\n /**\n * Closes an element’s datepicker. This is considered a “manual” triggering of\n * the datepicker.\n */\n hide() {\n if (this.isOpen) {\n this._datepicker.hide();\n }\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n if (this._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elementRef.nativeElement).focus();\n }\n }\n /**\n * Toggles an element’s datepicker. This is considered a “manual” triggering\n * of the datepicker.\n */\n toggle() {\n if (this.isOpen) {\n return this.hide();\n }\n this.show();\n }\n /**\n * Set config for datepicker\n */\n setConfig() {\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: this._config.keepDatesOutOfRules ? this._bsValue : checkBsValue(this._bsValue, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\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 dateTooltipTexts: this.dateTooltipTexts || this.bsConfig && this.bsConfig.dateTooltipTexts,\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 initCurrentTime: this.bsConfig?.initCurrentTime,\n keepDatepickerOpened: this.bsConfig?.keepDatepickerOpened,\n keepDatesOutOfRules: this.bsConfig?.keepDatesOutOfRules\n });\n }\n unsubscribeSubscriptions() {\n if (this._subs?.length) {\n this._subs.map(sub => sub.unsubscribe());\n this._subs.length = 0;\n }\n }\n ngOnDestroy() {\n this._datepicker.dispose();\n this.isOpen$.next(false);\n if (this.isDestroy$) {\n this.isDestroy$.next(null);\n this.isDestroy$.complete();\n }\n this.unsubscribeSubscriptions();\n }\n static {\n this.ɵfac = function BsDatepickerDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDatepickerDirective)(i0.ɵɵdirectiveInject(BsDatepickerConfig), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2$1.ComponentLoaderFactory));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BsDatepickerDirective,\n selectors: [[\"\", \"bsDatepicker\", \"\"]],\n hostVars: 1,\n hostBindings: function BsDatepickerDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"readonly\", ctx.readonlyValue);\n }\n },\n inputs: {\n placement: \"placement\",\n triggers: \"triggers\",\n outsideClick: \"outsideClick\",\n container: \"container\",\n outsideEsc: \"outsideEsc\",\n isDisabled: \"isDisabled\",\n minDate: \"minDate\",\n maxDate: \"maxDate\",\n minMode: \"minMode\",\n daysDisabled: \"daysDisabled\",\n datesDisabled: \"datesDisabled\",\n datesEnabled: \"datesEnabled\",\n dateCustomClasses: \"dateCustomClasses\",\n dateTooltipTexts: \"dateTooltipTexts\",\n isOpen: \"isOpen\",\n bsValue: \"bsValue\",\n bsConfig: \"bsConfig\"\n },\n outputs: {\n onShown: \"onShown\",\n onHidden: \"onHidden\",\n bsValueChange: \"bsValueChange\"\n },\n exportAs: [\"bsDatepicker\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([ComponentLoaderFactory]), i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return BsDatepickerDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDatepickerInlineConfig = /*#__PURE__*/(() => {\n class BsDatepickerInlineConfig extends BsDatepickerConfig {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵBsDatepickerInlineConfig_BaseFactory;\n return function BsDatepickerInlineConfig_Factory(__ngFactoryType__) {\n return (ɵBsDatepickerInlineConfig_BaseFactory || (ɵBsDatepickerInlineConfig_BaseFactory = i0.ɵɵgetInheritedFactory(BsDatepickerInlineConfig)))(__ngFactoryType__ || BsDatepickerInlineConfig);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BsDatepickerInlineConfig,\n factory: BsDatepickerInlineConfig.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return BsDatepickerInlineConfig;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDatepickerInlineContainerComponent = /*#__PURE__*/(() => {\n class BsDatepickerInlineContainerComponent extends BsDatepickerContainerComponent {\n get disabledValue() {\n return this.isDatePickerDisabled ? '' : null;\n }\n get readonlyValue() {\n return this.isDatePickerDisabled ? '' : null;\n }\n constructor(_renderer, _config, _store, _element, _actions, _effects, _positioningService) {\n super(_renderer, _config, _store, _element, _actions, _effects, _positioningService);\n _renderer.setStyle(_element.nativeElement, 'display', 'inline-block');\n _renderer.setStyle(_element.nativeElement, 'position', 'static');\n }\n static {\n this.ɵfac = function BsDatepickerInlineContainerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDatepickerInlineContainerComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(BsDatepickerConfig), i0.ɵɵdirectiveInject(BsDatepickerStore), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(BsDatepickerActions), i0.ɵɵdirectiveInject(BsDatepickerEffects), i0.ɵɵdirectiveInject(i5.PositioningService));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BsDatepickerInlineContainerComponent,\n selectors: [[\"bs-datepicker-inline-container\"]],\n hostVars: 2,\n hostBindings: function BsDatepickerInlineContainerComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function BsDatepickerInlineContainerComponent_click_HostBindingHandler($event) {\n return ctx._stopPropagation($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx.disabledValue)(\"readonly\", ctx.readonlyValue);\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([BsDatepickerStore, BsDatepickerEffects, PositioningService]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 3,\n consts: [[\"startTP\", \"\"], [\"endTP\", \"\"], [\"class\", \"bs-datepicker\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"bs-datepicker\", 3, \"ngClass\"], [1, \"bs-datepicker-container\"], [\"role\", \"application\", 1, \"bs-calendar-container\", 3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [\"class\", \"bs-media-container\", 4, \"ngSwitchCase\"], [\"class\", \"bs-datepicker-buttons\", 4, \"ngIf\"], [\"class\", \"bs-datepicker-custom-range\", 4, \"ngIf\"], [1, \"bs-media-container\"], [3, \"bs-datepicker-multiple\", \"calendar\", \"isDisabled\", \"options\", \"onNavigate\", \"onViewMode\", \"onHover\", \"onHoverWeek\", \"onSelect\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"bs-timepicker-in-datepicker-container\", 4, \"ngIf\"], [3, \"onNavigate\", \"onViewMode\", \"onHover\", \"onHoverWeek\", \"onSelect\", \"calendar\", \"isDisabled\", \"options\"], [1, \"bs-timepicker-in-datepicker-container\"], [3, \"disabled\"], [3, \"disabled\", 4, \"ngIf\"], [3, \"bs-datepicker-multiple\", \"calendar\", \"onNavigate\", \"onViewMode\", \"onHover\", \"onSelect\", 4, \"ngFor\", \"ngForOf\"], [3, \"onNavigate\", \"onViewMode\", \"onHover\", \"onSelect\", \"calendar\"], [1, \"bs-datepicker-buttons\"], [\"type\", \"button\", 1, \"btn\", \"btn-success\"], [\"type\", \"button\", 1, \"btn\", \"btn-default\"], [\"class\", \"btn-today-wrapper\", 3, \"today-left\", \"today-right\", \"today-center\", 4, \"ngIf\"], [\"class\", \"btn-clear-wrapper\", 3, \"clear-left\", \"clear-right\", \"clear-center\", 4, \"ngIf\"], [1, \"btn-today-wrapper\"], [1, \"btn\", \"btn-success\", 3, \"click\"], [1, \"btn-clear-wrapper\"], [1, \"bs-datepicker-custom-range\"], [3, \"onSelect\", \"selectedRange\", \"ranges\", \"customRangeLabel\"]],\n template: function BsDatepickerInlineContainerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, BsDatepickerInlineContainerComponent_div_0_Template, 10, 11, \"div\", 2);\n i0.ɵɵpipe(1, \"async\");\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", i0.ɵɵpipeBind1(1, 1, ctx.viewMode));\n }\n },\n dependencies: [NgIf, NgClass, NgSwitch, NgSwitchCase, NgFor, BsDaysCalendarViewComponent, TimepickerModule, i6.TimepickerComponent, BsMonthCalendarViewComponent, BsYearsCalendarViewComponent, BsCustomDatesViewComponent, AsyncPipe],\n encapsulation: 2,\n data: {\n animation: [datepickerAnimation]\n }\n });\n }\n }\n return BsDatepickerInlineContainerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDatepickerInlineDirective = /*#__PURE__*/(() => {\n class BsDatepickerInlineDirective {\n constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {\n this._config = _config;\n this._elementRef = _elementRef;\n /**\n * Indicates whether datepicker is enabled or not\n */\n this.isDisabled = false;\n /**\n * Emits when datepicker value has been changed\n */\n this.bsValueChange = new EventEmitter();\n this._subs = [];\n // todo: assign only subset of fields\n Object.assign(this, this._config);\n this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);\n }\n /**\n * Initial value of datepicker\n */\n set bsValue(value) {\n if (this._bsValue === value) {\n return;\n }\n if (!this._bsValue && value && !this._config.withTimepicker) {\n const now = new Date();\n copyTime(value, now);\n }\n if (value && this.bsConfig?.initCurrentTime) {\n value = setCurrentTimeOnDateSelect(value);\n }\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n ngOnInit() {\n this.setConfig();\n this.initSubscribes();\n }\n initSubscribes() {\n this.unsubscribeSubscriptions();\n this._subs.push(this.bsValueChange.subscribe(value => {\n if (this._datepickerRef) {\n this._datepickerRef.instance.value = value;\n }\n }));\n if (this._datepickerRef) {\n this._subs.push(this._datepickerRef.instance.valueChange.subscribe(value => {\n this.bsValue = value;\n }));\n }\n }\n unsubscribeSubscriptions() {\n if (this._subs?.length) {\n this._subs.map(sub => sub.unsubscribe());\n this._subs.length = 0;\n }\n }\n ngOnChanges(changes) {\n if (changes[\"bsConfig\"]) {\n if (changes[\"bsConfig\"].currentValue?.initCurrentTime && changes[\"bsConfig\"].currentValue?.initCurrentTime !== changes[\"bsConfig\"].previousValue?.initCurrentTime && this._bsValue) {\n this._bsValue = setCurrentTimeOnDateSelect(this._bsValue);\n this.bsValueChange.emit(this._bsValue);\n }\n }\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n if (changes[\"minDate\"]) {\n this._datepickerRef.instance.minDate = this.minDate;\n }\n if (changes[\"maxDate\"]) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n }\n if (changes[\"datesDisabled\"]) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n }\n if (changes[\"datesEnabled\"]) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n this._datepickerRef.instance.value = this._bsValue;\n }\n if (changes[\"isDisabled\"]) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n }\n if (changes[\"dateCustomClasses\"]) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n }\n if (changes[\"dateTooltipTexts\"]) {\n this._datepickerRef.instance.dateTooltipTexts = this.dateTooltipTexts;\n }\n this.setConfig();\n }\n /**\n * Set config for datepicker\n */\n setConfig() {\n if (this._datepicker) {\n this._datepicker.hide();\n }\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: checkBsValue(this._bsValue, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\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 dateTooltipTexts: this.dateTooltipTexts || this.bsConfig && this.bsConfig.dateTooltipTexts,\n datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n initCurrentTime: this.bsConfig?.initCurrentTime\n });\n this._datepickerRef = this._datepicker.provide({\n provide: BsDatepickerConfig,\n useValue: this._config\n }).attach(BsDatepickerInlineContainerComponent).to(this._elementRef).show();\n this.initSubscribes();\n }\n ngOnDestroy() {\n this._datepicker.dispose();\n this.unsubscribeSubscriptions();\n }\n static {\n this.ɵfac = function BsDatepickerInlineDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDatepickerInlineDirective)(i0.ɵɵdirectiveInject(BsDatepickerInlineConfig), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2$1.ComponentLoaderFactory));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BsDatepickerInlineDirective,\n selectors: [[\"bs-datepicker-inline\"]],\n inputs: {\n bsConfig: \"bsConfig\",\n isDisabled: \"isDisabled\",\n minDate: \"minDate\",\n maxDate: \"maxDate\",\n dateCustomClasses: \"dateCustomClasses\",\n dateTooltipTexts: \"dateTooltipTexts\",\n datesEnabled: \"datesEnabled\",\n datesDisabled: \"datesDisabled\",\n bsValue: \"bsValue\"\n },\n outputs: {\n bsValueChange: \"bsValueChange\"\n },\n exportAs: [\"bsDatepickerInline\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([ComponentLoaderFactory]), i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return BsDatepickerInlineDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDaterangepickerInlineConfig = /*#__PURE__*/(() => {\n class BsDaterangepickerInlineConfig extends BsDatepickerConfig {\n constructor() {\n super(...arguments);\n // DatepickerRenderOptions\n this.displayMonths = 2;\n /** turn on/off animation */\n this.isAnimated = false;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵBsDaterangepickerInlineConfig_BaseFactory;\n return function BsDaterangepickerInlineConfig_Factory(__ngFactoryType__) {\n return (ɵBsDaterangepickerInlineConfig_BaseFactory || (ɵBsDaterangepickerInlineConfig_BaseFactory = i0.ɵɵgetInheritedFactory(BsDaterangepickerInlineConfig)))(__ngFactoryType__ || BsDaterangepickerInlineConfig);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BsDaterangepickerInlineConfig,\n factory: BsDaterangepickerInlineConfig.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return BsDaterangepickerInlineConfig;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDaterangepickerContainerComponent = /*#__PURE__*/(() => {\n class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent {\n set value(value) {\n this._effects?.setRangeValue(value);\n }\n get isDatePickerDisabled() {\n return !!this._config.isDisabled;\n }\n get isDatepickerDisabled() {\n return this.isDatePickerDisabled ? '' : null;\n }\n get isDatepickerReadonly() {\n return this.isDatePickerDisabled ? '' : null;\n }\n constructor(_renderer, _config, _store, _element, _actions, _effects, _positionService) {\n super();\n this._config = _config;\n this._store = _store;\n this._element = _element;\n this._actions = _actions;\n this._positionService = _positionService;\n this.valueChange = new EventEmitter();\n this.animationState = 'void';\n this._rangeStack = [];\n this.chosenRange = [];\n this._subs = [];\n this.isRangePicker = true;\n this._effects = _effects;\n this.customRanges = this._config.ranges || [];\n this.customRangeBtnLbl = this._config.customRangeButtonLabel;\n _renderer.setStyle(_element.nativeElement, 'display', 'block');\n _renderer.setStyle(_element.nativeElement, 'position', 'absolute');\n }\n ngOnInit() {\n this._positionService.setOptions({\n modifiers: {\n flip: {\n enabled: this._config.adaptivePosition\n },\n preventOverflow: {\n enabled: this._config.adaptivePosition\n }\n },\n allowedPositions: this._config.allowedPositions\n });\n this._positionService.event$?.pipe(take(1)).subscribe(() => {\n this._positionService.disable();\n if (this._config.isAnimated) {\n this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n return;\n }\n this.animationState = 'unanimated';\n });\n this.containerClass = this._config.containerClass;\n this.isOtherMonthsActive = this._config.selectFromOtherMonth;\n this.withTimepicker = this._config.withTimepicker;\n this._effects?.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).registerDatepickerSideEffects();\n let currentDate;\n // todo: move it somewhere else\n // on selected date change\n this._subs.push(this._store.select(state => state.selectedRange).subscribe(dateRange => {\n currentDate = dateRange;\n this.valueChange.emit(dateRange);\n this.chosenRange = dateRange || [];\n }));\n this._subs.push(this._store.select(state => state.selectedTime).subscribe(time => {\n if (!time || !time[0] || !time[1] || !(time[0] instanceof Date) || !(time[1] instanceof Date) || currentDate && time[0] === currentDate[0] && time[1] === currentDate[1]) {\n return;\n }\n this.valueChange.emit(time);\n this.chosenRange = time || [];\n }));\n }\n ngAfterViewInit() {\n this.selectedTimeSub.add(this.selectedTime?.subscribe(val => {\n if (Array.isArray(val) && val.length >= 2) {\n this.startTimepicker?.writeValue(val[0]);\n this.endTimepicker?.writeValue(val[1]);\n }\n }));\n this.startTimepicker?.registerOnChange(val => {\n this.timeSelectHandler(val, 0);\n });\n this.endTimepicker?.registerOnChange(val => {\n this.timeSelectHandler(val, 1);\n });\n }\n get isTopPosition() {\n return this._element.nativeElement.classList.contains('top');\n }\n positionServiceEnable() {\n this._positionService.enable();\n }\n timeSelectHandler(date, index) {\n this._store.dispatch(this._actions.selectTime(date, index));\n }\n daySelectHandler(day) {\n if (!day) {\n return;\n }\n const isDisabled = this.isOtherMonthsActive ? day.isDisabled : day.isOtherMonth || day.isDisabled;\n if (isDisabled) {\n return;\n }\n this.rangesProcessing(day);\n }\n monthSelectHandler(day) {\n if (!day || day.isDisabled) {\n return;\n }\n day.isSelected = true;\n if (this._config.minMode !== 'month') {\n if (day.isDisabled) {\n return;\n }\n this._store.dispatch(this._actions.navigateTo({\n unit: {\n month: getMonth(day.date),\n year: getFullYear(day.date)\n },\n viewMode: 'day'\n }));\n return;\n }\n this.rangesProcessing(day);\n }\n yearSelectHandler(day) {\n if (!day || day.isDisabled) {\n return;\n }\n day.isSelected = true;\n if (this._config.minMode !== 'year') {\n if (day.isDisabled) {\n return;\n }\n this._store.dispatch(this._actions.navigateTo({\n unit: {\n year: getFullYear(day.date)\n },\n viewMode: 'month'\n }));\n return;\n }\n this.rangesProcessing(day);\n }\n rangesProcessing(day) {\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 = day.date >= this._rangeStack[0] ? [this._rangeStack[0], day.date] : [day.date];\n }\n if (this._config.maxDateRange) {\n this.setMaxDateRangeOnCalendar(day.date);\n }\n if (this._rangeStack.length === 0) {\n this._rangeStack = [day.date];\n if (this._config.maxDateRange) {\n this.setMaxDateRangeOnCalendar(day.date);\n }\n }\n this._store.dispatch(this._actions.selectRange(this._rangeStack));\n if (this._rangeStack.length === 2) {\n this._rangeStack = [];\n }\n }\n ngOnDestroy() {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n this.selectedTimeSub.unsubscribe();\n this._effects?.destroy();\n }\n setRangeOnCalendar(dates) {\n if (dates) {\n this._rangeStack = dates.value instanceof Date ? [dates.value] : dates.value;\n }\n this._store.dispatch(this._actions.selectRange(this._rangeStack));\n }\n setMaxDateRangeOnCalendar(currentSelection) {\n let maxDateRange = new Date(currentSelection);\n if (this._config.maxDate) {\n const maxDateValueInMilliseconds = this._config.maxDate.getTime();\n const maxDateRangeInMilliseconds = currentSelection.getTime() + (this._config.maxDateRange || 0) * dayInMilliseconds;\n maxDateRange = maxDateRangeInMilliseconds > maxDateValueInMilliseconds ? new Date(this._config.maxDate) : new Date(maxDateRangeInMilliseconds);\n } else {\n maxDateRange.setDate(currentSelection.getDate() + (this._config.maxDateRange || 0));\n }\n this._effects?.setMaxDate(maxDateRange);\n }\n static {\n this.ɵfac = function BsDaterangepickerContainerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDaterangepickerContainerComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(BsDatepickerConfig), i0.ɵɵdirectiveInject(BsDatepickerStore), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(BsDatepickerActions), i0.ɵɵdirectiveInject(BsDatepickerEffects), i0.ɵɵdirectiveInject(i5.PositioningService));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BsDaterangepickerContainerComponent,\n selectors: [[\"bs-daterangepicker-container\"]],\n viewQuery: function BsDaterangepickerContainerComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c3, 5);\n i0.ɵɵviewQuery(_c4, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.startTimepicker = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.endTimepicker = _t.first);\n }\n },\n hostAttrs: [\"role\", \"dialog\", \"aria-label\", \"calendar\", 1, \"bottom\"],\n hostVars: 2,\n hostBindings: function BsDaterangepickerContainerComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function BsDaterangepickerContainerComponent_click_HostBindingHandler($event) {\n return ctx._stopPropagation($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx.isDatepickerDisabled)(\"readonly\", ctx.isDatepickerReadonly);\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([BsDatepickerStore, BsDatepickerEffects, BsDatepickerActions, PositioningService]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 3,\n consts: [[\"startTP\", \"\"], [\"endTP\", \"\"], [\"class\", \"bs-datepicker\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"bs-datepicker\", 3, \"ngClass\"], [1, \"bs-datepicker-container\"], [\"role\", \"application\", 1, \"bs-calendar-container\", 3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [\"class\", \"bs-media-container\", 4, \"ngSwitchCase\"], [\"class\", \"bs-datepicker-buttons\", 4, \"ngIf\"], [\"class\", \"bs-datepicker-custom-range\", 4, \"ngIf\"], [1, \"bs-media-container\"], [3, \"bs-datepicker-multiple\", \"calendar\", \"isDisabled\", \"options\", \"onNavigate\", \"onViewMode\", \"onHover\", \"onHoverWeek\", \"onSelect\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"bs-timepicker-in-datepicker-container\", 4, \"ngIf\"], [3, \"onNavigate\", \"onViewMode\", \"onHover\", \"onHoverWeek\", \"onSelect\", \"calendar\", \"isDisabled\", \"options\"], [1, \"bs-timepicker-in-datepicker-container\"], [3, \"disabled\"], [3, \"disabled\", 4, \"ngIf\"], [3, \"bs-datepicker-multiple\", \"calendar\", \"onNavigate\", \"onViewMode\", \"onHover\", \"onSelect\", 4, \"ngFor\", \"ngForOf\"], [3, \"onNavigate\", \"onViewMode\", \"onHover\", \"onSelect\", \"calendar\"], [1, \"bs-datepicker-buttons\"], [\"type\", \"button\", 1, \"btn\", \"btn-success\"], [\"type\", \"button\", 1, \"btn\", \"btn-default\"], [\"class\", \"btn-today-wrapper\", 3, \"today-left\", \"today-right\", \"today-center\", 4, \"ngIf\"], [\"class\", \"btn-clear-wrapper\", 3, \"clear-left\", \"clear-right\", \"clear-center\", 4, \"ngIf\"], [1, \"btn-today-wrapper\"], [1, \"btn\", \"btn-success\", 3, \"click\"], [1, \"btn-clear-wrapper\"], [1, \"bs-datepicker-custom-range\"], [3, \"onSelect\", \"selectedRange\", \"ranges\", \"customRangeLabel\"]],\n template: function BsDaterangepickerContainerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, BsDaterangepickerContainerComponent_div_0_Template, 10, 11, \"div\", 2);\n i0.ɵɵpipe(1, \"async\");\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", i0.ɵɵpipeBind1(1, 1, ctx.viewMode));\n }\n },\n dependencies: [NgIf, NgClass, NgSwitch, NgSwitchCase, NgFor, BsDaysCalendarViewComponent, TimepickerModule, i6.TimepickerComponent, BsMonthCalendarViewComponent, BsYearsCalendarViewComponent, BsCustomDatesViewComponent, AsyncPipe],\n encapsulation: 2,\n data: {\n animation: [datepickerAnimation]\n }\n });\n }\n }\n return BsDaterangepickerContainerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDaterangepickerInlineContainerComponent = /*#__PURE__*/(() => {\n class BsDaterangepickerInlineContainerComponent extends BsDaterangepickerContainerComponent {\n get disabledValue() {\n return this.isDatePickerDisabled ? '' : null;\n }\n get readonlyValue() {\n return this.isDatePickerDisabled ? '' : null;\n }\n constructor(_renderer, _config, _store, _element, _actions, _effects, _positioningService) {\n super(_renderer, _config, _store, _element, _actions, _effects, _positioningService);\n _renderer.setStyle(_element.nativeElement, 'display', 'inline-block');\n _renderer.setStyle(_element.nativeElement, 'position', 'static');\n }\n static {\n this.ɵfac = function BsDaterangepickerInlineContainerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDaterangepickerInlineContainerComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(BsDatepickerConfig), i0.ɵɵdirectiveInject(BsDatepickerStore), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(BsDatepickerActions), i0.ɵɵdirectiveInject(BsDatepickerEffects), i0.ɵɵdirectiveInject(i5.PositioningService));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BsDaterangepickerInlineContainerComponent,\n selectors: [[\"bs-daterangepicker-inline-container\"]],\n hostVars: 2,\n hostBindings: function BsDaterangepickerInlineContainerComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function BsDaterangepickerInlineContainerComponent_click_HostBindingHandler($event) {\n return ctx._stopPropagation($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx.disabledValue)(\"readonly\", ctx.readonlyValue);\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([BsDatepickerStore, BsDatepickerEffects, BsDatepickerActions, PositioningService]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 3,\n consts: [[\"startTP\", \"\"], [\"endTP\", \"\"], [\"class\", \"bs-datepicker\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"bs-datepicker\", 3, \"ngClass\"], [1, \"bs-datepicker-container\"], [\"role\", \"application\", 1, \"bs-calendar-container\", 3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [\"class\", \"bs-media-container\", 4, \"ngSwitchCase\"], [\"class\", \"bs-datepicker-buttons\", 4, \"ngIf\"], [\"class\", \"bs-datepicker-custom-range\", 4, \"ngIf\"], [1, \"bs-media-container\"], [3, \"bs-datepicker-multiple\", \"calendar\", \"isDisabled\", \"options\", \"onNavigate\", \"onViewMode\", \"onHover\", \"onHoverWeek\", \"onSelect\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"bs-timepicker-in-datepicker-container\", 4, \"ngIf\"], [3, \"onNavigate\", \"onViewMode\", \"onHover\", \"onHoverWeek\", \"onSelect\", \"calendar\", \"isDisabled\", \"options\"], [1, \"bs-timepicker-in-datepicker-container\"], [3, \"disabled\"], [3, \"disabled\", 4, \"ngIf\"], [3, \"bs-datepicker-multiple\", \"calendar\", \"onNavigate\", \"onViewMode\", \"onHover\", \"onSelect\", 4, \"ngFor\", \"ngForOf\"], [3, \"onNavigate\", \"onViewMode\", \"onHover\", \"onSelect\", \"calendar\"], [1, \"bs-datepicker-buttons\"], [\"type\", \"button\", 1, \"btn\", \"btn-success\"], [\"type\", \"button\", 1, \"btn\", \"btn-default\"], [\"class\", \"btn-today-wrapper\", 3, \"today-left\", \"today-right\", \"today-center\", 4, \"ngIf\"], [\"class\", \"btn-clear-wrapper\", 3, \"clear-left\", \"clear-right\", \"clear-center\", 4, \"ngIf\"], [1, \"btn-today-wrapper\"], [1, \"btn\", \"btn-success\", 3, \"click\"], [1, \"btn-clear-wrapper\"], [1, \"bs-datepicker-custom-range\"], [3, \"onSelect\", \"selectedRange\", \"ranges\", \"customRangeLabel\"]],\n template: function BsDaterangepickerInlineContainerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, BsDaterangepickerInlineContainerComponent_div_0_Template, 10, 11, \"div\", 2);\n i0.ɵɵpipe(1, \"async\");\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", i0.ɵɵpipeBind1(1, 1, ctx.viewMode));\n }\n },\n dependencies: [NgIf, NgClass, NgSwitch, NgSwitchCase, NgFor, BsDaysCalendarViewComponent, TimepickerModule, i6.TimepickerComponent, BsMonthCalendarViewComponent, BsYearsCalendarViewComponent, BsCustomDatesViewComponent, AsyncPipe],\n encapsulation: 2,\n data: {\n animation: [datepickerAnimation]\n }\n });\n }\n }\n return BsDaterangepickerInlineContainerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDaterangepickerInlineDirective = /*#__PURE__*/(() => {\n class BsDaterangepickerInlineDirective {\n /**\n * Initial value of datepicker\n */\n set bsValue(value) {\n if (this._bsValue === value) {\n return;\n }\n if (value && this.bsConfig?.initCurrentTime) {\n value = setDateRangesCurrentTimeOnDateSelect(value);\n }\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {\n this._config = _config;\n this._elementRef = _elementRef;\n /**\n * Indicates whether datepicker is enabled or not\n */\n this.isDisabled = false;\n /**\n * Emits when daterangepicker value has been changed\n */\n this.bsValueChange = new EventEmitter();\n this._subs = [];\n // todo: assign only subset of fields\n Object.assign(this, this._config);\n this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);\n }\n ngOnInit() {\n this.setConfig();\n this.initSubscribes();\n }\n ngOnChanges(changes) {\n if (changes[\"bsConfig\"]) {\n if (changes[\"bsConfig\"].currentValue.initCurrentTime && changes[\"bsConfig\"].currentValue.initCurrentTime !== changes[\"bsConfig\"].previousValue.initCurrentTime && this._bsValue) {\n this._bsValue = setDateRangesCurrentTimeOnDateSelect(this._bsValue);\n this.bsValueChange.emit(this._bsValue);\n }\n }\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n if (changes[\"minDate\"]) {\n this._datepickerRef.instance.minDate = this.minDate;\n }\n if (changes[\"maxDate\"]) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n }\n if (changes[\"datesEnabled\"]) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n this._datepickerRef.instance.value = this._bsValue;\n }\n if (changes[\"datesDisabled\"]) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n }\n if (changes[\"daysDisabled\"]) {\n this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n }\n if (changes[\"isDisabled\"]) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n }\n if (changes[\"dateCustomClasses\"]) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n }\n this.setConfig();\n }\n /**\n * Set config for datepicker\n */\n setConfig() {\n if (this._datepicker) {\n this._datepicker.hide();\n }\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: checkBsValue(this._bsValue, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\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: checkRangesWithMaxDate(this.bsConfig && this.bsConfig.ranges, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\n maxDateRange: this.bsConfig && this.bsConfig.maxDateRange,\n initCurrentTime: this.bsConfig?.initCurrentTime\n });\n this._datepickerRef = this._datepicker.provide({\n provide: BsDatepickerConfig,\n useValue: this._config\n }).attach(BsDaterangepickerInlineContainerComponent).to(this._elementRef).show();\n this.initSubscribes();\n }\n initSubscribes() {\n this.unsubscribeSubscriptions();\n // if date changes from external source (model -> view)\n this._subs.push(this.bsValueChange.subscribe(value => {\n if (this._datepickerRef) {\n this._datepickerRef.instance.value = value;\n }\n }));\n // if date changes from picker (view -> model)\n if (this._datepickerRef) {\n this._subs.push(this._datepickerRef.instance.valueChange.pipe(filter(range => range && range[0] && !!range[1])).subscribe(value => {\n this.bsValue = value;\n }));\n }\n }\n unsubscribeSubscriptions() {\n if (this._subs?.length) {\n this._subs.map(sub => sub.unsubscribe());\n this._subs.length = 0;\n }\n }\n ngOnDestroy() {\n this._datepicker.dispose();\n this.unsubscribeSubscriptions();\n }\n static {\n this.ɵfac = function BsDaterangepickerInlineDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDaterangepickerInlineDirective)(i0.ɵɵdirectiveInject(BsDaterangepickerInlineConfig), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2$1.ComponentLoaderFactory));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BsDaterangepickerInlineDirective,\n selectors: [[\"bs-daterangepicker-inline\"]],\n inputs: {\n bsValue: \"bsValue\",\n bsConfig: \"bsConfig\",\n isDisabled: \"isDisabled\",\n minDate: \"minDate\",\n maxDate: \"maxDate\",\n dateCustomClasses: \"dateCustomClasses\",\n daysDisabled: \"daysDisabled\",\n datesDisabled: \"datesDisabled\",\n datesEnabled: \"datesEnabled\"\n },\n outputs: {\n bsValueChange: \"bsValueChange\"\n },\n exportAs: [\"bsDaterangepickerInline\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([ComponentLoaderFactory]), i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return BsDaterangepickerInlineDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst BS_DATEPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BsDatepickerInputDirective),\n multi: true\n};\nconst BS_DATEPICKER_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => BsDatepickerInputDirective),\n multi: true\n};\nlet BsDatepickerInputDirective = /*#__PURE__*/(() => {\n class BsDatepickerInputDirective {\n constructor(_picker, _localeService, _renderer, _elRef, changeDetection) {\n this._picker = _picker;\n this._localeService = _localeService;\n this._renderer = _renderer;\n this._elRef = _elRef;\n this.changeDetection = changeDetection;\n this._onChange = Function.prototype;\n this._onTouched = Function.prototype;\n this._validatorChange = Function.prototype;\n this._subs = new Subscription();\n }\n onChange(event) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.writeValue(event.target.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 onBlur() {\n this._onTouched();\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 ngOnInit() {\n const setBsValue = value => {\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 // if value set via [bsValue] it will not get into value change\n if (this._picker._bsValue) {\n setBsValue(this._picker._bsValue);\n }\n // update input value on datepicker value update\n this._subs.add(this._picker.bsValueChange.subscribe(setBsValue));\n // update input value on locale change\n this._subs.add(this._localeService.localeChange.subscribe(() => {\n this._setInputValue(this._value);\n }));\n this._subs.add(this._picker.dateInputFormat$.pipe(distinctUntilChanged()).subscribe(() => {\n this._setInputValue(this._value);\n }));\n }\n ngOnDestroy() {\n this._subs.unsubscribe();\n }\n _setInputValue(value) {\n const initialDate = !value ? '' : formatDate(value, this._picker._config.dateInputFormat, this._localeService.currentLocale);\n this._renderer.setProperty(this._elRef.nativeElement, 'value', initialDate);\n }\n validate(c) {\n const _value = c.value;\n if (_value === null || _value === undefined || _value === '') {\n return null;\n }\n if (isDate(_value)) {\n const _isDateValid = isDateValid(_value);\n if (!_isDateValid) {\n return {\n bsDate: {\n invalid: _value\n }\n };\n }\n if (this._picker && this._picker.minDate && isBefore(_value, this._picker.minDate, 'date')) {\n this.writeValue(this._picker.minDate);\n return {\n bsDate: {\n minDate: this._picker.minDate\n }\n };\n }\n if (this._picker && this._picker.maxDate && isAfter(_value, this._picker.maxDate, 'date')) {\n this.writeValue(this._picker.maxDate);\n return {\n bsDate: {\n maxDate: this._picker.maxDate\n }\n };\n }\n }\n return null;\n }\n registerOnValidatorChange(fn) {\n this._validatorChange = fn;\n }\n writeValue(value) {\n if (!value) {\n this._value = void 0;\n } else {\n const _localeKey = this._localeService.currentLocale;\n const _locale = getLocale(_localeKey);\n if (!_locale) {\n throw new Error(`Locale \"${_localeKey}\" is not defined, please add it with \"defineLocale(...)\"`);\n }\n this._value = parseDate(value, this._picker._config.dateInputFormat, this._localeService.currentLocale);\n if (this._picker._config.useUtc) {\n const utcValue = utcAsLocal(this._value);\n this._value = utcValue === null ? void 0 : utcValue;\n }\n }\n this._picker.bsValue = this._value;\n this._onChange(this._value);\n }\n setDisabledState(isDisabled) {\n this._picker.isDisabled = isDisabled;\n if (isDisabled) {\n this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');\n return;\n }\n this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n static {\n this.ɵfac = function BsDatepickerInputDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDatepickerInputDirective)(i0.ɵɵdirectiveInject(BsDatepickerDirective, 1), i0.ɵɵdirectiveInject(BsLocaleService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BsDatepickerInputDirective,\n selectors: [[\"input\", \"bsDatepicker\", \"\"]],\n hostBindings: function BsDatepickerInputDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"change\", function BsDatepickerInputDirective_change_HostBindingHandler($event) {\n return ctx.onChange($event);\n })(\"blur\", function BsDatepickerInputDirective_blur_HostBindingHandler() {\n return ctx.onBlur();\n })(\"keyup.esc\", function BsDatepickerInputDirective_keyup_esc_HostBindingHandler() {\n return ctx.hide();\n })(\"keydown.enter\", function BsDatepickerInputDirective_keydown_enter_HostBindingHandler() {\n return ctx.hide();\n });\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([BsLocaleService, BS_DATEPICKER_VALUE_ACCESSOR, BS_DATEPICKER_VALIDATOR])]\n });\n }\n }\n return BsDatepickerInputDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDaterangepickerConfig = /*#__PURE__*/(() => {\n class BsDaterangepickerConfig extends BsDatepickerConfig {\n constructor() {\n super(...arguments);\n // DatepickerRenderOptions\n this.displayMonths = 2;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵBsDaterangepickerConfig_BaseFactory;\n return function BsDaterangepickerConfig_Factory(__ngFactoryType__) {\n return (ɵBsDaterangepickerConfig_BaseFactory || (ɵBsDaterangepickerConfig_BaseFactory = i0.ɵɵgetInheritedFactory(BsDaterangepickerConfig)))(__ngFactoryType__ || BsDaterangepickerConfig);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BsDaterangepickerConfig,\n factory: BsDaterangepickerConfig.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return BsDaterangepickerConfig;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet previousDate;\nlet BsDaterangepickerDirective = /*#__PURE__*/(() => {\n class BsDaterangepickerDirective {\n /**\n * Returns whether or not the daterangepicker is currently being shown\n */\n get isOpen() {\n return this._datepicker.isShown;\n }\n set isOpen(value) {\n this.isOpen$.next(value);\n }\n /**\n * Initial value of daterangepicker\n */\n set bsValue(value) {\n if (this._bsValue === value) {\n return;\n }\n if (value && this.bsConfig?.initCurrentTime) {\n value = setDateRangesCurrentTimeOnDateSelect(value);\n }\n this.initPreviousValue();\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n get isDatepickerReadonly() {\n return this.isDisabled ? '' : null;\n }\n get rangeInputFormat$() {\n return this._rangeInputFormat$;\n }\n constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {\n this._config = _config;\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n /**\n * Placement of a daterangepicker. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n this.placement = 'bottom';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n this.triggers = 'click';\n /**\n * Close daterangepicker on outside click\n */\n this.outsideClick = true;\n /**\n * A selector specifying the element the daterangepicker should be appended to.\n */\n this.container = 'body';\n this.outsideEsc = true;\n this.isDestroy$ = new Subject();\n /**\n * Indicates whether daterangepicker's content is enabled or not\n */\n this.isDisabled = false;\n /**\n * Emits when daterangepicker value has been changed\n */\n this.bsValueChange = new EventEmitter();\n this._subs = [];\n this._rangeInputFormat$ = new Subject();\n this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);\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 ngOnInit() {\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.initPreviousValue();\n this.setConfig();\n }\n ngOnChanges(changes) {\n if (changes[\"bsConfig\"]) {\n if (changes[\"bsConfig\"].currentValue?.initCurrentTime && changes[\"bsConfig\"].currentValue?.initCurrentTime !== changes[\"bsConfig\"].previousValue?.initCurrentTime && this._bsValue) {\n this.initPreviousValue();\n this._bsValue = setDateRangesCurrentTimeOnDateSelect(this._bsValue);\n this.bsValueChange.emit(this._bsValue);\n }\n this.setConfig();\n this._rangeInputFormat$.next(changes[\"bsConfig\"].currentValue && changes[\"bsConfig\"].currentValue.rangeInputFormat);\n }\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n if (changes[\"minDate\"]) {\n this._datepickerRef.instance.minDate = this.minDate;\n }\n if (changes[\"maxDate\"]) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n }\n if (changes[\"datesDisabled\"]) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n }\n if (changes[\"datesEnabled\"]) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n }\n if (changes[\"daysDisabled\"]) {\n this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n }\n if (changes[\"isDisabled\"]) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n }\n if (changes[\"dateCustomClasses\"]) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n }\n }\n ngAfterViewInit() {\n this.isOpen$.pipe(filter(isOpen => isOpen !== this.isOpen), takeUntil(this.isDestroy$)).subscribe(() => this.toggle());\n }\n /**\n * Opens an element’s datepicker. This is considered a “manual” triggering of\n * the datepicker.\n */\n show() {\n if (this._datepicker.isShown) {\n return;\n }\n this.setConfig();\n this._datepickerRef = this._datepicker.provide({\n provide: BsDatepickerConfig,\n useValue: this._config\n }).attach(BsDaterangepickerContainerComponent).to(this.container).position({\n attachment: this.placement\n }).show({\n placement: this.placement\n });\n this.initSubscribes();\n }\n initSubscribes() {\n // if date changes from external source (model -> view)\n this._subs.push(this.bsValueChange.subscribe(value => {\n if (this._datepickerRef) {\n this._datepickerRef.instance.value = value;\n }\n }));\n // if date changes from picker (view -> model)\n if (this._datepickerRef) {\n this._subs.push(this._datepickerRef.instance.valueChange.pipe(filter(range => range && range[0] && !!range[1])).subscribe(value => {\n this.initPreviousValue();\n this.bsValue = value;\n if (this.keepDatepickerModalOpened()) {\n return;\n }\n this.hide();\n }));\n }\n }\n initPreviousValue() {\n previousDate = this._bsValue;\n }\n keepDatepickerModalOpened() {\n if (!previousDate || !this.bsConfig?.keepDatepickerOpened || !this._config.withTimepicker) {\n return false;\n }\n return this.isDateSame();\n }\n isDateSame() {\n return this._bsValue?.[0]?.getDate() === previousDate?.[0]?.getDate() && this._bsValue?.[0]?.getMonth() === previousDate?.[0]?.getMonth() && this._bsValue?.[0]?.getFullYear() === previousDate?.[0]?.getFullYear() && this._bsValue?.[1]?.getDate() === previousDate?.[1]?.getDate() && this._bsValue?.[1]?.getMonth() === previousDate?.[1]?.getMonth() && this._bsValue?.[1]?.getFullYear() === previousDate?.[1]?.getFullYear();\n }\n /**\n * Set config for daterangepicker\n */\n setConfig() {\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: this.bsConfig?.keepDatesOutOfRules ? this._bsValue : checkBsValue(this._bsValue, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\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: checkRangesWithMaxDate(this.bsConfig && this.bsConfig.ranges, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\n maxDateRange: this.bsConfig && this.bsConfig.maxDateRange,\n initCurrentTime: this.bsConfig?.initCurrentTime,\n keepDatepickerOpened: this.bsConfig?.keepDatepickerOpened,\n keepDatesOutOfRules: this.bsConfig?.keepDatesOutOfRules\n });\n }\n /**\n * Closes an element’s datepicker. This is considered a “manual” triggering of\n * the datepicker.\n */\n hide() {\n if (this.isOpen) {\n this._datepicker.hide();\n }\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n if (this._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elementRef.nativeElement).focus();\n }\n }\n /**\n * Toggles an element’s datepicker. This is considered a “manual” triggering\n * of the datepicker.\n */\n toggle() {\n if (this.isOpen) {\n return this.hide();\n }\n this.show();\n }\n unsubscribeSubscriptions() {\n if (this._subs?.length) {\n this._subs.map(sub => sub.unsubscribe());\n this._subs.length = 0;\n }\n }\n ngOnDestroy() {\n this._datepicker.dispose();\n this.isOpen$.next(false);\n if (this.isDestroy$) {\n this.isDestroy$.next(null);\n this.isDestroy$.complete();\n }\n this.unsubscribeSubscriptions();\n }\n static {\n this.ɵfac = function BsDaterangepickerDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDaterangepickerDirective)(i0.ɵɵdirectiveInject(BsDaterangepickerConfig), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2$1.ComponentLoaderFactory));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BsDaterangepickerDirective,\n selectors: [[\"\", \"bsDaterangepicker\", \"\"]],\n hostVars: 1,\n hostBindings: function BsDaterangepickerDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"readonly\", ctx.isDatepickerReadonly);\n }\n },\n inputs: {\n placement: \"placement\",\n triggers: \"triggers\",\n outsideClick: \"outsideClick\",\n container: \"container\",\n outsideEsc: \"outsideEsc\",\n isOpen: \"isOpen\",\n bsValue: \"bsValue\",\n bsConfig: \"bsConfig\",\n isDisabled: \"isDisabled\",\n minDate: \"minDate\",\n maxDate: \"maxDate\",\n dateCustomClasses: \"dateCustomClasses\",\n daysDisabled: \"daysDisabled\",\n datesDisabled: \"datesDisabled\",\n datesEnabled: \"datesEnabled\"\n },\n outputs: {\n onShown: \"onShown\",\n onHidden: \"onHidden\",\n bsValueChange: \"bsValueChange\"\n },\n exportAs: [\"bsDaterangepicker\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([ComponentLoaderFactory]), i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return BsDaterangepickerDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst BS_DATERANGEPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BsDaterangepickerInputDirective),\n multi: true\n};\nconst BS_DATERANGEPICKER_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => BsDaterangepickerInputDirective),\n multi: true\n};\nlet BsDaterangepickerInputDirective = /*#__PURE__*/(() => {\n class BsDaterangepickerInputDirective {\n constructor(_picker, _localeService, _renderer, _elRef, changeDetection) {\n this._picker = _picker;\n this._localeService = _localeService;\n this._renderer = _renderer;\n this._elRef = _elRef;\n this.changeDetection = changeDetection;\n this._onChange = Function.prototype;\n this._onTouched = Function.prototype;\n this._validatorChange = Function.prototype;\n this._subs = new Subscription();\n }\n ngOnInit() {\n const setBsValue = value => {\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 // if value set via [bsValue] it will not get into value change\n if (this._picker._bsValue) {\n setBsValue(this._picker._bsValue);\n }\n // update input value on datepicker value update\n this._subs.add(this._picker.bsValueChange.subscribe(value => {\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 // update input value on locale change\n this._subs.add(this._localeService.localeChange.subscribe(() => {\n this._setInputValue(this._value);\n }));\n this._subs.add(\n // update input value on format change\n this._picker.rangeInputFormat$.pipe(distinctUntilChanged()).subscribe(() => {\n this._setInputValue(this._value);\n }));\n }\n ngOnDestroy() {\n this._subs.unsubscribe();\n }\n onKeydownEvent(event) {\n if (event.keyCode === 13 || event.code === 'Enter') {\n this.hide();\n }\n }\n _setInputValue(date) {\n let range = '';\n if (date) {\n const start = !date[0] ? '' : formatDate(date[0], this._picker._config.rangeInputFormat, this._localeService.currentLocale);\n const end = !date[1] ? '' : formatDate(date[1], this._picker._config.rangeInputFormat, this._localeService.currentLocale);\n range = start && end ? start + this._picker._config.rangeSeparator + end : '';\n }\n this._renderer.setProperty(this._elRef.nativeElement, 'value', range);\n }\n onChange(event) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.writeValue(event.target.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 validate(c) {\n let _value = c.value;\n const errors = [];\n if (_value === null || _value === undefined || !isArray(_value)) {\n return null;\n }\n _value = _value.slice().sort((a, b) => a.getTime() - b.getTime());\n const _isFirstDateValid = isDateValid(_value[0]);\n const _isSecondDateValid = isDateValid(_value[1]);\n if (!_isFirstDateValid) {\n return {\n bsDate: {\n invalid: _value[0]\n }\n };\n }\n if (!_isSecondDateValid) {\n return {\n bsDate: {\n invalid: _value[1]\n }\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({\n bsDate: {\n minDate: this._picker.minDate\n }\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({\n bsDate: {\n maxDate: this._picker.maxDate\n }\n });\n }\n if (errors.length > 0) {\n this.writeValue(_value);\n return errors;\n }\n return null;\n }\n registerOnValidatorChange(fn) {\n this._validatorChange = fn;\n }\n writeValue(value) {\n if (!value) {\n this._value = void 0;\n } else {\n const _localeKey = this._localeService.currentLocale;\n const _locale = getLocale(_localeKey);\n if (!_locale) {\n throw new Error(`Locale \"${_localeKey}\" is not defined, please add it with \"defineLocale(...)\"`);\n }\n let _input = [];\n if (typeof value === 'string') {\n const trimmedSeparator = this._picker._config.rangeSeparator.trim();\n if (value.replace(/[^-]/g, '').length > 1) {\n _input = value.split(this._picker._config.rangeSeparator);\n } else {\n _input = value.split(trimmedSeparator.length > 0 ? trimmedSeparator : this._picker._config.rangeSeparator).map(_val => _val.trim());\n }\n }\n if (Array.isArray(value)) {\n _input = value;\n }\n this._value = _input.map(_val => {\n if (this._picker._config.useUtc) {\n return utcAsLocal(parseDate(_val, this._picker._config.rangeInputFormat, this._localeService.currentLocale));\n }\n return parseDate(_val, this._picker._config.rangeInputFormat, this._localeService.currentLocale);\n }).map(date => isNaN(date.valueOf()) ? void 0 : date);\n }\n this._picker.bsValue = this._value;\n }\n setDisabledState(isDisabled) {\n this._picker.isDisabled = isDisabled;\n if (isDisabled) {\n this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');\n return;\n }\n this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn) {\n this._onChange = fn;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n onBlur() {\n this._onTouched();\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 static {\n this.ɵfac = function BsDaterangepickerInputDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDaterangepickerInputDirective)(i0.ɵɵdirectiveInject(BsDaterangepickerDirective, 1), i0.ɵɵdirectiveInject(BsLocaleService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BsDaterangepickerInputDirective,\n selectors: [[\"input\", \"bsDaterangepicker\", \"\"]],\n hostBindings: function BsDaterangepickerInputDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"change\", function BsDaterangepickerInputDirective_change_HostBindingHandler($event) {\n return ctx.onChange($event);\n })(\"keyup.esc\", function BsDaterangepickerInputDirective_keyup_esc_HostBindingHandler() {\n return ctx.hide();\n })(\"keydown\", function BsDaterangepickerInputDirective_keydown_HostBindingHandler($event) {\n return ctx.onKeydownEvent($event);\n })(\"blur\", function BsDaterangepickerInputDirective_blur_HostBindingHandler() {\n return ctx.onBlur();\n });\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([BsLocaleService, BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR])]\n });\n }\n }\n return BsDaterangepickerInputDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BsDatepickerModule = /*#__PURE__*/(() => {\n class BsDatepickerModule {\n // @deprecated method not required anymore, will be deleted in v19.0.0\n static forRoot() {\n return {\n ngModule: BsDatepickerModule,\n providers: []\n };\n }\n static {\n this.ɵfac = function BsDatepickerModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BsDatepickerModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BsDatepickerModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, TooltipModule, TimepickerModule, BsDaysCalendarViewComponent, BsDatepickerContainerComponent, BsDatepickerInlineContainerComponent, BsDaterangepickerContainerComponent, BsDaterangepickerInlineContainerComponent]\n });\n }\n }\n return BsDatepickerModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BsDatepickerConfig, BsDatepickerContainerComponent, BsDatepickerDirective, BsDatepickerInlineConfig, BsDatepickerInlineContainerComponent, BsDatepickerInlineDirective, BsDatepickerInputDirective, BsDatepickerModule, BsDaterangepickerConfig, BsDaterangepickerContainerComponent, BsDaterangepickerDirective, BsDaterangepickerInlineConfig, BsDaterangepickerInlineContainerComponent, BsDaterangepickerInlineDirective, BsDaterangepickerInputDirective, BsLocaleService };\n","import * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, PLATFORM_ID, Component, Inject, Input, Output, HostBinding, NgModule } from '@angular/core';\nimport { isPlatformBrowser, NgIf, NgFor, NgStyle } from '@angular/common';\nimport { getBsVer, LinkedList } from 'ngx-bootstrap/utils';\nconst _c0 = [\"*\"];\nconst _c1 = a0 => ({\n \"display\": a0\n});\nfunction CarouselComponent_ng_container_1_li_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 7);\n i0.ɵɵlistener(\"click\", function CarouselComponent_ng_container_1_li_2_Template_li_click_0_listener() {\n const i_r2 = i0.ɵɵrestoreView(_r1).index;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.selectSlide(i_r2));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const slide_r4 = ctx.$implicit;\n i0.ɵɵclassProp(\"active\", slide_r4.active === true);\n }\n}\nfunction CarouselComponent_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"ol\", 5);\n i0.ɵɵtemplate(2, CarouselComponent_ng_container_1_li_2_Template, 1, 2, \"li\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r2.indicatorsSlides());\n }\n}\nfunction CarouselComponent_ng_container_2_button_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 9);\n i0.ɵɵlistener(\"click\", function CarouselComponent_ng_container_2_button_2_Template_button_click_0_listener() {\n const i_r6 = i0.ɵɵrestoreView(_r5).index;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.selectSlide(i_r6));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const slide_r7 = ctx.$implicit;\n const i_r6 = ctx.index;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"active\", slide_r7.active === true);\n i0.ɵɵattribute(\"data-bs-target\", \"#carousel\" + ctx_r2.currentId)(\"data-bs-slide-to\", i_r6);\n }\n}\nfunction CarouselComponent_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 5);\n i0.ɵɵtemplate(2, CarouselComponent_ng_container_2_button_2_Template, 1, 4, \"button\", 8);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r2.indicatorsSlides());\n }\n}\nfunction CarouselComponent_a_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"a\", 10);\n i0.ɵɵlistener(\"click\", function CarouselComponent_a_5_Template_a_click_0_listener() {\n i0.ɵɵrestoreView(_r8);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.previousSlide());\n });\n i0.ɵɵelement(1, \"span\", 11);\n i0.ɵɵelementStart(2, \"span\", 12);\n i0.ɵɵtext(3, \"Previous\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"disabled\", ctx_r2.checkDisabledClass(\"prev\"));\n i0.ɵɵattribute(\"data-bs-target\", \"#carousel\" + ctx_r2.currentId);\n }\n}\nfunction CarouselComponent_a_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"a\", 13);\n i0.ɵɵlistener(\"click\", function CarouselComponent_a_6_Template_a_click_0_listener() {\n i0.ɵɵrestoreView(_r9);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.nextSlide());\n });\n i0.ɵɵelement(1, \"span\", 14);\n i0.ɵɵelementStart(2, \"span\", 12);\n i0.ɵɵtext(3, \"Next\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"disabled\", ctx_r2.checkDisabledClass(\"next\"));\n i0.ɵɵattribute(\"data-bs-target\", \"#carousel\" + ctx_r2.currentId);\n }\n}\nlet CarouselConfig = /*#__PURE__*/(() => {\n class CarouselConfig {\n constructor() {\n /* Default interval of auto changing of slides */\n this.interval = 5000;\n /* Is loop of auto changing of slides can be paused */\n this.noPause = false;\n /* Is slides can wrap from the last to the first slide */\n this.noWrap = false;\n /* Show carousel-indicators */\n this.showIndicators = true;\n /* Slides can be paused on focus */\n this.pauseOnFocus = false;\n /* If `true` - carousel indicators indicate slides chunks works ONLY if singleSlideOffset = FALSE */\n this.indicatorsByChunk = false;\n /* If value more then 1 — carousel works in multilist mode */\n this.itemsPerSlide = 1;\n /* If `true` — carousel shifts by one element. By default carousel shifts by number\n of visible elements (itemsPerSlide field) */\n this.singleSlideOffset = false;\n }\n static {\n this.ɵfac = function CarouselConfig_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CarouselConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CarouselConfig,\n factory: CarouselConfig.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return CarouselConfig;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param array The source array to search in\n * @param predicate find calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n */\nfunction findLastIndex(array, predicate) {\n let l = array.length;\n while (l--) {\n if (predicate(array[l], l, array)) {\n return l;\n }\n }\n return -1;\n}\nfunction chunkByNumber(array, size) {\n const out = [];\n const n = Math.ceil(array.length / size);\n let i = 0;\n while (i < n) {\n const chunk = array.splice(0, i === n - 1 && size < array.length ? array.length : size);\n out.push(chunk);\n i++;\n }\n return out;\n}\nfunction isNumber(value) {\n return typeof value === 'number' || Object.prototype.toString.call(value) === '[object Number]';\n}\n\n/***\n * pause (not yet supported) (?string='hover') - event group name which pauses\n * the cycling of the carousel, if hover pauses on mouseenter and resumes on\n * mouseleave keyboard (not yet supported) (?boolean=true) - if false\n * carousel will not react to keyboard events\n * note: swiping not yet supported\n */\n/****\n * Problems:\n * 1) if we set an active slide via model changes, .active class remains on a\n * current slide.\n * 2) if we have only one slide, we shouldn't show prev/next nav buttons\n * 3) if first or last slide is active and noWrap is true, there should be\n * \"disabled\" class on the nav buttons.\n * 4) default interval should be equal 5000\n */\nvar Direction = /*#__PURE__*/function (Direction) {\n Direction[Direction[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n Direction[Direction[\"NEXT\"] = 1] = \"NEXT\";\n Direction[Direction[\"PREV\"] = 2] = \"PREV\";\n return Direction;\n}(Direction || {});\nlet _currentId = 1;\n/**\n * Base element to create carousel\n */\nlet CarouselComponent = /*#__PURE__*/(() => {\n class CarouselComponent {\n /** Index of currently displayed slide(started for 0) */\n set activeSlide(index) {\n if (this.multilist) {\n return;\n }\n if (isNumber(index)) {\n this.customActiveSlide = index;\n }\n if (this._slides.length && index !== this._currentActiveSlide) {\n this._select(index);\n }\n }\n get activeSlide() {\n return this._currentActiveSlide || 0;\n }\n /**\n * Delay of item cycling in milliseconds. If false, carousel won't cycle\n * automatically.\n */\n get interval() {\n return this._interval;\n }\n set interval(value) {\n this._interval = value;\n this.restartTimer();\n }\n get slides() {\n return this._slides.toArray();\n }\n get isFirstSlideVisible() {\n const indexes = this.getVisibleIndexes();\n if (!indexes || indexes instanceof Array && !indexes.length) {\n return false;\n }\n return indexes.includes(0);\n }\n get isLastSlideVisible() {\n const indexes = this.getVisibleIndexes();\n if (!indexes || indexes instanceof Array && !indexes.length) {\n return false;\n }\n return indexes.includes(this._slides.length - 1);\n }\n get _bsVer() {\n return getBsVer();\n }\n constructor(config, ngZone, platformId) {\n this.ngZone = ngZone;\n this.platformId = platformId;\n /* If `true` — carousel will not cycle continuously and will have hard stops (prevent looping) */\n this.noWrap = false;\n /* If `true` — will disable pausing on carousel mouse hover */\n this.noPause = false;\n /* If `true` — carousel-indicators are visible */\n this.showIndicators = true;\n /* If `true` - autoplay will be stopped on focus */\n this.pauseOnFocus = false;\n /* If `true` - carousel indicators indicate slides chunks\n works ONLY if singleSlideOffset = FALSE */\n this.indicatorsByChunk = false;\n /* If value more then 1 — carousel works in multilist mode */\n this.itemsPerSlide = 1;\n /* If `true` — carousel shifts by one element. By default carousel shifts by number\n of visible elements (itemsPerSlide field) */\n this.singleSlideOffset = false;\n /** Turn on/off animation. Animation doesn't work for multilist carousel */\n this.isAnimated = false;\n /** Will be emitted when active slide has been changed. Part of two-way-bindable [(activeSlide)] property */\n this.activeSlideChange = new EventEmitter(false);\n /** Will be emitted when active slides has been changed in multilist mode */\n this.slideRangeChange = new EventEmitter();\n /* Index to start display slides from it */\n this.startFromIndex = 0;\n this._interval = 5000;\n this._slides = new LinkedList();\n this._currentVisibleSlidesIndex = 0;\n this.isPlaying = false;\n this.destroyed = false;\n this.currentId = 0;\n this.getActive = slide => slide.active;\n this.makeSlidesConsistent = slides => {\n slides.forEach((slide, index) => slide.item.order = index);\n };\n Object.assign(this, config);\n this.currentId = _currentId++;\n }\n ngAfterViewInit() {\n setTimeout(() => {\n if (this.singleSlideOffset) {\n this.indicatorsByChunk = false;\n }\n if (this.multilist) {\n this._chunkedSlides = chunkByNumber(this.mapSlidesAndIndexes(), this.itemsPerSlide);\n this.selectInitialSlides();\n }\n if (this.customActiveSlide && !this.multilist) {\n this._select(this.customActiveSlide);\n }\n }, 0);\n }\n ngOnDestroy() {\n this.destroyed = true;\n }\n /**\n * Adds new slide. If this slide is first in collection - set it as active\n * and starts auto changing\n * @param slide\n */\n addSlide(slide) {\n this._slides.add(slide);\n if (this.multilist && this._slides.length <= this.itemsPerSlide) {\n slide.active = true;\n }\n if (!this.multilist && this.isAnimated) {\n slide.isAnimated = true;\n }\n if (!this.multilist && this._slides.length === 1) {\n this._currentActiveSlide = undefined;\n if (!this.customActiveSlide) {\n this.activeSlide = 0;\n }\n this.play();\n }\n if (this.multilist && this._slides.length > this.itemsPerSlide) {\n this.play();\n }\n }\n /**\n * Removes specified slide. If this slide is active - will roll to another\n * slide\n * @param slide\n */\n removeSlide(slide) {\n const remIndex = this._slides.indexOf(slide);\n if (this._currentActiveSlide === remIndex) {\n // removing of active slide\n let nextSlideIndex;\n if (this._slides.length > 1) {\n // if this slide last - will roll to first slide, if noWrap flag is\n // FALSE or to previous, if noWrap is TRUE in case, if this slide in\n // middle of collection, index of next slide is same to removed\n nextSlideIndex = !this.isLast(remIndex) ? remIndex : this.noWrap ? remIndex - 1 : 0;\n }\n this._slides.remove(remIndex);\n // prevents exception with changing some value after checking\n setTimeout(() => {\n this._select(nextSlideIndex);\n }, 0);\n } else {\n this._slides.remove(remIndex);\n const currentSlideIndex = this.getCurrentSlideIndex();\n setTimeout(() => {\n // after removing, need to actualize index of current active slide\n this._currentActiveSlide = currentSlideIndex;\n this.activeSlideChange.emit(this._currentActiveSlide);\n }, 0);\n }\n }\n nextSlideFromInterval(force = false) {\n this.move(Direction.NEXT, force);\n }\n /**\n * Rolling to next slide\n * @param force: {boolean} if true - will ignore noWrap flag\n */\n nextSlide(force = false) {\n if (this.isPlaying) {\n this.restartTimer();\n }\n this.move(Direction.NEXT, force);\n }\n /**\n * Rolling to previous slide\n * @param force: {boolean} if true - will ignore noWrap flag\n */\n previousSlide(force = false) {\n if (this.isPlaying) {\n this.restartTimer();\n }\n this.move(Direction.PREV, force);\n }\n getFirstVisibleIndex() {\n return this.slides.findIndex(this.getActive);\n }\n getLastVisibleIndex() {\n return findLastIndex(this.slides, this.getActive);\n }\n move(direction, force = false) {\n const firstVisibleIndex = this.getFirstVisibleIndex();\n const lastVisibleIndex = this.getLastVisibleIndex();\n if (this.noWrap) {\n if (direction === Direction.NEXT && this.isLast(lastVisibleIndex) || direction === Direction.PREV && firstVisibleIndex === 0) {\n return;\n }\n }\n if (!this.multilist) {\n this.activeSlide = this.findNextSlideIndex(direction, force) || 0;\n } else {\n this.moveMultilist(direction);\n }\n }\n /**\n * Swith slides by enter, space and arrows keys\n * @internal\n */\n keydownPress(event) {\n if (event.keyCode === 13 || event.key === 'Enter' || event.keyCode === 32 || event.key === 'Space') {\n this.nextSlide();\n event.preventDefault();\n return;\n }\n if (event.keyCode === 37 || event.key === 'LeftArrow') {\n this.previousSlide();\n return;\n }\n if (event.keyCode === 39 || event.key === 'RightArrow') {\n this.nextSlide();\n return;\n }\n }\n /**\n * Play on mouse leave\n * @internal\n */\n onMouseLeave() {\n if (!this.pauseOnFocus) {\n this.play();\n }\n }\n /**\n * Play on mouse up\n * @internal\n */\n onMouseUp() {\n if (!this.pauseOnFocus) {\n this.play();\n }\n }\n /**\n * When slides on focus autoplay is stopped(optional)\n * @internal\n */\n pauseFocusIn() {\n if (this.pauseOnFocus) {\n this.isPlaying = false;\n this.resetTimer();\n }\n }\n /**\n * When slides out of focus autoplay is started\n * @internal\n */\n pauseFocusOut() {\n this.play();\n }\n /**\n * Rolling to specified slide\n * @param index: {number} index of slide, which must be shown\n */\n selectSlide(index) {\n if (this.isPlaying) {\n this.restartTimer();\n }\n if (!this.multilist) {\n this.activeSlide = this.indicatorsByChunk ? index * this.itemsPerSlide : index;\n } else {\n this.selectSlideRange(this.indicatorsByChunk ? index * this.itemsPerSlide : index);\n }\n }\n /**\n * Starts a auto changing of slides\n */\n play() {\n if (!this.isPlaying) {\n this.isPlaying = true;\n this.restartTimer();\n }\n }\n /**\n * Stops a auto changing of slides\n */\n pause() {\n if (!this.noPause) {\n this.isPlaying = false;\n this.resetTimer();\n }\n }\n /**\n * Finds and returns index of currently displayed slide\n */\n getCurrentSlideIndex() {\n return this._slides.findIndex(this.getActive);\n }\n /**\n * Defines, whether the specified index is last in collection\n * @param index\n */\n isLast(index) {\n return index + 1 >= this._slides.length;\n }\n /**\n * Defines, whether the specified index is first in collection\n * @param index\n */\n isFirst(index) {\n return index === 0;\n }\n indicatorsSlides() {\n return this.slides.filter((slide, index) => !this.indicatorsByChunk || index % this.itemsPerSlide === 0);\n }\n selectInitialSlides() {\n const startIndex = this.startFromIndex <= this._slides.length ? this.startFromIndex : 0;\n this.hideSlides();\n if (this.singleSlideOffset) {\n this._slidesWithIndexes = this.mapSlidesAndIndexes();\n if (this._slides.length - startIndex < this.itemsPerSlide) {\n const slidesToAppend = this._slidesWithIndexes.slice(0, startIndex);\n this._slidesWithIndexes = [...this._slidesWithIndexes, ...slidesToAppend].slice(slidesToAppend.length).slice(0, this.itemsPerSlide);\n } else {\n this._slidesWithIndexes = this._slidesWithIndexes.slice(startIndex, startIndex + this.itemsPerSlide);\n }\n this._slidesWithIndexes.forEach(slide => slide.item.active = true);\n this.makeSlidesConsistent(this._slidesWithIndexes);\n } else {\n this.selectRangeByNestedIndex(startIndex);\n }\n this.slideRangeChange.emit(this.getVisibleIndexes());\n }\n /**\n * Defines next slide index, depending of direction\n * @param direction: Direction(UNKNOWN|PREV|NEXT)\n * @param force: {boolean} if TRUE - will ignore noWrap flag, else will\n * return undefined if next slide require wrapping\n */\n findNextSlideIndex(direction, force) {\n let nextSlideIndex = 0;\n if (!force && this.isLast(this.activeSlide) && direction !== Direction.PREV && this.noWrap) {\n return;\n }\n switch (direction) {\n case Direction.NEXT:\n // if this is last slide, not force, looping is disabled\n // and need to going forward - select current slide, as a next\n if (typeof this._currentActiveSlide === 'undefined') {\n nextSlideIndex = 0;\n break;\n }\n if (!this.isLast(this._currentActiveSlide)) {\n nextSlideIndex = this._currentActiveSlide + 1;\n break;\n }\n nextSlideIndex = !force && this.noWrap ? this._currentActiveSlide : 0;\n break;\n case Direction.PREV:\n // if this is first slide, not force, looping is disabled\n // and need to going backward - select current slide, as a next\n if (typeof this._currentActiveSlide === 'undefined') {\n nextSlideIndex = 0;\n break;\n }\n if (this._currentActiveSlide > 0) {\n nextSlideIndex = this._currentActiveSlide - 1;\n break;\n }\n if (!force && this.noWrap) {\n nextSlideIndex = this._currentActiveSlide;\n break;\n }\n nextSlideIndex = this._slides.length - 1;\n break;\n default:\n throw new Error('Unknown direction');\n }\n return nextSlideIndex;\n }\n mapSlidesAndIndexes() {\n return this.slides.slice().map((slide, index) => {\n return {\n index,\n item: slide\n };\n });\n }\n selectSlideRange(index) {\n if (this.isIndexInRange(index)) {\n return;\n }\n this.hideSlides();\n if (!this.singleSlideOffset) {\n this.selectRangeByNestedIndex(index);\n } else {\n const startIndex = this.isIndexOnTheEdges(index) ? index : index - this.itemsPerSlide + 1;\n const endIndex = this.isIndexOnTheEdges(index) ? index + this.itemsPerSlide : index + 1;\n this._slidesWithIndexes = this.mapSlidesAndIndexes().slice(startIndex, endIndex);\n this.makeSlidesConsistent(this._slidesWithIndexes);\n this._slidesWithIndexes.forEach(slide => slide.item.active = true);\n }\n this.slideRangeChange.emit(this.getVisibleIndexes());\n }\n selectRangeByNestedIndex(index) {\n if (!this._chunkedSlides) {\n return;\n }\n const selectedRange = this._chunkedSlides.map((slidesList, i) => {\n return {\n index: i,\n list: slidesList\n };\n }).find(slidesList => {\n return slidesList.list.find(slide => slide.index === index) !== undefined;\n });\n if (!selectedRange) {\n return;\n }\n this._currentVisibleSlidesIndex = selectedRange.index;\n this._chunkedSlides[selectedRange.index].forEach(slide => {\n slide.item.active = true;\n });\n }\n isIndexOnTheEdges(index) {\n return index + 1 - this.itemsPerSlide <= 0 || index + this.itemsPerSlide <= this._slides.length;\n }\n isIndexInRange(index) {\n if (this.singleSlideOffset && this._slidesWithIndexes) {\n const visibleIndexes = this._slidesWithIndexes.map(slide => slide.index);\n return visibleIndexes.indexOf(index) >= 0;\n }\n return index <= this.getLastVisibleIndex() && index >= this.getFirstVisibleIndex();\n }\n hideSlides() {\n this.slides.forEach(slide => slide.active = false);\n }\n isVisibleSlideListLast() {\n if (!this._chunkedSlides) {\n return false;\n }\n return this._currentVisibleSlidesIndex === this._chunkedSlides.length - 1;\n }\n isVisibleSlideListFirst() {\n return this._currentVisibleSlidesIndex === 0;\n }\n moveSliderByOneItem(direction) {\n let firstVisibleIndex;\n let lastVisibleIndex;\n let indexToHide;\n let indexToShow;\n if (this.noWrap) {\n firstVisibleIndex = this.getFirstVisibleIndex();\n lastVisibleIndex = this.getLastVisibleIndex();\n indexToHide = direction === Direction.NEXT ? firstVisibleIndex : lastVisibleIndex;\n indexToShow = direction !== Direction.NEXT ? firstVisibleIndex - 1 : !this.isLast(lastVisibleIndex) ? lastVisibleIndex + 1 : 0;\n const slideToHide = this._slides.get(indexToHide);\n if (slideToHide) {\n slideToHide.active = false;\n }\n const slideToShow = this._slides.get(indexToShow);\n if (slideToShow) {\n slideToShow.active = true;\n }\n const slidesToReorder = this.mapSlidesAndIndexes().filter(slide => slide.item.active);\n this.makeSlidesConsistent(slidesToReorder);\n if (this.singleSlideOffset) {\n this._slidesWithIndexes = slidesToReorder;\n }\n this.slideRangeChange.emit(this.getVisibleIndexes());\n return;\n }\n if (!this._slidesWithIndexes || !this._slidesWithIndexes[0]) {\n return;\n }\n let index;\n firstVisibleIndex = this._slidesWithIndexes[0].index;\n lastVisibleIndex = this._slidesWithIndexes[this._slidesWithIndexes.length - 1].index;\n if (direction === Direction.NEXT) {\n this._slidesWithIndexes.shift();\n index = this.isLast(lastVisibleIndex) ? 0 : lastVisibleIndex + 1;\n const item = this._slides.get(index);\n if (item) {\n this._slidesWithIndexes.push({\n index,\n item\n });\n }\n } else {\n this._slidesWithIndexes.pop();\n index = this.isFirst(firstVisibleIndex) ? this._slides.length - 1 : firstVisibleIndex - 1;\n const item = this._slides.get(index);\n if (item) {\n this._slidesWithIndexes = [{\n index,\n item\n }, ...this._slidesWithIndexes];\n }\n }\n this.hideSlides();\n this._slidesWithIndexes.forEach(slide => slide.item.active = true);\n this.makeSlidesConsistent(this._slidesWithIndexes);\n this.slideRangeChange.emit(this._slidesWithIndexes.map(slide => slide.index));\n }\n moveMultilist(direction) {\n if (this.singleSlideOffset) {\n this.moveSliderByOneItem(direction);\n } else {\n this.hideSlides();\n if (this.noWrap) {\n this._currentVisibleSlidesIndex = direction === Direction.NEXT ? this._currentVisibleSlidesIndex + 1 : this._currentVisibleSlidesIndex - 1;\n } else if (direction === Direction.NEXT) {\n this._currentVisibleSlidesIndex = this.isVisibleSlideListLast() ? 0 : this._currentVisibleSlidesIndex + 1;\n } else {\n if (this.isVisibleSlideListFirst()) {\n this._currentVisibleSlidesIndex = this._chunkedSlides ? this._chunkedSlides.length - 1 : 0;\n } else {\n this._currentVisibleSlidesIndex = this._currentVisibleSlidesIndex - 1;\n }\n }\n if (this._chunkedSlides) {\n this._chunkedSlides[this._currentVisibleSlidesIndex].forEach(slide => slide.item.active = true);\n }\n this.slideRangeChange.emit(this.getVisibleIndexes());\n }\n }\n getVisibleIndexes() {\n if (!this.singleSlideOffset && this._chunkedSlides) {\n return this._chunkedSlides[this._currentVisibleSlidesIndex].map(slide => slide.index);\n }\n if (this._slidesWithIndexes) {\n return this._slidesWithIndexes.map(slide => slide.index);\n }\n }\n /**\n * Sets a slide, which specified through index, as active\n * @param index\n */\n _select(index) {\n if (isNaN(index)) {\n this.pause();\n return;\n }\n if (!this.multilist && typeof this._currentActiveSlide !== 'undefined') {\n const currentSlide = this._slides.get(this._currentActiveSlide);\n if (typeof currentSlide !== 'undefined') {\n currentSlide.active = false;\n }\n }\n const nextSlide = this._slides.get(index);\n if (typeof nextSlide !== 'undefined') {\n this._currentActiveSlide = index;\n nextSlide.active = true;\n this.activeSlide = index;\n this.activeSlideChange.emit(index);\n }\n }\n /**\n * Starts loop of auto changing of slides\n */\n restartTimer() {\n this.resetTimer();\n const interval = +this.interval;\n if (!isNaN(interval) && interval > 0 && isPlatformBrowser(this.platformId)) {\n this.currentInterval = this.ngZone.runOutsideAngular(() => {\n return window.setInterval(() => {\n const nInterval = +this.interval;\n this.ngZone.run(() => {\n if (this.isPlaying && !isNaN(this.interval) && nInterval > 0 && this.slides.length) {\n this.nextSlideFromInterval();\n } else {\n this.pause();\n }\n });\n }, interval);\n });\n }\n }\n get multilist() {\n return this.itemsPerSlide > 1;\n }\n /**\n * Stops loop of auto changing of slides\n */\n resetTimer() {\n if (this.currentInterval) {\n clearInterval(this.currentInterval);\n this.currentInterval = void 0;\n }\n }\n checkDisabledClass(buttonType) {\n if (buttonType === 'prev') {\n return this.activeSlide === 0 && this.noWrap && !this.multilist || this.isFirstSlideVisible && this.noWrap && this.multilist;\n }\n return this.isLast(this.activeSlide) && this.noWrap && !this.multilist || this.isLastSlideVisible && this.noWrap && this.multilist;\n }\n static {\n this.ɵfac = function CarouselComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CarouselComponent)(i0.ɵɵdirectiveInject(CarouselConfig), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CarouselComponent,\n selectors: [[\"carousel\"]],\n inputs: {\n noWrap: \"noWrap\",\n noPause: \"noPause\",\n showIndicators: \"showIndicators\",\n pauseOnFocus: \"pauseOnFocus\",\n indicatorsByChunk: \"indicatorsByChunk\",\n itemsPerSlide: \"itemsPerSlide\",\n singleSlideOffset: \"singleSlideOffset\",\n isAnimated: \"isAnimated\",\n activeSlide: \"activeSlide\",\n startFromIndex: \"startFromIndex\",\n interval: \"interval\"\n },\n outputs: {\n activeSlideChange: \"activeSlideChange\",\n slideRangeChange: \"slideRangeChange\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 7,\n vars: 8,\n consts: [[\"tabindex\", \"0\", 1, \"carousel\", \"slide\", 3, \"mouseenter\", \"mouseleave\", \"mouseup\", \"keydown\", \"focusin\", \"focusout\", \"id\"], [4, \"ngIf\"], [1, \"carousel-inner\", 3, \"ngStyle\"], [\"class\", \"left carousel-control carousel-control-prev\", \"href\", \"javascript:void(0);\", \"tabindex\", \"0\", \"role\", \"button\", 3, \"disabled\", \"click\", 4, \"ngIf\"], [\"class\", \"right carousel-control carousel-control-next\", \"href\", \"javascript:void(0);\", \"tabindex\", \"0\", \"role\", \"button\", 3, \"disabled\", \"click\", 4, \"ngIf\"], [1, \"carousel-indicators\"], [3, \"active\", \"click\", 4, \"ngFor\", \"ngForOf\"], [3, \"click\"], [\"type\", \"button\", \"aria-current\", \"true\", 3, \"active\", \"click\", 4, \"ngFor\", \"ngForOf\"], [\"type\", \"button\", \"aria-current\", \"true\", 3, \"click\"], [\"href\", \"javascript:void(0);\", \"tabindex\", \"0\", \"role\", \"button\", 1, \"left\", \"carousel-control\", \"carousel-control-prev\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"icon-prev\", \"carousel-control-prev-icon\"], [1, \"sr-only\", \"visually-hidden\"], [\"href\", \"javascript:void(0);\", \"tabindex\", \"0\", \"role\", \"button\", 1, \"right\", \"carousel-control\", \"carousel-control-next\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"icon-next\", \"carousel-control-next-icon\"]],\n template: function CarouselComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"mouseenter\", function CarouselComponent_Template_div_mouseenter_0_listener() {\n return ctx.pause();\n })(\"mouseleave\", function CarouselComponent_Template_div_mouseleave_0_listener() {\n return ctx.onMouseLeave();\n })(\"mouseup\", function CarouselComponent_Template_div_mouseup_0_listener() {\n return ctx.onMouseUp();\n })(\"keydown\", function CarouselComponent_Template_div_keydown_0_listener($event) {\n return ctx.keydownPress($event);\n })(\"focusin\", function CarouselComponent_Template_div_focusin_0_listener() {\n return ctx.pauseFocusIn();\n })(\"focusout\", function CarouselComponent_Template_div_focusout_0_listener() {\n return ctx.pauseFocusOut();\n });\n i0.ɵɵtemplate(1, CarouselComponent_ng_container_1_Template, 3, 1, \"ng-container\", 1)(2, CarouselComponent_ng_container_2_Template, 3, 1, \"ng-container\", 1);\n i0.ɵɵelementStart(3, \"div\", 2);\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, CarouselComponent_a_5_Template, 4, 3, \"a\", 3)(6, CarouselComponent_a_6_Template, 4, 3, \"a\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"id\", \"carousel\" + ctx.currentId);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx._bsVer.isBs5 && ctx.showIndicators && ctx.slides.length > 1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx._bsVer.isBs5 && ctx.showIndicators && ctx.slides.length > 1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(6, _c1, ctx.multilist ? \"flex\" : \"block\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.slides.length > 1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.slides.length > 1);\n }\n },\n dependencies: [NgIf, NgFor, NgStyle],\n encapsulation: 2\n });\n }\n }\n return CarouselComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SlideComponent = /*#__PURE__*/(() => {\n class SlideComponent {\n constructor(carousel) {\n /** Is current slide active */\n this.active = false;\n this.itemWidth = '100%';\n this.order = 0;\n this.isAnimated = false;\n /** Wraps element by appropriate CSS classes */\n this.addClass = true;\n this.multilist = false;\n this.carousel = carousel;\n }\n /** Fires changes in container collection after adding a new slide instance */\n ngOnInit() {\n this.carousel.addSlide(this);\n this.itemWidth = `${100 / this.carousel.itemsPerSlide}%`;\n this.multilist = this.carousel?.itemsPerSlide > 1;\n }\n /** Fires changes in container collection after removing of this slide instance */\n ngOnDestroy() {\n this.carousel.removeSlide(this);\n }\n static {\n this.ɵfac = function SlideComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SlideComponent)(i0.ɵɵdirectiveInject(CarouselComponent));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SlideComponent,\n selectors: [[\"slide\"]],\n hostVars: 15,\n hostBindings: function SlideComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-hidden\", !ctx.active);\n i0.ɵɵstyleProp(\"width\", ctx.itemWidth)(\"order\", ctx.order);\n i0.ɵɵclassProp(\"multilist-margin\", ctx.multilist)(\"active\", ctx.active)(\"carousel-animation\", ctx.isAnimated)(\"item\", ctx.addClass)(\"carousel-item\", ctx.addClass);\n }\n },\n inputs: {\n active: \"active\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 2,\n vars: 2,\n consts: [[1, \"item\"]],\n template: function SlideComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"active\", ctx.active);\n }\n },\n styles: [\".carousel-animation[_nghost-%COMP%]{transition:opacity .6s ease,visibility .6s ease;float:left}.carousel-animation.active[_nghost-%COMP%]{opacity:1;visibility:visible}.carousel-animation[_nghost-%COMP%]:not(.active){display:block;position:absolute;opacity:0;visibility:hidden}.multilist-margin[_nghost-%COMP%]{margin-right:auto}.carousel-item[_nghost-%COMP%]{perspective:1000px}\"]\n });\n }\n }\n return SlideComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet CarouselModule = /*#__PURE__*/(() => {\n class CarouselModule {\n // @deprecated method not required anymore, will be deleted in v19.0.0\n static forRoot() {\n return {\n ngModule: CarouselModule,\n providers: []\n };\n }\n static {\n this.ɵfac = function CarouselModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CarouselModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CarouselModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return CarouselModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CarouselComponent, CarouselConfig, CarouselModule, SlideComponent };\n","import * as i0 from '@angular/core';\nimport { Injectable, Component, ChangeDetectionStrategy, Input, Directive, Output, NgModule } from '@angular/core';\nimport * as i2 from 'ngx-bootstrap/component-loader';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { getBsVer, parseTriggers } from 'ngx-bootstrap/utils';\nimport * as i3 from 'ngx-bootstrap/positioning';\nimport { PlacementForBs5, checkMargins, PositioningService } from 'ngx-bootstrap/positioning';\nimport { NgIf, CommonModule } from '@angular/common';\nimport { timer } from 'rxjs';\n\n/**\n * Configuration service for the Popover directive.\n * You can inject this service, typically in your root component, and customize\n * the values of its properties in order to provide default values for all the\n * popovers used in the application.\n */\nconst _c0 = [\"*\"];\nfunction PopoverContainerComponent_h3_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"h3\", 3);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0.title);\n }\n}\nlet PopoverConfig = /*#__PURE__*/(() => {\n class PopoverConfig {\n constructor() {\n /** sets disable adaptive position */\n this.adaptivePosition = true;\n /**\n * Placement of a popover. Accepts: \"top\", \"bottom\", \"left\", \"right\", \"auto\"\n */\n this.placement = 'top';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n this.triggers = 'click';\n this.outsideClick = false;\n /** delay before showing the tooltip */\n this.delay = 0;\n }\n static {\n this.ɵfac = function PopoverConfig_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PopoverConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PopoverConfig,\n factory: PopoverConfig.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return PopoverConfig;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PopoverContainerComponent = /*#__PURE__*/(() => {\n class PopoverContainerComponent {\n set placement(value) {\n if (!this._bsVersions.isBs5) {\n this._placement = value;\n } else {\n this._placement = PlacementForBs5[value];\n }\n }\n get _bsVersions() {\n return getBsVer();\n }\n constructor(config) {\n this._placement = 'top';\n Object.assign(this, config);\n }\n checkMarginNecessity() {\n return checkMargins(this._placement);\n }\n static {\n this.ɵfac = function PopoverContainerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PopoverContainerComponent)(i0.ɵɵdirectiveInject(PopoverConfig));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PopoverContainerComponent,\n selectors: [[\"popover-container\"]],\n hostAttrs: [\"role\", \"tooltip\", 2, \"display\", \"block\", \"position\", \"absolute\"],\n hostVars: 7,\n hostBindings: function PopoverContainerComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.popoverId);\n i0.ɵɵclassMap(\"popover in popover-\" + ctx._placement + \" \" + \"bs-popover-\" + ctx._placement + \" \" + ctx._placement + \" \" + ctx.containerClass + \" \" + ctx.checkMarginNecessity());\n i0.ɵɵclassProp(\"show\", !ctx._bsVersions.isBs3)(\"bs3\", ctx._bsVersions.isBs3);\n }\n },\n inputs: {\n placement: \"placement\",\n title: \"title\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 4,\n vars: 1,\n consts: [[1, \"popover-arrow\", \"arrow\"], [\"class\", \"popover-title popover-header\", 4, \"ngIf\"], [1, \"popover-content\", \"popover-body\"], [1, \"popover-title\", \"popover-header\"]],\n template: function PopoverContainerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"div\", 0);\n i0.ɵɵtemplate(1, PopoverContainerComponent_h3_1_Template, 2, 1, \"h3\", 1);\n i0.ɵɵelementStart(2, \"div\", 2);\n i0.ɵɵprojection(3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.title);\n }\n },\n dependencies: [NgIf],\n styles: [\".popover.bottom[_nghost-%COMP%] > .arrow[_ngcontent-%COMP%]{margin-left:-4px}[_nghost-%COMP%] .popover-arrow[_ngcontent-%COMP%]{position:absolute}\"],\n changeDetection: 0\n });\n }\n }\n return PopoverContainerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet id = 0;\n/**\n * A lightweight, extensible directive for fancy popover creation.\n */\nlet PopoverDirective = /*#__PURE__*/(() => {\n class PopoverDirective {\n /**\n * Returns whether or not the popover is currently being shown\n */\n get isOpen() {\n return this._popover.isShown;\n }\n set isOpen(value) {\n if (value) {\n this.show();\n } else {\n this.hide();\n }\n }\n constructor(_config, _elementRef, _renderer, _viewContainerRef, cis, _positionService) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._positionService = _positionService;\n /** unique id popover - use for aria-describedby */\n this.popoverId = id++;\n /** sets disable adaptive position */\n this.adaptivePosition = true;\n /**\n * Placement of a popover. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n this.placement = 'top';\n /**\n * Close popover on outside click\n */\n this.outsideClick = false;\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n this.triggers = 'click';\n /**\n * Css class for popover container\n */\n this.containerClass = '';\n /**\n * Delay before showing the tooltip\n */\n this.delay = 0;\n this._isInited = false;\n this._popover = cis.createLoader(_elementRef, _viewContainerRef, _renderer).provide({\n provide: PopoverConfig,\n useValue: _config\n });\n Object.assign(this, _config);\n this.onShown = this._popover.onShown;\n this.onHidden = this._popover.onHidden;\n // fix: no focus on button on Mac OS #1795\n if (typeof window !== 'undefined') {\n _elementRef.nativeElement.addEventListener('click', function () {\n try {\n _elementRef.nativeElement.focus();\n } catch (err) {\n return;\n }\n });\n }\n }\n /**\n * Set attribute aria-describedBy for element directive and\n * set id for the popover\n */\n setAriaDescribedBy() {\n this._ariaDescribedby = this.isOpen ? `ngx-popover-${this.popoverId}` : void 0;\n if (this._ariaDescribedby) {\n if (this._popover.instance) {\n this._popover.instance.popoverId = this._ariaDescribedby;\n }\n this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-describedby', this._ariaDescribedby);\n } else {\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-describedby');\n }\n }\n /**\n * Opens an element’s popover. This is considered a “manual” triggering of\n * the popover.\n */\n show() {\n if (this._popover.isShown || !this.popover || this._delayTimeoutId) {\n return;\n }\n this._positionService.setOptions({\n modifiers: {\n flip: {\n enabled: this.adaptivePosition\n },\n preventOverflow: {\n enabled: this.adaptivePosition,\n boundariesElement: this.boundariesElement || 'scrollParent'\n }\n }\n });\n const showPopover = () => {\n if (this._delayTimeoutId) {\n this._delayTimeoutId = undefined;\n }\n this._popover.attach(PopoverContainerComponent).to(this.container).position({\n attachment: this.placement\n }).show({\n content: this.popover,\n context: this.popoverContext,\n placement: this.placement,\n title: this.popoverTitle,\n containerClass: this.containerClass\n });\n if (!this.adaptivePosition && this._popover._componentRef) {\n this._positionService.calcPosition();\n this._positionService.deletePositionElement(this._popover._componentRef.location);\n }\n this.isOpen = true;\n this.setAriaDescribedBy();\n };\n const cancelDelayedTooltipShowing = () => {\n if (this._popoverCancelShowFn) {\n this._popoverCancelShowFn();\n }\n };\n if (this.delay) {\n const _timer = timer(this.delay).subscribe(() => {\n showPopover();\n cancelDelayedTooltipShowing();\n });\n if (this.triggers) {\n parseTriggers(this.triggers).forEach(trigger => {\n if (!trigger.close) {\n return;\n }\n this._popoverCancelShowFn = this._renderer.listen(this._elementRef.nativeElement, trigger.close, () => {\n _timer.unsubscribe();\n cancelDelayedTooltipShowing();\n });\n });\n }\n } else {\n showPopover();\n }\n }\n /**\n * Closes an element’s popover. This is considered a “manual” triggering of\n * the popover.\n */\n hide() {\n if (this._delayTimeoutId) {\n clearTimeout(this._delayTimeoutId);\n this._delayTimeoutId = undefined;\n }\n if (this.isOpen) {\n this._popover.hide();\n this.setAriaDescribedBy();\n this.isOpen = false;\n }\n }\n /**\n * Toggles an element’s popover. This is considered a “manual” triggering of\n * the popover.\n */\n toggle() {\n if (this.isOpen) {\n return this.hide();\n }\n this.show();\n }\n ngOnInit() {\n // fix: seems there are an issue with `routerLinkActive`\n // which result in duplicated call ngOnInit without call to ngOnDestroy\n // read more: https://github.com/valor-software/ngx-bootstrap/issues/1885\n if (this._isInited) {\n return;\n }\n this._isInited = true;\n this._popover.listen({\n triggers: this.triggers,\n outsideClick: this.outsideClick,\n show: () => this.show(),\n hide: () => this.hide()\n });\n }\n ngOnDestroy() {\n this._popover.dispose();\n }\n static {\n this.ɵfac = function PopoverDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PopoverDirective)(i0.ɵɵdirectiveInject(PopoverConfig), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2.ComponentLoaderFactory), i0.ɵɵdirectiveInject(i3.PositioningService));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: PopoverDirective,\n selectors: [[\"\", \"popover\", \"\"]],\n inputs: {\n adaptivePosition: \"adaptivePosition\",\n boundariesElement: \"boundariesElement\",\n popover: \"popover\",\n popoverContext: \"popoverContext\",\n popoverTitle: \"popoverTitle\",\n placement: \"placement\",\n outsideClick: \"outsideClick\",\n triggers: \"triggers\",\n container: \"container\",\n containerClass: \"containerClass\",\n isOpen: \"isOpen\",\n delay: \"delay\"\n },\n outputs: {\n onShown: \"onShown\",\n onHidden: \"onHidden\"\n },\n exportAs: [\"bs-popover\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([PositioningService, ComponentLoaderFactory])]\n });\n }\n }\n return PopoverDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PopoverModule = /*#__PURE__*/(() => {\n class PopoverModule {\n // @deprecated method not required anymore, will be deleted in v19.0.0\n static forRoot() {\n return {\n ngModule: PopoverModule,\n providers: []\n };\n }\n static {\n this.ɵfac = function PopoverModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PopoverModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: PopoverModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n }\n return PopoverModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { PopoverConfig, PopoverContainerComponent, PopoverDirective, PopoverModule };\n","import * as i0 from '@angular/core';\nimport { EventEmitter, Directive, Output, HostListener, Input, Injectable, Pipe, TemplateRef, Component, ContentChild, ViewEncapsulation, PLATFORM_ID, ElementRef, Inject, Optional, ViewChild, NgModule, forwardRef } from '@angular/core';\nimport * as i3 from '@angular/forms';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule } from '@angular/forms';\nimport * as i2 from '@angular/common';\nimport { isPlatformServer, CommonModule } from '@angular/common';\nimport { Subject } from 'rxjs';\nimport * as tween from '@tweenjs/tween.js';\nimport { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';\nfunction CIcon__svg_svg_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 4)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 5);\n i0.ɵɵelementEnd()();\n }\n}\nfunction CIcon__svg_svg_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 6)(1, \"g\")(2, \"g\", 7)(3, \"g\");\n i0.ɵɵelement(4, \"path\", 8);\n i0.ɵɵelementEnd()()()();\n }\n}\nfunction CIcon__svg_svg_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 6)(1, \"g\")(2, \"g\", 9)(3, \"g\");\n i0.ɵɵelement(4, \"path\", 10);\n i0.ɵɵelementEnd()()()();\n }\n}\nfunction CIcon__svg_svg_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 11)(1, \"g\")(2, \"g\")(3, \"g\", 12)(4, \"g\");\n i0.ɵɵelement(5, \"path\", 13);\n i0.ɵɵelementEnd()()()()();\n }\n}\nfunction CIcon__svg_svg_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 14)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 15);\n i0.ɵɵelementEnd()();\n }\n}\nconst _c0 = [\"header\"];\nconst _c1 = [\"container\"];\nconst _c2 = [\"content\"];\nconst _c3 = [\"invisiblePadding\"];\nconst _c4 = [\"*\"];\nconst _c5 = [\"searchInput\"];\nconst _c6 = [\"selectedList\"];\nconst _c7 = [\"dropdownList\"];\nconst _c8 = [\"cuppaDropdown\"];\nconst _c9 = a0 => ({\n \"disabled\": a0\n});\nconst _c10 = a0 => ({\n \"tagToBody\": a0\n});\nconst _c11 = (a0, a1) => ({\n \"arrow-up\": a0,\n \"arrow-down\": a1\n});\nconst _c12 = a0 => ({\n \"single-select-mode\": a0\n});\nconst _c13 = a0 => ({\n \"selected-item\": a0\n});\nconst _c14 = a0 => ({\n \"height\": a0\n});\nconst _c15 = (a0, a1) => ({\n \"grp-title\": a0,\n \"grp-item\": a1\n});\nconst _c16 = (a0, a1, a2) => ({\n \"grp-title\": a0,\n \"grp-item\": a1,\n \"selected-item\": a2\n});\nconst _c17 = (a0, a1, a2) => ({\n \"selected-item\": a0,\n \"grp-title\": a1,\n \"grp-item\": a2\n});\nfunction AngularMultiSelect_span_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.settings.text);\n }\n}\nfunction AngularMultiSelect_span_6_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r3 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", item_r3[ctx_r1.settings.labelKey], \" \");\n }\n}\nfunction AngularMultiSelect_span_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtemplate(1, AngularMultiSelect_span_6_span_1_Template, 2, 1, \"span\", 27);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.selectedItems)(\"ngForTrackBy\", ctx_r1.trackByFn.bind(ctx_r1));\n }\n}\nfunction AngularMultiSelect_span_7_div_1_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 34);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r5 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(item_r5[ctx_r1.settings.labelKey]);\n }\n}\nfunction AngularMultiSelect_span_7_div_1_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 34);\n i0.ɵɵelement(1, \"c-templateRenderer\", 35);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r5 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"data\", ctx_r1.badgeTempl)(\"item\", item_r5);\n }\n}\nfunction AngularMultiSelect_span_7_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 30);\n i0.ɵɵtemplate(1, AngularMultiSelect_span_7_div_1_span_1_Template, 2, 1, \"span\", 31)(2, AngularMultiSelect_span_7_div_1_span_2_Template, 2, 2, \"span\", 31);\n i0.ɵɵelementStart(3, \"span\", 32);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_span_7_div_1_Template_span_click_3_listener($event) {\n const ctx_r5 = i0.ɵɵrestoreView(_r4);\n const item_r5 = ctx_r5.$implicit;\n const k_r7 = ctx_r5.index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n ctx_r1.onItemClick(item_r5, k_r7, $event);\n return i0.ɵɵresetView($event.stopPropagation());\n });\n i0.ɵɵelement(4, \"c-icon\", 33);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.badgeTempl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.badgeTempl);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"name\", \"remove\");\n }\n}\nfunction AngularMultiSelect_span_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 28);\n i0.ɵɵtemplate(1, AngularMultiSelect_span_7_div_1_Template, 5, 3, \"div\", 29);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.selectedItems)(\"ngForTrackBy\", ctx_r1.trackByFn.bind(ctx_r1));\n }\n}\nfunction AngularMultiSelect_div_8_div_1_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 34);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r9 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(item_r9[ctx_r1.settings.labelKey]);\n }\n}\nfunction AngularMultiSelect_div_8_div_1_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 34);\n i0.ɵɵelement(1, \"c-templateRenderer\", 35);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r9 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"data\", ctx_r1.badgeTempl)(\"item\", item_r9);\n }\n}\nfunction AngularMultiSelect_div_8_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 37);\n i0.ɵɵtemplate(1, AngularMultiSelect_div_8_div_1_span_1_Template, 2, 1, \"span\", 31)(2, AngularMultiSelect_div_8_div_1_span_2_Template, 2, 2, \"span\", 31);\n i0.ɵɵelementStart(3, \"span\", 32);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_8_div_1_Template_span_click_3_listener($event) {\n const ctx_r9 = i0.ɵɵrestoreView(_r8);\n const item_r9 = ctx_r9.$implicit;\n const k_r11 = ctx_r9.index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n ctx_r1.onItemClick(item_r9, k_r11, $event);\n return i0.ɵɵresetView($event.stopPropagation());\n });\n i0.ɵɵelement(4, \"c-icon\", 33);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const k_r11 = ctx.index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"hidden\", k_r11 > ctx_r1.settings.badgeShowLimit - 1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.badgeTempl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.badgeTempl);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"name\", \"remove\");\n }\n}\nfunction AngularMultiSelect_div_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 28);\n i0.ɵɵtemplate(1, AngularMultiSelect_div_8_div_1_Template, 5, 4, \"div\", 36);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.selectedItems)(\"ngForTrackBy\", ctx_r1.trackByFn.bind(ctx_r1));\n }\n}\nfunction AngularMultiSelect_span_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 38);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"+\", (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length) - ctx_r1.settings.badgeShowLimit, \"\");\n }\n}\nfunction AngularMultiSelect_span_10_Template(rf, ctx) {\n if (rf & 1) {\n const _r12 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 39);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_span_10_Template_span_click_0_listener($event) {\n i0.ɵɵrestoreView(_r12);\n const ctx_r1 = i0.ɵɵnextContext();\n ctx_r1.clearSelection($event);\n return i0.ɵɵresetView($event.stopPropagation());\n });\n i0.ɵɵelement(1, \"c-icon\", 33);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"name\", \"remove\");\n }\n}\nfunction AngularMultiSelect_span_11_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 40);\n i0.ɵɵelement(1, \"c-icon\", 33);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"name\", \"angle-down\");\n }\n}\nfunction AngularMultiSelect_span_12_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 41);\n i0.ɵɵelement(1, \"c-icon\", 33);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"name\", \"angle-up\");\n }\n}\nfunction AngularMultiSelect_div_18_input_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r13 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"input\", 46);\n i0.ɵɵlistener(\"change\", function AngularMultiSelect_div_18_input_1_Template_input_change_0_listener($event) {\n i0.ɵɵrestoreView(_r13);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.toggleSelectAll($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"checked\", ctx_r1.isSelectAll)(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length))(\"id\", ctx_r1.id);\n }\n}\nfunction AngularMultiSelect_div_18_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 42);\n i0.ɵɵtemplate(1, AngularMultiSelect_div_18_input_1_Template, 1, 3, \"input\", 43);\n i0.ɵɵelementStart(2, \"label\", 44)(3, \"span\", 45);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"span\", 45);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.showCheckbox);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"for\", ctx_r1.id);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"hidden\", ctx_r1.isSelectAll);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.settings.selectAllText);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"hidden\", !ctx_r1.isSelectAll);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.settings.unSelectAllText);\n }\n}\nfunction AngularMultiSelect_img_19_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"img\", 47);\n }\n}\nfunction AngularMultiSelect_div_20_span_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r14 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 53);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_20_span_3_Template_span_click_0_listener() {\n i0.ɵɵrestoreView(_r14);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.clearSearch());\n });\n i0.ɵɵelement(1, \"c-icon\", 33);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"hidden\", ctx_r1.filter == undefined || (ctx_r1.filter == null ? null : ctx_r1.filter.length) == 0);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"name\", \"clear\");\n }\n}\nfunction AngularMultiSelect_div_20_span_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r15 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 53);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_20_span_4_Template_span_click_0_listener() {\n i0.ɵɵrestoreView(_r15);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.resetInfiniteSearch());\n });\n i0.ɵɵelement(1, \"c-icon\", 33);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"hidden\", ctx_r1.filter == undefined || (ctx_r1.filter == null ? null : ctx_r1.filter.length) == 0);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"name\", \"clear\");\n }\n}\nfunction AngularMultiSelect_div_20_input_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r16 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"input\", 54, 3);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function AngularMultiSelect_div_20_input_5_Template_input_ngModelChange_0_listener($event) {\n i0.ɵɵrestoreView(_r16);\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵtwoWayBindingSet(ctx_r1.filter, $event) || (ctx_r1.filter = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵlistener(\"keyup\", function AngularMultiSelect_div_20_input_5_Template_input_keyup_0_listener() {\n i0.ɵɵrestoreView(_r16);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.filterGroupedList());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"placeholder\", ctx_r1.settings.searchPlaceholderText);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r1.filter);\n }\n}\nfunction AngularMultiSelect_div_20_input_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r17 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"input\", 54, 3);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function AngularMultiSelect_div_20_input_6_Template_input_ngModelChange_0_listener($event) {\n i0.ɵɵrestoreView(_r17);\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵtwoWayBindingSet(ctx_r1.filter, $event) || (ctx_r1.filter = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵlistener(\"keyup\", function AngularMultiSelect_div_20_input_6_Template_input_keyup_0_listener($event) {\n i0.ɵɵrestoreView(_r17);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.filteritems($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"placeholder\", ctx_r1.settings.searchPlaceholderText);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r1.filter);\n }\n}\nfunction AngularMultiSelect_div_20_input_7_Template(rf, ctx) {\n if (rf & 1) {\n const _r18 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"input\", 54, 3);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function AngularMultiSelect_div_20_input_7_Template_input_ngModelChange_0_listener($event) {\n i0.ɵɵrestoreView(_r18);\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵtwoWayBindingSet(ctx_r1.filter, $event) || (ctx_r1.filter = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵlistener(\"keyup\", function AngularMultiSelect_div_20_input_7_Template_input_keyup_0_listener($event) {\n i0.ɵɵrestoreView(_r18);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onKeyUp($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"placeholder\", ctx_r1.settings.searchPlaceholderText);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r1.filter);\n }\n}\nfunction AngularMultiSelect_div_20_c_templateRenderer_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"c-templateRenderer\", 35);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"data\", ctx_r1.searchTempl)(\"item\", ctx_r1.item);\n }\n}\nfunction AngularMultiSelect_div_20_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 48)(1, \"span\", 49);\n i0.ɵɵelement(2, \"c-icon\", 33);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, AngularMultiSelect_div_20_span_3_Template, 2, 2, \"span\", 50)(4, AngularMultiSelect_div_20_span_4_Template, 2, 2, \"span\", 50)(5, AngularMultiSelect_div_20_input_5_Template, 2, 2, \"input\", 51)(6, AngularMultiSelect_div_20_input_6_Template, 2, 2, \"input\", 51)(7, AngularMultiSelect_div_20_input_7_Template, 2, 2, \"input\", 51)(8, AngularMultiSelect_div_20_c_templateRenderer_8_Template, 1, 2, \"c-templateRenderer\", 52);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"name\", \"search\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.settings.lazyLoading);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.lazyLoading);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.groupBy && !ctx_r1.settings.lazyLoading && !ctx_r1.searchTempl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.settings.groupBy && !ctx_r1.settings.lazyLoading && !ctx_r1.searchTempl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.lazyLoading && !ctx_r1.searchTempl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.searchTempl);\n }\n}\nfunction AngularMultiSelect_div_21_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r19 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 57);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_21_div_1_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r19);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.toggleFilterSelectAll());\n });\n i0.ɵɵelement(1, \"input\", 58);\n i0.ɵɵelementStart(2, \"label\")(3, \"span\", 45);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"span\", 45);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", ctx_r1.isFilterSelectAll)(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"hidden\", ctx_r1.isFilterSelectAll);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.settings.filterSelectAllText);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"hidden\", !ctx_r1.isFilterSelectAll);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.settings.filterUnSelectAllText);\n }\n}\nfunction AngularMultiSelect_div_21_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r20 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 57);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_21_div_2_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r20);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.toggleFilterSelectAll());\n });\n i0.ɵɵelement(1, \"input\", 59);\n i0.ɵɵelementStart(2, \"label\")(3, \"span\", 45);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"span\", 45);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", ctx_r1.isFilterSelectAll && (ctx_r1.filter == null ? null : ctx_r1.filter.length) > 0)(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"hidden\", ctx_r1.isFilterSelectAll);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.settings.filterSelectAllText);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"hidden\", !ctx_r1.isFilterSelectAll);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.settings.filterUnSelectAllText);\n }\n}\nfunction AngularMultiSelect_div_21_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 55);\n i0.ɵɵtemplate(1, AngularMultiSelect_div_21_div_1_Template, 7, 6, \"div\", 56)(2, AngularMultiSelect_div_21_div_2_Template, 7, 6, \"div\", 56);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.settings.groupBy && (ctx_r1.filter == null ? null : ctx_r1.filter.length) > 0 && ctx_r1.filterLength > 0 && !ctx_r1.settings.singleSelection);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.groupBy && (ctx_r1.filter == null ? null : ctx_r1.filter.length) > 0 && (ctx_r1.groupedData == null ? null : ctx_r1.groupedData.length) > 0 && !ctx_r1.settings.singleSelection);\n }\n}\nfunction AngularMultiSelect_div_22_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r21 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 57);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_22_div_1_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r21);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.toggleInfiniteFilterSelectAll());\n });\n i0.ɵɵelement(1, \"input\", 59);\n i0.ɵɵelementStart(2, \"label\")(3, \"span\", 45);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"span\", 45);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", ctx_r1.isInfiniteFilterSelectAll)(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"hidden\", ctx_r1.isInfiniteFilterSelectAll);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.settings.filterSelectAllText);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"hidden\", !ctx_r1.isInfiniteFilterSelectAll);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.settings.filterUnSelectAllText);\n }\n}\nfunction AngularMultiSelect_div_22_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 55);\n i0.ɵɵtemplate(1, AngularMultiSelect_div_22_div_1_Template, 7, 6, \"div\", 56);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx_r1.filter == null ? null : ctx_r1.filter.length) > 0 && ctx_r1.infiniteFilterLength > 0);\n }\n}\nfunction AngularMultiSelect_div_23_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r22 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 61)(1, \"button\", 62);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_23_div_1_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r22);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.addFilterNewItem());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.settings.addNewButtonText);\n }\n}\nfunction AngularMultiSelect_div_23_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 55);\n i0.ɵɵtemplate(1, AngularMultiSelect_div_23_div_1_Template, 3, 1, \"div\", 60);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.addNewItemOnFilter);\n }\n}\nfunction AngularMultiSelect_div_24_li_2_input_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 59);\n }\n if (rf & 2) {\n const item_r25 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"checked\", ctx_r1.isSelected(item_r25))(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length) && !ctx_r1.isSelected(item_r25) || item_r25.disabled);\n }\n}\nfunction AngularMultiSelect_div_24_li_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r23 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 66);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_24_li_2_Template_li_click_0_listener($event) {\n const ctx_r23 = i0.ɵɵrestoreView(_r23);\n const item_r25 = ctx_r23.$implicit;\n const i_r26 = ctx_r23.index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onItemClick(item_r25, i_r26, $event));\n });\n i0.ɵɵtemplate(1, AngularMultiSelect_div_24_li_2_input_1_Template, 1, 2, \"input\", 67);\n i0.ɵɵelementStart(2, \"label\");\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const item_r25 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(3, _c13, ctx_r1.isSelected(item_r25) == true));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.showCheckbox);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(item_r25[ctx_r1.settings.labelKey]);\n }\n}\nfunction AngularMultiSelect_div_24_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 63)(1, \"ul\", 64);\n i0.ɵɵtemplate(2, AngularMultiSelect_div_24_li_2_Template, 4, 5, \"li\", 65);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"max-height\", ctx_r1.settings.maxHeight + \"px\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.data);\n }\n}\nfunction AngularMultiSelect_div_25_li_3_input_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 70);\n }\n if (rf & 2) {\n const item_r30 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"checked\", ctx_r1.isSelected(item_r30))(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length) && !ctx_r1.isSelected(item_r30) || item_r30.disabled);\n }\n}\nfunction AngularMultiSelect_div_25_li_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r28 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 66);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_25_li_3_Template_li_click_0_listener($event) {\n const ctx_r28 = i0.ɵɵrestoreView(_r28);\n const item_r30 = ctx_r28.$implicit;\n const i_r31 = ctx_r28.index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onItemClick(item_r30, i_r31, $event));\n });\n i0.ɵɵtemplate(1, AngularMultiSelect_div_25_li_3_input_1_Template, 1, 2, \"input\", 69);\n i0.ɵɵelementStart(2, \"label\");\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const item_r30 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(3, _c13, ctx_r1.isSelected(item_r30) == true));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.showCheckbox);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(item_r30[ctx_r1.settings.labelKey]);\n }\n}\nfunction AngularMultiSelect_div_25_Template(rf, ctx) {\n if (rf & 1) {\n const _r27 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 63)(1, \"ul\", 68, 4);\n i0.ɵɵlistener(\"vsStart\", function AngularMultiSelect_div_25_Template_ul_vsStart_1_listener($event) {\n i0.ɵɵrestoreView(_r27);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onScrollEnd($event));\n })(\"vsEnd\", function AngularMultiSelect_div_25_Template_ul_vsEnd_1_listener($event) {\n i0.ɵɵrestoreView(_r27);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onScrollEnd($event));\n });\n i0.ɵɵtemplate(3, AngularMultiSelect_div_25_li_3_Template, 4, 5, \"li\", 65);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const scroll_r32 = i0.ɵɵreference(2);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"max-height\", ctx_r1.settings.maxHeight + \"px\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"enableUnequalChildrenSizes\", ctx_r1.randomSize)(\"items\", ctx_r1.virtualdata)(\"ngStyle\", i0.ɵɵpureFunction1(6, _c14, ctx_r1.settings.maxHeight + \"px\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", scroll_r32.viewPortItems);\n }\n}\nfunction AngularMultiSelect_div_26_li_2_input_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 70);\n }\n if (rf & 2) {\n const item_r35 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"checked\", ctx_r1.isSelected(item_r35))(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length) && !ctx_r1.isSelected(item_r35) || item_r35.disabled);\n }\n}\nfunction AngularMultiSelect_div_26_li_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r33 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 66);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_26_li_2_Template_li_click_0_listener($event) {\n const ctx_r33 = i0.ɵɵrestoreView(_r33);\n const item_r35 = ctx_r33.$implicit;\n const i_r36 = ctx_r33.index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onItemClick(item_r35, i_r36, $event));\n });\n i0.ɵɵtemplate(1, AngularMultiSelect_div_26_li_2_input_1_Template, 1, 2, \"input\", 69);\n i0.ɵɵelement(2, \"label\")(3, \"c-templateRenderer\", 35);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r35 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(4, _c13, ctx_r1.isSelected(item_r35) == true));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.showCheckbox);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"data\", ctx_r1.itemTempl)(\"item\", item_r35);\n }\n}\nfunction AngularMultiSelect_div_26_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 63)(1, \"ul\", 64);\n i0.ɵɵtemplate(2, AngularMultiSelect_div_26_li_2_Template, 4, 6, \"li\", 65);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"max-height\", ctx_r1.settings.maxHeight + \"px\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.data);\n }\n}\nfunction AngularMultiSelect_div_27_li_3_input_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 70);\n }\n if (rf & 2) {\n const item_r40 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"checked\", ctx_r1.isSelected(item_r40))(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length) && !ctx_r1.isSelected(item_r40) || item_r40.disabled);\n }\n}\nfunction AngularMultiSelect_div_27_li_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r38 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 66);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_27_li_3_Template_li_click_0_listener($event) {\n const ctx_r38 = i0.ɵɵrestoreView(_r38);\n const item_r40 = ctx_r38.$implicit;\n const i_r41 = ctx_r38.index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onItemClick(item_r40, i_r41, $event));\n });\n i0.ɵɵtemplate(1, AngularMultiSelect_div_27_li_3_input_1_Template, 1, 2, \"input\", 69);\n i0.ɵɵelement(2, \"label\")(3, \"c-templateRenderer\", 35);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r40 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(4, _c13, ctx_r1.isSelected(item_r40) == true));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.showCheckbox);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"data\", ctx_r1.itemTempl)(\"item\", item_r40);\n }\n}\nfunction AngularMultiSelect_div_27_Template(rf, ctx) {\n if (rf & 1) {\n const _r37 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 63)(1, \"ul\", 68, 5);\n i0.ɵɵlistener(\"vsStart\", function AngularMultiSelect_div_27_Template_ul_vsStart_1_listener($event) {\n i0.ɵɵrestoreView(_r37);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onScrollEnd($event));\n })(\"vsEnd\", function AngularMultiSelect_div_27_Template_ul_vsEnd_1_listener($event) {\n i0.ɵɵrestoreView(_r37);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onScrollEnd($event));\n });\n i0.ɵɵtemplate(3, AngularMultiSelect_div_27_li_3_Template, 4, 6, \"li\", 65);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const scroll2_r42 = i0.ɵɵreference(2);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"max-height\", ctx_r1.settings.maxHeight + \"px\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"enableUnequalChildrenSizes\", ctx_r1.randomSize)(\"items\", ctx_r1.virtualdata)(\"ngStyle\", i0.ɵɵpureFunction1(6, _c14, ctx_r1.settings.maxHeight + \"px\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", scroll2_r42.viewPortItems);\n }\n}\nfunction AngularMultiSelect_div_28_span_3_li_1_input_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 70);\n }\n if (rf & 2) {\n const item_r46 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"checked\", ctx_r1.isSelected(item_r46))(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length) && !ctx_r1.isSelected(item_r46) || item_r46.disabled);\n }\n}\nfunction AngularMultiSelect_div_28_span_3_li_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r44 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 66);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_28_span_3_li_1_Template_li_click_0_listener($event) {\n i0.ɵɵrestoreView(_r44);\n const ctx_r44 = i0.ɵɵnextContext();\n const item_r46 = ctx_r44.$implicit;\n const i_r47 = ctx_r44.index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onItemClick(item_r46, i_r47, $event));\n });\n i0.ɵɵtemplate(1, AngularMultiSelect_div_28_span_3_li_1_input_1_Template, 1, 2, \"input\", 69);\n i0.ɵɵelement(2, \"label\")(3, \"c-templateRenderer\", 35);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r46 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(4, _c15, item_r46.grpTitle, !item_r46.grpTitle && !ctx_r1.settings.singleSelection));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.showCheckbox && !ctx_r1.settings.singleSelection);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"data\", ctx_r1.itemTempl)(\"item\", item_r46);\n }\n}\nfunction AngularMultiSelect_div_28_span_3_li_2_input_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 70);\n }\n if (rf & 2) {\n const item_r46 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"checked\", ctx_r1.isSelected(item_r46))(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length) && !ctx_r1.isSelected(item_r46) || item_r46.disabled);\n }\n}\nfunction AngularMultiSelect_div_28_span_3_li_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"li\", 74);\n i0.ɵɵtemplate(1, AngularMultiSelect_div_28_span_3_li_2_input_1_Template, 1, 2, \"input\", 69);\n i0.ɵɵelement(2, \"label\")(3, \"c-templateRenderer\", 35);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r46 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(4, _c15, item_r46.grpTitle, !item_r46.grpTitle && !ctx_r1.settings.singleSelection));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.showCheckbox);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"data\", ctx_r1.itemTempl)(\"item\", item_r46);\n }\n}\nfunction AngularMultiSelect_div_28_span_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtemplate(1, AngularMultiSelect_div_28_span_3_li_1_Template, 4, 7, \"li\", 72)(2, AngularMultiSelect_div_28_span_3_li_2_Template, 4, 7, \"li\", 73);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r46 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !item_r46.grpTitle);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", item_r46.grpTitle);\n }\n}\nfunction AngularMultiSelect_div_28_Template(rf, ctx) {\n if (rf & 1) {\n const _r43 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 63)(1, \"ul\", 68, 6);\n i0.ɵɵlistener(\"vsStart\", function AngularMultiSelect_div_28_Template_ul_vsStart_1_listener($event) {\n i0.ɵɵrestoreView(_r43);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onScrollEnd($event));\n })(\"vsEnd\", function AngularMultiSelect_div_28_Template_ul_vsEnd_1_listener($event) {\n i0.ɵɵrestoreView(_r43);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onScrollEnd($event));\n });\n i0.ɵɵtemplate(3, AngularMultiSelect_div_28_span_3_Template, 3, 2, \"span\", 71);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const scroll3_r48 = i0.ɵɵreference(2);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"max-height\", ctx_r1.settings.maxHeight + \"px\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"enableUnequalChildrenSizes\", ctx_r1.randomSize)(\"items\", ctx_r1.virtualdata)(\"ngStyle\", i0.ɵɵpureFunction1(6, _c14, ctx_r1.settings.maxHeight + \"px\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", scroll3_r48.viewPortItems);\n }\n}\nfunction AngularMultiSelect_div_29_span_2_input_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 70);\n }\n if (rf & 2) {\n const item_r50 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"checked\", item_r50.selected)(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length) && !ctx_r1.isSelected(item_r50) || item_r50.disabled);\n }\n}\nfunction AngularMultiSelect_div_29_span_2_span_6_input_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 70);\n }\n if (rf & 2) {\n const val_r53 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"checked\", ctx_r1.isSelected(val_r53))(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length) && !ctx_r1.isSelected(val_r53) || val_r53.disabled);\n }\n}\nfunction AngularMultiSelect_div_29_span_2_span_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r51 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\")(1, \"li\", 66);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_29_span_2_span_6_Template_li_click_1_listener($event) {\n const ctx_r51 = i0.ɵɵrestoreView(_r51);\n const val_r53 = ctx_r51.$implicit;\n const j_r54 = ctx_r51.index;\n const ctx_r1 = i0.ɵɵnextContext(3);\n ctx_r1.onItemClick(val_r53, j_r54, $event);\n return i0.ɵɵresetView($event.stopPropagation());\n });\n i0.ɵɵtemplate(2, AngularMultiSelect_div_29_span_2_span_6_input_2_Template, 1, 2, \"input\", 69);\n i0.ɵɵelement(3, \"label\")(4, \"c-templateRenderer\", 35);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const val_r53 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(4, _c15, val_r53.grpTitle, !val_r53.grpTitle && !ctx_r1.settings.singleSelection));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.showCheckbox);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"data\", ctx_r1.itemTempl)(\"item\", val_r53);\n }\n}\nfunction AngularMultiSelect_div_29_span_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r49 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\")(1, \"li\", 66);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_29_span_2_Template_li_click_1_listener() {\n const item_r50 = i0.ɵɵrestoreView(_r49).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.selectGroup(item_r50));\n });\n i0.ɵɵtemplate(2, AngularMultiSelect_div_29_span_2_input_2_Template, 1, 2, \"input\", 69);\n i0.ɵɵelementStart(3, \"label\");\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"ul\", 64);\n i0.ɵɵtemplate(6, AngularMultiSelect_div_29_span_2_span_6_Template, 5, 7, \"span\", 71);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const item_r50 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(4, _c15, item_r50.grpTitle, !item_r50.grpTitle && !ctx_r1.settings.singleSelection));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.showCheckbox && !ctx_r1.settings.singleSelection);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(item_r50[ctx_r1.settings.labelKey]);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", item_r50.list);\n }\n}\nfunction AngularMultiSelect_div_29_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 63)(1, \"ul\", 64);\n i0.ɵɵtemplate(2, AngularMultiSelect_div_29_span_2_Template, 7, 7, \"span\", 71);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"max-height\", ctx_r1.settings.maxHeight + \"px\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.groupedData);\n }\n}\nfunction AngularMultiSelect_div_30_span_4_li_1_input_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 70);\n }\n if (rf & 2) {\n const item_r56 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"checked\", ctx_r1.isSelected(item_r56))(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length) && !ctx_r1.isSelected(item_r56) || item_r56.disabled);\n }\n}\nfunction AngularMultiSelect_div_30_span_4_li_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"li\", 74);\n i0.ɵɵtemplate(1, AngularMultiSelect_div_30_span_4_li_1_input_1_Template, 1, 2, \"input\", 69);\n i0.ɵɵelementStart(2, \"label\");\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const item_r56 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction3(3, _c16, item_r56.grpTitle, !item_r56.grpTitle && !ctx_r1.settings.singleSelection, ctx_r1.isSelected(item_r56) == true));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.showCheckbox && !item_r56.grpTitle && !ctx_r1.settings.singleSelection);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(item_r56[ctx_r1.settings.labelKey]);\n }\n}\nfunction AngularMultiSelect_div_30_span_4_li_2_input_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 70);\n }\n if (rf & 2) {\n const item_r56 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"checked\", ctx_r1.isSelected(item_r56))(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length) && !ctx_r1.isSelected(item_r56) || item_r56.disabled);\n }\n}\nfunction AngularMultiSelect_div_30_span_4_li_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r57 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 66);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_30_span_4_li_2_Template_li_click_0_listener($event) {\n i0.ɵɵrestoreView(_r57);\n const ctx_r57 = i0.ɵɵnextContext();\n const item_r56 = ctx_r57.$implicit;\n const i_r59 = ctx_r57.index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onItemClick(item_r56, i_r59, $event));\n });\n i0.ɵɵtemplate(1, AngularMultiSelect_div_30_span_4_li_2_input_1_Template, 1, 2, \"input\", 69);\n i0.ɵɵelementStart(2, \"label\");\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const item_r56 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction3(3, _c16, item_r56.grpTitle, !item_r56.grpTitle && !ctx_r1.settings.singleSelection, ctx_r1.isSelected(item_r56) == true));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.showCheckbox && !item_r56.grpTitle);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(item_r56[ctx_r1.settings.labelKey]);\n }\n}\nfunction AngularMultiSelect_div_30_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtemplate(1, AngularMultiSelect_div_30_span_4_li_1_Template, 4, 7, \"li\", 73)(2, AngularMultiSelect_div_30_span_4_li_2_Template, 4, 7, \"li\", 72);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r56 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", item_r56.grpTitle);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !item_r56.grpTitle);\n }\n}\nfunction AngularMultiSelect_div_30_Template(rf, ctx) {\n if (rf & 1) {\n const _r55 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 63)(1, \"virtual-scroller\", 75);\n i0.ɵɵlistener(\"vsUpdate\", function AngularMultiSelect_div_30_Template_virtual_scroller_vsUpdate_1_listener($event) {\n i0.ɵɵrestoreView(_r55);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.viewPortItems = $event);\n })(\"vsEnd\", function AngularMultiSelect_div_30_Template_virtual_scroller_vsEnd_1_listener($event) {\n i0.ɵɵrestoreView(_r55);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onScrollEnd($event));\n });\n i0.ɵɵelementStart(2, \"ul\", 68, 7);\n i0.ɵɵlistener(\"vsStart\", function AngularMultiSelect_div_30_Template_ul_vsStart_2_listener($event) {\n i0.ɵɵrestoreView(_r55);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onScrollEnd($event));\n })(\"vsEnd\", function AngularMultiSelect_div_30_Template_ul_vsEnd_2_listener($event) {\n i0.ɵɵrestoreView(_r55);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onScrollEnd($event));\n });\n i0.ɵɵtemplate(4, AngularMultiSelect_div_30_span_4_Template, 3, 2, \"span\", 71);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const scroll4_r60 = i0.ɵɵreference(3);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"max-height\", ctx_r1.settings.maxHeight + \"px\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"items\", ctx_r1.groupedData)(\"ngStyle\", i0.ɵɵpureFunction1(8, _c14, ctx_r1.settings.maxHeight + \"px\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"enableUnequalChildrenSizes\", ctx_r1.randomSize)(\"items\", ctx_r1.virtualdata)(\"ngStyle\", i0.ɵɵpureFunction1(10, _c14, ctx_r1.settings.maxHeight + \"px\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", scroll4_r60.viewPortItems);\n }\n}\nfunction AngularMultiSelect_div_31_span_2_input_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 70);\n }\n if (rf & 2) {\n const item_r62 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"checked\", item_r62.selected)(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length) && !ctx_r1.isSelected(item_r62) || item_r62.disabled);\n }\n}\nfunction AngularMultiSelect_div_31_span_2_span_6_input_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 70);\n }\n if (rf & 2) {\n const val_r65 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"checked\", ctx_r1.isSelected(val_r65))(\"disabled\", ctx_r1.settings.limitSelection == (ctx_r1.selectedItems == null ? null : ctx_r1.selectedItems.length) && !ctx_r1.isSelected(val_r65) || val_r65.disabled);\n }\n}\nfunction AngularMultiSelect_div_31_span_2_span_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r63 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\")(1, \"li\", 66);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_31_span_2_span_6_Template_li_click_1_listener($event) {\n const ctx_r63 = i0.ɵɵrestoreView(_r63);\n const val_r65 = ctx_r63.$implicit;\n const j_r66 = ctx_r63.index;\n const ctx_r1 = i0.ɵɵnextContext(3);\n ctx_r1.onItemClick(val_r65, j_r66, $event);\n return i0.ɵɵresetView($event.stopPropagation());\n });\n i0.ɵɵtemplate(2, AngularMultiSelect_div_31_span_2_span_6_input_2_Template, 1, 2, \"input\", 69);\n i0.ɵɵelementStart(3, \"label\");\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const val_r65 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction3(3, _c17, ctx_r1.isSelected(val_r65) == true, val_r65.grpTitle, !val_r65.grpTitle && !ctx_r1.settings.singleSelection));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.showCheckbox);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(val_r65[ctx_r1.settings.labelKey]);\n }\n}\nfunction AngularMultiSelect_div_31_span_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r61 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\")(1, \"li\", 66);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_div_31_span_2_Template_li_click_1_listener() {\n const item_r62 = i0.ɵɵrestoreView(_r61).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.selectGroup(item_r62));\n });\n i0.ɵɵtemplate(2, AngularMultiSelect_div_31_span_2_input_2_Template, 1, 2, \"input\", 69);\n i0.ɵɵelementStart(3, \"label\");\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"ul\", 64);\n i0.ɵɵtemplate(6, AngularMultiSelect_div_31_span_2_span_6_Template, 5, 7, \"span\", 71);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const item_r62 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(4, _c15, item_r62.grpTitle, !item_r62.grpTitle && !ctx_r1.settings.singleSelection));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.showCheckbox && !ctx_r1.settings.singleSelection);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(item_r62[ctx_r1.settings.labelKey]);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", item_r62.list);\n }\n}\nfunction AngularMultiSelect_div_31_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 63)(1, \"ul\", 64);\n i0.ɵɵtemplate(2, AngularMultiSelect_div_31_span_2_Template, 7, 7, \"span\", 71);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"max-height\", ctx_r1.settings.maxHeight + \"px\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.groupedData);\n }\n}\nfunction AngularMultiSelect_h5_32_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"h5\", 76);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.settings.noDataLabel);\n }\n}\nclass MyException {\n status;\n body;\n constructor(status, body) {\n this.status = status;\n this.body = body;\n }\n}\nlet ClickOutsideDirective = /*#__PURE__*/(() => {\n class ClickOutsideDirective {\n _elementRef;\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n clickOutside = new EventEmitter();\n onClick(event, targetElement) {\n if (!targetElement) {\n return;\n }\n const clickedInside = this._elementRef.nativeElement.contains(targetElement);\n if (!clickedInside) {\n this.clickOutside.emit(event);\n }\n }\n static ɵfac = function ClickOutsideDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ClickOutsideDirective)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ClickOutsideDirective,\n selectors: [[\"\", \"clickOutside\", \"\"]],\n hostBindings: function ClickOutsideDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"pointerdown\", function ClickOutsideDirective_pointerdown_HostBindingHandler($event) {\n return ctx.onClick($event, $event.target);\n }, false, i0.ɵɵresolveDocument)(\"touchstart\", function ClickOutsideDirective_touchstart_HostBindingHandler($event) {\n return ctx.onClick($event, $event.target);\n }, false, i0.ɵɵresolveDocument);\n }\n },\n outputs: {\n clickOutside: \"clickOutside\"\n }\n });\n }\n return ClickOutsideDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ScrollDirective = /*#__PURE__*/(() => {\n class ScrollDirective {\n _elementRef;\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n scroll = new EventEmitter();\n onClick(event, targetElement) {\n this.scroll.emit(event);\n }\n static ɵfac = function ScrollDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ScrollDirective)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ScrollDirective,\n selectors: [[\"\", \"scroll\", \"\"]],\n hostBindings: function ScrollDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"scroll\", function ScrollDirective_scroll_HostBindingHandler($event) {\n return ctx.onClick($event);\n });\n }\n },\n outputs: {\n scroll: \"scroll\"\n }\n });\n }\n return ScrollDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet styleDirective = /*#__PURE__*/(() => {\n class styleDirective {\n el;\n constructor(el) {\n this.el = el;\n }\n styleVal;\n ngOnInit() {\n this.el.nativeElement.style.top = this.styleVal;\n }\n ngOnChanges() {\n this.el.nativeElement.style.top = this.styleVal;\n }\n static ɵfac = function styleDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || styleDirective)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: styleDirective,\n selectors: [[\"\", \"styleProp\", \"\"]],\n inputs: {\n styleVal: [0, \"styleProp\", \"styleVal\"]\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n return styleDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet setPosition = /*#__PURE__*/(() => {\n class setPosition {\n el;\n height;\n constructor(el) {\n this.el = el;\n }\n ngOnInit() {\n if (this.height) {\n this.el.nativeElement.style.bottom = parseInt(this.height + 15 + \"\") + 'px';\n }\n }\n ngOnChanges() {\n if (this.height) {\n this.el.nativeElement.style.bottom = parseInt(this.height + 15 + \"\") + 'px';\n }\n }\n static ɵfac = function setPosition_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || setPosition)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: setPosition,\n selectors: [[\"\", \"setPosition\", \"\"]],\n inputs: {\n height: [0, \"setPosition\", \"height\"]\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n return setPosition;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DataService = /*#__PURE__*/(() => {\n class DataService {\n filteredData = [];\n subject = new Subject();\n setData(data) {\n this.filteredData = data;\n this.subject.next(data);\n }\n getData() {\n return this.subject.asObservable();\n }\n getFilteredData() {\n if (this.filteredData && this.filteredData.length > 0) {\n return this.filteredData;\n } else {\n return [];\n }\n }\n static ɵfac = function DataService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DataService)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DataService,\n factory: DataService.ɵfac\n });\n }\n return DataService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ListFilterPipe = /*#__PURE__*/(() => {\n class ListFilterPipe {\n ds;\n filteredList = [];\n constructor(ds) {\n this.ds = ds;\n }\n transform(items, filter, searchBy) {\n if (!items || !filter || filter == \"\") {\n return items;\n }\n this.filteredList = items.filter(item => this.applyFilter(item, filter, searchBy));\n return this.filteredList;\n }\n applyFilter(item, filter, searchBy) {\n let found = false;\n if (searchBy.length > 0) {\n if (item.grpTitle) {\n found = true;\n } else {\n for (var t = 0; t < searchBy.length; t++) {\n if (filter && item[searchBy[t]] && item[searchBy[t]] != \"\") {\n if (item[searchBy[t]].toString().toLowerCase().indexOf(filter.toLowerCase()) >= 0) {\n found = true;\n }\n }\n }\n }\n } else {\n if (item.grpTitle) {\n found = true;\n } else {\n for (var prop in item) {\n if (filter && item[prop]) {\n if (item[prop].toString().toLowerCase().indexOf(filter.toLowerCase()) >= 0) {\n found = true;\n }\n }\n }\n }\n }\n return found;\n }\n static ɵfac = function ListFilterPipe_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ListFilterPipe)(i0.ɵɵdirectiveInject(DataService, 16));\n };\n static ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"listFilter\",\n type: ListFilterPipe,\n pure: true\n });\n }\n return ListFilterPipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet Item = /*#__PURE__*/(() => {\n class Item {\n template;\n constructor() {}\n static ɵfac = function Item_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Item)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Item,\n selectors: [[\"c-item\"]],\n contentQueries: function Item_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, TemplateRef, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.template = _t.first);\n }\n },\n decls: 0,\n vars: 0,\n template: function Item_Template(rf, ctx) {},\n encapsulation: 2\n });\n }\n return Item;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet Badge = /*#__PURE__*/(() => {\n class Badge {\n template;\n constructor() {}\n static ɵfac = function Badge_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Badge)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Badge,\n selectors: [[\"c-badge\"]],\n contentQueries: function Badge_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, TemplateRef, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.template = _t.first);\n }\n },\n decls: 0,\n vars: 0,\n template: function Badge_Template(rf, ctx) {},\n encapsulation: 2\n });\n }\n return Badge;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet Search = /*#__PURE__*/(() => {\n class Search {\n template;\n constructor() {}\n static ɵfac = function Search_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Search)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Search,\n selectors: [[\"c-search\"]],\n contentQueries: function Search_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, TemplateRef, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.template = _t.first);\n }\n },\n decls: 0,\n vars: 0,\n template: function Search_Template(rf, ctx) {},\n encapsulation: 2\n });\n }\n return Search;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TemplateRenderer = /*#__PURE__*/(() => {\n class TemplateRenderer {\n viewContainer;\n data;\n item;\n view;\n constructor(viewContainer) {\n this.viewContainer = viewContainer;\n }\n ngOnInit() {\n this.view = this.viewContainer.createEmbeddedView(this.data.template, {\n '\\$implicit': this.data,\n 'item': this.item\n });\n }\n ngOnDestroy() {\n this.view.destroy();\n }\n static ɵfac = function TemplateRenderer_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TemplateRenderer)(i0.ɵɵdirectiveInject(i0.ViewContainerRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TemplateRenderer,\n selectors: [[\"c-templateRenderer\"]],\n inputs: {\n data: \"data\",\n item: \"item\"\n },\n decls: 0,\n vars: 0,\n template: function TemplateRenderer_Template(rf, ctx) {},\n encapsulation: 2\n });\n }\n return TemplateRenderer;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet CIcon = /*#__PURE__*/(() => {\n class CIcon {\n name;\n static ɵfac = function CIcon_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CIcon)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CIcon,\n selectors: [[\"c-icon\"]],\n inputs: {\n name: \"name\"\n },\n decls: 5,\n vars: 5,\n consts: [[\"width\", \"100%\", \"height\", \"100%\", \"version\", \"1.1\", \"id\", \"Capa_1\", \"xmlns\", \"http://www.w3.org/2000/svg\", 0, \"xmlns\", \"xlink\", \"http://www.w3.org/1999/xlink\", \"x\", \"0px\", \"y\", \"0px\", \"viewBox\", \"0 0 47.971 47.971\", \"style\", \"enable-background:new 0 0 47.971 47.971;\", 0, \"xml\", \"space\", \"preserve\", 4, \"ngIf\"], [\"version\", \"1.1\", \"id\", \"Capa_1\", \"xmlns\", \"http://www.w3.org/2000/svg\", 0, \"xmlns\", \"xlink\", \"http://www.w3.org/1999/xlink\", \"x\", \"0px\", \"y\", \"0px\", \"width\", \"100%\", \"height\", \"100%\", \"viewBox\", \"0 0 612 612\", \"style\", \"enable-background:new 0 0 612 612;\", 0, \"xml\", \"space\", \"preserve\", 4, \"ngIf\"], [\"version\", \"1.1\", \"id\", \"Capa_1\", \"xmlns\", \"http://www.w3.org/2000/svg\", 0, \"xmlns\", \"xlink\", \"http://www.w3.org/1999/xlink\", \"x\", \"0px\", \"y\", \"0px\", \"width\", \"100%\", \"height\", \"100%\", \"viewBox\", \"0 0 615.52 615.52\", \"style\", \"enable-background:new 0 0 615.52 615.52;\", 0, \"xml\", \"space\", \"preserve\", 4, \"ngIf\"], [\"version\", \"1.1\", \"id\", \"Capa_1\", \"xmlns\", \"http://www.w3.org/2000/svg\", 0, \"xmlns\", \"xlink\", \"http://www.w3.org/1999/xlink\", \"x\", \"0px\", \"y\", \"0px\", \"viewBox\", \"0 0 51.976 51.976\", \"style\", \"enable-background:new 0 0 51.976 51.976;\", 0, \"xml\", \"space\", \"preserve\", 4, \"ngIf\"], [\"width\", \"100%\", \"height\", \"100%\", \"version\", \"1.1\", \"id\", \"Capa_1\", \"xmlns\", \"http://www.w3.org/2000/svg\", 0, \"xmlns\", \"xlink\", \"http://www.w3.org/1999/xlink\", \"x\", \"0px\", \"y\", \"0px\", \"viewBox\", \"0 0 47.971 47.971\", 0, \"xml\", \"space\", \"preserve\", 2, \"enable-background\", \"new 0 0 47.971 47.971\"], [\"d\", \"M28.228,23.986L47.092,5.122c1.172-1.171,1.172-3.071,0-4.242c-1.172-1.172-3.07-1.172-4.242,0L23.986,19.744L5.121,0.88\\n c-1.172-1.172-3.07-1.172-4.242,0c-1.172,1.171-1.172,3.071,0,4.242l18.865,18.864L0.879,42.85c-1.172,1.171-1.172,3.071,0,4.242\\n C1.465,47.677,2.233,47.97,3,47.97s1.535-0.293,2.121-0.879l18.865-18.864L42.85,47.091c0.586,0.586,1.354,0.879,2.121,0.879\\n s1.535-0.293,2.121-0.879c1.172-1.171,1.172-3.071,0-4.242L28.228,23.986z\"], [\"version\", \"1.1\", \"id\", \"Capa_1\", \"xmlns\", \"http://www.w3.org/2000/svg\", 0, \"xmlns\", \"xlink\", \"http://www.w3.org/1999/xlink\", \"x\", \"0px\", \"y\", \"0px\", \"width\", \"100%\", \"height\", \"100%\", \"viewBox\", \"0 0 612 612\", 0, \"xml\", \"space\", \"preserve\", 2, \"enable-background\", \"new 0 0 612 612\"], [\"id\", \"_x31_0_34_\"], [\"d\", \"M604.501,134.782c-9.999-10.05-26.222-10.05-36.221,0L306.014,422.558L43.721,134.782\\n\\t\\t\\t\\tc-9.999-10.05-26.223-10.05-36.222,0s-9.999,26.35,0,36.399l279.103,306.241c5.331,5.357,12.422,7.652,19.386,7.296\\n\\t\\t\\t\\tc6.988,0.356,14.055-1.939,19.386-7.296l279.128-306.268C614.5,161.106,614.5,144.832,604.501,134.782z\"], [\"id\", \"_x39__30_\"], [\"d\", \"M604.501,440.509L325.398,134.956c-5.331-5.357-12.423-7.627-19.386-7.27c-6.989-0.357-14.056,1.913-19.387,7.27\\n\\t\\t\\t\\tL7.499,440.509c-9.999,10.024-9.999,26.298,0,36.323s26.223,10.024,36.222,0l262.293-287.164L568.28,476.832\\n\\t\\t\\t\\tc9.999,10.024,26.222,10.024,36.221,0C614.5,466.809,614.5,450.534,604.501,440.509z\"], [\"version\", \"1.1\", \"id\", \"Capa_1\", \"xmlns\", \"http://www.w3.org/2000/svg\", 0, \"xmlns\", \"xlink\", \"http://www.w3.org/1999/xlink\", \"x\", \"0px\", \"y\", \"0px\", \"width\", \"100%\", \"height\", \"100%\", \"viewBox\", \"0 0 615.52 615.52\", 0, \"xml\", \"space\", \"preserve\", 2, \"enable-background\", \"new 0 0 615.52 615.52\"], [\"id\", \"Search__x28_and_thou_shall_find_x29_\"], [\"d\", \"M602.531,549.736l-184.31-185.368c26.679-37.72,42.528-83.729,42.528-133.548C460.75,103.35,357.997,0,231.258,0\\n\\t\\t\\t\\t\\tC104.518,0,1.765,103.35,1.765,230.82c0,127.47,102.753,230.82,229.493,230.82c49.53,0,95.271-15.944,132.78-42.777\\n\\t\\t\\t\\t\\tl184.31,185.366c7.482,7.521,17.292,11.291,27.102,11.291c9.812,0,19.62-3.77,27.083-11.291\\n\\t\\t\\t\\t\\tC617.496,589.188,617.496,564.777,602.531,549.736z M355.9,319.763l-15.042,21.273L319.7,356.174\\n\\t\\t\\t\\t\\tc-26.083,18.658-56.667,28.526-88.442,28.526c-84.365,0-152.995-69.035-152.995-153.88c0-84.846,68.63-153.88,152.995-153.88\\n\\t\\t\\t\\t\\ts152.996,69.034,152.996,153.88C384.271,262.769,374.462,293.526,355.9,319.763z\"], [\"version\", \"1.1\", \"id\", \"Capa_1\", \"xmlns\", \"http://www.w3.org/2000/svg\", 0, \"xmlns\", \"xlink\", \"http://www.w3.org/1999/xlink\", \"x\", \"0px\", \"y\", \"0px\", \"viewBox\", \"0 0 51.976 51.976\", 0, \"xml\", \"space\", \"preserve\", 2, \"enable-background\", \"new 0 0 51.976 51.976\"], [\"d\", \"M44.373,7.603c-10.137-10.137-26.632-10.138-36.77,0c-10.138,10.138-10.137,26.632,0,36.77s26.632,10.138,36.77,0\\n\\t\\tC54.51,34.235,54.51,17.74,44.373,7.603z M36.241,36.241c-0.781,0.781-2.047,0.781-2.828,0l-7.425-7.425l-7.778,7.778\\n\\t\\tc-0.781,0.781-2.047,0.781-2.828,0c-0.781-0.781-0.781-2.047,0-2.828l7.778-7.778l-7.425-7.425c-0.781-0.781-0.781-2.048,0-2.828\\n\\t\\tc0.781-0.781,2.047-0.781,2.828,0l7.425,7.425l7.071-7.071c0.781-0.781,2.047-0.781,2.828,0c0.781,0.781,0.781,2.047,0,2.828\\n\\t\\tl-7.071,7.071l7.425,7.425C37.022,34.194,37.022,35.46,36.241,36.241z\"]],\n template: function CIcon_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, CIcon__svg_svg_0_Template, 3, 0, \"svg\", 0)(1, CIcon__svg_svg_1_Template, 5, 0, \"svg\", 1)(2, CIcon__svg_svg_2_Template, 5, 0, \"svg\", 1)(3, CIcon__svg_svg_3_Template, 6, 0, \"svg\", 2)(4, CIcon__svg_svg_4_Template, 3, 0, \"svg\", 3);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.name == \"remove\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.name == \"angle-down\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.name == \"angle-up\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.name == \"search\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.name == \"clear\");\n }\n },\n dependencies: [i2.NgIf],\n encapsulation: 2\n });\n }\n return CIcon;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction VIRTUAL_SCROLLER_DEFAULT_OPTIONS_FACTORY() {\n return {\n scrollThrottlingTime: 0,\n scrollDebounceTime: 0,\n scrollAnimationTime: 750,\n checkResizeInterval: 1000,\n resizeBypassRefreshThreshold: 5,\n modifyOverflowStyleOfParentScroll: true,\n stripedTable: false\n };\n}\nlet VirtualScrollerComponent = /*#__PURE__*/(() => {\n class VirtualScrollerComponent {\n element;\n renderer;\n zone;\n changeDetectorRef;\n viewPortItems;\n window = window;\n get viewPortInfo() {\n let pageInfo = this.previousViewPort || {};\n return {\n startIndex: pageInfo.startIndex || 0,\n endIndex: pageInfo.endIndex || 0,\n scrollStartPosition: pageInfo.scrollStartPosition || 0,\n scrollEndPosition: pageInfo.scrollEndPosition || 0,\n maxScrollPosition: pageInfo.maxScrollPosition || 0,\n startIndexWithBuffer: pageInfo.startIndexWithBuffer || 0,\n endIndexWithBuffer: pageInfo.endIndexWithBuffer || 0\n };\n }\n executeRefreshOutsideAngularZone = false;\n _enableUnequalChildrenSizes = false;\n get enableUnequalChildrenSizes() {\n return this._enableUnequalChildrenSizes;\n }\n set enableUnequalChildrenSizes(value) {\n if (this._enableUnequalChildrenSizes === value) {\n return;\n }\n this._enableUnequalChildrenSizes = value;\n this.minMeasuredChildWidth = undefined;\n this.minMeasuredChildHeight = undefined;\n }\n useMarginInsteadOfTranslate = false;\n modifyOverflowStyleOfParentScroll;\n stripedTable;\n scrollbarWidth;\n scrollbarHeight;\n childWidth;\n childHeight;\n ssrChildWidth;\n ssrChildHeight;\n ssrViewportWidth = 1920;\n ssrViewportHeight = 1080;\n _bufferAmount = 0;\n get bufferAmount() {\n if (typeof this._bufferAmount === 'number' && this._bufferAmount >= 0) {\n return this._bufferAmount;\n } else {\n return this.enableUnequalChildrenSizes ? 5 : 0;\n }\n }\n set bufferAmount(value) {\n this._bufferAmount = value;\n }\n scrollAnimationTime;\n resizeBypassRefreshThreshold;\n _scrollThrottlingTime;\n get scrollThrottlingTime() {\n return this._scrollThrottlingTime;\n }\n set scrollThrottlingTime(value) {\n this._scrollThrottlingTime = value;\n this.updateOnScrollFunction();\n }\n _scrollDebounceTime;\n get scrollDebounceTime() {\n return this._scrollDebounceTime;\n }\n set scrollDebounceTime(value) {\n this._scrollDebounceTime = value;\n this.updateOnScrollFunction();\n }\n onScroll;\n updateOnScrollFunction() {\n if (this.scrollDebounceTime) {\n this.onScroll = this.debounce(() => {\n this.refresh_internal(false);\n }, this.scrollDebounceTime);\n } else if (this.scrollThrottlingTime) {\n this.onScroll = this.throttleTrailing(() => {\n this.refresh_internal(false);\n }, this.scrollThrottlingTime);\n } else {\n this.onScroll = () => {\n this.refresh_internal(false);\n };\n }\n }\n checkScrollElementResizedTimer;\n _checkResizeInterval;\n get checkResizeInterval() {\n return this._checkResizeInterval;\n }\n set checkResizeInterval(value) {\n if (this._checkResizeInterval === value) {\n return;\n }\n this._checkResizeInterval = value;\n this.addScrollEventHandlers();\n }\n _items = [];\n get items() {\n return this._items;\n }\n set items(value) {\n if (value === this._items) {\n return;\n }\n this._items = value || [];\n this.refresh_internal(true);\n }\n compareItems = (item1, item2) => item1 === item2;\n _horizontal;\n get horizontal() {\n return this._horizontal;\n }\n set horizontal(value) {\n this._horizontal = value;\n this.updateDirection();\n }\n revertParentOverscroll() {\n const scrollElement = this.getScrollElement();\n if (scrollElement && this.oldParentScrollOverflow) {\n scrollElement.style['overflow-y'] = this.oldParentScrollOverflow.y;\n scrollElement.style['overflow-x'] = this.oldParentScrollOverflow.x;\n }\n this.oldParentScrollOverflow = undefined;\n }\n oldParentScrollOverflow;\n _parentScroll;\n get parentScroll() {\n return this._parentScroll;\n }\n set parentScroll(value) {\n if (this._parentScroll === value) {\n return;\n }\n this.revertParentOverscroll();\n this._parentScroll = value;\n this.addScrollEventHandlers();\n const scrollElement = this.getScrollElement();\n if (this.modifyOverflowStyleOfParentScroll && scrollElement !== this.element.nativeElement) {\n this.oldParentScrollOverflow = {\n x: scrollElement.style['overflow-x'],\n y: scrollElement.style['overflow-y']\n };\n scrollElement.style['overflow-y'] = this.horizontal ? 'visible' : 'auto';\n scrollElement.style['overflow-x'] = this.horizontal ? 'auto' : 'visible';\n }\n }\n vsUpdate = new EventEmitter();\n vsChange = new EventEmitter();\n vsStart = new EventEmitter();\n vsEnd = new EventEmitter();\n contentElementRef;\n invisiblePaddingElementRef;\n headerElementRef;\n containerElementRef;\n ngOnInit() {\n this.addScrollEventHandlers();\n }\n ngOnDestroy() {\n this.removeScrollEventHandlers();\n this.revertParentOverscroll();\n }\n ngOnChanges(changes) {\n let indexLengthChanged = this.cachedItemsLength !== this.items.length;\n this.cachedItemsLength = this.items.length;\n const firstRun = !changes.items || !changes.items.previousValue || changes.items.previousValue.length === 0;\n this.refresh_internal(indexLengthChanged || firstRun);\n }\n ngDoCheck() {\n if (this.cachedItemsLength !== this.items.length) {\n this.cachedItemsLength = this.items.length;\n this.refresh_internal(true);\n return;\n }\n if (this.previousViewPort && this.viewPortItems && this.viewPortItems.length > 0) {\n let itemsArrayChanged = false;\n for (let i = 0; i < this.viewPortItems.length; ++i) {\n if (!this.compareItems(this.items[this.previousViewPort.startIndexWithBuffer + i], this.viewPortItems[i])) {\n itemsArrayChanged = true;\n break;\n }\n }\n if (itemsArrayChanged) {\n this.refresh_internal(true);\n }\n }\n }\n refresh() {\n this.refresh_internal(true);\n }\n invalidateAllCachedMeasurements() {\n this.wrapGroupDimensions = {\n maxChildSizePerWrapGroup: [],\n numberOfKnownWrapGroupChildSizes: 0,\n sumOfKnownWrapGroupChildWidths: 0,\n sumOfKnownWrapGroupChildHeights: 0\n };\n this.minMeasuredChildWidth = undefined;\n this.minMeasuredChildHeight = undefined;\n this.refresh_internal(false);\n }\n invalidateCachedMeasurementForItem(item) {\n if (this.enableUnequalChildrenSizes) {\n let index = this.items && this.items.indexOf(item);\n if (index >= 0) {\n this.invalidateCachedMeasurementAtIndex(index);\n }\n } else {\n this.minMeasuredChildWidth = undefined;\n this.minMeasuredChildHeight = undefined;\n }\n this.refresh_internal(false);\n }\n invalidateCachedMeasurementAtIndex(index) {\n if (this.enableUnequalChildrenSizes) {\n let cachedMeasurement = this.wrapGroupDimensions.maxChildSizePerWrapGroup[index];\n if (cachedMeasurement) {\n this.wrapGroupDimensions.maxChildSizePerWrapGroup[index] = undefined;\n --this.wrapGroupDimensions.numberOfKnownWrapGroupChildSizes;\n this.wrapGroupDimensions.sumOfKnownWrapGroupChildWidths -= cachedMeasurement.childWidth || 0;\n this.wrapGroupDimensions.sumOfKnownWrapGroupChildHeights -= cachedMeasurement.childHeight || 0;\n }\n } else {\n this.minMeasuredChildWidth = undefined;\n this.minMeasuredChildHeight = undefined;\n }\n this.refresh_internal(false);\n }\n scrollInto(item, alignToBeginning = true, additionalOffset = 0, animationMilliseconds = undefined, animationCompletedCallback = undefined) {\n let index = this.items.indexOf(item);\n if (index === -1) {\n return;\n }\n this.scrollToIndex(index, alignToBeginning, additionalOffset, animationMilliseconds, animationCompletedCallback);\n }\n scrollToIndex(index, alignToBeginning = true, additionalOffset = 0, animationMilliseconds = undefined, animationCompletedCallback = undefined) {\n let maxRetries = 5;\n let retryIfNeeded = () => {\n --maxRetries;\n if (maxRetries <= 0) {\n if (animationCompletedCallback) {\n animationCompletedCallback();\n }\n return;\n }\n let dimensions = this.calculateDimensions();\n let desiredStartIndex = Math.min(Math.max(index, 0), dimensions.itemCount - 1);\n if (this.previousViewPort.startIndex === desiredStartIndex) {\n if (animationCompletedCallback) {\n animationCompletedCallback();\n }\n return;\n }\n this.scrollToIndex_internal(index, alignToBeginning, additionalOffset, 0, retryIfNeeded);\n };\n this.scrollToIndex_internal(index, alignToBeginning, additionalOffset, animationMilliseconds, retryIfNeeded);\n }\n scrollToIndex_internal(index, alignToBeginning = true, additionalOffset = 0, animationMilliseconds = undefined, animationCompletedCallback = undefined) {\n animationMilliseconds = animationMilliseconds === undefined ? this.scrollAnimationTime : animationMilliseconds;\n let dimensions = this.calculateDimensions();\n let scroll = this.calculatePadding(index, dimensions) + additionalOffset;\n if (!alignToBeginning) {\n scroll -= dimensions.wrapGroupsPerPage * dimensions[this._childScrollDim];\n }\n this.scrollToPosition(scroll, animationMilliseconds, animationCompletedCallback);\n }\n scrollToPosition(scrollPosition, animationMilliseconds = undefined, animationCompletedCallback = undefined) {\n scrollPosition += this.getElementsOffset();\n animationMilliseconds = animationMilliseconds === undefined ? this.scrollAnimationTime : animationMilliseconds;\n let scrollElement = this.getScrollElement();\n let animationRequest;\n if (this.currentTween) {\n this.currentTween.stop();\n this.currentTween = undefined;\n }\n if (!animationMilliseconds) {\n this.renderer.setProperty(scrollElement, this._scrollType, scrollPosition);\n this.refresh_internal(false, animationCompletedCallback);\n return;\n }\n const tweenConfigObj = {\n scrollPosition: scrollElement[this._scrollType]\n };\n let newTween = new tween.Tween(tweenConfigObj).to({\n scrollPosition\n }, animationMilliseconds).easing(tween.Easing.Quadratic.Out).onUpdate(data => {\n if (isNaN(data.scrollPosition)) {\n return;\n }\n this.renderer.setProperty(scrollElement, this._scrollType, data.scrollPosition);\n this.refresh_internal(false);\n }).onStop(() => {\n cancelAnimationFrame(animationRequest);\n }).start();\n const animate = time => {\n if (!newTween[\"isPlaying\"]()) {\n return;\n }\n newTween.update(time);\n if (tweenConfigObj.scrollPosition === scrollPosition) {\n this.refresh_internal(false, animationCompletedCallback);\n return;\n }\n this.zone.runOutsideAngular(() => {\n animationRequest = requestAnimationFrame(animate);\n });\n };\n animate();\n this.currentTween = newTween;\n }\n isAngularUniversalSSR;\n constructor(element, renderer, zone, changeDetectorRef, platformId, options) {\n this.element = element;\n this.renderer = renderer;\n this.zone = zone;\n this.changeDetectorRef = changeDetectorRef;\n this.isAngularUniversalSSR = isPlatformServer(platformId);\n this.scrollThrottlingTime = options.scrollThrottlingTime;\n this.scrollDebounceTime = options.scrollDebounceTime;\n this.scrollAnimationTime = options.scrollAnimationTime;\n this.scrollbarWidth = options.scrollbarWidth;\n this.scrollbarHeight = options.scrollbarHeight;\n this.checkResizeInterval = options.checkResizeInterval;\n this.resizeBypassRefreshThreshold = options.resizeBypassRefreshThreshold;\n this.modifyOverflowStyleOfParentScroll = options.modifyOverflowStyleOfParentScroll;\n this.stripedTable = options.stripedTable;\n this.horizontal = false;\n this.resetWrapGroupDimensions();\n }\n getElementSize(element) {\n let result = element.getBoundingClientRect();\n let styles = getComputedStyle(element);\n let marginTop = parseInt(styles['margin-top'], 10) || 0;\n let marginBottom = parseInt(styles['margin-bottom'], 10) || 0;\n let marginLeft = parseInt(styles['margin-left'], 10) || 0;\n let marginRight = parseInt(styles['margin-right'], 10) || 0;\n return {\n top: result.top + marginTop,\n bottom: result.bottom + marginBottom,\n left: result.left + marginLeft,\n right: result.right + marginRight,\n width: result.width + marginLeft + marginRight,\n height: result.height + marginTop + marginBottom,\n y: result.top + marginTop,\n x: result.left + marginLeft,\n toJSON() {\n result.toJSON();\n }\n };\n }\n previousScrollBoundingRect;\n checkScrollElementResized() {\n let boundingRect = this.getElementSize(this.getScrollElement());\n let sizeChanged;\n if (!this.previousScrollBoundingRect) {\n sizeChanged = true;\n } else {\n let widthChange = Math.abs(boundingRect.width - this.previousScrollBoundingRect.width);\n let heightChange = Math.abs(boundingRect.height - this.previousScrollBoundingRect.height);\n sizeChanged = widthChange > this.resizeBypassRefreshThreshold || heightChange > this.resizeBypassRefreshThreshold;\n }\n if (sizeChanged) {\n this.previousScrollBoundingRect = boundingRect;\n if (boundingRect.width > 0 && boundingRect.height > 0) {\n this.refresh_internal(false);\n }\n }\n }\n _invisiblePaddingProperty;\n _offsetType;\n _scrollType;\n _pageOffsetType;\n _childScrollDim;\n _translateDir;\n _marginDir;\n updateDirection() {\n if (this.horizontal) {\n this._invisiblePaddingProperty = 'width';\n this._offsetType = 'offsetLeft';\n this._pageOffsetType = 'pageXOffset';\n this._childScrollDim = 'childWidth';\n this._marginDir = 'margin-left';\n this._translateDir = 'translateX';\n this._scrollType = 'scrollLeft';\n } else {\n this._invisiblePaddingProperty = 'height';\n this._offsetType = 'offsetTop';\n this._pageOffsetType = 'pageYOffset';\n this._childScrollDim = 'childHeight';\n this._marginDir = 'margin-top';\n this._translateDir = 'translateY';\n this._scrollType = 'scrollTop';\n }\n }\n debounce(func, wait) {\n const throttled = this.throttleTrailing(func, wait);\n const result = function () {\n throttled['cancel']();\n throttled.apply(this, arguments);\n };\n result['cancel'] = function () {\n throttled['cancel']();\n };\n return result;\n }\n throttleTrailing(func, wait) {\n let timeout = undefined;\n let _arguments = arguments;\n const result = function () {\n const _this = this;\n _arguments = arguments;\n if (timeout) {\n return;\n }\n if (wait <= 0) {\n func.apply(_this, _arguments);\n } else {\n timeout = setTimeout(function () {\n timeout = undefined;\n func.apply(_this, _arguments);\n }, wait);\n }\n };\n result['cancel'] = function () {\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n };\n return result;\n }\n calculatedScrollbarWidth = 0;\n calculatedScrollbarHeight = 0;\n padding = 0;\n previousViewPort = {};\n currentTween;\n cachedItemsLength;\n disposeScrollHandler;\n disposeResizeHandler;\n refresh_internal(itemsArrayModified, refreshCompletedCallback = undefined, maxRunTimes = 2) {\n //note: maxRunTimes is to force it to keep recalculating if the previous iteration caused a re-render (different sliced items in viewport or scrollPosition changed).\n //The default of 2x max will probably be accurate enough without causing too large a performance bottleneck\n //The code would typically quit out on the 2nd iteration anyways. The main time it'd think more than 2 runs would be necessary would be for vastly different sized child items or if this is the 1st time the items array was initialized.\n //Without maxRunTimes, If the user is actively scrolling this code would become an infinite loop until they stopped scrolling. This would be okay, except each scroll event would start an additional infinte loop. We want to short-circuit it to prevent this.\n if (itemsArrayModified && this.previousViewPort && this.previousViewPort.scrollStartPosition > 0) {\n //if items were prepended, scroll forward to keep same items visible\n let oldViewPort = this.previousViewPort;\n let oldViewPortItems = this.viewPortItems;\n let oldRefreshCompletedCallback = refreshCompletedCallback;\n refreshCompletedCallback = () => {\n let scrollLengthDelta = this.previousViewPort.scrollLength - oldViewPort.scrollLength;\n if (scrollLengthDelta > 0 && this.viewPortItems) {\n let oldStartItem = oldViewPortItems[0];\n let oldStartItemIndex = this.items.findIndex(x => this.compareItems(oldStartItem, x));\n if (oldStartItemIndex > this.previousViewPort.startIndexWithBuffer) {\n let itemOrderChanged = false;\n for (let i = 1; i < this.viewPortItems.length; ++i) {\n if (!this.compareItems(this.items[oldStartItemIndex + i], oldViewPortItems[i])) {\n itemOrderChanged = true;\n break;\n }\n }\n if (!itemOrderChanged) {\n this.scrollToPosition(this.previousViewPort.scrollStartPosition + scrollLengthDelta, 0, oldRefreshCompletedCallback);\n return;\n }\n }\n }\n if (oldRefreshCompletedCallback) {\n oldRefreshCompletedCallback();\n }\n };\n }\n this.zone.runOutsideAngular(() => {\n requestAnimationFrame(() => {\n if (itemsArrayModified) {\n this.resetWrapGroupDimensions();\n }\n let viewport = this.calculateViewport();\n let startChanged = itemsArrayModified || viewport.startIndex !== this.previousViewPort.startIndex;\n let endChanged = itemsArrayModified || viewport.endIndex !== this.previousViewPort.endIndex;\n let scrollLengthChanged = viewport.scrollLength !== this.previousViewPort.scrollLength;\n let paddingChanged = viewport.padding !== this.previousViewPort.padding;\n let scrollPositionChanged = viewport.scrollStartPosition !== this.previousViewPort.scrollStartPosition || viewport.scrollEndPosition !== this.previousViewPort.scrollEndPosition || viewport.maxScrollPosition !== this.previousViewPort.maxScrollPosition;\n this.previousViewPort = viewport;\n if (scrollLengthChanged) {\n this.renderer.setStyle(this.invisiblePaddingElementRef.nativeElement, this._invisiblePaddingProperty, `${viewport.scrollLength}px`);\n }\n if (paddingChanged) {\n if (this.useMarginInsteadOfTranslate) {\n this.renderer.setStyle(this.contentElementRef.nativeElement, this._marginDir, `${viewport.padding}px`);\n } else {\n this.renderer.setStyle(this.contentElementRef.nativeElement, 'transform', `${this._translateDir}(${viewport.padding}px)`);\n this.renderer.setStyle(this.contentElementRef.nativeElement, 'webkitTransform', `${this._translateDir}(${viewport.padding}px)`);\n }\n }\n if (this.headerElementRef) {\n let scrollPosition = this.getScrollElement()[this._scrollType];\n let containerOffset = this.getElementsOffset();\n let offset = Math.max(scrollPosition - viewport.padding - containerOffset + this.headerElementRef.nativeElement.clientHeight, 0);\n this.renderer.setStyle(this.headerElementRef.nativeElement, 'transform', `${this._translateDir}(${offset}px)`);\n this.renderer.setStyle(this.headerElementRef.nativeElement, 'webkitTransform', `${this._translateDir}(${offset}px)`);\n }\n const changeEventArg = startChanged || endChanged ? {\n startIndex: viewport.startIndex,\n endIndex: viewport.endIndex,\n scrollStartPosition: viewport.scrollStartPosition,\n scrollEndPosition: viewport.scrollEndPosition,\n startIndexWithBuffer: viewport.startIndexWithBuffer,\n endIndexWithBuffer: viewport.endIndexWithBuffer,\n maxScrollPosition: viewport.maxScrollPosition\n } : undefined;\n if (startChanged || endChanged || scrollPositionChanged) {\n const handleChanged = () => {\n // update the scroll list to trigger re-render of components in viewport\n this.viewPortItems = viewport.startIndexWithBuffer >= 0 && viewport.endIndexWithBuffer >= 0 ? this.items.slice(viewport.startIndexWithBuffer, viewport.endIndexWithBuffer + 1) : [];\n this.vsUpdate.emit(this.viewPortItems);\n if (startChanged) {\n this.vsStart.emit(changeEventArg);\n }\n if (endChanged) {\n this.vsEnd.emit(changeEventArg);\n }\n if (startChanged || endChanged) {\n this.changeDetectorRef.markForCheck();\n this.vsChange.emit(changeEventArg);\n }\n if (maxRunTimes > 0) {\n this.refresh_internal(false, refreshCompletedCallback, maxRunTimes - 1);\n return;\n }\n if (refreshCompletedCallback) {\n refreshCompletedCallback();\n }\n };\n if (this.executeRefreshOutsideAngularZone) {\n handleChanged();\n } else {\n this.zone.run(handleChanged);\n }\n } else {\n if (maxRunTimes > 0 && (scrollLengthChanged || paddingChanged)) {\n this.refresh_internal(false, refreshCompletedCallback, maxRunTimes - 1);\n return;\n }\n if (refreshCompletedCallback) {\n refreshCompletedCallback();\n }\n }\n });\n });\n }\n getScrollElement() {\n return this.parentScroll instanceof Window ? document.scrollingElement || document.documentElement || document.body : this.parentScroll || this.element.nativeElement;\n }\n addScrollEventHandlers() {\n if (this.isAngularUniversalSSR) {\n return;\n }\n let scrollElement = this.getScrollElement();\n this.removeScrollEventHandlers();\n this.zone.runOutsideAngular(() => {\n if (this.parentScroll instanceof Window) {\n this.disposeScrollHandler = this.renderer.listen('window', 'scroll', this.onScroll);\n this.disposeResizeHandler = this.renderer.listen('window', 'resize', this.onScroll);\n } else {\n this.disposeScrollHandler = this.renderer.listen(scrollElement, 'scroll', this.onScroll);\n if (this._checkResizeInterval > 0) {\n this.checkScrollElementResizedTimer = setInterval(() => {\n this.checkScrollElementResized();\n }, this._checkResizeInterval);\n }\n }\n });\n }\n removeScrollEventHandlers() {\n if (this.checkScrollElementResizedTimer) {\n clearInterval(this.checkScrollElementResizedTimer);\n }\n if (this.disposeScrollHandler) {\n this.disposeScrollHandler();\n this.disposeScrollHandler = undefined;\n }\n if (this.disposeResizeHandler) {\n this.disposeResizeHandler();\n this.disposeResizeHandler = undefined;\n }\n }\n getElementsOffset() {\n if (this.isAngularUniversalSSR) {\n return 0;\n }\n let offset = 0;\n if (this.containerElementRef && this.containerElementRef.nativeElement) {\n offset += this.containerElementRef.nativeElement[this._offsetType];\n }\n if (this.parentScroll) {\n let scrollElement = this.getScrollElement();\n let elementClientRect = this.getElementSize(this.element.nativeElement);\n let scrollClientRect = this.getElementSize(scrollElement);\n if (this.horizontal) {\n offset += elementClientRect.left - scrollClientRect.left;\n } else {\n offset += elementClientRect.top - scrollClientRect.top;\n }\n if (!(this.parentScroll instanceof Window)) {\n offset += scrollElement[this._scrollType];\n }\n }\n return offset;\n }\n countItemsPerWrapGroup() {\n if (this.isAngularUniversalSSR) {\n return Math.round(this.horizontal ? this.ssrViewportHeight / this.ssrChildHeight : this.ssrViewportWidth / this.ssrChildWidth);\n }\n let propertyName = this.horizontal ? 'offsetLeft' : 'offsetTop';\n let children = (this.containerElementRef && this.containerElementRef.nativeElement || this.contentElementRef.nativeElement).children;\n let childrenLength = children ? children.length : 0;\n if (childrenLength === 0) {\n return 1;\n }\n let firstOffset = children[0][propertyName];\n let result = 1;\n while (result < childrenLength && firstOffset === children[result][propertyName]) {\n ++result;\n }\n return result;\n }\n getScrollStartPosition() {\n let windowScrollValue = undefined;\n if (this.parentScroll instanceof Window) {\n windowScrollValue = window[this._pageOffsetType];\n }\n return windowScrollValue || this.getScrollElement()[this._scrollType] || 0;\n }\n minMeasuredChildWidth;\n minMeasuredChildHeight;\n wrapGroupDimensions;\n resetWrapGroupDimensions() {\n const oldWrapGroupDimensions = this.wrapGroupDimensions;\n this.invalidateAllCachedMeasurements();\n if (!this.enableUnequalChildrenSizes || !oldWrapGroupDimensions || oldWrapGroupDimensions.numberOfKnownWrapGroupChildSizes === 0) {\n return;\n }\n const itemsPerWrapGroup = this.countItemsPerWrapGroup();\n for (let wrapGroupIndex = 0; wrapGroupIndex < oldWrapGroupDimensions.maxChildSizePerWrapGroup.length; ++wrapGroupIndex) {\n const oldWrapGroupDimension = oldWrapGroupDimensions.maxChildSizePerWrapGroup[wrapGroupIndex];\n if (!oldWrapGroupDimension || !oldWrapGroupDimension.items || !oldWrapGroupDimension.items.length) {\n continue;\n }\n if (oldWrapGroupDimension.items.length !== itemsPerWrapGroup) {\n return;\n }\n let itemsChanged = false;\n let arrayStartIndex = itemsPerWrapGroup * wrapGroupIndex;\n for (let i = 0; i < itemsPerWrapGroup; ++i) {\n if (!this.compareItems(oldWrapGroupDimension.items[i], this.items[arrayStartIndex + i])) {\n itemsChanged = true;\n break;\n }\n }\n if (!itemsChanged) {\n ++this.wrapGroupDimensions.numberOfKnownWrapGroupChildSizes;\n this.wrapGroupDimensions.sumOfKnownWrapGroupChildWidths += oldWrapGroupDimension.childWidth || 0;\n this.wrapGroupDimensions.sumOfKnownWrapGroupChildHeights += oldWrapGroupDimension.childHeight || 0;\n this.wrapGroupDimensions.maxChildSizePerWrapGroup[wrapGroupIndex] = oldWrapGroupDimension;\n }\n }\n }\n calculateDimensions() {\n let scrollElement = this.getScrollElement();\n const maxCalculatedScrollBarSize = 25; // Note: Formula to auto-calculate doesn't work for ParentScroll, so we default to this if not set by consuming application\n this.calculatedScrollbarHeight = Math.max(Math.min(scrollElement.offsetHeight - scrollElement.clientHeight, maxCalculatedScrollBarSize), this.calculatedScrollbarHeight);\n this.calculatedScrollbarWidth = Math.max(Math.min(scrollElement.offsetWidth - scrollElement.clientWidth, maxCalculatedScrollBarSize), this.calculatedScrollbarWidth);\n let viewportWidth = scrollElement.offsetWidth - (this.scrollbarWidth || this.calculatedScrollbarWidth || (this.horizontal ? 0 : maxCalculatedScrollBarSize));\n let viewportHeight = scrollElement.offsetHeight - (this.scrollbarHeight || this.calculatedScrollbarHeight || (this.horizontal ? maxCalculatedScrollBarSize : 0));\n let content = this.containerElementRef && this.containerElementRef.nativeElement || this.contentElementRef.nativeElement;\n let itemsPerWrapGroup = this.countItemsPerWrapGroup();\n let wrapGroupsPerPage;\n let defaultChildWidth;\n let defaultChildHeight;\n if (this.isAngularUniversalSSR) {\n viewportWidth = this.ssrViewportWidth;\n viewportHeight = this.ssrViewportHeight;\n defaultChildWidth = this.ssrChildWidth;\n defaultChildHeight = this.ssrChildHeight;\n let itemsPerRow = Math.max(Math.ceil(viewportWidth / defaultChildWidth), 1);\n let itemsPerCol = Math.max(Math.ceil(viewportHeight / defaultChildHeight), 1);\n wrapGroupsPerPage = this.horizontal ? itemsPerRow : itemsPerCol;\n } else if (!this.enableUnequalChildrenSizes) {\n if (content.children.length > 0) {\n if (!this.childWidth || !this.childHeight) {\n if (!this.minMeasuredChildWidth && viewportWidth > 0) {\n this.minMeasuredChildWidth = viewportWidth;\n }\n if (!this.minMeasuredChildHeight && viewportHeight > 0) {\n this.minMeasuredChildHeight = viewportHeight;\n }\n }\n let child = content.children[0];\n let clientRect = this.getElementSize(child);\n this.minMeasuredChildWidth = Math.min(this.minMeasuredChildWidth, clientRect.width);\n this.minMeasuredChildHeight = Math.min(this.minMeasuredChildHeight, clientRect.height);\n }\n defaultChildWidth = this.childWidth || this.minMeasuredChildWidth || viewportWidth;\n defaultChildHeight = this.childHeight || this.minMeasuredChildHeight || viewportHeight;\n let itemsPerRow = Math.max(Math.ceil(viewportWidth / defaultChildWidth), 1);\n let itemsPerCol = Math.max(Math.ceil(viewportHeight / defaultChildHeight), 1);\n wrapGroupsPerPage = this.horizontal ? itemsPerRow : itemsPerCol;\n } else {\n let scrollOffset = scrollElement[this._scrollType] - (this.previousViewPort ? this.previousViewPort.padding : 0);\n let arrayStartIndex = this.previousViewPort.startIndexWithBuffer || 0;\n let wrapGroupIndex = Math.ceil(arrayStartIndex / itemsPerWrapGroup);\n let maxWidthForWrapGroup = 0;\n let maxHeightForWrapGroup = 0;\n let sumOfVisibleMaxWidths = 0;\n let sumOfVisibleMaxHeights = 0;\n wrapGroupsPerPage = 0;\n for (let i = 0; i < content.children.length; ++i) {\n ++arrayStartIndex;\n let child = content.children[i];\n let clientRect = this.getElementSize(child);\n maxWidthForWrapGroup = Math.max(maxWidthForWrapGroup, clientRect.width);\n maxHeightForWrapGroup = Math.max(maxHeightForWrapGroup, clientRect.height);\n if (arrayStartIndex % itemsPerWrapGroup === 0) {\n let oldValue = this.wrapGroupDimensions.maxChildSizePerWrapGroup[wrapGroupIndex];\n if (oldValue) {\n --this.wrapGroupDimensions.numberOfKnownWrapGroupChildSizes;\n this.wrapGroupDimensions.sumOfKnownWrapGroupChildWidths -= oldValue.childWidth || 0;\n this.wrapGroupDimensions.sumOfKnownWrapGroupChildHeights -= oldValue.childHeight || 0;\n }\n ++this.wrapGroupDimensions.numberOfKnownWrapGroupChildSizes;\n const items = this.items.slice(arrayStartIndex - itemsPerWrapGroup, arrayStartIndex);\n this.wrapGroupDimensions.maxChildSizePerWrapGroup[wrapGroupIndex] = {\n childWidth: maxWidthForWrapGroup,\n childHeight: maxHeightForWrapGroup,\n items: items\n };\n this.wrapGroupDimensions.sumOfKnownWrapGroupChildWidths += maxWidthForWrapGroup;\n this.wrapGroupDimensions.sumOfKnownWrapGroupChildHeights += maxHeightForWrapGroup;\n if (this.horizontal) {\n let maxVisibleWidthForWrapGroup = Math.min(maxWidthForWrapGroup, Math.max(viewportWidth - sumOfVisibleMaxWidths, 0));\n if (scrollOffset > 0) {\n let scrollOffsetToRemove = Math.min(scrollOffset, maxVisibleWidthForWrapGroup);\n maxVisibleWidthForWrapGroup -= scrollOffsetToRemove;\n scrollOffset -= scrollOffsetToRemove;\n }\n sumOfVisibleMaxWidths += maxVisibleWidthForWrapGroup;\n if (maxVisibleWidthForWrapGroup > 0 && viewportWidth >= sumOfVisibleMaxWidths) {\n ++wrapGroupsPerPage;\n }\n } else {\n let maxVisibleHeightForWrapGroup = Math.min(maxHeightForWrapGroup, Math.max(viewportHeight - sumOfVisibleMaxHeights, 0));\n if (scrollOffset > 0) {\n let scrollOffsetToRemove = Math.min(scrollOffset, maxVisibleHeightForWrapGroup);\n maxVisibleHeightForWrapGroup -= scrollOffsetToRemove;\n scrollOffset -= scrollOffsetToRemove;\n }\n sumOfVisibleMaxHeights += maxVisibleHeightForWrapGroup;\n if (maxVisibleHeightForWrapGroup > 0 && viewportHeight >= sumOfVisibleMaxHeights) {\n ++wrapGroupsPerPage;\n }\n }\n ++wrapGroupIndex;\n maxWidthForWrapGroup = 0;\n maxHeightForWrapGroup = 0;\n }\n }\n let averageChildWidth = this.wrapGroupDimensions.sumOfKnownWrapGroupChildWidths / this.wrapGroupDimensions.numberOfKnownWrapGroupChildSizes;\n let averageChildHeight = this.wrapGroupDimensions.sumOfKnownWrapGroupChildHeights / this.wrapGroupDimensions.numberOfKnownWrapGroupChildSizes;\n defaultChildWidth = this.childWidth || averageChildWidth || viewportWidth;\n defaultChildHeight = this.childHeight || averageChildHeight || viewportHeight;\n if (this.horizontal) {\n if (viewportWidth > sumOfVisibleMaxWidths) {\n wrapGroupsPerPage += Math.ceil((viewportWidth - sumOfVisibleMaxWidths) / defaultChildWidth);\n }\n } else {\n if (viewportHeight > sumOfVisibleMaxHeights) {\n wrapGroupsPerPage += Math.ceil((viewportHeight - sumOfVisibleMaxHeights) / defaultChildHeight);\n }\n }\n }\n let itemCount = this.items.length;\n let itemsPerPage = itemsPerWrapGroup * wrapGroupsPerPage;\n let pageCount_fractional = itemCount / itemsPerPage;\n let numberOfWrapGroups = Math.ceil(itemCount / itemsPerWrapGroup);\n let scrollLength = 0;\n let defaultScrollLengthPerWrapGroup = this.horizontal ? defaultChildWidth : defaultChildHeight;\n if (this.enableUnequalChildrenSizes) {\n let numUnknownChildSizes = 0;\n for (let i = 0; i < numberOfWrapGroups; ++i) {\n let childSize = this.wrapGroupDimensions.maxChildSizePerWrapGroup[i] && this.wrapGroupDimensions.maxChildSizePerWrapGroup[i][this._childScrollDim];\n if (childSize) {\n scrollLength += childSize;\n } else {\n ++numUnknownChildSizes;\n }\n }\n scrollLength += Math.round(numUnknownChildSizes * defaultScrollLengthPerWrapGroup);\n } else {\n scrollLength = numberOfWrapGroups * defaultScrollLengthPerWrapGroup;\n }\n if (this.headerElementRef) {\n scrollLength += this.headerElementRef.nativeElement.clientHeight;\n }\n let viewportLength = this.horizontal ? viewportWidth : viewportHeight;\n let maxScrollPosition = Math.max(scrollLength - viewportLength, 0);\n return {\n itemCount: itemCount,\n itemsPerWrapGroup: itemsPerWrapGroup,\n wrapGroupsPerPage: wrapGroupsPerPage,\n itemsPerPage: itemsPerPage,\n pageCount_fractional: pageCount_fractional,\n childWidth: defaultChildWidth,\n childHeight: defaultChildHeight,\n scrollLength: scrollLength,\n viewportLength: viewportLength,\n maxScrollPosition: maxScrollPosition\n };\n }\n cachedPageSize = 0;\n previousScrollNumberElements = 0;\n calculatePadding(arrayStartIndexWithBuffer, dimensions) {\n if (dimensions.itemCount === 0) {\n return 0;\n }\n let defaultScrollLengthPerWrapGroup = dimensions[this._childScrollDim];\n let startingWrapGroupIndex = Math.floor(arrayStartIndexWithBuffer / dimensions.itemsPerWrapGroup) || 0;\n if (!this.enableUnequalChildrenSizes) {\n return defaultScrollLengthPerWrapGroup * startingWrapGroupIndex;\n }\n let numUnknownChildSizes = 0;\n let result = 0;\n for (let i = 0; i < startingWrapGroupIndex; ++i) {\n let childSize = this.wrapGroupDimensions.maxChildSizePerWrapGroup[i] && this.wrapGroupDimensions.maxChildSizePerWrapGroup[i][this._childScrollDim];\n if (childSize) {\n result += childSize;\n } else {\n ++numUnknownChildSizes;\n }\n }\n result += Math.round(numUnknownChildSizes * defaultScrollLengthPerWrapGroup);\n return result;\n }\n calculatePageInfo(scrollPosition, dimensions) {\n let scrollPercentage = 0;\n if (this.enableUnequalChildrenSizes) {\n const numberOfWrapGroups = Math.ceil(dimensions.itemCount / dimensions.itemsPerWrapGroup);\n let totalScrolledLength = 0;\n let defaultScrollLengthPerWrapGroup = dimensions[this._childScrollDim];\n for (let i = 0; i < numberOfWrapGroups; ++i) {\n let childSize = this.wrapGroupDimensions.maxChildSizePerWrapGroup[i] && this.wrapGroupDimensions.maxChildSizePerWrapGroup[i][this._childScrollDim];\n if (childSize) {\n totalScrolledLength += childSize;\n } else {\n totalScrolledLength += defaultScrollLengthPerWrapGroup;\n }\n if (scrollPosition < totalScrolledLength) {\n scrollPercentage = i / numberOfWrapGroups;\n break;\n }\n }\n } else {\n scrollPercentage = scrollPosition / dimensions.scrollLength;\n }\n let startingArrayIndex_fractional = Math.min(Math.max(scrollPercentage * dimensions.pageCount_fractional, 0), dimensions.pageCount_fractional) * dimensions.itemsPerPage;\n let maxStart = dimensions.itemCount - dimensions.itemsPerPage - 1;\n let arrayStartIndex = Math.min(Math.floor(startingArrayIndex_fractional), maxStart);\n arrayStartIndex -= arrayStartIndex % dimensions.itemsPerWrapGroup; // round down to start of wrapGroup\n if (this.stripedTable) {\n let bufferBoundary = 2 * dimensions.itemsPerWrapGroup;\n if (arrayStartIndex % bufferBoundary !== 0) {\n arrayStartIndex = Math.max(arrayStartIndex - arrayStartIndex % bufferBoundary, 0);\n }\n }\n let arrayEndIndex = Math.ceil(startingArrayIndex_fractional) + dimensions.itemsPerPage - 1;\n let endIndexWithinWrapGroup = (arrayEndIndex + 1) % dimensions.itemsPerWrapGroup;\n if (endIndexWithinWrapGroup > 0) {\n arrayEndIndex += dimensions.itemsPerWrapGroup - endIndexWithinWrapGroup; // round up to end of wrapGroup\n }\n if (isNaN(arrayStartIndex)) {\n arrayStartIndex = 0;\n }\n if (isNaN(arrayEndIndex)) {\n arrayEndIndex = 0;\n }\n arrayStartIndex = Math.min(Math.max(arrayStartIndex, 0), dimensions.itemCount - 1);\n arrayEndIndex = Math.min(Math.max(arrayEndIndex, 0), dimensions.itemCount - 1);\n let bufferSize = this.bufferAmount * dimensions.itemsPerWrapGroup;\n let startIndexWithBuffer = Math.min(Math.max(arrayStartIndex - bufferSize, 0), dimensions.itemCount - 1);\n let endIndexWithBuffer = Math.min(Math.max(arrayEndIndex + bufferSize, 0), dimensions.itemCount - 1);\n return {\n startIndex: arrayStartIndex,\n endIndex: arrayEndIndex,\n startIndexWithBuffer: startIndexWithBuffer,\n endIndexWithBuffer: endIndexWithBuffer,\n scrollStartPosition: scrollPosition,\n scrollEndPosition: scrollPosition + dimensions.viewportLength,\n maxScrollPosition: dimensions.maxScrollPosition\n };\n }\n calculateViewport() {\n let dimensions = this.calculateDimensions();\n let offset = this.getElementsOffset();\n let scrollStartPosition = this.getScrollStartPosition();\n if (scrollStartPosition > dimensions.scrollLength + offset && !(this.parentScroll instanceof Window)) {\n scrollStartPosition = dimensions.scrollLength;\n } else {\n scrollStartPosition -= offset;\n }\n scrollStartPosition = Math.max(0, scrollStartPosition);\n let pageInfo = this.calculatePageInfo(scrollStartPosition, dimensions);\n let newPadding = this.calculatePadding(pageInfo.startIndexWithBuffer, dimensions);\n let newScrollLength = dimensions.scrollLength;\n return {\n startIndex: pageInfo.startIndex,\n endIndex: pageInfo.endIndex,\n startIndexWithBuffer: pageInfo.startIndexWithBuffer,\n endIndexWithBuffer: pageInfo.endIndexWithBuffer,\n padding: Math.round(newPadding),\n scrollLength: Math.round(newScrollLength),\n scrollStartPosition: pageInfo.scrollStartPosition,\n scrollEndPosition: pageInfo.scrollEndPosition,\n maxScrollPosition: pageInfo.maxScrollPosition\n };\n }\n static ɵfac = function VirtualScrollerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || VirtualScrollerComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject('virtual-scroller-default-options', 8));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: VirtualScrollerComponent,\n selectors: [[\"virtual-scroller\"], [\"\", \"virtualScroller\", \"\"]],\n contentQueries: function VirtualScrollerComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 5, ElementRef);\n i0.ɵɵcontentQuery(dirIndex, _c1, 5, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerElementRef = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerElementRef = _t.first);\n }\n },\n viewQuery: function VirtualScrollerComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c2, 5, ElementRef);\n i0.ɵɵviewQuery(_c3, 5, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentElementRef = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.invisiblePaddingElementRef = _t.first);\n }\n },\n hostVars: 6,\n hostBindings: function VirtualScrollerComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"horizontal\", ctx.horizontal)(\"vertical\", !ctx.horizontal)(\"selfScroll\", !ctx.parentScroll);\n }\n },\n inputs: {\n executeRefreshOutsideAngularZone: \"executeRefreshOutsideAngularZone\",\n enableUnequalChildrenSizes: \"enableUnequalChildrenSizes\",\n useMarginInsteadOfTranslate: \"useMarginInsteadOfTranslate\",\n modifyOverflowStyleOfParentScroll: \"modifyOverflowStyleOfParentScroll\",\n stripedTable: \"stripedTable\",\n scrollbarWidth: \"scrollbarWidth\",\n scrollbarHeight: \"scrollbarHeight\",\n childWidth: \"childWidth\",\n childHeight: \"childHeight\",\n ssrChildWidth: \"ssrChildWidth\",\n ssrChildHeight: \"ssrChildHeight\",\n ssrViewportWidth: \"ssrViewportWidth\",\n ssrViewportHeight: \"ssrViewportHeight\",\n bufferAmount: \"bufferAmount\",\n scrollAnimationTime: \"scrollAnimationTime\",\n resizeBypassRefreshThreshold: \"resizeBypassRefreshThreshold\",\n scrollThrottlingTime: \"scrollThrottlingTime\",\n scrollDebounceTime: \"scrollDebounceTime\",\n checkResizeInterval: \"checkResizeInterval\",\n items: \"items\",\n compareItems: \"compareItems\",\n horizontal: \"horizontal\",\n parentScroll: \"parentScroll\"\n },\n outputs: {\n vsUpdate: \"vsUpdate\",\n vsChange: \"vsChange\",\n vsStart: \"vsStart\",\n vsEnd: \"vsEnd\"\n },\n exportAs: [\"virtualScroller\"],\n features: [i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c4,\n decls: 5,\n vars: 0,\n consts: [[\"invisiblePadding\", \"\"], [\"content\", \"\"], [1, \"total-padding\"], [1, \"scrollable-content\"]],\n template: function VirtualScrollerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"div\", 2, 0);\n i0.ɵɵelementStart(2, \"div\", 3, 1);\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd();\n }\n },\n styles: [\"[_nghost-%COMP%]{position:relative;display:block;-webkit-overflow-scrolling:touch}.horizontal.selfScroll[_nghost-%COMP%]{overflow-y:visible;overflow-x:auto}.vertical.selfScroll[_nghost-%COMP%]{overflow-y:auto;overflow-x:visible}.scrollable-content[_ngcontent-%COMP%]{top:0;left:0;width:100%;height:100%;max-width:100vw;max-height:100vh;position:absolute}.scrollable-content[_ngcontent-%COMP%] >*{box-sizing:border-box}.horizontal[_nghost-%COMP%]{white-space:nowrap}.horizontal[_nghost-%COMP%] .scrollable-content[_ngcontent-%COMP%]{display:flex}.horizontal[_nghost-%COMP%] .scrollable-content[_ngcontent-%COMP%] >*{flex-shrink:0;flex-grow:0;white-space:initial}.total-padding[_ngcontent-%COMP%]{width:1px;opacity:0}.horizontal[_nghost-%COMP%] .total-padding[_ngcontent-%COMP%]{height:100%}\"]\n });\n }\n return VirtualScrollerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet VirtualScrollerModule = /*#__PURE__*/(() => {\n class VirtualScrollerModule {\n static ɵfac = function VirtualScrollerModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || VirtualScrollerModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: VirtualScrollerModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: 'virtual-scroller-default-options',\n useFactory: VIRTUAL_SCROLLER_DEFAULT_OPTIONS_FACTORY\n }],\n imports: [CommonModule]\n });\n }\n return VirtualScrollerModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst DROPDOWN_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AngularMultiSelect),\n multi: true\n};\nconst DROPDOWN_CONTROL_VALIDATION = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => AngularMultiSelect),\n multi: true\n};\nconst noop = () => {};\nlet AngularMultiSelect = /*#__PURE__*/(() => {\n class AngularMultiSelect {\n _elementRef;\n cdr;\n filterPipe;\n data;\n settings;\n loading;\n onSelect = new EventEmitter();\n onDeSelect = new EventEmitter();\n onSelectAll = new EventEmitter();\n onDeSelectAll = new EventEmitter();\n onOpen = new EventEmitter();\n onClose = new EventEmitter();\n onScrollToEnd = new EventEmitter();\n onFilterSelectAll = new EventEmitter();\n onFilterDeSelectAll = new EventEmitter();\n onAddFilterNewItem = new EventEmitter();\n onGroupSelect = new EventEmitter();\n onGroupDeSelect = new EventEmitter();\n itemTempl;\n badgeTempl;\n searchTempl;\n searchInput;\n selectedListElem;\n dropdownListElem;\n cuppaDropdown;\n onEscapeDown(event) {\n if (this.settings.escapeToClose) {\n this.closeDropdown();\n }\n }\n onScroll(event) {\n if (this.isActive && this.settings.tagToBody) {\n this.closeDropdown();\n /* const elem = this.cuppaDropdown.nativeElement;\n if(this.settings.autoPosition){\n this.dropDownTop = elem.getBoundingClientRect().y + elem.clientHeight + 1;\n }\n this.dropDownLeft = elem.getBoundingClientRect().x; */\n }\n }\n virtualdata = [];\n searchTerm$ = new Subject();\n selectedItems;\n isActive = false;\n isSelectAll = false;\n isFilterSelectAll = false;\n isInfiniteFilterSelectAll = false;\n groupedData;\n filter;\n chunkArray;\n scrollTop;\n chunkIndex = [];\n cachedItems = [];\n groupCachedItems = [];\n totalRows;\n itemHeight = 41.6;\n screenItemsLen;\n cachedItemsLen;\n totalHeight;\n scroller;\n maxBuffer;\n lastScrolled;\n lastRepaintY;\n selectedListHeight;\n filterLength = 0;\n infiniteFilterLength = 0;\n viewPortItems;\n item;\n dropdownListYOffset = 0;\n subscription;\n dropDownWidth = 0;\n dropDownTop = '';\n dropDownBottom = 'unset';\n dropDownLeft = 0;\n id = Math.random().toString(36).substring(2);\n defaultSettings = {\n singleSelection: false,\n text: 'Select',\n enableCheckAll: true,\n selectAllText: 'Select All',\n unSelectAllText: 'UnSelect All',\n filterSelectAllText: 'Select all filtered results',\n filterUnSelectAllText: 'UnSelect all filtered results',\n enableSearchFilter: false,\n searchBy: [],\n maxHeight: 300,\n badgeShowLimit: 999999999999,\n classes: '',\n disabled: false,\n searchPlaceholderText: 'Search',\n showCheckbox: true,\n noDataLabel: 'No Data Available',\n searchAutofocus: true,\n lazyLoading: false,\n labelKey: 'itemName',\n primaryKey: 'id',\n position: 'bottom',\n autoPosition: true,\n enableFilterSelectAll: true,\n selectGroup: false,\n addNewItemOnFilter: false,\n addNewButtonText: \"Add\",\n escapeToClose: true,\n clearAll: true,\n tagToBody: true\n };\n randomSize = true;\n parseError;\n filteredList = [];\n virtualScroollInit = false;\n virtualScroller;\n isDisabledItemPresent = false;\n constructor(_elementRef, cdr, filterPipe) {\n this._elementRef = _elementRef;\n this.cdr = cdr;\n this.filterPipe = filterPipe;\n this.searchTerm$.asObservable().pipe(debounceTime(1000), distinctUntilChanged(), tap(term => term)).subscribe(val => {\n this.filterInfiniteList(val);\n });\n }\n ngOnInit() {\n this.settings = Object.assign(this.defaultSettings, this.settings);\n this.cachedItems = this.cloneArray(this.data);\n if (this.settings.position == 'top') {\n setTimeout(() => {\n this.selectedListHeight = {\n val: 0\n };\n this.selectedListHeight.val = this.selectedListElem.nativeElement.clientHeight;\n });\n }\n setTimeout(() => {\n this.calculateDropdownDirection();\n });\n this.virtualScroollInit = false;\n }\n onKeyUp(evt) {\n this.searchTerm$.next(evt.target.value);\n }\n ngOnChanges(changes) {\n if (changes.data && !changes.data.firstChange) {\n if (this.settings.groupBy) {\n this.groupedData = this.transformData(this.data, this.settings.groupBy);\n if (this.data.length == 0) {\n this.selectedItems = [];\n }\n this.groupCachedItems = this.cloneArray(this.groupedData);\n }\n this.cachedItems = this.cloneArray(this.data);\n }\n if (changes.settings && !changes.settings.firstChange) {\n this.settings = Object.assign(this.defaultSettings, this.settings);\n }\n if (changes.loading) {}\n if (this.settings.lazyLoading && this.virtualScroollInit && changes.data) {\n this.virtualdata = changes.data.currentValue;\n }\n }\n ngDoCheck() {\n if (this.selectedItems) {\n if (this.selectedItems.length == 0 || this.data.length == 0 || this.selectedItems.length < this.data.length) {\n this.isSelectAll = false;\n }\n }\n }\n ngAfterViewInit() {\n if (this.settings.lazyLoading) {\n // this._elementRef.nativeElement.getElementsByClassName(\"lazyContainer\")[0].addEventListener('scroll', this.onScroll.bind(this));\n }\n }\n ngAfterViewChecked() {\n if (this.selectedListElem.nativeElement.clientHeight && this.settings.position == 'top' && this.selectedListHeight) {\n this.selectedListHeight.val = this.selectedListElem.nativeElement.clientHeight;\n this.cdr.detectChanges();\n }\n //this.calculateDropdownDirection();\n }\n onItemClick(item, index, evt) {\n if (item.disabled) {\n return;\n }\n if (this.settings.disabled) {\n return;\n }\n let found = this.isSelected(item);\n let limit = this.selectedItems.length < this.settings.limitSelection ? true : false;\n if (!found) {\n if (this.settings.limitSelection) {\n if (limit) {\n this.addSelected(item);\n this.onSelect.emit(item);\n }\n } else {\n this.addSelected(item);\n this.onSelect.emit(item);\n }\n } else {\n this.removeSelected(item);\n this.onDeSelect.emit(item);\n }\n if (this.isSelectAll || this.data.length > this.selectedItems.length) {\n this.isSelectAll = false;\n }\n if (this.data.length == this.selectedItems.length) {\n this.isSelectAll = true;\n }\n if (this.settings.groupBy) {\n this.updateGroupInfo(item);\n }\n }\n validate(c) {\n return null;\n }\n onTouchedCallback = noop;\n onChangeCallback = noop;\n writeValue(value) {\n if (value !== undefined && value !== null && value !== '') {\n if (this.settings.singleSelection) {\n if (this.settings.groupBy) {\n this.groupedData = this.transformData(this.data, this.settings.groupBy);\n this.groupCachedItems = this.cloneArray(this.groupedData);\n this.selectedItems = [value[0]];\n } else {\n try {\n if (value.length > 1) {\n this.selectedItems = [value[0]];\n throw new MyException(404, {\n \"msg\": \"Single Selection Mode, Selected Items cannot have more than one item.\"\n });\n } else {\n this.selectedItems = value;\n }\n } catch (e) {\n console.error(e.body.msg);\n }\n }\n } else {\n if (this.settings.limitSelection) {\n this.selectedItems = value.slice(0, this.settings.limitSelection);\n } else {\n this.selectedItems = value;\n }\n if (this.selectedItems != null && this.selectedItems.length === this.data.length && this.data.length > 0) {\n this.isSelectAll = true;\n }\n if (this.settings.groupBy) {\n this.groupedData = this.transformData(this.data, this.settings.groupBy);\n this.groupCachedItems = this.cloneArray(this.groupedData);\n }\n }\n } else {\n this.selectedItems = [];\n }\n }\n //From ControlValueAccessor interface\n registerOnChange(fn) {\n this.onChangeCallback = fn;\n }\n //From ControlValueAccessor interface\n registerOnTouched(fn) {\n this.onTouchedCallback = fn;\n }\n trackByFn(index, item) {\n return item[this.settings.primaryKey];\n }\n isSelected(clickedItem) {\n if (clickedItem.disabled) {\n return false;\n }\n let found = false;\n this.selectedItems && this.selectedItems.forEach(item => {\n if (clickedItem[this.settings.primaryKey] === item[this.settings.primaryKey]) {\n found = true;\n }\n });\n return found;\n }\n addSelected(item) {\n if (item.disabled) {\n return;\n }\n if (this.settings.singleSelection) {\n this.selectedItems = [];\n this.selectedItems.push(item);\n this.closeDropdown();\n } else this.selectedItems = [...this.selectedItems, item];\n this.onChangeCallback(this.selectedItems);\n this.onTouchedCallback(this.selectedItems);\n }\n removeSelected(clickedItem) {\n this.selectedItems && this.selectedItems.forEach(item => {\n if (clickedItem[this.settings.primaryKey] === item[this.settings.primaryKey]) {\n this.selectedItems.splice(this.selectedItems.indexOf(item), 1);\n }\n });\n this.onChangeCallback(this.selectedItems);\n this.onTouchedCallback(this.selectedItems);\n }\n toggleDropdown(evt) {\n if (this.settings.disabled) {\n return;\n }\n this.isActive = !this.isActive;\n if (this.isActive) {\n this.openDropdown();\n } else {\n this.closeDropdown();\n }\n if (this.settings.lazyLoading) {\n this.virtualdata = this.data;\n this.virtualScroollInit = true;\n }\n evt.preventDefault();\n }\n openDropdown() {\n if (this.settings.disabled) {\n return;\n }\n this.isActive = true;\n this.calculateDropdownDirection();\n if (this.settings.searchAutofocus && this.searchInput && this.settings.enableSearchFilter && !this.searchTempl) {\n setTimeout(() => {\n this.searchInput.nativeElement.focus();\n }, 0);\n }\n this.onOpen.emit(true);\n }\n closeDropdown() {\n if (this.searchInput && this.settings.lazyLoading) {\n this.searchInput.nativeElement.value = \"\";\n }\n if (this.searchInput) {\n this.searchInput.nativeElement.value = \"\";\n }\n this.filter = \"\";\n this.isActive = false;\n this.searchTerm$.next('');\n this.onClose.emit(false);\n }\n closeDropdownOnClickOut() {\n if (this.isActive) {\n if (this.searchInput && this.settings.lazyLoading) {\n this.searchInput.nativeElement.value = \"\";\n }\n if (this.searchInput) {\n this.searchInput.nativeElement.value = \"\";\n }\n this.filter = \"\";\n this.isActive = false;\n this.clearSearch();\n this.searchTerm$.next('');\n this.onClose.emit(false);\n }\n }\n toggleSelectAll(event) {\n if (!this.isSelectAll) {\n this.selectedItems = [];\n if (this.settings.groupBy) {\n this.groupedData.forEach(obj => {\n obj.selected = !obj.disabled;\n });\n this.groupCachedItems.forEach(obj => {\n obj.selected = !obj.disabled;\n });\n }\n // this.selectedItems = this.data.slice();\n this.selectedItems = this.data.filter(individualData => !individualData.disabled);\n this.isSelectAll = true;\n this.onChangeCallback(this.selectedItems);\n this.onTouchedCallback(this.selectedItems);\n this.onSelectAll.emit(this.selectedItems);\n } else {\n if (this.settings.groupBy) {\n this.groupedData.forEach(obj => {\n obj.selected = false;\n });\n this.groupCachedItems.forEach(obj => {\n obj.selected = false;\n });\n }\n this.selectedItems = [];\n this.isSelectAll = false;\n this.onChangeCallback(this.selectedItems);\n this.onTouchedCallback(this.selectedItems);\n this.onDeSelectAll.emit(this.selectedItems);\n }\n setTimeout(() => {\n this.calculateDropdownDirection();\n });\n event.stopPropagation();\n }\n filterGroupedList() {\n if (this.filter == \"\" || this.filter == null) {\n this.clearSearch();\n return;\n }\n this.groupedData = this.cloneArray(this.groupCachedItems);\n this.groupedData = this.groupedData.filter(obj => {\n let arr = [];\n if (obj[this.settings.labelKey].toLowerCase().indexOf(this.filter.toLowerCase()) > -1) {\n arr = obj.list;\n } else {\n arr = obj.list.filter(t => {\n return t[this.settings.labelKey].toLowerCase().indexOf(this.filter.toLowerCase()) > -1;\n });\n }\n obj.list = arr;\n if (obj[this.settings.labelKey].toLowerCase().indexOf(this.filter.toLowerCase()) > -1) {\n return arr;\n } else {\n return arr.some(cat => {\n return cat[this.settings.labelKey].toLowerCase().indexOf(this.filter.toLowerCase()) > -1;\n });\n }\n });\n }\n toggleFilterSelectAll() {\n if (!this.isFilterSelectAll) {\n let added = [];\n if (this.settings.groupBy) {\n this.groupedData.forEach(item => {\n item.sele;\n if (item.list) {\n item.list.forEach(el => {\n if (!this.isSelected(el)) {\n this.addSelected(el);\n added.push(el);\n }\n });\n }\n this.updateGroupInfo(item);\n });\n this.filteredList.forEach(el => {\n if (!this.isSelected(el) && !el.hasOwnProperty('grpTitle')) {\n this.addSelected(el);\n added.push(el);\n }\n });\n } else {\n this.filteredList.forEach(item => {\n if (!this.isSelected(item)) {\n this.addSelected(item);\n added.push(item);\n }\n });\n }\n this.isFilterSelectAll = true;\n this.onFilterSelectAll.emit(added);\n } else {\n let removed = [];\n if (this.settings.groupBy) {\n this.groupedData.forEach(item => {\n if (item.list) {\n item.list.forEach(el => {\n if (this.isSelected(el)) {\n this.removeSelected(el);\n removed.push(el);\n }\n });\n }\n this.updateGroupInfo(item);\n });\n this.filteredList.forEach(el => {\n if (this.isSelected(el)) {\n this.removeSelected(el);\n removed.push(el);\n }\n });\n } else {\n this.filteredList.forEach(item => {\n if (this.isSelected(item)) {\n this.removeSelected(item);\n removed.push(item);\n }\n });\n }\n this.isFilterSelectAll = false;\n this.onFilterDeSelectAll.emit(removed);\n }\n }\n toggleInfiniteFilterSelectAll() {\n if (!this.isInfiniteFilterSelectAll) {\n this.virtualdata.forEach(item => {\n if (!this.isSelected(item)) {\n this.addSelected(item);\n }\n });\n this.isInfiniteFilterSelectAll = true;\n } else {\n this.virtualdata.forEach(item => {\n if (this.isSelected(item)) {\n this.removeSelected(item);\n }\n });\n this.isInfiniteFilterSelectAll = false;\n }\n }\n clearSearch() {\n if (this.settings.groupBy) {\n this.groupedData = [];\n this.groupedData = this.cloneArray(this.groupCachedItems);\n }\n this.filter = \"\";\n this.isFilterSelectAll = false;\n this.searchTerm$.next('');\n this.data = this.cachedItems;\n }\n onFilterChange(data) {\n if (this.filter && this.filter == \"\" || data.length == 0) {\n this.isFilterSelectAll = false;\n this.data = this.cachedItems.slice();\n }\n let cnt = 0;\n data.forEach(item => {\n if (!item.hasOwnProperty('grpTitle') && this.isSelected(item)) {\n cnt++;\n }\n });\n if (cnt > 0 && this.filterLength == cnt) {\n this.isFilterSelectAll = true;\n } else if (cnt > 0 && this.filterLength != cnt) {\n this.isFilterSelectAll = false;\n }\n this.data = data;\n }\n cloneArray(arr) {\n let i, copy;\n if (Array.isArray(arr)) {\n return JSON.parse(JSON.stringify(arr));\n } else if (typeof arr === 'object') {\n throw 'Cannot clone array containing an object!';\n } else {\n return arr;\n }\n }\n updateGroupInfo(item) {\n if (item.disabled) {\n return;\n }\n let key = this.settings.groupBy;\n this.groupedData.forEach(obj => {\n let cnt = 0;\n if (obj.grpTitle && item[key] == obj[key]) {\n if (obj.list) {\n obj.list.forEach(el => {\n if (this.isSelected(el)) {\n cnt++;\n }\n });\n }\n }\n if (obj.list && cnt === obj.list.length && item[key] == obj[key]) {\n obj.selected = true;\n } else if (obj.list && cnt != obj.list.length && item[key] == obj[key]) {\n obj.selected = false;\n }\n });\n this.groupCachedItems.forEach(obj => {\n let cnt = 0;\n if (obj.grpTitle && item[key] == obj[key]) {\n if (obj.list) {\n obj.list.forEach(el => {\n if (this.isSelected(el)) {\n cnt++;\n }\n });\n }\n }\n if (obj.list && cnt === obj.list.length && item[key] == obj[key]) {\n obj.selected = true;\n } else if (obj.list && cnt != obj.list.length && item[key] == obj[key]) {\n obj.selected = false;\n }\n });\n }\n transformData(arr, field) {\n const groupedObj = arr.reduce((prev, cur) => {\n if (!prev[cur[field]]) {\n prev[cur[field]] = [cur];\n } else {\n prev[cur[field]].push(cur);\n }\n return prev;\n }, {});\n const tempArr = [];\n Object.keys(groupedObj).map(x => {\n let obj = {};\n let disabledChildrens = [];\n obj[\"grpTitle\"] = true;\n obj[this.settings.labelKey] = x;\n obj[this.settings.groupBy] = x;\n obj['selected'] = false;\n obj['list'] = [];\n let cnt = 0;\n groupedObj[x].forEach(item => {\n item['list'] = [];\n if (item.disabled) {\n this.isDisabledItemPresent = true;\n disabledChildrens.push(item);\n }\n obj.list.push(item);\n if (this.isSelected(item)) {\n cnt++;\n }\n });\n if (cnt == obj.list.length) {\n obj.selected = true;\n } else {\n obj.selected = false;\n }\n // Check if current group item's all childrens are disabled or not\n obj['disabled'] = disabledChildrens.length === groupedObj[x].length;\n tempArr.push(obj);\n // obj.list.forEach((item: any) => {\n // tempArr.push(item);\n // });\n });\n return tempArr;\n }\n filterInfiniteList(evt) {\n let filteredElems = [];\n if (this.settings.groupBy) {\n this.groupedData = this.groupCachedItems.slice();\n } else {\n this.data = this.cachedItems.slice();\n this.virtualdata = this.cachedItems.slice();\n }\n if ((evt != null || evt != '') && !this.settings.groupBy) {\n if (this.settings.searchBy.length > 0) {\n for (let t = 0; t < this.settings.searchBy.length; t++) {\n this.virtualdata.filter(el => {\n if (el[this.settings.searchBy[t].toString()].toString().toLowerCase().indexOf(evt.toString().toLowerCase()) >= 0) {\n filteredElems.push(el);\n }\n });\n }\n } else {\n this.virtualdata.filter(function (el) {\n for (let prop in el) {\n if (el[prop].toString().toLowerCase().indexOf(evt.toString().toLowerCase()) >= 0) {\n filteredElems.push(el);\n break;\n }\n }\n });\n }\n this.virtualdata = [];\n this.virtualdata = filteredElems;\n this.infiniteFilterLength = this.virtualdata.length;\n }\n if (evt.toString() != '' && this.settings.groupBy) {\n this.groupedData.filter(function (el) {\n if (el.hasOwnProperty('grpTitle')) {\n filteredElems.push(el);\n } else {\n for (let prop in el) {\n if (el[prop].toString().toLowerCase().indexOf(evt.toString().toLowerCase()) >= 0) {\n filteredElems.push(el);\n break;\n }\n }\n }\n });\n this.groupedData = [];\n this.groupedData = filteredElems;\n this.infiniteFilterLength = this.groupedData.length;\n } else if (evt.toString() == '' && this.cachedItems.length > 0) {\n this.virtualdata = [];\n this.virtualdata = this.cachedItems;\n this.infiniteFilterLength = 0;\n }\n if (this.virtualScroller) {\n this.virtualScroller.refresh();\n }\n }\n resetInfiniteSearch() {\n this.filter = \"\";\n this.isInfiniteFilterSelectAll = false;\n this.virtualdata = [];\n this.virtualdata = this.cachedItems;\n this.groupedData = this.groupCachedItems;\n this.searchTerm$.next('');\n this.infiniteFilterLength = 0;\n }\n onScrollEnd(e) {\n if (e.endIndex === this.data.length - 1 || e.startIndex === 0) {}\n this.onScrollToEnd.emit(e);\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n selectGroup(item) {\n if (item.disabled) {\n return;\n }\n if (item.selected) {\n item.selected = false;\n item.list.forEach(obj => {\n this.removeSelected(obj);\n });\n this.onGroupDeSelect.emit(item);\n this.updateGroupInfo(item);\n } else {\n item.selected = true;\n item.list.forEach(obj => {\n if (!this.isSelected(obj)) {\n this.addSelected(obj);\n }\n });\n this.onGroupSelect.emit(item);\n this.updateGroupInfo(item);\n }\n }\n addFilterNewItem() {\n this.onAddFilterNewItem.emit(this.filter);\n this.filterPipe.transform(this.data, this.filter, this.settings.searchBy);\n }\n calculateDropdownDirection() {\n let shouldOpenTowardsTop = this.settings.position == 'top';\n const elem = this.cuppaDropdown.nativeElement;\n const dropdownWidth = elem.clientWidth;\n this.dropDownWidth = dropdownWidth;\n this.dropDownLeft = this.settings.tagToBody ? elem.getBoundingClientRect().x : 'unset';\n if (this.settings.position == 'top' && !this.settings.autoPosition) {\n this.openTowardsTop(true);\n } else if (this.settings.position == 'bottom' && !this.settings.autoPosition) {\n this.openTowardsTop(false);\n }\n if (this.settings.autoPosition) {\n const dropdownHeight = this.defaultSettings.maxHeight;\n const viewportHeight = document.documentElement.clientHeight;\n const selectedListBounds = this.selectedListElem.nativeElement.getBoundingClientRect();\n const spaceOnTop = selectedListBounds.top;\n const spaceOnBottom = viewportHeight - selectedListBounds.top;\n if (spaceOnBottom < spaceOnTop && dropdownHeight < spaceOnTop) {\n this.openTowardsTop(true);\n } else {\n this.openTowardsTop(false);\n }\n // Keep preference if there is not enough space on either the top or bottom\n /* \t\t\tif (spaceOnTop || spaceOnBottom) {\n if (shouldOpenTowardsTop) {\n shouldOpenTowardsTop = spaceOnTop;\n } else {\n shouldOpenTowardsTop = !spaceOnBottom;\n }\n } */\n }\n }\n openTowardsTop(value) {\n const elem = this.cuppaDropdown.nativeElement;\n if (value && this.selectedListElem.nativeElement.clientHeight) {\n this.dropdownListYOffset = 15 - this.selectedListElem.nativeElement.clientHeight;\n if (this.settings.tagToBody) {\n this.dropDownTop = elem.getBoundingClientRect().y - this.selectedListElem.nativeElement.clientHeight * 2 - 15 - this.defaultSettings.maxHeight + 'px';\n } else {\n this.dropDownBottom = this.selectedListElem.nativeElement.clientHeight + 15 + 'px';\n }\n this.settings.position = 'top';\n } else {\n if (this.settings.tagToBody) {\n this.dropDownTop = elem.getBoundingClientRect().y + elem.clientHeight + 1 + 'px';\n } else {\n this.dropDownTop = 'unset';\n this.dropDownBottom = 'unset';\n }\n this.dropdownListYOffset = 0;\n this.settings.position = 'bottom';\n }\n }\n clearSelection(e) {\n if (this.settings.groupBy) {\n this.groupCachedItems.forEach(obj => {\n obj.selected = false;\n });\n }\n this.clearSearch();\n this.selectedItems = [];\n this.isSelectAll = false;\n this.onChangeCallback(this.selectedItems);\n this.onTouchedCallback(this.selectedItems);\n this.onDeSelectAll.emit(this.selectedItems);\n }\n filteritems(evt) {\n this.filteredList = this.filterPipe.transform(this.cachedItems, evt.target.value, this.settings.searchBy);\n if (this.filteredList) {\n let len = 0;\n this.filteredList.forEach((obj, i) => {\n if (obj.disabled) {\n this.isDisabledItemPresent = true;\n }\n if (!obj.hasOwnProperty('grpTitle')) {\n len++;\n }\n });\n this.filterLength = len;\n }\n this.onFilterChange(this.filteredList);\n }\n static ɵfac = function AngularMultiSelect_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AngularMultiSelect)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(ListFilterPipe));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AngularMultiSelect,\n selectors: [[\"angular2-multiselect\"]],\n contentQueries: function AngularMultiSelect_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, Item, 5);\n i0.ɵɵcontentQuery(dirIndex, Badge, 5);\n i0.ɵɵcontentQuery(dirIndex, Search, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemTempl = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.badgeTempl = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.searchTempl = _t.first);\n }\n },\n viewQuery: function AngularMultiSelect_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c5, 5);\n i0.ɵɵviewQuery(_c6, 5);\n i0.ɵɵviewQuery(_c7, 5);\n i0.ɵɵviewQuery(_c8, 5);\n i0.ɵɵviewQuery(VirtualScrollerComponent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.searchInput = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.selectedListElem = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdownListElem = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.cuppaDropdown = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.virtualScroller = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function AngularMultiSelect_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keyup.escape\", function AngularMultiSelect_keyup_escape_HostBindingHandler($event) {\n return ctx.onEscapeDown($event);\n }, false, i0.ɵɵresolveDocument)(\"scroll\", function AngularMultiSelect_scroll_HostBindingHandler($event) {\n return ctx.onScroll($event);\n }, false, i0.ɵɵresolveWindow);\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.defaultSettings.classes);\n }\n },\n inputs: {\n data: \"data\",\n settings: \"settings\",\n loading: \"loading\"\n },\n outputs: {\n onSelect: \"onSelect\",\n onDeSelect: \"onDeSelect\",\n onSelectAll: \"onSelectAll\",\n onDeSelectAll: \"onDeSelectAll\",\n onOpen: \"onOpen\",\n onClose: \"onClose\",\n onScrollToEnd: \"onScrollToEnd\",\n onFilterSelectAll: \"onFilterSelectAll\",\n onFilterDeSelectAll: \"onFilterDeSelectAll\",\n onAddFilterNewItem: \"onAddFilterNewItem\",\n onGroupSelect: \"onGroupSelect\",\n onGroupDeSelect: \"onGroupDeSelect\"\n },\n features: [i0.ɵɵProvidersFeature([DROPDOWN_CONTROL_VALUE_ACCESSOR, DROPDOWN_CONTROL_VALIDATION]), i0.ɵɵNgOnChangesFeature],\n decls: 33,\n vars: 50,\n consts: [[\"cuppaDropdown\", \"\"], [\"selectedList\", \"\"], [\"dropdownList\", \"\"], [\"searchInput\", \"\"], [\"scroll\", \"\"], [\"scroll2\", \"\"], [\"scroll3\", \"\"], [\"scroll4\", \"\"], [1, \"cuppa-dropdown\", 3, \"clickOutside\"], [1, \"selected-list\"], [1, \"c-btn\", 3, \"click\", \"ngClass\"], [4, \"ngIf\"], [\"class\", \"c-list\", 4, \"ngIf\"], [\"class\", \"countplaceholder\", 4, \"ngIf\"], [\"class\", \"c-remove clear-all\", 3, \"click\", 4, \"ngIf\"], [\"class\", \"c-angle-down\", 4, \"ngIf\"], [\"class\", \"c-angle-up\", 4, \"ngIf\"], [1, \"dropdown-list\", \"animated\", \"fadeIn\", 3, \"ngClass\", \"hidden\"], [1, \"arrow-2\", 3, \"ngClass\"], [3, \"ngClass\"], [1, \"list-area\", 3, \"ngClass\"], [\"class\", \"pure-checkbox select-all\", 4, \"ngIf\"], [\"class\", \"loading-icon\", \"src\", \"assets/img/loading.gif\", 4, \"ngIf\"], [\"class\", \"list-filter\", 4, \"ngIf\"], [\"class\", \"filter-select-all\", 4, \"ngIf\"], [\"style\", \"overflow: auto;\", 3, \"maxHeight\", 4, \"ngIf\"], [\"class\", \"list-message\", 4, \"ngIf\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [1, \"c-list\"], [\"class\", \"c-token\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [1, \"c-token\"], [\"class\", \"c-label\", 4, \"ngIf\"], [1, \"c-remove\", 3, \"click\"], [3, \"name\"], [1, \"c-label\"], [3, \"data\", \"item\"], [\"class\", \"c-token\", 3, \"hidden\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [1, \"c-token\", 3, \"hidden\"], [1, \"countplaceholder\"], [1, \"c-remove\", \"clear-all\", 3, \"click\"], [1, \"c-angle-down\"], [1, \"c-angle-up\"], [1, \"pure-checkbox\", \"select-all\"], [\"type\", \"checkbox\", 3, \"checked\", \"disabled\", \"id\", \"change\", 4, \"ngIf\"], [3, \"for\"], [3, \"hidden\"], [\"type\", \"checkbox\", 3, \"change\", \"checked\", \"disabled\", \"id\"], [\"src\", \"assets/img/loading.gif\", 1, \"loading-icon\"], [1, \"list-filter\"], [\"id\", \"searchIcon\", 1, \"c-search\"], [\"class\", \"c-clear\", 3, \"hidden\", \"click\", 4, \"ngIf\"], [\"class\", \"c-input\", \"type\", \"text\", \"aria-labelledby\", \"searchIcon\", 3, \"placeholder\", \"ngModel\", \"ngModelChange\", \"keyup\", 4, \"ngIf\"], [3, \"data\", \"item\", 4, \"ngIf\"], [1, \"c-clear\", 3, \"click\", \"hidden\"], [\"type\", \"text\", \"aria-labelledby\", \"searchIcon\", 1, \"c-input\", 3, \"ngModelChange\", \"keyup\", \"placeholder\", \"ngModel\"], [1, \"filter-select-all\"], [\"class\", \"pure-checkbox select-all\", 3, \"click\", 4, \"ngIf\"], [1, \"pure-checkbox\", \"select-all\", 3, \"click\"], [\"type\", \"checkbox\", \"aria-labelledby\", \"optionName\", \"aria-label\", \"option\", 3, \"checked\", \"disabled\"], [\"type\", \"checkbox\", \"aria-labelledby\", \"option\", 3, \"checked\", \"disabled\"], [\"class\", \"btn-container\", 4, \"ngIf\"], [1, \"btn-container\"], [1, \"c-btn\", \"btn-iceblue\", 3, \"click\"], [2, \"overflow\", \"auto\"], [1, \"lazyContainer\"], [\"class\", \"pure-checkbox\", 3, \"ngClass\", \"click\", 4, \"ngFor\", \"ngForOf\"], [1, \"pure-checkbox\", 3, \"click\", \"ngClass\"], [\"type\", \"checkbox\", \"aria-labelledby\", \"option\", 3, \"checked\", \"disabled\", 4, \"ngIf\"], [\"virtualScroller\", \"\", 1, \"lazyContainer\", 3, \"vsStart\", \"vsEnd\", \"enableUnequalChildrenSizes\", \"items\", \"ngStyle\"], [\"type\", \"checkbox\", 3, \"checked\", \"disabled\", 4, \"ngIf\"], [\"type\", \"checkbox\", 3, \"checked\", \"disabled\"], [4, \"ngFor\", \"ngForOf\"], [\"class\", \"pure-checkbox\", 3, \"ngClass\", \"click\", 4, \"ngIf\"], [\"class\", \"pure-checkbox\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"pure-checkbox\", 3, \"ngClass\"], [3, \"vsUpdate\", \"vsEnd\", \"items\", \"ngStyle\"], [1, \"list-message\"]],\n template: function AngularMultiSelect_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 8, 0);\n i0.ɵɵlistener(\"clickOutside\", function AngularMultiSelect_Template_div_clickOutside_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.closeDropdownOnClickOut());\n });\n i0.ɵɵelementStart(2, \"div\", 9, 1)(4, \"div\", 10);\n i0.ɵɵlistener(\"click\", function AngularMultiSelect_Template_div_click_4_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.toggleDropdown($event));\n });\n i0.ɵɵtemplate(5, AngularMultiSelect_span_5_Template, 2, 1, \"span\", 11)(6, AngularMultiSelect_span_6_Template, 2, 2, \"span\", 11)(7, AngularMultiSelect_span_7_Template, 2, 2, \"span\", 12)(8, AngularMultiSelect_div_8_Template, 2, 2, \"div\", 12)(9, AngularMultiSelect_span_9_Template, 2, 1, \"span\", 13)(10, AngularMultiSelect_span_10_Template, 2, 1, \"span\", 14)(11, AngularMultiSelect_span_11_Template, 2, 1, \"span\", 15)(12, AngularMultiSelect_span_12_Template, 2, 1, \"span\", 16);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(13, \"div\", 17, 2);\n i0.ɵɵelement(15, \"div\", 18)(16, \"div\", 19);\n i0.ɵɵelementStart(17, \"div\", 20);\n i0.ɵɵtemplate(18, AngularMultiSelect_div_18_Template, 7, 6, \"div\", 21)(19, AngularMultiSelect_img_19_Template, 1, 0, \"img\", 22)(20, AngularMultiSelect_div_20_Template, 9, 7, \"div\", 23)(21, AngularMultiSelect_div_21_Template, 3, 2, \"div\", 24)(22, AngularMultiSelect_div_22_Template, 2, 1, \"div\", 24)(23, AngularMultiSelect_div_23_Template, 2, 1, \"div\", 24)(24, AngularMultiSelect_div_24_Template, 3, 3, \"div\", 25)(25, AngularMultiSelect_div_25_Template, 4, 8, \"div\", 25)(26, AngularMultiSelect_div_26_Template, 3, 3, \"div\", 25)(27, AngularMultiSelect_div_27_Template, 4, 8, \"div\", 25)(28, AngularMultiSelect_div_28_Template, 4, 8, \"div\", 25)(29, AngularMultiSelect_div_29_Template, 3, 3, \"div\", 25)(30, AngularMultiSelect_div_30_Template, 5, 12, \"div\", 25)(31, AngularMultiSelect_div_31_Template, 3, 3, \"div\", 25)(32, AngularMultiSelect_h5_32_Template, 2, 1, \"h5\", 26);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(38, _c9, ctx.settings.disabled));\n i0.ɵɵattribute(\"tabindex\", 0);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx.selectedItems == null ? null : ctx.selectedItems.length) == 0);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.settings.singleSelection && !ctx.badgeTempl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx.selectedItems == null ? null : ctx.selectedItems.length) > 0 && ctx.settings.singleSelection && ctx.badgeTempl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx.selectedItems == null ? null : ctx.selectedItems.length) > 0 && !ctx.settings.singleSelection);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx.selectedItems == null ? null : ctx.selectedItems.length) > ctx.settings.badgeShowLimit);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.settings.clearAll && (ctx.selectedItems == null ? null : ctx.selectedItems.length) > 0 && !ctx.settings.disabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.isActive);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isActive);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"width\", ctx.dropDownWidth, \"px\")(\"top\", ctx.dropDownTop)(\"bottom\", ctx.dropDownBottom)(\"left\", ctx.dropDownLeft, \"px\");\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(40, _c10, ctx.settings.tagToBody))(\"hidden\", !ctx.isActive);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(42, _c11, ctx.settings.position == \"bottom\", ctx.settings.position == \"top\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(45, _c11, ctx.settings.position == \"bottom\", ctx.settings.position == \"top\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(48, _c12, ctx.settings.singleSelection));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.settings.enableCheckAll && !ctx.settings.singleSelection && !ctx.settings.limitSelection && (ctx.data == null ? null : ctx.data.length) > 0 && !ctx.isDisabledItemPresent);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.loading);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.settings.enableSearchFilter);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.settings.lazyLoading && ctx.settings.enableFilterSelectAll && !ctx.isDisabledItemPresent);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.settings.lazyLoading && ctx.settings.enableFilterSelectAll && !ctx.isDisabledItemPresent && !ctx.settings.singleSelection);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.filter == null ? null : ctx.filter.length);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.settings.groupBy && !ctx.settings.lazyLoading && ctx.itemTempl == undefined);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.settings.groupBy && ctx.settings.lazyLoading && ctx.itemTempl == undefined);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.settings.groupBy && !ctx.settings.lazyLoading && ctx.itemTempl != undefined);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.settings.groupBy && ctx.settings.lazyLoading && ctx.itemTempl != undefined);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.settings.groupBy && ctx.settings.lazyLoading && ctx.itemTempl != undefined);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.settings.groupBy && !ctx.settings.lazyLoading && ctx.itemTempl != undefined);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.settings.groupBy && ctx.settings.lazyLoading && ctx.itemTempl == undefined);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.settings.groupBy && !ctx.settings.lazyLoading && ctx.itemTempl == undefined);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx.data == null ? null : ctx.data.length) == 0);\n }\n },\n dependencies: () => [i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgStyle, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, VirtualScrollerComponent, ClickOutsideDirective, TemplateRenderer, CIcon],\n styles: [\"virtual-scroll{display:block;width:100%}.cuppa-dropdown{position:relative}.c-btn{display:inline-block;border-width:1px;line-height:1.25;border-radius:3px;font-size:.85rem;padding:5px 10px;cursor:pointer;align-items:center;min-height:38px}.c-btn.disabled{background:#ccc}.selected-list .c-list{float:left;padding:0;margin:0;width:calc(100% - 20px)}.selected-list .c-list .c-token{list-style:none;padding:4px 22px 4px 8px;border-radius:2px;margin-right:4px;margin-top:2px;float:left;position:relative}.selected-list .c-list .c-token .c-label{display:block;float:left}.selected-list .c-list .c-token .c-remove{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:8px}.selected-list .c-list .c-token .c-remove svg{fill:#fff}.selected-list .fa-angle-down,.selected-list .fa-angle-up{font-size:15pt;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.selected-list .c-angle-down,.selected-list .c-angle-up{width:12px;height:12px;position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none}.selected-list .c-angle-down svg,.selected-list .c-angle-up svg{fill:#333}.selected-list .countplaceholder{position:absolute;right:45px;top:50%;transform:translateY(-50%)}.selected-list .c-btn{width:100%;padding:5px 10px;cursor:pointer;display:flex;position:relative}.selected-list .c-btn .c-icon{position:absolute;right:5px;top:50%;transform:translateY(-50%)}.dropdown-list.tagToBody{position:fixed}.dropdown-list{position:absolute;padding-top:14px;width:100%;z-index:99999}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list ul li{padding:10px;cursor:pointer;text-align:left}.dropdown-list ul li:first-child{padding-top:10px}.dropdown-list ul li:last-child{padding-bottom:10px}.dropdown-list ::-webkit-scrollbar{width:8px}.dropdown-list ::-webkit-scrollbar-thumb{background:#ccc;border-radius:5px}.dropdown-list ::-webkit-scrollbar-track{background:#f2f2f2}.arrow-up,.arrow-down{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-bottom:15px solid #fff;margin-left:15px;position:absolute;top:0}.arrow-down{bottom:-14px;top:unset;transform:rotate(180deg)}.arrow-2{border-bottom:15px solid #ccc;top:-1px}.arrow-down.arrow-2{top:unset;bottom:-16px}.list-area{border:1px solid #ccc;border-radius:3px;background:#fff;margin:0}.select-all{padding:10px;border-bottom:1px solid #ccc;text-align:left}.list-filter{border-bottom:1px solid #ccc;position:relative;padding-left:35px;height:35px}.list-filter input{border:0px;width:100%;height:100%;padding:0}.list-filter input:focus{outline:none}.list-filter .c-search{position:absolute;top:4px;left:10px;width:15px;height:15px}.list-filter .c-search svg{fill:#888}.list-filter .c-clear{position:absolute;top:4px;right:10px;width:15px;height:15px}.list-filter .c-clear svg{fill:#888}.pure-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pure-checkbox input[type=checkbox]:focus+label:before,.pure-checkbox input[type=checkbox]:hover+label:before{background-color:none}.pure-checkbox input[type=checkbox]:active+label:before{transition-duration:0s}.pure-checkbox input[type=checkbox]:disabled+label{color:#ccc}.pure-checkbox input[type=checkbox]+label{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;user-select:none;cursor:pointer;margin:0;font-weight:300}.pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\\\"\\\";position:absolute;top:50%;left:0;width:15px;height:15px;margin-top:-9px;text-align:center;transition:all .4s ease;border-radius:3px}.pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\\\"\\\";position:absolute;top:50%;left:0;width:15px;height:15px;margin-top:-9px;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out}.pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.pure-checkbox input[type=checkbox]:disabled:focus+label:before .pure-checkbox input[type=checkbox]:disabled:hover+label:before{background-color:inherit}.pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.pure-checkbox input[type=checkbox]+label:after{background-color:transparent;top:50%;left:3px;width:9px;height:4px;margin-top:-5px;border-style:solid;border-width:0 0 2px 2px;border-image:none;transform:rotate(-45deg) scale(0)}.pure-checkbox input[type=checkbox]:checked+label:after{content:\\\"\\\";transform:rotate(-45deg) scale(1);transition:transform .2s ease-out}.pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.pure-checkbox input[type=radio]:checked+label:after{transform:scale(1)}.pure-checkbox input[type=radio]+label:before{border-radius:50%}.pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.list-message{text-align:center;margin:0;padding:15px 0;font-size:initial}.list-grp{padding:0 15px!important}.list-grp h4{text-transform:capitalize;margin:15px 0 0;font-size:14px;font-weight:700}.list-grp>li{padding-left:15px!important}.grp-item{padding-left:30px!important}.grp-title{padding-bottom:0!important}.grp-title label{margin-bottom:0!important;font-weight:800;text-transform:capitalize}.grp-title:hover{background:none!important}.loading-icon{width:20px;position:absolute;right:10px;top:23px;z-index:1}.nodata-label{width:100%;text-align:center;padding:10px 0 0}.btn-container{text-align:center;padding:5px}.clear-all{width:8px;position:absolute;top:50%;right:30px;transform:translateY(-50%)}\\n\"],\n encapsulation: 2\n });\n }\n return AngularMultiSelect;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AngularMultiSelectModule = /*#__PURE__*/(() => {\n class AngularMultiSelectModule {\n static ɵfac = function AngularMultiSelectModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AngularMultiSelectModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: AngularMultiSelectModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [DataService, ListFilterPipe],\n imports: [CommonModule, FormsModule, VirtualScrollerModule]\n });\n }\n return AngularMultiSelectModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AngularMultiSelect, AngularMultiSelectModule, Badge, CIcon, ClickOutsideDirective, Item, ListFilterPipe, ScrollDirective, Search, TemplateRenderer, setPosition, styleDirective };\n","import * as i0 from '@angular/core';\nimport { EventEmitter, Component, Output, Input, Injectable, ContentChildren, ContentChild, HostListener, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { trigger, state, style, transition, animate, keyframes } from '@angular/animations';\nconst _c0 = [\"*\"];\nfunction Ng2DropdownButton_span_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 3);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 4);\n i0.ɵɵelement(2, \"path\", 5)(3, \"g\")(4, \"g\")(5, \"g\")(6, \"g\")(7, \"g\")(8, \"g\");\n i0.ɵɵelementEnd()();\n }\n}\nfunction Ng2DropdownMenu_div_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 2);\n i0.ɵɵlistener(\"click\", function Ng2DropdownMenu_div_3_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.hide());\n });\n i0.ɵɵelementEnd();\n }\n}\nconst _c1 = [[[\"ng2-dropdown-button\"]], [[\"ng2-dropdown-menu\"]]];\nconst _c2 = [\"ng2-dropdown-button\", \"ng2-dropdown-menu\"];\nlet Ng2DropdownButton = /*#__PURE__*/(() => {\n class Ng2DropdownButton {\n constructor(element) {\n this.element = element;\n this.onMenuToggled = new EventEmitter();\n this.showCaret = true;\n }\n /**\n * @name toggleMenu\n * @desc emits event to toggle menu\n */\n toggleMenu() {\n this.onMenuToggled.emit(true);\n }\n /**\n * @name getPosition\n * @desc returns position of the button\n */\n getPosition() {\n return this.element.nativeElement.getBoundingClientRect();\n }\n }\n Ng2DropdownButton.ɵfac = function Ng2DropdownButton_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Ng2DropdownButton)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n Ng2DropdownButton.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Ng2DropdownButton,\n selectors: [[\"ng2-dropdown-button\"]],\n inputs: {\n showCaret: \"showCaret\"\n },\n outputs: {\n onMenuToggled: \"onMenuToggled\"\n },\n ngContentSelectors: _c0,\n decls: 4,\n vars: 1,\n consts: [[\"type\", \"button\", \"tabindex\", \"0s\", 1, \"ng2-dropdown-button\", 3, \"click\"], [1, \"ng2-dropdown-button__label\"], [\"class\", \"ng2-dropdown-button__caret\", 4, \"ngIf\"], [1, \"ng2-dropdown-button__caret\"], [\"enable-background\", \"new 0 0 32 32\", \"height\", \"16px\", \"id\", \"\\u0421\\u043B\\u043E\\u0439_1\", \"version\", \"1.1\", \"viewBox\", \"0 0 32 32\", \"width\", \"16px\", 0, \"xml\", \"space\", \"preserve\", \"xmlns\", \"http://www.w3.org/2000/svg\", 0, \"xmlns\", \"xlink\", \"http://www.w3.org/1999/xlink\"], [\"d\", \"M24.285,11.284L16,19.571l-8.285-8.288c-0.395-0.395-1.034-0.395-1.429,0 c-0.394,0.395-0.394,1.035,0,1.43l8.999,9.002l0,0l0,0c0.394,0.395,1.034,0.395,1.428,0l8.999-9.002 c0.394-0.395,0.394-1.036,0-1.431C25.319,10.889,24.679,10.889,24.285,11.284z\", \"fill\", \"#121313\", \"id\", \"Expand_More\"]],\n template: function Ng2DropdownButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"button\", 0);\n i0.ɵɵlistener(\"click\", function Ng2DropdownButton_Template_button_click_0_listener() {\n return ctx.toggleMenu();\n });\n i0.ɵɵelementStart(1, \"span\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, Ng2DropdownButton_span_3_Template, 9, 0, \"span\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx.showCaret);\n }\n },\n dependencies: [i1.NgIf],\n styles: [\".ng2-dropdown-button[_ngcontent-%COMP%]{font-family:Roboto,Helvetica Neue,Helvetica,Arial;background:#fff;padding:.45rem .25rem;font-size:14px;letter-spacing:.08rem;color:#444;outline:0;cursor:pointer;font-weight:400;border:none;border-bottom:1px solid #efefef;text-align:left;min-width:100px;width:100%;display:flex;flex-direction:row;max-width:150px}.ng2-dropdown-button[_ngcontent-%COMP%]:hover{color:#222}.ng2-dropdown-button[_ngcontent-%COMP%]:active, .ng2-dropdown-button[_ngcontent-%COMP%]:focus{color:#222;border-bottom:2px solid #2196F3}.ng2-dropdown-button__label[_ngcontent-%COMP%]{flex:1 1 95%}.ng2-dropdown-button__caret[_ngcontent-%COMP%]{width:12px;height:12px;display:flex;flex:1 1 6%}.ng2-dropdown-button--icon[_nghost-%COMP%] .ng2-dropdown-button[_ngcontent-%COMP%], .ng2-dropdown-button--icon [_nghost-%COMP%] .ng2-dropdown-button[_ngcontent-%COMP%]{border:none;min-width:40px;width:40px;border-radius:100%;transition:all .2s;text-align:center;height:40px;padding:.5em}.ng2-dropdown-button--icon[_nghost-%COMP%] .ng2-dropdown-button[_ngcontent-%COMP%]:active, .ng2-dropdown-button--icon [_nghost-%COMP%] .ng2-dropdown-button[_ngcontent-%COMP%]:active{background:rgba(0,0,0,.2)}\"]\n });\n return Ng2DropdownButton;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst KEYS = {\n BACKSPACE: 9,\n PREV: 38,\n NEXT: 40,\n ENTER: 13,\n ESCAPE: 27\n};\n/**\n * @name onSwitchNext\n * @param index\n * @param items\n * @param state\n */\nconst onSwitchNext = (index, items, state) => {\n if (index < items.length - 1) {\n state.select(items[index + 1], true);\n }\n};\n/**\n * @name onSwitchPrev\n * @param index\n * @param items\n * @param state\n */\nconst onSwitchPrev = (index, items, state) => {\n if (index > 0) {\n state.select(items[index - 1], true);\n }\n};\n/**\n * @name onBackspace\n * @param index\n * @param items\n * @param state\n */\nconst onBackspace = (index, items, state) => {\n if (index < items.length - 1) {\n state.select(items[index + 1], true);\n } else {\n state.select(items[0], true);\n }\n};\nfunction onEscape() {\n this.hide();\n}\n;\n/**\n * @name onItemClicked\n * @param index\n * @param items\n * @param state\n */\nconst onItemClicked = (index, items, state) => {\n return state.selectedItem ? state.selectedItem.click() : undefined;\n};\nconst ACTIONS = {\n [KEYS.BACKSPACE]: onBackspace,\n [KEYS.PREV]: onSwitchPrev,\n [KEYS.NEXT]: onSwitchNext,\n [KEYS.ENTER]: onItemClicked,\n [KEYS.ESCAPE]: onEscape\n};\nfunction arrowKeysHandler(event) {\n if ([38, 40].indexOf(event.keyCode) > -1) {\n event.preventDefault();\n }\n}\nclass Ng2DropdownState {\n constructor() {\n this.onItemSelected = new EventEmitter();\n this.onItemClicked = new EventEmitter();\n this.onItemDestroyed = new EventEmitter();\n }\n /**\n * @name selectedItem\n * @desc getter for _selectedItem\n */\n get selectedItem() {\n return this._selectedItem;\n }\n /**\n * @name selects a menu item and emits event\n * @param item\n */\n select(item, dispatchEvent = true) {\n this._selectedItem = item;\n if (!dispatchEvent || !item) {\n return;\n }\n item.focus();\n this.onItemSelected.emit(item);\n }\n /**\n * @name unselect\n * @desc sets _selectedItem as undefined\n */\n unselect() {\n this._selectedItem = undefined;\n }\n}\nlet DropdownStateService = /*#__PURE__*/(() => {\n class DropdownStateService {\n constructor() {\n this.menuState = {\n isVisible: false,\n toString() {\n return this.isVisible === true ? 'visible' : 'hidden';\n }\n };\n this.dropdownState = new Ng2DropdownState();\n }\n }\n DropdownStateService.ɵfac = function DropdownStateService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DropdownStateService)();\n };\n DropdownStateService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DropdownStateService,\n factory: DropdownStateService.ɵfac\n });\n return DropdownStateService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet Ng2MenuItem = /*#__PURE__*/(() => {\n class Ng2MenuItem {\n constructor(state, element) {\n this.state = state;\n this.element = element;\n /**\n * @preventClose\n * @desc if true, clicking on the item won't close the dropdown\n */\n this.preventClose = false;\n }\n ngOnDestroy() {\n this.state.dropdownState.onItemDestroyed.emit(this);\n }\n /**\n * @name isSelected\n * @desc returns current selected item\n */\n get isSelected() {\n return this === this.state.dropdownState.selectedItem;\n }\n /**\n * @name click\n * @desc emits select event\n */\n select($event) {\n this.state.dropdownState.select(this, true);\n if ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n /**\n * @name click\n * @desc emits click event\n */\n click() {\n this.state.dropdownState.onItemClicked.emit(this);\n }\n /**\n * @name focus\n */\n focus() {\n this.element.nativeElement.children[0].focus();\n }\n }\n Ng2MenuItem.ɵfac = function Ng2MenuItem_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Ng2MenuItem)(i0.ɵɵdirectiveInject(DropdownStateService), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n Ng2MenuItem.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Ng2MenuItem,\n selectors: [[\"ng2-menu-item\"]],\n inputs: {\n preventClose: \"preventClose\",\n value: \"value\"\n },\n ngContentSelectors: _c0,\n decls: 2,\n vars: 2,\n consts: [[\"role\", \"button\", \"tabindex\", \"0\", 1, \"ng2-menu-item\", 3, \"keydown.enter\", \"click\", \"mouseover\"]],\n template: function Ng2MenuItem_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"keydown.enter\", function Ng2MenuItem_Template_div_keydown_enter_0_listener() {\n return ctx.click();\n })(\"click\", function Ng2MenuItem_Template_div_click_0_listener() {\n return ctx.click();\n })(\"mouseover\", function Ng2MenuItem_Template_div_mouseover_0_listener() {\n return ctx.select();\n });\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"ng2-menu-item--selected\", ctx.isSelected);\n }\n },\n styles: [\".ng2-menu-item[_ngcontent-%COMP%]{font-family:Roboto,Helvetica Neue,Helvetica,Arial;background:#fff;color:#000000de;cursor:pointer;font-size:.9em;text-transform:none;font-weight:400;letter-spacing:.03em;height:48px;line-height:48px;padding:.3em 1.25rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;transition:background .25s}.ng2-menu-item--selected[_ngcontent-%COMP%]{background:rgba(158,158,158,.2);outline:0}.ng2-menu-item[_ngcontent-%COMP%]:focus{outline:0}.ng2-menu-item[_ngcontent-%COMP%]:active{background:rgba(158,158,158,.4)}ng2-menu-item[_nghost-%COMP%] [ng2-menu-item-icon]{vertical-align:middle;font-size:28px;width:1.5em;height:30px;color:#00000070}\"]\n });\n return Ng2MenuItem;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet Ng2DropdownMenu = /*#__PURE__*/(() => {\n class Ng2DropdownMenu {\n constructor(dropdownState, element, renderer) {\n this.dropdownState = dropdownState;\n this.element = element;\n this.renderer = renderer;\n /**\n * @name width\n */\n this.width = 4;\n /**\n * @description if set to true, the first element of the dropdown will be automatically focused\n * @name focusFirstElement\n */\n this.focusFirstElement = true;\n /**\n * @name appendToBody\n */\n this.appendToBody = true;\n /**\n * @name zIndex\n */\n this.zIndex = 1000;\n this.listeners = {\n arrowHandler: undefined,\n handleKeypress: undefined\n };\n }\n /**\n * @name show\n * @shows menu and selects first item\n */\n show(position, dynamic = true) {\n const dc = typeof document !== 'undefined' ? document : undefined;\n const wd = typeof window !== 'undefined' ? window : undefined;\n if (!this.dropdownState.menuState.isVisible) {\n // setting handlers\n this.listeners.handleKeypress = this.renderer.listen(dc.body, 'keydown', this.handleKeypress.bind(this));\n this.listeners.arrowHandler = this.renderer.listen(wd, 'keydown', arrowKeysHandler);\n }\n // update state\n this.dropdownState.menuState.isVisible = true;\n if (position) {\n this.updatePosition(position, dynamic);\n }\n }\n /**\n * @name hide\n * @desc hides menu\n */\n hide() {\n this.dropdownState.menuState.isVisible = false;\n // reset selected item state\n this.dropdownState.dropdownState.unselect();\n // call function to unlisten\n this.listeners.arrowHandler && this.listeners.arrowHandler();\n this.listeners.handleKeypress && this.listeners.handleKeypress();\n }\n /**\n * @name updatePosition\n * @desc updates the menu position every time it is toggled\n * @param position {ClientRect}\n * @param dynamic {boolean}\n */\n updatePosition(position, dynamic) {\n this.position = position;\n this.updateOnChange(dynamic);\n }\n /**\n * @name handleKeypress\n * @desc executes functions on keyPress based on the key pressed\n * @param $event\n */\n handleKeypress($event) {\n const key = $event.keyCode;\n const items = this.items.toArray();\n const index = items.indexOf(this.dropdownState.dropdownState.selectedItem);\n if (!ACTIONS.hasOwnProperty(key)) {\n return;\n }\n ACTIONS[key].call(this, index, items, this.dropdownState.dropdownState);\n }\n /**\n * @name getMenuElement\n */\n getMenuElement() {\n return this.element.nativeElement.children[0];\n }\n /**\n * @name calcPositionOffset\n * @param position\n */\n calcPositionOffset(position) {\n const wd = typeof window !== 'undefined' ? window : undefined;\n const dc = typeof document !== 'undefined' ? document : undefined;\n if (!wd || !dc || !position) {\n return;\n }\n const element = this.getMenuElement();\n const supportPageOffset = wd.pageXOffset !== undefined;\n const isCSS1Compat = (dc.compatMode || '') === 'CSS1Compat';\n const x = supportPageOffset ? wd.pageXOffset : isCSS1Compat ? dc.documentElement.scrollLeft : dc.body.scrollLeft;\n const y = supportPageOffset ? wd.pageYOffset : isCSS1Compat ? dc.documentElement.scrollTop : dc.body.scrollTop;\n let {\n top,\n left\n } = this.applyOffset(`${position.top + (this.appendToBody ? y - 15 : 0)}px`, `${position.left + x - 5}px`);\n const clientWidth = element.clientWidth;\n const clientHeight = element.clientHeight;\n const marginFromBottom = parseInt(top) + clientHeight + (this.appendToBody ? 0 : y - 15);\n const marginFromRight = parseInt(left) + clientWidth;\n const windowScrollHeight = wd.innerHeight + wd.scrollY;\n const windowScrollWidth = wd.innerWidth + wd.scrollX;\n if (marginFromBottom >= windowScrollHeight) {\n top = `${parseInt(top.replace('px', '')) - clientHeight}px`;\n }\n if (marginFromRight >= windowScrollWidth) {\n const marginRight = marginFromRight - windowScrollWidth + 30;\n left = `${parseInt(left.replace('px', '')) - marginRight}px`;\n }\n return {\n top,\n left\n };\n }\n applyOffset(top, left) {\n if (!this.offset) {\n return {\n top,\n left\n };\n }\n const offset = this.offset.split(' ');\n if (!offset[1]) {\n offset[1] = '0';\n }\n top = `${parseInt(top.replace('px', '')) + parseInt(offset[0])}px`;\n left = `${parseInt(left.replace('px', '')) + parseInt(offset[1])}px`;\n return {\n top,\n left\n };\n }\n ngOnInit() {\n const dc = typeof document !== 'undefined' ? document : undefined;\n if (this.appendToBody) {\n // append menu element to the body\n dc.body.appendChild(this.element.nativeElement);\n }\n }\n updateOnChange(dynamic = true) {\n const element = this.getMenuElement();\n const position = this.calcPositionOffset(this.position);\n if (position) {\n this.renderer.setStyle(element, 'top', position.top.toString());\n this.renderer.setStyle(element, 'left', position.left.toString());\n }\n // select first item unless user disabled this option\n if (this.focusFirstElement && this.items.first && !this.dropdownState.dropdownState.selectedItem) {\n this.dropdownState.dropdownState.select(this.items.first, false);\n }\n }\n ngOnDestroy() {\n const elem = this.element.nativeElement;\n elem.parentNode.removeChild(elem);\n if (this.listeners.handleKeypress) {\n this.listeners.handleKeypress();\n }\n }\n }\n Ng2DropdownMenu.ɵfac = function Ng2DropdownMenu_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Ng2DropdownMenu)(i0.ɵɵdirectiveInject(DropdownStateService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n Ng2DropdownMenu.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Ng2DropdownMenu,\n selectors: [[\"ng2-dropdown-menu\"]],\n contentQueries: function Ng2DropdownMenu_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, Ng2MenuItem, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.items = _t);\n }\n },\n inputs: {\n width: \"width\",\n focusFirstElement: \"focusFirstElement\",\n offset: \"offset\",\n appendToBody: \"appendToBody\",\n zIndex: \"zIndex\"\n },\n ngContentSelectors: _c0,\n decls: 4,\n vars: 12,\n consts: [[1, \"ng2-dropdown-menu__options-container\"], [\"class\", \"ng2-dropdown-backdrop\", 3, \"click\", 4, \"ngIf\"], [1, \"ng2-dropdown-backdrop\", 3, \"click\"]],\n template: function Ng2DropdownMenu_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\")(1, \"div\", 0);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(3, Ng2DropdownMenu_div_3_Template, 1, 0, \"div\", 1);\n }\n if (rf & 2) {\n i0.ɵɵclassMapInterpolate1(\"ng2-dropdown-menu ng2-dropdown-menu---width--\", ctx.width, \"\");\n i0.ɵɵstyleProp(\"z-index\", ctx.zIndex);\n i0.ɵɵclassProp(\"ng2-dropdown-menu--inside-element\", !ctx.appendToBody)(\"ng2-dropdown-menu--open\", ctx.dropdownState.menuState.isVisible);\n i0.ɵɵproperty(\"@fade\", ctx.dropdownState.menuState.toString());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"@opacity\", ctx.dropdownState.menuState.toString());\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.dropdownState.menuState.isVisible);\n }\n },\n dependencies: [i1.NgIf],\n styles: [\"[_nghost-%COMP%]{display:block}.ng2-dropdown-menu[_ngcontent-%COMP%]{overflow-y:auto;box-shadow:0 1px 2px #0000004d;position:absolute;padding:.5em 0;background:#fff;border-radius:1px;max-height:400px;width:260px;min-height:0;display:block}.ng2-dropdown-menu.ng2-dropdown-menu--inside-element[_ngcontent-%COMP%]{position:fixed}.ng2-dropdown-menu.ng2-dropdown-menu--width--2[_ngcontent-%COMP%]{width:200px}.ng2-dropdown-menu.ng2-dropdown-menu--width--4[_ngcontent-%COMP%]{width:260px}.ng2-dropdown-menu.ng2-dropdown-menu--width--6[_ngcontent-%COMP%]{width:320px}.ng2-dropdown-backdrop[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;overflow:hidden}[_nghost-%COMP%] .ng2-menu-divider{height:1px;min-height:1px;max-height:1px;width:100%;display:block;background:#f9f9f9}\"],\n data: {\n animation: [trigger('fade', [state('visible', style({\n opacity: 1,\n height: '*',\n width: '*'\n })), state('hidden', style({\n opacity: 0,\n overflow: 'hidden',\n height: 0,\n width: 0\n })), transition('hidden => visible', [animate('250ms ease-in', style({\n opacity: 1,\n height: '*',\n width: '*'\n }))]), transition('visible => hidden', [animate('350ms ease-out', style({\n opacity: 0,\n width: 0,\n height: 0\n }))])]), trigger('opacity', [transition('hidden => visible', [animate('450ms ease-in', keyframes([style({\n opacity: 0,\n offset: 0\n }), style({\n opacity: 1,\n offset: 1\n })]))]), transition('visible => hidden', [animate('250ms ease-out', keyframes([style({\n opacity: 1,\n offset: 0\n }), style({\n opacity: 0.5,\n offset: 0.3\n }), style({\n opacity: 0,\n offset: 1\n })]))])])]\n }\n });\n return Ng2DropdownMenu;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet Ng2Dropdown = /*#__PURE__*/(() => {\n class Ng2Dropdown {\n constructor(state) {\n this.state = state;\n this.dynamicUpdate = true;\n // outputs\n this.onItemClicked = new EventEmitter();\n this.onItemSelected = new EventEmitter();\n this.onShow = new EventEmitter();\n this.onHide = new EventEmitter();\n }\n ngOnInit() {\n this.state.dropdownState.onItemClicked.subscribe(item => {\n this.onItemClicked.emit(item);\n if (item.preventClose) {\n return;\n }\n this.hide.call(this);\n });\n if (this.button) {\n this.button.onMenuToggled.subscribe(() => {\n this.toggleMenu();\n });\n }\n this.state.dropdownState.onItemSelected.subscribe(item => {\n this.onItemSelected.emit(item);\n });\n this.state.dropdownState.onItemDestroyed.subscribe(item => {\n let newSelectedItem;\n const items = this.menu.items.toArray();\n if (item !== this.state.dropdownState.selectedItem) {\n return;\n }\n if (this.menu.focusFirstElement) {\n newSelectedItem = item === items[0] && items.length > 1 ? items[1] : items[0];\n }\n this.state.dropdownState.select(newSelectedItem);\n });\n }\n /**\n * @name toggleMenu\n * @desc toggles menu visibility\n */\n toggleMenu(position = this.button.getPosition()) {\n this.state.menuState.isVisible ? this.hide() : this.show(position);\n }\n /**\n * - hides dropdown\n * @name hide\n */\n hide() {\n this.menu.hide();\n this.onHide.emit(this);\n }\n /**\n * - shows dropdown\n * @name show\n * @param position\n */\n show(position = this.button.getPosition()) {\n this.menu.show(position, this.dynamicUpdate);\n this.onShow.emit(this);\n }\n /**\n * @name scrollListener\n */\n scrollListener() {\n if (this.button && this.dynamicUpdate) {\n this.menu.updatePosition(this.button.getPosition(), true);\n }\n }\n }\n Ng2Dropdown.ɵfac = function Ng2Dropdown_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Ng2Dropdown)(i0.ɵɵdirectiveInject(DropdownStateService));\n };\n Ng2Dropdown.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Ng2Dropdown,\n selectors: [[\"ng2-dropdown\"]],\n contentQueries: function Ng2Dropdown_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, Ng2DropdownButton, 7);\n i0.ɵɵcontentQuery(dirIndex, Ng2DropdownMenu, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.button = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.menu = _t.first);\n }\n },\n hostBindings: function Ng2Dropdown_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"scroll\", function Ng2Dropdown_scroll_HostBindingHandler() {\n return ctx.scrollListener();\n }, false, i0.ɵɵresolveWindow);\n }\n },\n inputs: {\n dynamicUpdate: \"dynamicUpdate\"\n },\n outputs: {\n onItemClicked: \"onItemClicked\",\n onItemSelected: \"onItemSelected\",\n onShow: \"onShow\",\n onHide: \"onHide\"\n },\n features: [i0.ɵɵProvidersFeature([DropdownStateService])],\n ngContentSelectors: _c2,\n decls: 3,\n vars: 0,\n consts: [[1, \"ng2-dropdown-container\"]],\n template: function Ng2Dropdown_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵelementEnd();\n }\n },\n encapsulation: 2\n });\n return Ng2Dropdown;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet Ng2DropdownModule = /*#__PURE__*/(() => {\n class Ng2DropdownModule {}\n Ng2DropdownModule.ɵfac = function Ng2DropdownModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Ng2DropdownModule)();\n };\n Ng2DropdownModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: Ng2DropdownModule\n });\n Ng2DropdownModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule]]\n });\n return Ng2DropdownModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DropdownStateService, Ng2Dropdown, Ng2DropdownButton, Ng2DropdownMenu, Ng2DropdownModule, Ng2MenuItem };\n","import * as i0 from '@angular/core';\nimport { Pipe, Injectable, Directive, Input, EventEmitter, Component, Output, ViewChild, HostBinding, HostListener, TemplateRef, ContentChildren, forwardRef, ContentChild, ViewChildren, NgModule } from '@angular/core';\nimport * as i1 from '@angular/forms';\nimport { FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule, COMPOSITION_BUFFER_MODE } from '@angular/forms';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i1$1 from 'ng2-material-dropdown';\nimport { Ng2Dropdown, Ng2DropdownModule } from 'ng2-material-dropdown';\nimport { filter as filter$1, map, first as first$1, debounceTime as debounceTime$1 } from 'rxjs';\nimport { trigger, state, style, transition, animate, keyframes } from '@angular/animations';\nimport { first, distinctUntilChanged, debounceTime, filter } from 'rxjs/operators';\nconst _c0 = [\"input\"];\nconst _c1 = (a0, a1) => ({\n item: a0,\n index: a1\n});\nfunction TagComponent_div_1_ng_template_1_Template(rf, ctx) {}\nfunction TagComponent_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtemplate(1, TagComponent_div_1_ng_template_1_Template, 0, 0, \"ng-template\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"contenteditable\", ctx_r0.editing);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(3, _c1, ctx_r0.model, ctx_r0.index))(\"ngTemplateOutlet\", ctx_r0.template);\n }\n}\nfunction TagComponent_div_2_delete_icon_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"delete-icon\", 8);\n i0.ɵɵlistener(\"click\", function TagComponent_div_2_delete_icon_3_Template_delete_icon_click_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r0 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r0.remove($event));\n });\n i0.ɵɵelementEnd();\n }\n}\nfunction TagComponent_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 5)(1, \"div\", 6);\n i0.ɵɵlistener(\"keydown.enter\", function TagComponent_div_2_Template_div_keydown_enter_1_listener($event) {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.disableEditMode($event));\n })(\"keydown.escape\", function TagComponent_div_2_Template_div_keydown_escape_1_listener($event) {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.disableEditMode($event));\n })(\"click\", function TagComponent_div_2_Template_div_click_1_listener($event) {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.editing ? $event.stopPropagation() : undefined);\n })(\"blur\", function TagComponent_div_2_Template_div_blur_1_listener($event) {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.onBlurred($event));\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, TagComponent_div_2_delete_icon_3_Template, 1, 0, \"delete-icon\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"contenteditable\", ctx_r0.editing)(\"title\", ctx_r0.getDisplayValue(ctx_r0.model));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.getDisplayValue(ctx_r0.model), \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.isDeleteIconVisible());\n }\n}\nfunction TagComponent_tag_ripple_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"tag-ripple\", 9);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"state\", ctx_r0.rippleState);\n i0.ɵɵattribute(\"tabindex\", -1);\n }\n}\nconst _c2 = (a0, a1, a2) => ({\n item: a0,\n index: a1,\n last: a2\n});\nfunction TagInputDropdown_ng2_menu_item_2_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 6);\n i0.ɵɵpipe(1, \"highlight\");\n }\n if (rf & 2) {\n const item_r1 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"innerHTML\", i0.ɵɵpipeBind2(1, 1, item_r1[ctx_r1.displayBy], ctx_r1.tagInput.inputForm.value.value), i0.ɵɵsanitizeHtml);\n }\n}\nfunction TagInputDropdown_ng2_menu_item_2_2_ng_template_0_Template(rf, ctx) {}\nfunction TagInputDropdown_ng2_menu_item_2_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TagInputDropdown_ng2_menu_item_2_2_ng_template_0_Template, 0, 0, \"ng-template\", 7);\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n const item_r1 = ctx_r2.$implicit;\n const index_r4 = ctx_r2.index;\n const last_r5 = ctx_r2.last;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.templates.first)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction3(2, _c2, item_r1, index_r4, last_r5));\n }\n}\nfunction TagInputDropdown_ng2_menu_item_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ng2-menu-item\", 3);\n i0.ɵɵtemplate(1, TagInputDropdown_ng2_menu_item_2_span_1_Template, 2, 4, \"span\", 4)(2, TagInputDropdown_ng2_menu_item_2_2_Template, 1, 6, null, 5);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r1 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"value\", item_r1)(\"ngSwitch\", !!ctx_r1.templates.length);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", false);\n }\n}\nconst _c3 = [\"*\"];\nfunction TagInputComponent_tag_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"tag\", 6);\n i0.ɵɵlistener(\"onSelect\", function TagInputComponent_tag_2_Template_tag_onSelect_0_listener() {\n const item_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.selectItem(item_r2));\n })(\"onRemove\", function TagInputComponent_tag_2_Template_tag_onRemove_0_listener() {\n const ctx_r3 = i0.ɵɵrestoreView(_r1);\n const item_r2 = ctx_r3.$implicit;\n const i_r5 = ctx_r3.index;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.onRemoveRequested(item_r2, i_r5));\n })(\"onKeyDown\", function TagInputComponent_tag_2_Template_tag_onKeyDown_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.handleKeydown($event));\n })(\"onTagEdited\", function TagInputComponent_tag_2_Template_tag_onTagEdited_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.updateEditedTag($event));\n })(\"onBlur\", function TagInputComponent_tag_2_Template_tag_onBlur_0_listener($event) {\n const i_r5 = i0.ɵɵrestoreView(_r1).index;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.onTagBlurred($event, i_r5));\n })(\"dragstart\", function TagInputComponent_tag_2_Template_tag_dragstart_0_listener($event) {\n const ctx_r5 = i0.ɵɵrestoreView(_r1);\n const item_r2 = ctx_r5.$implicit;\n const i_r5 = ctx_r5.index;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.dragZone ? ctx_r2.onDragStarted($event, item_r2, i_r5) : undefined);\n })(\"drop\", function TagInputComponent_tag_2_Template_tag_drop_0_listener($event) {\n const i_r5 = i0.ɵɵrestoreView(_r1).index;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.dragZone ? ctx_r2.onTagDropped($event, i_r5) : undefined);\n })(\"dragenter\", function TagInputComponent_tag_2_Template_tag_dragenter_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.dragZone ? ctx_r2.onDragOver($event) : undefined);\n })(\"dragover\", function TagInputComponent_tag_2_Template_tag_dragover_0_listener($event) {\n const i_r5 = i0.ɵɵrestoreView(_r1).index;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.dragZone ? ctx_r2.onDragOver($event, i_r5) : undefined);\n })(\"dragleave\", function TagInputComponent_tag_2_Template_tag_dragleave_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.dragZone ? ctx_r2.dragProvider.onDragEnd() : undefined);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r2 = ctx.$implicit;\n const i_r5 = ctx.index;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵpropertyInterpolate(\"draggable\", ctx_r2.editable);\n i0.ɵɵproperty(\"canAddTag\", ctx_r2.isTagValid)(\"disabled\", ctx_r2.disable)(\"@animation\", ctx_r2.animationMetadata)(\"hasRipple\", ctx_r2.ripple)(\"index\", i_r5)(\"removable\", ctx_r2.removable)(\"editable\", ctx_r2.editable)(\"displayBy\", ctx_r2.displayBy)(\"identifyBy\", ctx_r2.identifyBy)(\"template\", !!ctx_r2.hasCustomTemplate() ? ctx_r2.templates.first : undefined)(\"draggable\", ctx_r2.dragZone)(\"model\", item_r2);\n i0.ɵɵattribute(\"tabindex\", 0);\n }\n}\nfunction TagInputComponent_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 7);\n }\n}\nfunction TagInputComponent_div_6_p_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"p\", 10)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const error_r7 = ctx.$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(error_r7);\n }\n}\nfunction TagInputComponent_div_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 8);\n i0.ɵɵtemplate(1, TagInputComponent_div_6_p_1_Template, 3, 1, \"p\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r2.theme);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r2.errors);\n }\n}\nconst escape = s => s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\nlet HighlightPipe = /*#__PURE__*/(() => {\n class HighlightPipe {\n /**\n * @name transform\n * @param value {string}\n * @param arg {string}\n */\n transform(value, arg) {\n if (!arg.trim()) {\n return value;\n }\n try {\n const regex = new RegExp(`(${escape(arg)})`, 'i');\n return value.replace(regex, '$1');\n } catch (e) {\n return value;\n }\n }\n }\n HighlightPipe.ɵfac = function HighlightPipe_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HighlightPipe)();\n };\n HighlightPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"highlight\",\n type: HighlightPipe,\n pure: true\n });\n return HighlightPipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n** constants and default values for \n */\nconst PLACEHOLDER = '+ Tag';\nconst SECONDARY_PLACEHOLDER = 'Enter a new tag';\nconst KEYDOWN = 'keydown';\nconst KEYUP = 'keyup';\nconst FOCUS = 'focus';\nconst MAX_ITEMS_WARNING = 'The number of items specified was greater than the property max-items.';\nconst ACTIONS_KEYS = {\n DELETE: 'DELETE',\n SWITCH_PREV: 'SWITCH_PREV',\n SWITCH_NEXT: 'SWITCH_NEXT',\n TAB: 'TAB'\n};\nconst KEY_PRESS_ACTIONS = {\n 8: ACTIONS_KEYS.DELETE,\n 46: ACTIONS_KEYS.DELETE,\n 37: ACTIONS_KEYS.SWITCH_PREV,\n 39: ACTIONS_KEYS.SWITCH_NEXT,\n 9: ACTIONS_KEYS.TAB\n};\nconst DRAG_AND_DROP_KEY = 'Text';\nconst NEXT = 'NEXT';\nconst PREV = 'PREV';\nlet DragProvider = /*#__PURE__*/(() => {\n class DragProvider {\n constructor() {\n this.state = {\n dragging: false,\n dropping: false,\n index: undefined\n };\n }\n /**\n * @name setDraggedItem\n * @param event\n * @param tag\n */\n setDraggedItem(event, tag) {\n if (event && event.dataTransfer) {\n event.dataTransfer.setData(DRAG_AND_DROP_KEY, JSON.stringify(tag));\n }\n }\n /**\n * @name getDraggedItem\n * @param event\n */\n getDraggedItem(event) {\n if (event && event.dataTransfer) {\n const data = event.dataTransfer.getData(DRAG_AND_DROP_KEY);\n try {\n return JSON.parse(data);\n } catch {\n return;\n }\n }\n }\n /**\n * @name setSender\n * @param sender\n */\n setSender(sender) {\n this.sender = sender;\n }\n /**\n * @name setReceiver\n * @param receiver\n */\n setReceiver(receiver) {\n this.receiver = receiver;\n }\n /**\n * @name onTagDropped\n * @param tag\n * @param indexDragged\n * @param indexDropped\n */\n onTagDropped(tag, indexDragged, indexDropped) {\n this.onDragEnd();\n this.sender.onRemoveRequested(tag, indexDragged);\n this.receiver.onAddingRequested(false, tag, indexDropped);\n }\n /**\n * @name setState\n * @param state\n */\n setState(state) {\n this.state = {\n ...this.state,\n ...state\n };\n }\n /**\n * @name getState\n * @param key\n */\n getState(key) {\n return key ? this.state[key] : this.state;\n }\n /**\n * @name onDragEnd\n */\n onDragEnd() {\n this.setState({\n dragging: false,\n dropping: false,\n index: undefined\n });\n }\n }\n DragProvider.ɵfac = function DragProvider_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DragProvider)();\n };\n DragProvider.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DragProvider,\n factory: DragProvider.ɵfac\n });\n return DragProvider;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst defaults = {\n tagInput: {\n separatorKeys: [],\n separatorKeyCodes: [],\n maxItems: Infinity,\n placeholder: PLACEHOLDER,\n secondaryPlaceholder: SECONDARY_PLACEHOLDER,\n validators: [],\n asyncValidators: [],\n onlyFromAutocomplete: false,\n errorMessages: {},\n theme: '',\n onTextChangeDebounce: 250,\n inputId: null,\n inputClass: '',\n clearOnBlur: false,\n hideForm: false,\n addOnBlur: false,\n addOnPaste: false,\n pasteSplitPattern: ',',\n blinkIfDupe: true,\n removable: true,\n editable: false,\n allowDupes: false,\n modelAsStrings: false,\n trimTags: true,\n ripple: true,\n tabIndex: '',\n disable: false,\n dragZone: '',\n onRemoving: undefined,\n onAdding: undefined,\n displayBy: 'display',\n identifyBy: 'value',\n animationDuration: {\n enter: '250ms',\n leave: '150ms'\n }\n },\n dropdown: {\n displayBy: 'display',\n identifyBy: 'value',\n appendToBody: true,\n offset: '50 0',\n focusFirstElement: false,\n showDropdownIfEmpty: false,\n minimumTextLength: 1,\n limitItemsTo: Infinity,\n keepOpen: true,\n dynamicUpdate: true,\n zIndex: 1000,\n matchingFn\n }\n};\n/**\n * @name matchingFn\n * @param this\n * @param value\n * @param target\n */\nfunction matchingFn(value, target) {\n const targetValue = target[this.displayBy].toString();\n return targetValue && targetValue.toLowerCase().indexOf(value.toLowerCase()) >= 0;\n}\nlet OptionsProvider = /*#__PURE__*/(() => {\n class OptionsProvider {\n setOptions(options) {\n OptionsProvider.defaults.tagInput = {\n ...defaults.tagInput,\n ...options.tagInput\n };\n OptionsProvider.defaults.dropdown = {\n ...defaults.dropdown,\n ...options.dropdown\n };\n }\n }\n OptionsProvider.defaults = defaults;\n return OptionsProvider;\n})();\nfunction isObject(obj) {\n return obj === Object(obj);\n}\nlet TagInputAccessor = /*#__PURE__*/(() => {\n class TagInputAccessor {\n constructor() {\n this._items = [];\n /**\n * @name displayBy\n */\n this.displayBy = OptionsProvider.defaults.tagInput.displayBy;\n /**\n * @name identifyBy\n */\n this.identifyBy = OptionsProvider.defaults.tagInput.identifyBy;\n }\n get items() {\n return this._items;\n }\n set items(items) {\n this._items = items;\n this._onChangeCallback(this._items);\n }\n onTouched() {\n this._onTouchedCallback();\n }\n writeValue(items) {\n this._items = items || [];\n }\n registerOnChange(fn) {\n this._onChangeCallback = fn;\n }\n registerOnTouched(fn) {\n this._onTouchedCallback = fn;\n }\n /**\n * @name getItemValue\n * @param item\n * @param fromDropdown\n */\n getItemValue(item, fromDropdown = false) {\n const property = fromDropdown && this.dropdown ? this.dropdown.identifyBy : this.identifyBy;\n return isObject(item) ? item[property] : item;\n }\n /**\n * @name getItemDisplay\n * @param item\n * @param fromDropdown\n */\n getItemDisplay(item, fromDropdown = false) {\n const property = fromDropdown && this.dropdown ? this.dropdown.displayBy : this.displayBy;\n return isObject(item) ? item[property] : item;\n }\n /**\n * @name getItemsWithout\n * @param index\n */\n getItemsWithout(index) {\n return this.items.filter((item, position) => position !== index);\n }\n }\n TagInputAccessor.ɵfac = function TagInputAccessor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TagInputAccessor)();\n };\n TagInputAccessor.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TagInputAccessor,\n inputs: {\n displayBy: \"displayBy\",\n identifyBy: \"identifyBy\"\n }\n });\n return TagInputAccessor;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @name listen\n * @param listenerType\n * @param action\n * @param condition\n */\nfunction listen(listenerType, action, condition = true) {\n // if the event provided does not exist, throw an error\n if (!this.listeners.hasOwnProperty(listenerType)) {\n throw new Error('The event entered may be wrong');\n }\n // if a condition is present and is false, exit early\n if (!condition) {\n return;\n }\n // fire listener\n this.listeners[listenerType].push(action);\n}\nlet TagInputForm = /*#__PURE__*/(() => {\n class TagInputForm {\n constructor() {\n /**\n * @name onSubmit\n */\n this.onSubmit = new EventEmitter();\n /**\n * @name onBlur\n */\n this.onBlur = new EventEmitter();\n /**\n * @name onFocus\n */\n this.onFocus = new EventEmitter();\n /**\n * @name onKeyup\n */\n this.onKeyup = new EventEmitter();\n /**\n * @name onKeydown\n */\n this.onKeydown = new EventEmitter();\n /**\n * @name inputTextChange\n */\n this.inputTextChange = new EventEmitter();\n /**\n * @name validators\n */\n this.validators = [];\n /**\n * @name asyncValidators\n * @desc array of AsyncValidator that are used to validate the tag before it gets appended to the list\n */\n this.asyncValidators = [];\n /**\n * @name tabindex\n * @desc pass through the specified tabindex to the input\n */\n this.tabindex = '';\n /**\n * @name disabled\n */\n this.disabled = false;\n this.item = new FormControl({\n value: '',\n disabled: this.disabled\n });\n }\n /**\n * @name inputText\n */\n get inputText() {\n return this.item.value;\n }\n /**\n * @name inputText\n * @param text {string}\n */\n set inputText(text) {\n this.item.setValue(text);\n this.inputTextChange.emit(text);\n }\n ngOnInit() {\n this.item.setValidators(this.validators);\n this.item.setAsyncValidators(this.asyncValidators);\n // creating form\n this.form = new FormGroup({\n item: this.item\n });\n }\n ngOnChanges(changes) {\n if (changes.disabled && !changes.disabled.firstChange) {\n if (changes.disabled.currentValue) {\n this.form.controls['item'].disable();\n } else {\n this.form.controls['item'].enable();\n }\n }\n }\n /**\n * @name value\n */\n get value() {\n return this.form.get('item');\n }\n /**\n * @name isInputFocused\n */\n isInputFocused() {\n const doc = typeof document !== 'undefined' ? document : undefined;\n return doc ? doc.activeElement === this.input.nativeElement : false;\n }\n /**\n * @name getErrorMessages\n * @param messages\n */\n getErrorMessages(messages) {\n return Object.keys(messages).filter(err => this.value.hasError(err)).map(err => messages[err]);\n }\n /**\n * @name hasErrors\n */\n hasErrors() {\n const {\n dirty,\n value,\n valid\n } = this.form;\n return dirty && value.item && !valid;\n }\n /**\n * @name focus\n */\n focus() {\n this.input.nativeElement.focus();\n }\n /**\n * @name blur\n */\n blur() {\n this.input.nativeElement.blur();\n }\n /**\n * @name getElementPosition\n */\n getElementPosition() {\n return this.input.nativeElement.getBoundingClientRect();\n }\n /**\n * - removes input from the component\n * @name destroy\n */\n destroy() {\n const input = this.input.nativeElement;\n input.parentElement.removeChild(input);\n }\n /**\n * @name onKeyDown\n * @param $event\n */\n onKeyDown($event) {\n this.inputText = this.value.value;\n if ($event.key === 'Enter') {\n this.submit($event);\n } else {\n return this.onKeydown.emit($event);\n }\n }\n /**\n * @name onKeyUp\n * @param $event\n */\n onKeyUp($event) {\n this.inputText = this.value.value;\n return this.onKeyup.emit($event);\n }\n /**\n * @name submit\n */\n submit($event) {\n $event.preventDefault();\n this.onSubmit.emit($event);\n }\n }\n TagInputForm.ɵfac = function TagInputForm_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TagInputForm)();\n };\n TagInputForm.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TagInputForm,\n selectors: [[\"tag-input-form\"]],\n viewQuery: function TagInputForm_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);\n }\n },\n inputs: {\n placeholder: \"placeholder\",\n validators: \"validators\",\n asyncValidators: \"asyncValidators\",\n inputId: \"inputId\",\n inputClass: \"inputClass\",\n tabindex: \"tabindex\",\n disabled: \"disabled\",\n inputText: \"inputText\"\n },\n outputs: {\n onSubmit: \"onSubmit\",\n onBlur: \"onBlur\",\n onFocus: \"onFocus\",\n onKeyup: \"onKeyup\",\n onKeydown: \"onKeydown\",\n inputTextChange: \"inputTextChange\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 3,\n vars: 8,\n consts: [[\"input\", \"\"], [3, \"ngSubmit\", \"formGroup\"], [\"type\", \"text\", \"autocomplete\", \"off\", \"minlength\", \"1\", \"formControlName\", \"item\", 1, \"ng2-tag-input__text-input\", 3, \"focus\", \"blur\", \"keydown\", \"keyup\", \"tabindex\", \"ngClass\"]],\n template: function TagInputForm_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"form\", 1);\n i0.ɵɵlistener(\"ngSubmit\", function TagInputForm_Template_form_ngSubmit_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.submit($event));\n });\n i0.ɵɵelementStart(1, \"input\", 2, 0);\n i0.ɵɵlistener(\"focus\", function TagInputForm_Template_input_focus_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onFocus.emit($event));\n })(\"blur\", function TagInputForm_Template_input_blur_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onBlur.emit($event));\n })(\"keydown\", function TagInputForm_Template_input_keydown_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onKeyDown($event));\n })(\"keyup\", function TagInputForm_Template_input_keyup_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onKeyUp($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"formGroup\", ctx.form);\n i0.ɵɵadvance();\n i0.ɵɵpropertyInterpolate(\"tabindex\", ctx.disabled ? -1 : ctx.tabindex ? ctx.tabindex : 0);\n i0.ɵɵproperty(\"ngClass\", ctx.inputClass);\n i0.ɵɵattribute(\"id\", ctx.inputId)(\"placeholder\", ctx.placeholder)(\"aria-label\", ctx.placeholder)(\"tabindex\", ctx.tabindex)(\"disabled\", ctx.disabled ? ctx.disabled : null);\n }\n },\n dependencies: [i1.ɵNgNoValidate, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.DefaultValueAccessor, i1.MinLengthValidator, i1.NgControlStatus, i1.FormControlName, i2.NgClass],\n styles: [\".dark[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 1px #323232}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%]{background-color:#fff;display:inline-block;color:#555;vertical-align:middle;max-width:100%;height:42px;line-height:44px}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{border:none;box-shadow:none;outline:none;background-color:transparent;padding:0 6px;margin:0;width:auto;max-width:inherit}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::-moz-placeholder{color:#777;opacity:1}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:-ms-input-placeholder{color:#777}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::-webkit-input-placeholder{color:#777}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{border:none;box-shadow:none}.bootstrap3-info.ng2-tag-input.ng2-tag-input--focused[_ngcontent-%COMP%]{box-shadow:inset 0 1px 1px #0006;border:1px solid #ccc}.bootstrap3-info.ng2-tag-input.ng2-tag-input--invalid[_ngcontent-%COMP%]{box-shadow:inset 0 1px 1px #d9534f}.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;transition:all .25s;padding:.25rem 0;min-height:32px;cursor:text;border-bottom:2px solid #efefef}.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.ng2-tag-input.ng2-tag-input--focused[_ngcontent-%COMP%]{border-bottom:2px solid #2196F3}.ng2-tag-input.ng2-tag-input--invalid[_ngcontent-%COMP%]{border-bottom:2px solid #f44336}.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.ng2-tag-input[_ngcontent-%COMP%] form[_ngcontent-%COMP%]{margin:.1em 0}.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.minimal.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;cursor:text;border-bottom:1px solid transparent}.minimal.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.minimal.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.minimal.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.minimal.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.minimal.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.dark.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;cursor:text;border-bottom:2px solid #444}.dark.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.dark.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.dark.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.dark.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.dark.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.bootstrap.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;cursor:text;border-bottom:2px solid #efefef}.bootstrap.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.bootstrap.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.bootstrap.ng2-tag-input.ng2-tag-input--focused[_ngcontent-%COMP%]{border-bottom:2px solid #0275d8}.bootstrap.ng2-tag-input.ng2-tag-input--invalid[_ngcontent-%COMP%]{border-bottom:2px solid #d9534f}.bootstrap.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.bootstrap.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.bootstrap.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.bootstrap3-info.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;padding:4px;cursor:text;box-shadow:inset 0 1px 1px #00000013;border-radius:4px}.bootstrap3-info.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.bootstrap3-info.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.bootstrap3-info.ng2-tag-input.ng2-tag-input--invalid[_ngcontent-%COMP%]{border-bottom:1px solid #d9534f}.bootstrap3-info.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.bootstrap3-info.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.bootstrap3-info.ng2-tag-input[_ngcontent-%COMP%] form[_ngcontent-%COMP%]{margin:.1em 0}.bootstrap3-info.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.error-message[_ngcontent-%COMP%]{font-size:.8em;color:#f44336;margin:.5em 0 0}.bootstrap[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%]{color:#d9534f}.ng2-tag-input__text-input[_ngcontent-%COMP%]{display:inline;vertical-align:middle;border:none;padding:0 .5rem;height:38px;font-size:1em;font-family:Roboto,Helvetica Neue,sans-serif}.ng2-tag-input__text-input[_ngcontent-%COMP%]:focus{outline:0}.ng2-tag-input__text-input[disabled=true][_ngcontent-%COMP%]{opacity:.5;background:#fff}\"]\n });\n return TagInputForm;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TagRipple = /*#__PURE__*/(() => {\n class TagRipple {\n constructor() {\n this.state = 'none';\n }\n }\n TagRipple.ɵfac = function TagRipple_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TagRipple)();\n };\n TagRipple.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TagRipple,\n selectors: [[\"tag-ripple\"]],\n inputs: {\n state: \"state\"\n },\n decls: 1,\n vars: 1,\n consts: [[1, \"tag-ripple\"]],\n template: function TagRipple_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"@ink\", ctx.state);\n }\n },\n styles: [\"[_nghost-%COMP%]{width:100%;height:100%;left:0;overflow:hidden;position:absolute}.tag-ripple[_ngcontent-%COMP%]{background:rgba(0,0,0,.1);top:50%;left:50%;height:100%;transform:translate(-50%,-50%);position:absolute}\"],\n data: {\n animation: [trigger('ink', [state('none', style({\n width: 0,\n opacity: 0\n })), transition('none => clicked', [animate(300, keyframes([style({\n opacity: 1,\n offset: 0,\n width: '30%',\n borderRadius: '100%'\n }), style({\n opacity: 1,\n offset: 0.5,\n width: '50%'\n }), style({\n opacity: 0.5,\n offset: 1,\n width: '100%',\n borderRadius: '16px'\n })]))])])]\n }\n });\n return TagRipple;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DeleteIconComponent = /*#__PURE__*/(() => {\n class DeleteIconComponent {}\n DeleteIconComponent.ɵfac = function DeleteIconComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DeleteIconComponent)();\n };\n DeleteIconComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: DeleteIconComponent,\n selectors: [[\"delete-icon\"]],\n decls: 3,\n vars: 0,\n consts: [[\"height\", \"16px\", \"viewBox\", \"0 0 32 32\", \"width\", \"16px\"], [\"d\", \"M17.459,16.014l8.239-8.194c0.395-0.391,0.395-1.024,0-1.414c-0.394-0.391-1.034-0.391-1.428,0 l-8.232,8.187L7.73,6.284c-0.394-0.395-1.034-0.395-1.428,0c-0.394,0.396-0.394,1.037,0,1.432l8.302,8.303l-8.332,8.286 c-0.394,0.391-0.394,1.024,0,1.414c0.394,0.391,1.034,0.391,1.428,0l8.325-8.279l8.275,8.276c0.394,0.395,1.034,0.395,1.428,0 c0.394-0.396,0.394-1.037,0-1.432L17.459,16.014z\", \"fill\", \"#121313\"]],\n template: function DeleteIconComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 0);\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd()();\n }\n },\n styles: [\".dark[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 1px #323232}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%]{background-color:#fff;display:inline-block;color:#555;vertical-align:middle;max-width:100%;height:42px;line-height:44px}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{border:none;box-shadow:none;outline:none;background-color:transparent;padding:0 6px;margin:0;width:auto;max-width:inherit}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::-moz-placeholder{color:#777;opacity:1}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:-ms-input-placeholder{color:#777}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::-webkit-input-placeholder{color:#777}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{border:none;box-shadow:none}.bootstrap3-info.ng2-tag-input.ng2-tag-input--focused[_ngcontent-%COMP%]{box-shadow:inset 0 1px 1px #0006;border:1px solid #ccc}.bootstrap3-info.ng2-tag-input.ng2-tag-input--invalid[_ngcontent-%COMP%]{box-shadow:inset 0 1px 1px #d9534f}.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;transition:all .25s;padding:.25rem 0;min-height:32px;cursor:text;border-bottom:2px solid #efefef}.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.ng2-tag-input.ng2-tag-input--focused[_ngcontent-%COMP%]{border-bottom:2px solid #2196F3}.ng2-tag-input.ng2-tag-input--invalid[_ngcontent-%COMP%]{border-bottom:2px solid #f44336}.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.ng2-tag-input[_ngcontent-%COMP%] form[_ngcontent-%COMP%]{margin:.1em 0}.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.minimal.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;cursor:text;border-bottom:1px solid transparent}.minimal.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.minimal.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.minimal.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.minimal.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.minimal.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.dark.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;cursor:text;border-bottom:2px solid #444}.dark.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.dark.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.dark.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.dark.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.dark.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.bootstrap.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;cursor:text;border-bottom:2px solid #efefef}.bootstrap.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.bootstrap.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.bootstrap.ng2-tag-input.ng2-tag-input--focused[_ngcontent-%COMP%]{border-bottom:2px solid #0275d8}.bootstrap.ng2-tag-input.ng2-tag-input--invalid[_ngcontent-%COMP%]{border-bottom:2px solid #d9534f}.bootstrap.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.bootstrap.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.bootstrap.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.bootstrap3-info.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;padding:4px;cursor:text;box-shadow:inset 0 1px 1px #00000013;border-radius:4px}.bootstrap3-info.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.bootstrap3-info.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.bootstrap3-info.ng2-tag-input.ng2-tag-input--invalid[_ngcontent-%COMP%]{border-bottom:1px solid #d9534f}.bootstrap3-info.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.bootstrap3-info.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.bootstrap3-info.ng2-tag-input[_ngcontent-%COMP%] form[_ngcontent-%COMP%]{margin:.1em 0}.bootstrap3-info.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.error-message[_ngcontent-%COMP%]{font-size:.8em;color:#f44336;margin:.5em 0 0}.bootstrap[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%]{color:#d9534f}delete-icon[_nghost-%COMP%]{width:20px;height:16px;transition:all .15s;display:inline-block;text-align:right}delete-icon[_nghost-%COMP%] path[_ngcontent-%COMP%]{fill:#444}delete-icon[_nghost-%COMP%] svg[_ngcontent-%COMP%]{vertical-align:bottom;height:34px}delete-icon[_nghost-%COMP%]:hover{transform:scale(1.5) translateY(-3px)}.dark[_nghost-%COMP%], .dark [_nghost-%COMP%]{text-align:right}.dark[_nghost-%COMP%] path[_ngcontent-%COMP%], .dark [_nghost-%COMP%] path[_ngcontent-%COMP%]{fill:#fff}.dark[_nghost-%COMP%] svg[_ngcontent-%COMP%], .dark [_nghost-%COMP%] svg[_ngcontent-%COMP%]{vertical-align:bottom;height:34px}.minimal[_nghost-%COMP%], .minimal [_nghost-%COMP%]{text-align:right}.minimal[_nghost-%COMP%] path[_ngcontent-%COMP%], .minimal [_nghost-%COMP%] path[_ngcontent-%COMP%]{fill:#444}.minimal[_nghost-%COMP%] svg[_ngcontent-%COMP%], .minimal [_nghost-%COMP%] svg[_ngcontent-%COMP%]{vertical-align:bottom;height:34px}.bootstrap[_nghost-%COMP%], .bootstrap [_nghost-%COMP%]{text-align:right}.bootstrap[_nghost-%COMP%] path[_ngcontent-%COMP%], .bootstrap [_nghost-%COMP%] path[_ngcontent-%COMP%]{fill:#fff}.bootstrap[_nghost-%COMP%] svg[_ngcontent-%COMP%], .bootstrap [_nghost-%COMP%] svg[_ngcontent-%COMP%]{vertical-align:bottom;height:34px}tag:focus[_nghost-%COMP%] path[_ngcontent-%COMP%], tag:focus [_nghost-%COMP%] path[_ngcontent-%COMP%], tag:active[_nghost-%COMP%] path[_ngcontent-%COMP%], tag:active [_nghost-%COMP%] path[_ngcontent-%COMP%]{fill:#fff}.dark tag:focus[_nghost-%COMP%] path[_ngcontent-%COMP%], .dark tag:focus [_nghost-%COMP%] path[_ngcontent-%COMP%], .dark tag:active[_nghost-%COMP%] path[_ngcontent-%COMP%], .dark tag:active [_nghost-%COMP%] path[_ngcontent-%COMP%]{fill:#000}.minimal tag:focus[_nghost-%COMP%] path[_ngcontent-%COMP%], .minimal tag:focus [_nghost-%COMP%] path[_ngcontent-%COMP%], .minimal tag:active[_nghost-%COMP%] path[_ngcontent-%COMP%], .minimal tag:active [_nghost-%COMP%] path[_ngcontent-%COMP%]{fill:#000}.bootstrap tag:focus[_nghost-%COMP%] path[_ngcontent-%COMP%], .bootstrap tag:focus [_nghost-%COMP%] path[_ngcontent-%COMP%], .bootstrap tag:active[_nghost-%COMP%] path[_ngcontent-%COMP%], .bootstrap tag:active [_nghost-%COMP%] path[_ngcontent-%COMP%]{fill:#fff}.bootstrap3-info[_nghost-%COMP%], .bootstrap3-info [_nghost-%COMP%]{height:inherit}.bootstrap3-info[_nghost-%COMP%] path[_ngcontent-%COMP%], .bootstrap3-info [_nghost-%COMP%] path[_ngcontent-%COMP%]{fill:#fff}\"]\n });\n return DeleteIconComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// mocking navigator\nconst navigator = typeof window !== 'undefined' ? window.navigator : {\n userAgent: 'Chrome',\n vendor: 'Google Inc'\n};\nconst isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\nlet TagComponent = /*#__PURE__*/(() => {\n class TagComponent {\n constructor(element, renderer, cdRef) {\n this.element = element;\n this.renderer = renderer;\n this.cdRef = cdRef;\n /**\n * @name disabled\n */\n this.disabled = false;\n /**\n * @name onSelect\n */\n this.onSelect = new EventEmitter();\n /**\n * @name onRemove\n */\n this.onRemove = new EventEmitter();\n /**\n * @name onBlur\n */\n this.onBlur = new EventEmitter();\n /**\n * @name onKeyDown\n */\n this.onKeyDown = new EventEmitter();\n /**\n * @name onTagEdited\n */\n this.onTagEdited = new EventEmitter();\n /**\n * @name editing\n */\n this.editing = false;\n /**\n * @name rippleState\n */\n this.rippleState = 'none';\n }\n /**\n * @name readonly {boolean}\n */\n get readonly() {\n return typeof this.model !== 'string' && this.model.readonly === true;\n }\n /**\n * @name select\n */\n select($event) {\n if (this.readonly || this.disabled) {\n return;\n }\n if ($event) {\n $event.stopPropagation();\n }\n this.focus();\n this.onSelect.emit(this.model);\n }\n /**\n * @name remove\n */\n remove($event) {\n $event.stopPropagation();\n this.onRemove.emit(this);\n }\n /**\n * @name focus\n */\n focus() {\n this.element.nativeElement.focus();\n }\n move() {\n this.moving = true;\n }\n /**\n * @name keydown\n * @param event\n */\n keydown(event) {\n if (this.editing) {\n if (event.keyCode === 13) {\n return this.disableEditMode(event);\n }\n } else {\n this.onKeyDown.emit({\n event,\n model: this.model\n });\n }\n }\n /**\n * @name blink\n */\n blink() {\n const classList = this.element.nativeElement.classList;\n classList.add('blink');\n setTimeout(() => classList.remove('blink'), 50);\n }\n /**\n * @name toggleEditMode\n */\n toggleEditMode() {\n if (this.editable) {\n return this.editing ? undefined : this.activateEditMode();\n }\n }\n /**\n * @name onBlurred\n * @param event\n */\n onBlurred(event) {\n // Checks if it is editable first before handeling the onBlurred event in order to prevent\n // a bug in IE where tags are still editable with onlyFromAutocomplete set to true\n if (!this.editable) {\n return;\n }\n this.disableEditMode();\n const value = event.target.innerText;\n const result = typeof this.model === 'string' ? value : {\n ...this.model,\n [this.displayBy]: value\n };\n this.onBlur.emit(result);\n }\n /**\n * @name getDisplayValue\n * @param item\n */\n getDisplayValue(item) {\n return typeof item === 'string' ? item : item[this.displayBy];\n }\n /**\n * @desc returns whether the ripple is visible or not\n * only works in Chrome\n * @name isRippleVisible\n */\n get isRippleVisible() {\n return !this.readonly && !this.editing && isChrome && this.hasRipple;\n }\n /**\n * @name disableEditMode\n * @param $event\n */\n disableEditMode($event) {\n const classList = this.element.nativeElement.classList;\n const input = this.getContentEditableText();\n this.editing = false;\n classList.remove('tag--editing');\n if (!input) {\n this.setContentEditableText(this.model);\n return;\n }\n this.storeNewValue(input);\n this.cdRef.detectChanges();\n if ($event) {\n $event.preventDefault();\n }\n }\n /**\n * @name isDeleteIconVisible\n */\n isDeleteIconVisible() {\n return !this.readonly && !this.disabled && this.removable && !this.editing;\n }\n /**\n * @name getContentEditableText\n */\n getContentEditableText() {\n const input = this.getContentEditable();\n return input ? input.innerText.trim() : '';\n }\n /**\n * @name setContentEditableText\n * @param model\n */\n setContentEditableText(model) {\n const input = this.getContentEditable();\n const value = this.getDisplayValue(model);\n input.innerText = value;\n }\n /**\n * @name\n */\n activateEditMode() {\n const classList = this.element.nativeElement.classList;\n classList.add('tag--editing');\n this.editing = true;\n }\n /**\n * @name storeNewValue\n * @param input\n */\n storeNewValue(input) {\n const exists = tag => {\n return typeof tag === 'string' ? tag === input : tag[this.displayBy] === input;\n };\n const hasId = () => {\n return this.model[this.identifyBy] !== this.model[this.displayBy];\n };\n // if the value changed, replace the value in the model\n if (exists(this.model)) {\n return;\n }\n const model = typeof this.model === 'string' ? input : {\n index: this.index,\n [this.identifyBy]: hasId() ? this.model[this.identifyBy] : input,\n [this.displayBy]: input\n };\n if (this.canAddTag(model)) {\n this.onTagEdited.emit({\n tag: model,\n index: this.index\n });\n } else {\n this.setContentEditableText(this.model);\n }\n }\n /**\n * @name getContentEditable\n */\n getContentEditable() {\n return this.element.nativeElement.querySelector('[contenteditable]');\n }\n }\n TagComponent.ɵfac = function TagComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TagComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n TagComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TagComponent,\n selectors: [[\"tag\"]],\n viewQuery: function TagComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(TagRipple, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ripple = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function TagComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function TagComponent_keydown_HostBindingHandler($event) {\n return ctx.keydown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"moving\", ctx.moving);\n }\n },\n inputs: {\n model: \"model\",\n removable: \"removable\",\n editable: \"editable\",\n template: \"template\",\n displayBy: \"displayBy\",\n identifyBy: \"identifyBy\",\n index: \"index\",\n hasRipple: \"hasRipple\",\n disabled: \"disabled\",\n canAddTag: \"canAddTag\"\n },\n outputs: {\n onSelect: \"onSelect\",\n onRemove: \"onRemove\",\n onBlur: \"onBlur\",\n onKeyDown: \"onKeyDown\",\n onTagEdited: \"onTagEdited\"\n },\n decls: 4,\n vars: 8,\n consts: [[3, \"click\", \"dblclick\", \"mousedown\", \"mouseup\", \"ngSwitch\"], [4, \"ngSwitchCase\"], [\"class\", \"tag-wrapper\", 4, \"ngSwitchCase\"], [3, \"state\", 4, \"ngIf\"], [3, \"ngTemplateOutletContext\", \"ngTemplateOutlet\"], [1, \"tag-wrapper\"], [\"spellcheck\", \"false\", 1, \"tag__text\", \"inline\", 3, \"keydown.enter\", \"keydown.escape\", \"click\", \"blur\"], [\"aria-label\", \"Remove tag\", \"role\", \"button\", 3, \"click\", 4, \"ngIf\"], [\"aria-label\", \"Remove tag\", \"role\", \"button\", 3, \"click\"], [3, \"state\"]],\n template: function TagComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"click\", function TagComponent_Template_div_click_0_listener($event) {\n return ctx.select($event);\n })(\"dblclick\", function TagComponent_Template_div_dblclick_0_listener() {\n return ctx.toggleEditMode();\n })(\"mousedown\", function TagComponent_Template_div_mousedown_0_listener() {\n return ctx.rippleState = \"clicked\";\n })(\"mouseup\", function TagComponent_Template_div_mouseup_0_listener() {\n return ctx.rippleState = \"none\";\n });\n i0.ɵɵtemplate(1, TagComponent_div_1_Template, 2, 6, \"div\", 1)(2, TagComponent_div_2_Template, 4, 4, \"div\", 2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, TagComponent_tag_ripple_3_Template, 1, 2, \"tag-ripple\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"disabled\", ctx.disabled);\n i0.ɵɵproperty(\"ngSwitch\", !!ctx.template);\n i0.ɵɵattribute(\"tabindex\", -1)(\"aria-label\", ctx.getDisplayValue(ctx.model));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isRippleVisible);\n }\n },\n dependencies: [DeleteIconComponent, TagRipple, i2.NgSwitch, i2.NgSwitchCase, i2.NgTemplateOutlet, i2.NgIf],\n styles: [\"[_nghost-%COMP%], [_nghost-%COMP%] > div[_ngcontent-%COMP%], [_nghost-%COMP%] > div[_ngcontent-%COMP%]:focus{outline:0;overflow:hidden;transition:opacity 1s;z-index:1}[_nghost-%COMP%]{max-width:400px}.blink[_nghost-%COMP%]{-webkit-animation:_ngcontent-%COMP%_blink .3s normal forwards ease-in-out;animation:_ngcontent-%COMP%_blink .3s normal forwards ease-in-out}@-webkit-keyframes _ngcontent-%COMP%_blink{0%{opacity:.3}}@keyframes _ngcontent-%COMP%_blink{0%{opacity:.3}}[_nghost-%COMP%] .disabled[_ngcontent-%COMP%]{cursor:not-allowed}[_nghost-%COMP%] [contenteditable=true][_ngcontent-%COMP%]{outline:0}.tag-wrapper[_ngcontent-%COMP%]{flex-direction:row;display:flex}.tag__text[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\"]\n });\n return TagComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @name animations\n */\nconst animations = [trigger('animation', [state('in', style({\n opacity: 1\n})), state('out', style({\n opacity: 0\n})), transition(':enter', [animate('{{ enter }}', keyframes([style({\n opacity: 0,\n offset: 0,\n transform: 'translate(0px, 20px)'\n}), style({\n opacity: 0.3,\n offset: 0.3,\n transform: 'translate(0px, -10px)'\n}), style({\n opacity: 0.5,\n offset: 0.5,\n transform: 'translate(0px, 0px)'\n}), style({\n opacity: 0.75,\n offset: 0.75,\n transform: 'translate(0px, 5px)'\n}), style({\n opacity: 1,\n offset: 1,\n transform: 'translate(0px, 0px)'\n})]))]), transition(':leave', [animate('{{ leave }}', keyframes([style({\n opacity: 1,\n transform: 'translateX(0)',\n offset: 0\n}), style({\n opacity: 1,\n transform: 'translateX(-15px)',\n offset: 0.7\n}), style({\n opacity: 0,\n transform: 'translateX(100%)',\n offset: 1.0\n})]))])])];\nlet TagInputDropdown = /*#__PURE__*/(() => {\n class TagInputDropdown {\n constructor(injector) {\n this.injector = injector;\n /**\n * @name offset\n */\n this.offset = defaults.dropdown.offset;\n /**\n * @name focusFirstElement\n */\n this.focusFirstElement = defaults.dropdown.focusFirstElement;\n /**\n * - show autocomplete dropdown if the value of input is empty\n * @name showDropdownIfEmpty\n */\n this.showDropdownIfEmpty = defaults.dropdown.showDropdownIfEmpty;\n /**\n * - desc minimum text length in order to display the autocomplete dropdown\n * @name minimumTextLength\n */\n this.minimumTextLength = defaults.dropdown.minimumTextLength;\n /**\n * - number of items to display in the autocomplete dropdown\n * @name limitItemsTo\n */\n this.limitItemsTo = defaults.dropdown.limitItemsTo;\n /**\n * @name displayBy\n */\n this.displayBy = defaults.dropdown.displayBy;\n /**\n * @name identifyBy\n */\n this.identifyBy = defaults.dropdown.identifyBy;\n /**\n * @description a function a developer can use to implement custom matching for the autocomplete\n * @name matchingFn\n */\n this.matchingFn = defaults.dropdown.matchingFn;\n /**\n * @name appendToBody\n */\n this.appendToBody = defaults.dropdown.appendToBody;\n /**\n * @name keepOpen\n * @description option to leave dropdown open when adding a new item\n */\n this.keepOpen = defaults.dropdown.keepOpen;\n /**\n * @name dynamicUpdate\n */\n this.dynamicUpdate = defaults.dropdown.dynamicUpdate;\n /**\n * @name zIndex\n */\n this.zIndex = defaults.dropdown.zIndex;\n /**\n * list of items that match the current value of the input (for autocomplete)\n * @name items\n */\n this.items = [];\n /**\n * @name tagInput\n */\n this.tagInput = this.injector.get(TagInputComponent);\n /**\n * @name _autocompleteItems\n */\n this._autocompleteItems = [];\n /**\n *\n * @name show\n */\n this.show = () => {\n const maxItemsReached = this.tagInput.items.length === this.tagInput.maxItems;\n const value = this.getFormValue();\n const hasMinimumText = value.trim().length >= this.minimumTextLength;\n const position = this.calculatePosition();\n const items = this.getMatchingItems(value);\n const hasItems = items.length > 0;\n const isHidden = this.isVisible === false;\n const showDropdownIfEmpty = this.showDropdownIfEmpty && hasItems && !value;\n const isDisabled = this.tagInput.disable;\n const shouldShow = isHidden && (hasItems && hasMinimumText || showDropdownIfEmpty);\n const shouldHide = this.isVisible && !hasItems;\n if (this.autocompleteObservable && hasMinimumText) {\n return this.getItemsFromObservable(value);\n }\n if (!this.showDropdownIfEmpty && !value || maxItemsReached || isDisabled) {\n return this.dropdown.hide();\n }\n this.setItems(items);\n if (shouldShow) {\n this.dropdown.show(position);\n } else if (shouldHide) {\n this.hide();\n }\n };\n /**\n * @name requestAdding\n * @param item {Ng2MenuItem}\n */\n this.requestAdding = async item => {\n const tag = this.createTagModel(item);\n await this.tagInput.onAddingRequested(true, tag).catch(() => {});\n };\n /**\n * @name resetItems\n */\n this.resetItems = () => {\n this.items = [];\n };\n /**\n * @name getItemsFromObservable\n * @param text\n */\n this.getItemsFromObservable = text => {\n this.setLoadingState(true);\n const subscribeFn = data => {\n // hide loading animation\n this.setLoadingState(false)\n // add items\n .populateItems(data);\n this.setItems(this.getMatchingItems(text));\n if (this.items.length) {\n this.dropdown.show(this.calculatePosition());\n } else {\n this.dropdown.hide();\n }\n };\n this.autocompleteObservable(text).pipe(first()).subscribe(subscribeFn, () => this.setLoadingState(false));\n };\n }\n /**\n * @name autocompleteItems\n * @param items\n */\n set autocompleteItems(items) {\n this._autocompleteItems = items;\n }\n /**\n * @name autocompleteItems\n * @desc array of items that will populate the autocomplete\n */\n get autocompleteItems() {\n const items = this._autocompleteItems;\n if (!items) {\n return [];\n }\n return items.map(item => {\n return typeof item === 'string' ? {\n [this.displayBy]: item,\n [this.identifyBy]: item\n } : item;\n });\n }\n /**\n * @name ngAfterviewInit\n */\n ngAfterViewInit() {\n this.onItemClicked().subscribe(item => {\n this.requestAdding(item);\n });\n // reset itemsMatching array when the dropdown is hidden\n this.onHide().subscribe(this.resetItems);\n const DEBOUNCE_TIME = 200;\n const KEEP_OPEN = this.keepOpen;\n this.tagInput.onTextChange.asObservable().pipe(distinctUntilChanged(), debounceTime(DEBOUNCE_TIME), filter(value => {\n if (KEEP_OPEN === false) {\n return value.length > 0;\n }\n return true;\n })).subscribe(this.show);\n }\n /**\n * @name updatePosition\n */\n updatePosition() {\n const position = this.tagInput.inputForm.getElementPosition();\n this.dropdown.menu.updatePosition(position, this.dynamicUpdate);\n }\n /**\n * @name isVisible\n */\n get isVisible() {\n return this.dropdown.menu.dropdownState.menuState.isVisible;\n }\n /**\n * @name onHide\n */\n onHide() {\n return this.dropdown.onHide;\n }\n /**\n * @name onItemClicked\n */\n onItemClicked() {\n return this.dropdown.onItemClicked;\n }\n /**\n * @name selectedItem\n */\n get selectedItem() {\n return this.dropdown.menu.dropdownState.dropdownState.selectedItem;\n }\n /**\n * @name state\n */\n get state() {\n return this.dropdown.menu.dropdownState;\n }\n /**\n * @name hide\n */\n hide() {\n this.resetItems();\n this.dropdown.hide();\n }\n /**\n * @name scrollListener\n */\n scrollListener() {\n if (!this.isVisible || !this.dynamicUpdate) {\n return;\n }\n this.updatePosition();\n }\n /**\n * @name onWindowBlur\n */\n onWindowBlur() {\n this.dropdown.hide();\n }\n /**\n * @name getFormValue\n */\n getFormValue() {\n const formValue = this.tagInput.formValue;\n return formValue ? formValue.toString().trim() : '';\n }\n /**\n * @name calculatePosition\n */\n calculatePosition() {\n return this.tagInput.inputForm.getElementPosition();\n }\n /**\n * @name createTagModel\n * @param item\n */\n createTagModel(item) {\n const display = typeof item.value === 'string' ? item.value : item.value[this.displayBy];\n const value = typeof item.value === 'string' ? item.value : item.value[this.identifyBy];\n return {\n ...item.value,\n [this.tagInput.displayBy]: display,\n [this.tagInput.identifyBy]: value\n };\n }\n /**\n *\n * @param value {string}\n */\n getMatchingItems(value) {\n if (!value && !this.showDropdownIfEmpty) {\n return [];\n }\n const dupesAllowed = this.tagInput.allowDupes;\n return this.autocompleteItems.filter(item => {\n const hasValue = dupesAllowed ? false : this.tagInput.tags.some(tag => {\n const identifyBy = this.tagInput.identifyBy;\n const model = typeof tag.model === 'string' ? tag.model : tag.model[identifyBy];\n return model === item[this.identifyBy];\n });\n return this.matchingFn(value, item) && hasValue === false;\n });\n }\n /**\n * @name setItems\n */\n setItems(items) {\n this.items = items.slice(0, this.limitItemsTo || items.length);\n }\n /**\n * @name populateItems\n * @param data\n */\n populateItems(data) {\n this.autocompleteItems = data.map(item => {\n return typeof item === 'string' ? {\n [this.displayBy]: item,\n [this.identifyBy]: item\n } : item;\n });\n return this;\n }\n /**\n * @name setLoadingState\n * @param state\n */\n setLoadingState(state) {\n this.tagInput.isLoading = state;\n return this;\n }\n }\n TagInputDropdown.ɵfac = function TagInputDropdown_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TagInputDropdown)(i0.ɵɵdirectiveInject(i0.Injector));\n };\n TagInputDropdown.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TagInputDropdown,\n selectors: [[\"tag-input-dropdown\"]],\n contentQueries: function TagInputDropdown_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, TemplateRef, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n viewQuery: function TagInputDropdown_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(Ng2Dropdown, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdown = _t.first);\n }\n },\n hostBindings: function TagInputDropdown_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"scroll\", function TagInputDropdown_scroll_HostBindingHandler() {\n return ctx.scrollListener();\n }, false, i0.ɵɵresolveWindow)(\"blur\", function TagInputDropdown_blur_HostBindingHandler() {\n return ctx.onWindowBlur();\n }, false, i0.ɵɵresolveWindow);\n }\n },\n inputs: {\n offset: \"offset\",\n focusFirstElement: \"focusFirstElement\",\n showDropdownIfEmpty: \"showDropdownIfEmpty\",\n autocompleteObservable: \"autocompleteObservable\",\n minimumTextLength: \"minimumTextLength\",\n limitItemsTo: \"limitItemsTo\",\n displayBy: \"displayBy\",\n identifyBy: \"identifyBy\",\n matchingFn: \"matchingFn\",\n appendToBody: \"appendToBody\",\n keepOpen: \"keepOpen\",\n dynamicUpdate: \"dynamicUpdate\",\n zIndex: \"zIndex\",\n autocompleteItems: \"autocompleteItems\"\n },\n decls: 3,\n vars: 6,\n consts: [[3, \"dynamicUpdate\"], [3, \"focusFirstElement\", \"zIndex\", \"appendToBody\", \"offset\"], [3, \"value\", \"ngSwitch\", 4, \"ngFor\", \"ngForOf\"], [3, \"value\", \"ngSwitch\"], [3, \"innerHTML\", 4, \"ngSwitchCase\"], [4, \"ngSwitchDefault\"], [3, \"innerHTML\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function TagInputDropdown_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ng2-dropdown\", 0)(1, \"ng2-dropdown-menu\", 1);\n i0.ɵɵtemplate(2, TagInputDropdown_ng2_menu_item_2_Template, 3, 3, \"ng2-menu-item\", 2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"dynamicUpdate\", ctx.dynamicUpdate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"focusFirstElement\", ctx.focusFirstElement)(\"zIndex\", ctx.zIndex)(\"appendToBody\", ctx.appendToBody)(\"offset\", ctx.offset);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.items);\n }\n },\n dependencies: [i1$1.Ng2Dropdown, i1$1.Ng2DropdownMenu, i1$1.Ng2MenuItem, i2.NgForOf, i2.NgSwitch, i2.NgSwitchCase, i2.NgSwitchDefault, i2.NgTemplateOutlet, HighlightPipe],\n encapsulation: 2\n });\n return TagInputDropdown;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// angular\nconst CUSTOM_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TagInputComponent),\n multi: true\n};\nlet TagInputComponent = /*#__PURE__*/(() => {\n class TagInputComponent extends TagInputAccessor {\n constructor(renderer, dragProvider) {\n super();\n this.renderer = renderer;\n this.dragProvider = dragProvider;\n /**\n * @name separatorKeys\n * @desc keyboard keys with which a user can separate items\n */\n this.separatorKeys = defaults.tagInput.separatorKeys;\n /**\n * @name separatorKeyCodes\n * @desc keyboard key codes with which a user can separate items\n */\n this.separatorKeyCodes = defaults.tagInput.separatorKeyCodes;\n /**\n * @name placeholder\n * @desc the placeholder of the input text\n */\n this.placeholder = defaults.tagInput.placeholder;\n /**\n * @name secondaryPlaceholder\n * @desc placeholder to appear when the input is empty\n */\n this.secondaryPlaceholder = defaults.tagInput.secondaryPlaceholder;\n /**\n * @name maxItems\n * @desc maximum number of items that can be added\n */\n this.maxItems = defaults.tagInput.maxItems;\n /**\n * @name validators\n * @desc array of Validators that are used to validate the tag before it gets appended to the list\n */\n this.validators = defaults.tagInput.validators;\n /**\n * @name asyncValidators\n * @desc array of AsyncValidator that are used to validate the tag before it gets appended to the list\n */\n this.asyncValidators = defaults.tagInput.asyncValidators;\n /**\n * - if set to true, it will only possible to add items from the autocomplete\n * @name onlyFromAutocomplete\n */\n this.onlyFromAutocomplete = defaults.tagInput.onlyFromAutocomplete;\n /**\n * @name errorMessages\n */\n this.errorMessages = defaults.tagInput.errorMessages;\n /**\n * @name theme\n */\n this.theme = defaults.tagInput.theme;\n /**\n * @name onTextChangeDebounce\n */\n this.onTextChangeDebounce = defaults.tagInput.onTextChangeDebounce;\n /**\n * - custom id assigned to the input\n * @name id\n */\n this.inputId = defaults.tagInput.inputId;\n /**\n * - custom class assigned to the input\n */\n this.inputClass = defaults.tagInput.inputClass;\n /**\n * - option to clear text input when the form is blurred\n * @name clearOnBlur\n */\n this.clearOnBlur = defaults.tagInput.clearOnBlur;\n /**\n * - hideForm\n * @name clearOnBlur\n */\n this.hideForm = defaults.tagInput.hideForm;\n /**\n * @name addOnBlur\n */\n this.addOnBlur = defaults.tagInput.addOnBlur;\n /**\n * @name addOnPaste\n */\n this.addOnPaste = defaults.tagInput.addOnPaste;\n /**\n * - pattern used with the native method split() to separate patterns in the string pasted\n * @name pasteSplitPattern\n */\n this.pasteSplitPattern = defaults.tagInput.pasteSplitPattern;\n /**\n * @name blinkIfDupe\n */\n this.blinkIfDupe = defaults.tagInput.blinkIfDupe;\n /**\n * @name removable\n */\n this.removable = defaults.tagInput.removable;\n /**\n * @name editable\n */\n this.editable = defaults.tagInput.editable;\n /**\n * @name allowDupes\n */\n this.allowDupes = defaults.tagInput.allowDupes;\n /**\n * @description if set to true, the newly added tags will be added as strings, and not objects\n * @name modelAsStrings\n */\n this.modelAsStrings = defaults.tagInput.modelAsStrings;\n /**\n * @name trimTags\n */\n this.trimTags = defaults.tagInput.trimTags;\n /**\n * @name ripple\n */\n this.ripple = defaults.tagInput.ripple;\n /**\n * @name tabindex\n * @desc pass through the specified tabindex to the input\n */\n this.tabindex = defaults.tagInput.tabIndex;\n /**\n * @name disable\n */\n this.disable = defaults.tagInput.disable;\n /**\n * @name dragZone\n */\n this.dragZone = defaults.tagInput.dragZone;\n /**\n * @name onRemoving\n */\n this.onRemoving = defaults.tagInput.onRemoving;\n /**\n * @name onAdding\n */\n this.onAdding = defaults.tagInput.onAdding;\n /**\n * @name animationDuration\n */\n this.animationDuration = defaults.tagInput.animationDuration;\n /**\n * @name onAdd\n * @desc event emitted when adding a new item\n */\n this.onAdd = new EventEmitter();\n /**\n * @name onRemove\n * @desc event emitted when removing an existing item\n */\n this.onRemove = new EventEmitter();\n /**\n * @name onSelect\n * @desc event emitted when selecting an item\n */\n this.onSelect = new EventEmitter();\n /**\n * @name onFocus\n * @desc event emitted when the input is focused\n */\n this.onFocus = new EventEmitter();\n /**\n * @name onFocus\n * @desc event emitted when the input is blurred\n */\n this.onBlur = new EventEmitter();\n /**\n * @name onTextChange\n * @desc event emitted when the input value changes\n */\n this.onTextChange = new EventEmitter();\n /**\n * - output triggered when text is pasted in the form\n * @name onPaste\n */\n this.onPaste = new EventEmitter();\n /**\n * - output triggered when tag entered is not valid\n * @name onValidationError\n */\n this.onValidationError = new EventEmitter();\n /**\n * - output triggered when tag is edited\n * @name onTagEdited\n */\n this.onTagEdited = new EventEmitter();\n /**\n * @name isLoading\n */\n this.isLoading = false;\n /**\n * @name listeners\n * @desc array of events that get fired using @fireEvents\n */\n this.listeners = {\n [KEYDOWN]: [],\n [KEYUP]: []\n };\n /**\n * @description emitter for the 2-way data binding inputText value\n * @name inputTextChange\n */\n this.inputTextChange = new EventEmitter();\n /**\n * @description private variable to bind get/set\n * @name inputTextValue\n */\n this.inputTextValue = '';\n this.errors = [];\n /**\n * @name appendTag\n * @param tag {TagModel}\n */\n this.appendTag = (tag, index = this.items.length) => {\n const items = this.items;\n const model = this.modelAsStrings ? tag[this.identifyBy] : tag;\n this.items = [...items.slice(0, index), model, ...items.slice(index, items.length)];\n };\n /**\n * @name createTag\n * @param model\n */\n this.createTag = model => {\n const trim = (val, key) => {\n return typeof val === 'string' ? val.trim() : val[key];\n };\n return {\n ...(typeof model !== 'string' ? model : {}),\n [this.displayBy]: this.trimTags ? trim(model, this.displayBy) : model,\n [this.identifyBy]: this.trimTags ? trim(model, this.identifyBy) : model\n };\n };\n /**\n *\n * @param tag\n * @param isFromAutocomplete\n */\n this.isTagValid = (tag, fromAutocomplete = false) => {\n const selectedItem = this.dropdown ? this.dropdown.selectedItem : undefined;\n const value = this.getItemDisplay(tag).trim();\n if (selectedItem && !fromAutocomplete || !value) {\n return false;\n }\n const dupe = this.findDupe(tag, fromAutocomplete);\n // if so, give a visual cue and return false\n if (!this.allowDupes && dupe && this.blinkIfDupe) {\n const model = this.tags.find(item => {\n return this.getItemValue(item.model) === this.getItemValue(dupe);\n });\n if (model) {\n model.blink();\n }\n }\n const isFromAutocomplete = fromAutocomplete && this.onlyFromAutocomplete;\n const assertions = [\n // 1. there must be no dupe OR dupes are allowed\n !dupe || this.allowDupes,\n // 2. check max items has not been reached\n !this.maxItemsReached,\n // 3. check item comes from autocomplete or onlyFromAutocomplete is false\n isFromAutocomplete || !this.onlyFromAutocomplete];\n return assertions.filter(Boolean).length === assertions.length;\n };\n /**\n * @name onPasteCallback\n * @param data\n */\n this.onPasteCallback = async data => {\n const getText = () => {\n const isIE = Boolean(window.clipboardData);\n const clipboardData = isIE ? window.clipboardData : data.clipboardData;\n const type = isIE ? 'Text' : 'text/plain';\n return clipboardData === null ? '' : clipboardData.getData(type) || '';\n };\n const text = getText();\n const requests = text.split(this.pasteSplitPattern).map(item => {\n const tag = this.createTag(item);\n this.setInputValue(tag[this.displayBy]);\n return this.onAddingRequested(false, tag);\n });\n const resetInput = () => setTimeout(() => this.setInputValue(''), 50);\n Promise.all(requests).then(() => {\n this.onPaste.emit(text);\n resetInput();\n }).catch(resetInput);\n };\n }\n /**\n * @name inputText\n */\n get inputText() {\n return this.inputTextValue;\n }\n /**\n * @name inputText\n * @param text\n */\n set inputText(text) {\n this.inputTextValue = text;\n this.inputTextChange.emit(text);\n }\n /**\n * @desc removes the tab index if it is set - it will be passed through to the input\n * @name tabindexAttr\n */\n get tabindexAttr() {\n return this.tabindex !== '' ? '-1' : '';\n }\n /**\n * @name ngAfterViewInit\n */\n ngAfterViewInit() {\n // set up listeners\n this.setUpKeypressListeners();\n this.setupSeparatorKeysListener();\n this.setUpInputKeydownListeners();\n if (this.onTextChange.observers.length) {\n this.setUpTextChangeSubscriber();\n }\n // if clear on blur is set to true, subscribe to the event and clear the text's form\n if (this.clearOnBlur || this.addOnBlur) {\n this.setUpOnBlurSubscriber();\n }\n // if addOnPaste is set to true, register the handler and add items\n if (this.addOnPaste) {\n this.setUpOnPasteListener();\n }\n const statusChanges$ = this.inputForm.form.statusChanges;\n statusChanges$.pipe(filter$1(status => status !== 'PENDING')).subscribe(() => {\n this.errors = this.inputForm.getErrorMessages(this.errorMessages);\n });\n this.isProgressBarVisible$ = statusChanges$.pipe(map(status => {\n return status === 'PENDING' || this.isLoading;\n }));\n // if hideForm is set to true, remove the input\n if (this.hideForm) {\n this.inputForm.destroy();\n }\n }\n /**\n * @name ngOnInit\n */\n ngOnInit() {\n // if the number of items specified in the model is > of the value of maxItems\n // degrade gracefully and let the max number of items to be the number of items in the model\n // though, warn the user.\n const hasReachedMaxItems = this.maxItems !== undefined && this.items && this.items.length > this.maxItems;\n if (hasReachedMaxItems) {\n this.maxItems = this.items.length;\n console.warn(MAX_ITEMS_WARNING);\n }\n // Setting editable to false to fix problem with tags in IE still being editable when\n // onlyFromAutocomplete is true\n this.editable = this.onlyFromAutocomplete ? false : this.editable;\n this.setAnimationMetadata();\n }\n /**\n * @name onRemoveRequested\n * @param tag\n * @param index\n */\n onRemoveRequested(tag, index) {\n return new Promise(resolve => {\n const subscribeFn = model => {\n this.removeItem(model, index);\n resolve(tag);\n };\n this.onRemoving ? this.onRemoving(tag).pipe(first$1()).subscribe(subscribeFn) : subscribeFn(tag);\n });\n }\n /**\n * @name onAddingRequested\n * @param fromAutocomplete {boolean}\n * @param tag {TagModel}\n * @param index? {number}\n * @param giveupFocus? {boolean}\n */\n onAddingRequested(fromAutocomplete, tag, index, giveupFocus) {\n return new Promise((resolve, reject) => {\n const subscribeFn = model => {\n return this.addItem(fromAutocomplete, model, index, giveupFocus).then(resolve).catch(reject);\n };\n return this.onAdding ? this.onAdding(tag).pipe(first$1()).subscribe(subscribeFn, reject) : subscribeFn(tag);\n });\n }\n /**\n * @name selectItem\n * @desc selects item passed as parameter as the selected tag\n * @param item\n * @param emit\n */\n selectItem(item, emit = true) {\n const isReadonly = item && typeof item !== 'string' && item.readonly;\n if (isReadonly || this.selectedTag === item) {\n return;\n }\n this.selectedTag = item;\n if (emit) {\n this.onSelect.emit(item);\n }\n }\n /**\n * @name fireEvents\n * @desc goes through the list of the events for a given eventName, and fires each of them\n * @param eventName\n * @param $event\n */\n fireEvents(eventName, $event) {\n this.listeners[eventName].forEach(listener => listener.call(this, $event));\n }\n /**\n * @name handleKeydown\n * @desc handles action when the user hits a keyboard key\n * @param data\n */\n handleKeydown(data) {\n const event = data.event;\n const key = event.keyCode || event.which;\n const shiftKey = event.shiftKey || false;\n switch (KEY_PRESS_ACTIONS[key]) {\n case ACTIONS_KEYS.DELETE:\n if (this.selectedTag && this.removable) {\n const index = this.items.indexOf(this.selectedTag);\n this.onRemoveRequested(this.selectedTag, index);\n }\n break;\n case ACTIONS_KEYS.SWITCH_PREV:\n this.moveToTag(data.model, PREV);\n break;\n case ACTIONS_KEYS.SWITCH_NEXT:\n this.moveToTag(data.model, NEXT);\n break;\n case ACTIONS_KEYS.TAB:\n if (shiftKey) {\n if (this.isFirstTag(data.model)) {\n return;\n }\n this.moveToTag(data.model, PREV);\n } else {\n if (this.isLastTag(data.model) && (this.disable || this.maxItemsReached)) {\n return;\n }\n this.moveToTag(data.model, NEXT);\n }\n break;\n default:\n return;\n }\n // prevent default behaviour\n event.preventDefault();\n }\n async onFormSubmit() {\n try {\n await this.onAddingRequested(false, this.formValue);\n } catch {\n return;\n }\n }\n /**\n * @name setInputValue\n * @param value\n */\n setInputValue(value, emitEvent = true) {\n const control = this.getControl();\n // update form value with the transformed item\n control.setValue(value, {\n emitEvent\n });\n }\n /**\n * @name getControl\n */\n getControl() {\n return this.inputForm.value;\n }\n /**\n * @name focus\n * @param applyFocus\n * @param displayAutocomplete\n */\n focus(applyFocus = false, displayAutocomplete = false) {\n if (this.dragProvider.getState('dragging')) {\n return;\n }\n this.selectItem(undefined, false);\n if (applyFocus) {\n this.inputForm.focus();\n this.onFocus.emit(this.formValue);\n }\n }\n /**\n * @name blur\n */\n blur() {\n this.onTouched();\n this.onBlur.emit(this.formValue);\n }\n /**\n * @name hasErrors\n */\n hasErrors() {\n return !!this.inputForm && this.inputForm.hasErrors();\n }\n /**\n * @name isInputFocused\n */\n isInputFocused() {\n return !!this.inputForm && this.inputForm.isInputFocused();\n }\n /**\n * - this is the one way I found to tell if the template has been passed and it is not\n * the template for the menu item\n * @name hasCustomTemplate\n */\n hasCustomTemplate() {\n const template = this.templates ? this.templates.first : undefined;\n const menuTemplate = this.dropdown && this.dropdown.templates ? this.dropdown.templates.first : undefined;\n return Boolean(template && template !== menuTemplate);\n }\n /**\n * @name maxItemsReached\n */\n get maxItemsReached() {\n return this.maxItems !== undefined && this.items.length >= this.maxItems;\n }\n /**\n * @name formValue\n */\n get formValue() {\n const form = this.inputForm.value;\n return form ? form.value : '';\n }\n /**3\n * @name onDragStarted\n * @param event\n * @param index\n */\n onDragStarted(event, tag, index) {\n event.stopPropagation();\n const item = {\n zone: this.dragZone,\n tag,\n index\n };\n this.dragProvider.setSender(this);\n this.dragProvider.setDraggedItem(event, item);\n this.dragProvider.setState({\n dragging: true,\n index\n });\n }\n /**\n * @name onDragOver\n * @param event\n */\n onDragOver(event, index) {\n this.dragProvider.setState({\n dropping: true\n });\n this.dragProvider.setReceiver(this);\n event.preventDefault();\n }\n /**\n * @name onTagDropped\n * @param event\n * @param index\n */\n onTagDropped(event, index) {\n const item = this.dragProvider.getDraggedItem(event);\n if (!item || item.zone !== this.dragZone) {\n return;\n }\n this.dragProvider.onTagDropped(item.tag, item.index, index);\n event.preventDefault();\n event.stopPropagation();\n }\n /**\n * @name isDropping\n */\n isDropping() {\n const isReceiver = this.dragProvider.receiver === this;\n const isDropping = this.dragProvider.getState('dropping');\n return Boolean(isReceiver && isDropping);\n }\n /**\n * @name onTagBlurred\n * @param changedElement {TagModel}\n * @param index {number}\n */\n onTagBlurred(changedElement, index) {\n this.items[index] = changedElement;\n this.blur();\n }\n /**\n * @name trackBy\n * @param items\n */\n trackBy(index, item) {\n return item[this.identifyBy];\n }\n /**\n * @name updateEditedTag\n * @param tag\n */\n updateEditedTag(tag) {\n this.onTagEdited.emit(tag);\n }\n /**\n * @name moveToTag\n * @param item\n * @param direction\n */\n moveToTag(item, direction) {\n const isLast = this.isLastTag(item);\n const isFirst = this.isFirstTag(item);\n const stopSwitch = direction === NEXT && isLast || direction === PREV && isFirst;\n if (stopSwitch) {\n this.focus(true);\n return;\n }\n const offset = direction === NEXT ? 1 : -1;\n const index = this.getTagIndex(item) + offset;\n const tag = this.getTagAtIndex(index);\n return tag.select.call(tag);\n }\n /**\n * @name isFirstTag\n * @param item {TagModel}\n */\n isFirstTag(item) {\n return this.tags.first.model === item;\n }\n /**\n * @name isLastTag\n * @param item {TagModel}\n */\n isLastTag(item) {\n return this.tags.last.model === item;\n }\n /**\n * @name getTagIndex\n * @param item\n */\n getTagIndex(item) {\n const tags = this.tags.toArray();\n return tags.findIndex(tag => tag.model === item);\n }\n /**\n * @name getTagAtIndex\n * @param index\n */\n getTagAtIndex(index) {\n const tags = this.tags.toArray();\n return tags[index];\n }\n /**\n * @name removeItem\n * @desc removes an item from the array of the model\n * @param tag {TagModel}\n * @param index {number}\n */\n removeItem(tag, index) {\n this.items = this.getItemsWithout(index);\n // if the removed tag was selected, set it as undefined\n if (this.selectedTag === tag) {\n this.selectItem(undefined, false);\n }\n // focus input\n this.focus(true, false);\n // emit remove event\n this.onRemove.emit(tag);\n }\n /**\n * @name addItem\n * @desc adds the current text model to the items array\n * @param fromAutocomplete {boolean}\n * @param item {TagModel}\n * @param index? {number}\n * @param giveupFocus? {boolean}\n */\n addItem(fromAutocomplete = false, item, index, giveupFocus) {\n const display = this.getItemDisplay(item);\n const tag = this.createTag(item);\n if (fromAutocomplete) {\n this.setInputValue(this.getItemValue(item, true));\n }\n return new Promise((resolve, reject) => {\n /**\n * @name reset\n */\n const reset = () => {\n // reset control and focus input\n this.setInputValue('');\n if (giveupFocus) {\n this.focus(false, false);\n } else {\n // focus input\n this.focus(true, false);\n }\n resolve(display);\n };\n const appendItem = () => {\n this.appendTag(tag, index);\n // emit event\n this.onAdd.emit(tag);\n if (!this.dropdown) {\n return;\n }\n this.dropdown.hide();\n if (this.dropdown.showDropdownIfEmpty) {\n this.dropdown.show();\n }\n };\n const status = this.inputForm.form.status;\n const isTagValid = this.isTagValid(tag, fromAutocomplete);\n const onValidationError = () => {\n this.onValidationError.emit(tag);\n return reject();\n };\n if (status === 'VALID' && isTagValid) {\n appendItem();\n return reset();\n }\n if (status === 'INVALID' || !isTagValid) {\n reset();\n return onValidationError();\n }\n if (status === 'PENDING') {\n const statusUpdate$ = this.inputForm.form.statusChanges;\n return statusUpdate$.pipe(filter$1(statusUpdate => statusUpdate !== 'PENDING'), first$1()).subscribe(statusUpdate => {\n if (statusUpdate === 'VALID' && isTagValid) {\n appendItem();\n return reset();\n } else {\n reset();\n return onValidationError();\n }\n });\n }\n });\n }\n /**\n * @name setupSeparatorKeysListener\n */\n setupSeparatorKeysListener() {\n const useSeparatorKeys = this.separatorKeyCodes.length > 0 || this.separatorKeys.length > 0;\n const listener = $event => {\n const hasKeyCode = this.separatorKeyCodes.indexOf($event.keyCode) >= 0;\n const hasKey = this.separatorKeys.indexOf($event.key) >= 0;\n // the keyCode of keydown event is 229 when IME is processing the key event.\n const isIMEProcessing = $event.keyCode === 229;\n if (hasKeyCode || hasKey && !isIMEProcessing) {\n $event.preventDefault();\n this.onAddingRequested(false, this.formValue).catch(() => {});\n }\n };\n listen.call(this, KEYDOWN, listener, useSeparatorKeys);\n }\n /**\n * @name setUpKeypressListeners\n */\n setUpKeypressListeners() {\n const listener = $event => {\n const isCorrectKey = $event.keyCode === 37 || $event.keyCode === 8;\n if (isCorrectKey && !this.formValue && this.items.length) {\n this.tags.last.select.call(this.tags.last);\n }\n };\n // setting up the keypress listeners\n listen.call(this, KEYDOWN, listener);\n }\n /**\n * @name setUpKeydownListeners\n */\n setUpInputKeydownListeners() {\n this.inputForm.onKeydown.subscribe(event => {\n if (event.key === 'Backspace' && this.formValue.trim() === '') {\n event.preventDefault();\n }\n });\n }\n /**\n * @name setUpOnPasteListener\n */\n setUpOnPasteListener() {\n const input = this.inputForm.input.nativeElement;\n // attach listener to input\n this.renderer.listen(input, 'paste', event => {\n this.onPasteCallback(event);\n event.preventDefault();\n return true;\n });\n }\n /**\n * @name setUpTextChangeSubscriber\n */\n setUpTextChangeSubscriber() {\n this.inputForm.form.valueChanges.pipe(debounceTime$1(this.onTextChangeDebounce)).subscribe(value => {\n this.onTextChange.emit(value.item);\n });\n }\n /**\n * @name setUpOnBlurSubscriber\n */\n setUpOnBlurSubscriber() {\n const filterFn = () => {\n const isVisible = this.dropdown && this.dropdown.isVisible;\n return !isVisible && !!this.formValue;\n };\n this.inputForm.onBlur.pipe(debounceTime$1(100), filter$1(filterFn)).subscribe(() => {\n const reset = () => this.setInputValue('');\n if (this.addOnBlur) {\n return this.onAddingRequested(false, this.formValue, undefined, true).then(reset).catch(reset);\n }\n reset();\n });\n }\n /**\n * @name findDupe\n * @param tag\n * @param isFromAutocomplete\n */\n findDupe(tag, isFromAutocomplete) {\n const identifyBy = isFromAutocomplete ? this.dropdown.identifyBy : this.identifyBy;\n const id = tag[identifyBy];\n return this.items.find(item => this.getItemValue(item) === id);\n }\n /**\n * @name setAnimationMetadata\n */\n setAnimationMetadata() {\n this.animationMetadata = {\n value: 'in',\n params: {\n ...this.animationDuration\n }\n };\n }\n }\n TagInputComponent.ɵfac = function TagInputComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TagInputComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(DragProvider));\n };\n TagInputComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TagInputComponent,\n selectors: [[\"tag-input\"]],\n contentQueries: function TagInputComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, TagInputDropdown, 5);\n i0.ɵɵcontentQuery(dirIndex, TemplateRef, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdown = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n viewQuery: function TagInputComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(TagInputForm, 5);\n i0.ɵɵviewQuery(TagComponent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputForm = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tags = _t);\n }\n },\n hostVars: 1,\n hostBindings: function TagInputComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"tabindex\", ctx.tabindexAttr);\n }\n },\n inputs: {\n separatorKeys: \"separatorKeys\",\n separatorKeyCodes: \"separatorKeyCodes\",\n placeholder: \"placeholder\",\n secondaryPlaceholder: \"secondaryPlaceholder\",\n maxItems: \"maxItems\",\n validators: \"validators\",\n asyncValidators: \"asyncValidators\",\n onlyFromAutocomplete: \"onlyFromAutocomplete\",\n errorMessages: \"errorMessages\",\n theme: \"theme\",\n onTextChangeDebounce: \"onTextChangeDebounce\",\n inputId: \"inputId\",\n inputClass: \"inputClass\",\n clearOnBlur: \"clearOnBlur\",\n hideForm: \"hideForm\",\n addOnBlur: \"addOnBlur\",\n addOnPaste: \"addOnPaste\",\n pasteSplitPattern: \"pasteSplitPattern\",\n blinkIfDupe: \"blinkIfDupe\",\n removable: \"removable\",\n editable: \"editable\",\n allowDupes: \"allowDupes\",\n modelAsStrings: \"modelAsStrings\",\n trimTags: \"trimTags\",\n inputText: \"inputText\",\n ripple: \"ripple\",\n tabindex: \"tabindex\",\n disable: \"disable\",\n dragZone: \"dragZone\",\n onRemoving: \"onRemoving\",\n onAdding: \"onAdding\",\n animationDuration: \"animationDuration\"\n },\n outputs: {\n onAdd: \"onAdd\",\n onRemove: \"onRemove\",\n onSelect: \"onSelect\",\n onFocus: \"onFocus\",\n onBlur: \"onBlur\",\n onTextChange: \"onTextChange\",\n onPaste: \"onPaste\",\n onValidationError: \"onValidationError\",\n onTagEdited: \"onTagEdited\",\n inputTextChange: \"inputTextChange\"\n },\n features: [i0.ɵɵProvidersFeature([CUSTOM_ACCESSOR]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c3,\n decls: 8,\n vars: 27,\n consts: [[1, \"ng2-tag-input\", 3, \"click\", \"drop\", \"dragenter\", \"dragover\", \"dragend\", \"ngClass\"], [1, \"ng2-tags-container\"], [3, \"draggable\", \"canAddTag\", \"disabled\", \"hasRipple\", \"index\", \"removable\", \"editable\", \"displayBy\", \"identifyBy\", \"template\", \"model\", \"onSelect\", \"onRemove\", \"onKeyDown\", \"onTagEdited\", \"onBlur\", \"dragstart\", \"drop\", \"dragenter\", \"dragover\", \"dragleave\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [3, \"onSubmit\", \"onBlur\", \"click\", \"onKeydown\", \"onKeyup\", \"inputText\", \"disabled\", \"validators\", \"asyncValidators\", \"hidden\", \"placeholder\", \"inputClass\", \"inputId\", \"tabindex\"], [\"class\", \"progress-bar\", 4, \"ngIf\"], [\"class\", \"error-messages\", 3, \"ngClass\", 4, \"ngIf\"], [3, \"onSelect\", \"onRemove\", \"onKeyDown\", \"onTagEdited\", \"onBlur\", \"dragstart\", \"drop\", \"dragenter\", \"dragover\", \"dragleave\", \"draggable\", \"canAddTag\", \"disabled\", \"hasRipple\", \"index\", \"removable\", \"editable\", \"displayBy\", \"identifyBy\", \"template\", \"model\"], [1, \"progress-bar\"], [1, \"error-messages\", 3, \"ngClass\"], [\"class\", \"error-message\", 4, \"ngFor\", \"ngForOf\"], [1, \"error-message\"]],\n template: function TagInputComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"click\", function TagInputComponent_Template_div_click_0_listener() {\n return ctx.focus(true, false);\n })(\"drop\", function TagInputComponent_Template_div_drop_0_listener($event) {\n return ctx.dragZone ? ctx.onTagDropped($event, undefined) : undefined;\n })(\"dragenter\", function TagInputComponent_Template_div_dragenter_0_listener($event) {\n return ctx.dragZone ? ctx.onDragOver($event) : undefined;\n })(\"dragover\", function TagInputComponent_Template_div_dragover_0_listener($event) {\n return ctx.dragZone ? ctx.onDragOver($event) : undefined;\n })(\"dragend\", function TagInputComponent_Template_div_dragend_0_listener() {\n return ctx.dragZone ? ctx.dragProvider.onDragEnd() : undefined;\n });\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵtemplate(2, TagInputComponent_tag_2_Template, 1, 14, \"tag\", 2);\n i0.ɵɵelementStart(3, \"tag-input-form\", 3);\n i0.ɵɵlistener(\"onSubmit\", function TagInputComponent_Template_tag_input_form_onSubmit_3_listener() {\n return ctx.onFormSubmit();\n })(\"onBlur\", function TagInputComponent_Template_tag_input_form_onBlur_3_listener() {\n return ctx.blur();\n })(\"click\", function TagInputComponent_Template_tag_input_form_click_3_listener() {\n return ctx.dropdown ? ctx.dropdown.show() : undefined;\n })(\"onKeydown\", function TagInputComponent_Template_tag_input_form_onKeydown_3_listener($event) {\n return ctx.fireEvents(\"keydown\", $event);\n })(\"onKeyup\", function TagInputComponent_Template_tag_input_form_onKeyup_3_listener($event) {\n return ctx.fireEvents(\"keyup\", $event);\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(4, TagInputComponent_div_4_Template, 1, 0, \"div\", 4);\n i0.ɵɵpipe(5, \"async\");\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, TagInputComponent_div_6_Template, 2, 2, \"div\", 5);\n i0.ɵɵprojection(7);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"ng2-tag-input--dropping\", ctx.isDropping())(\"ng2-tag-input--disabled\", ctx.disable)(\"ng2-tag-input--loading\", ctx.isLoading)(\"ng2-tag-input--invalid\", ctx.hasErrors())(\"ng2-tag-input--focused\", ctx.isInputFocused());\n i0.ɵɵproperty(\"ngClass\", ctx.theme);\n i0.ɵɵattribute(\"tabindex\", -1);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx.items)(\"ngForTrackBy\", ctx.trackBy);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"inputText\", ctx.inputText)(\"disabled\", ctx.disable)(\"validators\", ctx.validators)(\"asyncValidators\", ctx.asyncValidators)(\"hidden\", ctx.maxItemsReached)(\"placeholder\", ctx.items.length ? ctx.placeholder : ctx.secondaryPlaceholder)(\"inputClass\", ctx.inputClass)(\"inputId\", ctx.inputId)(\"tabindex\", ctx.tabindex);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", i0.ɵɵpipeBind1(5, 25, ctx.isProgressBarVisible$));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.hasErrors());\n }\n },\n dependencies: [TagComponent, TagInputForm, i2.NgClass, i2.NgForOf, i2.NgIf, i2.AsyncPipe],\n styles: [\".dark[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 1px #323232}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%]{background-color:#fff;display:inline-block;color:#555;vertical-align:middle;max-width:100%;height:42px;line-height:44px}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{border:none;box-shadow:none;outline:none;background-color:transparent;padding:0 6px;margin:0;width:auto;max-width:inherit}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::-moz-placeholder{color:#777;opacity:1}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:-ms-input-placeholder{color:#777}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::-webkit-input-placeholder{color:#777}.ng2-tag-input.bootstrap3-info[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{border:none;box-shadow:none}.bootstrap3-info.ng2-tag-input.ng2-tag-input--focused[_ngcontent-%COMP%]{box-shadow:inset 0 1px 1px #0006;border:1px solid #ccc}.bootstrap3-info.ng2-tag-input.ng2-tag-input--invalid[_ngcontent-%COMP%]{box-shadow:inset 0 1px 1px #d9534f}.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;transition:all .25s;padding:.25rem 0;min-height:32px;cursor:text;border-bottom:2px solid #efefef}.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.ng2-tag-input.ng2-tag-input--focused[_ngcontent-%COMP%]{border-bottom:2px solid #2196F3}.ng2-tag-input.ng2-tag-input--invalid[_ngcontent-%COMP%]{border-bottom:2px solid #f44336}.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.ng2-tag-input[_ngcontent-%COMP%] form[_ngcontent-%COMP%]{margin:.1em 0}.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.minimal.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;cursor:text;border-bottom:1px solid transparent}.minimal.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.minimal.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.minimal.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.minimal.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.minimal.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.dark.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;cursor:text;border-bottom:2px solid #444}.dark.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.dark.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.dark.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.dark.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.dark.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.bootstrap.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;cursor:text;border-bottom:2px solid #efefef}.bootstrap.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.bootstrap.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.bootstrap.ng2-tag-input.ng2-tag-input--focused[_ngcontent-%COMP%]{border-bottom:2px solid #0275d8}.bootstrap.ng2-tag-input.ng2-tag-input--invalid[_ngcontent-%COMP%]{border-bottom:2px solid #d9534f}.bootstrap.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.bootstrap.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.bootstrap.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.bootstrap3-info.ng2-tag-input[_ngcontent-%COMP%]{display:block;flex-direction:row;flex-wrap:wrap;position:relative;padding:4px;cursor:text;box-shadow:inset 0 1px 1px #00000013;border-radius:4px}.bootstrap3-info.ng2-tag-input[_ngcontent-%COMP%]:focus{outline:0}.bootstrap3-info.ng2-tag-input.ng2-tag-input--dropping[_ngcontent-%COMP%]{opacity:.7}.bootstrap3-info.ng2-tag-input.ng2-tag-input--invalid[_ngcontent-%COMP%]{border-bottom:1px solid #d9534f}.bootstrap3-info.ng2-tag-input.ng2-tag-input--loading[_ngcontent-%COMP%]{border:none}.bootstrap3-info.ng2-tag-input.ng2-tag-input--disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.bootstrap3-info.ng2-tag-input[_ngcontent-%COMP%] form[_ngcontent-%COMP%]{margin:.1em 0}.bootstrap3-info.ng2-tag-input[_ngcontent-%COMP%] .ng2-tags-container[_ngcontent-%COMP%]{flex-wrap:wrap;display:flex}.error-message[_ngcontent-%COMP%]{font-size:.8em;color:#f44336;margin:.5em 0 0}.bootstrap[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%]{color:#d9534f}.progress-bar[_ngcontent-%COMP%], .progress-bar[_ngcontent-%COMP%]:before{height:2px;width:100%;margin:0}.progress-bar[_ngcontent-%COMP%]{background-color:#2196f3;display:flex;position:absolute;bottom:0}.progress-bar[_ngcontent-%COMP%]:before{background-color:#82c4f8;content:\\\"\\\";-webkit-animation:_ngcontent-%COMP%_running-progress 2s cubic-bezier(.4,0,.2,1) infinite;animation:_ngcontent-%COMP%_running-progress 2s cubic-bezier(.4,0,.2,1) infinite}@-webkit-keyframes _ngcontent-%COMP%_running-progress{0%{margin-left:0;margin-right:100%}50%{margin-left:25%;margin-right:0}to{margin-left:100%;margin-right:0}}@keyframes _ngcontent-%COMP%_running-progress{0%{margin-left:0;margin-right:100%}50%{margin-left:25%;margin-right:0}to{margin-left:100%;margin-right:0}}tag[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:wrap;font-family:Roboto,Helvetica Neue,sans-serif;font-weight:400;font-size:1em;letter-spacing:.05rem;color:#444;border-radius:16px;transition:all .3s;margin:.1rem .3rem .1rem 0;padding:.08rem .45rem;height:32px;line-height:34px;background:#efefef;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;outline:0;cursor:pointer;position:relative}tag[_ngcontent-%COMP%]:not(.readonly):not(.tag--editing):focus{background:#2196F3;color:#fff;box-shadow:0 2px 3px 1px #d4d1d1}tag[_ngcontent-%COMP%]:not(.readonly):not(.tag--editing):active{background:#0d8aee;color:#fff;box-shadow:0 2px 3px 1px #d4d1d1}tag[_ngcontent-%COMP%]:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover{background:#e2e2e2;color:#000;color:initial;box-shadow:0 2px 3px 1px #d4d1d1}tag.readonly[_ngcontent-%COMP%]{cursor:default}tag.readonly[_ngcontent-%COMP%]:focus, tag[_ngcontent-%COMP%]:focus{outline:0}tag.tag--editing[_ngcontent-%COMP%]{background-color:#fff;border:1px solid #ccc;cursor:text}.minimal[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:wrap;border-radius:0;background:#f9f9f9;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;outline:0;cursor:pointer;position:relative}.minimal[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:not(.readonly):not(.tag--editing):focus{background:#d0d0d0;color:#000;color:initial}.minimal[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:not(.readonly):not(.tag--editing):active{background:#d0d0d0;color:#000;color:initial}.minimal[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover{background:#ececec}.minimal[_ngcontent-%COMP%] tag.readonly[_ngcontent-%COMP%]{cursor:default}.minimal[_ngcontent-%COMP%] tag.readonly[_ngcontent-%COMP%]:focus, .minimal[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:focus{outline:0}.minimal[_ngcontent-%COMP%] tag.tag--editing[_ngcontent-%COMP%]{cursor:text}.dark[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:wrap;color:#f9f9f9;border-radius:3px;background:#444;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;outline:0;cursor:pointer;position:relative}.dark[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:not(.readonly):not(.tag--editing):focus{background:#efefef;color:#444}.dark[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover{background:#2b2b2b;color:#f9f9f9}.dark[_ngcontent-%COMP%] tag.readonly[_ngcontent-%COMP%]{cursor:default}.dark[_ngcontent-%COMP%] tag.readonly[_ngcontent-%COMP%]:focus, .dark[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:focus{outline:0}.dark[_ngcontent-%COMP%] tag.tag--editing[_ngcontent-%COMP%]{cursor:text}.bootstrap[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:wrap;color:#f9f9f9;border-radius:.25rem;background:#0275d8;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;outline:0;cursor:pointer;position:relative}.bootstrap[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:not(.readonly):not(.tag--editing):focus{background:#025aa5}.bootstrap[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:not(.readonly):not(.tag--editing):active{background:#025aa5}.bootstrap[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover{background:#0267bf;color:#f9f9f9}.bootstrap[_ngcontent-%COMP%] tag.readonly[_ngcontent-%COMP%]{cursor:default}.bootstrap[_ngcontent-%COMP%] tag.readonly[_ngcontent-%COMP%]:focus, .bootstrap[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:focus{outline:0}.bootstrap[_ngcontent-%COMP%] tag.tag--editing[_ngcontent-%COMP%]{cursor:text}.bootstrap3-info[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:wrap;font-family:inherit;font-weight:400;font-size:95%;color:#fff;border-radius:.25em;background:#5bc0de;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;outline:0;cursor:pointer;position:relative;padding:.25em .6em;text-align:center;white-space:nowrap}.bootstrap3-info[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:not(.readonly):not(.tag--editing):focus{background:#28a1c5}.bootstrap3-info[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:not(.readonly):not(.tag--editing):active{background:#28a1c5}.bootstrap3-info[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover{background:#46b8da;color:#fff}.bootstrap3-info[_ngcontent-%COMP%] tag.readonly[_ngcontent-%COMP%]{cursor:default}.bootstrap3-info[_ngcontent-%COMP%] tag.readonly[_ngcontent-%COMP%]:focus, .bootstrap3-info[_ngcontent-%COMP%] tag[_ngcontent-%COMP%]:focus{outline:0}.bootstrap3-info[_ngcontent-%COMP%] tag.tag--editing[_ngcontent-%COMP%]{cursor:text}[_nghost-%COMP%]{display:block}\"],\n data: {\n animation: animations\n }\n });\n return TagInputComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst optionsProvider = new OptionsProvider();\nlet TagInputModule = /*#__PURE__*/(() => {\n class TagInputModule {\n /**\n * @name withDefaults\n * @param options {Options}\n */\n static withDefaults(options) {\n optionsProvider.setOptions(options);\n }\n }\n TagInputModule.ɵfac = function TagInputModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TagInputModule)();\n };\n TagInputModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TagInputModule\n });\n TagInputModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [DragProvider, {\n provide: COMPOSITION_BUFFER_MODE,\n useValue: false\n }],\n imports: [[CommonModule, ReactiveFormsModule, FormsModule, Ng2DropdownModule]]\n });\n return TagInputModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DeleteIconComponent, HighlightPipe, TagComponent, TagInputComponent, TagInputDropdown, TagInputForm, TagInputModule, TagRipple };\n","import { DashboardComponent } from \"./dashboard/dashboard.component\";\r\nimport { RecipesComponent } from \"./advanced/recipes/recipes.component\";\r\nimport { SystemTablesComponent } from \"./advanced/system-tables/system-tables.component\";\r\nimport { LayoutComponent } from \"./layout.component\";\r\nimport { AuthGuard } from \"../user/authentication/authorization.guard\";\r\n\r\nexport const layoutRoutes = [\r\n {\r\n path: \"\",\r\n component: LayoutComponent,\r\n\tcanActivate: [AuthGuard],\r\n\r\n },\r\n {\r\n path: \"\",\r\n children: [\r\n {\r\n path: \"dashboard/:id\",\r\n component: DashboardComponent,\r\n outlet: \"dashboard-area\",\r\n // children: [\r\n // { path: 'widget/:id', component: WidgetComponent }\r\n // ]\r\n },\r\n {\r\n path: \"recipes\",\r\n outlet: \"dashboard-area\",\r\n component: RecipesComponent,\r\n },\r\n\r\n {\r\n path: \"tables\",\r\n outlet: \"dashboard-area\",\r\n component: SystemTablesComponent,\r\n },\r\n ],\r\n },\r\n];\r\n","import * as i0 from '@angular/core';\nimport { EventEmitter, Component, Input, Output, NgModule } from '@angular/core';\nlet HighchartsChartComponent = /*#__PURE__*/(() => {\n class HighchartsChartComponent {\n constructor(el, _zone // #75\n ) {\n this.el = el;\n this._zone = _zone;\n this.updateChange = new EventEmitter(true);\n this.chartInstance = new EventEmitter(); // #26\n }\n ngOnChanges(changes) {\n const update = changes.update && changes.update.currentValue;\n if (changes.options || update) {\n this.wrappedUpdateOrCreateChart();\n if (update) {\n this.updateChange.emit(false); // clear the flag after update\n }\n }\n }\n wrappedUpdateOrCreateChart() {\n if (this.runOutsideAngular) {\n this._zone.runOutsideAngular(() => {\n this.updateOrCreateChart();\n });\n } else {\n this.updateOrCreateChart();\n }\n }\n updateOrCreateChart() {\n if (this.chart && this.chart.update) {\n this.chart.update(this.options, true, this.oneToOne || false);\n } else {\n this.chart = this.Highcharts[this.constructorType || 'chart'](this.el.nativeElement, this.options, this.callbackFunction || null);\n // emit chart instance on init\n this.chartInstance.emit(this.chart);\n }\n }\n ngOnDestroy() {\n if (this.chart) {\n // #56\n this.chart.destroy();\n this.chart = null;\n }\n }\n }\n HighchartsChartComponent.ɵfac = function HighchartsChartComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HighchartsChartComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n HighchartsChartComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: HighchartsChartComponent,\n selectors: [[\"highcharts-chart\"]],\n inputs: {\n Highcharts: \"Highcharts\",\n constructorType: \"constructorType\",\n callbackFunction: \"callbackFunction\",\n oneToOne: \"oneToOne\",\n runOutsideAngular: \"runOutsideAngular\",\n options: \"options\",\n update: \"update\"\n },\n outputs: {\n updateChange: \"updateChange\",\n chartInstance: \"chartInstance\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 0,\n vars: 0,\n template: function HighchartsChartComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return HighchartsChartComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet HighchartsChartModule = /*#__PURE__*/(() => {\n class HighchartsChartModule {}\n HighchartsChartModule.ɵfac = function HighchartsChartModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HighchartsChartModule)();\n };\n HighchartsChartModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: HighchartsChartModule\n });\n HighchartsChartModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n return HighchartsChartModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of highcharts-angular\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { HighchartsChartComponent, HighchartsChartModule };\n","import { Action } from \"@ngrx/store\";\r\nexport const initialState = \"\";\r\nexport const SET_LOCATION = \"SET_LOCATION\";\r\nexport function locationReducer(state = initialState, action: any) {\r\n switch (action.type) {\r\n case SET_LOCATION:\r\n state = action.payload;\r\n return state;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { provideHttpClient, withInterceptorsFromDi } from \"@angular/common/http\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\r\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\r\nimport { TooltipModule } from \"ngx-bootstrap/tooltip\";\r\nimport { CollapseModule } from \"ngx-bootstrap/collapse\";\r\nimport { TabsModule } from \"ngx-bootstrap/tabs\";\r\nimport { PaginationModule } from \"ngx-bootstrap/pagination\";\r\nimport { AlertModule } from \"ngx-bootstrap/alert\";\r\nimport { BsDatepickerModule } from \"ngx-bootstrap/datepicker\";\r\nimport { CarouselModule } from \"ngx-bootstrap/carousel\";\r\nimport { ModalModule } from \"ngx-bootstrap/modal\";\r\nimport { PopoverModule } from \"ngx-bootstrap/popover\";\r\nimport { AngularMultiSelectModule } from \"angular2-multiselect-dropdown\";\r\nimport { TimepickerModule } from \"ngx-bootstrap/timepicker\";\r\nimport { TagInputModule } from \"ngx-chips\";\r\nimport { layoutRoutes } from \"./layout.routes\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { LayoutComponent } from \"./layout.component\";\r\nimport { SidebarComponent } from \"./sidebar/sidebar.component\";\r\nimport { NavbarComponent } from \"./navbar/navbar.component\";\r\nimport { FooterComponent } from \"./footer/footer.component\";\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\n\r\nimport { UserModule } from '../user/user.module';\r\n\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { RecipesComponent } from './advanced/recipes/recipes.component';\r\nimport { SystemTablesComponent } from './advanced/system-tables/system-tables.component';\r\nimport { DashboardListComponent } from './dashboard/dashboard-list/dashboard-list.component';\r\nimport { DashboardDemoComponent } from './dashboard/dashboard-demo/dashboard-demo.component';\r\nimport { GridsterModule } from 'angular-gridster2';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n// import { AppModule } from \"../app.module\";\r\nimport { MaterialModule } from '../../app/_other-modules/material.module';\r\n\r\n\r\nimport { AdminReportsComponent } from './advanced/admin-reports/admin-reports.component';\r\nimport { CustomerReportsComponent } from './advanced/customer-reports/customer-reports.component';\r\n\r\nimport { HighchartsChartModule } from 'highcharts-angular';\r\n\r\nimport { LocateAllGSEComponent } from './advanced/maps/locate-all-gse/locate-all-gse.component';\r\nimport { UserSettingsComponent } from './navbar/user-settings/user-settings.component';\r\nimport { LinearMeterComponent } from './shared/components/linear-meter/linear-meter.component';\r\nimport { IconsModule } from '@progress/kendo-angular-icons';\r\n\r\nimport { IndicatorsModule } from '@progress/kendo-angular-indicators';\r\n// import { SassHelperComponent } from '../_helpers/sass-helper/sass-helper.component';\r\n\r\nimport {\r\n\tGridModule,\r\n\tExcelModule,\r\n\tPDFModule,\r\n} from '@progress/kendo-angular-grid';\r\nimport { GaugesModule } from '@progress/kendo-angular-gauges';\r\nimport { PopupModule } from '@progress/kendo-angular-popup';\r\nimport { MultiSelectModule } from '@progress/kendo-angular-dropdowns';\r\nimport { SchedulerModule } from '@progress/kendo-angular-scheduler';\r\n\r\nimport { IssuesComponent } from './navbar/issues/issues.component';\r\n\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { locationReducer } from './shared/components/location-reducer/location-reducer.component';\r\n\r\nimport { ChartModule } from '@progress/kendo-angular-charts';\r\nimport { StockChartModule } from '@progress/kendo-angular-charts';\r\nimport { ProgressBarModule } from '@progress/kendo-angular-progressbar';\r\nimport { SparklineModule } from '@progress/kendo-angular-charts';\r\nimport 'hammerjs';\r\nimport { ResizableDirective } from '../_directives/resizable.directive';\r\nimport { CustomSpinnerDirective } from '../_directives/custom-spinner.directive';\r\n\r\nimport { TelerikReportingModule } from '@progress/telerik-angular-report-viewer';\r\n\r\nimport { CustomProgressbarDirective } from '../_directives/custom-progressbar.directive';\r\n\r\nimport { DateInputsModule } from '@progress/kendo-angular-dateinputs';\r\nimport { InputsModule } from '@progress/kendo-angular-inputs';\r\n\r\nimport { RdnDestinationComponent } from './advanced/system-tables/rdn-destination/rdn-destination.component';\r\n\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { SliderModule } from '@progress/kendo-angular-inputs';\r\nimport { LabelModule } from '@progress/kendo-angular-label';\r\nimport { NinjaStatisticsComponent } from './shared/widgets/ninja-statistics/ninja-statistics.component';\r\nimport { PotdModule } from 'projects/shared-lib/src/lib/_other-template-components/potd/potd.module';\r\nimport { SignalrCoreTestComponent } from './shared/widgets/signalr-core-test/signalr-core-test.component';\r\n\r\nimport { LiveDataModule } from 'projects/shared-lib/src/lib/components/live-data/live-data.module';\r\nimport { DialogModalParentComponentModule } from 'projects/shared-lib/src/lib/components/dialog-modal-parent/dialog-modal-parent.component.module';\r\nimport { CanvasPopupSettingsModule } from 'projects/shared-lib/src/lib/components/canvas-popup-settings/canvas-popup-settings.module';\r\nimport { CanvasGsePopupSettingsModule } from 'projects/shared-lib/src/lib/components/canvas-gse-popup-settings/canvas-gse-popup-settings.module';\r\nimport { JbtStandardObservationIdTemplateModule } from 'projects/shared-lib/src/lib/components/jbt-standard-observation-id-template/jbt-standard-observation-id-template.module';\r\nimport { JbtStandardObservationIdTemplateTagsModule } from 'projects/shared-lib/src/lib/components/jbt-standard-observation-id-template-tags/jbt-standard-observation-id-template-tags.module';\r\nimport { CanvasWidgetTemplatePopupSettingsModule } from 'projects/shared-lib/src/lib/components/canvas-widget-template-popup-settings/canvas-widget-template-popup-settings.module';\r\nimport { WidgetSettingsModule } from 'projects/shared-lib/src/lib/components/widget-settings/widget-settings.module';\r\nimport { DashboardTimescopePopupConfirmationSettingsModule } from 'projects/shared-lib/src/lib/components/dashboard-timescope-popup-confirmation-settings/dashboard-timescope-popup-confirmation-settings.module';\r\nimport { DashboardTimezonePopupConfirmationSettingsModule } from 'projects/shared-lib/src/lib/components/dashboard-timezone-popup-confirmation-settings/dashboard-timezone-popup-confirmation-settings.module';\r\nimport { TacticalDashboardIntervalPopupConfirmationSettingsModule } from 'projects/shared-lib/src/lib/components/tactical-dashboard-interval-popup-confirmation-settings/tactical-dashboard-interval-popup-confirmation-settings.module';\r\nimport { AddWidgetToDashboardModule } from 'projects/shared-lib/src/lib/components/add-widget-to-dashboard/add-widget-to-dashboard.module';\r\nimport { RecursiveDataNavigatorModule } from 'projects/shared-lib/src/lib/components/recursive-data-navigator/recursive-data-navigator.module';\r\nimport { DynamicFormModule } from 'projects/shared-lib/src/lib/components/dynamic-form/dynamic-form.module';\r\n\r\nimport { DashboardEditModule } from 'projects/shared-lib/src/lib/components/dashboard-edit/dashboard-edit.module';\r\nimport { DashboardCopyModule } from 'projects/shared-lib/src/lib/components/dashboard-copy/dashboard-copy.module';\r\nimport { NinjaStatisticsContentModule } from 'projects/shared-lib/src/lib/components/ninja-statistics-content/ninja-statistics-content.module';\r\nimport { MulticheckFilterModule } from 'projects/shared-lib/src/lib/components/multicheck-filter/multicheck-filter.module';\r\nimport { LoadingSpinnerModule } from 'projects/shared-lib/src/lib/components/loading-spinner/loading-spinner.module';\r\nimport { FileUploadListModule } from 'projects/shared-lib/src/lib/components/file-upload-list/file-upload-list.module';\r\nimport { SignalRTestModule } from 'projects/shared-lib/src/lib/components/signalr-test/signalr-test.module';\r\nimport { LocateAllGseWidgetModule } from 'projects/shared-lib/src/lib/components/locate-all-gse-widget/locate-all-gse-widget.module';\r\nimport { TrainingCoursesModule } from 'projects/shared-lib/src/lib/components/training-courses/training-courses.module';\r\nimport { TrainingLessonsModule } from 'projects/shared-lib/src/lib/components/training-lessons/training-lessons.module';\r\nimport { AddTemplateToCanvasModule } from 'projects/shared-lib/src/lib/components/add-template-to-canvas/add-template-to-canvas.module';\r\nimport { NavigationModule } from 'projects/shared-lib/src/lib/components/navigation/navigation.module';\r\nimport { DirectivesModule } from 'projects/shared-lib/src/lib/_directives/directives.module';\r\nimport { SharedDashboardModule } from 'projects/shared-lib/src/lib/components/shared-dashboard/shared-dashboard.module';\r\nimport { VideoPlayerModule } from 'projects/shared-lib/src/lib/components/video-player/video-player.module';\r\nimport { CustomerIssuesListModule } from 'projects/shared-lib/src/lib/components/customer-issues-list/customer-issues-list.module';\r\nimport { CustomerIssuesItemModule } from 'projects/shared-lib/src/lib/components/customer-issues-item/customer-issues-item.module';\r\nimport { LogbookModule } from \"projects/shared-lib/src/lib/components/logbook/logbook.module\";\r\nimport { DashboardCustomTimescopePopupConfirmationSettingsModule } from 'projects/shared-lib/src/lib/components/dashboard-custom-timescope-popup-confirmation-settings/dashboard-custom-timescope-popup-confirmation-settings.module';\r\nimport { TacticalWidgetSummaryTilePopupModule } from 'projects/shared-lib/src/lib/components/tactical-widget-summary-tile-popup/tactical-widget-summary-tile-popup.module';\r\nimport { BreadCrumbsEventsTemplatePopupModule } from 'projects/shared-lib/src/lib/components/breadcrumbs-events-template-popup/breadcrumbs-events-template-popup.module';\r\nimport { UserEngagementReportModule } from \"projects/shared-lib/src/lib/components/user-engagement-report/user-engagement-report.module\";\r\nimport { CanvasTabsListModule } from \"../../../../shared-lib/src/lib/components/canvas-tabs-list/canvas-tabs-list.module\";\r\n@NgModule({ declarations: [\r\n LayoutComponent,\r\n DashboardComponent,\r\n SidebarComponent,\r\n NavbarComponent,\r\n FooterComponent,\r\n RecipesComponent,\r\n SystemTablesComponent,\r\n DashboardListComponent,\r\n DashboardDemoComponent,\r\n AdminReportsComponent,\r\n LinearMeterComponent,\r\n LocateAllGSEComponent,\r\n UserSettingsComponent,\r\n IssuesComponent,\r\n ResizableDirective,\r\n CustomSpinnerDirective,\r\n CustomProgressbarDirective,\r\n CustomerReportsComponent,\r\n RdnDestinationComponent,\r\n NinjaStatisticsComponent,\r\n SignalrCoreTestComponent,\r\n ],\r\n exports: [\r\n LayoutComponent,\r\n DashboardComponent,\r\n DashboardDemoComponent,\r\n SidebarComponent,\r\n NavbarComponent,\r\n FooterComponent,\r\n // FixedPluginComponent,\r\n // RtlNavbarComponent,\r\n // RtlSidebarComponent,\r\n // RtlLayoutComponent,\r\n UserSettingsComponent,\r\n ], imports: [\r\n\t\tCommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n BsDropdownModule.forRoot(),\r\n ProgressbarModule.forRoot(),\r\n TooltipModule.forRoot(),\r\n TimepickerModule.forRoot(),\r\n PopoverModule.forRoot(),\r\n CollapseModule.forRoot(),\r\n TagInputModule,\r\n AngularMultiSelectModule,\r\n TabsModule.forRoot(),\r\n PaginationModule.forRoot(),\r\n AlertModule.forRoot(),\r\n BsDatepickerModule.forRoot(),\r\n CarouselModule.forRoot(),\r\n ModalModule.forRoot(),\r\n RouterModule.forChild(layoutRoutes),\r\n UserModule,\r\n GridsterModule,\r\n DragDropModule,\r\n MaterialModule,\r\n HighchartsChartModule,\r\n GridModule,\r\n GaugesModule,\r\n ExcelModule,\r\n PDFModule,\r\n PopupModule,\r\n MultiSelectModule,\r\n StoreModule.forRoot({\r\n loc: locationReducer,\r\n }),\r\n ChartModule,\r\n StockChartModule,\r\n ProgressBarModule,\r\n SparklineModule,\r\n TelerikReportingModule,\r\n SchedulerModule,\r\n DateInputsModule,\r\n InputsModule,\r\n ColorPickerModule,\r\n NgbModule,\r\n SliderModule,\r\n LabelModule,\r\n LiveDataModule,\r\n DialogModalParentComponentModule,\r\n CanvasPopupSettingsModule,\r\n CanvasGsePopupSettingsModule,\r\n\t\tJbtStandardObservationIdTemplateModule,\r\n\t\tJbtStandardObservationIdTemplateTagsModule,\r\n CanvasWidgetTemplatePopupSettingsModule,\r\n WidgetSettingsModule,\r\n DashboardTimescopePopupConfirmationSettingsModule,\r\n DashboardTimezonePopupConfirmationSettingsModule,\r\n TacticalDashboardIntervalPopupConfirmationSettingsModule,\r\n BreadCrumbsEventsTemplatePopupModule,\r\n AddWidgetToDashboardModule,\r\n RecursiveDataNavigatorModule,\r\n DynamicFormModule,\r\n DashboardEditModule,\r\n DashboardCopyModule,\r\n NinjaStatisticsContentModule,\r\n MulticheckFilterModule,\r\n LoadingSpinnerModule,\r\n FileUploadListModule,\r\n SignalRTestModule,\r\n PotdModule,\r\n LocateAllGseWidgetModule,\r\n TrainingCoursesModule,\r\n TrainingLessonsModule,\r\n AddTemplateToCanvasModule,\r\n NavigationModule,\r\n SharedDashboardModule,\r\n DirectivesModule,\r\n VideoPlayerModule,\r\n IconsModule,\r\n IndicatorsModule,\r\n CustomerIssuesListModule,\r\n CustomerIssuesItemModule,\r\n LogbookModule,\r\n DashboardCustomTimescopePopupConfirmationSettingsModule,\r\n TacticalWidgetSummaryTilePopupModule,\r\n BreadCrumbsEventsTemplatePopupModule,\r\n UserEngagementReportModule,\r\n CanvasTabsListModule], providers: [provideHttpClient(withInterceptorsFromDi())] })\r\nexport class SiteLayoutModule {}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { provideHttpClient, withInterceptorsFromDi } from \"@angular/common/http\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { InputsModule } from '@progress/kendo-angular-inputs';\r\nimport { DateInputsModule } from '@progress/kendo-angular-dateinputs';\r\nimport { LabelModule } from '@progress/kendo-angular-label';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\n\r\nimport { PotdComponent } from \"./potd.component\";\r\n\r\n@NgModule({ declarations: [PotdComponent],\r\n exports: [PotdComponent], imports: [CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DateInputsModule,\r\n InputsModule,\r\n LabelModule,\r\n ButtonsModule], providers: [provideHttpClient(withInterceptorsFromDi())] })\r\nexport class PotdModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CanvasGsePopupSettingsComponent } from './canvas-gse-popup-settings.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\n\r\n@NgModule({\r\n\tdeclarations: [CanvasGsePopupSettingsComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatButtonToggleModule,\r\n\t],\r\n\texports: [CanvasGsePopupSettingsComponent],\r\n})\r\nexport class CanvasGsePopupSettingsModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CanvasWidgetTemplatePopupSettingsComponent } from './canvas-widget-template-popup-settings.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { GaugesModule } from '@progress/kendo-angular-gauges';\r\n\r\n\r\n@NgModule({\r\n\tdeclarations: [CanvasWidgetTemplatePopupSettingsComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatButtonToggleModule,\r\n\t\tDragDropModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatInputModule,\r\n\t\tMatSelectModule,\r\n\t\tColorPickerModule,\r\n\t\tMatRadioModule,\r\n\t\tMatAutocompleteModule,\r\n\t\tGaugesModule\r\n\t],\r\n\texports: [CanvasWidgetTemplatePopupSettingsComponent],\r\n})\r\nexport class CanvasWidgetTemplatePopupSettingsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TacticalDashboardIntervalPopupConfirmationSettingsComponent } from './tactical-dashboard-interval-popup-confirmation-settings.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\n\r\n@NgModule({\r\n\tdeclarations: [TacticalDashboardIntervalPopupConfirmationSettingsComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tDragDropModule,\r\n\t\tMatButtonModule,\r\n\t\tMatTooltipModule,\r\n\t\tMatSelectModule,\r\n\t\tMatCheckboxModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tGridModule,\r\n\t],\r\n\texports: [TacticalDashboardIntervalPopupConfirmationSettingsComponent],\r\n})\r\nexport class TacticalDashboardIntervalPopupConfirmationSettingsModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RecursiveDataNavigatorComponent } from './recursive-data-navigator.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { DynamicFormModule } from '../dynamic-form/dynamic-form.module';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { PipeModule } from \"../../_helpers/pipes/pipe.module\";\r\nimport { LoadingSpinnerModule } from \"../loading-spinner/loading-spinner.module\";\r\n\r\n@NgModule({\r\n declarations: [RecursiveDataNavigatorComponent],\r\n exports: [RecursiveDataNavigatorComponent],\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n DynamicFormModule,\r\n DragDropModule,\r\n PipeModule,\r\n LoadingSpinnerModule\r\n]\r\n})\r\nexport class RecursiveDataNavigatorModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DashboardCopyComponent } from './dashboard-copy.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { DynamicFormModule } from '../dynamic-form/dynamic-form.module';\r\n@NgModule({\r\n\tdeclarations: [DashboardCopyComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tMatButtonModule,\r\n\t\tMatTooltipModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatInputModule,\r\n\t\tMatOptionModule,\r\n\t\tMatAutocompleteModule,\r\n\t\tMatSelectModule,\r\n\t\tMatFormFieldModule,\r\n\t\tDynamicFormModule\r\n\t],\r\n\texports: [DashboardCopyComponent],\r\n})\r\nexport class DashboardCopyModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NinjaStatisticsContentComponent } from './ninja-statistics-content.component';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ChartsModule } from '@progress/kendo-angular-charts';\r\nimport { LoadingSpinnerModule } from '../loading-spinner/loading-spinner.module';\r\nimport { SassHelperModule } from '../../_helpers/sass-helper/sass-helper.module';\r\nimport { KendoGridParentModule } from '../kendo-grid-parent/kendo-grid-parent.module';\r\nimport { NgxResize } from 'ngxtension/resize';\r\n\r\n@NgModule({\r\n\tdeclarations: [NinjaStatisticsContentComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tNgxResize,\r\n\t\tMatTabsModule,\r\n\t\tLoadingSpinnerModule,\r\n\t\tGridModule,\r\n\t\tMatSliderModule,\r\n\t\tReactiveFormsModule,\r\n\t\tFormsModule,\r\n\t\tChartsModule,\r\n\t\tSassHelperModule,\r\n\t\tKendoGridParentModule,\r\n\t],\r\n\texports: [NinjaStatisticsContentComponent],\r\n})\r\nexport class NinjaStatisticsContentModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MulticheckFilterComponent } from './multicheck-filter.component';\r\n\r\n@NgModule({\r\n\tdeclarations: [MulticheckFilterComponent],\r\n\timports: [CommonModule],\r\n\texports: [MulticheckFilterComponent],\r\n})\r\nexport class MulticheckFilterModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FileUploadListComponent } from './file-upload-list.component';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { PipeModule } from '../../_helpers/pipes/pipe.module';\r\nimport { DropzoneModule } from '../../_directives/dropzone/dropzone.module';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n\tdeclarations: [FileUploadListComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tMatMenuModule,\r\n\t\tDragDropModule,\r\n\t\tMatProgressBarModule,\r\n\t\tDragDropModule,\r\n\t\tPipeModule,\r\n\t\tDropzoneModule,\r\n\t\tMatButtonModule\r\n\t],\r\n\texports: [FileUploadListComponent],\r\n})\r\nexport class FileUploadListModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SignalRTestComponent } from './signalr-test.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { KendoGridParentModule } from '../kendo-grid-parent/kendo-grid-parent.module';\r\n\r\n@NgModule({\r\n\tdeclarations: [SignalRTestComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tKendoGridParentModule\r\n\t],\r\n\texports: [SignalRTestComponent],\r\n})\r\nexport class SignalRTestModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TrainingLessonsComponent } from './training-lessons.component';\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\n\r\n@NgModule({\r\n\tdeclarations: [TrainingLessonsComponent],\r\n\timports: [CommonModule, GridModule],\r\n\texports: [TrainingLessonsComponent],\r\n})\r\nexport class TrainingLessonsModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TrainingCoursesComponent } from './training-courses.component';\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\nimport { TrainingLessonsModule } from '../training-lessons/training-lessons.module';\r\n\r\n@NgModule({\r\n\tdeclarations: [TrainingCoursesComponent],\r\n\timports: [CommonModule, GridModule, TrainingLessonsModule],\r\n\texports: [TrainingCoursesComponent],\r\n})\r\nexport class TrainingCoursesModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AddTemplateToCanvasComponent } from './add-template-to-canvas.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { LoadingSpinnerModule } from '../loading-spinner/loading-spinner.module';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\n\r\n@NgModule({\r\n\tdeclarations: [AddTemplateToCanvasComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tMatButtonModule,\r\n\t\tMatTooltipModule,\r\n\t\tLoadingSpinnerModule,\r\n\t\tMatDialogModule,\r\n\t\tMatTabsModule,\r\n\t\tMatTableModule,\r\n\t\tGridModule,\r\n\t],\r\n\texports: [AddTemplateToCanvasComponent],\r\n})\r\nexport class AddTemplateToCanvasModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { InViewDirective } from './in-view.directive';\r\n\r\n@NgModule({\r\n\timports: [],\r\n\tdeclarations: [InViewDirective],\r\n\texports: [InViewDirective],\r\n})\r\nexport class DirectivesModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedDashboardComponent } from './shared-dashboard.component';\r\nimport { GridsterModule } from 'angular-gridster2';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { WidgetSettingsModule } from '../widget-settings/widget-settings.module';\r\nimport { LiveDataModule } from '../live-data/live-data.module';\r\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { DirectivesModule } from '../../_directives/directives.module';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport {\r\n\tDatePickerModule,\r\n\tDateInputsModule,\r\n} from '@progress/kendo-angular-dateinputs';\r\nimport {IStepOption, TourAnchorMatMenuDirective, TourMatMenuModule, TourService} from 'ngx-ui-tour-md-menu';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\n\r\n@NgModule({\r\n\tdeclarations: [SharedDashboardComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tGridsterModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatSelectModule,\r\n\t\tMatTooltipModule,\r\n\t\tMatSlideToggleModule,\r\n\t\tWidgetSettingsModule,\r\n\t\tLiveDataModule,\r\n\t\tTooltipModule,\r\n\t\tFormsModule,\r\n\t\tIonicModule,\r\n\t\tDirectivesModule,\r\n\t\tMatButtonModule,\r\n\t\tDatePickerModule,\r\n\t\tDateInputsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tFormsModule,\r\n\t\tTourMatMenuModule,\r\n\t\tMatIconModule,\r\n\t\tMatBadgeModule\r\n\t],\r\n\texports: [SharedDashboardComponent],\r\n})\r\nexport class SharedDashboardModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomerIssuesListComponent } from './customer-issues-list.component';\r\nimport { LoadingSpinnerModule } from '../loading-spinner/loading-spinner.module';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { BadgeModule } from '@progress/kendo-angular-indicators';\r\nimport { DynamicFormModule } from '../dynamic-form/dynamic-form.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport {\r\n\tExcelModule,\r\n\tGridModule,\r\n\tPDFModule,\r\n} from '@progress/kendo-angular-grid';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n\tdeclarations: [CustomerIssuesListComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tLoadingSpinnerModule,\r\n\t\tMatTooltipModule,\r\n\t\tGridModule,\r\n\t\tMatIconModule,\r\n\t\tMatBadgeModule,\r\n\t\tBadgeModule,\r\n\t\tDynamicFormModule,\r\n\t\tReactiveFormsModule,\r\n\t\tFormsModule,\r\n\t\tExcelModule,\r\n\t\tPDFModule,\r\n\t\tRouterModule,\r\n\t],\r\n\texports: [CustomerIssuesListComponent],\r\n})\r\nexport class CustomerIssuesListModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomerIssuesItemComponent } from './customer-issues-item.component';\r\nimport {\r\n\tExcelModule,\r\n\tGridModule,\r\n\tPDFModule,\r\n} from '@progress/kendo-angular-grid';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { BadgeModule } from '@progress/kendo-angular-indicators';\r\nimport { DynamicFormModule } from '../dynamic-form/dynamic-form.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { LoadingSpinnerModule } from '../loading-spinner/loading-spinner.module';\r\n\r\n@NgModule({\r\n\tdeclarations: [CustomerIssuesItemComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tGridModule,\r\n\t\tMatTooltipModule,\r\n\t\tMatIconModule,\r\n\t\tMatBadgeModule,\r\n\t\tBadgeModule,\r\n\t\tDynamicFormModule,\r\n\t\tReactiveFormsModule,\r\n\t\tFormsModule,\r\n\t\tExcelModule,\r\n\t\tPDFModule,\r\n\t\tLoadingSpinnerModule,\r\n\t],\r\n\texports: [CustomerIssuesItemComponent],\r\n})\r\nexport class CustomerIssuesItemModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LogbookComponent } from './logbook.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { KendoGridParentModule } from '../kendo-grid-parent/kendo-grid-parent.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n LogbookComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n\tMatButtonModule,\r\n\tMatTooltipModule,\r\n\tKendoGridParentModule\r\n ]\r\n})\r\nexport class LogbookModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DashboardCustomTimescopePopupConfirmationSettingsComponent } from './dashboard-custom-timescope-popup-confirmation-settings.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport {\r\n\tDateInputsModule,\r\n\tDatePickerModule,\r\n} from '@progress/kendo-angular-dateinputs';\r\nimport { LabelModule } from '@progress/kendo-angular-label';\r\n\r\n\r\n@NgModule({\r\n\tdeclarations: [DashboardCustomTimescopePopupConfirmationSettingsComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatTooltipModule,\r\n\t\tDatePickerModule,\r\n\t\tDateInputsModule,\r\n\t\tLabelModule,\r\n\t],\r\n})\r\nexport class DashboardCustomTimescopePopupConfirmationSettingsModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TacticalWidgetSummaryTilePopupComponent } from './tactical-widget-summary-tile-popup.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\n\r\n\r\n@NgModule({\r\n\tdeclarations: [TacticalWidgetSummaryTilePopupComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatButtonToggleModule,\r\n\t\tDragDropModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatInputModule,\r\n\t\tMatSelectModule,\r\n\t\tColorPickerModule,\r\n\t\tMatRadioModule,\r\n\t\tMatAutocompleteModule,\r\n\t],\r\n\texports: [TacticalWidgetSummaryTilePopupComponent],\r\n})\r\nexport class TacticalWidgetSummaryTilePopupModule { }\r\n","import { Component, Inject, OnInit, Optional } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DataService } from '../../services/data.service';\r\nimport _ from 'lodash';\r\nimport swal from 'sweetalert2';\r\nimport { UtilityService } from '../../services/utility.service';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { Global } from \"../../_constants/global.variables\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { SelectorService } from '../../services/selector.service';\r\nimport { catchError, debounceTime, filter, map, startWith, switchMap, tap } from \"rxjs/operators\";\r\n@Component({\r\n\tselector: 'lib-tactical-widget-summary-tile-popup',\r\n\ttemplateUrl: './breadcrumbs-events-template-popup.component.html',\r\n\tstyleUrls: ['./breadcrumbs-events-template-popup.component.scss'],\r\n})\r\nexport class BreadCrumbsEventsTemplatePopupComponent implements OnInit {\r\n\tpublic unsavedChanges = [];\r\n\tprivate swalWithBootstrapButtons: any;\r\n\tpublic lastSearchTerm: any;\r\n\tpublic showAddNewRecord: boolean = false;\r\n\tpublic JBTStandardObservationId: any;\r\n\tpublic conditionValue;\r\n\twidgetId: any;\r\n\tsummaryTileIndex: any;\r\n\tbreadcrumbsTemplateForm: FormGroup;\r\n\tnoTemplateName: any;\r\n\ttemplateName: any;\r\n\ttemplateId: any;\r\n\twidgetTemplateForm: FormGroup;\r\n\texistingTemplateForm: FormGroup;\r\n\tpublic filteredList$: Observable;\r\n\tallJBTStandardObservations: Array;\r\n\tidsArray: Array;\r\n\texistingTemplatesForUser: Array;\r\n\tJBTStandardIdsFromTemplate: Array;\r\n\tretrieveTemplates: boolean = false;\r\n\tselectedTemplateId: any;\r\n\ttemplateSelected: boolean;\r\n\tJBTStandardObservationIdAvailableForSelectedTemplate: boolean;\r\n\tjbtStandardObservationList: Array;\r\n\r\n\tconstructor(\r\n\t\t@Optional() @Inject(MAT_DIALOG_DATA) public inputObject: any,\r\n\t\tprivate dataService: DataService,\r\n\t\tprivate utilityService: UtilityService,\r\n\t\tprivate selectorService: SelectorService,\r\n\t\tpublic dialogRef: MatDialogRef\r\n\t) {\r\n\t\tthis.swalWithBootstrapButtons = swal.mixin({\r\n\t\t\tcustomClass: {\r\n\t\t\t\tconfirmButton: 'btn btn-danger',\r\n\t\t\t\tcancelButton: 'btn btn-success',\r\n\t\t\t},\r\n\t\t\tbuttonsStyling: false,\r\n\t\t});\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.retrieveTemplates = this.inputObject?.retrieveTemplate;\r\n\t\tthis.breadcrumbsTemplateForm = new FormGroup({\r\n\t\t\t// templateId: new FormControl(''),\r\n\t\t\t// assetTypeId: new FormControl(''),\r\n\t\t\t// assetModelId: new FormControl(''),\r\n\t\t\t// assetId: new FormControl(''),\r\n\t\t\ttemplateName: new FormControl(''),\r\n\t\t});\r\n\t\tif (this.retrieveTemplates) {\r\n\t\t\tlet statement =\r\n\t\t\t\t'API.BreadCrumbs_RetriveBreadCrumbsEventsTemplateRecord ' +\r\n\t\t\t\t'@CreatorUserId = ' +\r\n\t\t\t\tGlobal.User.currentUser.Id;\r\n\t\t\tthis.dataService\r\n\t\t\t\t.SQLActionAsPromise(statement)\r\n\t\t\t\t.then((data: any) => {\r\n\t\t\t\t\tthis.existingTemplatesForUser = data;\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.noTemplateName = true;\r\n\t\tthis.templateName = null;\r\n\t\tthis.templateId = null;\r\n\t\tthis.idsArray = new Array();\r\n\t\tthis.widgetTemplateForm = new FormGroup({\r\n\t\t\tJBTStandardObservationId: new FormControl('')\r\n\t\t});\r\n\t\tthis.existingTemplateForm = new FormGroup({\r\n\t\t\tselectedTemplateId: new FormControl('')\r\n\t\t});\r\n\t\tthis.initialize();\r\n\t\tthis.JBTStandardObservationId = \"JBTStandardObservationId\";\r\n\t\t(this.filteredList$ = this.widgetTemplateForm.controls[this.JBTStandardObservationId].valueChanges.pipe(\r\n\t\t\tdebounceTime(300),\r\n\t\t\tstartWith(\"\"),\r\n\t\t\ttap((value) => {\r\n\t\t\t\tthis.lastSearchTerm = value;\r\n\t\t\t\t//this.showAddForm = !this.itemSelected && typeof this.lastSearchTerm !== \"object\" && this.lastSearchTerm.length > 2 && this.currentSet.selector.allowAdd;\r\n\t\t\t}),\r\n\t\t\tswitchMap((name: any) => {\r\n\t\t\t\tif (typeof name === \"string\") {\r\n\t\t\t\t\treturn this.search(this.lastSearchTerm);\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tcatchError((_) => {\r\n\t\t\t\treturn of(null);\r\n\t\t\t})\r\n\t\t)),\r\n\t\t\t(err: Error) => Global.User.DebugMode && console.log(`generic-selector: ${err}`);\r\n\t}\r\n\r\n\tpublic displayFn(jbtStandardObservation: any): string {\r\n\t\treturn jbtStandardObservation && jbtStandardObservation.SelectorName;\r\n\t}\r\n\r\n\tpublic saveSelectedValue(event: Event) {\r\n\t\tconsole.log(\"saveSelectedEvent: %O\", event);\r\n\t}\r\n\tsearch(value: string): Observable {\r\n\t\treturn this.getList(value).pipe(\r\n\t\t\t// map the data.body as our return object\r\n\t\t\tmap((returnedData) => {\r\n\t\t\t\tGlobal.User.DebugMode && console.log(\"returnedData from getList = %O\", returnedData);\r\n\t\t\t\treturn returnedData;\r\n\t\t\t}),\r\n\t\t\t// catch errors\r\n\t\t\tcatchError((_) => {\r\n\t\t\t\treturn of(null);\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\tgetList(searchText?: any): Observable {\r\n\t\tvar sql = \"API.RDN_SelectorLookup_JBTStandardObservation\" + \" @SearchText=\" + (searchText != null ? \"'\" + searchText + \"'\" : \"null\");\r\n\r\n\r\n\t\tif (searchText.Id != undefined) {\r\n\t\t\tconst returnValue = new Observable((observer: any) => {\r\n\t\t\t\treturn observer.next(searchText);\r\n\t\t\t});\r\n\t\t\treturn returnValue;\r\n\t\t} else {\r\n\t\t\tGlobal.User.DebugMode && console.log(\"sql = \" + sql);\r\n\t\t\treturn this.selectorService.SQLActionAsObservable(sql);\r\n\t\t}\r\n\t}\r\n\r\n\tcheckForTemplateSelected(event) {\r\n\t\tthis.selectedTemplateId = event.target.value;\r\n\t\tthis.templateSelected = true;\r\n\t\tthis.JBTStandardObservationIdAvailableForSelectedTemplate = false;\r\n\t\tthis.jbtStandardObservationList = new Array();\r\n\t\tlet statement =\r\n\t\t\t'API.BreadCrumbs_RetriveBreadCrumbsEventsTemplateJBTStandardObservations ' +\r\n\t\t\t'@BreadCrumbsEventsTemplateId = ' +\r\n\t\t\tthis.selectedTemplateId;\r\n\t\tthis.dataService\r\n\t\t\t.SQLActionAsPromise(statement)\r\n\t\t\t.then((data: any) => {\r\n\t\t\t\tif (data.length > 0) {\r\n\t\t\t\t\tdata.forEach((record) => {\r\n\t\t\t\t\t\trecord.Name = this.dataService.cache.jbtStandardObservationsObject[record.JBTStandardObservationId].Name;\r\n\t\t\t\t\t\tthis.jbtStandardObservationList.push(record.JBTStandardObservationId);\r\n\t\t\t\t\t});\r\n\t\t\t\t\t\tthis.JBTStandardIdsFromTemplate = data;\r\n\t\t\t\t\t\tthis.JBTStandardObservationIdAvailableForSelectedTemplate = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tthis.allJBTStandardObservations = this.dataService.cache.jbtStandardObservations.toArray();\r\n\t\tthis.allJBTStandardObservations = _.orderBy(this.allJBTStandardObservations, 'Name', 'asc');\r\n\t}\r\n\tsubmitExistingTemplateForm(templateForm) {\r\n\t\tthis.dialogRef.close(this.jbtStandardObservationList);\r\n\r\n\t}\r\n\tsubmitBreadcrumbsTemplateForm(breadcrumbsTemplateForm) {\r\n\t\tconsole.log(breadcrumbsTemplateForm);\r\n\t\tlet obj = {\r\n\t\t\ttemplateName: breadcrumbsTemplateForm.value.templateName,\r\n\t\t\tuserId: Global.User.currentUser.Id,\r\n\t\t};\r\n\t\tvar templateName = obj.templateName.split(\"'\").join(\"''\");\r\n\t\tlet statement =\r\n\t\t\t'API.BreadCrumbs_AddBreadCrumbsEventsTemplateRecord ' +\r\n\t\t\t'@CreatorUserId = ' +\r\n\t\t\tobj.userId +\r\n\t\t\t\", @Name = '\" +\r\n\t\t\ttemplateName +\r\n\t\t\t\"', @V2Compatible = \" +\r\n\t\t\ttrue +\r\n\t\t\t', @IsSharableWithinOrganization = ' +\r\n\t\t\ttrue;\r\n\t\tthis.dataService\r\n\t\t\t.SQLActionAsPromise(statement)\r\n\t\t\t.then((data: any) => {\r\n\t\t\t\tthis.templateId = data[0].Id;\r\n\t\t\t\tthis.templateName = data[0].Name;\r\n\t\t\t\tthis.noTemplateName = false;\r\n\t\t\t});\r\n\t}\r\n\r\n\tcheckForTemplateName(event) {\r\n\t\tthis.templateName = event.target.value;\r\n\t}\r\n\r\n\taddConditionRecord() {\r\n\t\tthis.showAddNewRecord = true;\r\n\t}\r\n\r\n\tsubmitForm(widgetTemplateForm) {\r\n\r\n\t\tlet obj = {\r\n\t\t\ttemplateId: this.templateId,\r\n\t\t\tJBTStandardObservationId: widgetTemplateForm.value.JBTStandardObservationId ? parseInt(widgetTemplateForm.value.JBTStandardObservationId.Id) : null,\r\n\t\t}\r\n\t\tif (obj?.JBTStandardObservationId != null && obj?.templateId != null) {\r\n\r\n\t\t\tlet statement = \"API.BreadCrumbs_AddBreadCrumbsEventsTemplateJBTStandardObservationRecord\t \"\r\n\t\t\t\t+ \"@BreadCrumbsEventsTemplateId = \" +\r\n\t\t\t\tobj.templateId +\r\n\t\t\t\t\", @JBTStandardObservationId = \" +\r\n\t\t\t\tobj.JBTStandardObservationId;\r\n\r\n\t\t\tthis.dataService\r\n\t\t\t\t.SQLActionAsPromise(statement)\r\n\t\t\t\t.then((data: any) => {\r\n\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\ttype: 'success',\r\n\t\t\t\t\t\tmessage: \"'\" + obj.JBTStandardObservationId + \"' Condition has been added.\",\r\n\t\t\t\t\t});\r\n\t\t\t\t\t// add record to inputObject\r\n\t\t\t\t\tlet idInfo = {\r\n\t\t\t\t\t\tJBTStandardObservationId: data[0].JBTStandardObservationId,\r\n\t\t\t\t\t\tName: this.dataService.cache.jbtStandardObservationsObject[data[0].JBTStandardObservationId].Name,\r\n\t\t\t\t\t\tId: data[0].Id,\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.idsArray[this.idsArray.length] = idInfo;\r\n\t\t\t\t\tthis.showAddNewRecord = false;\r\n\t\t\t\t\tthis.JBTStandardObservationId = \"JBTStandardObservationId\";\r\n\t\t\t\t});\r\n\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\ttype: 'error',\r\n\t\t\t\tmessage: \"Please select a JBTStandardObservationId\",\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tonDelete(breadCrumbsEventsTemplateJBTStandardObservationRecord: any) {\r\n\r\n\t\tthis.swalWithBootstrapButtons\r\n\t\t\t.fire({\r\n\t\t\t\ttitle: 'Are you sure?',\r\n\t\t\t\thtml: 'This will remove ' + breadCrumbsEventsTemplateJBTStandardObservationRecord.JBTStandardObservationId + ' ' + ' - ' + breadCrumbsEventsTemplateJBTStandardObservationRecord.Name +\r\n\t\t\t\t\t' record',\r\n\t\t\t\tshowCancelButton: true,\r\n\t\t\t\tconfirmButtonText: 'Delete',\r\n\t\t\t\tcancelButtonText: 'Cancel',\r\n\t\t\t\treverseButtons: false,\r\n\t\t\t})\r\n\t\t\t.then((result) => {\r\n\t\t\t\tif (result.value) {\r\n\r\n\t\t\t\t\tlet statement =\r\n\t\t\t\t\t\t'API.BreadCrumbs_DeleteBreadCrumbsEventsTemplateJBTStandardObservationRecord @Id = ' +\r\n\t\t\t\t\t\tbreadCrumbsEventsTemplateJBTStandardObservationRecord.Id;\r\n\t\t\t\t\tthis.dataService\r\n\t\t\t\t\t\t.SQLActionAsPromise(statement)\r\n\t\t\t\t\t\t.then((data) => {\r\n\t\t\t\t\t\t\tconsole.log(data);\r\n\r\n\t\t\t\t\t\t\tlet message = breadCrumbsEventsTemplateJBTStandardObservationRecord.JBTStandardObservationId + ' ' + ' - ' + breadCrumbsEventsTemplateJBTStandardObservationRecord.Name + \" : has been deleted.\";\r\n\t\t\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\t\t\ttype: 'success',\r\n\t\t\t\t\t\t\t\tmessage: message,\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t// remove record from inputObject\r\n\t\t\t\t\t\t\tthis.idsArray = this.idsArray.filter(i => i.Id != breadCrumbsEventsTemplateJBTStandardObservationRecord.Id);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t} else if (result.dismiss === swal.DismissReason.cancel) {\r\n\t\t\t\t\tthis.utilityService.showToastMessageShared({\r\n\t\t\t\t\t\ttype: 'info',\r\n\t\t\t\t\t\tmessage: \"'\" + breadCrumbsEventsTemplateJBTStandardObservationRecord.JBTStandardObservationId + \"' has NOT been deleted.\",\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\r\n\r\n\tpublic closeDialogWindow(): void {\r\n\t\tthis.closeWindow(false);\r\n\t}\r\n\r\n\tpublic closeWindow(modalInfo): void {\r\n\t\tif (modalInfo !== false) {\r\n\t\t\tthis.dialogRef.close(modalInfo);\r\n\t\t} else {\r\n\t\t\tthis.dialogRef.close();\r\n\t\t}\r\n\t}\r\n}\r\n","
        \r\n\t
        \r\n\t\t

        \r\n\t\t\tBreadCrumbs Events Template\r\n\t\t

        \r\n\t\t\r\n\t\t\t\r\n\t\t
        \r\n\t
        \r\n\t
        \r\n\t\t
        \r\n\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
        \r\n\t\t\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t\r\n\t\t\r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\tTemplate: {{templateName}}\r\n\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
        JBT StandardObservation IdName
        \r\n\t\t\t\t\t\t\t\t{{ i.JBTStandardObservationId }}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{i.Name}}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ obs.SelectorName }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t\t\t
        \r\n\r\n\t\t\t\t\t\t\t\t
        \r\n\t\t\t\t\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t
        \r\n\t\t
        \r\n\t\t
        \r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\r\n\t\t\t
        \r\n\t\t\t\t
        \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{{ model.Name }}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
        \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
        JBT StandardObservation IdName
        \r\n\t\t\t\t\t\t\t\t{{ i.JBTStandardObservationId }}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{i.Name}}\r\n\t\t\t\t\t\t\t
        \r\n\t\t\t
        \r\n\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t>\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BreadCrumbsEventsTemplatePopupComponent } from './breadcrumbs-events-template-popup.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\n\r\n\r\n@NgModule({\r\n\tdeclarations: [BreadCrumbsEventsTemplatePopupComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatButtonToggleModule,\r\n\t\tDragDropModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatInputModule,\r\n\t\tMatSelectModule,\r\n\t\tColorPickerModule,\r\n\t\tMatRadioModule,\r\n\t\tMatAutocompleteModule,\r\n\t],\r\n\texports: [BreadCrumbsEventsTemplatePopupComponent],\r\n})\r\nexport class BreadCrumbsEventsTemplatePopupModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UserEngagementReportComponent } from './user-engagement-report.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { KendoGridParentModule } from '../kendo-grid-parent/kendo-grid-parent.module';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MaterialInputModule } from '../material-input/material-input.module';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { CenteredMessageModule } from '../centered-message/centered-message.module';\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tUserEngagementReportComponent\r\n\t],\r\n\timports: [\r\n\t\tCommonModule,\r\n\tFormsModule,\r\n\tReactiveFormsModule,\r\n\tKendoGridParentModule,\r\n\tMatFormFieldModule,\r\n\tMatSelectModule,\r\n\t\tMaterialInputModule,\r\n\t\tMatDatepickerModule,\r\n\t\tMatIconModule,\r\n\t\tMatInputModule,\r\n\t\tCenteredMessageModule\r\n ],\r\n exports: [\r\n\tUserEngagementReportComponent\r\n ]\r\n})\r\nexport class UserEngagementReportModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nimport { CanvasTabsListComponent } from './canvas-tabs-list.component';\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tIonicModule,\r\n\t\tGridModule,\r\n\t\tMatMenuModule,\r\n\t\tMatButtonModule,\r\n\t],\r\n\tdeclarations: [CanvasTabsListComponent],\r\n})\r\nexport class CanvasTabsListModule { }\r\n","import { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { BrowserModule } from \"@angular/platform-browser\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { RouterModule, RouterLinkActive } from \"@angular/router\";\r\nimport { HashLocationStrategy, LocationStrategy, PathLocationStrategy } from \"@angular/common\";\r\nimport { ToastrModule } from \"ngx-toastr\";\r\n\r\nimport { AppComponent } from \"./app.component\";\r\nimport { AppRoutingModule } from \"./app-routing.module\";\r\n\r\nimport { provideHttpClient, withInterceptorsFromDi } from \"@angular/common/http\";\r\nimport { UserModule } from \"./user/user.module\";\r\nimport { StorageModule } from \"@ngx-pwa/local-storage\";\r\nimport { SiteLayoutModule } from \"./_layout/layout.module\";\r\n\r\nimport { MaterialModule } from './_other-modules/material.module';\r\n// Datepicker module\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { GaugesModule } from '@progress/kendo-angular-gauges';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\nimport { HomeComponent } from './home/home.component';\r\n// Imports the Chart module\r\nimport { ChartModule } from '@progress/kendo-angular-charts';\r\n\r\n// Imports the Sparkline module\r\nimport { SparklineModule } from '@progress/kendo-angular-charts';\r\nimport 'hammerjs';\r\nimport { SchedulerModule } from '@progress/kendo-angular-scheduler';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { AutocompleteOffDirective } from './_directives/autocomplete-off.directive';\r\nimport { ServicesModule } from 'projects/shared-lib/src/lib/services/services.module';\r\nimport { ReleaseNotesModule } from 'projects/shared-lib/src/lib/components/release-notes/release-notes.module';\r\nimport { LoadingSpinnerModule } from 'projects/shared-lib/src/lib/components/loading-spinner/loading-spinner.module';\r\nimport { SnackbarBroadcastMessageModule } from 'projects/shared-lib/src/lib/components/snackbar-broadcast-message/snackbar-broadcast-message.module';\r\nimport { AssetSummaryViewModule } from \"projects/shared-lib/src/lib/components/asset-summary-view/asset-summary-view.module\";\r\n\r\nimport {IStepOption, TourAnchorMatMenuDirective, TourMatMenuModule, TourService} from 'ngx-ui-tour-md-menu';\r\nimport { CanvasDesignerModule } from \"projects/shared-lib/src/lib/components/canvas-designer/canvas-designer.module\";\r\n\r\n\r\n@NgModule({ declarations: [AppComponent, HomeComponent, AutocompleteOffDirective],\r\n bootstrap: [AppComponent], imports: [BrowserModule,\r\n BrowserAnimationsModule,\r\n RouterModule,\r\n ToastrModule.forRoot({\r\n timeOut: 5000,\r\n positionClass: 'toast-bottom-left',\r\n preventDuplicates: true,\r\n }),\r\n UserModule,\r\n SiteLayoutModule,\r\n StorageModule.forRoot({ IDBNoWrap: true }),\r\n ServicesModule,\r\n MaterialModule,\r\n BsDatepickerModule.forRoot(),\r\n AppRoutingModule,\r\n ButtonsModule,\r\n GridModule,\r\n GaugesModule,\r\n ChartModule,\r\n SparklineModule,\r\n SchedulerModule,\r\n NgbModule,\r\n ReleaseNotesModule,\r\n LoadingSpinnerModule,\r\n SnackbarBroadcastMessageModule,\r\n AssetSummaryViewModule,\r\n CanvasDesignerModule,\r\n TourMatMenuModule], providers: [{ provide: LocationStrategy, useClass: HashLocationStrategy }, TourService, provideHttpClient(withInterceptorsFromDi())] })\r\nexport class AppModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SnackbarBroadcastMessageComponent } from './snackbar-broadcast-message.component';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n\tdeclarations: [SnackbarBroadcastMessageComponent],\r\n\timports: [CommonModule, MatSnackBarModule, MatIconModule, MatButtonModule],\r\n\texports: [SnackbarBroadcastMessageComponent],\r\n})\r\nexport class SnackbarBroadcastMessageModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CanvasDesignerComponent } from './canvas-designer.component';\r\nimport { CanvasModule } from '../canvas/canvas.module';\r\nimport { CanvasGsePopupSettingsModule } from '../canvas-gse-popup-settings/canvas-gse-popup-settings.module';\r\nimport { MatMenu, MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CanvasDesignerComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n\tCanvasModule,\r\n\tMatMenuModule,\r\n\t MatButtonModule,\r\n\t CanvasGsePopupSettingsModule\r\n\r\n ], exports: [CanvasDesignerComponent]\r\n})\r\nexport class CanvasDesignerModule { }\r\n","import { enableProdMode } from \"@angular/core\";\r\nimport { platformBrowserDynamic } from \"@angular/platform-browser-dynamic\";\r\nimport \"zone.js\";\r\n\r\nimport { AppModule } from \"./app/app.module\";\r\n// import { environment } from \"./environments/environment\";\r\n\r\n// if (environment.production) {\r\nenableProdMode();\r\n// }\r\n\r\nplatformBrowserDynamic()\r\n .bootstrapModule(AppModule)\r\n .catch((err) => console.error(err));\r\n"],"mappings":"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,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,OACL,IAAK,MACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,SACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,UACL,IAAK,KACL,IAAK,MACL,IAAK,QACL,IAAK,MACL,IAAK,UACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,OACL,IAAK,MACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,SACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,UACL,IAAK,KACL,IAAK,MACL,IAAK,SACL,IAAK,QACL,IAAK,MACL,IAAK,UACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,MACL,KAAM,OACN,KAAM,SACN,KAAM,QACN,KAAM,QACN,KAAM,QACN,KAAM,QACN,KAAM,SACN,KAAM,QACN,KAAM,OACN,KAAM,QACN,KAAM,UACN,KAAM,OACN,KAAM,OACN,KAAM,OACN,KAAM,OACN,KAAM,OACN,KAAM,QACN,KAAM,OACN,KAAM,OACN,KAAM,OACN,KAAM,OACN,KAAM,OACN,KAAM,SACN,KAAM,OACN,KAAM,QACN,KAAM,QACN,KAAM,QACN,KAAM,OACN,KAAM,QACN,KAAM,KACN,KAAM,OACN,KAAM,MACN,KAAM,QACN,KAAM,SACN,KAAM,QACN,KAAM,OACN,KAAM,QACN,KAAM,MACN,KAAM,MACN,KAAM,KACN,KAAM,MACN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","names":["require_telerikReportViewer_kendo_min","__commonJSMin","exports","module","jQuery","e","t","n","i","a","r","o","s","l","d","u","c","p","h","f","m","g","v","_","b","k","w","y","x","C","T","S","I","D","E","A","F","G","z","P","H","N","R","O","M","B","L","V","U","W","j","q","K","$","Y","Q","X","J","Z","ee","te","ne","ie","ae","re","oe","se","KendoLicensing","le","de","ue","ce","pe","he","fe","me","ge","ve","_e","be","ke","we","ye","xe","Ce","Te","Se","Ie","De","Ee","Ae","Fe","ze","Pe","He","Ne","Re","Oe","qe","Be","Ve","Le","Ue","We","je","Ge","Ke","Ye","$e","Qe","Xe","Je","require_telerikReportViewer","__commonJSMin","exports","module","$","telerikReportViewer","stringFormatRegExp","specialKeys","isSpecialKey","userAgent","specialKeysArray","specialKeysLength","keyCode","i","toXhrErrorData","xhr","status","error","rectangle","left","top","width","height","other","newLeft","newTop","newWidth","newHeight","generateGuidString","c","r","v","trim","s","charlist","rTrim","lTrim","replaceAll","str","find","replace","stringFormat","template","data","isArray2","$0","$1","escapeHtml","tryParseInt","value","tryParseFloat","parseToLocalDate","date","isUtc","adjustTimezone","unadjustTimezone","areEqual","v1","v2","reportSourcesAreEqual","rs1","rs2","params1String","params2String","areEqualArrays","array1","array2","j","isSvgSupported","matches","version","isInternalServerError","isSystemArgumentException","exceptionShortName","exceptionInstance","getExceptionInstance","isExceptionInstanceOfType","isInvalidClientException","isApplicationException","isApplicationExceptionInstance","exception","isExceptionOfType","exceptionType","exceptionTypeShortName","exceptionTypeFullName","exceptionTypeNamesMatch","instanceTypeName","parseJSON","json","key","firstChar","newPropertyName","extend","copy","name","options","target","length","each","obj","callback","isArray","selector","loadScriptWithCallback","src","done","js","logError","loadScript","url","ajaxOptions","$ajax","filterUniqueLastOccurrence","array","onlyLastUnique","index","self","console","findElement","selectorChain","$area","toRgbColor","hexColor","hexParts","result","isRgbColor","color","getColorAlphaValue","colorComponents","alpha","ajaxSettings","resolve","reject","type","isEqual","a","b","typeA","typeB","keysA","keysB","utils","toPixels","getMargins","dom","$target","getPadding","getBorderWidth","scale","scaleX","scaleY","originX","originY","scale2","origin","domUtils","_a","sr$1","sr","userResources","stringResources","defaultOptions$7","Accessibility","controller","pageInitialized","areas","lastArea","keyMap","setAccessibilityUI","content","findContentArea","event","page","initPage","e","message","focusOnErrorMessage","setPageSelector","decorateMenuItems","initAreas","processKeyDown","$errMsg","area","setContentAreaKeyDown","pagers","pageNumber","pageCount","pager","pageInputs","input","findDocumentMapArea","findMenuArea","parametersArea","findParametersArea","setParameterEditorsKeyDown","currentArea","IsAreaContainerVisible","className","parametersAreaContent","$paramsArea","child","paramsButton","container","contentArea","actions","action","$action","menuAreas","menu","$menu","menuItems","menuItem","$menuItem","ariaLabel","expandableSr","expandable","selectedSr","selected","label","setKeyMap","keyMapValues","getKeyMap","GlobalSettings","Binder","$element","args","commands","viewerOptions","plugins","element","$element2","fn","elementSelector","customElementSelector","commandHandler","customCommandHandler","command","attachCommand","prefixedDataCommand","dataCommand","cmd","$this","reportViewerTarget","reportViewer","$defaultElement","$customElement","defaultTarget","getSelectedClassName","ViewModes","PrintModes","PageModes","ScaleModes","ParameterTypes","ParameterEditorTypes","ParametersAreaPositions","DocumentMapAreaPositions","Command","execCallback","enabledState","checkedState","state","newState","scaleTransitionMap","scaleValues","CommandSet","historyManager","getDocumentMapVisible","getParametersAreaVisible","getSideMenuVisible","getSearchDialogVisible","getSendEmailDialogVisible","format","zoom","scaleMode","step","getZoomScale","steps","pos","IEHelper","getPdfPlugin","classIds","plugin","classId","FirefoxHelper","hasPdfPlugin2","pdfPlugins","pdfPlugin","description","ChromiumHelper","defaultPlugin","navPlugins","found","OtherBrowserHelper","selectBrowserHelper","helper","hasPdfPlugin","PrintManager","iframe","printDesktop","sameOriginUrl","isSameOriginUrl","useMsBlobHandling","request","localPdf","location","anchor","printMobile","isMobile","printFunc","ParameterValidators","validators","validateParameter","parameter","validatorFunc","compareFunc","values","value1","checkAvailableValues","isNull","av","value2","s1","s2","num","f1","f2","n1","n2","d1","d2","b1","b2","isNumber","secondsToMilliseconds","seconds","ServiceClientSentinel","serviceClient","clientID","sessionTimeoutSeconds","interval","pingMilliseconds","start","restart","stop","__defProp$6","__defNormalProp$6","__publicField$5","EventEmitter","listener","wrappedListener","eventType","defaultOptions$6","ReportViewerController","clientId","reportInstanceId","reportDocumentId","registerClientPromise","registerInstancePromise","documentFormatsPromise","report","parameterValues","processedParameterValues","currentPageNumber","viewMode","pageMode","loader","printMode","bookmarkNodes","renderingExtensions","clientHasExpired","parameterValidators","eventEmitter","serviceClientSentinel","clearReportState","settings","client","initializeAndStartSentinel","setClientId","id","stopSentinel","clearClientId","sessionTimeout","getFormat","handleRequestError","xhrData","localizedMessage","suppressErrorBubbling","errorMessage","formatXhrError","onClientExpired","formattedError","initializeClientAsync","xhrErrorData","clientId2","registerInstanceAsync","createReportInstanceAsync","instanceId","resetPageNumbers","formatError","len","report2","parameterValues2","throwIfNotInitialized","registerDocumentAsync","deviceInfo","useCache","baseDocumentId","actionId","throwIfNoReportInstance","sendDocumentAsync","documentId","getDocumentInfoRecursive","options2","info","ReportLoader","reportHost","loaderOptions","onReportDocumentRegistered","onBeginLoadReport","getReportDocumentReady","onBeforeLoadReport","onReportLoadComplete","onReportLoadProgress","throwIfNoReportDocument","progressReportDocumentReady","getDocumentReadyPromise","getPageAsync","pageNo","pageInfo","onBeginLoadPage","loadPromise","loadAsync","createPreviewDeviceInfo","createDeviceInfo","searchInitiated","searchMetadataOnDemand","enableSearch","tryResolveClientErrorByExceptionType","parameterExceptionShortName","parsedXhr","exceptionMessage","getReportPage","loadReportAsync","ignoreCache","printReport","throwIfNoReport","printStartArgs","canUsePlugin","getCanUsePlugin","contentDisposition","queryString","exportAsync","printEndArgs","exportReport","exportStartArgs","exportEndArgs","sendReport","sendEmailStartArgs","waitReportDocumentReady","reportInstanceId2","promise","execServerAction","onServerActionStarted","eventFactory","loadParametersAsync","paramValues","getDocumentFormatsAsync","getServiceVersionAsync","getPageForBookmark","nodes","node","fixDataContractJsonSerializer","arr","dict","pair","changeReportSource","rs","setStateReportSource","changePageNumber","pageNr","actionHandlers","onInteractiveActionExecuting","interactiveActionArgs","executeReportAction","handler","onReportActionEnter","onReportActionLeave","onReportToolTipOpening","getSearchResultsAsync","handleSearchResultsError","exceptionDetails","appendInvalidReportParameterNames","invalidParameters","errorElement","invalidParametersHolder","invalidParameterText","settings2","processedParamValues","vm","psm","pm","paramsToBeExposed","processedParam","paramValue","addMultiComboParam","addSingleComboParam","loadParametersPromise","parameters","hasError","token","results","eventName","nameValuePair","paramArr","Events$1","HistoryManager","history","addToHistory","updatePageInfo","records","getCurrentRecord","pushRecord","rec","position","saveSettings","currentRecord","temp","removeTempRecordsFromHistory","exec","canMove","newPos","move","lastIndex","TouchBehavior","startDistance","ignoreTouch","init","onSwipe","onGestureStart","onGestureChange","onDoubleTap","fire","onGestureEnd","current","onPinch","func","Scroll","placeholder","that","newPage","actionType","pageViewMode","renderedPage","offsetTop","scrollTo","pages","wrapper","$pageContent","$page","pageStyleNumber","pageStyleBaseDom","pageStyle","contentStyle","skeletonEl","upToPageNumber","lastPage","isViewPortBiggerThanPageHeight","nextPage","pageItem","elem","pageCoords","parentCoords","parentTop","parentBottom","pageTop","pageBottom","additionalTopOffset","topVisible","bottomVisible","empty","$skeletonPage","lastLoadedPage","styleId","pageStyles","lastKey","previousPage","nextItem","previousItem","pageDom","currentPage","scrollPosition","newCurrentPage","currentPageIsInToView","middleIndex","isCurentPage","firstPage","currentPagePosition","currentPageHeight","pageContainerHeight","emptyView","UIFreezeCoordinator","$placeholder","thisInstance","$freezeItems","tableIDs","index2","uniqueIDs","item","scrollableContainerScrollTop","scrollableContainerScrollLeft","freezeItemsContainerID","$allFreezeItems","$freezeActions","yAreaBounds","xAreaBounds","$item","scrollDirection","itemID","itemPosition","scaledItemPosition","itemBounds","itemBgColor","hasInitialBgColor","itemState","$elementWrapper","$pageContainer","pageContainerPosition","pageContainerMargin","pageContainerTopOffset","pageContainerLeftOffset","pageContainerBorderTopWidth","pageContainerBorderLeftWidth","$rowHeaders","$colHeaders","hasFixRow","hasFixColumn","elementWrapperPosition","elementWrapperTopPosition","elementWrapperLeftPosition","verticalMoveOffset","horizontalMoveOffset","targetElements","offset","itemFreezeDirection","isFrozenBothDirection","itemInitialState","itemNewPostion","initialZIndex","zIndexValue","maxZIndex","newStyleRules","isItemFrozenBothDirection","shouldApplyBGColor","bgColorValue","elementPosition","pageLeftOffset","scrollableContainerLeftScrollPosition","scrollableContainerWidth","elementWidth","elementLeftOffset","pageTopOffset","pagePosition","scrollableContainerTopScrollPosition","scrollableContainerHeight","elementHeight","elementTopOffset","defaultOptions$5","PagesArea","otherOptions","pageContainer","$pageWrapper","pageWrapper","$errorMessage","pendingElement","pageScaleMode","pageScale","minPageScale","maxPageScale","documentReady","navigateToPageOnDocReady","navigateToElementOnDocReady","isNewReportSource","showErrorTimeoutId","showPageAreaImage","reportPageIsLoaded","pageAreaImageStyle","pageAreaImageID","scroll","uiFreezeCoordinator","replaceStringResources","$pagesArea","shouldAutosizePage","updatePageDimensions","enableTouch","clearPendingTimeoutIds","invalidateCurrentlyLoadedPage","findPage","navigateWhenPageAvailable","navigateToPage","navigateOnLoadComplete","clearPage","clear","initial","showError","disablePagesArea","enableInteractivity","targetElement","setPageContent","clearPageAreaImage","setPageScale","setScrollablePage","setPageAreaImage","allowSwipeLeft","allowSwipeRight","getCurrentPage","f","el","children","setPageDimensions","clearPageWrapper","disableInteractivity","allPages","dataPageNumber","navigateToPageCore","navigateToPageOnDocumentReady","navigateToElement","beginLoadPage","$nextFocusable","findNextFocusableElement","offsetLeft","disable","no","dataKey","scale$1","$pageSkeletonContent","pageContent","pageSkeletonContent","pageWidth","pageHeight","box","margins","borders","padding","scrollBarV","scaleW","scaleH","onInteractiveItemClick","onInteractiveItemEnter","onInteractiveItemLeave","onToolTipItemEnter","onToolTipItemLeave","$eventTarget","getAction","getNavigateToPageOnDocReady","$t","title","text","toolTipArgs","applyToolTipTemplate","viewportElement","ktt","getToolTip","positionToolTip","toolTipTemplate","$container","$titleSpan","$textSpan","replaceNewLineSymbols","tooltipText","toolTip","x","y","toolTipContent","updatePageStyle","pageActions","parameterEditorsMatch","editorsType","multivalueUtils","lineSeparator","val","integerInputBehavior","isValid","newValue","onKeyPress","onPaste","attach","input2","detach","floatInputBehavior","applyClass","apply","cssClass","enableItem","enable","selectItem","select","addAccessibilityAttributes","editor","caption","additionalInfo","setAccessibilityErrorAttributes","containerTabIndex","editorsIndex","setEditorTabIndex","tabIndexAttr","selectAll","clearSelection","widgetParent","hasFocusableElement","isComboWidget","errToken","errIdx","navigatableEnabledForList","enableAccessibility","ParameterEditors","enabled","$list","$selectAll","$selectNone","listView","updateTimeout","valueChangeCallback","initialized","setSelectedItems","onSelectionChanged","selection","applyAriaSelected","notifyParameterChanged","isSelected","availableValues","clearPendingChange","immediateUpdate","getSelectedItems","onItemClick","clickedItem","selectedItems","onChange","onKeydown","focused","items","setSelectedItemsCore","availableValue","param","$editorDom","popUpIsClosed","dataItem","reset","$accessibilityDom","$textArea","setValue","$dateTimePicker","dtv","dateTimePicker","dt","$input","inputBehavior","PerspectiveManager","smallMenu","perspectives","currentPerspective","getPerspective","initStateFromController","setPerspective","beforeApplyState","perspective","oldState","applyState","onDocumentMapVisibleChanged","dispatch","onParameterAreaVisibleChanged","onNavigateToPage","onWindowResize","onCssLoaded","activePerspective","dispose","windowWidthInEm","windowMinWidth","documentMapVisible","parametersAreaVisible","args1","__defProp$5","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp$5","__spreadValues","prop","JSON_CONTENT_TYPE","URLENCODED_CONTENT_TYPE","HTTP_GET","HTTP_POST","HTTP_DELETE","defaultOptions$4","getHeaders","authorizationToken","headers","ServiceClient","baseUrl","loginPromise","_ajax","validateClientID","urlFromTemplate","login","loginInfo","endPoint","clientData","instanceData","instanceID","baseDocumentID","actionID","documentData","documentID","mailArgs","resourceID","searchToken","matchCase","matchWholeWord","useRegex","accessToken","sessionTimeoutData","UIController","stateFlags","getState","flags","setState","refreshUI","getDocumentMapState","getParametersAreaState","getSearchDialogState","getSendEmailDialogState","updateUI","updateUICore","hasReport","hasPages","prevPage","hasPage","documentMapState","parametersAreaState","searchDialogState","sendEmailDialogState","renderInProgress","printInProgress","exportInProgress","defaultOptions$3","DocumentMapArea","$documentMap","currentReport","documentMapNecessary","onTreeViewSelectionChanged","documentMapNode","onTreeViewNodeExpand","setNodeAccessibilityAttributes","$items","$li","clearDocumentMap","displayDocumentMap","documentMap","hasDocumentMap","$treeView","setAccessibilityAttributes","showDocumentMap","treeView","listItems","list","setSplitbarAccessibilityAttributes","splitbar","isVisible","beginLoad","endLoad","show","splitter","sibling","clearMapItems","$documentMap2","$documentMapOverlay","defaultOptions$2","Events","ParametersArea","$parametersArea","editors","parameterEditors","recentParameterValues","initialParameterValues","$content","$previewButton","allParametersValid","applyParameters","parameterContainerTemplate","$previewButton2","toggleElementDisplay","shouldHide","createParameterContainer","createParameterUI","$editorPlaceholder","$title","$error","$errorMessage2","$useDefaultValueCheckbox","editorsTypes","editorFactory","selectParameterEditorFactory","parameterText","isHiddenParameter","parameter2","invalidParameterLI","onParameterChanged","enablePreviewButton","setAccessibilityErrorState","useDefaultValue","invalidateChildParameters","updateParameters","onLoadParametersSuccess","raiseParametersReady","hasInitialValues","factory","showPreviewButton","allParametersAutoRefresh","allAuto","allValid","clearEditors","fill","newParameters","$parameterContainer","$tempContainer","hasValue","applyProcessedParameters","allParametersValidForAutoRefresh","triggerAutoUpdate","p","tryRefreshReport","parameterId","childParameter","getParameterById","resetPendingParameterChange","errorMsg","hasVisibleParameters","params","hasVisible","loadingCount","parametersAreaNecessary","onLoadParametersComplete","successAction","showParametersArea","acceptParameters","controllerLoadParametersPromise","parameters2","getEventHandlerFromArguments","arg0","h","tabIndex","onReloadParameters","parametersAreaNecessary2","lastSelectedMenuItem","lastSelectedSubmenuItem","MainMenu","rootOptions","childrenL1","fillFormats","onSubmenuActivate","onSubmenuDeactivate","onMenuKeyDown","setTabIndexes","$menus","menu2","$menuArea","menuTabIndex","setMenuItemsTabIndexes","$anchor","clickOnMenuItem","formats","$parent","li","setInternalListAccessibilityKeyEvents","$prev","$next","isItemExportContainer","clickOnExportDropdown","dropDownItemID","mainMenu","focusOnFirstSubmenuItem","parentItem","getFocusedItem","focusNextItemAccessibilitySelection","focusNextItemNativeMenuSelection","focusPreviousItemAccessibilitySelection","focusPreviousItemNativeMenuSelection","getKendoFocusedNestedItem","focusedItem","listItem","lastKendoFocusedItem","allItems","$focused","$a","defaultOptions$1","replaceStringResources$1","$search","$searchCaption","$searchOptions","$searchStopButton","$searchMatchCaseButton","$searchMatchWholeWordButton","$searchUseRegexButton","$searchNavigateUpButton","$searchNavigateDownButton","replaceAttribute$1","replaceText$1","replaceTitleAndAriaLabel","$el","attribute","Search","kendoMenuSelector","kendoWindow","windowWidth","windowHeight","right","bottom","reportViewerCoords","evt","commandName","view","exists","mru","$listView","elements","$searchElement","currentItemId","newHighlighted","first","count","allowMoveUp","allowMoveDown","$selected","newIndex","offsetBottom","scrollBottom","$errorIcon","defaultOptions","$sendEmailDialog","labels","titles","replaceText","replaceAttribute","SendEmail","dialogVisible","kendoSendEmailDialog","inputFrom","inputTo","inputCC","inputSubject","docFormat","docFormatEl","bodyEditorEl","bodyEditor","docFormatList","optionsCommandSet","windowLocation","reportViewerWrapper","toolbarSendEmailItem","closeAndClear","toggle","ensureInitialized","setDefaultValues","getBody","setAttrs","initCommands","storeDialogPosition","clearValidation","adjustDialogSize","adjustDialogPosition","setValidation","tabkey","attrName","kendoWindowWidth","closeWindow","sendingEmail","sendEmailArgs","validateFields","isEmpty","isValidEmail","hideError","fromIsValid","toIsValid","ccIsValid","hasFormat","sendEmail","tag","validationMsg","moreThenOneEmail","inputValue","listEmailsAddress","_validateEmail","email","regexEmail","SideMenu","DEFAULT_TABINDEX","panelBar","sideMenuVisible","root","$root","onSubmenuOpen","onPanelKeyDown","enableCloseOnClick","setSideMenuVisibility","hidden","setListItemsTabIndex","isLeaf","parentTabIndex","listIndex","anchor2","onItemKeyDown","isSelectedFocusedItem","handleItemSelect","handleExpandCollapse","$span","__defProp$4","__defNormalProp$4","__publicField$4","MemStorage","TemplateCache","cache","serviceUrl","html","templates","styleSheets","baseUri","viewerTemplate","__defProp$3","__defNormalProp$3","__publicField$3","ReportViewerSettings","storage","defaultSettings","formattedKey","__defProp$2","__defNormalProp$2","__publicField$2","BaseComponent","__defProp$1","__defNormalProp$1","__publicField$1","LinkButton","__defProp","__defNormalProp","__publicField","PageNumberInput","reportInfo","PageCountLabel","Instances","getDefaultOptions","ReportViewer","svcApiUrl","reportServerUrlSVCApiUrl","persistanceKey","accessibility","perspectiveManager","viewer","serviceClientOptions","reportServerUrl","validateOptions","visible","eventHandler","eventBinder","bind","attachEvents","eventMap","$viewer","viewerEvent","controllerEvent","attachEventHandlers","initSplitter","initFromStorage","initAccessibility","parameterAreaPaneOptions","parameterAreaTemplate","parameterAreaPanes","documentMapPaneOptions","documentMapTemplate","documentMapPanes","orientation","documentMapSplitter","setSplitterPaneVisibility","parametersSplitter","parametersSplitterInstance","documentMapSplitterInstance","pane","paneID","sm","dm","pa","am","getTemplateContentTabIndex","pageAreaSelector","pendingRefresh","loadStyleSheets","$head","currentStyleLinks","promises","$link","browserSupportsAllFeatures","ensureKendo","version2","kendoUrl","errorData","main","ex","errorOutput","pluginName","require_Tween","__commonJSMin","exports","module","_Group","tweenId","tween","time","preserve","tweenIds","TWEEN","object","group","properties","duration","d","property","i","numChainedTweens","amount","times","yoyo","easingFunction","interpolationFunction","callback","elapsed","value","start","end","tmp","k","s","v","m","f","fn","b","n","pw","bn","p0","p1","t","fc","a","p2","p3","v0","v1","t2","t3","root","require_hammer","__commonJSMin","exports","module","window","document","exportName","undefined","VENDOR_PREFIXES","TEST_ELEMENT","TYPE_FUNCTION","round","abs","now","setTimeoutContext","fn","timeout","context","bindFn","invokeArrayArg","arg","each","obj","iterator","i","deprecate","method","name","message","deprecationMessage","e","stack","log","assign","target","output","index","source","nextKey","extend","dest","src","merge","keys","inherit","child","base","properties","baseP","childP","boolOrFn","val","args","ifUndefined","val1","val2","addEventListeners","types","handler","splitStr","type","removeEventListeners","hasParent","node","parent","inStr","str","find","inArray","findByKey","toArray","uniqueArray","key","sort","results","values","a","b","prefixed","property","prefix","prop","camelProp","_uniqueId","uniqueId","getWindowForElement","element","doc","MOBILE_REGEX","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","INPUT_TYPE_TOUCH","INPUT_TYPE_PEN","INPUT_TYPE_MOUSE","INPUT_TYPE_KINECT","COMPUTE_INTERVAL","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","PROPS_XY","PROPS_CLIENT_XY","Input","manager","callback","self","ev","createInputInstance","Type","inputClass","PointerEventInput","TouchInput","TouchMouseInput","MouseInput","inputHandler","eventType","input","pointersLen","changedPointersLen","isFirst","isFinal","computeInputData","session","pointers","pointersLength","simpleCloneInputData","firstInput","firstMultiple","offsetCenter","center","getCenter","getAngle","getDistance","computeDeltaXY","getDirection","overallVelocity","getVelocity","getScale","getRotation","computeIntervalInputData","offset","prevDelta","prevInput","last","deltaTime","velocity","velocityX","velocityY","direction","deltaX","deltaY","v","x","y","p1","p2","props","start","end","MOUSE_INPUT_MAP","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","POINTER_INPUT_MAP","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","store","removePointer","eventTypeNormalized","pointerType","isTouch","storeIndex","SINGLE_TOUCH_INPUT_MAP","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","SingleTouchInput","touches","normalizeSingleTouches","all","changed","TOUCH_INPUT_MAP","TOUCH_TARGET_EVENTS","getTouches","allTouches","targetIds","targetTouches","changedTouches","changedTargetTouches","touch","DEDUP_TIMEOUT","DEDUP_DISTANCE","inputEvent","inputData","isMouse","recordTouches","isSyntheticEvent","eventData","setLastTouch","lastTouch","lts","removeLastTouch","t","dx","dy","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","getTouchActionProps","TouchAction","value","actions","recognizer","cleanTouchActions","srcEvent","hasNone","hasPanY","hasPanX","isTapPointer","isTapMovement","isTapTouchTime","touchMap","cssSupports","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","Recognizer","options","otherRecognizer","simultaneous","getRecognizerByNameIfManager","requireFail","state","emit","event","stateStr","inputDataClone","directionStr","AttrRecognizer","optionPointers","isRecognized","isValid","PanRecognizer","hasMoved","distance","PinchRecognizer","inOut","PressRecognizer","validPointers","validMovement","validTime","RotateRecognizer","SwipeRecognizer","TapRecognizer","validTouchTime","validInterval","validMultiTap","tapCount","Hammer","Manager","STOP","FORCED_STOP","toggleCssProps","item","force","recognizers","curRecognizer","existing","events","handlers","data","triggerDomEvent","add","gestureEvent","freeGlobal","global","__symbol__","name","initZone","performance","mark","performanceMeasure","label","ZoneImpl","patches","zone","_currentZoneFrame","_currentTask","fn","ignoreDuplicate","checkDuplicate","perfName","_api","parent","zoneSpec","_ZoneDelegate","key","current","callback","source","_callback","applyThis","applyArgs","error","task","NO_ZONE","zoneTask","type","isPeriodic","isRefreshable","notScheduled","eventTask","macroTask","reEntryGuard","running","scheduled","previousTask","state","unknown","scheduling","zoneDelegates","newZone","err","data","customSchedule","ZoneTask","microTask","customCancel","canceling","count","i","DELEGATE_ZS","delegate","_","target","hasTaskState","parentDelegate","zoneSpecHasTask","parentHasTask","targetZone","returnTask","scheduleMicroTask","value","isEmpty","counts","prev","next","options","scheduleFn","cancelFn","self","args","_numberOfNestedTaskFrames","drainMicroTaskQueue","toState","fromState1","fromState2","symbolSetTimeout","symbolPromise","symbolThen","_microTaskQueue","_isDrainingMicrotaskQueue","nativeMicroTaskQueuePromise","nativeScheduleMicroTask","func","nativeThen","queue","noop","loadZone","ObjectGetOwnPropertyDescriptor","ObjectDefineProperty","ObjectGetPrototypeOf","ObjectCreate","ArraySlice","ADD_EVENT_LISTENER_STR","REMOVE_EVENT_LISTENER_STR","ZONE_SYMBOL_ADD_EVENT_LISTENER","ZONE_SYMBOL_REMOVE_EVENT_LISTENER","TRUE_STR","FALSE_STR","ZONE_SYMBOL_PREFIX","wrapWithCurrentZone","scheduleMacroTaskWithCurrentZone","zoneSymbol","isWindowExists","internalWindow","_global","REMOVE_ATTRIBUTE","bindArguments","patchPrototype","prototype","fnNames","prototypeDesc","isPropertyWritable","patched","attachOriginToPatched","propertyDesc","isWebWorker","isNode","isBrowser","isMix","zoneSymbolEventNames$1","enableBeforeunloadSymbol","wrapFn","event","eventNameSymbol","listener","result","errorEvent","patchProperty","obj","prop","desc","onPropPatchedSymbol","originalDescGet","originalDescSet","eventName","newValue","patchOnProperties","properties","onProperties","j","originalInstanceKey","patchClass","className","OriginalClass","a","instance","patchMethod","patchFn","proto","delegateName","patchDelegate","patchMacroTask","funcName","metaCreator","setNative","scheduleTask","meta","original","isDetectedIEOrEdge","ieOrEdge","isIE","ua","isIEOrEdge","isFunction","isNumber","passiveSupported","OPTIMIZED_ZONE_EVENT_TASK_DATA","zoneSymbolEventNames","globalSources","EVENT_NAME_SYMBOL_REGX","IMMEDIATE_PROPAGATION_SYMBOL","prepareEventNames","eventNameToString","falseEventName","trueEventName","symbol","symbolCapture","patchEventTarget","api","apis","patchOptions","ADD_EVENT_LISTENER","REMOVE_EVENT_LISTENER","LISTENERS_EVENT_LISTENER","REMOVE_ALL_LISTENERS_EVENT_LISTENER","zoneSymbolAddEventListener","ADD_EVENT_LISTENER_SOURCE","PREPEND_EVENT_LISTENER","PREPEND_EVENT_LISTENER_SOURCE","invokeTask","globalCallback","context","isCapture","tasks","errors","copyTasks","globalZoneAwareCallback","globalZoneAwareCaptureCallback","patchEventTargetMethods","useGlobalCallback","validateHandler","returnTarget","taskData","nativeAddEventListener","nativeRemoveEventListener","nativeListeners","nativeRemoveAllListeners","nativePrependEventListener","buildEventListenerOptions","passive","__spreadProps","__spreadValues","customScheduleGlobal","customCancelGlobal","symbolEventNames","symbolEventName","existingTasks","customScheduleNonGlobal","customSchedulePrepend","customCancelNonGlobal","compareTaskCallbackVsDelegate","typeOfDelegate","compare","unpatchedEvents","passiveEvents","copyEventListenerOptions","newOptions","makeAddListener","nativeListener","addSource","customScheduleFn","customCancelFn","prepend","isHandleEvent","signal","capture","once","isExisting","constructorName","targetSource","onAbort","existingTask","onPropertySymbol","listeners","findEventTasks","symbolCaptureEventName","captureTasks","removeTasks","keys","match","evtName","results","foundTasks","captureFalseTasks","captureTrueTasks","patchEventPrototype","Event","patchQueueMicrotask","taskSymbol","patchTimer","window","setName","cancelName","nameSuffix","clearNative","tasksByHandleId","handleOrId","clearTask","handle","handleId","originalRefresh","id","patchCustomElements","callbacks","eventTargetPatch","eventNames","EVENT_TARGET","patchEvent","filterProperties","ignoreProperties","tip","ip","targetIgnoreProperties","op","patchFilteredProperties","filteredProperties","getOnEventNames","propertyDescriptorPatch","patchTargets","ignoreErrorProperties","patchBrowser","Zone","legacyPatch","set","clear","blockingMethods","s","XMLHttpRequestEventTarget","patchXHR","XHR_TASK","XHR_SYNC","XHR_LISTENER","XHR_SCHEDULED","XHR_URL","XHR_ERROR_BEFORE_SCHEDULED","XMLHttpRequest","XMLHttpRequestPrototype","findPendingTask","oriAddListener","oriRemoveListener","XMLHttpRequestEventTargetPrototype","READY_STATE_CHANGE","SCHEDULED","newListener","loadTasks","oriInvoke","sendNative","placeholderCallback","abortNative","openNative","XMLHTTPREQUEST_SOURCE","fetchTaskAborting","fetchTaskScheduling","findPromiseRejectionHandler","e","PromiseRejectionEvent","evt","patchPromise","readableObjectToString","_uncaughtPromiseErrors","isDisableWrappingUncaughtPromiseRejection","creationTrace","rejection","uncaughtPromiseError","handleUnhandledRejection","UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL","handler","isThenable","forwardResolution","forwardRejection","ZoneAwarePromise","symbolState","symbolValue","symbolFinally","symbolParentPromiseValue","symbolParentPromiseState","UNRESOLVED","RESOLVED","REJECTED","REJECTED_NO_CATCH","makeResolver","promise","v","resolvePromise","wasCalled","wrappedFunction","TYPE_ERROR","CURRENT_TASK_TRACE_SYMBOL","onceWrapper","then","clearRejectedNoCatch","trace","scheduleResolveOrReject","REJECTION_HANDLED_HANDLER","chainPromise","onFulfilled","onRejected","promiseState","parentPromiseValue","isFinallyPromise","ZONE_AWARE_PROMISE_TO_STRING","AggregateError","res","rej","values","promises","finished","resolve","reject","onResolve","onReject","unresolvedCount","valueIndex","resolvedValues","curValueIndex","thenErr","executor","C","onFinally","NativePromise","symbolThenPatched","patchThen","Ctor","originalThen","zoneify","resultPromise","ctor","patchToString","originalFunctionToString","ORIGINAL_DELEGATE_SYMBOL","PROMISE_SYMBOL","ERROR_SYMBOL","newFunctionToString","originalDelegate","nativePromise","nativeError","originalObjectToString","PROMISE_OBJECT_TO_STRING","patchCallbacks","targetName","method","nativeDelegate","opts","descriptor","patchUtil","SYMBOL_BLACK_LISTED_EVENTS","SYMBOL_UNPATCHED_EVENTS","patchCommon","Zone$1","invalidTimingValue","exp","RuntimeError","negativeStepValue","negativeDelayValue","invalidStyleParams","varName","invalidParamValue","invalidNodeType","nodeType","invalidCssUnitValue","userProvidedProperty","value","invalidTrigger","invalidDefinition","invalidState","metadataName","missingSubs","invalidStyleValue","invalidParallelAnimation","prop","firstStart","firstEnd","secondStart","secondEnd","RuntimeError","invalidKeyframes","invalidOffset","keyframeOffsetsOutOfOrder","keyframesMissingOffsets","invalidStagger","invalidQuery","selector","invalidExpression","expr","invalidTransitionAlias","alias","triggerBuildFailed","name","errors","RuntimeError","animationFailed","registerFailed","missingOrDestroyedAnimation","createAnimationFailed","missingPlayer","id","missingTrigger","phase","missingEvent","unsupportedTriggerEvent","unregisteredTrigger","triggerTransitionsFailed","transitionFailed","name","errors","RuntimeError","optimizeGroupPlayer","players","NoopAnimationPlayer","AnimationGroupPlayer","normalizeKeyframes$1","normalizer","keyframes","preStyles","postStyles","errors","normalizedKeyframes","previousOffset","previousKeyframe","kf","offset","isSameOffset","normalizedKeyframe","val","prop","normalizedProp","normalizedValue","ɵPRE_STYLE","AUTO_STYLE","animationFailed","listenOnPlayer","player","eventName","event","callback","copyAnimationEvent","e","phaseName","totalTime","disabled","makeAnimationEvent","data","element","triggerName","fromState","toState","getOrSetDefaultValue","map","key","defaultValue","value","parseTimelineCommand","command","separatorPos","id","action","documentElement","getParentElement","parent","containsVendorPrefix","_CACHED_BODY","_IS_WEBKIT","validateStyleProperty","getBodyNode","result","getBodyNode","containsElement","elm1","elm2","getParentElement","invokeQuery","element","selector","multi","elem","NoopAnimationDriver","prop","validateStyleProperty","elm1","elm2","containsElement","element","getParentElement","selector","multi","invokeQuery","defaultValue","keyframes","duration","delay","easing","previousPlayers","scrubberAccessRequested","NoopAnimationPlayer","__ngFactoryType__","ɵɵdefineInjectable","AnimationDriver","AnimationStyleNormalizer","ONE_SECOND","SUBSTITUTION_EXPR_START","SUBSTITUTION_EXPR_END","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","value","matches","_convertTimeValueToMS","unit","resolveTiming","timings","errors","allowNegativeValues","parseTimeExpression","exp","regex","duration","delay","easing","invalidTimingValue","delayMatch","easingVal","containsErrors","startIndex","negativeStepValue","negativeDelayValue","normalizeKeyframes","keyframes","kf","setStyles","element","styles","formerStyles","val","prop","camelProp","dashCaseToCamelCase","eraseStyles","_","normalizeAnimationEntry","steps","sequence","validateStyleParams","value","options","errors","params","matches","extractStyleParams","varName","invalidStyleParams","PARAM_REGEX","SUBSTITUTION_EXPR_START","SUBSTITUTION_EXPR_END","match","interpolateParams","original","str","localVal","invalidParamValue","DASH_CASE_REGEXP","input","m","allowPreviousPlayerStylesMerge","duration","delay","balancePreviousStylesIntoKeyframes","element","keyframes","previousStyles","startingKeyframe","missingStyleProps","val","prop","i","kf","computeStyle","visitDslNode","visitor","node","context","AnimationMetadataType","invalidNodeType","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","AnimationStyleNormalizer","propertyName","errors","dashCaseToCamelCase","userProvidedProperty","normalizedProperty","value","unit","strVal","valAndSuffixMatch","invalidCssUnitValue","ANY_STATE","parseTransitionExpr","transitionValue","errors","expressions","str","parseInnerTransitionStr","eventStr","result","parseAnimationAlias","match","invalidExpression","fromState","separator","toState","makeLambdaFromStates","isFullAnyStateExpr","alias","invalidTransitionAlias","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN","SELF_TOKEN_REGEX","buildAnimationAst","driver","metadata","warnings","AnimationAstBuilderVisitor","ROOT_SELECTOR","_driver","context","AnimationAstBuilderContext","visitDslNode","normalizeAnimationEntry","queryCount","depCount","states","transitions","invalidTrigger","def","AnimationMetadataType","stateDef","name","n","transition","invalidDefinition","styleAst","astParams","missingSubs","params","style","value","extractStyleParams","sub","invalidState","animation","matchers","normalizeAnimationOptions","s","currentTime","furthestTime","steps","step","innerAst","timingAst","constructTimingAst","styleMetadata","isEmpty","newStyleData","_styleAst","ast","styles","metadataStyles","styleTuple","AUTO_STYLE","invalidStyleValue","containsDynamicStyles","collectedEasing","styleData","SUBSTITUTION_EXPR_START","timings","endTime","startTime","tuple","prop","collectedStyles","collectedEntry","updateCollectedStyle","invalidParallelAnimation","validateStyleParams","invalidKeyframes","MAX_KEYFRAME_OFFSET","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","previousOffset","keyframes","offsetVal","consumeOffset","offset","invalidOffset","keyframeOffsetsOutOfOrder","length","generatedOffset","keyframesMissingOffsets","limit","currentAnimateTimings","animateDuration","kf","i","durationUpToThisFrame","parentSelector","options","selector","includeSelf","normalizeSelector","getOrSetDefaultValue","invalidStagger","resolveTiming","hasAmpersand","token","NG_TRIGGER_SELECTOR","NG_ANIMATING_SELECTOR","normalizeParams","obj","__spreadValues","duration","makeTimingAst","strValue","v","delay","easing","createTimelineInstruction","element","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","instructions","existingInstructions","ONE_FRAME_IN_MILLISECONDS","ENTER_TOKEN","ENTER_TOKEN_REGEX","LEAVE_TOKEN","LEAVE_TOKEN_REGEX","buildAnimationTimelines","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","AnimationTimelineContext","resolveTimingValue","timelines","timeline","lastRootTimeline","elementInstructions","innerContext","animationsRefsOptions","animationRefOptions","animationDelay","animationDelayValue","interpolateParams","instruction","instructionTimings","subContextCount","ctx","DEFAULT_NOOP_PREVIOUS_NODE","innerTimelines","timingValue","innerTimeline","elms","sameElementTimeline","parentContext","tl","maxTime","startingTime","_AnimationTimelineContext","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","oldParams","newTime","target","updatedTimings","builder","SubTimelineBuilder","time","originalSelector","optional","results","multi","elements","invalidQuery","_TimelineBuilder","_elementTimelineStylesLookup","hasPreStyleStep","input","flattenStyles","val","properties","details1","details0","finalKeyframes","keyframe","finalKeyframe","ɵPRE_STYLE","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","totalTime","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","timeAtKeyframe","decimalPoints","mult","allStyles","allProperties","createTransitionInstruction","triggerName","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","currentState","nextState","oneOrMoreTransitionsMatch","stateName","styler","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","applyParamDefaults","elm","oneOrMoreTransitionsMatch","matchFns","currentState","nextState","element","params","fn","applyParamDefaults","userParams","defaults","result","__spreadValues","key","value","AnimationStateStyles","styles","defaultParams","normalizer","errors","finalStyles","combinedParams","val","prop","interpolateParams","normalizedProp","buildTrigger","name","ast","AnimationTrigger","_normalizer","balanceProperties","AnimationTransitionFactory","createFallbackTransition","f","triggerName","states","matchers","fromState","toState","animation","AnimationMetadataType","transition","stateMap","key1","key2","EMPTY_INSTRUCTION_MAP","ElementInstructionMap","TimelineAnimationEngine","bodyNode","_driver","id","metadata","warnings","buildAnimationAst","registerFailed","i","preStyles","postStyles","keyframes","normalizeKeyframes$1","options","instructions","autoStylesMap","buildAnimationTimelines","ENTER_CLASSNAME","LEAVE_CLASSNAME","inst","getOrSetDefaultValue","missingOrDestroyedAnimation","createAnimationFailed","_","AUTO_STYLE","players","player","optimizeGroupPlayer","index","missingPlayer","eventName","callback","baseEvent","makeAnimationEvent","listenOnPlayer","command","args","QUEUED_CLASSNAME","QUEUED_SELECTOR","DISABLED_CLASSNAME","DISABLED_SELECTOR","STAR_CLASSNAME","STAR_SELECTOR","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","input","namespaceId","isObj","normalizeTriggerValue","_a","__objRest","newParams","oldParams","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","hostElement","_engine","addClass","phase","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","listeners","data","triggersWithStates","NG_TRIGGER_CLASSNAME","trigger","unregisteredTrigger","defaultToFallback","TransitionAnimationPlayer","objEquals","fromStyles","toStyles","eraseStyles","setStyles","playersOnElement","isFallbackTransition","removeClass","entry","elementPlayers","rootElement","context","elements","NG_TRIGGER_SELECTOR","elm","namespaces","ns","destroyAfterComplete","triggerStates","previousTriggersValues","state","elementStates","visitedTriggers","listener","engine","containsPotentialParentTransition","currentPlayers","parent","removalFlag","microtaskId","a","b","d0","d1","p","TransitionAnimationEngine","driver","namespaceList","namespacesByHostElement","found","ancestor","ancestorNs","stateValue","isElementNode","insertBefore","details","hostNS","hasAnimation","subTimelines","enterClassName","leaveClassName","skipBuildAst","containerElement","NG_ANIMATING_SELECTOR","resolve","node","cleanupFns","quietFns","triggerTransitionsFailed","skippedPlayers","skippedPlayersMap","queuedInstructions","queriedElements","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","nodes","root","className","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","previousValue","nodeIsOrphaned","instruction","timelines","tl","tuple","stringMap","setVal","transitionFailed","allPreviousPlayersMap","animationElementMap","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","ɵPRE_STYLE","post","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","parentPlayers","playersForElement","queriedPlayerResults","queriedInnerElements","j","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","NoopAnimationPlayer","previousPlayers","flattenGroupPlayers","pp","wrappedPlayer","deleteOrUnsetInMap","NG_ANIMATING_CLASSNAME","callbacks","totalTime","phaseName","map","currentValues","cloakElement","oldValue","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","props","roots","rootMap","NULL_NODE","nodeSet","localRootMap","getRoot","finalPlayers","_flattenGroupPlayersRecur","AnimationGroupPlayer","k1","k2","postEntry","preEntry","AnimationEngine","doc","componentId","cacheKey","triggerBuildFailed","disable","property","action","parseTimelineCommand","eventPhase","cb","packageNonAnimatableStyles","startStyles","endStyles","filterNonAnimatableStyles","SpecialCasedStyles","_SpecialCasedStyles","_element","_startStyles","_endStyles","initialStyles","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","onFinish","kfs","frame","computeStyle","methods","WebAnimationsDriver","elm1","elm2","containsElement","getParentElement","selector","multi","invokeQuery","defaultValue","duration","delay","easing","fill","playerOptions","previousStyles","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","_keyframes","normalizeKeyframes","balancePreviousStylesIntoKeyframes","specialStyles","ANIMATION_PREFIX","DISABLE_ANIMATIONS_FLAG","BaseAnimationRenderer","namespaceId","delegate","engine","_onDestroy","node","name","namespace","value","parent","newChild","refChild","isMove","oldChild","isHostElement","selectorOrNode","preserveContent","el","style","flags","target","eventName","callback","element","AnimationRenderer","factory","onDestroy","resolveElementFromTarget","phase","parseTriggerCallbackName","event","countId","triggerName","dotIndex","trigger","AnimationRendererFactory","_zone","hostElement","type","EMPTY_NAMESPACE_ID","cache","renderer","onRendererDestroy","componentId","registerTrigger","count","fn","data","animationCallbacksBuffer","tuple","InjectableAnimationEngine","AnimationEngine","doc","driver","normalizer","__ngFactoryType__","ɵɵinject","DOCUMENT","AnimationDriver","AnimationStyleNormalizer","ɵɵdefineInjectable","instantiateDefaultStyleNormalizer","WebAnimationsStyleNormalizer","instantiateRendererFactory","renderer","engine","zone","AnimationRendererFactory","SHARED_ANIMATION_PROVIDERS","RendererFactory2","DomRendererFactory2","NgZone","BROWSER_ANIMATIONS_PROVIDERS","WebAnimationsDriver","ANIMATION_MODULE_TYPE","BROWSER_NOOP_ANIMATIONS_PROVIDERS","NoopAnimationDriver","BrowserAnimationsModule","config","ɵɵdefineNgModule","ɵɵdefineInjector","BrowserModule","environment","apiKey","apiUrl","production","name","environmentId","environment","apiKey","apiUrl","production","name","environmentId","environment","production","apiKey","apiUrl","name","environmentId","ArgumentOutOfRangeException","paramName","ErrorString","InvalidOperationException","message","StrictEqualityComparer","x","y","ArrayEnumerable","BasicAsyncEnumerable","iterator","BasicParallelEnumerable","dataFunc","iterator","__asyncGenerator","value","__await","BasicEnumerable","iterator","bindArray","jsArray","_a","arrayEnumerablePrototype","ArrayEnumerable","bindToPrototype","propertyNames","prop","bindArrayEnumerable","_a","prototype","ArrayEnumerable","propertyNames","BasicEnumerable","prop","predicate","count","i","index","ArgumentOutOfRangeException","value","InvalidOperationException","ErrorString","selector","max","min","aggregate","source","seedOrFunc","func","resultSelector","aggregate3","aggregate2","aggregate1","aggregateValue","value","InvalidOperationException","ErrorString","seed","all","source","predicate","item","allAsync","source","predicate","__async","item","any","source","predicate","any2","any1","_","item","anyAsync","source","predicate","__async","item","fromAsync","promisesOrIterable","InvalidOperationException","ErrorString","BasicAsyncEnumerable","__asyncGenerator","iter","__forAwait","more","temp","error","__await","value","asAsync","source","generator","__asyncGenerator","value","fromAsync","fromParallel","type","generator","BasicParallelEnumerable","asParallel","source","fromParallel","__async","array","value","average","source","selector","average2","average1","value","count","item","InvalidOperationException","ErrorString","func","averageAsync","source","selector","__async","value","count","item","InvalidOperationException","ErrorString","concatenate","first","second","iterator","__yieldStar","BasicEnumerable","contains","source","value","comparer","StrictEqualityComparer","item","containsAsync","source","value","comparer","__async","item","count","source","predicate","count2","count1","_","value","countAsync","source","predicate","__async","count","value","distinct","source","comparer","StrictEqualityComparer","iterator","distinctElements","item","x","BasicEnumerable","distinctAsync","source","comparer","iterator","__asyncGenerator","distinctElements","outerLoop","item","distinctElement","__await","fromAsync","each","source","action","generator","value","BasicEnumerable","eachAsync","source","action","generator","__asyncGenerator","value","__await","fromAsync","elementAt","source","index","ArgumentOutOfRangeException","i","item","elementAtOrDefault","source","index","i","item","except","first","second","comparer","StrictEqualityComparer","iterator","secondArray","firstItem","exists","j","secondItem","BasicEnumerable","exceptAsync","first","second","comparer","iterator","__asyncGenerator","secondArray","firstItem","exists","j","secondItem","__await","fromAsync","first","source","predicate","first2","first1","InvalidOperationException","ErrorString","value","firstAsync","source","predicate","__async","value","InvalidOperationException","ErrorString","firstOrDefault","source","predicate","firstOrDefault2","firstOrDefault1","value","firstOrDefaultAsync","source","predicate","__async","value","Grouping","ArrayEnumerable","key","startingItem","groupBy_0","source","keySelector","comparer","keyMap","value","key","found","i","group","Grouping","keyValue","groupBy_0_Simple","grouping","groupBy_1_Simple","elementSelector","generate","element","BasicEnumerable","groupBy_1","groupBy","source","keySelector","comparer","iterable","groupBy_0","groupBy_0_Simple","BasicEnumerable","groupByAsync","source","keySelector","comparer","groupByAsync_0","groupByAsync_0_Simple","iterator","__asyncGenerator","keyMap","value","key","__await","grouping","Grouping","fromAsync","generate","found","i","group","keyValue","groupByWithSel","source","keySelector","elementSelector","comparer","groupBy_1","groupBy_1_Simple","intersect","first","second","comparer","StrictEqualityComparer","iterator","firstResults","secondResults","i","firstValue","j","secondValue","BasicEnumerable","intersectAsync","first","second","comparer","iterator","__asyncGenerator","firstResults","iter","__forAwait","more","temp","error","__await","item","secondResults","i","firstValue","j","secondValue","fromAsync","join","outer","inner","outerKeySelector","innerKeySelector","resultSelector","comparer","StrictEqualityComparer","iterator","innerArray","o","outerKey","i","innerKey","BasicEnumerable","last","source","predicate","last2","last1","lastItem","value","InvalidOperationException","ErrorString","lastAsync","source","predicate","__async","last","value","InvalidOperationException","ErrorString","lastOrDefault","source","predicate","lastOrDefault2","lastOrDefault1","last","value","lastOrDefaultAsync","source","predicate","__async","last","value","max","source","selector","max2","max1","maxItem","item","InvalidOperationException","ErrorString","maxAsync","source","selector","__async","max","item","InvalidOperationException","ErrorString","min","source","selector","min2","min1","minItem","item","InvalidOperationException","ErrorString","minAsync","source","selector","__async","min","item","InvalidOperationException","ErrorString","ofType","source","type","typeCheck","x","iterator","item","BasicEnumerable","asAsyncKeyMap","source","keySelector","__async","map","iter","__forAwait","more","temp","error","item","key","currentMapping","asAsyncSortedKeyValues","source","keySelector","ascending","comparer","__asyncGenerator","map","__await","asAsyncKeyMap","sortedKeys","i","asAsyncKeyMapSync","source","keySelector","__async","map","item","key","currentMapping","asAsyncSortedKeyValuesSync","source","keySelector","ascending","comparer","__asyncGenerator","map","__await","asAsyncKeyMapSync","sortedKeys","i","asKeyMap","source","keySelector","__async","map","iter","__forAwait","more","temp","error","item","key","currentMapping","asSortedKeyValues","source","keySelector","ascending","comparer","__asyncGenerator","map","__await","asKeyMap","sortedKeys","i","asKeyMapSync","source","keySelector","map","item","key","currentMapping","asSortedKeyValuesSync","source","keySelector","ascending","comparer","map","asKeyMapSync","sortedKeys","i","OrderedAsyncEnumerable","_OrderedAsyncEnumerable","BasicAsyncEnumerable","orderedPairs","__asyncGenerator","iter","__forAwait","more","temp","error","__await","orderedPair","__yieldStar","source","keySelector","ascending","comparer","pair","asAsyncSortedKeyValuesSync","asAsyncSortedKeyValues","asSortedKeyValuesSync","asSortedKeyValues","asKeyMap","source","keySelector","map","item","key","currentMapping","asSortedKeyValues","source","keySelector","ascending","comparer","map","asKeyMap","sortedKeys","i","asKeyMapAsync","source","keySelector","__async","map","item","key","currentMapping","asSortedKeyValuesAsync","source","keySelector","ascending","comparer","__asyncGenerator","map","__await","asKeyMapAsync","sortedKeys","i","OrderedEnumerable","_OrderedEnumerable","BasicEnumerable","orderedPairs","orderedPair","__yieldStar","source","keySelector","ascending","comparer","pair","asSortedKeyValues","__asyncGenerator","asSortedKeyValuesAsync","OrderedAsyncEnumerable","orderBy","source","keySelector","comparer","OrderedEnumerable","orderByAsync","source","keySelector","comparer","OrderedEnumerable","orderByDescending","source","keySelector","comparer","OrderedEnumerable","orderByDescendingAsync","source","keySelector","comparer","OrderedEnumerable","partition","source","predicate","fail","pass","value","partitionAsync","source","predicate","__async","fail","pass","value","reverse","source","iterator","array","BasicEnumerable","select","source","selector","length","select1","select2","select3","iterator","value","BasicEnumerable","index","key","selectAsync","source","selector","selectAsync1","selectAsync2","selectAsync3","iterator","__asyncGenerator","value","fromAsync","index","key","selectMany","source","selector","selectMany1","selectMany2","selectMany3","iterator","value","selectorValue","BasicEnumerable","index","selectManyAsync","source","selector","selectManyAsync1","selectManyAsync2","generator","__asyncGenerator","value","innerValues","__await","innerValue","fromAsync","index","sequenceEquals","first","second","comparer","StrictEqualityComparer","firstIterator","secondIterator","firstResult","secondResult","sequenceEqualsAsync","first","second","comparer","__async","firstIterator","secondIterator","firstResult","secondResult","single","source","predicate","single2","single1","hasValue","singleValue","value","InvalidOperationException","ErrorString","singleAsync","source","predicate","__async","hasValue","singleValue","value","InvalidOperationException","ErrorString","singleOrDefault","source","predicate","singleOrDefault2","singleOrDefault1","hasValue","singleValue","value","InvalidOperationException","ErrorString","singleOrDefaultAsync","source","predicate","__async","hasValue","singleValue","value","InvalidOperationException","ErrorString","skip","source","count","iterator","item","BasicEnumerable","skipWhile","source","predicate","skipWhile1","skipWhile2","iterator","skip","item","BasicEnumerable","index","skipWhileAsync","source","predicate","skipWhileAsync1","skipWhileAsync2","iterator","__asyncGenerator","skip","item","__await","fromAsync","index","sum","source","selector","sum2","sum1","total","value","sumAsync","source","selector","__async","sum","value","take","source","amount","iterator","amountLeft","item","BasicEnumerable","takeWhile","source","predicate","takeWhile1","takeWhile2","iterator","item","BasicEnumerable","index","takeWhileAsync","source","predicate","takeWhileAsync1","takeWhileAsync2","iterator","__asyncGenerator","item","__await","fromAsync","index","toArray","source","toMap","source","selector","map","value","key","array","toMapAsync","source","selector","__async","map","value","key","array","toObject","source","selector","map","value","toObjectAsync","source","selector","__async","map","value","toSet","source","union","first","second","comparer","union2","union1","iterator","set","item","BasicEnumerable","result","source","value","exists","resultValue","unionAsync","first","second","comparer","iterator","__asyncGenerator","result","source","value","exists","resultValue","__await","fromAsync","where","source","predicate","where1","where2","iterator","item","BasicEnumerable","whereAsync","source","predicate","whereAsync1","whereAsync2","generator","__asyncGenerator","item","__await","fromAsync","zip","source","second","resultSelector","zip2","zip1","iterator","firstIterator","secondIterator","a","b","BasicEnumerable","zipAsync","first","second","resultSelector","generator","__asyncGenerator","firstIterator","secondIterator","b","fromAsync","bindLinq","object","prototype","bind","func","key","wrapped","params","aggregate","all","allAsync","any","anyAsync","asAsync","asParallel","average","averageAsync","concatenate","contains","containsAsync","count","countAsync","distinct","distinctAsync","each","eachAsync","elementAt","elementAtOrDefault","except","exceptAsync","first","firstAsync","firstOrDefault","firstOrDefaultAsync","groupBy","groupByAsync","groupByWithSel","intersect","intersectAsync","join","last","lastAsync","lastOrDefault","lastOrDefaultAsync","max","maxAsync","min","minAsync","ofType","orderBy","orderByAsync","orderByDescending","orderByDescendingAsync","reverse","select","selectAsync","selectMany","selectManyAsync","sequenceEquals","sequenceEqualsAsync","single","singleAsync","singleOrDefault","singleOrDefaultAsync","skip","skipWhile","skipWhileAsync","sum","sumAsync","take","takeWhile","takeWhileAsync","toArray","toMap","toMapAsync","toObject","toObjectAsync","partition","partitionAsync","toSet","union","unionAsync","where","whereAsync","zip","zipAsync","aggregate","source","seedOrFunc","func","resultSelector","aggregate3","aggregate2","aggregate1","__async","aggregateValue","iter","__forAwait","more","temp","error","value","InvalidOperationException","ErrorString","seed","all","source","predicate","__async","iter","__forAwait","more","temp","error","item","allAsync","source","predicate","__async","iter","__forAwait","more","temp","error","item","any","source","predicate","any2","any1","__async","iter","__forAwait","more","temp","error","_","item","anyAsync","source","predicate","__async","iter","__forAwait","more","temp","error","item","asParallel","source","fromParallel","__async","data","iter","__forAwait","more","temp","error","value","average","source","selector","average2","average1","__async","value","count","iter","__forAwait","more","temp","error","item","InvalidOperationException","ErrorString","func","averageAsync","source","selector","__async","value","count","iter","__forAwait","more","temp","error","item","InvalidOperationException","ErrorString","concatenate","first","second","iterator","__asyncGenerator","__yieldStar","BasicAsyncEnumerable","contains","_0","_1","_2","__async","source","value","comparer","StrictEqualityComparer","iter","__forAwait","more","temp","error","item","containsAsync","source","value","comparer","__async","iter","__forAwait","more","temp","error","item","count","source","predicate","count2","count1","__async","total","iter","__forAwait","more","temp","error","_","value","countAsync","source","predicate","__async","count","iter","__forAwait","more","temp","error","value","distinct","source","comparer","StrictEqualityComparer","iterator","__asyncGenerator","distinctElements","iter","__forAwait","more","temp","error","__await","item","x","BasicAsyncEnumerable","distinctAsync","source","comparer","iterator","__asyncGenerator","distinctElements","outerLoop","iter","__forAwait","more","temp","error","__await","item","distinctElement","BasicAsyncEnumerable","each","source","action","iterator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","value","BasicAsyncEnumerable","eachAsync","source","action","iterator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","value","BasicAsyncEnumerable","elementAt","source","index","__async","ArgumentOutOfRangeException","i","iter","__forAwait","more","temp","error","item","elementAtOrDefault","source","index","__async","i","iter","__forAwait","more","temp","error","item","except","first","second","comparer","StrictEqualityComparer","iterator","__asyncGenerator","secondArray","iter","__forAwait","more","temp","error","__await","x","firstItem","exists","j","secondItem","BasicAsyncEnumerable","exceptAsync","first","second","comparer","iterator","__asyncGenerator","secondArray","iter","__forAwait","more","temp","error","__await","x","firstItem","exists","j","secondItem","BasicAsyncEnumerable","first","source","predicate","first2","first1","__async","firstElement","InvalidOperationException","ErrorString","iter","__forAwait","more","temp","error","value","firstAsync","source","predicate","__async","iter","__forAwait","more","temp","error","value","InvalidOperationException","ErrorString","firstOrDefault","source","predicate","firstOrDefault2","firstOrDefault1","__async","iter","__forAwait","more","temp","error","value","firstOrDefaultAsync","source","predicate","__async","iter","__forAwait","more","temp","error","value","groupBy","source","keySelector","comparer","groupBy_0","groupBy_0_Simple","generate","__asyncGenerator","keyMap","iter","__forAwait","more","temp","error","__await","value","key","found","i","group","Grouping","g","BasicAsyncEnumerable","iterator","grouping","groupByAsync","source","keySelector","comparer","groupByAsync_0","groupByAsync_0_Simple","iterator","__asyncGenerator","keyMap","iter","__forAwait","more","temp","error","__await","value","key","grouping","Grouping","BasicAsyncEnumerable","generate","found","i","group","keyValue","groupByWithSel","source","keySelector","elementSelector","comparer","groupBy1","groupBy1Simple","generate","__asyncGenerator","keyMap","iter","__forAwait","more","temp","error","__await","value","key","grouping","element","Grouping","BasicAsyncEnumerable","found","i","group","intersect","first","second","comparer","StrictEqualityComparer","iterator","__asyncGenerator","firstResults","__await","secondResults","i","firstValue","j","secondValue","BasicAsyncEnumerable","intersectAsync","first","second","comparer","iterator","__asyncGenerator","firstResults","__await","secondResults","i","firstValue","j","secondValue","BasicAsyncEnumerable","join","outer","inner","outerKeySelector","innerKeySelector","resultSelector","comparer","StrictEqualityComparer","iterator","__asyncGenerator","innerArray","iter","__forAwait","more","temp","error","__await","i","o","outerKey","innerKey","BasicAsyncEnumerable","last","source","predicate","last2","last1","__async","lastItem","iter","__forAwait","more","temp","error","value","InvalidOperationException","ErrorString","lastAsync","source","predicate","__async","last","iter","__forAwait","more","temp","error","value","InvalidOperationException","ErrorString","lastOrDefault","source","predicate","lastOrDefault2","lastOrDefault1","__async","last","iter","__forAwait","more","temp","error","value","lastOrDefaultAsync","source","predicate","__async","last","iter","__forAwait","more","temp","error","value","max","source","selector","max2","max1","__async","maxItem","iter","__forAwait","more","temp","error","item","InvalidOperationException","ErrorString","maxAsync","source","selector","__async","max","iter","__forAwait","more","temp","error","item","InvalidOperationException","ErrorString","min","source","selector","min2","min1","__async","minValue","iter","__forAwait","more","temp","error","item","InvalidOperationException","ErrorString","minAsync","source","selector","__async","min","iter","__forAwait","more","temp","error","item","InvalidOperationException","ErrorString","ofType","source","type","typeCheck","x","iterator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","item","BasicAsyncEnumerable","orderBy","source","keySelector","comparer","OrderedAsyncEnumerable","orderByAsync","source","keySelector","comparer","OrderedAsyncEnumerable","orderByDescending","source","keySelector","comparer","OrderedAsyncEnumerable","orderByDescendingAsync","source","keySelector","comparer","OrderedAsyncEnumerable","partition","source","predicate","__async","fail","pass","iter","__forAwait","more","temp","error","value","partitionAsync","source","predicate","__async","fail","pass","iter","__forAwait","more","temp","error","value","reverse","source","iterator","__asyncGenerator","values","iter","__forAwait","more","temp","error","__await","value","i","BasicAsyncEnumerable","select","source","selector","select1","select2","select3","iterator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","value","BasicAsyncEnumerable","index","key","selectAsync","source","selector","selectAsync2","selectAsync1","iterator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","value","BasicAsyncEnumerable","key","selectMany","source","selector","selectMany1","selectMany2","selectMany3","iterator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","value","selectorValue","BasicAsyncEnumerable","index","selectManyAsync","source","selector","iterator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","value","many","innerValue","BasicAsyncEnumerable","index","sequenceEquals","_0","_1","_2","__async","first","second","comparer","StrictEqualityComparer","firstIterator","secondIterator","results","firstResult","secondResult","sequenceEqualsAsync","first","second","comparer","__async","firstIterator","secondIterator","results","firstResult","secondResult","single","source","predicate","single2","single1","__async","hasValue","singleValue","iter","__forAwait","more","temp","error","value","InvalidOperationException","ErrorString","singleAsync","source","predicate","__async","hasValue","singleValue","iter","__forAwait","more","temp","error","value","InvalidOperationException","ErrorString","singleOrDefault","source","predicate","singleOrDefault2","singleOrDefault1","__async","hasValue","singleValue","iter","__forAwait","more","temp","error","value","InvalidOperationException","ErrorString","singleOrDefaultAsync","source","predicate","__async","hasValue","singleValue","iter","__forAwait","more","temp","error","value","InvalidOperationException","ErrorString","skip","source","count","iterator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","item","BasicAsyncEnumerable","skipWhile","source","predicate","skipWhile1","skipWhile2","iterator","__asyncGenerator","skip","iter","__forAwait","more","temp","error","__await","item","BasicAsyncEnumerable","index","skipWhileAsync","source","predicate","skipWhileAsync1","skipWhileAsync2","iterator","__asyncGenerator","skip","iter","__forAwait","more","temp","error","__await","item","BasicAsyncEnumerable","index","sum","source","selector","sum2","sum1","__async","total","iter","__forAwait","more","temp","error","value","sumAsync","source","selector","__async","sum","iter","__forAwait","more","temp","error","value","take","source","amount","iterator","__asyncGenerator","amountLeft","iter","__forAwait","more","temp","error","__await","item","BasicAsyncEnumerable","takeWhile","source","predicate","takeWhile1","takeWhile2","iterator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","item","BasicAsyncEnumerable","index","takeWhileAsync","source","predicate","takeWhileAsync1","takeWhileAsync2","iterator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","item","BasicAsyncEnumerable","index","toArray","source","__async","array","iter","__forAwait","more","temp","error","item","toMap","source","selector","__async","map","iter","__forAwait","more","temp","error","value","key","array","toMapAsync","source","selector","__async","map","iter","__forAwait","more","temp","error","value","key","array","toObject","source","selector","__async","map","iter","__forAwait","more","temp","error","value","toObjectAsync","source","selector","__async","map","iter","__forAwait","more","temp","error","value","toSet","source","__async","set","iter","__forAwait","more","temp","error","item","union","first","second","comparer","union2","union1","iterator","__asyncGenerator","set","iter","__forAwait","more","temp","error","__await","item","BasicAsyncEnumerable","result","source","value","exists","resultValue","unionAsync","first","second","comparer","iterator","__asyncGenerator","result","source","iter","__forAwait","more","temp","error","__await","value","exists","resultValue","BasicAsyncEnumerable","where","source","predicate","where1","where2","iterator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","item","BasicAsyncEnumerable","whereAsync","source","predicate","whereAsync1","whereAsync2","iterator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","item","BasicAsyncEnumerable","zip","first","second","resultSelector","zip2","zip1","source","iterator","__asyncGenerator","firstIterator","secondIterator","result","__await","b","BasicAsyncEnumerable","a","zipAsync","first","second","resultSelector","generator","__asyncGenerator","firstIterator","secondIterator","results","__await","firstNext","secondNext","BasicAsyncEnumerable","bindLinqAsync","object","prototype","bind","func","key","wrapped","params","aggregate","all","allAsync","any","anyAsync","asParallel","average","averageAsync","concatenate","contains","containsAsync","count","countAsync","distinct","distinctAsync","each","eachAsync","elementAt","elementAtOrDefault","except","exceptAsync","first","firstAsync","firstOrDefault","firstOrDefaultAsync","groupBy","groupByAsync","groupByWithSel","intersect","intersectAsync","join","last","lastAsync","lastOrDefault","lastOrDefaultAsync","max","maxAsync","min","minAsync","ofType","orderBy","orderByAsync","orderByDescending","orderByDescendingAsync","partition","partitionAsync","reverse","select","selectAsync","selectMany","selectManyAsync","sequenceEquals","sequenceEqualsAsync","single","singleAsync","singleOrDefault","singleOrDefaultAsync","skip","skipWhile","skipWhileAsync","sum","sumAsync","take","takeWhile","takeWhileAsync","toArray","toMap","toMapAsync","toObject","toObjectAsync","toSet","union","unionAsync","where","whereAsync","zip","zipAsync","aggregate","source","seedOrFunc","func","resultSelector","aggregate3","aggregate2","aggregate1","__async","aggregateValue","iter","__forAwait","more","temp","error","value","InvalidOperationException","ErrorString","seed","nextIteration","source","onfulfilled","dataFunc","x","convValues","i","previousData","newPromises","__async","all","source","predicate","nextIter","nextIteration","x","nextIterationAsync","source","onfulfilled","dataFunc","__async","results","newPromises","i","promise","value","allAsync","source","predicate","nextIter","nextIterationAsync","x","__async","any","source","predicate","any2","any1","__async","dataFunc","values","nextIteration","anyAsync","source","predicate","__async","nextIter","nextIterationAsync","promises","resolve","reject","resolvedCount","promise","value","asAsync","source","generator","__asyncGenerator","iter","__forAwait","more","temp","error","__await","value","fromAsync","typeDataToArray","dataFunc","__async","data","average","source","selector","__async","data","nextIteration","values","typeDataToArray","InvalidOperationException","ErrorString","sum","item","averageAsync","source","selector","__async","nextIter","nextIterationAsync","values","typeDataToArray","InvalidOperationException","ErrorString","value","selectedValue","concatenate","first","second","generator","__async","firstData","secondData","BasicParallelEnumerable","contains","_0","_1","_2","__async","source","value","comparer","StrictEqualityComparer","values","nextIteration","x","containsAsync","source","value","comparer","__async","values","nextIterationAsync","x","count","source","predicate","count2","count1","__async","dataFunc","values","totalCount","i","countAsync","source","predicate","__async","data","nextIterationAsync","countPromise","totalCount","value","distinct","source","comparer","StrictEqualityComparer","generator","__async","distinctElements","item","x","BasicParallelEnumerable","distinctAsync","source","comparer","generator","__async","distinctElements","outerLoop","item","distinctElement","BasicParallelEnumerable","each","source","action","BasicParallelEnumerable","nextIteration","x","eachAsync","source","action","dataFunc","nextIterationAsync","x","__async","BasicParallelEnumerable","elementAt","source","index","__async","ArgumentOutOfRangeException","dataFunc","values","promises","elementAtOrDefault","source","index","__async","dataFunc","values","promises","except","first","second","comparer","StrictEqualityComparer","generator","__async","firstValues","secondValues","resultValues","firstItem","exists","j","secondItem","BasicParallelEnumerable","exceptAsync","first","second","comparer","generator","__async","firstValues","secondValues","resultValues","firstItem","exists","j","secondItem","BasicParallelEnumerable","toArray","source","typeDataToArray","first","source","predicate","first2","first1","__async","dataFunc","values","InvalidOperationException","ErrorString","promises","data","toArray","value","firstAsync","source","predicate","__async","data","toArray","value","InvalidOperationException","ErrorString","firstOrDefault","source","predicate","firstOrDefault2","firstOrDefault1","__async","dataFunc","values","promises","data","toArray","value","firstOrDefaultAsync","source","predicate","__async","data","toArray","value","groupBy","source","keySelector","comparer","groupBy_0","groupBy_0_Simple","generator","__async","keyMap","value","key","grouping","Grouping","results","BasicParallelEnumerable","found","i","group","g","groupByAsync","source","keySelector","comparer","groupByAsync_0","groupByAsync_0_Simple","generator","__async","typedData","nextIterationAsync","value","values","keyMap","key","found","i","group","Grouping","results","g","BasicParallelEnumerable","grouping","groupByWithSel","source","keySelector","elementSelector","comparer","groupBy1","groupBy1Simple","generator","__async","keyMap","iter","__forAwait","more","temp","error","value","key","found","i","group","element","Grouping","results","BasicParallelEnumerable","grouping","intersect","first","second","comparer","StrictEqualityComparer","generator","__async","firstResults","secondResults","results","i","firstValue","j","secondValue","BasicParallelEnumerable","intersectAsync","first","second","comparer","generator","__async","firstResults","secondResults","results","i","firstValue","j","secondValue","BasicParallelEnumerable","join","outer","inner","outerKeySelector","innerKeySelector","resultSelector","comparer","StrictEqualityComparer","generator","__async","innerArray","outerArray","results","o","outerKey","i","innerKey","BasicParallelEnumerable","last","source","predicate","last2","last1","__async","dataFunc","values","InvalidOperationException","ErrorString","promises","i","value","lastAsync","source","predicate","__async","dataFunc","values","i","value","promises","InvalidOperationException","ErrorString","lastOrDefault","source","predicate","lastOrDefault2","lastOrDefault1","__async","dataFunc","values","promises","i","value","lastOrDefaultAsync","source","predicate","__async","dataFunc","values","i","value","promises","max","source","selector","__async","dataFunc","nextIteration","data","typeDataToArray","InvalidOperationException","ErrorString","maxAsync","source","selector","__async","dataFunc","nextIterationAsync","maxInfo","typeDataToArray","InvalidOperationException","ErrorString","min","source","selector","__async","dataFunc","nextIteration","data","typeDataToArray","InvalidOperationException","ErrorString","minAsync","source","selector","__async","dataFunc","nextIterationAsync","maxInfo","typeDataToArray","InvalidOperationException","ErrorString","ofType","source","type","typeCheck","x","generator","__async","dataFunc","nextIteration","values","typeDataToArray","filteredValues","pass","value","BasicParallelEnumerable","asAsyncKeyMap","source","keySelector","__async","map","iter","__forAwait","more","temp","error","item","key","currentMapping","asAsyncSortedKeyValues","source","keySelector","ascending","comparer","__asyncGenerator","map","__await","asAsyncKeyMap","sortedKeys","i","asAsyncKeyMapSync","source","keySelector","__async","map","item","key","currentMapping","asAsyncSortedKeyValuesSync","source","keySelector","ascending","comparer","__asyncGenerator","map","__await","asAsyncKeyMapSync","sortedKeys","i","asKeyMap","source","keySelector","__async","map","iter","__forAwait","more","temp","error","item","key","currentMapping","asSortedKeyValues","source","keySelector","ascending","comparer","__asyncGenerator","map","__await","asKeyMap","sortedKeys","i","asKeyMapSync","source","keySelector","map","item","key","currentMapping","asSortedKeyValuesSync","source","keySelector","ascending","comparer","__asyncGenerator","map","asKeyMapSync","sortedKeys","i","OrderedParallelEnumerable","_OrderedParallelEnumerable","BasicParallelEnumerable","orderedPairs","__async","asyncVals","array","iter","__forAwait","more","temp","error","val","source","keySelector","ascending","comparer","__asyncGenerator","__await","pair","__yieldStar","asAsyncSortedKeyValuesSync","asAsyncSortedKeyValues","asSortedKeyValuesSync","asSortedKeyValues","orderBy","source","keySelector","comparer","OrderedParallelEnumerable","orderByAsync","source","keySelector","comparer","OrderedParallelEnumerable","orderByDescending","source","keySelector","comparer","OrderedParallelEnumerable","orderByDescendingAsync","source","keySelector","comparer","OrderedParallelEnumerable","partition","source","predicate","__async","dataFunc","nextIteration","value","values","typeDataToArray","fail","pass","passed","partitionAsync","source","predicate","__async","dataFunc","nextIterationAsync","value","values","typeDataToArray","fail","pass","passed","reverse","source","dataFunc","generator","BasicParallelEnumerable","__async","nextIterationWithIndex","source","onfulfilled","dataFunc","x","convValues","i","previousData","newPromises","value","__async","select","source","key","BasicParallelEnumerable","nextIteration","nextIterationWithIndex","x","nextIterationWithIndexAsync","source","onfulfilled","dataFunc","__async","results","newPromises","i","promise","index","x","selectAsync","source","keyOrSelector","generator","nextIterationAsync","nextIterationWithIndexAsync","x","BasicParallelEnumerable","selectMany","source","selector","generator","__async","values","nextIteration","nextIterationWithIndex","x","valuesArray","outer","y","BasicParallelEnumerable","selectManyAsync","source","selector","generator","__async","values","nextIterationAsync","nextIterationWithIndexAsync","valuesArray","outer","y","BasicParallelEnumerable","sequenceEquals","_0","_1","_2","__async","first","second","comparer","StrictEqualityComparer","firstArray","secondArray","i","firstResult","secondResult","sequenceEqualsAsync","first","second","comparer","__async","firstArray","secondArray","i","firstResult","secondResult","single","source","predicate","single2","single1","__async","dataFunc","results","InvalidOperationException","ErrorString","toArray","hasValue","singleValue","value","singleAsync","source","predicate","__async","results","toArray","hasValue","singleValue","value","InvalidOperationException","ErrorString","singleOrDefault","source","predicate","singleOrDefault2","singleOrDefault1","__async","dataFunc","results","InvalidOperationException","ErrorString","toArray","hasValue","singleValue","value","singleOrDefaultAsync","source","predicate","__async","results","toArray","hasValue","singleValue","value","InvalidOperationException","ErrorString","skip","source","count","dataFunc","generator","__async","BasicParallelEnumerable","dataFuncNew","skipWhile","source","predicate","generator","__async","values","i","value","returnedValues","BasicParallelEnumerable","skipWhileAsync","source","predicate","generator","__async","values","i","value","returnedValues","BasicParallelEnumerable","sum","source","selector","sum2","sum1","__async","totalSum","value","total","sumAsync","source","selector","__async","dataFunc","nextIterationAsync","values","typeDataToArray","sum","value","take","source","amount","amountLeft","dataFunc","generator1","BasicParallelEnumerable","generator2","x","generator3","takeWhile","source","predicate","generator","__async","values","results","value","i","BasicParallelEnumerable","takeWhileAsync","source","predicate","generator","__async","values","results","sPredicate","value","i","BasicParallelEnumerable","toMap","source","selector","__async","map","dataFunc","nextIteration","value","keyValues","typeDataToArray","key","array","toMapAsync","source","selector","__async","map","dataFunc","nextIterationAsync","value","keyValues","typeDataToArray","key","array","toObject","source","selector","__async","dataFunc","values","typeDataToArray","map","value","toObjectAsync","source","selector","__async","dataFunc","nextIterationAsync","value","keyValues","typeDataToArray","map","key","toSet","source","__async","dataFunc","values","typeDataToArray","union","first","second","comparer","union2","union1","generator","__async","set","secondPromise","iter","__forAwait","more","temp","error","item","secondValues","BasicParallelEnumerable","result","values","source","value","exists","resultValue","unionAsync","first","second","comparer","generator","__async","result","values","source","value","exists","resultValue","BasicParallelEnumerable","where","source","predicate","generator","__async","BasicParallelEnumerable","whereAsync","source","predicate","generator","__async","dataFunc","nextIterationWithIndexAsync","value","index","valuesAsync","typeDataToArray","filteredValues","keep","BasicParallelEnumerable","zip","first","second","resultSelector","zip2","zip1","source","generator","__async","left","right","maxLength","results","i","a","b","BasicParallelEnumerable","zipAsync","first","second","resultSelector","generator","__async","left","right","maxLength","resultPromises","i","a","b","BasicParallelEnumerable","bindLinqParallel","object","prototype","bind","func","key","wrapped","params","aggregate","all","allAsync","any","anyAsync","asAsync","average","averageAsync","concatenate","contains","containsAsync","count","countAsync","distinct","distinctAsync","each","eachAsync","elementAt","elementAtOrDefault","except","exceptAsync","first","firstAsync","firstOrDefault","firstOrDefaultAsync","groupBy","groupByAsync","groupByWithSel","intersect","intersectAsync","join","last","lastAsync","lastOrDefault","lastOrDefaultAsync","max","maxAsync","min","minAsync","ofType","orderBy","orderByAsync","orderByDescending","orderByDescendingAsync","partition","partitionAsync","reverse","select","selectAsync","selectMany","selectManyAsync","sequenceEquals","sequenceEqualsAsync","single","singleAsync","singleOrDefault","singleOrDefaultAsync","skip","skipWhile","skipWhileAsync","sum","sumAsync","take","takeWhile","takeWhileAsync","toArray","toMap","toMapAsync","toObject","toObjectAsync","toSet","union","unionAsync","where","whereAsync","zip","zipAsync","bindString","_a","prototype","propertyNames","BasicEnumerable","prop","predicate","i","value","InvalidOperationException","ErrorString","count","index","ArgumentOutOfRangeException","outer","generator","initializeLinq","bindLinq","bindString","bindArray","bindLinq","BasicEnumerable","bindLinqAsync","BasicAsyncEnumerable","bindLinqParallel","BasicParallelEnumerable","bindArrayEnumerable","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r3","ctx_r1","ɵɵnextContext","ɵɵresetView","tourService","next","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","step_r4","nextBtnTitle","_r5","end","endBtnTitle","$event","i0","_r1","stopPropagation","ɵɵelement","prev","ɵɵtemplate","AppComponent_ng_template_2_button_14_Template","AppComponent_ng_template_2_button_15_Template","title","ɵɵproperty","content","ɵɵsanitizeHtml","hasPrev","prevBtnTitle","hasNext","dataService","applicationLoadingMessageObject","message","AppComponent","constructor","router","utilityService","loading","initializeLinq","Global","Initial","href","window","location","route","indexOf","split","last","baseUrl","first","document","URL","iOPSLogoImage","LogosForApplicationTheme","Dark","iOPSLogo","iOPSTinyLogo","CompanyTinyLogo","CompanyLogo","Light","iOPSTinyLogoImage","CompanyTinyLogoImage","CompanyLogoImage","imagesUrl","Data","thingApiUrl","thingApiIsLocal","globalObject","console","log","events","subscribe","routerEvent","url","localStorage","getItem","checkRouterEvent","User","currentUser","Id","lastVisitedRoute","newlyVisitedRoute","setItem","CurrentMenuItem","sql","SQLActionAsPromise","then","data","environmentName","Application","Environment","Name","environmentId","version","Test","Beta","Prod","Version","Type","NavigationStart","NavigationEnd","NavigationCancel","NavigationError","gm_authFailure","error","ngOnInit","passwordToken","GetQuerystringParameterByName","navigate","ɵɵdirectiveInject","Router","UtilityService","DataService","TourService","selectors","decls","vars","consts","template","rf","ctx","AppComponent_ng_template_2_Template","AppComponent_div_5_Template","shouldExist","import_sweetalert2","AuthenticationService","constructor","http","utilityService","signalRCore","dataService","router","serviceName","loginUserWithAccessToken","accessToken","Global","User","DebugMode","console","log","dataString","GetQuerystringParameterByName","localStorage","removeItem","currentUserSubject","next","LogActivity","httpPost","type","httpOptions","headers","HttpHeaders","Authorization","Data","dataServerIsLocal","apiUrl","time0","performance","now","Promise","resolve","reject","post","loginUrl","toPromise","then","accessTokenSentBackFromWebAPI","time","isLoggedIn","msg","validatePasswordTokenHttpPost","passwordChangeToken","passwordTokenValidationUrl","pipe","tap","valid","catchError","err","of","setThemeBackToDefaultSettings","dataServerUrl","SignalR","CoreUrl","BehaviorSubject","JSON","parse","getItem","currentUser","asObservable","currentUserValue","value","validatePasswordToken","passwordToken","loginWithUsernameAndPassword","username","password","ApplicationLoadingMessage","resetApplicationToDefaultSettings","Menu","PermittedSites","Privilege","Role","isAdmin","isOrgAdmin","isSiteAdmin","needToBuildMenu","ListOfTagNamePrefixes","ListOfAdditionalSignalRGroups","stopHub","logout","isLoggedInAsDifferentUser","sqlStatement","Username","isMobile","SQLActionAsPromise","data","navigate","ɵɵinject","HttpClient","UtilityService","SignalRCoreService","DataService","Router","factory","ɵfac","providedIn","import_moment","import_sweetalert2","SnackbarBroadcastMessageComponent","constructor","snackBarRef","data","ngOnInit","ɵɵdirectiveInject","MatSnackBarRef","MAT_SNACK_BAR_DATA","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","dismiss","ɵɵadvance","ɵɵtextInterpolate","Message","Description","SecurityService","constructor","signalRCore","authenticationService","router","dataService","cacheUtilityService","zone","utilityService","dialog","snackBar","currentUserIsLoggedIn$","Subject","serviceName","currentUser","Global","User","getCurrentUser","JSON","parse","localStorage","getItem","currentUserIsLoggedIn","console","log","isLoggedIn","isBeingAuthenticated","authenticateUser","updateIsLoggedInUserStatus","next","LogActivity","isAdmin","Theme","ApplicationLoadingMessage","ODataAccessToken","processLoggedInUser","Username","isMobile","navigate","logInAsDifferentUser","accessToken","loginUserWithAccessToken","then","err","error","username","startHub","time0","performance","now","authorizedSitesAndPrivileges","mainMenuPrivileges","widgetsPerSite","authorizedSitesAndPrivilegesObject","widgetsPerSiteObject","listOfUserRolesAndPrivileges","listOfUserRoles","listOfUserPrivileges","accessTokenWithParameterName","usernameWithParameterName","requestJSON","label","sqlStatement","Application","Environment","Id","SQLMultiAction","data","collections","user","Menu","Dashboards","Privileges","Security","Aggregate","Collections","AssetIds","SiteIds","WidgetTypeIds","AllowedDashboardTypeIds","AllowedDashboardTypes","Name","userTimer","forEach","collection","resetApplicationToDefaultSettings","personRecord","first","window","location","reload","field","IsSystemAdministrator","IsOrganizationAdministrator","Rockstar","UseProductionDataOnTest","Active","ReturnToLastVisitedRoute","DarkTheme","DebugMode","Organization","IsAdmin","UsesAirportSites","OrganizationUsesAirportSites","Version","row","SiteId","UserPrivileges","UserFavorites","DashboardsObject","dashboard","DashboardTimeScopes","TacticalDashboardUpdateIntervals","GeofencingZoneTypes","returnedData","jbtStandardObservationsLessThan16000","jbtStandardObservationsBetween16000And55000","jbtStandardObservationsGreaterThan55000","assets","assetGraphics","systemsAndSystemGraphics","GenericTacticalDashboardWidgets","lastVisitedRouteData","DashboardTimeZones","Description","timeToCreateUserObject","where","r","dtId","select","rec","distinct","toArray","widgetTypes","wtId","WidgetTypeNames","widgetTypeNames","wtN","SiteIdsGroupedByWidgetTypeId","groupBy","widgets","groupedByWidgets","firstRecord","newRecord","WidgetTypeId","WidgetTypeName","DashboardTypeId","SiteIdCollection","sId","WidgetTypeIdsGroupedBySiteId","formattedWidgets","SiteName","sN","Role","UserRoles","Privilege","WidgetTypeIdCollection","list","userRolesArray","split","userPrivsArray","mainMenuPrivsArray","role","replace","privilege","isSiteAdministrator","newObject","roles","privs","assignedUserRolesArray","assignedUserPrivsArray","assigned","priv","mainMenuPrivilegesArray","setItem","stringify","DateLoggedIn","DateLoggedInMS","DateLoggedInFormatted","moment","format","isOrgAdmin","isSiteAdmin","SidebarMini","updateDebugMode","localStorageUseProductionDataOnTest","dbUseProductionDataOnTest","updateUseProductionDataOnTest","currentUserChanged$","needToBuildMenu$","isLoggedInAsDifferentUser","TimeZoneId","MobileOnlyDarkTheme","prefersDarkTheme","setTheme","MenuColor","DefaultColorForDesktopVersion_AirportSiteUsers","DefaultColorForDesktopVersion","DefaultThemeForApplication_AirportSiteUsers","DefaultThemeForApplication","includes","initializeSiteWithUserPreferences","runOutsideAngular","initializeCacheUtilityService","joinSignalRGroups","subscribe","currentUserInitialLoadIsFinished$","totalTime","routeUserToStart","status","statusText","Swal","fire","title","text","showCancelButton","confirmButtonText","reverseButtons","reconnect","joinSignalRGroups$","Observable","subscriber","joinGroups","SignalR","joinedSignalRGroups","complete","dashboardsData","ViewReleaseNotesAtLogin","lastVisitedRoute","LastVisitedRoute","global","currentRoute","Initial","route","normalRoutingForUserWithoutBookmarkedRoute","catch","e","StopSeeingReleaseNotes","firstDashboard","find","d","IsMobile","length","routeUserToFirstDashboard","homeRoute","updateCurrentMenuItem","homeRoute$","lastVisitedRouteTitle","LastVisitedRouteTitle","indexOf","last","mobileVersionLastVisitedRoute","substring","undefined","firstDashboardId","buildDashboardsAndDashboardObjectForLoggedInUser","dashboardId","__async","dashboards","openSnackBarMessage","messageObject","openFromComponent","SnackbarBroadcastMessageComponent","verticalPosition","horizontalPosition","ɵɵinject","SignalRCoreService","AuthenticationService","Router","DataService","CacheUtilityService","NgZone","UtilityService","MatDialog","MatSnackBar","factory","ɵfac","providedIn","RouteToExternalUrlService","constructor","router","routeToExternalUrl","url","navigate","externalUrl","skipLocationChange","ɵɵinject","Router","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","resetPasswordByUsername","resetPasswordForm","value","ɵɵelement","ɵɵelementEnd","mouseoverLogin","ɵɵtext","ɵɵadvance","ɵɵproperty","ɵɵpropertyInterpolate1","validateUsername","invalid","_r3","login","loginForm","validatePassword","sendPasswordToken","ɵɵpureFunction0","_c0","LoginComponent","constructor","authenticationService","router","dataService","securityService","cacheUtilityService","zone","routeExternal","resetUsername","usernameHasNotBeenValued","changePasswordHasBeenRequested","currentUserIsLoggedIn","currentUserIsBeingAuthenticated","loginProcessLoading","componentName","global","Global","ngOnInit","console","log","ApplicationLoadingMessage","window","location","username","FormControl","Validators","required","password","FormGroup","setupLoginForm","ngAfterViewInit","ngOnDestroy","removeLoginForm","document","getElementsByTagName","classList","add","remove","formValues","User","loggingIntoLegacyApplication","time0","performance","now","loginWithUsernameAndPassword","then","accessToken","time","length","invalidPasswordAlert","processLoggedInUser","err","DebugMode","message","navigate","swal","fire","title","position","text","loginLegacy","event","stopPropagation","preventDefault","requestJSON","label","sqlStatement","SQLMultiAction","data","collections","user","forEach","collection","personRecord","first","field","Organization","Id","Name","Username","logout","localStorage","setItem","JSON","stringify","currentUser","getItem","url","URL","indexOf","protocol","host","routeToExternalUrl","error","status","showCancelButton","confirmButtonText","reverseButtons","reload","untouched","valid","RequestToResetPassword","body","email","sendAlertToUser","undefined","html","ɵɵdirectiveInject","AuthenticationService","Router","DataService","SecurityService","CacheUtilityService","NgZone","RouteToExternalUrlService","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","LoginComponent_div_8_Template","LoginComponent_div_9_Template","ɵɵclassMapInterpolate1","DefaultThemeForApplication","imagesUrl","ɵɵsanitizeUrl","LogoutComponent","constructor","authenticationService","router","ngOnInit","logout","Global","isMobile","navigate","ɵɵdirectiveInject","AuthenticationService","Router","selectors","decls","vars","template","rf","ctx","encapsulation","AuthenticationComponent","constructor","securityService","authenticationService","router","dataService","ngOnInit","Global","passwordToken","validatePasswordToken","subscribe","navigate","console","log","authenticateUser","ɵɵdirectiveInject","SecurityService","AuthenticationService","Router","DataService","selectors","decls","vars","template","rf","ctx","encapsulation","import_lodash","ɵɵelement","ɵɵproperty","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","loadVideo","addWidgetToDashboard","ɵɵelementEnd","ɵɵstyleProp","widgetTypesInOneArray","gridSettings","ɵɵtemplate","AddWidgetToDashboardComponent_div_10_lib_kendo_grid_parent_1_Template","ɵɵadvance","undefined","AddWidgetToDashboardComponent","constructor","dialogRef","dataService","dashboardData","displayedColumns","state","skip","filter","logic","filters","group","field","dir","columnsConfig","title","filterable","_width","hidden","minResizableWidth","widgetClicked","EventEmitter","videoKeyURL","Global","Video","serverArchiveUrl","accessToken","User","currentUser","ODataAccessToken","consoleElement","element","console","log","canUserAddWidget","widgetTypeId","isAdmin","Security","Aggregate","Collections","WidgetTypeIds","includes","canUserAddWidgetText","WidgetTypeId","ngOnInit","service","Theme","theme","colorChangedSubscription","colorChanged$","subscribe","data","DebugMode","isLoading","widgetTypeGroups","widgetTypeTabGroupsWithWidgetTypes","wt","cache","widgetTypes","widgetTypeTabGroups","select","newGroup","Id","Name","Ordinal","V2Compatible","WidgetTypeTabGroup","WidgetTypes","where","WidgetTypeTabGroupId","newWidgetType","DashboardTypeId","WidgetType","TrainingCourseLesson","trainingCourseLessons","firstOrDefault","lesson","Visible","IsAvailableToAll","toArray","orderBy","g","widgetTypeGroupsFromDataCache","length","OrganizationUsesAirportSites","newGroups","forEach","widgetType","Category","Description","push","url","VideoImageKey","encodeURIComponent","intHSize","window","screen","availWidth","intVSize","availHeight","intTop","intLeft","sngWindow_Size_Percentage","strFeatures","SRWindow","open","widgetToAdd","clonedWidget","AngularDirectiveName","CategoryPath","CreationDate","DataTypeCode","DateCompleted","DeveloperPersonId","DevelopmentPriority","EstimatedDateOfCompletion","HasSettings","InitialHeight","InitialWidth","IsAvailableToAdmin","IsHiddenSystemType","Mnemonic","WidgetTypeName","WidgetTypeTabGroupName","WidgetTypeTabGroupOrdinal","WidgetTypeTabGroupV2Compatible","WidgetTypeV2Compatible","emit","onCancel","close","ngOnDestroy","unsubscribe","ɵɵdirectiveInject","MatDialogRef","DataService","MAT_DIALOG_DATA","selectors","viewQuery","rf","ctx","ɵɵtext","AddWidgetToDashboardComponent_lib_loading_spinner_9_Template","AddWidgetToDashboardComponent_div_10_Template","import_sweetalert2","import_lodash","ɵɵelementStart","ɵɵtwoWayListener","$event","dataItem_r3","ɵɵrestoreView","_r2","$implicit","i0","ɵɵtwoWayBindingSet","isTimeZoneSelected","ɵɵresetView","ɵɵelementEnd","ɵɵtwoWayProperty","ɵɵproperty","TimeZoneId","ctx_r3","inputObject","selectedTimezoneObject","Id","DashboardTimezonePopupConfirmationSettingsComponent","constructor","dialogRef","dataService","toastr","dashboardService","ngOnInit","dashboardWidgets","forEach","widget","currentlyAssignedTimeZone","timeZones","find","tz","_","isNil","TimeZoneDescription","Description","console","log","onCancel","close","submitAndClose","selectAllAndClose","ɵɵdirectiveInject","MAT_DIALOG_DATA","MatDialogRef","DataService","ToastrService","DashboardService","selectors","decls","vars","consts","template","rf","ctx","ɵɵtext","ɵɵlistener","_r1","ɵɵelement","ɵɵtemplate","DashboardTimezonePopupConfirmationSettingsComponent_ng_template_13_Template","ɵɵadvance","ɵɵstyleProp","ɵɵpropertyInterpolate1","import_lodash","ɵɵelementStart","ɵɵtwoWayListener","$event","dataItem_r3","ɵɵrestoreView","_r2","$implicit","i0","ɵɵtwoWayBindingSet","isTimeScopeSelected","ɵɵresetView","ɵɵelementEnd","ɵɵtwoWayProperty","ɵɵproperty","TimeScopeId","ctx_r3","inputObject","selectedTimescopeObject","Id","DashboardTimescopePopupConfirmationSettingsComponent","constructor","dialogRef","dataService","toastr","dashboardService","global","Global","ngOnInit","dashboardWidgets","forEach","widget","currentlyAssignedTimeScope","timeScopes","find","ts","_","isNil","TimeScopeDescription","Description","console","log","onCancel","close","submitAndClose","selectAllAndClose","ɵɵdirectiveInject","MAT_DIALOG_DATA","MatDialogRef","DataService","ToastrService","DashboardService","selectors","decls","vars","consts","template","rf","ctx","ɵɵtext","ɵɵlistener","_r1","ɵɵelement","ɵɵtemplate","DashboardTimescopePopupConfirmationSettingsComponent_ng_template_13_Template","ɵɵadvance","ɵɵstyleProp","ɵɵpropertyInterpolate1","SystemService","constructor","dataService","themeChange$","of","Global","CompanyLogoImage","ɵɵinject","DataService","factory","ɵfac","__decorate","Injectable","__metadata","throwIfAlreadyLoaded","parentModule","moduleName","Error","DialogComponentItem","constructor","component","name","title","data","DialogService","constructor","router","zone","components","DialogComponentItem","FileUploadListMobileComponent","getComponentByName","name","item","filter","component","openDialogWindow","componentDataObject","Global","Dialog","lastRouteURL","url","User","DebugMode","console","log","currentDialogObject","componentName","WidgetName","run","navigate","dataObject","ɵɵinject","Router","NgZone","factory","ɵfac","providedIn","ServicesModule","constructor","parentModule","throwIfAlreadyLoaded","ɵɵinject","AuthenticationService","CacheUtilityService","DashboardService","DataService","DialogService","DisplaySetupService","FileUploadService","GseService","IndexedDBService","KendoSettingsService","QuestionControlService","RecursiveDataNavigatorService","RouteToExternalUrlService","SecurityService","SignalRCoreService","SystemService","UtilityService","VideoService","WeatherService","IncomingDataService","imports","CommonModule","LiveDataModule","CommonModule","MatProgressBarModule","DialogModalParentComponentModule","CommonModule","LiveDataModule","FormsModule","ReactiveFormsModule","MatRadioModule","MatTooltipModule","MatButtonModule","WidgetSettingsModule","MatIconModule","MatBadgeModule","import_lodash","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵpropertyInterpolate","note_r3","uploadedPicture","viewUrl","ɵɵsanitizeUrl","name","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","$implicit","ctx_r3","ɵɵresetView","viewPicture","ɵɵtemplate","ReleaseNotesComponent_div_17_li_12_div_6_div_2_Template","ɵɵproperty","ReleaseNotesComponent_div_17_li_12_div_6_Template","ɵɵstyleProp","global","isMobile","ɵɵtextInterpolate2","internal","description","ɵɵsanitizeHtml","note_r6","_r5","ReleaseNotesComponent_div_17_li_15_div_6_div_2_Template","ReleaseNotesComponent_div_17_li_15_div_6_Template","note_r8","_r7","ReleaseNotesComponent_div_17_li_18_div_6_div_2_Template","ReleaseNotesComponent_div_17_li_18_div_6_Template","ReleaseNotesComponent_div_17_h4_10_Template","ReleaseNotesComponent_div_17_li_12_Template","ReleaseNotesComponent_div_17_h4_13_Template","ReleaseNotesComponent_div_17_li_15_Template","ReleaseNotesComponent_div_17_h4_16_Template","ReleaseNotesComponent_div_17_li_18_Template","ɵɵtextInterpolate","version_r9","environment","goLiveDate","releaseNoteFeatures","length","releaseNoteBugs","releaseNoteNotes","ReleaseNotesComponent","constructor","fileUploadService","sanitizer","utilityService","dataService","toastr","dialogRef","iconmenu","videoKeyURL","Global","Video","serverArchiveUrl","accessToken","User","currentUser","ODataAccessToken","ngOnInit","updateCurrentMenuItem","SQLActionAsPromise","Application","Environment","Id","then","dataObject","console","log","releaseNotes","IsSystemAdministrator","where","data","Internal","toArray","source","first","Source","notes","select","version","id","ApplicationVersionId","ApplicationVersion","ApplicationVersionDescription","ApplicationVersionLatestEnvironment","ApplicationVersionGoLiveDate","ApplicationVersionReleaseNoteType","note","Name","replace","Description","pictureImageKey","PictureImageKey","releaseNoteType","buildPictureUrl","_","isNil","distinctVersions","currentVersion","forEach","push","DebugMode","closeDialog","closeAndStopSeeingReleaseNotesAtLogin","dontShowAtLoginPermanently","sql","message","showToastMessageShared","type","title","file","url","intHSize","window","screen","availWidth","intVSize","availHeight","intTop","intLeft","sngWindow_Size_Percentage","strFeatures","SRWindow","open","undefined","imageKey","isVideoServerImage","IsVideoServerImage","videoServerFilename","VideoServerFilename","DefaultVideoFileName","thumbnailImage","ThumbnailBase64","bypassSecurityTrustResourceUrl","Filename","setFileImage","includeThumbnail","filename","indexOf","fileExtension","split","pop","toLowerCase","iconFile","imagesUrl","encodeURIComponent","thumbnailUrl","imageKeyURL","ɵɵdirectiveInject","FileUploadService","DomSanitizer","UtilityService","DataService","ToastrService","MatDialogRef","selectors","decls","vars","consts","template","rf","ctx","i0","_r1","ReleaseNotesComponent_div_17_Template","menu_r10","ReleaseNotesModule","CommonModule","ButtonModule","MatMenuModule","MatTooltipModule","MatDialogModule","MatButtonModule","CanvasPopupSettingsModule","CommonModule","FormsModule","ReactiveFormsModule","DashboardTimescopePopupConfirmationSettingsModule","CommonModule","DragDropModule","MatButtonModule","MatTooltipModule","MatSelectModule","MatCheckboxModule","FormsModule","ReactiveFormsModule","GridModule","DashboardTimezonePopupConfirmationSettingsModule","CommonModule","DragDropModule","MatButtonModule","MatTooltipModule","MatSelectModule","MatCheckboxModule","FormsModule","ReactiveFormsModule","GridModule","import_lodash","ɵɵelementStart","ɵɵtwoWayListener","$event","dataItem_r3","ɵɵrestoreView","_r2","$implicit","i0","ɵɵtwoWayBindingSet","isUpdateIntervalSelected","ɵɵresetView","ɵɵelementEnd","ɵɵtwoWayProperty","ɵɵproperty","UpdateIntervalId","ctx_r3","inputObject","selectedUpdateIntervalObject","Id","TacticalDashboardIntervalPopupConfirmationSettingsComponent","constructor","dialogRef","dataService","toastr","dashboardService","ngOnInit","dashboardWidgets","forEach","widget","currentlyAssignedUpdateInterval","updateIntervals","find","tz","_","isNil","UpdateIntervalDescription","Description","console","log","onCancel","close","submitAndClose","selectAllAndClose","ɵɵdirectiveInject","MAT_DIALOG_DATA","MatDialogRef","DataService","ToastrService","DashboardService","selectors","decls","vars","consts","template","rf","ctx","ɵɵtext","ɵɵlistener","_r1","ɵɵelement","ɵɵtemplate","TacticalDashboardIntervalPopupConfirmationSettingsComponent_ng_template_13_Template","ɵɵadvance","ɵɵstyleProp","ɵɵpropertyInterpolate1","AddWidgetToDashboardModule","CommonModule","MatButtonModule","MatTooltipModule","LoadingSpinnerModule","MatDialogModule","MatTabsModule","MatTableModule","GridModule","KendoGridParentModule","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","widget_r1","WidgetId","ɵɵadvance","ɵɵtextInterpolate1","WidgetName","ScrollToWidgetComponent","constructor","dialogRef","widgets","widgetControl","FormControl","Validators","required","ngOnInit","console","log","Global","Theme","theme","onCancel","close","submitAndClose","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","selectors","decls","vars","consts","template","rf","ctx","ɵɵlistener","ɵɵelement","ɵɵtemplate","ScrollToWidgetComponent_mat_option_17_Template","ScrollToWidgetComponent_mat_error_18_Template","hasError","import_lodash","import_sweetalert2","ɵɵelement","ɵɵproperty","ctx_r0","loadingMessage","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","submitForm","ɵɵelementEnd","ɵɵtext","ɵɵadvance","editFieldsTemplate","formOptions","_r3","editFieldsCustom","ɵɵtemplate","DashboardEditComponent_div_10_div_13_Template","DashboardEditComponent_div_10_div_14_Template","group_r4","value","isLoading","_r5","DashboardEditComponent_div_11_div_1_Template","DashboardEditComponent","constructor","dialogRef","id","dataService","dashboardService","utilityService","addingNewDashboard","tacticalDashboardUpdateIntervalOptionsList","dashboardTypesList","Id","Name","allowedDashboardTypesList","applicationTypes","dashboardTimeZonesOptionsList","dashboardTemplatesList","dashboardTemplatesListFullDataWithWidgets","swalWithBootstrapButtons","swal","mixin","customClass","confirmButton","cancelButton","buttonsStyling","ngOnInit","service","console","log","myDialogRef","dashboardTimeScopes","Global","User","currentUser","DashboardTimeScopes","dashboardTimeScopesOptionsList","TacticalDashboardUpdateIntervals","forEach","t","obj","Description","push","DashboardTimeZones","key","Security","dt","AllowedDashboardTypeIds","IsSystemAdministrator","IsOrganizationAdministrator","orgs","cache","Organizations","admin","peopleInOrg","people","filter","p","OrganizationId","Organization","numberOfPeopleInOrg","length","listOfUserIds","map","UserId","join","DebugMode","appType","isMobile","sql","SQLActionAsPromise","then","data","loadExpandedDashboards","buildEditForm","copyDashboardTemplateToUsers","dashboard","singleCopyToCurrentLoggedInUser","indexOf","sqlStatement","currentUserIsPartOfCopyOperation","dataArray","showToastMessageShared","type","message","title","arrayOfUsersIds","split","requestJSON","userId","jsonObject","label","SQLMultiAction","collections","firstOrDefault","collection","widgets","SetDashboardDerivedDatesFromDayCount","closeWindow","modalInfo","close","closeDialogWindow","submitButtonText","saveValuesPerField","saveStoredProcedureName","dashboardId","setUpQuestions","getDashboard","first","Dashboard","subTitle","that","DashboardGridsterTypes","gridsterTypes","gridsterType","today","Date","pastDate","pd","getDate","setDate","TextboxQuestion","_","isNil","required","order","TextareaQuestion","UibButtonQuestion","CustomStartDate","CustomEndDate","disabled","listOfValues","visible","ReadOnlyQuestion","DropdownQuestion","TimeScopeId","options","visibleFields","field","operator","DateQuestion","TimeZoneId","GridsterTypeId","UpdateIntervalId","IsMobile","SliderYesNoQuestion","IsTemplate","isAdmin","isOrgAdmin","isSiteAdmin","DashboardTemplateId","onChangeFunction","newValue","selectedTemplate","find","widgetNames","w","WidgetName","widgetNamesAsString","currentTemplateDescription","fire","html","showCancelButton","confirmButtonText","reverseButtons","result","roq","readonly","submittedValues","fieldListAsString","replace","submittedValuesObject","JSON","parse","Object","keys","sqlGetDashboards","dashboards","item","Type","buildDashboardAndDashboardObjectAfterEdit","setUserDashboardList","DashboardsObject","cancelButtonText","finishSubmittingForm","dismiss","DismissReason","cancel","countOfFields","questions","question","controlType","where","d","IsSelected","select","vals","toArray","idFieldValue","isNaN","trim","lastCharacter","charAt","slice","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","DataService","DashboardService","UtilityService","selectors","decls","vars","consts","template","rf","ctx","DashboardEditComponent_lib_loading_spinner_1_Template","DashboardEditComponent_div_10_Template","DashboardEditComponent_div_11_Template","ɵɵtextInterpolate","DashboardEditModule","CommonModule","LoadingSpinnerModule","MatTooltipModule","MatButtonModule","ReactiveFormsModule","FormsModule","DynamicFormModule","MatDialogModule","MatStepperModule","MatButtonToggleModule","ɵɵelement","ɵɵproperty","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r1","statisticalRow","TotalCount","ɵɵtextInterpolate1","MissingPercentage","MissingCount","DuplicatePercentage","DuplicateCount","OutlierPercentage","OutlierCount","MaxDelay","MinDelay","AverageDelay","LessThanTenthOfASecondPercentage","LessThanTenthOfASecond","LessThanQuarterOfASecondPercentage","LessThanQuarterOfASecond","LessThanHalfASecondPercentage","LessThanHalfASecond","LessThanOneSecondPercentage","LessThanOneSecond","LessThanTwoSecondsPercentage","LessThanTwoSeconds","LessThanFiveSecondsPercentage","LessThanFiveSeconds","LessThanTenSecondsPercentage","LessThanTenSeconds","GreaterThanTenSecondsPercentage","GreaterThanTenSeconds","ɵɵtemplate","TestObservationDelayComponent_div_1_div_6_div_15_Template","TestObservationDelayComponent_div_1_div_6_div_16_Template","ɵɵlistener","ɵɵrestoreView","_r3","ɵɵnextContext","ɵɵresetView","startTest","edit","ɵɵstyleProp","signalRContainerWidth","FromDate","CurrentDate","TestTag","recordCount","$event","_r4","submitChangesAndExecuteTest","editQuestions","editFormOptions","_r1","closeDialog","TestObservationDelayComponent_div_1_div_6_Template","TestObservationDelayComponent_div_1_div_7_Template","editingForm","TestObservationDelayComponent","constructor","signalRCore","dataService","dialogRef","utilityService","numberOfTests","componentName","countOfObservations","signalRTestMessageGroups","global","Global","dbTransmitterTableWidth","isLoading","loadingEditForm","parameterListAsString","onResize","ngOnInit","ngOnDestroy","leaveAdditionalGroup","SignalR","testInProgress","signalRTestInProgress$","next","sql","undefined","SQLActionAsPromise","then","data","User","DebugMode","console","log","last","Date","dataTable","where","d","Id","toArray","length","close","restartTest","event","screenHeight","window","innerHeight","screenWidth","innerWidth","editHeader","editSubHeader","submitButtonText","saveValuesPerField","saveStoredProcedureName","cancelButtonText","TextboxQuestion","key","label","title","type","value","order","DateTimeQuestion","ToDate","submittedValues","submittedValuesObject","JSON","parse","keys","Object","countOfParameters","forEach","questions","question","controlType","isNaN","updateStringToSQLSyntax","ɵɵdirectiveInject","SignalRCoreService","DataService","MatDialogRef","UtilityService","selectors","hostBindings","rf","ctx","timeSent","ɵɵresolveWindow","TestObservationDelayComponent_lib_loading_spinner_0_Template","TestObservationDelayComponent_div_1_Template","import_lodash","MaterialInputComponent","constructor","searchcriteria","EventEmitter","ngOnInit","searchThis","emit","searchword","selectors","inputs","devLabel","devPlaceholder","outputs","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","ɵɵadvance","ɵɵtextInterpolate","ɵɵtwoWayProperty","ɵɵelement","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵstyleProp","ctx_r1","filterParentNode","node_r4","ɵɵproperty","ɵɵpureFunction2","_c1","theme","ɵɵadvance","ɵɵtextInterpolate1","treeControl","isExpanded","name","ɵɵlistener","node_r6","ɵɵrestoreView","_r5","$implicit","ɵɵnextContext","ɵɵresetView","activeNode","onClickShowSummary","filterLeafNode","_c2","$event","_r3","searchThis","ɵɵtemplate","AssetSummaryViewComponent_div_0_div_1_div_10_mat_tree_node_4_Template","AssetSummaryViewComponent_div_0_div_1_div_10_mat_tree_node_5_Template","dataSource","hasChild","_r1","onClick","AssetSummaryViewComponent_div_0_div_1_i_4_Template","AssetSummaryViewComponent_div_0_div_1_i_5_Template","AssetSummaryViewComponent_div_0_div_1_div_10_Template","navigationOpen","ɵɵtextInterpolate","currentRoutedAsset","Name","AssetSummaryViewComponent_div_0_div_1_Template","initializeTemplate","timeWindow_r9","Id","Description","ɵɵtwoWayListener","_r8","i0","ɵɵtwoWayBindingSet","currentDashboard","TimeScopeId","changeDashboardTimeScope","AssetSummaryViewComponent_div_1_div_9_mat_option_5_Template","ɵɵtwoWayProperty","DashboardTimeScopes","timeZone_r11","_r10","TimeZoneId","changeDashboardTimeZone","AssetSummaryViewComponent_div_1_div_10_mat_option_5_Template","DashboardTimeZones","node_r13","node_r15","_r14","_r12","AssetSummaryViewComponent_div_1_div_13_mat_tree_node_4_Template","AssetSummaryViewComponent_div_1_div_13_mat_tree_node_5_Template","ɵɵpureFunction1","_c3","_r7","AssetSummaryViewComponent_div_1_i_5_Template","AssetSummaryViewComponent_div_1_i_6_Template","AssetSummaryViewComponent_div_1_div_9_Template","AssetSummaryViewComponent_div_1_div_10_Template","AssetSummaryViewComponent_div_1_div_13_Template","dashboardService","canvasWidgetsOnPunchOutScreenWithTimeZoneTimeScope","length","AssetSummaryViewComponent","constructor","dataService","route","router","summaryVisible","gseSummaryCreatedEvent","EventEmitter","isMobile","dashboardTimeScopeChanged","dashboardTimeZoneChanged","_transformer","node","level","expandable","Assets","siteName","Site","FlatTreeControl","treeFlattener","MatTreeFlattener","MatTreeFlatDataSource","_","ngOnInit","sub","params","subscribe","console","log","id","url","includes","split","undefined","cache","assets","find","asset","Global","User","currentUser","userSites","sites","toArray","assetTypeIds","forEach","site","filter","AssetTypeId","Active","orderBy","isAdmin","Security","Aggregate","Collections","SiteIds","Theme","data","TREE_DATA","colorChangedSubscription","colorChanged$","punchoutTimeZoneChanged","punchoutTimeScopeChanged","navigate","ngOnDestroy","DebugMode","unsubscribe","searchword","searchString","toLowerCase","indexOf","getDescendants","some","descendantNode","ɵɵdirectiveInject","DataService","DashboardService","ActivatedRoute","Router","selectors","viewQuery","rf","ctx","AssetSummaryViewComponent_div_0_Template","AssetSummaryViewComponent_div_1_Template","MaterialInputModule","CommonModule","MatInputModule","FormsModule","AssetSummaryViewModule","provideHttpClient","withInterceptorsFromDi","imports","BrowserAnimationsModule","FormsModule","MatNativeDateModule","ReactiveFormsModule","MatTreeModule","MatIconModule","AssetSummaryParentModule","RouterModule","MaterialInputModule","GridsterModule","CommonModule","MatFormFieldModule","MatSelectModule","DashboardCustomTimescopePopupConfirmationSettingsComponent","constructor","inputObject","dialogRef","dataService","toastr","utilityService","global","Global","ngOnInit","maxDate","Date","form","FormGroup","startDateTime","FormControl","dashboardObject","CustomStartDateMS","endDateTime","CustomEndDateMS","console","log","onCancel","close","submitAndClose","value","startDateMS","getTime","endDateMS","showToastMessageShared","type","message","title","error","ɵɵdirectiveInject","MAT_DIALOG_DATA","MatDialogRef","DataService","ToastrService","UtilityService","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵelement","ɵɵadvance","ɵɵproperty","Trigger","open","close","DEFAULT_ALIASES","parseTriggers","triggers","aliases","trimmedTriggers","parsedTriggers","trigger","triggerPair","alias","manualTriggers","listenToTriggersV2","renderer","options","parsedTriggers","parseTriggers","target","listeners","_registerHide","registerHide","fn","trigger","useToggle","showFn","triggerClose","optionsHide","_hide","unsubscribeFn","registerOutsideClick","event","registerEscClick","win","document","location","gc","performance","Event","MouseEvent","KeyboardEvent","EventTarget","History","Location","EventListener","BsVerions","guessedVersion","_guessBsVersion","spanEl","checkPadding","isBs4","guessedVersion","_guessBsVersion","isBs5","getBsVer","currentBsVersion","bsVer","resVersion","key","BsVerions","OnChange","sufix","target","propertyKey","_key","value","prevValue","Utils","element","elem","view","win","bsVer","currentBsVersion","_messagesHash","_hideMsg","warnOnce","msg","isDevMode","MapPlacementInToRL","PlacementForBs5","getStyleComputedProperty","element","property","css","getOffsetParent","noOffsetParent","offsetParent","sibling","nodeName","isOffsetContainer","getRoot","node","findCommonOffsetParent","element1","element2","order","start","end","range","commonAncestorContainer","element1root","getFixedPositionOffsetParent","el","getBordersSize","styles","axis","sideA","sideB","getSize","body","html","_body","_html","getWindowSizes","document","getClientRect","offsets","__spreadProps","__spreadValues","isNumeric","n","isNumber","value","getBoundingClientRect","rect","result","sizes","width","height","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getParentNode","getScrollParent","overflow","overflowX","overflowY","getScroll","side","upperSide","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","scrollTop","scrollLeft","offset","isFixed","getBoundaries","target","host","padding","boundariesElement","boundaries","boundariesNode","getArea","computeAutoPlacement","placement","refRect","allowedPositions","rects","sortedAreas","key","a","b","filteredAreas","position","allowedPosition","computedPlacement","variation","getBsVer","getOffsets","data","getOppositePlacement","hash","matched","getOppositeVariation","parse","def","getOuterSizes","x","y","getReferenceOffsets","commonOffsetParent","getTargetOffsets","hostOffsets","targetRect","targetOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","isModifierEnabled","options","modifierName","availablePositions","checkPopoverMargin","checkPosition","checkMargins","updateContainerClass","renderer","containerClass","dataPlacement","setStyles","prop","unit","arrow","arrowElement","isVertical","len","sideCapitalized","altSide","opSide","arrowElementSize","placementVariation","targetMarginSide","targetBorderSide","center","targetBorderRadius","targetSideArrowOffset","sideValue","flip","offsetsHost","adaptivePosition","flipOrder","step","index","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","initData","targetElement","hostElement","hostElPosition","placementAuto","matches","targetOffset","preventOverflow","transformProp","targetStyles","top","left","transform","check","isPlacementHorizontal","shift","basePlacement","shiftVariation","shiftOffsets","Positioning","appendToBody","chainOfModifiers","_position","modifiedData","modifier","positionService","positionElements","PositioningService","ngZone","rendererFactory","platformId","Subject","isPlatformBrowser","merge","fromEvent","of","animationFrameScheduler","positionElement","_getHtmlElement","elRef","__ngFactoryType__","ɵɵinject","NgZone","RendererFactory2","PLATFORM_ID","ɵɵdefineInjectable","ElementRef","ContentRef","nodes","viewRef","componentRef","ComponentLoader","_viewContainerRef","_renderer","_elementRef","_injector","_componentFactoryResolver","_ngZone","_applicationRef","_posService","_document","EventEmitter","compType","container","opts","provider","injector","Injector","ElementRef","selectedElement","id","componentEl","listenOpts","hide","show","registerHide","toggle","listenToTriggersV2","vRef","template","unsubscribeOutsideClick","unsubscribeEscClick","target","registerOutsideClick","registerEscClick","content","context","initialState","TemplateRef","_viewRef","contentCmptFactory","modalContentInjector","ComponentLoaderFactory","__ngFactoryType__","ɵɵinject","ComponentFactoryResolver$1","NgZone","PositioningService","ApplicationRef","DOCUMENT","ɵɵdefineInjectable","_c0","TooltipConfig","__ngFactoryType__","ɵɵdefineInjectable","TooltipContainerComponent","getBsVer","config","PlacementForBs5","ɵɵdirectiveInject","ɵɵdefineComponent","rf","ctx","ɵɵattribute","ɵɵclassMap","ɵɵStandaloneFeature","ɵɵprojectionDef","ɵɵelement","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","id","TooltipDirective","value","warnOnce","_viewContainerRef","cis","_elementRef","_renderer","_positionService","EventEmitter","showTooltip","cancelDelayedTooltipShowing","timer","parseTriggers","trigger","ViewContainerRef","ComponentLoaderFactory","ElementRef","Renderer2","PositioningService","ɵɵdefineDirective","ɵɵProvidersFeature","__decorate","OnChange","__metadata","TooltipModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","InViewDirective","constructor","vcRef","tplRef","dashboardService","console","log","ngOnInit","ngAfterViewInit","elToObserve","element","nativeElement","parentElement","setMinWidthHeight","IntersectionObserver","entries","forEach","entry","renderContents","isIntersecting","threshold","observe","isInView","id","includes","widgetId","split","inViewEmitter","alreadyRendered","clear","createEmbeddedView","el","style","window","getComputedStyle","width","height","parseInt","minWidth","minHeight","ɵɵdirectiveInject","ViewContainerRef","TemplateRef","DashboardService","selectors","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r3","ctx_r1","ɵɵnextContext","ɵɵresetView","AddGraphWidgetToDashboard","ɵɵtext","ɵɵelementEnd","_r4","ClearChartSelections","ɵɵproperty","timeZone_r5","Id","ɵɵadvance","ɵɵtextInterpolate1","Description","timeWindow_r7","ɵɵtwoWayListener","$event","_r6","i0","ɵɵtwoWayBindingSet","currentTimeScopeId","changeDashboardTimeScope","ɵɵtemplate","SharedDashboardComponent_div_0_div_1_div_17_mat_option_5_Template","ɵɵtwoWayProperty","DashboardTimeScopes","updateInterval_r8","gridsterType_r10","DisplayName","_r9","currentGridsterTypeId","changeDashboardGridsterType","SharedDashboardComponent_div_0_div_1_div_24_mat_option_5_Template","DashboardGridsterTypes","_r11","onDateSelectionChange","form","maxDate","ɵɵpropertyInterpolate","dataService","returnSiteListAsArrayOfNames","widget_r13","SiteList","length","ɵɵpipeBind3","ɵɵtextInterpolate","FleetName","WidgetSiteName","WidgetGateSystemName","WidgetTerminalName","WidgetAssetName","returnHiddenColumnsAsString","WidgetId","ɵɵtextInterpolate2","tmp_7_0","findHiddenColumnCount","hiddenColumnArray","tmp_6_0","findFlightDataTimer","timer","_r14","$implicit","widgetResizeEnabledChanged","widgetDragEnabledChanged","dashboardWidgetToDelete","widgetRememberSelectedTabIndexChanged","dashboardService","currentDashboard","ɵɵelement","_r15","openAlertsPopup","alertNotificationDisabled","alertNotificationColor","alertNotificationTitle","_r16","openNotesPopup","evaluateNotesForWidget","_r17","openFileImageUploadWindow","ɵɵpropertyInterpolate1","CountOfFilesUploaded","ɵɵpureFunction1","_c2","isDisplayDataLive","undefined","determineTimeZoneType","determineWhatTimeScopeForWidget","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_span_3_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_span_4_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_span_5_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_span_6_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_span_7_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_span_8_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_span_9_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_span_10_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_span_11_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_span_12_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_div_13_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_div_14_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_button_15_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_button_16_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_button_17_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_div_18_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_div_19_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_div_20_Template","WidgetName","WidgetTypeName","VocationalSettingsJSON","substring","tmp_14_0","AngularDirectiveName","tmp_15_0","resizeEnabled","dragEnabled","WidgetSiteId","FileUploadImageEnabled","canUserSeeWidget","evaluateAngularDirectiveNameForTimeZoneOption","evaluateAngularDirectiveNameForTimeScopeOption","_r18","learnMoreAboutDisabledWidget","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_3_div_2_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_3_ng_template_4_Template","ɵɵtemplateRefExtractor","ɵɵstyleProp","ɵɵpipeBind1","widgetHeight$","isUserAuthorizedToSeeWidget","WidgetTypeId","ɵɵpropertyInterpolate2","_r12","logWidget","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_2_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_div_3_Template","DashboardTypeId","_r1","openAddWidgetToDashboardModal","changeDashboardLockedToggle","dashboardLocked","SharedDashboardComponent_div_0_div_1_button_9_Template","SharedDashboardComponent_div_0_div_1_button_10_Template","currentTimeZoneId","changeDashboardTimeZone","SharedDashboardComponent_div_0_div_1_mat_option_16_Template","SharedDashboardComponent_div_0_div_1_div_17_Template","updateIntervalId","changeDashboardUpdateInterval","SharedDashboardComponent_div_0_div_1_mat_option_23_Template","SharedDashboardComponent_div_0_div_1_div_24_Template","SharedDashboardComponent_div_0_div_1_div_25_Template","SharedDashboardComponent_div_0_div_1_gridster_item_28_Template","global","Theme","tempTagsToChart","DashboardTimeZones","CustomStartDate","CustomEndDate","User","currentUser","TacticalDashboardUpdateIntervals","GridsterTypeId","options","dashboardWidgets","widget_r20","tmp_10_0","tmp_9_0","_r22","_r23","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_2_span_4_Template","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_2_span_5_Template","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_2_span_6_Template","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_2_span_7_Template","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_2_span_8_Template","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_2_span_9_Template","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_2_span_10_Template","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_2_span_11_Template","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_2_span_12_Template","_r21","widgetHeightChanged","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_2_div_14_Template","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_2_div_15_Template","tmp_17_0","tmp_18_0","_r25","_r24","stopPropagation","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_3_div_1_Template","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_3_ng_template_3_Template","viewportWidth","_r19","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_2_Template","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_div_3_Template","SharedDashboardComponent_div_0_div_2_div_1_div_1_gridster_item_3_Template","viewportHeight","SharedDashboardComponent_div_0_div_2_div_1_div_1_Template","SharedDashboardComponent_div_0_div_2_div_1_Template","isDataLoading","SharedDashboardComponent_div_0_div_1_Template","SharedDashboardComponent_div_0_div_2_Template","isMobile","SharedDashboardComponent","changed","Subject","constructor","route","dialog","toastr","elementRef","signalRCore","utilityService","tourService","height","widgetResizedEvent","EventEmitter","tagGraphCreatedEvent","gseSummaryCreatedEvent","pcaSummaryCreatedEvent","pbbSummaryCreatedEvent","gpuSummaryCreatedEvent","ahuSummaryCreatedEvent","icsSummaryCreatedEvent","locateAllGSECreatedEvent","dashboardTimeScopeChanged","dashboardTimeZoneChanged","dashboardUpdateIntervalChanged","debugMode","flightDataTimerWidgetArray","widgetMovementRecentlyChanged","componentName","currentDashboardTimeZoneName","Global","isTimeSelectionValid","gridsterType","GridType","Fixed","swalWithBootstrapButtons","Swal","mixin","customClass","confirmButton","cancelButton","buttonsStyling","widgetId","hiddenColumnCountWidgetArray","find","widgetObject","object","hiddenColumnsAsString","forEach","hiddenColumn","index","title","getCountOfFilesUploadedForEntity","entity","entityId","entityType","sqlStatement","SQLActionAsPromise","then","data","listOfFiles","first","widget","alertLevel","assetObj","assetName","findAssetByName","findAssetById","WidgetAssetId","d","open","AlertManagementPopupComponent","width","item","maxWidth","maxHeight","afterClosed","subscribe","result","refreshComponent","widgetTypeId","isAdmin","isOrgAdmin","Security","Aggregate","Collections","WidgetTypeIds","includes","parseInt","fire","html","reverseButtons","ngOnDestroy","DebugMode","console","log","sub","unsubscribe","expandedDashboardsSub","createdWidgetSub","createNewDashboardWidgetSubscriber","widgetIsInViewSubscription","editedWidgetSub","widgetTimeChangedSub","hiddenColumnCountSubscription","flightDataTimerSubscription","reloadedWidgetSub","fileUploadListComponentAfterClosedSubscription","dashboardWidgetClickedSubscription","addWidgetToDashboardAfterClosedSubscription","editDashboadTimeScopeModalAfterClosedSubscription","editDashboardTimeZoneModalAfterClosedSubscription","editDashboardUpdateIntervalModalSubscription","dashboardOptionExecutedSubscription","scrollToWidgetAfterClosedSubscription","closeAllOpenPopups","scrollToWidget","tempwidgetid","widgetElements","elementToScrollInto","el","nativeElement","id","value","scrollIntoView","showToastMessageShared","type","message","ngOnInit","Username","genericTacticalDashboardWidgetTypes","GenericTacticalDashboardWidgets","globalObject","hiddenColumnCountChanged$","objectIndex","findIndex","splice","push","dashboardOptionExecuted$","dashboard","Dashboards","obj","dashboardId","DialogRef","AddWidgetToDashboardComponent","componentInstance","widgetClicked","_","clone","assign","cols","InitialWidth","rows","InitialHeight","LogActivity","ScrollToWidgetComponent","widgets","currentUpdateIntervalId","changeDashboardCustomTimeScope","flightDataTimerTimerUpdated$","searchObject","dashboardTimeScopes","cache","gridsterTypes","filter","dashboardObject","fromEvent","pipe","startWith","map","getHeight","bind","widgetInViewChanged$","isWidgetInView","isInView","widgetHasBeenLazyLoaded","isNil","loadEditedOrCreatedWidget","createNewDashboardWidget$","_expandedDashboards","returnedWidgets","newCollectionFinal","Width","Height","x","Col","y","Row","setFileImageUploadSettings","isLoggedInAsDifferentUser","TimeZoneId","dashboardIndexInGlobalDashboardsArray","DashboardsObject","dashboardTitle","CurrentMenuItem","_editedWidget","editedWidget","isEmpty","assetForDisplay","assets","a","Site","Name","ParentSystem","_reloadedWidget","reloadedWidget","setTimeout","widgetsLazyLoadingSelector","_widgetTimeChanged","emitObject","TimeChangeType","emit","_createdWidget","returnedWidget","Object","newestAddedWidget","tagIdsToAdd","TagId","tagIdsToAddString","join","statement","api","optionsChanged","itemChange","params","Date","startDate","CustomStartDateMS","endDate","CustomEndDateMS","FormGroup","startDateTime","FormControl","endDateTime","loadAllExpandedDashboards","updateCurrentMenuItem","UpdateIntervalId","currentUpdateIntervalName","tz","TimeScopeId","evaluateGridsterType","currentDashboardId","screenWidth","screenHeight","initCallback","gridInit","destroyCallback","gridDestroy","gridSizeChangedCallback","gridSizeChanged","itemChangeCallback","itemResizeCallback","itemResize","itemInitCallback","itemInit","itemRemovedCallback","itemRemoved","itemValidateCallback","itemValidate","compactType","CompactType","CompactUp","margin","outerMargin","outerMarginTop","outerMarginRight","outerMarginBottom","outerMarginLeft","useTransformPositioning","mobileBreakpoint","minCols","maxCols","minRows","maxRows","maxItemCols","minItemCols","maxItemRows","minItemRows","maxItemArea","minItemArea","defaultItemCols","defaultItemRows","fixedColWidth","fixedRowHeight","setGridSize","keepFixedHeightInMobile","keepFixedWidthInMobile","scrollSensitivity","scrollSpeed","enableEmptyCellClick","enableEmptyCellContextMenu","enableEmptyCellDrop","enableEmptyCellDrag","enableOccupiedCellDrop","emptyCellDragMaxCols","emptyCellDragMaxRows","ignoreMarginInRow","draggable","enabled","ignoreContent","dragHandleClass","resizable","swap","pushItems","disablePushOnDrag","disablePushOnResize","pushDirections","north","east","south","west","pushResizeItems","displayGrid","DisplayGrid","Always","disableWindowResize","disableWarnings","scrollToNewItems","widgetHeightChangedEvent","widgetHeightChangedSubscription","interval","setInterval","widgetAlertNotificationColor","SiteId","WidgetGateSystemId","ParentSystemId","assetId","userAlert","emailTagUsers","UserId","CriticalAssetId","AssetId","AlertAssetId","alertObject","GetAlertNotificationDetails","Email","TextMessage","DaysSelected","HoursSelected","siteId","CriticalSiteId","GetAlertSummaryForSite","Array","isArray","userAlertForSite","VocationalSettings","JSON","parse","fleetId","CriticalThingId","ThingId","AlertThingId","GetAlertSummaryForFleet","color","siteName","sitesObject","fleetName","GetFleets","myFleet","fleet","FleetId","gateSystemId","gateSystemName","category","SendAllDays","hourToStart","UserTimeZoneOffset","SendAllHours","event","__async","mapWidget","vcr","i","dw","element","parentElement","clear","instance","createComponent","component","ProperComponentName","searchValue","mapWidgets","settingsOnWidget","deleteFunction","onDelete","editWidgetName","siteChange","systemChange","assetChange","editTimeScopeSettings","editIntervalSettings","editWidgetSettings","invertResizeSetting","invertDraggableSetting","invertRememberingOfSelectedTabIndex","makeWidgetTaller","changeWidgetHeight","makeWidgetShorter","findWidgetTimeZoneName","service","WidgetTerminalSystemId","indexOf","fileImageData","FileImageLibraryControlObject","imageKeys","ImageKey","removeUploadFunction","deletedImageKey","remainingFileImageKeyList","addUploadFunction","newImageKey","updatedFileImageKeyList","mode","listTitle","closeUploadWindowFunction","openDialog","innerWidth","window","dialogRef","FileUploadListComponent","fileImageLibraryControlObject","doKeywordFilter","searchString","trim","toLocaleLowerCase","initializeTour","initialize","anchorId","content","start","innerHeight","itemCopy","addOrUpdateDashboardWidgetItem","itemComponent","info","remove","n","deleteDashboardWidgetItem","editWidgetComponentModal","EditWidgetComponent","autoFocus","listOfPopupsThatAreNotAutoClosedByCLickingOutside","widgetName","site","system","systemsObject","SelectedSystemId","asset","assetsObject","widgetSettingsScopeEditModal","WidgetTimeScopeSelectionPopupComponent","position","right","hasBackdrop","disableClose","widgetSettingsIntervalEditModal","WidgetIntervalSelectionPopupComponent","widgetSettingsEditModal","WidgetSettingsPopupComponent","widgetType","showCancelButton","confirmButtonText","cancelButtonText","dismiss","DismissReason","cancel","grid","toggleAllWidgetResizingEnabled","picker","startMS","getTime","endMS","addOrUpdateDashboardRecord","returnedDashboard","dashboardInstance","editDashboardCustomTimeScopeModal","DashboardCustomTimescopePopupConfirmationSettingsComponent","currentDashboardObjectCopy","cloneDeep","startDateMS","endDateMS","oldGridsterType","GridsterType","gt","ScrollVertical","gridType","oldTimeScope","timeScopeObject","dashboardWidgetsThatListenToTimescopeChanges","timeScopes","ts","editDashboardTimeScopeModal","DashboardTimescopePopupConfirmationSettingsComponent","selectedTimescopeObject","changedWidgets","isTimeScopeSelected","cw","SiteListAsString","SelectedTabIndex","timeScopeObjectChanged","DashboardTimeScopeDays","Days","DashboardTimeScopeDescription","DashboardTimeScopeId","widgetIndexChanged","dashWid","oldTimeZoneId","timeZoneObject","dashboardWidgetsThatListenToTimezoneChanges","editDashboardTimeZoneModal","DashboardTimezonePopupConfirmationSettingsComponent","selectedTimezoneObject","timeZones","isTimeZoneSelected","updateIntervalObject","dashboardWidgetsThatListenToUpdateIntervalChanges","evaluateAngularDirectiveNameForUpdateIntervalOption","editUpdateIntervalModal","TacticalDashboardIntervalPopupConfirmationSettingsComponent","selectedUpdateIntervalObject","updateIntervals","isUpdateIntervalSelected","WidgetAssetTypeId","changeRequested","widgetTypes","tagGraphWidgetType","tagGraphWidgetObject","graphId","uuidv4","changedOptions","removeItem","preventDefault","gridsterDashboard","addItem","entityData","EntityId","EntityName","EntityLogTypeId","logsArray","filterNotesForWidget","select","visiblelog","EntityLogTypeName","entityLogTypesObject","output","CreationDate","CreatorUserId","CreatorName","people","firstOrDefault","person","FullName","LastModifiedDate","LastModifiedName","LastModifiedUserId","AssetName","CountOfLogComments","IsPrivate","Keywords","toArray","dlg","DialogModalParentComponent","groupable","groupColumns","popupTitle","description","tableStructure","field","_width","tableData","canCreateDashboardWidgetFromPopup","ɵɵdirectiveInject","DataService","ActivatedRoute","DashboardService","MatDialog","ToastrService","ElementRef","SignalRCoreService","UtilityService","TourService","selectors","viewQuery","rf","ctx","ViewContainerRef","SharedDashboardComponent_div_0_Template","DashboardComponent","constructor","dashboardService","route","ngOnInit","console","log","currentDashboard","ngOnDestroy","ɵɵdirectiveInject","DashboardService","ActivatedRoute","selectors","decls","vars","template","rf","ctx","ɵɵelement","RecipesComponent","constructor","ngOnInit","console","log","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","get","element","set","obj","key","val","div","className","elMatches","matches","query","remove","queryChildren","selector","child","cls","x","scrollingClassTimeout","addScrollingClass","i","classList","removeScrollingClass","setScrollingClassInstantly","EventElement","prototypeAccessors","eventName","handler","target","this$1","name","EventManager","ee","e","onceHandler","evt","createEvent","processScrollDiff","axis","diff","useScrollingClass","forceFireReachEvent","fields","processScrollDiff$1","ref","contentHeight","containerHeight","scrollTop","y","up","down","toInt","isEditable","el","outerWidth","styles","env","updateGeometry","roundedScrollTop","rect","getThumbSize","updateCss","thumbSize","xRailOffset","yRailOffset","clickRail","positionTop","direction","positionLeft","dragThumb","bindMouseScrollHandler","pageY","railYHeight","scrollbarY","scrollbarYHeight","scrollbarYRail","startingScrollTop","startingMousePageY","scrollBy","mouseMoveHandler","mouseUpHandler","bindMoves","touchMode","keyboard","elementHovered","scrollbarFocused","shouldPreventDefault","deltaX","deltaY","scrollLeft","activeElement","wheel","isTop","isBottom","isLeft","isRight","hitsBound","getDeltaFromEvent","shouldBeConsumedByChild","cursor","style","maxScrollTop","maxScrollLeft","mousewheelHandler","shouldPrevent","touch","magnitudeX","magnitudeY","applyTouchMove","differenceX","differenceY","startOffset","startTime","speed","easingLoop","getTouch","shouldHandle","touchStart","touchMove","currentOffset","currentTime","timeGap","touchEnd","defaultSettings","handlers","PerfectScrollbar","userSettings","focus","blur","originalScrollLeft","result","railXStyle","railYStyle","handlerName","perfect_scrollbar_esm_default","COLLAPSE_ANIMATION_TIMING","expandAnimation","style","animate","collapseAnimation","CollapseDirective","value","_el","_renderer","_builder","EventEmitter","isAnimated","action","callback","factoryAnimation","__ngFactoryType__","ɵɵdirectiveInject","ElementRef","Renderer2","AnimationBuilder","ɵɵdefineDirective","rf","ctx","ɵɵattribute","ɵɵclassProp","CollapseModule","ɵɵdefineNgModule","ɵɵdefineInjector","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","menuitem_r2","ɵɵnextContext","$implicit","ctx_r2","ɵɵresetView","updateGlobalMenuTitle","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵpureFunction1","_c1","path","ɵɵadvance","ɵɵclassMap","icontype","ɵɵtextInterpolate","title","_r4","isCollapsed","_r5","childitems_r6","ɵɵpureFunction2","_c2","smallTitle","_r7","_r8","ɵɵpureFunction3","_c3","id","_r9","_r10","childitem_r11","_r12","ɵɵtemplate","SidebarComponent_li_6_div_3_li_2_div_5_li_2_a_1_Template","SidebarComponent_li_6_div_3_li_2_div_5_li_2_a_2_Template","SidebarComponent_li_6_div_3_li_2_div_5_li_2_Template","ɵɵpropertyInterpolate","collapse","children","SidebarComponent_li_6_div_3_li_2_a_1_Template","SidebarComponent_li_6_div_3_li_2_a_2_Template","SidebarComponent_li_6_div_3_li_2_a_3_Template","SidebarComponent_li_6_div_3_li_2_a_4_Template","SidebarComponent_li_6_div_3_li_2_div_5_Template","type","SidebarComponent_li_6_div_3_li_2_Template","SidebarComponent_li_6_a_1_Template","SidebarComponent_li_6_a_2_Template","SidebarComponent_li_6_div_3_Template","SidebarComponent","dashboardUpdated$","Subject","constructor","dataService","activatedRoute","locationStrategy","router","dialog","ref","utilityService","isAdmin","numberOfDashboards","currentUrl","document","URL","global","Global","subscribe","res","getDashboardsForUserAgainAndBuildMenu","ngOnInit","imageUrl","indexOf","iOPSLogoImage","iOPSTinyLogoImage","sidebarMiniSelected","User","SidebarMini","dashboardCreatedFromModal$","iOPSLogoChanged$","image","sidebarMiniChanged$","sidebar","DebugMode","console","log","dashboardListChangedSubscriber","dashboardList$","data","needToBuildMenu","needToBuildMenu$","next","checkUserLogin$","BehaviorSubject","isLoggedIn","currentUser","Dashboards","buildMenu","err","error","ngOnDestroy","unsubscribe","addNewDashboardModal","open","DashboardEditComponent","panelClass","afterClosed","result","undefined","CurrentMenuItem","Name","navigate","Id","startTestObservationDelay","TestObservationDelayComponent","width","innerWidth","height","userDashboardsAsMenuItems","Role","length","dashboards","countDashboards","forEach","dashboard","IsMobile","newDashboard","firstDashboard","path","id","smallTitle","substr","title","type","push","dashboardListLink","func","demoDashboard","myRoutes","icontype","collapse","isCollapsed","children","isOrgAdmin","Menu","Privileges","POTD","isSiteAdmin","menuItems","DesktopMenuItems","detectChanges","updateGlobalMenuTitle","menuItem","childItem","updateCurrentMenuItem","isActive","instruction","createUrlTree","ɵɵdirectiveInject","DataService","ActivatedRoute","LocationStrategy","Router","MatDialog","ChangeDetectorRef","UtilityService","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵtemplate","SidebarComponent_li_6_Template","ɵɵadvance","ɵɵstyleProp","ɵɵpureFunction0","_c0","includes","Organization","ɵɵpropertyInterpolate","ɵɵsanitizeUrl","imagesUrl","ɵɵproperty","SliderQuestion","QuestionBase","constructor","options","controlType","type","import_sweetalert2","ɵɵelement","ɵɵproperty","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","selectColor","ɵɵtwoWayListener","i0","ɵɵtwoWayBindingSet","sidebarMini","changeMenuSize","submitForm","ɵɵadvance","ɵɵpureFunction1","_c0","selectedColor","ɵɵtwoWayProperty","editFields","formOptions","UserSettingsComponent","constructor","dialogRef","data","dataService","utilityService","isFormLoading","global","Global","state","dashboardColor","isCollapsed","darkTheme","lastSliderSelection","ngOnInit","Theme","User","DebugMode","console","log","SidebarMini","MenuColor","themeChanged$","subscribe","theme","submitButtonText","saveValuesPerField","saveStoredProcedureName","currentUser","Id","form","FormGroup","username","FormControl","givenName","middleName","familyName","streetAddress1","streetAddress2","city","zipcode","organization","phone","email","debugMode","returnToLastVisitedRoute","picture","buildEditForm","onNoClick","close","closeDialog","color","event","changeSidebarColor","changeToDarkTheme","indexOf","toggleDarkLightTheme","changeTheme","replace","toggleSidebarMini","service","stateAbbreviations","cache","organizations","SQLActionAsPromise","then","userSettings","first","editQuestions","SliderQuestion","key","label","value","required","title","visible","IsSystemAdministrator","order","saveOnChange","onChangeFunction","newValue","UseProductionDataOnTest","document","URL","environment","original_UseProductionDataOnTest","localStorage","getItem","new_UseProductionDataOnTest","toString","setItem","Swal","fire","html","showCancelButton","confirmButtonText","reverseButtons","window","location","reload","ReturnToLastVisitedRoute","FileUploadQuestion","PictureImageKey","submittedValues","fieldListAsString","submittedValuesObject","JSON","parse","Object","keys","countOfFields","forEach","isNaN","length","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","DataService","UtilityService","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","UserSettingsComponent_lib_loading_spinner_11_Template","UserSettingsComponent_div_12_Template","ɵɵtextInterpolate","GivenName","FamilyName","import_sweetalert2","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","subject_r1","Id","ɵɵadvance","ɵɵtextInterpolate","Name","IssuesComponent","constructor","dialogRef","data","dataService","router","utilityService","subjectId","description","mouseoverRegistration","editHeader","editSubHeader","ngOnInit","Global","User","DebugMode","console","log","currentUser","FormControl","Validators","required","issueForm","FormGroup","getSubjects","validateDescription","valid","untouched","sendNotificationToUser","__async","swal","fire","title","position","html","SQLActionAsPromise","then","subjects","closeDialog","close","submitIssue","values","updateStringToSQLSyntax","paramString","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","DataService","Router","UtilityService","selectors","decls","vars","consts","template","rf","ctx","ɵɵlistener","ɵɵelement","value","ɵɵtemplate","IssuesComponent_option_18_Template","ɵɵpropertyInterpolate","invalid","import_sweetalert2","import_moment","ɵɵelement","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","submitForm","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","editQuestions","formOptions","PersonalInformationComponent","constructor","dataService","utilityService","router","selectorService","dialogRef","data","global","Global","isLoading","componentName","ngOnInit","submitButtonText","saveValuesPerField","saveStoredProcedureName","User","currentUser","Id","initialize","isLoggedIn","SQLActionAsPromise","then","console","log","personRecord","first","setUpForm","navigate","setUpDynamicFormQuestions","TextboxQuestion","key","label","title","type","required","validateObject","order","value","Username","Email","FirstName","MiddleName","LastName","MobilePhone","setName","CellPhoneCarrierId","visibleFields","field","operator","isAdmin","allowBlankValue","ReportsToPersonId","AlternateNotificationEmailPersonId","OutOfOfficeNotificationEmailPersonId","SliderYesNoQuestion","OutOfOffice","closeDialog","close","sendNotificationToUser","showToastMessageShared","message","submittedValues","DebugMode","fieldListAsString","replace","submittedValuesObject","JSON","parse","Object","keys","countOfFields","forEach","question","firstOrDefault","isNaN","controlType","length","routeDestination","Dashboards","ɵɵdirectiveInject","DataService","UtilityService","Router","SelectorService","MatDialogRef","MAT_DIALOG_DATA","selectors","decls","vars","consts","template","rf","ctx","ɵɵtext","ɵɵtemplate","PersonalInformationComponent_span_10_Template","PersonalInformationComponent_div_11_Template","ɵɵtextInterpolate","GivenName","FamilyName","ɵɵelement","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","p_r2","ɵɵadvance","ɵɵtextInterpolate1","FullNameWithUsername","ɵɵlistener","person_r5","ɵɵrestoreView","_r4","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","clickRemoveEscalationPerson","undefined","ɵɵtextInterpolate","text","ɵɵtemplate","PersonalAlertEscalationComponent_div_11_mat_option_8_Template","_r1","clickAddEscalationPerson","PersonalAlertEscalationComponent_div_11_div_16_Template","inputPerson","auto_r6","displayFn","ɵɵpipeBind1","filteredAssociatedPeople$","alternateEmailForwards","fadeSlide","trigger","transition","style","opacity","transform","animate","PersonalAlertEscalationComponent","constructor","signalRCore","dataService","router","dialogRef","data","isLoading","associatedPeople","global","Global","person","FullName","ngOnInit","initialize","User","isLoggedIn","SQLActionAsPromise","currentUser","Id","then","console","log","personRecord","first","setUpForm","navigate","peopleInOrganization","cache","people","filter","p","OrganizationId","value","index","self","map","x","indexOf","PersonId","length","forEach","item","find","ForwardToPersonId","push","splice","findIndex","FormControl","valueChanges","pipe","startWith","name","_filter","slice","filterValue","toLowerCase","option","includes","newPersonToAddId","statement","setValue","notifySpecificClient","SignalR","ClientId","personEmailForward","closeDialog","close","ɵɵdirectiveInject","SignalRCoreService","DataService","Router","MatDialogRef","MAT_DIALOG_DATA","selectors","decls","vars","consts","template","rf","ctx","PersonalAlertEscalationComponent_span_10_Template","PersonalAlertEscalationComponent_div_11_Template","GivenName","FamilyName","_c0","_c1","a0","BsDropdownConfig","__ngFactoryType__","ɵɵdefineInjectable","BsDropdownState","EventEmitter","resolve","DROPDOWN_ANIMATION_TIMING","dropdownAnimation","style","animate","BsDropdownContainerComponent","_state","cd","_renderer","_element","_builder","value","dropdown","el","ɵɵdirectiveInject","ChangeDetectorRef","Renderer2","ElementRef","AnimationBuilder","ɵɵdefineComponent","ɵɵProvidersFeature","ɵɵStandaloneFeature","rf","ctx","ɵɵprojectionDef","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","ɵɵclassProp","ɵɵproperty","ɵɵpureFunction1","NgClass","BsDropdownDirective","_elementRef","_viewContainerRef","_cis","_config","filter","dropdownMenu","_dropup","_placement","event","ref","firstActive","allRef","sub","isRightAligned","ViewContainerRef","ComponentLoaderFactory","ɵɵdefineDirective","ɵɵlistener","$event","BsDropdownModule","__ngFactoryType__","ɵɵdefineNgModule","ɵɵdefineInjector","coerceBooleanProperty","value","hasV8BreakIterator","Platform","_platformId","isPlatformBrowser","__ngFactoryType__","ɵɵinject","PLATFORM_ID","ɵɵdefineInjectable","InteractivityChecker","_platform","element","hasGeometry","frameElement","getFrameElement","getWindow","getTabIndexValue","nodeName","tabIndexValue","isPotentiallyTabbableIOS","config","isPotentiallyFocusable","__ngFactoryType__","ɵɵinject","Platform","ɵɵdefineInjectable","window","isNativeFormElement","isHiddenInput","isInputElement","isAnchorWithHref","isAnchorElement","hasValidTabIndex","tabIndex","inputType","node","FocusTrapManager","focusTrap","ft","stack","i","FocusTrap","value","_element","_checker","_ngZone","_document","deferAnchors","startAnchor","endAnchor","resolve","bound","markers","redirectToElement","focusableChild","root","children","tabbableChild","anchor","isEnabled","enabled","fn","take","FocusTrapFactory","deferCaptureElements","NgZone","DOCUMENT","FocusTrapDirective","coerceBooleanProperty","_elementRef","_focusTrapFactory","changes","autoCaptureChange","ɵɵdirectiveInject","ElementRef","ɵɵdefineDirective","ɵɵProvidersFeature","ɵɵNgOnChangesFeature","FocusTrapModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","_c0","BsModalRef","__ngFactoryType__","ɵɵdefineInjectable","ModalOptions","__ngFactoryType__","ɵɵdefineInjectable","modalConfigDefaults","MODAL_CONFIG_DEFAULT_OVERRIDE","InjectionToken","CLASS_NAME","TRANSITION_DURATIONS","DISMISS_REASONS","ModalBackdropComponent","value","CLASS_NAME","element","renderer","Utils","__ngFactoryType__","ɵɵdirectiveInject","ElementRef","Renderer2","ɵɵdefineComponent","ɵɵStandaloneFeature","rf","ctx","currentId","BsModalService","rendererFactory","clf","modalDefaultOption","EventEmitter","modalConfigDefaults","content","config","document","id","isBackdropEnabled","isBackdropInDOM","duration","modalLoader","provider","bsModalRef","BsModalRef","modalContainerRef","ModalOptions","ModalContainerComponent","newClass","indexToRemove","loader","reason","scrollDiv","scrollbarWidth","i","from","to","data","ɵɵinject","RendererFactory2","ComponentLoaderFactory","MODAL_CONFIG_DEFAULT_OVERRIDE","ɵɵdefineInjectable","options","_element","_renderer","event","clickedInBackdrop","ɵɵlistener","$event","ɵɵresolveWindow","ɵɵattribute","ɵɵProvidersFeature","_c0","ɵɵprojectionDef","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","ɵɵclassMap","FocusTrapDirective","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","ModalDirective","conf","_viewContainerRef","win","transitionComplete","callback","callbackRemove","otherOpenedModals","ViewContainerRef","ɵɵdefineDirective","ModalModule","PositioningService","ɵɵdefineNgModule","ɵɵdefineInjector","FocusTrapModule","CustomProgressbarDirective","constructor","el","styleEl","document","createElement","nativeElement","appendChild","ngAfterViewInit","updateColor","SavedColor","Global","User","MenuColor","innerText","ɵɵdirectiveInject","ElementRef","selectors","inputs","appProgressBarColor","ɵɵelement","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","securityService","openSnackBarMessage","broadcastMessage","ɵɵtext","ɵɵelementEnd","ɵɵproperty","Description","ɵɵadvance","ɵɵtextInterpolate1","Message","ɵɵtextInterpolate2","formattedTime","includes","hours","firstName","NavbarComponent","constructor","location","element","router","toastr","dataService","systemService","utilityService","dialog","securityService","global","Global","isCollapsed","sidebarColor","state","dashboardColor","changePasswordHasBeenRequested","countOfTrainingVideosUploaded","componentName","updateColor","themeChange$","subscribe","t","CompanyTinyLogoImage","User","DebugMode","console","log","ngOnInit","timestampInterval","setInterval","time","Date","formattedTime","moment","format","hours","parseInt","substring","firstName","currentUser","GivenName","companyTinyLogoChanged$","image","currentUserChanged$","checkBroadcastMessages","checkBroadcastMessagesInterval","window","addEventListener","navbar","nativeElement","toggleButton","getElementsByClassName","events","event","sidebarClose","FullDataCacheExists","determineIssuesNotification","fullDataCacheSubscription","fullDataCacheExists$","data","unsubscribe","issueNotificationCount","cache","userIssues","where","i","FamilyName","isAdmin","AssignedToUserId","Resolved","CreatorUserId","Id","NotifyCreatorUser","NotifyAssignedUser","toArray","length","initialCheck","isLoggedIn","Organization","currentDateMS","DateTimeInMilliseconds","SQLActionAsPromise","then","broadcastMessage","first","openSnackBarMessage","ngOnDestroy","removeEventListener","clearInterval","minimizeSidebar","showSidebarMessage","message","showToastMessageShared","type","title","override","timeOut","closeButton","enableHtml","toastClass","positionClass","getTitle","CurrentMenuItem","sidebarOpen","openDialog","innerWidth","open","UserSettingsComponent","width","height","afterClosed","result","navigate","IssuesComponent","PersonalInformationComponent","PersonalAlertEscalationComponent","AlertControlPanelComponent","openFileImageUploadWindow","service","entityId","entityType","sqlStatement","fileImageData","FileImageLibraryControlObject","imageKeys","filter","ImageKey","removeUploadFunction","deletedImageKey","deletedEntity","splice","addUploadFunction","newImageKey","newEntity","push","mode","listTitle","closeUploadWindowFunction","openFileUploadDialog","dialogRef","FileUploadListComponent","componentInstance","fileImageLibraryControlObject","getCountOfFilesUploaded","listOfFiles","CountOfFilesUploaded","sendPasswordToken","username","Username","RequestToResetPassword","body","email","sendAlertToUser","undefined","swal","fire","position","html","ɵɵdirectiveInject","Location","ElementRef","Router","ToastrService","DataService","SystemService","UtilityService","MatDialog","SecurityService","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","NavbarComponent_mat_progress_bar_0_Template","ɵɵelementStart","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵelement","ɵɵelementEnd","ɵɵtext","NavbarComponent_div_19_Template","NavbarComponent_a_23_Template","searchModal_r4","ɵɵreference","hide","ɵɵproperty","serverLoading","ɵɵadvance","ɵɵpureFunction2","_c0","ɵɵtextInterpolate1","menuNavbar_r5","ɵɵpropertyInterpolate","ɵɵsanitizeUrl","ɵɵpureFunction0","_c1","_c2","_c3","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵstyleProp","ctx_r0","global","isMobile","ɵɵtextInterpolate","displayContent","TopParsedMessage","GroupName","TagId","DateMS","Value","ɵɵtemplate","SignalRTestComponent_div_26_span_6_Template","SignalRTestComponent_div_26_span_7_Template","SignalRTestComponent_div_26_span_11_Template","SignalRTestComponent_div_26_span_12_Template","SignalRTestComponent_div_26_span_17_Template","SignalRTestComponent_div_26_span_18_Template","SignalRTestComponent_div_26_span_24_Template","SignalRTestComponent_div_26_span_25_Template","SignalRTestComponent_div_26_span_30_Template","SignalRTestComponent_div_26_span_31_Template","SignalRTestComponent_div_26_tr_34_Template","ɵɵproperty","BatchNumber","MessageCount","MessagesPerSecond","AverageMessagesPerBatch","ɵɵtextInterpolate1","item_r2","name","tagId","ɵɵelement","rawGridData","gridSettings","rawGridConnectedClients","gridSettingsForConnectedClients","rawGridUnknownMessages","gridSettingsForUnknownMessages","latestStatus","Code","ClientObject","SignalRTestComponent","constructor","formBuilder","signalRCore","dataService","dialogRef","numberOfTests","componentName","countOfObservations","signalRTestMessageGroups","Global","dbTransmitterTableWidth","signalRContainerWidth","startTime","performance","now","batchNumber","messageCount","joinedGroups","formattedTagIds","checkoutForm","group","state","skip","filter","logic","filters","take","columnsConfig","field","title","filterable","_width","minResizableWidth","tagIdsList","onResize","ngOnInit","SignalR","testInProgress","signalRTestInProgress$","next","screenWidth","broadcastMessages$","pipe","msg","code","subscribe","data","User","DebugMode","console","log","timeReceived","parseFloat","toFixed","totalTime","timeSent","err","startTest","startHub","ngOnDestroy","leaveGroups","hubConnection","startConnection","then","buildHubConnection","service","accessToken","currentUser","ODataAccessToken","receiveTimeMS","messagesPerSecond","options","accessTokenFactory","skipNegotiation","transport","HttpTransportType","WebSockets","withCredentials","HubConnectionBuilder","configureLogging","LogLevel","Information","withUrl","CoreUrl","withAutomaticReconnect","build","on","clientObject","callerConnectionId","groupName","push","clientId","date","Date","connectedClientsGrid","gridDataSubject","x","messageArray","batchMessage","split","last","includes","forEach","toString","count","averageMessagesPerBatch","messageList","select","a","ParseMessageContent","where","toArray","first","length","filteredMessageList","message","parseInt","parsedObject","Name","find","tagDataGrid","outofOrder","index","previousMessage","unknownMessagesGrid","e","Message","Promise","resolve","reject","HubConnectionState","Connected","Reconnecting","Connecting","start","mySignalRHubConnectionId","connectionId","onreconnecting","assert","onreconnected","joinGroups","onclose","catch","error","setTimeout","setInterval","skipNumber","takeNumber","collectedNumber","listOfTagNamePrefixesArray","cache","assets","asset","TagNamePrefix","listOfTagNamePrefixes","join","invoke","off","notifySpecificClient","ClientId","rawClientObject","dataArray","returnObject","closeDialog","close","restartTest","event","screenHeight","window","innerHeight","innerWidth","onSubmit","value","reset","ɵɵdirectiveInject","FormBuilder","SignalRCoreService","DataService","MatDialogRef","selectors","viewQuery","rf","ctx","ɵɵlistener","$event","ɵɵresolveWindow","SignalRTestComponent_div_26_Template","SignalRTestComponent_div_42_Template","SignalRTestComponent_lib_kendo_grid_parent_46_Template","SignalRTestComponent_lib_kendo_grid_parent_50_Template","SignalRTestComponent_lib_kendo_grid_parent_54_Template","SignalRTestComponent_div_55_Template","undefined","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","global","Data","footerDataSource","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","showSignalRTest","ɵɵtextInterpolate2","hubConnectionState","toLowerCase","SignalR","countOfObservations","undefined","signalRCore","hubConnection","state","signalRCounterIsNotNumeric","toString","ɵɵpipeBind3","_r3","FooterComponent","constructor","dataService","dialog","changeDetector","test","Date","Global","countOfSignalRObservations","testEnvironment","document","URL","indexOf","ngOnInit","environmentName","Application","Environment","Name","appVersion","Version","countOfSignalRObservations$","subscribe","barney","isNaN","hubConnectionState$","wait","ms","Promise","resolve","setTimeout","updateLocalCounter","__async","localCountOfSignalRMessages","open","SignalRTestComponent","width","height","position","right","hasBackdrop","disableClose","autoFocus","afterClosed","result","User","DebugMode","console","log","ɵɵdirectiveInject","SignalRCoreService","DataService","MatDialog","ChangeDetectorRef","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","FooterComponent_span_13_Template","FooterComponent_span_14_Template","FooterComponent_span_15_Template","ɵɵpipeBind2","ɵɵproperty","isAdmin","ɵɵelement","misc","sidebar_mini_active","LayoutComponent","constructor","router","toastr","securityService","dataService","utilityService","showNavbarButton","mainPanel","document","getElementsByClassName","navbarMinimize","documentElement","scrollTop","scrollingElement","style","opacity","ngOnInit","currentUserIsLoggedIn","navigate","currentUser","getCurrentUser","Global","User","DebugMode","console","log","checkUserLogin$","BehaviorSubject","isLoggedIn","subscribe","initializeSiteWithUserPreferences","sidebar","navigator","platform","indexOf","className","classList","remove","ps","PerfectScrollbar","tables","querySelectorAll","i","length","err","ngOnDestroy","unsubscribe","minimizeSidebar","toggleSidebarMini","showSidebarMessage","message","showToastMessageShared","type","title","override","timeOut","closeButton","enableHtml","toastClass","positionClass","ɵɵdirectiveInject","Router","ToastrService","SecurityService","DataService","UtilityService","selectors","hostBindings","rf","ctx","ɵɵlistener","$event","ɵɵresolveWindow","ɵɵelementStart","ɵɵelementEnd","ɵɵtemplate","LayoutComponent_app_footer_10_Template","ɵɵadvance","ɵɵproperty","url","import_lodash","import_sweetalert2","import_sweetalert2","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r3","ctx_r1","ɵɵnextContext","ɵɵresetView","submitForm","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","editQuestions","formOptions","ɵɵtext","_r1","closeDialogWindow","ɵɵelement","ɵɵtemplate","DashboardCopyComponent_div_0_div_11_Template","ɵɵtextInterpolate","title","subTitle","isLoading","DashboardCopyComponent","constructor","dialogRef","dashboard","dataService","utilityService","myControl","FormControl","swalWithBootstrapButtons","swal","mixin","customClass","confirmButton","cancelButton","buttonsStyling","ngOnInit","submitButtonText","saveValuesPerField","saveStoredProcedureName","Global","User","currentUser","Id","initialize","DebugMode","console","log","cache","people","setValue","GivenName","FamilyName","Username","FullDataCacheExists","fullDataCacheSubscription","fullDataCacheExists$","subscribe","data","unsubscribe","closeWindow","close","isLoggedIn","setUpDynamicFormQuestions","TextboxQuestion","key","label","type","setName","required","validateObject","allowBlankValue","order","value","visibleFields","field","operator","Name","Description","setUpForm","submittedValues","submittedValuesObject","JSON","parse","keys","Object","arrayOfUserIds","forEach","push","toString","listOfUserIds","join","singleCopyToCurrentLoggedInUser","firstOrDefault","id","length","fire","html","showCancelButton","confirmButtonText","cancelButtonText","reverseButtons","then","result","dismiss","DismissReason","cancel","showToastMessageShared","message","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","DataService","UtilityService","selectors","decls","vars","consts","template","rf","ctx","DashboardCopyComponent_div_0_Template","ɵɵelementStart","ɵɵlistener","dataItem_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","updateMenuItem","ɵɵelement","ɵɵelementEnd","openDashboardEdit","Id","openCopyDialog","onDelete","ɵɵproperty","ɵɵpureFunction1","_c0","tableRow","node","tagName","toLowerCase","closest","predicate","parentNode","DashboardListComponent","returned","Subject","constructor","dataService","dialog","router","toastr","utilityService","renderer","zone","updatingDashboardList","finishedWithUpdatingDashboardList","componentName","state","skip","subscribe","res","getDashboardListForUser","swalWithBootstrapButtons","swal","mixin","customClass","confirmButton","cancelButton","buttonsStyling","ngOnInit","ngAfterViewInit","currentSubscription","handleDragAndDrop","dataStateChange","gridData","process","dashboards","unsubscribe","onStable","pipe","take","rowCallback","context","dragging","dataItem","sub","Subscription","draggedItemIndex","tableRows","Array","from","document","querySelectorAll","forEach","item","setAttribute","dragStart","fromEvent","dragOver","dragEnd","add","tap","dataTransfer","dragImgEl","createElement","body","appendChild","setDragImage","setData","target","rowIndex","data","e","preventDefault","splice","dropIndex","dropItem","run","ordinalValue","countOfDashboards","newDashboardList","finishedWithUpdate","requestJSON","d","Ordinal","sqlStatement","addOrUpdateDashboardRecord","dashboardSQLObject","label","push","Global","User","DebugMode","console","log","SQLMultiAction","then","collections","collection","updateMenu","id","open","DashboardEditComponent","width","height","panelClass","afterClosed","result","deleteDashboard","dashboard","SQLActionAsPromise","buildDashboardAndDashboardObjectAfterEdit","setUserDashboardList","showToastMessageShared","type","message","Name","title","_","remove","n","DashboardCopyComponent","undefined","copyDashboard","listOfUserIds","currentUser","singleCopyToCurrentLoggedInUser","indexOf","currentUserIsPartOfCopyOperation","dataArray","Description","arrayOfUsersIds","split","userId","jsonObject","firstOrDefault","updatedDashboardList","setDashboardListForUser","Dashboards","dashboardList","SidebarComponent","dashboardUpdated$","next","needToBuildMenu","needToBuildMenu$","length","CurrentMenuItem","navigate","fire","html","IsTemplate","showCancelButton","confirmButtonText","cancelButtonText","reverseButtons","value","dismiss","DismissReason","cancel","ngOnDestroy","ɵɵdirectiveInject","DataService","MatDialog","Router","ToastrService","UtilityService","Renderer2","NgZone","selectors","decls","vars","consts","template","rf","ctx","ɵɵtext","$event","ɵɵtemplate","DashboardListComponent_ng_template_15_Template","ɵɵadvance","ɵɵstyleProp","DashboardDemoComponent","constructor","dialog","dataService","router","clicked","clicked1","clicked2","addNewDashboardModal","open","DashboardEditComponent","data","panelClass","afterClosed","subscribe","result","undefined","dashboardCreatedFromModal","Global","CurrentMenuItem","Name","navigate","Id","ɵɵdirectiveInject","MatDialog","DataService","Router","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵlistener","LocateAllGSEComponent","constructor","route","dataService","displaySetup","dialog","ref","gseService","toastr","mapDiv","zoomLevel","fullScreen","gseIdList","defaultLeftWidth","defaultRightWidth","ngAfterViewInit","isDataLoading","toggleZonesOnMap","locateAllGSEChild","ngOnDestroy","Global","User","DebugMode","console","log","ɵɵdirectiveInject","ActivatedRoute","DataService","DisplaySetupService","MatDialog","ChangeDetectorRef","GseService","ToastrService","selectors","viewQuery","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵelement","import_sweetalert2","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","passwordsMatch","ForgotPasswordComponent","constructor","activatedRoute","router","dataService","authenticationService","zone","cacheUtilityService","securityService","global","Global","newPassword","newPasswordConfirmation","url","window","origin","currentUserIsBeingAuthenticated","loginProcessLoading","currentUserIsLoggedIn","mouseoverLogin","ngOnInit","passwordToken","snapshot","paramMap","get","console","log","FormControl","Validators","required","resetPasswordForm","FormGroup","setupResetPasswordForm","ngOnDestroy","User","DebugMode","removeResetPasswordForm","authenticationSubscription$","unsubscribe","activatedRoute$","document","getElementsByTagName","classList","add","remove","validateNewPassword","valid","untouched","validateNewPasswordConfirmation","value","resetPassword","formValues","ChangePassword","then","data","userRecord","body","first","sendAlertToUser","Email","username","time0","performance","now","loginWithUsernameAndPassword","Username","accessToken","time","processLoggedInUser","invalidPasswordAlert","err","message","navigate","email","swal","fire","title","position","html","text","ɵɵdirectiveInject","ActivatedRoute","Router","DataService","AuthenticationService","NgZone","CacheUtilityService","SecurityService","selectors","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵlistener","ɵɵtemplate","ForgotPasswordComponent_div_20_Template","ɵɵproperty","imagesUrl","ɵɵsanitizeUrl","ɵɵpropertyInterpolate1","invalid","externalUrlProvider","InjectionToken","AuthGuard","constructor","securityService","router","canActivate","route","state","externalUrl","paramMap","get","window","open","error","console","log","checkLoggedIn","url","Global","User","isLoggedIn","passwordToken","redirectUrl","navigate","ɵɵinject","SecurityService","Router","factory","ɵfac","providedIn","import_sweetalert2","ɵɵelement","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtemplate","RegistrationComponent_div_8_div_12_small_1_Template","ɵɵadvance","ɵɵproperty","ctx_r1","firstName","hasError","RegistrationComponent_div_8_div_20_small_1_Template","lastName","RegistrationComponent_div_8_div_28_small_1_Template","emailAddress","RegistrationComponent_div_8_div_36_small_1_Template","claimedOrganization","RegistrationComponent_div_8_div_44_small_1_Template","mobilePhone","ɵɵlistener","ɵɵrestoreView","_r1","ɵɵnextContext","ɵɵresetView","register","registrationForm","value","RegistrationComponent_div_8_div_12_Template","RegistrationComponent_div_8_div_20_Template","RegistrationComponent_div_8_div_28_Template","RegistrationComponent_div_8_div_36_Template","RegistrationComponent_div_8_div_44_Template","cancel","ɵɵpropertyInterpolate","validateFirstName","mouseoverRegistration","invalid","touched","dirty","validateLastName","validateEmailAddress","validateOrganization","validateMobilePhone","ɵɵtextInterpolate","RegistrationComponent","constructor","dataService","router","global","Global","emailPattern","mobilePhonePattern","isLoading","isFormLoading","dashboardColor","isCollapsed","darkTheme","lastSliderSelection","selectedColor","sidebarMini","ngOnInit","initialize","FormControl","Validators","required","noWhitespaceValidator","pattern","setUpForm","FormGroup","control","trim","length","values","User","isRequestingAccount","console","log","paramString","RequestUserAccount","then","data","body","sendNotificationToUser","navigate","valid","untouched","checkForEmptyEmailAddress","swal","fire","title","position","html","showCancelButton","confirmButtonColor","cancelButtonColor","confirmButtonText","reverseButtons","result","ɵɵdirectiveInject","DataService","Router","selectors","decls","vars","consts","template","rf","ctx","RegistrationComponent_span_7_Template","RegistrationComponent_div_8_Template","imagesUrl","ɵɵsanitizeUrl","HomeComponent","constructor","router","ngOnInit","console","log","Global","User","isLoggedIn","isBeingAuthenticated","navigate","currentUser","Dashboards","Id","CurrentMenuItem","ɵɵdirectiveInject","Router","selectors","decls","vars","template","rf","ctx","jQuery","import_telerikReportViewer","_c0","TelerikReportViewerComponent","rs","vm","scale","token","keyMap","eventName","eventHandler","psm","t","ɵɵdefineComponent","rf","ctx","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵattribute","NgStyle","TelerikReportingModule","t","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵstyleProp","ɵɵadvance","ɵɵlistener","report_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","execute","ɵɵelement","global","Theme","ɵɵtemplate","CustomerReportsComponent_div_1_div_7_ng_template_7_Template","ɵɵproperty","gridViewReports","groups","CustomerReportsComponent_div_1_div_6_Template","CustomerReportsComponent_div_1_div_7_Template","Data","footerDataSource","customerReportsLoading","_r4","reportList","ɵɵtextInterpolate","currentReportName","viewerContainerStyle","ɵɵpureFunction0","_c0","reportSourceObject","authenticationToken","CustomerReportsComponent","constructor","http","dataService","position","width","height","Global","state","skip","reportsState","viewReportsList","displayReport","field","report","CategoryName","Name","parameters","accessToken","User","currentUser","ODataAccessToken","console","log","refresh","ngOnInit","httpOptions","headers","HttpHeaders","Authorization","observe","reponseType","withCredentials","http$","post","toPromise","then","data","httpGetHeaders","body","access_token","httpGetOptions","get","categories","statement","Username","SQLActionAsPromise","userReportCategories","forEach","category","push","reports","find","Id","CategoryId","filter","indexOf","process","group","ɵɵdirectiveInject","HttpClient","DataService","selectors","decls","vars","consts","template","rf","ctx","CustomerReportsComponent_div_1_Template","CustomerReportsComponent_div_2_Template","import_moment","import_sweetalert2","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","onInput","ɵɵelementEnd","item_r4","_r3","$implicit","itemElement_r5","ɵɵreference","onSelectionChange","valueAccessor","onFocus","ɵɵtext","ɵɵproperty","ɵɵpureFunction1","_c0","isItemSelected","ɵɵadvance","ɵɵpropertyInterpolate1","ɵɵtextInterpolate1","textAccessor","MulticheckFilterComponent","constructor","valueChange","EventEmitter","showFilter","value","dataItem","isPrimitive","textField","valueField","ngAfterViewInit","currentData","data","currentFilter","filters","map","f","item","some","x","li","filter","push","filterService","field","operator","logic","e","distinct","val","filterBy","target","ul","parentNode","below","scrollTop","offsetHeight","offsetTop","above","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","MulticheckFilterComponent_li_1_Template","MulticheckFilterComponent_li_2_Template","ɵɵelement","ɵɵproperty","ɵɵelementStart","ɵɵlistener","service_r4","ɵɵrestoreView","_r3","service","ctx_r1","ɵɵnextContext","filterChange","logic","filters","ɵɵresetView","close","ɵɵelementEnd","ɵɵadvance","column_r5","field","filterService_r7","filter_r6","distinctPrimitive","column_r8","filterService_r10","filter_r9","report_r12","_r11","$implicit","execute","edit","delete","ɵɵtext","_r1","$event","sortChangeReports","pageChangeReports","filterChangeReports","ɵɵtemplate","AdminReportsComponent_div_2_ng_template_15_Template","AdminReportsComponent_div_2_ng_template_18_Template","AdminReportsComponent_div_2_ng_template_20_Template","AdminReportsComponent_div_2_ng_template_26_Template","ɵɵstyleProp","gridViewReports","filterT","reportsState","sort","service_r15","_r14","ɵɵpropertyInterpolate","header_r16","name","_r13","reportList","pageChange","sortChange","AdminReportsComponent_div_3_ng_template_14_Template","AdminReportsComponent_div_3_ng_template_15_Template","AdminReportsComponent_div_3_kendo_grid_column_16_Template","ɵɵtextInterpolate","selectedReport","ReportName","gridView","state","filter","reportHeader","ɵɵpropertyInterpolate1","_r17","submitParametersAndExecute","parameterQuestions","executeFormOptions","_r19","submitEditedReport","editQuestions","editFormOptions","AdminReportsComponent_div_5_span_6_Template","_r18","AdminReportsComponent_div_5_div_13_Template","AdminReportsComponent_div_5_div_14_Template","ɵɵtextInterpolate1","editHeader","editSubHeader","addingNewReport","newStoredProceduresExist","AdminReportsComponent","constructor","dataService","formBuilder","toastr","utilityService","viewReportsList","editingReport","enterExecuteParameters","executingReport","deletingReport","displayReport","permittedSites","Global","User","PermittedSites","today","Date","loadingEditForm","isLoadingParameters","parameterListAsString","isLoading","parameterCount","payLoad","skip","reportsSkip","pageSize","pageSizeReports","ngOnInit","yesterday","getYesterdaysDate","console","log","SQLActionAsPromise","then","data","reports","process","editReportFormGroup","FormGroup","storedProcedure","FormControl","fieldName","distinct","map","item","event","take","reportData","days","date","last","getTime","getLatestReportsList","report","editFieldsAndValues","submitButtonText","cancelButtonText","length","selectedStoredProcedure","first","d","ObjectId","storedProcedureList","optionsList","forEach","sp","obj","key","value","Name","push","DropdownQuestion","label","selected","options","order","category","ReadOnlyQuestion","Category","reportName","createdBy","CreatedBy","moment","CreationDate","format","lastModifiedBy","LastModifiedBy","LastModifiedDate","parameterList","submittedValues","submittedValuesObject","JSON","parse","keys","Object","countOfParameters","questions","question","controlType","isNaN","newParameterListAsString","replace","currentUser","Id","swalWithBootstrapButtons","swal","mixin","customClass","confirmButton","cancelButton","buttonsStyling","fire","title","text","showCancelButton","confirmButtonText","reverseButtons","result","showToastMessageShared","type","message","executeFieldsAndValues","indexOf","UibButtonQuestion","DisplayName","listOfValues","cache","sites","required","IsRequired","Type","DateQuestion","DefaultValue","NumberQuestion","TextboxQuestion","runStoredProcedure","refresh","dataSource","MatTableDataSource","sqlString","StoredProcedureName","returnedData","fieldNames","row","record","propertyName","split","where","f","select","outputObject","toArray","displayedColumns","column","filteredData","selectSite","site","selectedSite","applyFilter","filterValue","trim","toLowerCase","ɵɵdirectiveInject","DataService","FormBuilder","ToastrService","UtilityService","selectors","viewQuery","rf","ctx","MatSort","AdminReportsComponent_lib_loading_spinner_1_Template","AdminReportsComponent_div_2_Template","AdminReportsComponent_div_3_Template","AdminReportsComponent_div_4_Template","AdminReportsComponent_div_5_Template","import_sweetalert2","import_jquery","ɵɵelement","ɵɵproperty","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r1","issuesListTitle","ɵɵtextInterpolate","currentLoggedInUserDisplay","ɵɵlistener","service_r4","ɵɵrestoreView","_r3","service","ɵɵnextContext","filterChangeIssues","logic","filters","ɵɵresetView","close","ɵɵpipeBind2","dataItem_r5","column_r6","field","ɵɵtemplate","CustomerIssuesListComponent_div_2_kendo_grid_column_12_1_ng_template_0_Template","CustomerIssuesListComponent_div_2_kendo_grid_column_12_2_ng_template_0_mat_icon_0_Template","CustomerIssuesListComponent_div_2_kendo_grid_column_12_2_ng_template_0_mat_icon_1_Template","dataItem_r7","Resolved","CustomerIssuesListComponent_div_2_kendo_grid_column_12_2_ng_template_0_Template","dataItem_r9","_r8","$implicit","navigate","Id","CustomerIssuesListComponent_div_2_kendo_grid_column_12_3_ng_template_0_kendo_badge_6_Template","ɵɵpropertyInterpolate1","DiscussionCount","ɵɵpureFunction1","_c2","CreatorUserId","global","User","currentUser","NotifyCreatorUser","AssignedToUserId","NotifyAssignedUser","CountOfFilesUploaded","CustomerIssuesListComponent_div_2_kendo_grid_column_12_3_ng_template_0_Template","CustomerIssuesListComponent_div_2_kendo_grid_column_12_1_Template","CustomerIssuesListComponent_div_2_kendo_grid_column_12_2_Template","CustomerIssuesListComponent_div_2_kendo_grid_column_12_3_Template","ɵɵpropertyInterpolate","title","_width","minResizableWidth","filter","hidden","locked","ɵɵpureFunction0","_c3","CustomerIssuesListComponent_div_2_h3_3_Template","CustomerIssuesListComponent_div_2_h3_4_Template","_r1","$event","pageChangeIssues","groupChangeIssues","sortChangeIssues","CustomerIssuesListComponent_div_2_ng_template_11_Template","CustomerIssuesListComponent_div_2_kendo_grid_column_12_Template","CustomerIssuesListComponent_div_2_ng_template_13_Template","ɵɵstyleProp","isMobile","isAdmin","gridViewIssues","issuesGridSettings","state","group","skip","sort","sortSettings","_c1","take","columnsConfig","CustomerIssuesListComponent","constructor","dataService","formBuilder","toastr","signalRCore","changeDetector","dialog","utilityService","router","viewIssuesList","editingIssue","enterExecuteParameters","executingIssue","deletingIssue","displayIssue","permittedSites","Global","PermittedSites","today","Date","addingNewIssue","loadingEditForm","isLoadingParameters","parameterListAsString","isLoading","parameterCount","payLoad","issuesSkip","pageSize","pageSizeIssues","popupTitle","issuesState","subjects","componentName","myControl","FormControl","GivenName","FamilyName","Username","isLoadingEditScreen","filterable","mode","initialDirection","allowUnsort","showIndexes","discussionGridSettings","encoded","ngOnInit","updateCurrentMenuItem","dir","SQLActionAsPromise","then","data","AdminDevelopmentTeam","DebugMode","console","log","yesterday","getYesterdaysDate","editIssueFormGroup","FormGroup","subject","description","createdBy","resolved","discussionIssueFormGroup","response","whereToGo","whereToGoUrl","groups","process","cache","userIssues","ngAfterViewInit","listOfPeople","people","currentUserOrganizationId","p","UserId","OrganizationId","filteredPeople","valueChanges","pipe","startWith","map","value","peopleFilter","issueUpdated$","broadcastMessages$","msg","code","subscribe","object","discussionUpdated$","updatedCurrentlyEditingIssue","first","i","UserIssueId","currentlyEditingIssueId","newDiscussionId","d","existingDiscussionContainingSignalRDiscussionRecord","discussion","where","disc","toArray","length","getIssueDiscussion","issueAdded$","FullDataCacheExists","Theme","theme","getLatestIssuesList","fullDataCache$","fullDataCacheExists$","unsubscribe","ngOnDestroy","listUpdated$","fetchData","Observable","observer","next","filterValue","toLowerCase","x","FullNameWithUsername","option","undefined","includes","distinctPrimitive","fieldName","pageChange","event","gridView","issueData","filterT","filterChange","sortChange","days","date","last","getTime","userIssueSubjects","issuesGridViewChild","collapseGroup","issue","lastDiscussion","gridData","forEach","DateMS","Comments","stringToHTML","push","newDiscussionList","orderByDescending","$","trigger","detectChanges","textString","parser","DOMParser","doc","parseFromString","text","body","innerHTML","returnText","split","join","warningFunctionWhenReopeningAnIssue","resolvedStatus","issueId","swalWithBootstrapButtons","swal","mixin","customClass","confirmButton","cancelButton","buttonsStyling","userIssuesObject","fire","html","showCancelButton","confirmButtonText","cancelButtonText","reverseButtons","result","showToastMessageShared","type","message","notifyOtherClientsInGroup","issueList","requestJSON","label","sqlStatement","SQLMultiAction","ODataAccessToken","submitEditedIssue","submittedValues","submittedValuesObject","JSON","parse","keys","Object","countOfParameters","key","questions","editQuestions","question","controlType","isNaN","updateStringToSQLSyntax","newParameterListAsString","replace","submitResponse","editFormOptions","saveStoredProcedureName","newDiscussion","controls","sql","reset","updateRowColor","context","recentlyUpdated","dataItem","RecentlyUpdated","refresh","selectSite","site","selectedSite","applyFilter","trim","dataSource","setFileImageUploadSettings","entityId","entityType","openFileImageUploadWindow","fileImageData","FileImageLibraryControlObject","imageKeys","ImageKey","removeUploadFunction","deletedImageKey","remainingFileImageKeyList","addUploadFunction","newImageKey","updatedFileImageKeyList","listTitle","closeUploadWindowFunction","openDialog","innerWidth","window","dialogRef","open","FileUploadListComponent","width","height","componentInstance","fileImageLibraryControlObject","afterClosed","ɵɵdirectiveInject","DataService","FormBuilder","ToastrService","SignalRCoreService","ChangeDetectorRef","MatDialog","UtilityService","Router","selectors","viewQuery","rf","ctx","MatSort","CustomerIssuesListComponent_lib_loading_spinner_1_Template","CustomerIssuesListComponent_div_2_Template","ɵɵelementStart","ɵɵlistener","child_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","selectEntity","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","label","ɵɵtemplate","SystemTablesComponent_div_6_li_2_div_1_li_4_Template","item_r4","ɵɵproperty","children","_r5","SystemTablesComponent_div_6_li_2_div_1_Template","SystemTablesComponent_div_6_li_2_div_2_Template","SystemTablesComponent_div_6_li_2_Template","ɵɵclassMapInterpolate1","columns","length","column_r6","items","SystemTablesComponent","constructor","dataService","changeDetector","router","signalR","global","Global","componentName","ngOnInit","initialize","ngOnDestroy","systemTableList","AdminTableEditorStates","orderBy","tableEntry","toArray","typeOfAdmin","User","isAdmin","isOrgAdmin","isSiteAdmin","isRockstar","currentUser","Rockstar","listOfPermittedTablesToEdit","forEach","authorizedRolesArray","role","split","authorizedPrivilegesArray","privilege","undefined","existingEntry","firstOrDefault","arrayEntry","setName","push","tablePrivilege","Menu","Privileges","parentTableEntry","childEntries","child","countOfSystemTables","arrayOfChildRecords","where","item","countOfGroups","splitCount","counter","DebugMode","console","log","count","column","select","systemTableStructure","LogActivity","checkAuthorization","isAuthorized","validatingUserAccess","navigate","then","data","catch","e","openTableEditor","ɵɵdirectiveInject","DataService","ChangeDetectorRef","Router","SignalRCoreService","selectors","decls","vars","consts","template","rf","ctx","SystemTablesComponent_div_6_Template","ɵɵstyleProp","Theme","import_lodash","import_sweetalert2","import_moment","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r3","ctx_r1","ɵɵnextContext","ɵɵresetView","editRecord","type","ɵɵelementEnd","ɵɵadvance","ɵɵpropertyInterpolate1","currentSet","tableDisplay","entityName","_r4","downloadList","ɵɵproperty","isLoadingList","_r5","updateTags","ɵɵtext","ɵɵstyleProp","column_r6","widthUnits","width","title","ɵɵtextInterpolate","label","ɵɵelement","ɵɵtextInterpolate1","row_r9","column_r8","name","value","$event","_r10","$implicit","openInNewWindow","linkName","_r11","goToSet","ɵɵtextInterpolate2","countOfRecordsField","countOfRecordsFieldLabel","buttonLabelField","additionalLabelField","ɵɵtemplate","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_3_div_1_div_1_div_1_button_1_Template","showButtonField","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_3_div_1_div_1_div_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_3_div_1_div_1_div_2_Template","allowModification","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_3_div_1_div_1_Template","_r12","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_3_div_2_button_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_3_div_2_div_2_Template","_r13","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_3_div_3_button_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_3_div_3_div_2_Template","_r14","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_3_div_4_button_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_3_div_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_3_div_2_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_3_div_3_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_3_div_4_Template","_r15","sendChangePasswordToken","field","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_4_div_1_div_1_button_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_4_div_1_div_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_4_div_1_div_2_Template","_r16","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_4_div_2_button_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_4_div_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_4_div_2_Template","_r17","logInAs","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_5_button_1_Template","ɵɵpipeBind2","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_6_div_2_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_7_div_2_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_11_div_2_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_11_div_3_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_11_div_4_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_12_div_1_div_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_12_div_1_div_2_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_12_div_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_12_div_2_Template","ɵɵpropertyInterpolate","fileImage","iconFile","ɵɵsanitizeUrl","thumbnailImage","thumbnailUrl","_r18","viewFile","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_13_div_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_13_div_2_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_13_div_3_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_15_div_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_15_div_2_Template","ɵɵpipeBind1","_r19","ctx_r19","i_r21","index","row","event","indexReference","_r22","copyRecord","_r23","deleteRecord","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_17_div_1_button_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_17_div_1_div_2_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_17_div_1_button_3_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_17_div_1_div_4_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_17_div_1_button_5_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_17_div_1_div_6_Template","allowCopy","allowDelete","_r24","openFileImageUploadWindow","countOfFilesUploaded","ɵɵpureFunction1","_c2","_r25","_r26","_r27","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_17_div_2_button_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_17_div_2_button_2_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_17_div_2_button_3_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_17_div_2_button_4_Template","hasFileImageTable","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_17_div_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_17_div_2_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_1_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_2_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_3_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_4_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_5_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_6_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_7_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_8_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_9_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_10_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_11_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_12_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_13_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_14_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_15_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_16_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_div_17_Template","selectedRecursiveSet","ɵɵelementContainerStart","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_ng_container_5_td_2_Template","columnName_r28","rdnRecursionSet","containingDivId","trElement","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_td_4_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_ng_container_5_Template","ɵɵpureFunction3","_c1","currentIndex","allowDragAndDrop","visibleColumns","recursiveSetColumnNamesForThisInstance","_r7","drop","currentSetData","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_tr_1_Template","_c0","_r1","searchForText","RecursiveDataNavigatorComponent_div_0_table_1_div_5_Template","RecursiveDataNavigatorComponent_div_0_table_1_div_6_Template","RecursiveDataNavigatorComponent_div_0_table_1_div_7_Template","RecursiveDataNavigatorComponent_div_0_table_1_th_10_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_11_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_12_Template","RecursiveDataNavigatorComponent_div_0_table_1_tbody_13_Template","currentSetDataCountOfRecords","searchText","allowAddRecord","allowDownloadList","allowCreateTagsForAsset","RecursiveDataNavigatorComponent_div_0_table_1_Template","currentStatus","_r29","backToList","reloadRDNQuestions","submitEditForm","editFormTitle","editor","fields","editFormOptions","HasDynamicProperties","RecursiveDataNavigatorComponent_div_1_div_1_Template","loadingEditForm","RecursiveDataNavigatorComponent","constructor","dataService","rdnService","toastr","securityService","sanitizer","utilityService","dialog","authenticationService","signalR","global","Global","showEditPane","fileImageUploadEnabled","componentName","numberOfColumns","min","Date","max","currentStatus$","BehaviorSubject","currentUserAccessToken","User","currentUser","ODataAccessToken","currentUserIsAdmin","isAdmin","videoKeyURL","Video","serverArchiveUrl","accessToken","downloadSet","iconmenu","gseAssetTypeIds","fleetAssetTypeIds","myForm","FormGroup","birthDate","FormControl","fullDataCacheExists","_","debounce","ngOnInit","currentUser$","next","getCurrentUserODataAccessToken","DebugMode","console","log","FullDataCacheExists","initialize","fullDataCacheSubscription","fullDataCacheExists$","subscribe","data","unsubscribe","structure","setTimeout","document","getElementById","scrollIntoView","behavior","block","inline","options","currentChildColumnLink","childColumnLink","currentChildColumnLinkValue","childColumnLinkValue","requestedSetName","setName","firstOrDefault","s","sets","set","Name","originalSQLStoredProcedure","sqlStoredProcedure","ParameterValue","RDN","recursedSets","LogActivity","length","disableAddRecord","disableAddRecordOutsideRecursedSet","disableAddRecordInsideRecursedSet","displayColumns","where","col","columnShouldBeVisible","hidden","role","toArray","dataCacheCollection","formatDataCacheCollection","apiUrl","service","url","CallThingMethod","then","formatData","buildStoredProcedureString","expandedStoredProcedure","tableName","orderBy","sortOrder","column","take","editingForm$","editingForm","Username","fieldList","c","select","join","listFilter","parameterForStoredProcedure","trueParameter","indexOf","parameters","numberOfParameters","countOfParameters","forEach","parameter","Value","isDate","moment","ConvertDateTimeToUTCDateTimeAndFormatForSQLParameter","mainStoredProcedure","executeStoredProcedure","latestFullStoredProcedureString","SQLActionAsPromise","error","swal","fire","message","formatType","downloadFieldsExist","downloadRowString","countOfDownloadFields","originalRow","download","columnValue","plusSignDelimiter","replace","split","slice","substring","currentContainingDivId","maxId","parentColumnLink","recursiveSet","push","parameterListWithValues","parameterWithValue","storedProcedureRecursiveSet","imageKey","filename","fileExtension","toLowerCase","imagesUrl","isVideoServerImage","videoServerFilename","thumbnailBase64","bypassSecurityTrustResourceUrl","viewUrl","encodeURIComponent","imageKeyURL","listOfValidSites","csd","PermittedSites","site","Id","Role","Administrator","rowFieldData","stopPropagation","preventDefault","username","RequestToResetPassword","body","email","first","sendAlertToUser","undefined","position","html","sql","currentAdminUser","localStorage","removeItem","Menu","Privilege","isOrgAdmin","isSiteAdmin","isLoggedIn","needToBuildMenu","SignalR","ListOfTagNamePrefixes","ListOfAdditionalSignalRGroups","stopHub","logInAsDifferentUser","AdminLogInAsToken","parsedSearchText","trim","window","open","focus","CancelEdit","entity","editModel","standaloneShow","swalWithBootstrapButtons","mixin","customClass","confirmButton","cancelButton","buttonsStyling","showCancelButton","confirmButtonText","cancelButtonText","reverseButtons","result","countOfNewTags","CountOfNewTags","countOfUpdatedTags","CountOfUpdatedTags","showToastMessageShared","dismiss","DismissReason","cancel","entityDisplayName","downloadDatasetAsExcelSpreadsheet","element","createElement","href","URL","createObjectURL","appendChild","click","editQuestions","editRecordObject","cX","clientX","screenX","cY","clientY","screenY","coords1","coords2","currentXPosition","currentYPosition","submitButtonText","saveValuesPerField","saveApiUrl","saveStoredProcedureName","deleteApiUrl","allowAddNewQuestion","key","currentlyEditedRecord","editApiUrl","getEditValuesFromList","item","properties","buildEditFormFields","editStoredProcedureName","parentKeyField","visible","buttonList","listValue","listLookupField","listLookupValue","listOfValues","listItem","visibleProperties","property","isHidden","definedPropertyInRDN","formatDefinedField","propertyNameDisplay","newBooleanField","SliderYesNoQuestion","order","isDynamicProperty","newTextField","TextboxQuestion","required","fieldsDefinedInRDNButNotInPropertiesList","controlType","editRecordLegacy","nameOfRecord","sqlStoredProcedureForDelete","deleteStoredProcedure","d","ErrorMessage","successful","SuccessfulMessage","copyStoredProcedure","errorMessage","submittedValues","submittedValuesObject","JSON","parse","keys","Object","displayFieldListArray","displayFieldList","questions","fieldListArray","question","fieldValuesArray","fieldValues","idFieldValue","format","isNaN","newParameterListAsString","submittedValuesAsString","parameterListAsString","IsSelected","vals","substr","possibleErrorMessage","actualErrorMessage","intHSize","screen","availWidth","intVSize","availHeight","intTop","intLeft","sngWindow_Size_Percentage","strFeatures","SRWindow","list","moveItemInArray","previousIndex","ordinalValue","countOfItemsInList","newList","finishedWithUpdate","requestJSON","Ordinal","sqlStatement","listSQLObject","SQLMultiAction","collections","collection","entityType","entityId","fileImageData","FileImageLibraryControlObject","imageKeys","filter","i","ImageKey","removeUploadFunction","deletedImageKey","deletedEntity","splice","addUploadFunction","newImageKey","newEntity","mode","listTitle","closeUploadWindowFunction","openFileUploadDialog","innerWidth","dialogRef","FileUploadListComponent","height","componentInstance","fileImageLibraryControlObject","afterClosed","getCountOfFilesUploaded","listOfFiles","CountOfFilesUploaded","ɵɵdirectiveInject","DataService","RecursiveDataNavigatorService","ToastrService","SecurityService","DomSanitizer","UtilityService","MatDialog","AuthenticationService","SignalRCoreService","selectors","inputs","decls","vars","consts","template","rf","ctx","RecursiveDataNavigatorComponent_div_0_Template","RecursiveDataNavigatorComponent_div_1_Template","CurrencyPipe","DatePipe","styles","ɵɵelement","ɵɵproperty","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","backToSystemTableList","ɵɵadvance","ɵɵpipeBind1","rdnService","editingForm$","global","RDN","editingForm","ɵɵtextInterpolate","selectedEntity","label","RdnDestinationComponent","constructor","activatedRoute","router","utilityService","isLoading","Global","ngOnInit","setName","snapshot","paramMap","get","requestedRDNSet","AdminTableEditorStates","firstOrDefault","set","User","DebugMode","console","log","rdnSet","structure","s","sets","Name","returnToSystemTableListAndShowToasterMessage","arrayOfGroupingsWithChildRecords","where","tableEntry","children","undefined","toArray","length","childSet","forEach","group","navigate","showToastMessageShared","type","message","title","ɵɵdirectiveInject","ActivatedRoute","Router","RecursiveDataNavigatorService","UtilityService","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","RdnDestinationComponent_lib_loading_spinner_1_Template","RdnDestinationComponent_div_2_Template","GoToV1Component","constructor","ngOnInit","console","log","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","import_lodash","ɵɵelement","ɵɵproperty","ɵɵstyleProp","ctx_r0","tableData","grid","gridSettings","ɵɵelementStart","ɵɵtemplate","NinjaStatisticsContentComponent_div_11_lib_kendo_grid_parent_1_Template","ɵɵelementEnd","ɵɵadvance","undefined","NinjaStatisticsContentComponent","constructor","dataService","zone","signalRCore","Highcharts","style","global","Global","gridData","name","keepLast50Group","FormGroup","keepLast50","FormControl","title","data","chartData","state","skip","filter","logic","filters","take","columnsConfig","seriesArray","AverageObservationsPerSecondChartData","DeletionQueueLengthChartData","ObservationInsertQueueLengthChartData","PausedChartData","TagStructureQueueLengthChartData","isLoading","rowHeight","gridLineColor","axisItemColor","chartBackgroundColor","chartHasBeenDrawn","componentName","ngAfterViewInit","parentSystemToJoin","FullDataCacheExists","initialize","fullDataCacheSubscription","fullDataCacheExists$","subscribe","unsubscribe","User","DebugMode","console","log","colorChangedSubscription","colorChanged$","CreateTheme","setupAndDeployChart","Theme","GetAllSignalRObservationFormattedTagsForAssetIdIntoInventory","assetObjectInCache","cache","assetsObject","widgetGroupSettings","WidgetId","GroupList","ParentSystemId","IsPopup","dt","Date","tableDataInsert","Tags","forEach","tag","removeNonTrendableTags","JBTStandardObservation","tagObject","tagId","TagId","Name","push","getTime","parseInt","Value","field","filterable","_width","hidden","evaluateIfSeriesShouldBeShownAtStartUp","trueDateObject","setupSubscriberForNinjaStatistics","broadcastMessages$","pipe","msg","groupName","includes","signalRData","insertRecordsIntoCharts","theme","chartLabelColors","records","seriesIndex","findIndex","series","dataUpdate","unshift","themeChanged","chartOptions","chart","backgroundColor","fontFamily","color","sassHelper","readProperty","accessibility","enabled","time","useUTC","plotOptions","events","legendItemClick","foundIndex","column","target","visible","tagDataGrid","gridDataSubject","next","legend","itemStyle","credits","rangeSelector","exporting","labels","tooltip","pointFormatter","uToFixed","number","fractionSize","fixedNumberAsString","Math","round","toString","indexOf","tToFixed","returnNumber","options","isDigital","y","valueDecimals","split","shared","followPointer","runOutsideAngular","stockChart","currentSeries","index","hide","length","setData","listOfTagsToIgnoreByShortName","ShortTagName","seriesOrTagObject","tabHasChanged","event","NinjaUpdateInterval","setInterval","onResized","eventDataPageSize","floor","height","ngOnDestroy","clearTimeout","_","isNil","ɵɵdirectiveInject","DataService","NgZone","SignalRCoreService","selectors","viewQuery","rf","ctx","SassHelperComponent","ɵɵlistener","$event","NinjaStatisticsContentComponent_lib_loading_spinner_3_Template","NinjaStatisticsContentComponent_div_11_Template","isMobile","NinjaStatisticsComponent","ngAfterViewInit","selectors","decls","vars","template","rf","ctx","ɵɵelement","import_moment","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","onSubmit","ɵɵtext","ɵɵelementEnd","clearFormWhenChangingDate","ɵɵelement","ɵɵproperty","form","ɵɵadvance","controls","value","PotdComponent","constructor","utilityService","http","dataService","submittedValues","EventEmitter","webAPIResponse","processingForm","payLoad","componentName","httpPost","datetimeString","httpOptions","headers","HttpHeaders","Authorization","Global","User","currentUser","ODataAccessToken","DebugMode","console","log","Data","dataServerIsLocal","post","potdUrl","toPromise","ngOnInit","currentDate","moment","Date","format","formOptions","submitButtonText","functionToExecute","submitParametersAndExecute","FormGroup","FormControl","Password","disabled","JetwayAccess","setValue","submittedValuesObject","JSON","parse","dateSelected","time0","performance","now","then","dataSentBackFromWebApi","time","potd","passwordValue","jetwayAccessValue","LogEvent","reset","submitButtonPressed","getRawValue","field","control","get","isDate","DateTimeInMilliseconds","stringify","emit","ɵɵdirectiveInject","UtilityService","HttpClient","DataService","selectors","outputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","PotdComponent_form_9_Template","ɵɵtext","ɵɵtextInterpolate1","rowIndex_r1","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","dataItem_r3","ɵɵnextContext","$implicit","ctx_r3","ɵɵresetView","loadVideo","ɵɵelement","ɵɵelementEnd","ɵɵtemplate","TrainingLessonsComponent_ng_template_6_button_1_Template","ɵɵadvance","ɵɵproperty","viewUrl","TrainingLessonsComponent","constructor","dataService","gridSettings","state","skip","filter","logic","filters","columnsConfig","videoKeyURL","Global","Video","serverArchiveUrl","accessToken","User","currentUser","ODataAccessToken","ngAfterViewInit","isLoading","console","log","category","sql","Id","SQLActionAsPromise","then","dataObject","forEach","element","VideoServerFilename","encodeURIComponent","gridData","process","lesson","edit","DebugMode","url","intHSize","window","screen","availWidth","intVSize","availHeight","intTop","intLeft","sngWindow_Size_Percentage","strFeatures","SRWindow","open","ɵɵdirectiveInject","DataService","selectors","inputs","decls","vars","consts","template","rf","ctx","TrainingLessonsComponent_ng_template_2_Template","TrainingLessonsComponent_ng_template_6_Template","ɵɵtext","ɵɵtextInterpolate1","rowIndex_r1","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","dataItem_r2","TrainingCoursesComponent","constructor","dataService","gridSettings","state","skip","filter","logic","filters","columnsConfig","ngAfterViewInit","isLoading","sql","SQLActionAsPromise","then","dataObject","console","log","gridData","process","ɵɵdirectiveInject","DataService","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","TrainingCoursesComponent_ng_template_13_Template","TrainingCoursesComponent_div_16_Template","ɵɵstyleProp","PunchoutGuard","constructor","dataService","canActivate","route","state","console","log","params","id","selectedAssetId","assetIsAllowed","cache","assets","find","a","Id","parseInt","undefined","ɵɵinject","DataService","factory","ɵfac","providedIn","import_moment","import_sweetalert2","ɵɵelement","ɵɵelementStart","ɵɵlistener","service_r4","ɵɵrestoreView","_r3","service","ctx_r1","ɵɵnextContext","filterChange","logic","filters","ɵɵresetView","close","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","ɵɵpropertyInterpolate","header_r5","name","ɵɵpureFunction0","_c1","ɵɵtext","_r1","dialogRef","$event","pageChange","sortChange","ɵɵtemplate","CustomerIssuesItemComponent_div_0_ng_template_14_Template","CustomerIssuesItemComponent_div_0_kendo_grid_column_15_Template","CustomerIssuesItemComponent_div_0_ng_template_16_Template","ɵɵtextInterpolate","selectedIssue","IssueName","ɵɵstyleProp","gridView","issuesGridSettings","state","skip","filter","sort","_c0","take","group","issueHeader","Id","_r7","openFileImageUploadWindow","ɵɵpropertyInterpolate1","CountOfFilesUploaded","ɵɵpureFunction1","_c3","service_r10","_r9","ɵɵtextInterpolate1","ɵɵpipeBind2","dataItem_r11","Date","CustomerIssuesItemComponent_div_1_div_1_div_14_kendo_grid_column_17_1_ng_template_0_Template","CustomerIssuesItemComponent_div_1_div_1_div_14_kendo_grid_column_17_1_Template","CustomerIssuesItemComponent_div_1_div_1_div_14_kendo_grid_column_17_ng_template_2_Template","column_r12","title","field","_width","hidden","locked","_r8","submitResponse","CustomerIssuesItemComponent_div_1_div_1_div_14_ng_template_16_Template","CustomerIssuesItemComponent_div_1_div_1_div_14_kendo_grid_column_17_Template","CustomerIssuesItemComponent_div_1_div_1_div_14_ng_template_18_Template","discussionIssueFormGroup","controls","response","value","loadingEditForm","addingNewIssue","updateRowColor","discussionGridSettings","gridData","columnsConfig","CustomerIssuesItemComponent_div_1_div_1_span_4_Template","CustomerIssuesItemComponent_div_1_div_1_button_5_Template","_r6","submitEditedIssue","CustomerIssuesItemComponent_div_1_div_1_div_14_Template","editHeader","editSubHeader","_c2","editQuestions","editFormOptions","_r13","CustomerIssuesItemComponent_div_1_div_1_Template","CustomerIssuesItemComponent_div_1_div_2_Template","CustomerIssuesItemComponent","constructor","dataService","signalRCore","utilityService","dialog","isLoadingEditScreen","editingIssue","global","Global","currentUserIsDeveloper","componentName","filterable","encoded","ngAfterViewInit","FormGroup","FormControl","cache","userIssues","find","ui","currentSelectedIssueId","User","isAdmin","SQLActionAsPromise","then","data","AdminDevelopmentTeam","DebugMode","console","log","firstOrDefault","u","currentUser","edit","issueIds","issueId","parseInt","currentlyEditingIssueId","executingIssue","displayIssue","editFieldsAndValues","subjectOptionsList","subjects","userIssueSubjects","forEach","subject","obj","key","Name","push","submitButtonText","saveValuesPerField","saveStoredProcedureName","cancelButtonText","signalRGroupToNotify","signalRNotifyCode","questions","DropdownQuestion","label","options","order","TextareaQuestion","resize","TextboxQuestion","type","setName","required","validateObject","allowBlankValue","ReadOnlyQuestion","GivenName","FamilyName","dataCacheObject","userIssuesObject","discussion","d","DateMS","process","Subject","ReadOnlyTextareaQuestion","Description","Organization","Email","Phone","moment","CreationDateMS","format","LastModifiedBy","LastModifiedDateMS","UibButtonQuestion","AssignedToUserId","listOfValues","visible","AssignedTo","Resolution","SliderYesNoQuestion","Resolved","onChangeFunction","warningFunctionWhenReopeningAnIssue","length","CreatorUserId","NofityCreatorUser","first","NotifyCreatorUser","NotifyAssignedUser","CreatedBy","setFileImageUploadSettings","issue","entityId","entityType","sqlStatement","fileImageData","FileImageLibraryControlObject","imageKeys","i","ImageKey","removeUploadFunction","deletedImageKey","remainingFileImageKeyList","notifyOtherClientsInGroup","addUploadFunction","newImageKey","updatedFileImageKeyList","mode","listTitle","closeUploadWindowFunction","openDialog","innerWidth","window","open","FileUploadListComponent","width","height","componentInstance","fileImageLibraryControlObject","afterClosed","subscribe","result","resolvedStatus","swalWithBootstrapButtons","swal","mixin","customClass","confirmButton","cancelButton","buttonsStyling","fire","html","showCancelButton","confirmButtonText","reverseButtons","showToastMessageShared","message","requestJSON","SQLMultiAction","ODataAccessToken","submittedValues","submittedValuesObject","JSON","parse","keys","Object","parameterListAsString","countOfParameters","question","controlType","UserId","isNaN","updateStringToSQLSyntax","newParameterListAsString","replace","newDiscussion","stringToHTML","split","join","sql","reset","getIssueDiscussion","textString","parser","DOMParser","doc","parseFromString","text","body","innerHTML","returnText","undefined","lastDiscussion","Comments","newDiscussionList","orderByDescending","toArray","$","trigger","issueData","event","context","recentlyUpdated","dataItem","RecentlyUpdated","ɵɵdirectiveInject","DataService","SignalRCoreService","UtilityService","MatDialogRef","MatDialog","selectors","decls","vars","consts","template","rf","ctx","CustomerIssuesItemComponent_div_0_Template","CustomerIssuesItemComponent_div_1_Template","DialogEntryComponent","constructor","dialog","router","console","log","openDialog","open","CustomerIssuesItemComponent","width","height","afterClosed","subscribe","result","navigate","ngOnInit","ngOnDestroy","ɵɵdirectiveInject","MatDialog","Router","selectors","decls","vars","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","CustomerIssueGuard","constructor","dataService","utilityService","canActivate","route","state","selectedCustomerIssueId","params","id","console","log","cache","userIssues","find","ui","Id","undefined","currentSelectedIssueId","showToastMessageShared","type","message","ɵɵinject","DataService","UtilityService","factory","ɵfac","providedIn","DashboardAccessGuard","constructor","router","utilityService","canActivate","route","state","selectedDashboardId","params","id","ifAllowed","Global","User","currentUser","Dashboards","find","obj","Id","undefined","showToastMessageShared","type","message","title","navigate","ɵɵinject","Router","UtilityService","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","change","ɵɵtext","ɵɵelementEnd","ɵɵproperty","org_r3","ɵɵadvance","ɵɵtextInterpolate","SelectorName","_r4","changeUser","user_r5","UsernameDisplay","ɵɵtemplate","UserEngagementReportComponent_div_2_div_11_mat_option_3_Template","userListfromDB","ɵɵelement","picker1_r6","startDate","picker2_r7","endDate","_r8","getUserActivity","UserEngagementReportComponent_div_2_mat_option_10_Template","UserEngagementReportComponent_div_2_div_11_Template","UserEngagementReportComponent_div_2_div_12_Template","UserEngagementReportComponent_div_2_div_13_Template","UserEngagementReportComponent_div_2_div_14_Template","UserEngagementReportComponent_div_2_div_18_Template","ɵɵstyleProp","parentHeight","listOfOrganizations","length","kendoGrids","activity","gridSettings","noUserActivity","UserEngagementReportComponent","constructor","dataService","utilityService","FormControl","Date","GetQueryDateDaysAgo","toISOString","data","groupable","state","skip","filter","logic","filters","take","columnsConfig","field","title","filterable","_width","minResizableWidth","includeInChooser","ngAfterViewInit","parentContentPunchout","nativeElement","clientHeight","cache","organizations","where","organization","CountOfPeople","toArray","sort","a","b","Mnemonic","localeCompare","orgListSelected","Array","userListSelected","userActivity","event","isUserInput","source","selected","console","log","value","push","Id","getUserListFromDB","index","findIndex","o","splice","UserId","orgList","toString","currentUserId","Global","User","currentUser","statement","SQLActionAsPromise","then","userList","allUsersInSelectedOrg","forEach","u","startDateTime","ConvertDateTimeToUTCDateTimeAndFormatForSQLParameter","endDateTime","DateTime","LogDate","activityGrid","undefined","gridDataSubject","next","ɵɵdirectiveInject","DataService","UtilityService","selectors","viewQuery","rf","ctx","UserEngagementReportComponent_div_2_Template","ɵɵelement","ɵɵproperty","ctx_r1","widgetObject","CanvasDesignerComponent","constructor","dataService","dialog","selectedTemplate","undefined","ngOnInit","openTemplatePopup","open","CanvasPopupSettingsComponent","width","height","afterClosed","subscribe","result","fromCanvasDesigner","openGSETemplatePopup","CanvasGsePopupSettingsComponent","data","CanvasTemplateTypeId","AngularDirectiveName","ɵɵdirectiveInject","DataService","MatDialog","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵtemplate","CanvasDesignerComponent_lib_canvas_20_Template","ɵɵadvance","ɵɵstyleProp","ɵɵpureFunction0","_c0","widgetDropdown_r3","settings_r4","ɵɵelement","ɵɵstyleProp","ɵɵproperty","ctx_r0","logsArray","gridSettings","LogbookComponent","constructor","dataService","signalRCore","utilityService","global","Global","state","skip","filter","logic","filters","columnsConfig","field","title","_width","ngOnInit","updateCurrentMenuItem","initialize","signalRSubscription","broadcastMessages$","pipe","msg","code","subscribe","User","DebugMode","console","log","cache","entityLogs","where","logOrganizationId","people","firstOrDefault","person","UserId","CreatorUserId","OrganizationId","currentUser","Organization","Id","IsPrivate","select","visiblelog","EntityLogTypeName","entityLogTypesObject","EntityLogTypeId","Name","assetName","assetsObject","EntityId","Site","ParentSystem","output","Description","CreationDate","CreatorName","FullName","LastModifiedDate","LastModifiedName","LastModifiedUserId","AssetName","CountOfFilesUploaded","CountOfLogComments","Keywords","toArray","getCountOfFilesUploadedForEntity","entity","entityId","entityType","sqlStatement","SQLActionAsPromise","then","data","listOfFiles","length","first","ngOnDestroy","undefined","unsubscribe","ɵɵdirectiveInject","DataService","SignalRCoreService","UtilityService","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtemplate","LogbookComponent_lib_kendo_grid_parent_8_Template","ɵɵadvance","isMobile","import_sweetalert2","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","dataStateChange","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵstyleProp","ɵɵproperty","gridData","rowCallback","tableRow","node","tagName","toLowerCase","closest","predicate","parentNode","CanvasTabsListComponent","returned","Subject","constructor","dataService","dialog","router","toastr","utilityService","renderer","zone","updatingCanvasTabsList","finishedWithUpdatingCanvasTabsList","componentName","state","skip","subscribe","res","getCanvasTabsListForUser","swalWithBootstrapButtons","swal","mixin","customClass","confirmButton","cancelButton","buttonsStyling","ngOnInit","ngAfterViewInit","currentSubscription","handleDragAndDrop","process","canvasTabs","unsubscribe","onStable","pipe","take","context","dragging","dataItem","sub","Subscription","draggedItemIndex","tableRows","Array","from","document","querySelectorAll","forEach","item","setAttribute","dragStart","fromEvent","dragOver","dragEnd","add","tap","dataTransfer","dragImgEl","createElement","body","appendChild","setDragImage","setData","target","rowIndex","data","e","preventDefault","splice","dropIndex","dropItem","run","tabRanking","countOfCanvasTabs","newCanvasTabList","finishedWithUpdate","requestJSON","d","CanvasTemplateTabRanking","sqlStatement","Id","canvasTabsSQLObject","label","push","Global","User","DebugMode","console","log","SQLMultiAction","then","collections","showToastMessageShared","type","message","title","collection","cache","canvasTemplates","filter","p","CanvasTemplateTypeId","length","record","user","people","UserId","CreatorUserId","CreatorName","FullName","sort","a","b","updateMenuItem","CurrentMenuItem","Name","ngOnDestroy","ɵɵdirectiveInject","DataService","MatDialog","Router","ToastrService","UtilityService","Renderer2","NgZone","selectors","decls","vars","consts","template","rf","ctx","ɵɵtext","ɵɵtemplate","CanvasTabsListComponent_div_7_Template","detailedRoutes","path","canActivate","AuthGuard","component","HomeComponent","children","AuthenticationComponent","LoginComponent","LogoutComponent","ForgotPasswordComponent","RegistrationComponent","LayoutComponent","DashboardDemoComponent","DashboardListComponent","DashboardEditComponent","DashboardComponent","DashboardAccessGuard","RecipesComponent","PotdComponent","UserEngagementReportComponent","TrainingCoursesComponent","TestObservationDelayComponent","CustomerIssuesListComponent","DialogEntryComponent","CustomerIssueGuard","LogbookComponent","ReleaseNotesComponent","SystemTablesComponent","RdnDestinationComponent","AdminReportsComponent","CustomerReportsComponent","IssuesComponent","NinjaStatisticsComponent","LocateAllGSEComponent","AssetSummaryViewComponent","AssetSummaryParentComponent","PunchoutGuard","CanvasDesignerComponent","CanvasComponent","CanvasTabsListComponent","GoToV1Component","redirectTo","pathMatch","externalUrlProvider","InjectionToken","AppRoutingModule","provide","useValue","route","externalUrl","paramMap","get","window","open","imports","CommonModule","RouterModule","forRoot","detailedRoutes","useHash","scrollPositionRestoration","anchorScrolling","scrollOffset","enableTracing","UserModule","provide","MatDialogRef","useValue","imports","CommonModule","FormsModule","ReactiveFormsModule","RouterModule","MatDialogModule","MatTooltipModule","DynamicFormModule","MaterialModule","TabsModule","__ngFactoryType__","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","_c0","a0","a1","_c1","_c2","_c3","a2","PaginationComponent_li_1_Template","rf","ctx","_r1","ɵɵgetCurrentView","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","ctx_r1","ɵɵnextContext","ɵɵresetView","ɵɵelementContainer","ɵɵelementEnd","defaultFirstTemplate_r3","ɵɵreference","ɵɵclassProp","ɵɵadvance","ɵɵproperty","ɵɵpureFunction2","PaginationComponent_li_2_Template","_r4","defaultPreviousTemplate_r5","PaginationComponent_li_3_Template","_r6","pg_r7","defaultPageTemplate_r8","ɵɵpureFunction3","PaginationComponent_li_4_Template","_r9","defaultNextTemplate_r10","PaginationComponent_li_5_Template","_r11","defaultLastTemplate_r12","PaginationComponent_ng_template_6_Template","ɵɵtext","page_r13","ɵɵtextInterpolate","PaginationComponent_ng_template_8_Template","PaginationComponent_ng_template_10_Template","PaginationComponent_ng_template_12_Template","PaginationComponent_ng_template_14_Template","PaginationConfig","__ngFactoryType__","ɵɵdefineInjectable","PAGER_CONTROL_VALUE_ACCESSOR","NG_VALUE_ACCESSOR","forwardRef","PagerComponent","elementRef","paginationConfig","changeDetection","EventEmitter","v","value","_previous","config","key","fn","page","event","num","text","active","currentPage","totalPages","pages","startPage","endPage","isMaxSized","previousPageSet","nextPageSet","ɵɵdirectiveInject","ElementRef","ChangeDetectorRef","ɵɵdefineComponent","ɵɵProvidersFeature","ɵɵStandaloneFeature","ɵɵclassMap","NgClass","PAGINATION_CONTROL_VALUE_ACCESSOR","PaginationComponent","ɵɵtemplate","ɵɵtemplateRefExtractor","NgIf","NgTemplateOutlet","NgForOf","PaginationModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","AlertModule","__ngFactoryType__","ɵɵdefineNgModule","ɵɵdefineInjector","mod","n","x","absFloor","num","isString","str","isDate","value","isDateValid","date","isFunction","fn","isNumber","value","isArray","input","hasOwnProp","a","b","isObject","isObjectEmpty","obj","k","isUndefined","toInt","argumentForCoercion","coercedNumber","absFloor","aliases","_mapUnits","addUnitAlias","unit","shorthand","lowerCase","_unit","normalizeUnits","units","isString","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","prop","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","zeroFill","num","targetLength","forceSign","absNumber","zerosToFill","_sign","_zeros","formatFunctions","formatTokenFunctions","formattingTokens","addFormatToken","token","padded","ordinal","callback","opts","makeFormatFunction","format","array","length","formatArr","i","removeFormattingTokens","locale","isUTC","offset","output","j","createUTCDate","y","m","d","createDate","h","M","s","ms","getHours","getMinutes","getSeconds","getMilliseconds","getTime","getDay","getDate","getMonth","getFullYear","unix","date","getFirstDayOfMonth","createDate","isFirstDayOfWeek","date","firstDayOfWeek","isSameMonth","date1","date2","isSameYear","getMonth","getFullYear","isSameDay$1","getDate","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","token","regex","strictRegex","isFunction","isStrict","locale","getParseRegexForToken","hasOwnProp","unescapeFormat","str","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","callback","_token","isString","func","isNumber","input","array","config","toInt","isArray","i","addWeekParseToken","addTimeToArrayFromToken","priorities","addUnitPriority","unit","priority","initDayOfMonth","addFormatToken","date","opts","getDate","addUnitAlias","match1to2","match2","DATE","defaultParsingFlags","getParsingFlags","getYear","getFullYear","initYear","y","matchSigned","match1to4","match4","match1to6","match6","YEAR","parseTwoDigitYear","daysInYear","year","isLeapYear","daysInMonth","month","modMonth","mod","_year","initMonth","getMonth","MONTH","defaultTimeUnit","shiftDate","_unit","day","createDate","setFullDate","getNum","def","num","setMonth","date","value","isUTC","dayOfMonth","getDate","daysInMonth","getFullYear","setHours","date","value","isUTC","setMinutes","setSeconds","setMilliseconds","setDate","setTime","cloneDate","startOf","unit","_date","setMonth","setLocaleDayOfWeek","setISODayOfWeek","getMonth","endOf","_unit","start","_step","add","subtract","initDayOfYear","addFormatToken","getDayOfYear","addUnitAlias","addUnitPriority","addRegexToken","match1to3","match3","addParseToken","input","array","config","toInt","date1","date2","someDate","oneDay","firstWeekOffset","year","dow","doy","fwd","createUTCDate","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","daysInYear","weekOfYear","date","isUTC","getFullYear","getDayOfYear","resWeek","weeksInYear","weekOffsetNext","MONTHS_IN_FORMAT","defaultLocaleMonths","defaultLocaleMonthsShort","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultLongDateFormat","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultMonthsShortRegex","matchWord","defaultMonthsRegex","Locale","config","confKey","prop","key","isFunction","now","output","format","formatUpper","val","num","token","str","withoutSuffix","isFuture","diff","isArray","getMonth","monthName","strict","regex","i","_months","_shortMonths","isStrict","hasOwnProp","getDay","_key","weekdayName","setDayOfWeek","input","hours","minutes","isLower","llc","ii","mom","shortPieces","longPieces","mixedPieces","cmpLenRev","regexEscape","minPieces","minp","shortp","longp","a","b","defaultCalendar","defaultInvalidDate","defaultLocaleWeek","defaultLocaleMeridiemParse","defaultRelativeTime","baseConfig","compareArrays","array1","array2","dontConvert","len","lengthDiff","diffs","toInt","initWeek","addFormatToken","opts","getWeek","getISOWeek","addUnitAlias","addUnitPriority","addRegexToken","match1to2","match2","addWeekParseToken","getWeek","date","locale","getLocale","isUTC","getISOWeek","date","isUTC","weekOfYear","initWeekYear","addFormatToken","opts","getWeekYear","getISOWeekYear","addWeekYearFormatToken","_getWeekYearFormatCb","_getISOWeekYearFormatCb","addUnitAlias","addUnitPriority","addRegexToken","matchSigned","match1to2","match2","match1to4","match4","match1to6","match6","addWeekParseToken","input","week","config","token","toInt","parseTwoDigitYear","getter","getWeekYear","date","locale","getLocale","isUTC","weekOfYear","getISOWeekYear","date","isUTC","weekOfYear","initTimezone","addFormatToken","date","opts","initTimestamp","addFormatToken","date","unix","addRegexToken","matchSigned","matchTimestamp","addParseToken","input","array","config","toInt","initSecond","opts","getSeconds","addUnitAlias","addUnitPriority","match1to2","match2","SECOND","initQuarter","getQuarter","match1","MONTH","isUTC","getMonth","addOffsetFormatToken","token","separator","addFormatToken","date","config","offset","getUTCOffset","sign","zeroFill","initOffset","addRegexToken","matchShortOffset","addParseToken","input","array","offsetFromString","chunkOffset","matcher","str","matches","parts","minutes","toInt","_min","cloneWithOffset","res","cloneDate","offsetDiff","diff","getDateOffset","_offset","initMinute","addFormatToken","date","opts","getMinutes","addUnitAlias","addUnitPriority","addRegexToken","match1to2","match2","addParseToken","MINUTE","initMillisecond","getMilliseconds","match1to3","match1","match3","token","matchUnsigned","parseMs","input","array","config","MILLISECOND","toInt","initHour","hFormat","isUTC","getHours","kFormat","_h","_mm","zeroFill","_ss","getSeconds","_H","meridiem","lowercase","matchMeridiem","isStrict","locale","match3to4","match5to6","HOUR","kInput","getParsingFlags","pos","pos1","pos2","SECOND","locales","localeFamilies","globalLocale","normalizeLocale","key","chooseLocale","names","next","split","j","loadLocale","compareArrays","mergeConfigs","parentConfig","childConfig","res","childProp","hasOwnProp","isObject","parentProp","name","getSetGlobalLocale","values","data","isUndefined","getLocale","isString","defineLocale","baseConfig","Locale","x","getLocale","key","setDefaultLocale","globalLocale","_key","isArray","chooseLocale","setDefaultLocale","locales","getSetGlobalLocale","num","b","output","toInt","initWeek","initWeekYear","initYear","initTimezone","initTimestamp","initSecond","initQuarter","initOffset","initMonth","initMinute","initMillisecond","initHour","initDayOfYear","initDayOfWeek","initDayOfMonth","ordering","orderingHash","mem","order","isDurationValid","duration","key","unitHasDecimal","absCeil","number","bubble","dur","milliseconds","days","months","data","monthsToDays","seconds","absFloor","minutes","hours","monthsFromDays","daysToMonths","years","day","month","round","thresholds","substituteTimeAgo","str","withoutSuffix","isFuture","locale","relativeTime","posNegDuration","createDuration","a","Duration","duration","config","getLocale","normalizedInput","years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds","isDurationValid","bubble","withSuffix","locale","output","relativeTime","localeKey","mathAbs","data","_units","units","normalizeUnits","daysToMonths","monthsToDays","toInt","isDuration","obj","isValid","flags","getParsingFlags","parsedParts","i","isNowValid","createInvalid","markInvalid","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","rfc2822","configFromISO","isString","input","match","allowTime","dateFormat","timeFormat","tzFormat","l","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","defaultLocaleMonthsShort","year","preprocessRFC2822","str","checkWeekday","weekdayStr","parsedInput","weekdayProvided","defaultLocaleWeekdaysShort","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","m","configFromRFC2822","parsedArray","createUTCDate","configFromString","matched","formatDate","date","format","isUTC","offset","_locale","formatMoment","_format","isDateValid","expandFormat","formatFunctions","makeFormatFunction","localFormattingTokens","replaceLongDateFormatTokens","defaults","a","b","c","currentDateArray","nowValue","configFromArray","yearToUse","currentDate","DATE","MONTH","dayOfYearFromWeekInfo","YEAR","daysInYear","HOUR","MINUTE","SECOND","MILLISECOND","createDate","expectedWeekday","weekYear","week","weekday","dow","doy","temp","weekdayOverflow","w","weekOfYear","curWeek","weeksInYear","dayOfYearFromWeeks","checkOverflow","overflow","daysInMonth","WEEK","WEEKDAY","ISO_8601","RFC_2822","isArray","totalParsedInputLength","inputLength","tokens","formattingTokens","token","skipped","getParseRegexForToken","formatTokenFunctions","addTimeToArrayFromToken","meridiemFixWrap","_hour","meridiem","hour","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","configFromObject","isObject","normalizeObjectUnits","createFromConfig","res","prepareConfig","isDate","cloneDate","configFromInput","isUndefined","_arr","isNumber","createLocalOrUTC","strict","_input","isObjectEmpty","parseDate","utcAsLocal","absRound","num","isAfter","date1","date2","startOf","isBefore","endOf","isDisabledDay","daysDisabled","day","isSame","date1","date2","units","inputMs","startOf","endOf","aspNetRegex","isoRegex","createDuration","input","key","config","duration","convertDuration","Duration","isDuration","isNumber","isString","match","sign","toInt","DATE","HOUR","MINUTE","SECOND","absRound","MILLISECOND","parseIso","isObject","diffRes","momentsDifference","parseDate","inp","res","positiveMomentsDifference","base","other","getMonth","getFullYear","_basePlus","add","cloneDate","isAfter","isDateValid","_other","cloneWithOffset","isBefore","date","val","period","isUTC","dur","addSubtract","subtract","isAdding","milliseconds","days","months","setMonth","setDate","getDate","setTime","getTime","initDayOfWeek","addFormatToken","opts","getDay","getLocaleDayOfWeek","getISODayOfWeek","addUnitAlias","addUnitPriority","addRegexToken","match1to2","isStrict","locale","addWeekParseToken","week","token","weekday","getParsingFlags","parseWeekday","_num","_weekDay","parseIsoWeekday","getLocale","setDayOfWeek","date","input","locale","getLocale","isUTC","day","getDay","_input","parseWeekday","add","getDayOfWeek","getLocaleDayOfWeek","setLocaleDayOfWeek","opts","weekday","getISODayOfWeek","setISODayOfWeek","parseIsoWeekday","symbolMap$2","numberMap$2","pluralForm$1","num","plurals$1","pluralize$1","u","withoutSuffix","f","str","months$3","arLocale","hour","minute","isLower","match","bgLocale","d","_num","number","lastDigit","last2Digits","monthsShortDot$5","monthsShort$7","monthsParse$6","monthsRegex$5","caLocale","format","getMonth","getHours","output","months$2","monthsShort$6","plural$4","translate$6","key","isFuture","result","csLocale","months","monthsShort","i","_monthsParse","_shortMonthsParse","_longMonthsParse","daLocale","processRelativeTime$2","deLocale","enGbLocale","b","monthsShortDot$4","monthsShort$5","monthsParse$5","monthsRegex$4","esDoLocale","monthsShortDot$3","monthsShort$4","monthsParse$4","monthsRegex$3","esLocale","monthsShortDot$2","monthsShort$3","esPrLocale","monthsShortDot$1","monthsShort$2","esUsLocale","processRelativeTime$1","etLocale","numbersPast","numbersFuture","translate$5","verbalNumber","fiLocale","frLocale","period","frCaLocale","monthsShortDot","monthsShort$1","monthsParse$3","monthsRegex$2","glLocale","heLocale","symbolMap$1","numberMap$1","hiLocale","meridiem","weekEndings","translate$4","week","huLocale","hours","minutes","hrLocale","idLocale","itLocale","jaLocale","kaLocale","s","st","_period","suffixes$1","kkLocale","a","koLocale","token","isUpper","units","translateSeconds","translateSingular","forms","special","translate$3","ltLocale","lvLocale","translate$2","mnLocale","nbLocale","monthsShortWithDots$1","monthsShortWithoutDots$1","monthsParse$2","monthsRegex$1","nlBeLocale","monthsShortWithDots","monthsShortWithoutDots","monthsParse$1","monthsRegex","nlLocale","monthsNominative","monthsSubjective","plural$3","translate$1","plLocale","ptBrLocale","relativeTimeWithPlural$2","separator","roLocale","plural$2","word","relativeTimeWithPlural$1","monthsParse","ruLocale","now","getWeek","months$1","plural$1","translate","skLocale","processRelativeTime","slLocale","sqLocale","svLocale","thLocale","thBeLocale","_format","ddMM","yyyy","suffixes","trLocale","c","plural","relativeTimeWithPlural","weekdaysCaseReplace","weekdays","nounCase","processHoursFunction","ukLocale","viLocale","zhCnLocale","hm","symbolMap","numberMap","pluralForm","plurals","pluralize","faLocale","MiniState","BehaviorSubject","_initialState","actionsDispatcher$","reducer","observeOn","queueScheduler","scan","state","action","value","MiniStore","_MiniStore","Observable","_dispatcher","_reducer","state$","pathOrMapFn","map","distinctUntilChanged","operator","store","err","TimepickerComponent_td_6_Template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","TimepickerComponent_td_7_Template","_r1","ɵɵgetCurrentView","ɵɵlistener","ɵɵrestoreView","ctx_r1","ɵɵnextContext","ɵɵresetView","ɵɵelement","ɵɵadvance","ɵɵclassProp","TimepickerComponent_td_8_Template","TimepickerComponent_td_9_Template","_r3","TimepickerComponent_td_10_Template","TimepickerComponent_td_11_Template","TimepickerComponent_td_15_Template","TimepickerComponent_td_16_Template","_r4","$event","ɵɵproperty","ɵɵattribute","TimepickerComponent_td_17_Template","TimepickerComponent_td_18_Template","_r5","TimepickerComponent_td_19_Template","TimepickerComponent_td_20_Template","_r6","ɵɵtextInterpolate1","TimepickerComponent_td_25_Template","TimepickerComponent_td_26_Template","_r7","TimepickerComponent_td_27_Template","TimepickerComponent_td_28_Template","_r8","TimepickerComponent_td_29_Template","TimepickerComponent_td_30_Template","TimepickerActions","value","event","__ngFactoryType__","ɵɵdefineInjectable","dex","hoursPerDay","hoursPerDayHalf","minutesPerHour","secondsPerMinute","isValidDate","isValidLimit","controls","newDate","toNumber","parseHours","value","isPM","hour","toNumber","hoursPerDayHalf","hoursPerDay","parseMinutes","minute","minutesPerHour","parseSeconds","seconds","secondsPerMinute","parseTime","changeTime","diff","createDate","minutes","setTime","opts","hours","newValue","padNumber","_value","isHourInputValid","isMinuteInputValid","isSecondInputValid","isInputLimitValid","max","min","newDate","isOneOfDatesEmpty","isInputValid","canChangeValue","state","event","canChangeHours","controls","canChangeMinutes","canChangeSeconds","getControlsValue","hourStep","minuteStep","secondsStep","readonlyInput","disabled","mousewheel","arrowkeys","showSpinners","showMeridian","showSeconds","meridians","timepickerControls","res","_newHour","_newMinutes","_newSeconds","TimepickerConfig","__ngFactoryType__","ɵɵdefineInjectable","initialState","timepickerReducer","action","TimepickerActions","_newTime","isValidLimit","_newControlsState","_newState","TimepickerStore","MiniStore","_dispatcher","BehaviorSubject","MiniState","TIMEPICKER_CONTROL_VALUE_ACCESSOR","NG_VALUE_ACCESSOR","forwardRef","TimepickerComponent","_config","_cd","_store","_timepickerActions","EventEmitter","controlsState","isTimepickerInputValid","isValid","$event","step","source","target","_seconds","_minutes","obj","isValidDate","fn","isDisabled","_hoursPerDayHalf","_hours","ɵɵdirectiveInject","ChangeDetectorRef","ɵɵdefineComponent","ɵɵProvidersFeature","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","rf","ctx","ɵɵelementStart","ɵɵlistener","ɵɵelement","ɵɵelementEnd","ɵɵtemplate","TimepickerComponent_td_6_Template","TimepickerComponent_td_7_Template","TimepickerComponent_td_8_Template","TimepickerComponent_td_9_Template","TimepickerComponent_td_10_Template","TimepickerComponent_td_11_Template","TimepickerComponent_td_15_Template","TimepickerComponent_td_16_Template","TimepickerComponent_td_17_Template","TimepickerComponent_td_18_Template","TimepickerComponent_td_19_Template","TimepickerComponent_td_20_Template","TimepickerComponent_td_25_Template","TimepickerComponent_td_26_Template","TimepickerComponent_td_27_Template","TimepickerComponent_td_28_Template","TimepickerComponent_td_29_Template","TimepickerComponent_td_30_Template","ɵɵadvance","ɵɵproperty","ɵɵclassProp","ɵɵattribute","NgIf","TimepickerModule","ɵɵdefineNgModule","ɵɵdefineInjector","BsCustomDatesViewComponent_button_1_Template","rf","ctx","_r1","ɵɵgetCurrentView","ɵɵelementStart","ɵɵlistener","range_r2","ɵɵrestoreView","ctx_r2","ɵɵnextContext","ɵɵresetView","ɵɵtext","ɵɵelementEnd","ɵɵclassProp","ɵɵadvance","ɵɵtextInterpolate1","BsDatepickerNavigationViewComponent_ng_container_3_Template","ɵɵelementContainerStart","ctx_r1","ɵɵelementContainerEnd","ɵɵproperty","ɵɵtextInterpolate","_c0","_c1","BsCalendarLayoutComponent_bs_current_date_0_Template","ɵɵelement","BsCalendarLayoutComponent_bs_timepicker_5_Template","BsYearsCalendarViewComponent_tr_4_td_1_Template","year_r2","BsYearsCalendarViewComponent_tr_4_Template","ɵɵtemplate","row_r4","BsMonthCalendarViewComponent_tr_4_td_1_Template","month_r2","BsMonthCalendarViewComponent_tr_4_Template","_c2","BsDaysCalendarViewComponent_th_5_Template","BsDaysCalendarViewComponent_th_6_Template","i_r1","BsDaysCalendarViewComponent_tr_8_td_1_span_1_Template","_r3","week_r4","i_r5","BsDaysCalendarViewComponent_tr_8_td_1_span_2_Template","_r6","BsDaysCalendarViewComponent_tr_8_td_1_Template","BsDaysCalendarViewComponent_tr_8_td_2_span_1_Template","_r7","day_r8","ɵɵpropertyInterpolate","BsDaysCalendarViewComponent_tr_8_td_2_span_2_Template","_r9","BsDaysCalendarViewComponent_tr_8_td_2_span_3_Template","_r10","BsDaysCalendarViewComponent_tr_8_td_2_Template","BsDaysCalendarViewComponent_tr_8_Template","_c3","BsDatepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template","ɵɵpipe","$event","calendar_r4","ɵɵpipeBind1","BsDatepickerContainerComponent_div_0_ng_container_4_div_4_timepicker_3_Template","BsDatepickerContainerComponent_div_0_ng_container_4_div_4_Template","BsDatepickerContainerComponent_div_0_ng_container_4_Template","BsDatepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template","_r5","calendar_r6","BsDatepickerContainerComponent_div_0_div_5_Template","BsDatepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template","calendar_r8","BsDatepickerContainerComponent_div_0_div_6_Template","BsDatepickerContainerComponent_div_0_div_7_Template","BsDatepickerContainerComponent_div_0_div_8_div_1_Template","BsDatepickerContainerComponent_div_0_div_8_div_2_Template","BsDatepickerContainerComponent_div_0_div_8_Template","BsDatepickerContainerComponent_div_0_div_9_Template","_r11","BsDatepickerContainerComponent_div_0_Template","BsDatepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template","BsDatepickerInlineContainerComponent_div_0_ng_container_4_div_4_timepicker_3_Template","BsDatepickerInlineContainerComponent_div_0_ng_container_4_div_4_Template","BsDatepickerInlineContainerComponent_div_0_ng_container_4_Template","BsDatepickerInlineContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template","BsDatepickerInlineContainerComponent_div_0_div_5_Template","BsDatepickerInlineContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template","BsDatepickerInlineContainerComponent_div_0_div_6_Template","BsDatepickerInlineContainerComponent_div_0_div_7_Template","BsDatepickerInlineContainerComponent_div_0_div_8_div_1_Template","BsDatepickerInlineContainerComponent_div_0_div_8_div_2_Template","BsDatepickerInlineContainerComponent_div_0_div_8_Template","BsDatepickerInlineContainerComponent_div_0_div_9_Template","BsDatepickerInlineContainerComponent_div_0_Template","_c4","BsDaterangepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template","BsDaterangepickerContainerComponent_div_0_ng_container_4_div_4_timepicker_3_Template","BsDaterangepickerContainerComponent_div_0_ng_container_4_div_4_Template","BsDaterangepickerContainerComponent_div_0_ng_container_4_Template","BsDaterangepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template","BsDaterangepickerContainerComponent_div_0_div_5_Template","BsDaterangepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template","BsDaterangepickerContainerComponent_div_0_div_6_Template","BsDaterangepickerContainerComponent_div_0_div_7_Template","BsDaterangepickerContainerComponent_div_0_div_8_div_1_Template","BsDaterangepickerContainerComponent_div_0_div_8_div_2_Template","BsDaterangepickerContainerComponent_div_0_div_8_Template","BsDaterangepickerContainerComponent_div_0_div_9_Template","BsDaterangepickerContainerComponent_div_0_Template","BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template","BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_div_4_timepicker_3_Template","BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_div_4_Template","BsDaterangepickerInlineContainerComponent_div_0_ng_container_4_Template","BsDaterangepickerInlineContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template","BsDaterangepickerInlineContainerComponent_div_0_div_5_Template","BsDaterangepickerInlineContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template","BsDaterangepickerInlineContainerComponent_div_0_div_6_Template","BsDaterangepickerInlineContainerComponent_div_0_div_7_Template","BsDaterangepickerInlineContainerComponent_div_0_div_8_div_1_Template","BsDaterangepickerInlineContainerComponent_div_0_div_8_div_2_Template","BsDaterangepickerInlineContainerComponent_div_0_div_8_Template","BsDaterangepickerInlineContainerComponent_div_0_div_9_Template","BsDaterangepickerInlineContainerComponent_div_0_Template","BsDatepickerConfig","__ngFactoryType__","ɵɵdefineInjectable","DATEPICKER_ANIMATION_TIMING","datepickerAnimation","trigger","state","style","transition","animate","BsDatepickerAbstractComponent","Subscription","value","event","date","index","day","dates","BsDatepickerActions","step","options","days","locale","BsLocaleService","BehaviorSubject","BsDatepickerEffects","_actions","_localeService","_bsDatepickerStore","_config","_options","container","filter","times","months","years","combineLatest","map","latest","_cell","monthModel","month","selectedDate","selectedRange","hoveredDate","dateCustomClasses","dateTooltipTexts","sub","ɵɵinject","defaultMonthOptions","dayInMilliseconds","_initialView","initialDatepickerState","BsDatepickerConfig","defaultMonthOptions","getStartingDayOfCalendar","date","options","isFirstDayOfWeek","weekDay","getDay","offset","calculateDateOffset","shiftDate","weekday","startingDayOffset","_startingDayOffset","isMonthDisabled","min","max","minBound","isBefore","endOf","maxBound","isAfter","startOf","isYearDisabled","isDisabledDate","datesDisabled","unit","isArray","dateDisabled","isSame","isEnabledDate","datesEnabled","enabledDate","getYearsCalendarInitialDate","state","calendarIndex","model","checkRangesWithMaxDate","ranges","maxDate","item","compareDateWithMaxDateHelper","checkBsValue","setCurrentTimeOnDateSelect","value","setCurrentTimeHelper","setDateRangesCurrentTimeOnDateSelect","now","createMatrix","fn","prevValue","matrix","i","j","calcDaysCalendar","startingDate","firstDay","getFirstDayOfMonth","initialDate","matrixOptions","formatDaysCalendar","daysCalendar","formatOptions","monthIndex","formatDate","getWeekNumbers","getShiftedWeekdays","week","weekIndex","dayIndex","daysMatrix","format","locale","days","_locale","getLocale","weekdays","firstDayOfWeek","flagDaysCalendar","formattedMonth","day","isOtherMonth","isSameMonth","isHovered","isSameDay$1","isSelectionStart","isSelectionEnd","isSelected","isInRange","isDateInRange","isDisabled","isDisabledDay","currentDate","isToday","customClasses","dcc","previousValue","currentValue","tooltipText","tt","newDay","selectedRange","hoveredDate","canSwitchMode","mode","minMode","height$1","width$1","shift$1","formatMonthsCalendar","viewDate","flagMonthsCalendar","monthCalendar","months","rowIndex","month","newMonth","height","width","yearsPerCalendar","initialYearShift","shift","formatYearsCalendar","previousInitialDate","calculateInitialDate","yearsMatrix","yearTitle","formatYearRangeTitle","from","to","flagYearsCalendar","yearsCalendar","years","year","yearIndex","isSameYear","copyTime","sourceDate","time","bsDatepickerReducer","action","BsDatepickerActions","calculateReducer","formatReducer","flagReducer","navigateOffsetReducer","payload","setFullDate","newState","_time","_date","getViewDate","index","selectedTime","_viewDate","isDateValid","dte","displayMonths","isDisplayOneMonth","monthsModel","viewMonth","monthsCalendar","getFormatOptions","yearsCalendarModel","formattedMonths","flaggedMonths","flaggedMonthsCalendar","yearsCalendarFlagged","shiftViewDate","middleDate","minDate","BsDatepickerStore","MiniStore","_dispatcher","BehaviorSubject","MiniState","__ngFactoryType__","ɵɵdefineInjectable","BsCustomDatesViewComponent","EventEmitter","range","ɵɵdefineComponent","ɵɵStandaloneFeature","rf","ctx","ɵɵelementStart","ɵɵtemplate","BsCustomDatesViewComponent_button_1_Template","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","NgForOf","BsNavigationDirection","BsDatepickerNavigationViewComponent","down","viewMode","ɵɵlistener","ɵɵtext","BsDatepickerNavigationViewComponent_ng_container_3_Template","ɵɵstyleProp","ɵɵtextInterpolate","NgIf","BsTimepickerViewComponent","ɵɵelement","ɵɵtextInterpolate1","BsCurrentDateViewComponent","BsCalendarLayoutComponent","_c1","ɵɵprojectionDef","_c0","BsCalendarLayoutComponent_bs_current_date_0_Template","ɵɵprojection","BsCalendarLayoutComponent_bs_timepicker_5_Template","BsYearsCalendarViewComponent","event","step","cell","$event","BsYearsCalendarViewComponent_tr_4_Template","BsMonthCalendarViewComponent","BsMonthCalendarViewComponent_tr_4_Template","BsDatepickerDayDecoratorComponent","_config","_elRef","_renderer","className","ɵɵdirectiveInject","ElementRef","Renderer2","ɵɵclassProp","_c2","BsDaysCalendarViewComponent","selectedDay","lastDayOfRange","dateData","BsDaysCalendarViewComponent_th_5_Template","BsDaysCalendarViewComponent_th_6_Template","BsDaysCalendarViewComponent_tr_8_Template","TooltipModule","TooltipDirective","BsDatepickerContainerComponent","BsDatepickerAbstractComponent","_store","_element","_actions","_effects","_positionService","take","val","getMonth","getFullYear","sub","BsDatepickerEffects","PositioningService","ɵɵviewQuery","_c3","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵattribute","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","BsDatepickerContainerComponent_div_0_Template","ɵɵpipe","ɵɵpipeBind1","NgClass","NgSwitch","NgSwitchCase","TimepickerModule","TimepickerComponent","AsyncPipe","datepickerAnimation","previousDate$1","BsDatepickerDirective","_elementRef","_viewContainerRef","cis","Subject","changes","filter","isOpen","takeUntil","ViewContainerRef","ComponentLoaderFactory","ɵɵdefineDirective","ɵɵNgOnChangesFeature","BsDatepickerInlineContainerComponent","BsDatepickerContainerComponent","_renderer","_config","_store","_element","_actions","_effects","_positioningService","__ngFactoryType__","ɵɵdirectiveInject","Renderer2","BsDatepickerConfig","BsDatepickerStore","ElementRef","BsDatepickerActions","BsDatepickerEffects","PositioningService","ɵɵdefineComponent","rf","ctx","ɵɵlistener","$event","ɵɵattribute","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","ɵɵtemplate","BsDatepickerInlineContainerComponent_div_0_Template","ɵɵpipe","ɵɵproperty","ɵɵpipeBind1","NgIf","NgClass","NgSwitch","NgSwitchCase","NgForOf","BsDaysCalendarViewComponent","TimepickerModule","TimepickerComponent","BsMonthCalendarViewComponent","BsYearsCalendarViewComponent","BsCustomDatesViewComponent","AsyncPipe","datepickerAnimation","BsDaterangepickerContainerComponent","BsDatepickerAbstractComponent","value","_renderer","_config","_store","_element","_actions","_effects","_positionService","EventEmitter","take","currentDate","state","dateRange","time","val","date","index","day","getMonth","getFullYear","sub","dates","currentSelection","maxDateRange","maxDateValueInMilliseconds","maxDateRangeInMilliseconds","dayInMilliseconds","__ngFactoryType__","ɵɵdirectiveInject","Renderer2","BsDatepickerConfig","BsDatepickerStore","ElementRef","BsDatepickerActions","BsDatepickerEffects","PositioningService","ɵɵdefineComponent","rf","ctx","ɵɵviewQuery","_c3","_c4","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵlistener","$event","ɵɵattribute","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","ɵɵtemplate","BsDaterangepickerContainerComponent_div_0_Template","ɵɵpipe","ɵɵproperty","ɵɵpipeBind1","NgIf","NgClass","NgSwitch","NgSwitchCase","NgForOf","BsDaysCalendarViewComponent","TimepickerModule","TimepickerComponent","BsMonthCalendarViewComponent","BsYearsCalendarViewComponent","BsCustomDatesViewComponent","AsyncPipe","datepickerAnimation","BsDaterangepickerInlineContainerComponent","_positioningService","BsDaterangepickerInlineContainerComponent_div_0_Template","BS_DATEPICKER_VALUE_ACCESSOR","NG_VALUE_ACCESSOR","forwardRef","BsDatepickerInputDirective","BS_DATEPICKER_VALIDATOR","NG_VALIDATORS","_picker","_localeService","_renderer","_elRef","changeDetection","Subscription","event","setBsValue","value","distinctUntilChanged","initialDate","formatDate","c","_value","isDate","isDateValid","isBefore","isAfter","fn","_localeKey","getLocale","parseDate","utcValue","utcAsLocal","isDisabled","__ngFactoryType__","ɵɵdirectiveInject","BsDatepickerDirective","BsLocaleService","Renderer2","ElementRef","ChangeDetectorRef","ɵɵdefineDirective","rf","ctx","ɵɵlistener","$event","ɵɵProvidersFeature","BsDaterangepickerConfig","BsDatepickerConfig","ɵBsDaterangepickerConfig_BaseFactory","ɵɵgetInheritedFactory","ɵɵdefineInjectable","previousDate","BsDaterangepickerDirective","setDateRangesCurrentTimeOnDateSelect","_config","_elementRef","_viewContainerRef","cis","Subject","EventEmitter","BehaviorSubject","changes","filter","isOpen","takeUntil","BsDaterangepickerContainerComponent","range","checkBsValue","checkRangesWithMaxDate","sub","ViewContainerRef","ComponentLoaderFactory","ɵɵattribute","ɵɵNgOnChangesFeature","BS_DATERANGEPICKER_VALUE_ACCESSOR","BsDaterangepickerInputDirective","BS_DATERANGEPICKER_VALIDATOR","date","start","end","errors","isArray","a","b","_isFirstDateValid","_isSecondDateValid","_input","trimmedSeparator","_val","BsDatepickerModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","TooltipModule","TimepickerModule","BsDaysCalendarViewComponent","BsDatepickerContainerComponent","BsDatepickerInlineContainerComponent","BsDaterangepickerInlineContainerComponent","CarouselModule","__ngFactoryType__","ɵɵdefineNgModule","ɵɵdefineInjector","PopoverModule","__ngFactoryType__","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","tween","CIcon__svg_svg_0_Template","rf","ctx","ɵɵnamespaceSVG","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","CIcon__svg_svg_1_Template","CIcon__svg_svg_2_Template","CIcon__svg_svg_3_Template","CIcon__svg_svg_4_Template","_c0","_c1","_c2","_c3","_c4","_c5","_c6","_c7","_c8","_c9","a0","_c10","_c11","a1","_c12","_c13","_c14","_c15","_c16","a2","_c17","AngularMultiSelect_span_5_Template","ɵɵtext","ctx_r1","ɵɵnextContext","ɵɵadvance","ɵɵtextInterpolate","AngularMultiSelect_span_6_span_1_Template","item_r3","ɵɵtextInterpolate1","AngularMultiSelect_span_6_Template","ɵɵtemplate","ɵɵproperty","AngularMultiSelect_span_7_div_1_span_1_Template","item_r5","AngularMultiSelect_span_7_div_1_span_2_Template","AngularMultiSelect_span_7_div_1_Template","_r4","ɵɵgetCurrentView","ɵɵlistener","$event","ctx_r5","ɵɵrestoreView","k_r7","ɵɵresetView","AngularMultiSelect_span_7_Template","AngularMultiSelect_div_8_div_1_span_1_Template","item_r9","AngularMultiSelect_div_8_div_1_span_2_Template","AngularMultiSelect_div_8_div_1_Template","_r8","ctx_r9","k_r11","AngularMultiSelect_div_8_Template","AngularMultiSelect_span_9_Template","AngularMultiSelect_span_10_Template","_r12","AngularMultiSelect_span_11_Template","AngularMultiSelect_span_12_Template","AngularMultiSelect_div_18_input_1_Template","_r13","AngularMultiSelect_div_18_Template","AngularMultiSelect_img_19_Template","AngularMultiSelect_div_20_span_3_Template","_r14","AngularMultiSelect_div_20_span_4_Template","_r15","AngularMultiSelect_div_20_input_5_Template","_r16","ɵɵtwoWayListener","ɵɵtwoWayBindingSet","ɵɵtwoWayProperty","AngularMultiSelect_div_20_input_6_Template","_r17","AngularMultiSelect_div_20_input_7_Template","_r18","AngularMultiSelect_div_20_c_templateRenderer_8_Template","AngularMultiSelect_div_20_Template","AngularMultiSelect_div_21_div_1_Template","_r19","AngularMultiSelect_div_21_div_2_Template","_r20","AngularMultiSelect_div_21_Template","AngularMultiSelect_div_22_div_1_Template","_r21","AngularMultiSelect_div_22_Template","AngularMultiSelect_div_23_div_1_Template","_r22","AngularMultiSelect_div_23_Template","AngularMultiSelect_div_24_li_2_input_1_Template","item_r25","AngularMultiSelect_div_24_li_2_Template","_r23","ctx_r23","i_r26","ɵɵpureFunction1","AngularMultiSelect_div_24_Template","ɵɵstyleProp","AngularMultiSelect_div_25_li_3_input_1_Template","item_r30","AngularMultiSelect_div_25_li_3_Template","_r28","ctx_r28","i_r31","AngularMultiSelect_div_25_Template","_r27","scroll_r32","ɵɵreference","AngularMultiSelect_div_26_li_2_input_1_Template","item_r35","AngularMultiSelect_div_26_li_2_Template","_r33","ctx_r33","i_r36","AngularMultiSelect_div_26_Template","AngularMultiSelect_div_27_li_3_input_1_Template","item_r40","AngularMultiSelect_div_27_li_3_Template","_r38","ctx_r38","i_r41","AngularMultiSelect_div_27_Template","_r37","scroll2_r42","AngularMultiSelect_div_28_span_3_li_1_input_1_Template","item_r46","AngularMultiSelect_div_28_span_3_li_1_Template","_r44","ctx_r44","i_r47","ɵɵpureFunction2","AngularMultiSelect_div_28_span_3_li_2_input_1_Template","AngularMultiSelect_div_28_span_3_li_2_Template","AngularMultiSelect_div_28_span_3_Template","AngularMultiSelect_div_28_Template","_r43","scroll3_r48","AngularMultiSelect_div_29_span_2_input_2_Template","item_r50","AngularMultiSelect_div_29_span_2_span_6_input_2_Template","val_r53","AngularMultiSelect_div_29_span_2_span_6_Template","_r51","ctx_r51","j_r54","AngularMultiSelect_div_29_span_2_Template","_r49","AngularMultiSelect_div_29_Template","AngularMultiSelect_div_30_span_4_li_1_input_1_Template","item_r56","AngularMultiSelect_div_30_span_4_li_1_Template","ɵɵpureFunction3","AngularMultiSelect_div_30_span_4_li_2_input_1_Template","AngularMultiSelect_div_30_span_4_li_2_Template","_r57","ctx_r57","i_r59","AngularMultiSelect_div_30_span_4_Template","AngularMultiSelect_div_30_Template","_r55","scroll4_r60","AngularMultiSelect_div_31_span_2_input_2_Template","item_r62","AngularMultiSelect_div_31_span_2_span_6_input_2_Template","val_r65","AngularMultiSelect_div_31_span_2_span_6_Template","_r63","ctx_r63","j_r66","AngularMultiSelect_div_31_span_2_Template","_r61","AngularMultiSelect_div_31_Template","AngularMultiSelect_h5_32_Template","MyException","status","body","ClickOutsideDirective","_elementRef","EventEmitter","event","targetElement","__ngFactoryType__","ɵɵdirectiveInject","ElementRef","ɵɵdefineDirective","ɵɵresolveDocument","DataService","Subject","data","__ngFactoryType__","ɵɵdefineInjectable","ListFilterPipe","ds","items","filter","searchBy","item","found","t","prop","ɵɵdirectiveInject","ɵɵdefinePipe","Item","ɵɵdefineComponent","rf","ctx","dirIndex","ɵɵcontentQuery","TemplateRef","_t","ɵɵqueryRefresh","ɵɵloadQuery","Badge","Search","TemplateRenderer","viewContainer","ViewContainerRef","CIcon","ɵɵtemplate","CIcon__svg_svg_0_Template","CIcon__svg_svg_1_Template","CIcon__svg_svg_2_Template","CIcon__svg_svg_3_Template","CIcon__svg_svg_4_Template","ɵɵproperty","ɵɵadvance","NgIf","VIRTUAL_SCROLLER_DEFAULT_OPTIONS_FACTORY","VirtualScrollerComponent","pageInfo","value","item1","item2","scrollElement","EventEmitter","changes","indexLengthChanged","firstRun","itemsArrayChanged","index","cachedMeasurement","alignToBeginning","additionalOffset","animationMilliseconds","animationCompletedCallback","maxRetries","retryIfNeeded","dimensions","desiredStartIndex","scroll","scrollPosition","animationRequest","tweenConfigObj","newTween","animate","time","element","renderer","zone","changeDetectorRef","platformId","options","isPlatformServer","result","styles","marginTop","marginBottom","marginLeft","marginRight","boundingRect","sizeChanged","widthChange","heightChange","func","wait","throttled","timeout","_arguments","_this","itemsArrayModified","refreshCompletedCallback","maxRunTimes","oldViewPort","oldViewPortItems","oldRefreshCompletedCallback","scrollLengthDelta","oldStartItem","oldStartItemIndex","x","itemOrderChanged","i","viewport","startChanged","endChanged","scrollLengthChanged","paddingChanged","scrollPositionChanged","containerOffset","offset","changeEventArg","handleChanged","elementClientRect","scrollClientRect","propertyName","children","childrenLength","firstOffset","windowScrollValue","oldWrapGroupDimensions","itemsPerWrapGroup","wrapGroupIndex","oldWrapGroupDimension","itemsChanged","arrayStartIndex","maxCalculatedScrollBarSize","viewportWidth","viewportHeight","content","wrapGroupsPerPage","defaultChildWidth","defaultChildHeight","itemsPerRow","itemsPerCol","scrollOffset","maxWidthForWrapGroup","maxHeightForWrapGroup","sumOfVisibleMaxWidths","sumOfVisibleMaxHeights","child","clientRect","oldValue","maxVisibleWidthForWrapGroup","scrollOffsetToRemove","maxVisibleHeightForWrapGroup","averageChildWidth","averageChildHeight","itemCount","itemsPerPage","pageCount_fractional","numberOfWrapGroups","scrollLength","defaultScrollLengthPerWrapGroup","numUnknownChildSizes","childSize","viewportLength","maxScrollPosition","arrayStartIndexWithBuffer","startingWrapGroupIndex","scrollPercentage","totalScrolledLength","startingArrayIndex_fractional","maxStart","bufferBoundary","arrayEndIndex","endIndexWithinWrapGroup","bufferSize","startIndexWithBuffer","endIndexWithBuffer","scrollStartPosition","newPadding","newScrollLength","ElementRef","Renderer2","NgZone","ChangeDetectorRef","PLATFORM_ID","_c0","_c1","ɵɵviewQuery","_c2","_c3","ɵɵclassProp","ɵɵNgOnChangesFeature","_c4","ɵɵprojectionDef","ɵɵelement","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","VirtualScrollerModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","DROPDOWN_CONTROL_VALUE_ACCESSOR","NG_VALUE_ACCESSOR","forwardRef","AngularMultiSelect","DROPDOWN_CONTROL_VALIDATION","NG_VALIDATORS","noop","event","_elementRef","cdr","filterPipe","debounceTime","distinctUntilChanged","tap","term","val","evt","limit","c","MyException","e","fn","clickedItem","obj","individualData","arr","cat","removed","el","added","cnt","copy","key","field","groupedObj","prev","cur","tempArr","disabledChildrens","filteredElems","shouldOpenTowardsTop","elem","dropdownWidth","dropdownHeight","selectedListBounds","spaceOnTop","len","_c5","_c6","_c7","_c8","ɵɵlistener","$event","ɵɵresolveDocument","ɵɵresolveWindow","ɵɵclassMap","ɵɵProvidersFeature","_r1","ɵɵgetCurrentView","ɵɵrestoreView","ɵɵresetView","AngularMultiSelect_span_5_Template","AngularMultiSelect_span_6_Template","AngularMultiSelect_span_7_Template","AngularMultiSelect_div_8_Template","AngularMultiSelect_span_9_Template","AngularMultiSelect_span_10_Template","AngularMultiSelect_span_11_Template","AngularMultiSelect_span_12_Template","AngularMultiSelect_div_18_Template","AngularMultiSelect_img_19_Template","AngularMultiSelect_div_20_Template","AngularMultiSelect_div_21_Template","AngularMultiSelect_div_22_Template","AngularMultiSelect_div_23_Template","AngularMultiSelect_div_24_Template","AngularMultiSelect_div_25_Template","AngularMultiSelect_div_26_Template","AngularMultiSelect_div_27_Template","AngularMultiSelect_div_28_Template","AngularMultiSelect_div_29_Template","AngularMultiSelect_div_30_Template","AngularMultiSelect_div_31_Template","AngularMultiSelect_h5_32_Template","ɵɵpureFunction1","_c9","ɵɵattribute","ɵɵstyleProp","_c10","ɵɵpureFunction2","_c11","_c12","NgClass","NgForOf","NgStyle","DefaultValueAccessor","NgControlStatus","NgModel","ClickOutsideDirective","AngularMultiSelectModule","FormsModule","_c0","Ng2DropdownButton_span_3_Template","rf","ctx","ɵɵelementStart","ɵɵnamespaceSVG","ɵɵelement","ɵɵelementEnd","Ng2DropdownMenu_div_3_Template","_r1","ɵɵgetCurrentView","ɵɵlistener","ɵɵrestoreView","ctx_r1","ɵɵnextContext","ɵɵresetView","_c1","_c2","Ng2DropdownButton","element","EventEmitter","__ngFactoryType__","ɵɵdirectiveInject","ElementRef","ɵɵdefineComponent","ɵɵprojectionDef","ɵɵprojection","ɵɵtemplate","ɵɵadvance","ɵɵproperty","NgIf","KEYS","onSwitchNext","index","items","state","onSwitchPrev","onBackspace","onEscape","onItemClicked","ACTIONS","arrowKeysHandler","event","Ng2DropdownState","item","dispatchEvent","DropdownStateService","ɵɵdefineInjectable","Ng2MenuItem","$event","ɵɵclassProp","Ng2DropdownMenu","dropdownState","renderer","position","dynamic","dc","wd","key","supportPageOffset","isCSS1Compat","x","y","top","left","clientWidth","clientHeight","marginFromBottom","marginFromRight","windowScrollHeight","windowScrollWidth","marginRight","offset","elem","Renderer2","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵclassMapInterpolate1","ɵɵstyleProp","trigger","style","transition","animate","keyframes","Ng2Dropdown","newSelectedItem","ɵɵresolveWindow","ɵɵProvidersFeature","Ng2DropdownModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","_c0","_c1","a0","a1","TagComponent_div_1_ng_template_1_Template","rf","ctx","TagComponent_div_1_Template","ɵɵelementStart","ɵɵtemplate","ɵɵelementEnd","ctx_r0","ɵɵnextContext","ɵɵattribute","ɵɵadvance","ɵɵproperty","ɵɵpureFunction2","TagComponent_div_2_delete_icon_3_Template","_r3","ɵɵgetCurrentView","ɵɵlistener","$event","ɵɵrestoreView","ɵɵresetView","TagComponent_div_2_Template","_r2","ɵɵtext","ɵɵtextInterpolate1","TagComponent_tag_ripple_3_Template","ɵɵelement","_c2","a2","TagInputDropdown_ng2_menu_item_2_span_1_Template","ɵɵpipe","item_r1","ctx_r1","ɵɵpipeBind2","ɵɵsanitizeHtml","TagInputDropdown_ng2_menu_item_2_2_ng_template_0_Template","TagInputDropdown_ng2_menu_item_2_2_Template","ctx_r2","index_r4","last_r5","ɵɵpureFunction3","TagInputDropdown_ng2_menu_item_2_Template","_c3","TagInputComponent_tag_2_Template","_r1","item_r2","ctx_r3","i_r5","ctx_r5","ɵɵpropertyInterpolate","TagInputComponent_div_4_Template","TagInputComponent_div_6_p_1_Template","error_r7","ɵɵtextInterpolate","TagInputComponent_div_6_Template","escape","s","HighlightPipe","value","arg","regex","__ngFactoryType__","ɵɵdefinePipe","PLACEHOLDER","SECONDARY_PLACEHOLDER","KEYDOWN","KEYUP","MAX_ITEMS_WARNING","ACTIONS_KEYS","KEY_PRESS_ACTIONS","DRAG_AND_DROP_KEY","NEXT","PREV","DragProvider","event","tag","data","sender","receiver","indexDragged","indexDropped","state","__spreadValues","key","__ngFactoryType__","ɵɵdefineInjectable","defaults","PLACEHOLDER","SECONDARY_PLACEHOLDER","matchingFn","value","target","targetValue","OptionsProvider","options","isObject","obj","TagInputAccessor","items","fn","item","fromDropdown","property","index","position","ɵɵdefineDirective","listen","listenerType","action","condition","TagInputForm","EventEmitter","FormControl","text","FormGroup","changes","doc","messages","err","dirty","valid","input","$event","ɵɵdefineComponent","rf","ctx","ɵɵviewQuery","_c0","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵNgOnChangesFeature","_r1","ɵɵgetCurrentView","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","ɵɵresetView","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","ɵɵpropertyInterpolate","ɵɵattribute","ɵNgNoValidate","NgControlStatusGroup","FormGroupDirective","DefaultValueAccessor","MinLengthValidator","NgControlStatus","FormControlName","NgClass","TagRipple","ɵɵelement","trigger","style","transition","animate","keyframes","DeleteIconComponent","ɵɵnamespaceSVG","navigator","isChrome","TagComponent","element","renderer","cdRef","classList","result","__spreadProps","model","exists","hasId","ɵɵdirectiveInject","ElementRef","Renderer2","ChangeDetectorRef","ɵɵclassProp","ɵɵtemplate","TagComponent_div_1_Template","TagComponent_div_2_Template","TagComponent_tag_ripple_3_Template","NgSwitch","NgSwitchCase","NgTemplateOutlet","NgIf","animations","TagInputDropdown","injector","TagInputComponent","maxItemsReached","hasMinimumText","hasItems","isHidden","showDropdownIfEmpty","isDisabled","shouldShow","shouldHide","__async","subscribeFn","first","DEBOUNCE_TIME","KEEP_OPEN","distinctUntilChanged","debounceTime","filter","formValue","display","dupesAllowed","hasValue","identifyBy","Injector","dirIndex","ɵɵcontentQuery","TemplateRef","Ng2Dropdown","ɵɵresolveWindow","TagInputDropdown_ng2_menu_item_2_Template","Ng2DropdownMenu","Ng2MenuItem","NgForOf","NgSwitchDefault","HighlightPipe","CUSTOM_ACCESSOR","NG_VALUE_ACCESSOR","forwardRef","dragProvider","KEYDOWN","KEYUP","trim","val","fromAutocomplete","selectedItem","dupe","isFromAutocomplete","assertions","isIE","clipboardData","type","requests","resetInput","statusChanges$","status","map","resolve","giveupFocus","reject","emit","eventName","listener","shiftKey","emitEvent","applyFocus","displayAutocomplete","template","menuTemplate","form","isReceiver","isDropping","changedElement","direction","isLast","isFirst","offset","reset","appendItem","isTagValid","onValidationError","statusUpdate","useSeparatorKeys","hasKeyCode","hasKey","isIMEProcessing","filterFn","id","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","_c3","ɵɵprojectionDef","TagInputComponent_tag_2_Template","TagInputComponent_div_4_Template","ɵɵpipe","TagInputComponent_div_6_Template","ɵɵprojection","ɵɵpipeBind1","AsyncPipe","optionsProvider","TagInputModule","ɵɵdefineNgModule","ɵɵdefineInjector","COMPOSITION_BUFFER_MODE","CommonModule","ReactiveFormsModule","FormsModule","Ng2DropdownModule","layoutRoutes","path","component","LayoutComponent","canActivate","AuthGuard","children","DashboardComponent","outlet","RecipesComponent","SystemTablesComponent","HighchartsChartModule","__ngFactoryType__","ɵɵdefineNgModule","ɵɵdefineInjector","initialState","SET_LOCATION","locationReducer","state","action","type","payload","import_hammerjs","PotdModule","provideHttpClient","withInterceptorsFromDi","imports","CommonModule","FormsModule","ReactiveFormsModule","DateInputsModule","InputsModule","LabelModule","ButtonsModule","CanvasGsePopupSettingsModule","CommonModule","FormsModule","ReactiveFormsModule","MatButtonToggleModule","CanvasWidgetTemplatePopupSettingsModule","CommonModule","FormsModule","ReactiveFormsModule","MatButtonToggleModule","DragDropModule","MatFormFieldModule","MatInputModule","MatSelectModule","ColorPickerModule","MatRadioModule","MatAutocompleteModule","GaugesModule","TacticalDashboardIntervalPopupConfirmationSettingsModule","CommonModule","DragDropModule","MatButtonModule","MatTooltipModule","MatSelectModule","MatCheckboxModule","FormsModule","ReactiveFormsModule","GridModule","RecursiveDataNavigatorModule","CommonModule","ReactiveFormsModule","FormsModule","DynamicFormModule","DragDropModule","PipeModule","LoadingSpinnerModule","DashboardCopyModule","CommonModule","MatButtonModule","MatTooltipModule","FormsModule","ReactiveFormsModule","MatInputModule","MatOptionModule","MatAutocompleteModule","MatSelectModule","MatFormFieldModule","DynamicFormModule","NinjaStatisticsContentModule","CommonModule","MatTabsModule","LoadingSpinnerModule","GridModule","MatSliderModule","ReactiveFormsModule","FormsModule","ChartsModule","SassHelperModule","KendoGridParentModule","MulticheckFilterModule","CommonModule","FileUploadListModule","CommonModule","MatMenuModule","DragDropModule","MatProgressBarModule","PipeModule","DropzoneModule","MatButtonModule","SignalRTestModule","CommonModule","FormsModule","ReactiveFormsModule","KendoGridParentModule","TrainingLessonsModule","CommonModule","GridModule","TrainingCoursesModule","CommonModule","GridModule","TrainingLessonsModule","AddTemplateToCanvasModule","CommonModule","MatButtonModule","MatTooltipModule","LoadingSpinnerModule","MatDialogModule","MatTabsModule","MatTableModule","GridModule","DirectivesModule","SharedDashboardModule","CommonModule","GridsterModule","MatFormFieldModule","MatSelectModule","MatTooltipModule","MatSlideToggleModule","WidgetSettingsModule","LiveDataModule","TooltipModule","FormsModule","IonicModule","DirectivesModule","MatButtonModule","DatePickerModule","DateInputsModule","ReactiveFormsModule","TourMatMenuModule","MatIconModule","MatBadgeModule","CustomerIssuesListModule","CommonModule","LoadingSpinnerModule","MatTooltipModule","GridModule","MatIconModule","MatBadgeModule","BadgeModule","DynamicFormModule","ReactiveFormsModule","FormsModule","ExcelModule","PDFModule","RouterModule","CustomerIssuesItemModule","CommonModule","GridModule","MatTooltipModule","MatIconModule","MatBadgeModule","BadgeModule","DynamicFormModule","ReactiveFormsModule","FormsModule","ExcelModule","PDFModule","LoadingSpinnerModule","LogbookModule","CommonModule","MatButtonModule","MatTooltipModule","KendoGridParentModule","DashboardCustomTimescopePopupConfirmationSettingsModule","CommonModule","FormsModule","ReactiveFormsModule","MatTooltipModule","DatePickerModule","DateInputsModule","LabelModule","TacticalWidgetSummaryTilePopupModule","CommonModule","FormsModule","ReactiveFormsModule","MatButtonToggleModule","DragDropModule","MatFormFieldModule","MatInputModule","MatSelectModule","ColorPickerModule","MatRadioModule","MatAutocompleteModule","import_lodash","import_sweetalert2","BreadCrumbsEventsTemplatePopupModule","CommonModule","FormsModule","ReactiveFormsModule","MatButtonToggleModule","DragDropModule","MatFormFieldModule","MatInputModule","MatSelectModule","ColorPickerModule","MatRadioModule","MatAutocompleteModule","UserEngagementReportModule","CommonModule","FormsModule","ReactiveFormsModule","KendoGridParentModule","MatFormFieldModule","MatSelectModule","MaterialInputModule","MatDatepickerModule","MatIconModule","MatInputModule","CenteredMessageModule","CanvasTabsListModule","CommonModule","FormsModule","IonicModule","GridModule","MatMenuModule","MatButtonModule","SiteLayoutModule","provideHttpClient","withInterceptorsFromDi","imports","CommonModule","FormsModule","ReactiveFormsModule","BsDropdownModule","forRoot","ProgressbarModule","TooltipModule","TimepickerModule","PopoverModule","CollapseModule","TagInputModule","AngularMultiSelectModule","TabsModule","PaginationModule","AlertModule","BsDatepickerModule","CarouselModule","ModalModule","RouterModule","forChild","layoutRoutes","UserModule","GridsterModule","DragDropModule","MaterialModule","HighchartsChartModule","GridModule","GaugesModule","ExcelModule","PDFModule","PopupModule","MultiSelectModule","StoreModule","loc","locationReducer","ChartModule","StockChartModule","ProgressBarModule","SparklineModule","TelerikReportingModule","SchedulerModule","DateInputsModule","InputsModule","ColorPickerModule","NgbModule","SliderModule","LabelModule","LiveDataModule","DialogModalParentComponentModule","CanvasPopupSettingsModule","CanvasGsePopupSettingsModule","JbtStandardObservationIdTemplateModule","JbtStandardObservationIdTemplateTagsModule","CanvasWidgetTemplatePopupSettingsModule","WidgetSettingsModule","DashboardTimescopePopupConfirmationSettingsModule","DashboardTimezonePopupConfirmationSettingsModule","TacticalDashboardIntervalPopupConfirmationSettingsModule","BreadCrumbsEventsTemplatePopupModule","AddWidgetToDashboardModule","RecursiveDataNavigatorModule","DynamicFormModule","DashboardEditModule","DashboardCopyModule","NinjaStatisticsContentModule","MulticheckFilterModule","LoadingSpinnerModule","FileUploadListModule","SignalRTestModule","PotdModule","LocateAllGseWidgetModule","TrainingCoursesModule","TrainingLessonsModule","AddTemplateToCanvasModule","NavigationModule","SharedDashboardModule","DirectivesModule","VideoPlayerModule","IconsModule","IndicatorsModule","CustomerIssuesListModule","CustomerIssuesItemModule","LogbookModule","DashboardCustomTimescopePopupConfirmationSettingsModule","TacticalWidgetSummaryTilePopupModule","UserEngagementReportModule","CanvasTabsListModule","import_hammerjs","SnackbarBroadcastMessageModule","CommonModule","MatSnackBarModule","MatIconModule","MatButtonModule","CanvasDesignerModule","CommonModule","CanvasModule","MatMenuModule","MatButtonModule","CanvasGsePopupSettingsModule","AppModule","bootstrap","AppComponent","provide","LocationStrategy","useClass","HashLocationStrategy","TourService","provideHttpClient","withInterceptorsFromDi","imports","BrowserModule","BrowserAnimationsModule","RouterModule","ToastrModule","forRoot","timeOut","positionClass","preventDuplicates","UserModule","SiteLayoutModule","StorageModule","IDBNoWrap","ServicesModule","MaterialModule","BsDatepickerModule","AppRoutingModule","ButtonsModule","GridModule","GaugesModule","ChartModule","SparklineModule","SchedulerModule","NgbModule","ReleaseNotesModule","LoadingSpinnerModule","SnackbarBroadcastMessageModule","AssetSummaryViewModule","CanvasDesignerModule","TourMatMenuModule","platformBrowser","bootstrapModule","AppModule","catch","err","console","error"],"x_google_ignoreList":[0,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,340,341,342,343,349,350,364,365,366,388,389,390,435,436,437,438,439,440,441,442,443,444,445,446,448]}