import "./chunk-MPJFGFS5.js";
import {
  ClientDatatableComponent
} from "./chunk-3RTU34A3.js";
import {
  AuthService,
  LanguageService
} from "./chunk-RWHSBLZT.js";
import {
  DocumentationComponent
} from "./chunk-7JJMDJQY.js";
import {
  MasterListComponent
} from "./chunk-EMVZVSCP.js";
import {
  ProfileApiService,
  RouteUpdateService
} from "./chunk-KV3IUGXW.js";
import "./chunk-TN2NHK56.js";
import "./chunk-TIV2UYBT.js";
import {
  NgMultiSelectDropDownModule
} from "./chunk-YWQICJL7.js";
import "./chunk-LAL7OD5G.js";
import "./chunk-BP5JJWGC.js";
import {
  registerHandlebarsHelpers,
  require_handlebars
} from "./chunk-IAAODDF7.js";
import {
  slideDownUp
} from "./chunk-2XS6LH2E.js";
import "./chunk-FXJXZPYD.js";
import {
  QuillModule
} from "./chunk-NFRJCL7R.js";
import {
  MonacoEditorModule
} from "./chunk-62OL73TD.js";
import {
  SafeHtmlPipe
} from "./chunk-IGGXREIH.js";
import {
  IconMenuDashboardComponent,
  MenuLoadService
} from "./chunk-RQRNO3LX.js";
import {
  IconCaretDownComponent
} from "./chunk-FTD7LLNQ.js";
import {
  LoaderComponent
} from "./chunk-X5XWBDVM.js";
import {
  require_sweetalert2_all
} from "./chunk-KLTWPXW2.js";
import "./chunk-XKNDBYX7.js";
import "./chunk-E6CBXFRG.js";
import {
  MenuMapService
} from "./chunk-3FLJCSSF.js";
import {
  ToastrModule,
  ToastrService
} from "./chunk-2YLAF7RI.js";
import {
  BidiModule,
  CommonSharedModule,
  Directionality,
  DynamicFontSizeDirective,
  MenuButtonDirective,
  MenuDirective,
  MenuItemDirective,
  MenuItemsPanelDirective,
  MenuModule,
  NgScrollbar,
  NgScrollbarModule,
  Platform,
  RtlScrollAxisType,
  Store,
  StoreModule,
  TimezoneService,
  _getEventTarget,
  _getFocusedElementPierceShadowDom,
  _getShadowRoot,
  coerceArray,
  coerceElement,
  coerceNumberProperty,
  getRtlScrollAxisType,
  normalizePassiveListenerOptions,
  supportsScrollBehavior
} from "./chunk-7NQGM4EA.js";
import {
  CheckboxControlValueAccessor,
  DefaultValueAccessor,
  FormBuilder,
  FormControlName,
  FormGroupDirective,
  FormsModule,
  NgControlStatus,
  NgControlStatusGroup,
  NgModel,
  NgSelectOption,
  ReactiveFormsModule,
  SelectControlValueAccessor,
  TranslateLoader,
  TranslateModule,
  TranslatePipe,
  TranslateService,
  Validators,
  ɵNgNoValidate,
  ɵNgSelectMultipleOption
} from "./chunk-NLYGDKUR.js";
import {
  AUTO_STYLE,
  AnimationGroupPlayer,
  AnimationMetadataType,
  NoopAnimationPlayer,
  animate,
  sequence,
  style,
  transition,
  trigger,
  ɵPRE_STYLE
} from "./chunk-ZEL7H2AL.js";
import {
  ActivatedRoute,
  GridApiService,
  LocalStorageService,
  NavigationEnd,
  Router,
  RouterLink,
  RouterLinkActive,
  RouterModule,
  RouterOutlet,
  commonConfig,
  environment,
  provideRouter
} from "./chunk-P7K2QEDI.js";
import {
  provideHighlightOptions
} from "./chunk-VXWW42GX.js";
import {
  ANIMATION_MODULE_TYPE,
  APP_ID,
  APP_INITIALIZER,
  ApplicationRef,
  BehaviorSubject,
  BrowserModule,
  CSP_NONCE,
  ChangeDetectionScheduler,
  ChangeDetectionStrategy,
  ChangeDetectorRef,
  CommonModule,
  Component,
  ConnectableObservable,
  DOCUMENT,
  DatePipe,
  Directive,
  DomRendererFactory2,
  DomSanitizer,
  ElementRef,
  EnvironmentInjector,
  ErrorHandler,
  EventEmitter,
  HashLocationStrategy,
  HttpClient,
  HttpClientModule,
  HttpErrorResponse,
  Inject,
  Injectable,
  InjectionToken,
  Injector,
  Input,
  InputFlags,
  IterableDiffers,
  LocationStrategy,
  NEVER,
  NgClass,
  NgForOf,
  NgIf,
  NgModule,
  NgStyle,
  NgZone,
  Observable,
  Optional,
  Output,
  PLATFORM_ID,
  Renderer2,
  RendererFactory2,
  RuntimeError,
  Self,
  SkipSelf,
  Subject,
  Subscription,
  TemplateRef,
  Title,
  ViewChild,
  ViewContainerRef,
  ViewEncapsulation$1,
  animationFrameScheduler,
  asapScheduler,
  auditTime,
  booleanAttribute,
  bootstrapApplication,
  catchError,
  combineLatest,
  concat,
  createComponent,
  debounceTime,
  defer,
  delay,
  distinctUntilChanged,
  filter,
  forkJoin,
  forwardRef,
  fromEvent,
  importProvidersFrom,
  inject,
  interval,
  isDevMode,
  isObservable,
  isPlatformBrowser,
  makeEnvironmentProviders,
  map,
  merge,
  of,
  pairwise,
  performanceMarkFeature,
  provideHttpClient,
  publish,
  setClassMetadata,
  shareReplay,
  skip,
  startWith,
  switchMap,
  take,
  takeUntil,
  tap,
  throwError,
  timer,
  withInterceptors,
  ɵsetClassDebugInfo,
  ɵɵInheritDefinitionFeature,
  ɵɵInputTransformsFeature,
  ɵɵNgOnChangesFeature,
  ɵɵProvidersFeature,
  ɵɵStandaloneFeature,
  ɵɵadvance,
  ɵɵattribute,
  ɵɵclassProp,
  ɵɵdefineComponent,
  ɵɵdefineDirective,
  ɵɵdefineInjectable,
  ɵɵdefineInjector,
  ɵɵdefineNgModule,
  ɵɵdirectiveInject,
  ɵɵelement,
  ɵɵelementContainerEnd,
  ɵɵelementContainerStart,
  ɵɵelementEnd,
  ɵɵelementStart,
  ɵɵgetCurrentView,
  ɵɵinject,
  ɵɵlistener,
  ɵɵloadQuery,
  ɵɵnamespaceHTML,
  ɵɵnamespaceSVG,
  ɵɵnextContext,
  ɵɵpipe,
  ɵɵpipeBind1,
  ɵɵprojection,
  ɵɵprojectionDef,
  ɵɵproperty,
  ɵɵpropertyInterpolate,
  ɵɵpureFunction0,
  ɵɵpureFunction1,
  ɵɵpureFunction2,
  ɵɵpureFunction4,
  ɵɵqueryRefresh,
  ɵɵreference,
  ɵɵresetView,
  ɵɵrestoreView,
  ɵɵsanitizeHtml,
  ɵɵsanitizeUrl,
  ɵɵstyleProp,
  ɵɵtemplate,
  ɵɵtemplateRefExtractor,
  ɵɵtext,
  ɵɵtextInterpolate,
  ɵɵtextInterpolate1,
  ɵɵtextInterpolate2,
  ɵɵviewQuery
} from "./chunk-GKZIWABI.js";
import {
  __async,
  __commonJS,
  __objRest,
  __spreadProps,
  __spreadValues,
  __toESM
} from "./chunk-CVWHNZRK.js";

// node_modules/apexcharts/dist/apexcharts.common.js
var require_apexcharts_common = __commonJS({
  "node_modules/apexcharts/dist/apexcharts.common.js"(exports, module) {
    "use strict";
    function t(t2, e2) {
      var i2 = Object.keys(t2);
      if (Object.getOwnPropertySymbols) {
        var a2 = Object.getOwnPropertySymbols(t2);
        e2 && (a2 = a2.filter(function(e3) {
          return Object.getOwnPropertyDescriptor(t2, e3).enumerable;
        })), i2.push.apply(i2, a2);
      }
      return i2;
    }
    function e(e2) {
      for (var i2 = 1; i2 < arguments.length; i2++) {
        var a2 = null != arguments[i2] ? arguments[i2] : {};
        i2 % 2 ? t(Object(a2), true).forEach(function(t2) {
          o(e2, t2, a2[t2]);
        }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e2, Object.getOwnPropertyDescriptors(a2)) : t(Object(a2)).forEach(function(t2) {
          Object.defineProperty(e2, t2, Object.getOwnPropertyDescriptor(a2, t2));
        });
      }
      return e2;
    }
    function i(t2) {
      return i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t3) {
        return typeof t3;
      } : function(t3) {
        return t3 && "function" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? "symbol" : typeof t3;
      }, i(t2);
    }
    function a(t2, e2) {
      if (!(t2 instanceof e2))
        throw new TypeError("Cannot call a class as a function");
    }
    function s(t2, e2) {
      for (var i2 = 0; i2 < e2.length; i2++) {
        var a2 = e2[i2];
        a2.enumerable = a2.enumerable || false, a2.configurable = true, "value" in a2 && (a2.writable = true), Object.defineProperty(t2, a2.key, a2);
      }
    }
    function r(t2, e2, i2) {
      return e2 && s(t2.prototype, e2), i2 && s(t2, i2), t2;
    }
    function o(t2, e2, i2) {
      return e2 in t2 ? Object.defineProperty(t2, e2, { value: i2, enumerable: true, configurable: true, writable: true }) : t2[e2] = i2, t2;
    }
    function n(t2, e2) {
      if ("function" != typeof e2 && null !== e2)
        throw new TypeError("Super expression must either be null or a function");
      t2.prototype = Object.create(e2 && e2.prototype, { constructor: { value: t2, writable: true, configurable: true } }), e2 && h(t2, e2);
    }
    function l(t2) {
      return l = Object.setPrototypeOf ? Object.getPrototypeOf : function(t3) {
        return t3.__proto__ || Object.getPrototypeOf(t3);
      }, l(t2);
    }
    function h(t2, e2) {
      return h = Object.setPrototypeOf || function(t3, e3) {
        return t3.__proto__ = e3, t3;
      }, h(t2, e2);
    }
    function c(t2) {
      if (void 0 === t2)
        throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
      return t2;
    }
    function d(t2) {
      var e2 = function() {
        if ("undefined" == typeof Reflect || !Reflect.construct)
          return false;
        if (Reflect.construct.sham)
          return false;
        if ("function" == typeof Proxy)
          return true;
        try {
          return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
          })), true;
        } catch (t3) {
          return false;
        }
      }();
      return function() {
        var i2, a2 = l(t2);
        if (e2) {
          var s2 = l(this).constructor;
          i2 = Reflect.construct(a2, arguments, s2);
        } else
          i2 = a2.apply(this, arguments);
        return function(t3, e3) {
          if (e3 && ("object" == typeof e3 || "function" == typeof e3))
            return e3;
          if (void 0 !== e3)
            throw new TypeError("Derived constructors may only return object or undefined");
          return c(t3);
        }(this, i2);
      };
    }
    function g(t2, e2) {
      return function(t3) {
        if (Array.isArray(t3))
          return t3;
      }(t2) || function(t3, e3) {
        var i2 = null == t3 ? null : "undefined" != typeof Symbol && t3[Symbol.iterator] || t3["@@iterator"];
        if (null == i2)
          return;
        var a2, s2, r2 = [], o2 = true, n2 = false;
        try {
          for (i2 = i2.call(t3); !(o2 = (a2 = i2.next()).done) && (r2.push(a2.value), !e3 || r2.length !== e3); o2 = true)
            ;
        } catch (t4) {
          n2 = true, s2 = t4;
        } finally {
          try {
            o2 || null == i2.return || i2.return();
          } finally {
            if (n2)
              throw s2;
          }
        }
        return r2;
      }(t2, e2) || p(t2, e2) || function() {
        throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
      }();
    }
    function u(t2) {
      return function(t3) {
        if (Array.isArray(t3))
          return f(t3);
      }(t2) || function(t3) {
        if ("undefined" != typeof Symbol && null != t3[Symbol.iterator] || null != t3["@@iterator"])
          return Array.from(t3);
      }(t2) || p(t2) || function() {
        throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
      }();
    }
    function p(t2, e2) {
      if (t2) {
        if ("string" == typeof t2)
          return f(t2, e2);
        var i2 = Object.prototype.toString.call(t2).slice(8, -1);
        return "Object" === i2 && t2.constructor && (i2 = t2.constructor.name), "Map" === i2 || "Set" === i2 ? Array.from(t2) : "Arguments" === i2 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i2) ? f(t2, e2) : void 0;
      }
    }
    function f(t2, e2) {
      (null == e2 || e2 > t2.length) && (e2 = t2.length);
      for (var i2 = 0, a2 = new Array(e2); i2 < e2; i2++)
        a2[i2] = t2[i2];
      return a2;
    }
    var x = function() {
      function t2() {
        a(this, t2);
      }
      return r(t2, [{ key: "shadeRGBColor", value: function(t3, e2) {
        var i2 = e2.split(","), a2 = t3 < 0 ? 0 : 255, s2 = t3 < 0 ? -1 * t3 : t3, r2 = parseInt(i2[0].slice(4), 10), o2 = parseInt(i2[1], 10), n2 = parseInt(i2[2], 10);
        return "rgb(" + (Math.round((a2 - r2) * s2) + r2) + "," + (Math.round((a2 - o2) * s2) + o2) + "," + (Math.round((a2 - n2) * s2) + n2) + ")";
      } }, { key: "shadeHexColor", value: function(t3, e2) {
        var i2 = parseInt(e2.slice(1), 16), a2 = t3 < 0 ? 0 : 255, s2 = t3 < 0 ? -1 * t3 : t3, r2 = i2 >> 16, o2 = i2 >> 8 & 255, n2 = 255 & i2;
        return "#" + (16777216 + 65536 * (Math.round((a2 - r2) * s2) + r2) + 256 * (Math.round((a2 - o2) * s2) + o2) + (Math.round((a2 - n2) * s2) + n2)).toString(16).slice(1);
      } }, { key: "shadeColor", value: function(e2, i2) {
        return t2.isColorHex(i2) ? this.shadeHexColor(e2, i2) : this.shadeRGBColor(e2, i2);
      } }], [{ key: "bind", value: function(t3, e2) {
        return function() {
          return t3.apply(e2, arguments);
        };
      } }, { key: "isObject", value: function(t3) {
        return t3 && "object" === i(t3) && !Array.isArray(t3) && null != t3;
      } }, { key: "is", value: function(t3, e2) {
        return Object.prototype.toString.call(e2) === "[object " + t3 + "]";
      } }, { key: "listToArray", value: function(t3) {
        var e2, i2 = [];
        for (e2 = 0; e2 < t3.length; e2++)
          i2[e2] = t3[e2];
        return i2;
      } }, { key: "extend", value: function(t3, e2) {
        var i2 = this;
        "function" != typeof Object.assign && (Object.assign = function(t4) {
          if (null == t4)
            throw new TypeError("Cannot convert undefined or null to object");
          for (var e3 = Object(t4), i3 = 1; i3 < arguments.length; i3++) {
            var a3 = arguments[i3];
            if (null != a3)
              for (var s2 in a3)
                a3.hasOwnProperty(s2) && (e3[s2] = a3[s2]);
          }
          return e3;
        });
        var a2 = Object.assign({}, t3);
        return this.isObject(t3) && this.isObject(e2) && Object.keys(e2).forEach(function(s2) {
          i2.isObject(e2[s2]) && s2 in t3 ? a2[s2] = i2.extend(t3[s2], e2[s2]) : Object.assign(a2, o({}, s2, e2[s2]));
        }), a2;
      } }, { key: "extendArray", value: function(e2, i2) {
        var a2 = [];
        return e2.map(function(e3) {
          a2.push(t2.extend(i2, e3));
        }), e2 = a2;
      } }, { key: "monthMod", value: function(t3) {
        return t3 % 12;
      } }, { key: "clone", value: function(e2) {
        if (t2.is("Array", e2)) {
          for (var a2 = [], s2 = 0; s2 < e2.length; s2++)
            a2[s2] = this.clone(e2[s2]);
          return a2;
        }
        if (t2.is("Null", e2))
          return null;
        if (t2.is("Date", e2))
          return e2;
        if ("object" === i(e2)) {
          var r2 = {};
          for (var o2 in e2)
            e2.hasOwnProperty(o2) && (r2[o2] = this.clone(e2[o2]));
          return r2;
        }
        return e2;
      } }, { key: "log10", value: function(t3) {
        return Math.log(t3) / Math.LN10;
      } }, { key: "roundToBase10", value: function(t3) {
        return Math.pow(10, Math.floor(Math.log10(t3)));
      } }, { key: "roundToBase", value: function(t3, e2) {
        return Math.pow(e2, Math.floor(Math.log(t3) / Math.log(e2)));
      } }, { key: "parseNumber", value: function(t3) {
        return null === t3 ? t3 : parseFloat(t3);
      } }, { key: "stripNumber", value: function(t3) {
        var e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 2;
        return Number.isInteger(t3) ? t3 : parseFloat(t3.toPrecision(e2));
      } }, { key: "randomId", value: function() {
        return (Math.random() + 1).toString(36).substring(4);
      } }, { key: "noExponents", value: function(t3) {
        var e2 = String(t3).split(/[eE]/);
        if (1 === e2.length)
          return e2[0];
        var i2 = "", a2 = t3 < 0 ? "-" : "", s2 = e2[0].replace(".", ""), r2 = Number(e2[1]) + 1;
        if (r2 < 0) {
          for (i2 = a2 + "0."; r2++; )
            i2 += "0";
          return i2 + s2.replace(/^-/, "");
        }
        for (r2 -= s2.length; r2--; )
          i2 += "0";
        return s2 + i2;
      } }, { key: "getDimensions", value: function(t3) {
        var e2 = getComputedStyle(t3, null), i2 = t3.clientHeight, a2 = t3.clientWidth;
        return i2 -= parseFloat(e2.paddingTop) + parseFloat(e2.paddingBottom), [a2 -= parseFloat(e2.paddingLeft) + parseFloat(e2.paddingRight), i2];
      } }, { key: "getBoundingClientRect", value: function(t3) {
        var e2 = t3.getBoundingClientRect();
        return { top: e2.top, right: e2.right, bottom: e2.bottom, left: e2.left, width: t3.clientWidth, height: t3.clientHeight, x: e2.left, y: e2.top };
      } }, { key: "getLargestStringFromArr", value: function(t3) {
        return t3.reduce(function(t4, e2) {
          return Array.isArray(e2) && (e2 = e2.reduce(function(t5, e3) {
            return t5.length > e3.length ? t5 : e3;
          })), t4.length > e2.length ? t4 : e2;
        }, 0);
      } }, { key: "hexToRgba", value: function() {
        var t3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "#999999", e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0.6;
        "#" !== t3.substring(0, 1) && (t3 = "#999999");
        var i2 = t3.replace("#", "");
        i2 = i2.match(new RegExp("(.{" + i2.length / 3 + "})", "g"));
        for (var a2 = 0; a2 < i2.length; a2++)
          i2[a2] = parseInt(1 === i2[a2].length ? i2[a2] + i2[a2] : i2[a2], 16);
        return void 0 !== e2 && i2.push(e2), "rgba(" + i2.join(",") + ")";
      } }, { key: "getOpacityFromRGBA", value: function(t3) {
        return parseFloat(t3.replace(/^.*,(.+)\)/, "$1"));
      } }, { key: "rgb2hex", value: function(t3) {
        return (t3 = t3.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i)) && 4 === t3.length ? "#" + ("0" + parseInt(t3[1], 10).toString(16)).slice(-2) + ("0" + parseInt(t3[2], 10).toString(16)).slice(-2) + ("0" + parseInt(t3[3], 10).toString(16)).slice(-2) : "";
      } }, { key: "isColorHex", value: function(t3) {
        return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)|(^#[0-9A-F]{8}$)/i.test(t3);
      } }, { key: "getPolygonPos", value: function(t3, e2) {
        for (var i2 = [], a2 = 2 * Math.PI / e2, s2 = 0; s2 < e2; s2++) {
          var r2 = {};
          r2.x = t3 * Math.sin(s2 * a2), r2.y = -t3 * Math.cos(s2 * a2), i2.push(r2);
        }
        return i2;
      } }, { key: "polarToCartesian", value: function(t3, e2, i2, a2) {
        var s2 = (a2 - 90) * Math.PI / 180;
        return { x: t3 + i2 * Math.cos(s2), y: e2 + i2 * Math.sin(s2) };
      } }, { key: "escapeString", value: function(t3) {
        var e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "x", i2 = t3.toString().slice();
        return i2 = i2.replace(/[` ~!@#$%^&*()|+\=?;:'",.<>{}[\]\\/]/gi, e2);
      } }, { key: "negToZero", value: function(t3) {
        return t3 < 0 ? 0 : t3;
      } }, { key: "moveIndexInArray", value: function(t3, e2, i2) {
        if (i2 >= t3.length)
          for (var a2 = i2 - t3.length + 1; a2--; )
            t3.push(void 0);
        return t3.splice(i2, 0, t3.splice(e2, 1)[0]), t3;
      } }, { key: "extractNumber", value: function(t3) {
        return parseFloat(t3.replace(/[^\d.]*/g, ""));
      } }, { key: "findAncestor", value: function(t3, e2) {
        for (; (t3 = t3.parentElement) && !t3.classList.contains(e2); )
          ;
        return t3;
      } }, { key: "setELstyles", value: function(t3, e2) {
        for (var i2 in e2)
          e2.hasOwnProperty(i2) && (t3.style.key = e2[i2]);
      } }, { key: "isNumber", value: function(t3) {
        return !isNaN(t3) && parseFloat(Number(t3)) === t3 && !isNaN(parseInt(t3, 10));
      } }, { key: "isFloat", value: function(t3) {
        return Number(t3) === t3 && t3 % 1 != 0;
      } }, { key: "isSafari", value: function() {
        return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
      } }, { key: "isFirefox", value: function() {
        return navigator.userAgent.toLowerCase().indexOf("firefox") > -1;
      } }, { key: "isIE11", value: function() {
        if (-1 !== window.navigator.userAgent.indexOf("MSIE") || window.navigator.appVersion.indexOf("Trident/") > -1)
          return true;
      } }, { key: "isIE", value: function() {
        var t3 = window.navigator.userAgent, e2 = t3.indexOf("MSIE ");
        if (e2 > 0)
          return parseInt(t3.substring(e2 + 5, t3.indexOf(".", e2)), 10);
        if (t3.indexOf("Trident/") > 0) {
          var i2 = t3.indexOf("rv:");
          return parseInt(t3.substring(i2 + 3, t3.indexOf(".", i2)), 10);
        }
        var a2 = t3.indexOf("Edge/");
        return a2 > 0 && parseInt(t3.substring(a2 + 5, t3.indexOf(".", a2)), 10);
      } }]), t2;
    }();
    var b = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.setEasingFunctions();
      }
      return r(t2, [{ key: "setEasingFunctions", value: function() {
        var t3;
        if (!this.w.globals.easing) {
          switch (this.w.config.chart.animations.easing) {
            case "linear":
              t3 = "-";
              break;
            case "easein":
              t3 = "<";
              break;
            case "easeout":
              t3 = ">";
              break;
            case "easeinout":
            default:
              t3 = "<>";
              break;
            case "swing":
              t3 = function(t4) {
                var e2 = 1.70158;
                return (t4 -= 1) * t4 * ((e2 + 1) * t4 + e2) + 1;
              };
              break;
            case "bounce":
              t3 = function(t4) {
                return t4 < 1 / 2.75 ? 7.5625 * t4 * t4 : t4 < 2 / 2.75 ? 7.5625 * (t4 -= 1.5 / 2.75) * t4 + 0.75 : t4 < 2.5 / 2.75 ? 7.5625 * (t4 -= 2.25 / 2.75) * t4 + 0.9375 : 7.5625 * (t4 -= 2.625 / 2.75) * t4 + 0.984375;
              };
              break;
            case "elastic":
              t3 = function(t4) {
                return t4 === !!t4 ? t4 : Math.pow(2, -10 * t4) * Math.sin((t4 - 0.075) * (2 * Math.PI) / 0.3) + 1;
              };
          }
          this.w.globals.easing = t3;
        }
      } }, { key: "animateLine", value: function(t3, e2, i2, a2) {
        t3.attr(e2).animate(a2).attr(i2);
      } }, { key: "animateMarker", value: function(t3, e2, i2, a2, s2, r2) {
        e2 || (e2 = 0), t3.attr({ r: e2, width: e2, height: e2 }).animate(a2, s2).attr({ r: i2, width: i2.width, height: i2.height }).afterAll(function() {
          r2();
        });
      } }, { key: "animateCircle", value: function(t3, e2, i2, a2, s2) {
        t3.attr({ r: e2.r, cx: e2.cx, cy: e2.cy }).animate(a2, s2).attr({ r: i2.r, cx: i2.cx, cy: i2.cy });
      } }, { key: "animateRect", value: function(t3, e2, i2, a2, s2) {
        t3.attr(e2).animate(a2).attr(i2).afterAll(function() {
          return s2();
        });
      } }, { key: "animatePathsGradually", value: function(t3) {
        var e2 = t3.el, i2 = t3.realIndex, a2 = t3.j, s2 = t3.fill, r2 = t3.pathFrom, o2 = t3.pathTo, n2 = t3.speed, l2 = t3.delay, h2 = this.w, c2 = 0;
        h2.config.chart.animations.animateGradually.enabled && (c2 = h2.config.chart.animations.animateGradually.delay), h2.config.chart.animations.dynamicAnimation.enabled && h2.globals.dataChanged && "bar" !== h2.config.chart.type && (c2 = 0), this.morphSVG(e2, i2, a2, "line" !== h2.config.chart.type || h2.globals.comboCharts ? s2 : "stroke", r2, o2, n2, l2 * c2);
      } }, { key: "showDelayedElements", value: function() {
        this.w.globals.delayedElements.forEach(function(t3) {
          var e2 = t3.el;
          e2.classList.remove("apexcharts-element-hidden"), e2.classList.add("apexcharts-hidden-element-shown");
        });
      } }, { key: "animationCompleted", value: function(t3) {
        var e2 = this.w;
        e2.globals.animationEnded || (e2.globals.animationEnded = true, this.showDelayedElements(), "function" == typeof e2.config.chart.events.animationEnd && e2.config.chart.events.animationEnd(this.ctx, { el: t3, w: e2 }));
      } }, { key: "morphSVG", value: function(t3, e2, i2, a2, s2, r2, o2, n2) {
        var l2 = this, h2 = this.w;
        s2 || (s2 = t3.attr("pathFrom")), r2 || (r2 = t3.attr("pathTo"));
        var c2 = function(t4) {
          return "radar" === h2.config.chart.type && (o2 = 1), "M 0 ".concat(h2.globals.gridHeight);
        };
        (!s2 || s2.indexOf("undefined") > -1 || s2.indexOf("NaN") > -1) && (s2 = c2()), (!r2 || r2.indexOf("undefined") > -1 || r2.indexOf("NaN") > -1) && (r2 = c2()), h2.globals.shouldAnimate || (o2 = 1), t3.plot(s2).animate(1, h2.globals.easing, n2).plot(s2).animate(o2, h2.globals.easing, n2).plot(r2).afterAll(function() {
          x.isNumber(i2) ? i2 === h2.globals.series[h2.globals.maxValsInArrayIndex].length - 2 && h2.globals.shouldAnimate && l2.animationCompleted(t3) : "none" !== a2 && h2.globals.shouldAnimate && (!h2.globals.comboCharts && e2 === h2.globals.series.length - 1 || h2.globals.comboCharts) && l2.animationCompleted(t3), l2.showDelayedElements();
        });
      } }]), t2;
    }();
    var v = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "getDefaultFilter", value: function(t3, e2) {
        var i2 = this.w;
        t3.unfilter(true), new window.SVG.Filter().size("120%", "180%", "-5%", "-40%"), "none" !== i2.config.states.normal.filter ? this.applyFilter(t3, e2, i2.config.states.normal.filter.type, i2.config.states.normal.filter.value) : i2.config.chart.dropShadow.enabled && this.dropShadow(t3, i2.config.chart.dropShadow, e2);
      } }, { key: "addNormalFilter", value: function(t3, e2) {
        var i2 = this.w;
        i2.config.chart.dropShadow.enabled && !t3.node.classList.contains("apexcharts-marker") && this.dropShadow(t3, i2.config.chart.dropShadow, e2);
      } }, { key: "addLightenFilter", value: function(t3, e2, i2) {
        var a2 = this, s2 = this.w, r2 = i2.intensity;
        t3.unfilter(true);
        new window.SVG.Filter();
        t3.filter(function(t4) {
          var i3 = s2.config.chart.dropShadow;
          (i3.enabled ? a2.addShadow(t4, e2, i3) : t4).componentTransfer({ rgb: { type: "linear", slope: 1.5, intercept: r2 } });
        }), t3.filterer.node.setAttribute("filterUnits", "userSpaceOnUse"), this._scaleFilterSize(t3.filterer.node);
      } }, { key: "addDarkenFilter", value: function(t3, e2, i2) {
        var a2 = this, s2 = this.w, r2 = i2.intensity;
        t3.unfilter(true);
        new window.SVG.Filter();
        t3.filter(function(t4) {
          var i3 = s2.config.chart.dropShadow;
          (i3.enabled ? a2.addShadow(t4, e2, i3) : t4).componentTransfer({ rgb: { type: "linear", slope: r2 } });
        }), t3.filterer.node.setAttribute("filterUnits", "userSpaceOnUse"), this._scaleFilterSize(t3.filterer.node);
      } }, { key: "applyFilter", value: function(t3, e2, i2) {
        var a2 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0.5;
        switch (i2) {
          case "none":
            this.addNormalFilter(t3, e2);
            break;
          case "lighten":
            this.addLightenFilter(t3, e2, { intensity: a2 });
            break;
          case "darken":
            this.addDarkenFilter(t3, e2, { intensity: a2 });
        }
      } }, { key: "addShadow", value: function(t3, e2, i2) {
        var a2 = i2.blur, s2 = i2.top, r2 = i2.left, o2 = i2.color, n2 = i2.opacity, l2 = t3.flood(Array.isArray(o2) ? o2[e2] : o2, n2).composite(t3.sourceAlpha, "in").offset(r2, s2).gaussianBlur(a2).merge(t3.source);
        return t3.blend(t3.source, l2);
      } }, { key: "dropShadow", value: function(t3, e2) {
        var i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, a2 = e2.top, s2 = e2.left, r2 = e2.blur, o2 = e2.color, n2 = e2.opacity, l2 = e2.noUserSpaceOnUse, h2 = this.w;
        return t3.unfilter(true), x.isIE() && "radialBar" === h2.config.chart.type || (o2 = Array.isArray(o2) ? o2[i2] : o2, t3.filter(function(t4) {
          var e3 = null;
          e3 = x.isSafari() || x.isFirefox() || x.isIE() ? t4.flood(o2, n2).composite(t4.sourceAlpha, "in").offset(s2, a2).gaussianBlur(r2) : t4.flood(o2, n2).composite(t4.sourceAlpha, "in").offset(s2, a2).gaussianBlur(r2).merge(t4.source), t4.blend(t4.source, e3);
        }), l2 || t3.filterer.node.setAttribute("filterUnits", "userSpaceOnUse"), this._scaleFilterSize(t3.filterer.node)), t3;
      } }, { key: "setSelectionFilter", value: function(t3, e2, i2) {
        var a2 = this.w;
        if (void 0 !== a2.globals.selectedDataPoints[e2] && a2.globals.selectedDataPoints[e2].indexOf(i2) > -1) {
          t3.node.setAttribute("selected", true);
          var s2 = a2.config.states.active.filter;
          "none" !== s2 && this.applyFilter(t3, e2, s2.type, s2.value);
        }
      } }, { key: "_scaleFilterSize", value: function(t3) {
        !function(e2) {
          for (var i2 in e2)
            e2.hasOwnProperty(i2) && t3.setAttribute(i2, e2[i2]);
        }({ width: "200%", height: "200%", x: "-50%", y: "-50%" });
      } }]), t2;
    }();
    var m = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "roundPathCorners", value: function(t3, e2) {
        function i2(t4, e3, i3) {
          var s3 = e3.x - t4.x, r3 = e3.y - t4.y, o3 = Math.sqrt(s3 * s3 + r3 * r3);
          return a2(t4, e3, Math.min(1, i3 / o3));
        }
        function a2(t4, e3, i3) {
          return { x: t4.x + (e3.x - t4.x) * i3, y: t4.y + (e3.y - t4.y) * i3 };
        }
        function s2(t4, e3) {
          t4.length > 2 && (t4[t4.length - 2] = e3.x, t4[t4.length - 1] = e3.y);
        }
        function r2(t4) {
          return { x: parseFloat(t4[t4.length - 2]), y: parseFloat(t4[t4.length - 1]) };
        }
        t3.indexOf("NaN") > -1 && (t3 = "");
        var o2 = t3.split(/[,\s]/).reduce(function(t4, e3) {
          var i3 = e3.match("([a-zA-Z])(.+)");
          return i3 ? (t4.push(i3[1]), t4.push(i3[2])) : t4.push(e3), t4;
        }, []).reduce(function(t4, e3) {
          return parseFloat(e3) == e3 && t4.length ? t4[t4.length - 1].push(e3) : t4.push([e3]), t4;
        }, []), n2 = [];
        if (o2.length > 1) {
          var l2 = r2(o2[0]), h2 = null;
          "Z" == o2[o2.length - 1][0] && o2[0].length > 2 && (h2 = ["L", l2.x, l2.y], o2[o2.length - 1] = h2), n2.push(o2[0]);
          for (var c2 = 1; c2 < o2.length; c2++) {
            var d2 = n2[n2.length - 1], g2 = o2[c2], u2 = g2 == h2 ? o2[1] : o2[c2 + 1];
            if (u2 && d2 && d2.length > 2 && "L" == g2[0] && u2.length > 2 && "L" == u2[0]) {
              var p2, f2, x2 = r2(d2), b2 = r2(g2), v2 = r2(u2);
              p2 = i2(b2, x2, e2), f2 = i2(b2, v2, e2), s2(g2, p2), g2.origPoint = b2, n2.push(g2);
              var m2 = a2(p2, b2, 0.5), y2 = a2(b2, f2, 0.5), w2 = ["C", m2.x, m2.y, y2.x, y2.y, f2.x, f2.y];
              w2.origPoint = b2, n2.push(w2);
            } else
              n2.push(g2);
          }
          if (h2) {
            var k2 = r2(n2[n2.length - 1]);
            n2.push(["Z"]), s2(n2[0], k2);
          }
        } else
          n2 = o2;
        return n2.reduce(function(t4, e3) {
          return t4 + e3.join(" ") + " ";
        }, "");
      } }, { key: "drawLine", value: function(t3, e2, i2, a2) {
        var s2 = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : "#a8a8a8", r2 = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0, o2 = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : null, n2 = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : "butt";
        return this.w.globals.dom.Paper.line().attr({ x1: t3, y1: e2, x2: i2, y2: a2, stroke: s2, "stroke-dasharray": r2, "stroke-width": o2, "stroke-linecap": n2 });
      } }, { key: "drawRect", value: function() {
        var t3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, a2 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, s2 = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, r2 = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : "#fefefe", o2 = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 1, n2 = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : null, l2 = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : null, h2 = arguments.length > 9 && void 0 !== arguments[9] ? arguments[9] : 0, c2 = this.w.globals.dom.Paper.rect();
        return c2.attr({ x: t3, y: e2, width: i2 > 0 ? i2 : 0, height: a2 > 0 ? a2 : 0, rx: s2, ry: s2, opacity: o2, "stroke-width": null !== n2 ? n2 : 0, stroke: null !== l2 ? l2 : "none", "stroke-dasharray": h2 }), c2.node.setAttribute("fill", r2), c2;
      } }, { key: "drawPolygon", value: function(t3) {
        var e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "#e1e1e1", i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, a2 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "none";
        return this.w.globals.dom.Paper.polygon(t3).attr({ fill: a2, stroke: e2, "stroke-width": i2 });
      } }, { key: "drawCircle", value: function(t3) {
        var e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;
        t3 < 0 && (t3 = 0);
        var i2 = this.w.globals.dom.Paper.circle(2 * t3);
        return null !== e2 && i2.attr(e2), i2;
      } }, { key: "drawPath", value: function(t3) {
        var e2 = t3.d, i2 = void 0 === e2 ? "" : e2, a2 = t3.stroke, s2 = void 0 === a2 ? "#a8a8a8" : a2, r2 = t3.strokeWidth, o2 = void 0 === r2 ? 1 : r2, n2 = t3.fill, l2 = t3.fillOpacity, h2 = void 0 === l2 ? 1 : l2, c2 = t3.strokeOpacity, d2 = void 0 === c2 ? 1 : c2, g2 = t3.classes, u2 = t3.strokeLinecap, p2 = void 0 === u2 ? null : u2, f2 = t3.strokeDashArray, x2 = void 0 === f2 ? 0 : f2, b2 = this.w;
        return null === p2 && (p2 = b2.config.stroke.lineCap), (i2.indexOf("undefined") > -1 || i2.indexOf("NaN") > -1) && (i2 = "M 0 ".concat(b2.globals.gridHeight)), b2.globals.dom.Paper.path(i2).attr({ fill: n2, "fill-opacity": h2, stroke: s2, "stroke-opacity": d2, "stroke-linecap": p2, "stroke-width": o2, "stroke-dasharray": x2, class: g2 });
      } }, { key: "group", value: function() {
        var t3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, e2 = this.w.globals.dom.Paper.group();
        return null !== t3 && e2.attr(t3), e2;
      } }, { key: "move", value: function(t3, e2) {
        var i2 = ["M", t3, e2].join(" ");
        return i2;
      } }, { key: "line", value: function(t3, e2) {
        var i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, a2 = null;
        return null === i2 ? a2 = [" L", t3, e2].join(" ") : "H" === i2 ? a2 = [" H", t3].join(" ") : "V" === i2 && (a2 = [" V", e2].join(" ")), a2;
      } }, { key: "curve", value: function(t3, e2, i2, a2, s2, r2) {
        var o2 = ["C", t3, e2, i2, a2, s2, r2].join(" ");
        return o2;
      } }, { key: "quadraticCurve", value: function(t3, e2, i2, a2) {
        return ["Q", t3, e2, i2, a2].join(" ");
      } }, { key: "arc", value: function(t3, e2, i2, a2, s2, r2, o2) {
        var n2 = "A";
        arguments.length > 7 && void 0 !== arguments[7] && arguments[7] && (n2 = "a");
        var l2 = [n2, t3, e2, i2, a2, s2, r2, o2].join(" ");
        return l2;
      } }, { key: "renderPaths", value: function(t3) {
        var i2, a2 = t3.j, s2 = t3.realIndex, r2 = t3.pathFrom, o2 = t3.pathTo, n2 = t3.stroke, l2 = t3.strokeWidth, h2 = t3.strokeLinecap, c2 = t3.fill, d2 = t3.animationDelay, g2 = t3.initialSpeed, u2 = t3.dataChangeSpeed, p2 = t3.className, f2 = t3.shouldClipToGrid, x2 = void 0 === f2 || f2, m2 = t3.bindEventsOnPaths, y2 = void 0 === m2 || m2, w2 = t3.drawShadow, k2 = void 0 === w2 || w2, A3 = this.w, S2 = new v(this.ctx), C2 = new b(this.ctx), L2 = this.w.config.chart.animations.enabled, P2 = L2 && this.w.config.chart.animations.dynamicAnimation.enabled, I2 = !!(L2 && !A3.globals.resized || P2 && A3.globals.dataChanged && A3.globals.shouldAnimate);
        I2 ? i2 = r2 : (i2 = o2, A3.globals.animationEnded = true);
        var T2 = A3.config.stroke.dashArray, M2 = 0;
        M2 = Array.isArray(T2) ? T2[s2] : A3.config.stroke.dashArray;
        var z2 = this.drawPath({ d: i2, stroke: n2, strokeWidth: l2, fill: c2, fillOpacity: 1, classes: p2, strokeLinecap: h2, strokeDashArray: M2 });
        if (z2.attr("index", s2), x2 && z2.attr({ "clip-path": "url(#gridRectMask".concat(A3.globals.cuid, ")") }), "none" !== A3.config.states.normal.filter.type)
          S2.getDefaultFilter(z2, s2);
        else if (A3.config.chart.dropShadow.enabled && k2 && (!A3.config.chart.dropShadow.enabledOnSeries || A3.config.chart.dropShadow.enabledOnSeries && -1 !== A3.config.chart.dropShadow.enabledOnSeries.indexOf(s2))) {
          var X2 = A3.config.chart.dropShadow;
          S2.dropShadow(z2, X2, s2);
        }
        y2 && (z2.node.addEventListener("mouseenter", this.pathMouseEnter.bind(this, z2)), z2.node.addEventListener("mouseleave", this.pathMouseLeave.bind(this, z2)), z2.node.addEventListener("mousedown", this.pathMouseDown.bind(this, z2))), z2.attr({ pathTo: o2, pathFrom: r2 });
        var E2 = { el: z2, j: a2, realIndex: s2, pathFrom: r2, pathTo: o2, fill: c2, strokeWidth: l2, delay: d2 };
        return !L2 || A3.globals.resized || A3.globals.dataChanged ? !A3.globals.resized && A3.globals.dataChanged || C2.showDelayedElements() : C2.animatePathsGradually(e(e({}, E2), {}, { speed: g2 })), A3.globals.dataChanged && P2 && I2 && C2.animatePathsGradually(e(e({}, E2), {}, { speed: u2 })), z2;
      } }, { key: "drawPattern", value: function(t3, e2, i2) {
        var a2 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "#a8a8a8", s2 = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0;
        return this.w.globals.dom.Paper.pattern(e2, i2, function(r2) {
          "horizontalLines" === t3 ? r2.line(0, 0, i2, 0).stroke({ color: a2, width: s2 + 1 }) : "verticalLines" === t3 ? r2.line(0, 0, 0, e2).stroke({ color: a2, width: s2 + 1 }) : "slantedLines" === t3 ? r2.line(0, 0, e2, i2).stroke({ color: a2, width: s2 }) : "squares" === t3 ? r2.rect(e2, i2).fill("none").stroke({ color: a2, width: s2 }) : "circles" === t3 && r2.circle(e2).fill("none").stroke({ color: a2, width: s2 });
        });
      } }, { key: "drawGradient", value: function(t3, e2, i2, a2, s2) {
        var r2, o2 = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : null, n2 = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : null, l2 = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : null, h2 = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 0, c2 = this.w;
        e2.length < 9 && 0 === e2.indexOf("#") && (e2 = x.hexToRgba(e2, a2)), i2.length < 9 && 0 === i2.indexOf("#") && (i2 = x.hexToRgba(i2, s2));
        var d2 = 0, g2 = 1, u2 = 1, p2 = null;
        null !== n2 && (d2 = void 0 !== n2[0] ? n2[0] / 100 : 0, g2 = void 0 !== n2[1] ? n2[1] / 100 : 1, u2 = void 0 !== n2[2] ? n2[2] / 100 : 1, p2 = void 0 !== n2[3] ? n2[3] / 100 : null);
        var f2 = !("donut" !== c2.config.chart.type && "pie" !== c2.config.chart.type && "polarArea" !== c2.config.chart.type && "bubble" !== c2.config.chart.type);
        if (r2 = null === l2 || 0 === l2.length ? c2.globals.dom.Paper.gradient(f2 ? "radial" : "linear", function(t4) {
          t4.at(d2, e2, a2), t4.at(g2, i2, s2), t4.at(u2, i2, s2), null !== p2 && t4.at(p2, e2, a2);
        }) : c2.globals.dom.Paper.gradient(f2 ? "radial" : "linear", function(t4) {
          (Array.isArray(l2[h2]) ? l2[h2] : l2).forEach(function(e3) {
            t4.at(e3.offset / 100, e3.color, e3.opacity);
          });
        }), f2) {
          var b2 = c2.globals.gridWidth / 2, v2 = c2.globals.gridHeight / 2;
          "bubble" !== c2.config.chart.type ? r2.attr({ gradientUnits: "userSpaceOnUse", cx: b2, cy: v2, r: o2 }) : r2.attr({ cx: 0.5, cy: 0.5, r: 0.8, fx: 0.2, fy: 0.2 });
        } else
          "vertical" === t3 ? r2.from(0, 0).to(0, 1) : "diagonal" === t3 ? r2.from(0, 0).to(1, 1) : "horizontal" === t3 ? r2.from(0, 1).to(1, 1) : "diagonal2" === t3 && r2.from(1, 0).to(0, 1);
        return r2;
      } }, { key: "getTextBasedOnMaxWidth", value: function(t3) {
        var e2 = t3.text, i2 = t3.maxWidth, a2 = t3.fontSize, s2 = t3.fontFamily, r2 = this.getTextRects(e2, a2, s2), o2 = r2.width / e2.length, n2 = Math.floor(i2 / o2);
        return i2 < r2.width ? e2.slice(0, n2 - 3) + "..." : e2;
      } }, { key: "drawText", value: function(t3) {
        var i2 = this, a2 = t3.x, s2 = t3.y, r2 = t3.text, o2 = t3.textAnchor, n2 = t3.fontSize, l2 = t3.fontFamily, h2 = t3.fontWeight, c2 = t3.foreColor, d2 = t3.opacity, g2 = t3.maxWidth, u2 = t3.cssClass, p2 = void 0 === u2 ? "" : u2, f2 = t3.isPlainText, x2 = void 0 === f2 || f2, b2 = t3.dominantBaseline, v2 = void 0 === b2 ? "auto" : b2, m2 = this.w;
        void 0 === r2 && (r2 = "");
        var y2 = r2;
        o2 || (o2 = "start"), c2 && c2.length || (c2 = m2.config.chart.foreColor), l2 = l2 || m2.config.chart.fontFamily, h2 = h2 || "regular";
        var w2, k2 = { maxWidth: g2, fontSize: n2 = n2 || "11px", fontFamily: l2 };
        return Array.isArray(r2) ? w2 = m2.globals.dom.Paper.text(function(t4) {
          for (var a3 = 0; a3 < r2.length; a3++)
            y2 = r2[a3], g2 && (y2 = i2.getTextBasedOnMaxWidth(e({ text: r2[a3] }, k2))), 0 === a3 ? t4.tspan(y2) : t4.tspan(y2).newLine();
        }) : (g2 && (y2 = this.getTextBasedOnMaxWidth(e({ text: r2 }, k2))), w2 = x2 ? m2.globals.dom.Paper.plain(r2) : m2.globals.dom.Paper.text(function(t4) {
          return t4.tspan(y2);
        })), w2.attr({ x: a2, y: s2, "text-anchor": o2, "dominant-baseline": v2, "font-size": n2, "font-family": l2, "font-weight": h2, fill: c2, class: "apexcharts-text " + p2 }), w2.node.style.fontFamily = l2, w2.node.style.opacity = d2, w2;
      } }, { key: "drawMarker", value: function(t3, e2, i2) {
        t3 = t3 || 0;
        var a2 = i2.pSize || 0, s2 = null;
        if ("square" === i2.shape || "rect" === i2.shape) {
          var r2 = void 0 === i2.pRadius ? a2 / 2 : i2.pRadius;
          null !== e2 && a2 || (a2 = 0, r2 = 0);
          var o2 = 1.2 * a2 + r2, n2 = this.drawRect(o2, o2, o2, o2, r2);
          n2.attr({ x: t3 - o2 / 2, y: e2 - o2 / 2, cx: t3, cy: e2, class: i2.class ? i2.class : "", fill: i2.pointFillColor, "fill-opacity": i2.pointFillOpacity ? i2.pointFillOpacity : 1, stroke: i2.pointStrokeColor, "stroke-width": i2.pointStrokeWidth ? i2.pointStrokeWidth : 0, "stroke-opacity": i2.pointStrokeOpacity ? i2.pointStrokeOpacity : 1 }), s2 = n2;
        } else
          "circle" !== i2.shape && i2.shape || (x.isNumber(e2) || (a2 = 0, e2 = 0), s2 = this.drawCircle(a2, { cx: t3, cy: e2, class: i2.class ? i2.class : "", stroke: i2.pointStrokeColor, fill: i2.pointFillColor, "fill-opacity": i2.pointFillOpacity ? i2.pointFillOpacity : 1, "stroke-width": i2.pointStrokeWidth ? i2.pointStrokeWidth : 0, "stroke-opacity": i2.pointStrokeOpacity ? i2.pointStrokeOpacity : 1 }));
        return s2;
      } }, { key: "pathMouseEnter", value: function(t3, e2) {
        var i2 = this.w, a2 = new v(this.ctx), s2 = parseInt(t3.node.getAttribute("index"), 10), r2 = parseInt(t3.node.getAttribute("j"), 10);
        if ("function" == typeof i2.config.chart.events.dataPointMouseEnter && i2.config.chart.events.dataPointMouseEnter(e2, this.ctx, { seriesIndex: s2, dataPointIndex: r2, w: i2 }), this.ctx.events.fireEvent("dataPointMouseEnter", [e2, this.ctx, { seriesIndex: s2, dataPointIndex: r2, w: i2 }]), ("none" === i2.config.states.active.filter.type || "true" !== t3.node.getAttribute("selected")) && "none" !== i2.config.states.hover.filter.type && !i2.globals.isTouchDevice) {
          var o2 = i2.config.states.hover.filter;
          a2.applyFilter(t3, s2, o2.type, o2.value);
        }
      } }, { key: "pathMouseLeave", value: function(t3, e2) {
        var i2 = this.w, a2 = new v(this.ctx), s2 = parseInt(t3.node.getAttribute("index"), 10), r2 = parseInt(t3.node.getAttribute("j"), 10);
        "function" == typeof i2.config.chart.events.dataPointMouseLeave && i2.config.chart.events.dataPointMouseLeave(e2, this.ctx, { seriesIndex: s2, dataPointIndex: r2, w: i2 }), this.ctx.events.fireEvent("dataPointMouseLeave", [e2, this.ctx, { seriesIndex: s2, dataPointIndex: r2, w: i2 }]), "none" !== i2.config.states.active.filter.type && "true" === t3.node.getAttribute("selected") || "none" !== i2.config.states.hover.filter.type && a2.getDefaultFilter(t3, s2);
      } }, { key: "pathMouseDown", value: function(t3, e2) {
        var i2 = this.w, a2 = new v(this.ctx), s2 = parseInt(t3.node.getAttribute("index"), 10), r2 = parseInt(t3.node.getAttribute("j"), 10), o2 = "false";
        if ("true" === t3.node.getAttribute("selected")) {
          if (t3.node.setAttribute("selected", "false"), i2.globals.selectedDataPoints[s2].indexOf(r2) > -1) {
            var n2 = i2.globals.selectedDataPoints[s2].indexOf(r2);
            i2.globals.selectedDataPoints[s2].splice(n2, 1);
          }
        } else {
          if (!i2.config.states.active.allowMultipleDataPointsSelection && i2.globals.selectedDataPoints.length > 0) {
            i2.globals.selectedDataPoints = [];
            var l2 = i2.globals.dom.Paper.select(".apexcharts-series path").members, h2 = i2.globals.dom.Paper.select(".apexcharts-series circle, .apexcharts-series rect").members, c2 = function(t4) {
              Array.prototype.forEach.call(t4, function(t5) {
                t5.node.setAttribute("selected", "false"), a2.getDefaultFilter(t5, s2);
              });
            };
            c2(l2), c2(h2);
          }
          t3.node.setAttribute("selected", "true"), o2 = "true", void 0 === i2.globals.selectedDataPoints[s2] && (i2.globals.selectedDataPoints[s2] = []), i2.globals.selectedDataPoints[s2].push(r2);
        }
        if ("true" === o2) {
          var d2 = i2.config.states.active.filter;
          if ("none" !== d2)
            a2.applyFilter(t3, s2, d2.type, d2.value);
          else if ("none" !== i2.config.states.hover.filter && !i2.globals.isTouchDevice) {
            var g2 = i2.config.states.hover.filter;
            a2.applyFilter(t3, s2, g2.type, g2.value);
          }
        } else if ("none" !== i2.config.states.active.filter.type)
          if ("none" === i2.config.states.hover.filter.type || i2.globals.isTouchDevice)
            a2.getDefaultFilter(t3, s2);
          else {
            g2 = i2.config.states.hover.filter;
            a2.applyFilter(t3, s2, g2.type, g2.value);
          }
        "function" == typeof i2.config.chart.events.dataPointSelection && i2.config.chart.events.dataPointSelection(e2, this.ctx, { selectedDataPoints: i2.globals.selectedDataPoints, seriesIndex: s2, dataPointIndex: r2, w: i2 }), e2 && this.ctx.events.fireEvent("dataPointSelection", [e2, this.ctx, { selectedDataPoints: i2.globals.selectedDataPoints, seriesIndex: s2, dataPointIndex: r2, w: i2 }]);
      } }, { key: "rotateAroundCenter", value: function(t3) {
        var e2 = {};
        return t3 && "function" == typeof t3.getBBox && (e2 = t3.getBBox()), { x: e2.x + e2.width / 2, y: e2.y + e2.height / 2 };
      } }, { key: "getTextRects", value: function(t3, e2, i2, a2) {
        var s2 = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4], r2 = this.w, o2 = this.drawText({ x: -200, y: -200, text: t3, textAnchor: "start", fontSize: e2, fontFamily: i2, foreColor: "#fff", opacity: 0 });
        a2 && o2.attr("transform", a2), r2.globals.dom.Paper.add(o2);
        var n2 = o2.bbox();
        return s2 || (n2 = o2.node.getBoundingClientRect()), o2.remove(), { width: n2.width, height: n2.height };
      } }, { key: "placeTextWithEllipsis", value: function(t3, e2, i2) {
        if ("function" == typeof t3.getComputedTextLength && (t3.textContent = e2, e2.length > 0 && t3.getComputedTextLength() >= i2 / 1.1)) {
          for (var a2 = e2.length - 3; a2 > 0; a2 -= 3)
            if (t3.getSubStringLength(0, a2) <= i2 / 1.1)
              return void (t3.textContent = e2.substring(0, a2) + "...");
          t3.textContent = ".";
        }
      } }], [{ key: "setAttrs", value: function(t3, e2) {
        for (var i2 in e2)
          e2.hasOwnProperty(i2) && t3.setAttribute(i2, e2[i2]);
      } }]), t2;
    }();
    var y = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "getStackedSeriesTotals", value: function() {
        var t3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], e2 = this.w, i2 = [];
        if (0 === e2.globals.series.length)
          return i2;
        for (var a2 = 0; a2 < e2.globals.series[e2.globals.maxValsInArrayIndex].length; a2++) {
          for (var s2 = 0, r2 = 0; r2 < e2.globals.series.length; r2++)
            void 0 !== e2.globals.series[r2][a2] && -1 === t3.indexOf(r2) && (s2 += e2.globals.series[r2][a2]);
          i2.push(s2);
        }
        return i2;
      } }, { key: "getSeriesTotalByIndex", value: function() {
        var t3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
        return null === t3 ? this.w.config.series.reduce(function(t4, e2) {
          return t4 + e2;
        }, 0) : this.w.globals.series[t3].reduce(function(t4, e2) {
          return t4 + e2;
        }, 0);
      } }, { key: "getStackedSeriesTotalsByGroups", value: function() {
        var t3 = this, e2 = this.w, i2 = [];
        return e2.globals.seriesGroups.forEach(function(a2) {
          var s2 = [];
          e2.config.series.forEach(function(t4, e3) {
            a2.indexOf(t4.name) > -1 && s2.push(e3);
          });
          var r2 = e2.globals.series.map(function(t4, e3) {
            return -1 === s2.indexOf(e3) ? e3 : -1;
          }).filter(function(t4) {
            return -1 !== t4;
          });
          i2.push(t3.getStackedSeriesTotals(r2));
        }), i2;
      } }, { key: "isSeriesNull", value: function() {
        var t3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
        return 0 === (null === t3 ? this.w.config.series.filter(function(t4) {
          return null !== t4;
        }) : this.w.config.series[t3].data.filter(function(t4) {
          return null !== t4;
        })).length;
      } }, { key: "seriesHaveSameValues", value: function(t3) {
        return this.w.globals.series[t3].every(function(t4, e2, i2) {
          return t4 === i2[0];
        });
      } }, { key: "getCategoryLabels", value: function(t3) {
        var e2 = this.w, i2 = t3.slice();
        return e2.config.xaxis.convertedCatToNumeric && (i2 = t3.map(function(t4, i3) {
          return e2.config.xaxis.labels.formatter(t4 - e2.globals.minX + 1);
        })), i2;
      } }, { key: "getLargestSeries", value: function() {
        var t3 = this.w;
        t3.globals.maxValsInArrayIndex = t3.globals.series.map(function(t4) {
          return t4.length;
        }).indexOf(Math.max.apply(Math, t3.globals.series.map(function(t4) {
          return t4.length;
        })));
      } }, { key: "getLargestMarkerSize", value: function() {
        var t3 = this.w, e2 = 0;
        return t3.globals.markers.size.forEach(function(t4) {
          e2 = Math.max(e2, t4);
        }), t3.config.markers.discrete && t3.config.markers.discrete.length && t3.config.markers.discrete.forEach(function(t4) {
          e2 = Math.max(e2, t4.size);
        }), e2 > 0 && (e2 += t3.config.markers.hover.sizeOffset + 1), t3.globals.markers.largestSize = e2, e2;
      } }, { key: "getSeriesTotals", value: function() {
        var t3 = this.w;
        t3.globals.seriesTotals = t3.globals.series.map(function(t4, e2) {
          var i2 = 0;
          if (Array.isArray(t4))
            for (var a2 = 0; a2 < t4.length; a2++)
              i2 += t4[a2];
          else
            i2 += t4;
          return i2;
        });
      } }, { key: "getSeriesTotalsXRange", value: function(t3, e2) {
        var i2 = this.w;
        return i2.globals.series.map(function(a2, s2) {
          for (var r2 = 0, o2 = 0; o2 < a2.length; o2++)
            i2.globals.seriesX[s2][o2] > t3 && i2.globals.seriesX[s2][o2] < e2 && (r2 += a2[o2]);
          return r2;
        });
      } }, { key: "getPercentSeries", value: function() {
        var t3 = this.w;
        t3.globals.seriesPercent = t3.globals.series.map(function(e2, i2) {
          var a2 = [];
          if (Array.isArray(e2))
            for (var s2 = 0; s2 < e2.length; s2++) {
              var r2 = t3.globals.stackedSeriesTotals[s2], o2 = 0;
              r2 && (o2 = 100 * e2[s2] / r2), a2.push(o2);
            }
          else {
            var n2 = 100 * e2 / t3.globals.seriesTotals.reduce(function(t4, e3) {
              return t4 + e3;
            }, 0);
            a2.push(n2);
          }
          return a2;
        });
      } }, { key: "getCalculatedRatios", value: function() {
        var t3, e2, i2, a2 = this.w.globals, s2 = [], r2 = 0, o2 = [], n2 = 0.1, l2 = 0;
        if (a2.yRange = [], a2.isMultipleYAxis)
          for (var h2 = 0; h2 < a2.minYArr.length; h2++)
            a2.yRange.push(Math.abs(a2.minYArr[h2] - a2.maxYArr[h2])), o2.push(0);
        else
          a2.yRange.push(Math.abs(a2.minY - a2.maxY));
        a2.xRange = Math.abs(a2.maxX - a2.minX), a2.zRange = Math.abs(a2.maxZ - a2.minZ);
        for (var c2 = 0; c2 < a2.yRange.length; c2++)
          s2.push(a2.yRange[c2] / a2.gridHeight);
        if (e2 = a2.xRange / a2.gridWidth, t3 = a2.yRange / a2.gridWidth, i2 = a2.xRange / a2.gridHeight, (r2 = a2.zRange / a2.gridHeight * 16) || (r2 = 1), a2.minY !== Number.MIN_VALUE && 0 !== Math.abs(a2.minY) && (a2.hasNegs = true), a2.isMultipleYAxis) {
          o2 = [];
          for (var d2 = 0; d2 < s2.length; d2++)
            o2.push(-a2.minYArr[d2] / s2[d2]);
        } else
          o2.push(-a2.minY / s2[0]), a2.minY !== Number.MIN_VALUE && 0 !== Math.abs(a2.minY) && (n2 = -a2.minY / t3, l2 = a2.minX / e2);
        return { yRatio: s2, invertedYRatio: t3, zRatio: r2, xRatio: e2, invertedXRatio: i2, baseLineInvertedY: n2, baseLineY: o2, baseLineX: l2 };
      } }, { key: "getLogSeries", value: function(t3) {
        var e2 = this, i2 = this.w;
        return i2.globals.seriesLog = t3.map(function(t4, a2) {
          return i2.config.yaxis[a2] && i2.config.yaxis[a2].logarithmic ? t4.map(function(t5) {
            return null === t5 ? null : e2.getLogVal(i2.config.yaxis[a2].logBase, t5, a2);
          }) : t4;
        }), i2.globals.invalidLogScale ? t3 : i2.globals.seriesLog;
      } }, { key: "getBaseLog", value: function(t3, e2) {
        return Math.log(e2) / Math.log(t3);
      } }, { key: "getLogVal", value: function(t3, e2, i2) {
        if (0 === e2)
          return 0;
        var a2 = this.w, s2 = 0 === a2.globals.minYArr[i2] ? -1 : this.getBaseLog(t3, a2.globals.minYArr[i2]), r2 = (0 === a2.globals.maxYArr[i2] ? 0 : this.getBaseLog(t3, a2.globals.maxYArr[i2])) - s2;
        return e2 < 1 ? e2 / r2 : (this.getBaseLog(t3, e2) - s2) / r2;
      } }, { key: "getLogYRatios", value: function(t3) {
        var e2 = this, i2 = this.w, a2 = this.w.globals;
        return a2.yLogRatio = t3.slice(), a2.logYRange = a2.yRange.map(function(t4, s2) {
          if (i2.config.yaxis[s2] && e2.w.config.yaxis[s2].logarithmic) {
            var r2, o2 = -Number.MAX_VALUE, n2 = Number.MIN_VALUE;
            return a2.seriesLog.forEach(function(t5, e3) {
              t5.forEach(function(t6) {
                i2.config.yaxis[e3] && i2.config.yaxis[e3].logarithmic && (o2 = Math.max(t6, o2), n2 = Math.min(t6, n2));
              });
            }), r2 = Math.pow(a2.yRange[s2], Math.abs(n2 - o2) / a2.yRange[s2]), a2.yLogRatio[s2] = r2 / a2.gridHeight, r2;
          }
        }), a2.invalidLogScale ? t3.slice() : a2.yLogRatio;
      } }], [{ key: "checkComboSeries", value: function(t3) {
        var e2 = false, i2 = 0, a2 = 0;
        return t3.length && void 0 !== t3[0].type && t3.forEach(function(t4) {
          "bar" !== t4.type && "column" !== t4.type && "candlestick" !== t4.type && "boxPlot" !== t4.type || i2++, void 0 !== t4.type && a2++;
        }), a2 > 0 && (e2 = true), { comboBarCount: i2, comboCharts: e2 };
      } }, { key: "extendArrayProps", value: function(t3, e2, i2) {
        return e2.yaxis && (e2 = t3.extendYAxis(e2, i2)), e2.annotations && (e2.annotations.yaxis && (e2 = t3.extendYAxisAnnotations(e2)), e2.annotations.xaxis && (e2 = t3.extendXAxisAnnotations(e2)), e2.annotations.points && (e2 = t3.extendPointAnnotations(e2))), e2;
      } }]), t2;
    }();
    var w = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.annoCtx = e2;
      }
      return r(t2, [{ key: "setOrientations", value: function(t3) {
        var e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, i2 = this.w;
        if ("vertical" === t3.label.orientation) {
          var a2 = null !== e2 ? e2 : 0, s2 = i2.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(a2, "']"));
          if (null !== s2) {
            var r2 = s2.getBoundingClientRect();
            s2.setAttribute("x", parseFloat(s2.getAttribute("x")) - r2.height + 4), "top" === t3.label.position ? s2.setAttribute("y", parseFloat(s2.getAttribute("y")) + r2.width) : s2.setAttribute("y", parseFloat(s2.getAttribute("y")) - r2.width);
            var o2 = this.annoCtx.graphics.rotateAroundCenter(s2), n2 = o2.x, l2 = o2.y;
            s2.setAttribute("transform", "rotate(-90 ".concat(n2, " ").concat(l2, ")"));
          }
        }
      } }, { key: "addBackgroundToAnno", value: function(t3, e2) {
        var i2 = this.w;
        if (!t3 || void 0 === e2.label.text || void 0 !== e2.label.text && !String(e2.label.text).trim())
          return null;
        var a2 = i2.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(), s2 = t3.getBoundingClientRect(), r2 = e2.label.style.padding.left, o2 = e2.label.style.padding.right, n2 = e2.label.style.padding.top, l2 = e2.label.style.padding.bottom;
        "vertical" === e2.label.orientation && (n2 = e2.label.style.padding.left, l2 = e2.label.style.padding.right, r2 = e2.label.style.padding.top, o2 = e2.label.style.padding.bottom);
        var h2 = s2.left - a2.left - r2, c2 = s2.top - a2.top - n2, d2 = this.annoCtx.graphics.drawRect(h2 - i2.globals.barPadForNumericAxis, c2, s2.width + r2 + o2, s2.height + n2 + l2, e2.label.borderRadius, e2.label.style.background, 1, e2.label.borderWidth, e2.label.borderColor, 0);
        return e2.id && d2.node.classList.add(e2.id), d2;
      } }, { key: "annotationsBackground", value: function() {
        var t3 = this, e2 = this.w, i2 = function(i3, a2, s2) {
          var r2 = e2.globals.dom.baseEl.querySelector(".apexcharts-".concat(s2, "-annotations .apexcharts-").concat(s2, "-annotation-label[rel='").concat(a2, "']"));
          if (r2) {
            var o2 = r2.parentNode, n2 = t3.addBackgroundToAnno(r2, i3);
            n2 && (o2.insertBefore(n2.node, r2), i3.label.mouseEnter && n2.node.addEventListener("mouseenter", i3.label.mouseEnter.bind(t3, i3)), i3.label.mouseLeave && n2.node.addEventListener("mouseleave", i3.label.mouseLeave.bind(t3, i3)), i3.label.click && n2.node.addEventListener("click", i3.label.click.bind(t3, i3)));
          }
        };
        e2.config.annotations.xaxis.map(function(t4, e3) {
          i2(t4, e3, "xaxis");
        }), e2.config.annotations.yaxis.map(function(t4, e3) {
          i2(t4, e3, "yaxis");
        }), e2.config.annotations.points.map(function(t4, e3) {
          i2(t4, e3, "point");
        });
      } }, { key: "getY1Y2", value: function(t3, e2) {
        var i2, a2 = "y1" === t3 ? e2.y : e2.y2, s2 = this.w;
        if (this.annoCtx.invertAxis) {
          var r2 = s2.globals.labels.indexOf(a2);
          s2.config.xaxis.convertedCatToNumeric && (r2 = s2.globals.categoryLabels.indexOf(a2));
          var o2 = s2.globals.dom.baseEl.querySelector(".apexcharts-yaxis-texts-g text:nth-child(" + (r2 + 1) + ")");
          o2 && (i2 = parseFloat(o2.getAttribute("y"))), void 0 !== e2.seriesIndex && s2.globals.barHeight && (i2 = i2 - s2.globals.barHeight / 2 * (s2.globals.series.length - 1) + s2.globals.barHeight * e2.seriesIndex);
        } else {
          var n2;
          if (s2.config.yaxis[e2.yAxisIndex].logarithmic)
            n2 = (a2 = new y(this.annoCtx.ctx).getLogVal(a2, e2.yAxisIndex)) / s2.globals.yLogRatio[e2.yAxisIndex];
          else
            n2 = (a2 - s2.globals.minYArr[e2.yAxisIndex]) / (s2.globals.yRange[e2.yAxisIndex] / s2.globals.gridHeight);
          i2 = s2.globals.gridHeight - n2, !e2.marker || void 0 !== e2.y && null !== e2.y || (i2 = 0), s2.config.yaxis[e2.yAxisIndex] && s2.config.yaxis[e2.yAxisIndex].reversed && (i2 = n2);
        }
        return "string" == typeof a2 && a2.indexOf("px") > -1 && (i2 = parseFloat(a2)), i2;
      } }, { key: "getX1X2", value: function(t3, e2) {
        var i2 = this.w, a2 = this.annoCtx.invertAxis ? i2.globals.minY : i2.globals.minX, s2 = this.annoCtx.invertAxis ? i2.globals.maxY : i2.globals.maxX, r2 = this.annoCtx.invertAxis ? i2.globals.yRange[0] : i2.globals.xRange, o2 = (e2.x - a2) / (r2 / i2.globals.gridWidth);
        this.annoCtx.inversedReversedAxis && (o2 = (s2 - e2.x) / (r2 / i2.globals.gridWidth)), "category" !== i2.config.xaxis.type && !i2.config.xaxis.convertedCatToNumeric || this.annoCtx.invertAxis || i2.globals.dataFormatXNumeric || (o2 = this.getStringX(e2.x));
        var n2 = (e2.x2 - a2) / (r2 / i2.globals.gridWidth);
        return this.annoCtx.inversedReversedAxis && (n2 = (s2 - e2.x2) / (r2 / i2.globals.gridWidth)), "category" !== i2.config.xaxis.type && !i2.config.xaxis.convertedCatToNumeric || this.annoCtx.invertAxis || i2.globals.dataFormatXNumeric || (n2 = this.getStringX(e2.x2)), void 0 !== e2.x && null !== e2.x || !e2.marker || (o2 = i2.globals.gridWidth), "x1" === t3 && "string" == typeof e2.x && e2.x.indexOf("px") > -1 && (o2 = parseFloat(e2.x)), "x2" === t3 && "string" == typeof e2.x2 && e2.x2.indexOf("px") > -1 && (n2 = parseFloat(e2.x2)), void 0 !== e2.seriesIndex && i2.globals.barWidth && !this.annoCtx.invertAxis && (o2 = o2 - i2.globals.barWidth / 2 * (i2.globals.series.length - 1) + i2.globals.barWidth * e2.seriesIndex), "x1" === t3 ? o2 : n2;
      } }, { key: "getStringX", value: function(t3) {
        var e2 = this.w, i2 = t3;
        e2.config.xaxis.convertedCatToNumeric && e2.globals.categoryLabels.length && (t3 = e2.globals.categoryLabels.indexOf(t3) + 1);
        var a2 = e2.globals.labels.indexOf(t3), s2 = e2.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child(" + (a2 + 1) + ")");
        return s2 && (i2 = parseFloat(s2.getAttribute("x"))), i2;
      } }]), t2;
    }();
    var k = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.annoCtx = e2, this.invertAxis = this.annoCtx.invertAxis, this.helpers = new w(this.annoCtx);
      }
      return r(t2, [{ key: "addXaxisAnnotation", value: function(t3, e2, i2) {
        var a2, s2 = this.w, r2 = this.helpers.getX1X2("x1", t3), o2 = t3.label.text, n2 = t3.strokeDashArray;
        if (x.isNumber(r2)) {
          if (null === t3.x2 || void 0 === t3.x2) {
            var l2 = this.annoCtx.graphics.drawLine(r2 + t3.offsetX, 0 + t3.offsetY, r2 + t3.offsetX, s2.globals.gridHeight + t3.offsetY, t3.borderColor, n2, t3.borderWidth);
            e2.appendChild(l2.node), t3.id && l2.node.classList.add(t3.id);
          } else {
            if ((a2 = this.helpers.getX1X2("x2", t3)) < r2) {
              var h2 = r2;
              r2 = a2, a2 = h2;
            }
            var c2 = this.annoCtx.graphics.drawRect(r2 + t3.offsetX, 0 + t3.offsetY, a2 - r2, s2.globals.gridHeight + t3.offsetY, 0, t3.fillColor, t3.opacity, 1, t3.borderColor, n2);
            c2.node.classList.add("apexcharts-annotation-rect"), c2.attr("clip-path", "url(#gridRectMask".concat(s2.globals.cuid, ")")), e2.appendChild(c2.node), t3.id && c2.node.classList.add(t3.id);
          }
          var d2 = this.annoCtx.graphics.getTextRects(o2, parseFloat(t3.label.style.fontSize)), g2 = "top" === t3.label.position ? 4 : "center" === t3.label.position ? s2.globals.gridHeight / 2 + ("vertical" === t3.label.orientation ? d2.width / 2 : 0) : s2.globals.gridHeight, u2 = this.annoCtx.graphics.drawText({ x: r2 + t3.label.offsetX, y: g2 + t3.label.offsetY - ("vertical" === t3.label.orientation ? "top" === t3.label.position ? d2.width / 2 - 12 : -d2.width / 2 : 0), text: o2, textAnchor: t3.label.textAnchor, fontSize: t3.label.style.fontSize, fontFamily: t3.label.style.fontFamily, fontWeight: t3.label.style.fontWeight, foreColor: t3.label.style.color, cssClass: "apexcharts-xaxis-annotation-label ".concat(t3.label.style.cssClass, " ").concat(t3.id ? t3.id : "") });
          u2.attr({ rel: i2 }), e2.appendChild(u2.node), this.annoCtx.helpers.setOrientations(t3, i2);
        }
      } }, { key: "drawXAxisAnnotations", value: function() {
        var t3 = this, e2 = this.w, i2 = this.annoCtx.graphics.group({ class: "apexcharts-xaxis-annotations" });
        return e2.config.annotations.xaxis.map(function(e3, a2) {
          t3.addXaxisAnnotation(e3, i2.node, a2);
        }), i2;
      } }]), t2;
    }();
    var A2 = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.annoCtx = e2, this.helpers = new w(this.annoCtx);
      }
      return r(t2, [{ key: "addYaxisAnnotation", value: function(t3, e2, i2) {
        var a2, s2 = this.w, r2 = t3.strokeDashArray, o2 = this.helpers.getY1Y2("y1", t3), n2 = t3.label.text;
        if (null === t3.y2 || void 0 === t3.y2) {
          var l2 = this.annoCtx.graphics.drawLine(0 + t3.offsetX, o2 + t3.offsetY, this._getYAxisAnnotationWidth(t3), o2 + t3.offsetY, t3.borderColor, r2, t3.borderWidth);
          e2.appendChild(l2.node), t3.id && l2.node.classList.add(t3.id);
        } else {
          if ((a2 = this.helpers.getY1Y2("y2", t3)) > o2) {
            var h2 = o2;
            o2 = a2, a2 = h2;
          }
          var c2 = this.annoCtx.graphics.drawRect(0 + t3.offsetX, a2 + t3.offsetY, this._getYAxisAnnotationWidth(t3), o2 - a2, 0, t3.fillColor, t3.opacity, 1, t3.borderColor, r2);
          c2.node.classList.add("apexcharts-annotation-rect"), c2.attr("clip-path", "url(#gridRectMask".concat(s2.globals.cuid, ")")), e2.appendChild(c2.node), t3.id && c2.node.classList.add(t3.id);
        }
        var d2 = "right" === t3.label.position ? s2.globals.gridWidth : "center" === t3.label.position ? s2.globals.gridWidth / 2 : 0, g2 = this.annoCtx.graphics.drawText({ x: d2 + t3.label.offsetX, y: (null != a2 ? a2 : o2) + t3.label.offsetY - 3, text: n2, textAnchor: t3.label.textAnchor, fontSize: t3.label.style.fontSize, fontFamily: t3.label.style.fontFamily, fontWeight: t3.label.style.fontWeight, foreColor: t3.label.style.color, cssClass: "apexcharts-yaxis-annotation-label ".concat(t3.label.style.cssClass, " ").concat(t3.id ? t3.id : "") });
        g2.attr({ rel: i2 }), e2.appendChild(g2.node);
      } }, { key: "_getYAxisAnnotationWidth", value: function(t3) {
        var e2 = this.w;
        e2.globals.gridWidth;
        return (t3.width.indexOf("%") > -1 ? e2.globals.gridWidth * parseInt(t3.width, 10) / 100 : parseInt(t3.width, 10)) + t3.offsetX;
      } }, { key: "drawYAxisAnnotations", value: function() {
        var t3 = this, e2 = this.w, i2 = this.annoCtx.graphics.group({ class: "apexcharts-yaxis-annotations" });
        return e2.config.annotations.yaxis.map(function(e3, a2) {
          t3.addYaxisAnnotation(e3, i2.node, a2);
        }), i2;
      } }]), t2;
    }();
    var S = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.annoCtx = e2, this.helpers = new w(this.annoCtx);
      }
      return r(t2, [{ key: "addPointAnnotation", value: function(t3, e2, i2) {
        this.w;
        var a2 = this.helpers.getX1X2("x1", t3), s2 = this.helpers.getY1Y2("y1", t3);
        if (x.isNumber(a2)) {
          var r2 = { pSize: t3.marker.size, pointStrokeWidth: t3.marker.strokeWidth, pointFillColor: t3.marker.fillColor, pointStrokeColor: t3.marker.strokeColor, shape: t3.marker.shape, pRadius: t3.marker.radius, class: "apexcharts-point-annotation-marker ".concat(t3.marker.cssClass, " ").concat(t3.id ? t3.id : "") }, o2 = this.annoCtx.graphics.drawMarker(a2 + t3.marker.offsetX, s2 + t3.marker.offsetY, r2);
          e2.appendChild(o2.node);
          var n2 = t3.label.text ? t3.label.text : "", l2 = this.annoCtx.graphics.drawText({ x: a2 + t3.label.offsetX, y: s2 + t3.label.offsetY - t3.marker.size - parseFloat(t3.label.style.fontSize) / 1.6, text: n2, textAnchor: t3.label.textAnchor, fontSize: t3.label.style.fontSize, fontFamily: t3.label.style.fontFamily, fontWeight: t3.label.style.fontWeight, foreColor: t3.label.style.color, cssClass: "apexcharts-point-annotation-label ".concat(t3.label.style.cssClass, " ").concat(t3.id ? t3.id : "") });
          if (l2.attr({ rel: i2 }), e2.appendChild(l2.node), t3.customSVG.SVG) {
            var h2 = this.annoCtx.graphics.group({ class: "apexcharts-point-annotations-custom-svg " + t3.customSVG.cssClass });
            h2.attr({ transform: "translate(".concat(a2 + t3.customSVG.offsetX, ", ").concat(s2 + t3.customSVG.offsetY, ")") }), h2.node.innerHTML = t3.customSVG.SVG, e2.appendChild(h2.node);
          }
          if (t3.image.path) {
            var c2 = t3.image.width ? t3.image.width : 20, d2 = t3.image.height ? t3.image.height : 20;
            o2 = this.annoCtx.addImage({ x: a2 + t3.image.offsetX - c2 / 2, y: s2 + t3.image.offsetY - d2 / 2, width: c2, height: d2, path: t3.image.path, appendTo: ".apexcharts-point-annotations" });
          }
          t3.mouseEnter && o2.node.addEventListener("mouseenter", t3.mouseEnter.bind(this, t3)), t3.mouseLeave && o2.node.addEventListener("mouseleave", t3.mouseLeave.bind(this, t3)), t3.click && o2.node.addEventListener("click", t3.click.bind(this, t3));
        }
      } }, { key: "drawPointAnnotations", value: function() {
        var t3 = this, e2 = this.w, i2 = this.annoCtx.graphics.group({ class: "apexcharts-point-annotations" });
        return e2.config.annotations.points.map(function(e3, a2) {
          t3.addPointAnnotation(e3, i2.node, a2);
        }), i2;
      } }]), t2;
    }();
    var C = { name: "en", options: { months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], toolbar: { exportToSVG: "Download SVG", exportToPNG: "Download PNG", exportToCSV: "Download CSV", menu: "Menu", selection: "Selection", selectionZoom: "Selection Zoom", zoomIn: "Zoom In", zoomOut: "Zoom Out", pan: "Panning", reset: "Reset Zoom" } } };
    var L = function() {
      function t2() {
        a(this, t2), this.yAxis = { show: true, showAlways: false, showForNullSeries: true, seriesName: void 0, opposite: false, reversed: false, logarithmic: false, logBase: 10, tickAmount: void 0, stepSize: void 0, forceNiceScale: false, max: void 0, min: void 0, floating: false, decimalsInFloat: void 0, labels: { show: true, minWidth: 0, maxWidth: 160, offsetX: 0, offsetY: 0, align: void 0, rotate: 0, padding: 20, style: { colors: [], fontSize: "11px", fontWeight: 400, fontFamily: void 0, cssClass: "" }, formatter: void 0 }, axisBorder: { show: false, color: "#e0e0e0", width: 1, offsetX: 0, offsetY: 0 }, axisTicks: { show: false, color: "#e0e0e0", width: 6, offsetX: 0, offsetY: 0 }, title: { text: void 0, rotate: -90, offsetY: 0, offsetX: 0, style: { color: void 0, fontSize: "11px", fontWeight: 900, fontFamily: void 0, cssClass: "" } }, tooltip: { enabled: false, offsetX: 0 }, crosshairs: { show: true, position: "front", stroke: { color: "#b6b6b6", width: 1, dashArray: 0 } } }, this.pointAnnotation = { id: void 0, x: 0, y: null, yAxisIndex: 0, seriesIndex: void 0, mouseEnter: void 0, mouseLeave: void 0, click: void 0, marker: { size: 4, fillColor: "#fff", strokeWidth: 2, strokeColor: "#333", shape: "circle", offsetX: 0, offsetY: 0, radius: 2, cssClass: "" }, label: { borderColor: "#c2c2c2", borderWidth: 1, borderRadius: 2, text: void 0, textAnchor: "middle", offsetX: 0, offsetY: 0, mouseEnter: void 0, mouseLeave: void 0, click: void 0, style: { background: "#fff", color: void 0, fontSize: "11px", fontFamily: void 0, fontWeight: 400, cssClass: "", padding: { left: 5, right: 5, top: 2, bottom: 2 } } }, customSVG: { SVG: void 0, cssClass: void 0, offsetX: 0, offsetY: 0 }, image: { path: void 0, width: 20, height: 20, offsetX: 0, offsetY: 0 } }, this.yAxisAnnotation = { id: void 0, y: 0, y2: null, strokeDashArray: 1, fillColor: "#c2c2c2", borderColor: "#c2c2c2", borderWidth: 1, opacity: 0.3, offsetX: 0, offsetY: 0, width: "100%", yAxisIndex: 0, label: { borderColor: "#c2c2c2", borderWidth: 1, borderRadius: 2, text: void 0, textAnchor: "end", position: "right", offsetX: 0, offsetY: -3, mouseEnter: void 0, mouseLeave: void 0, click: void 0, style: { background: "#fff", color: void 0, fontSize: "11px", fontFamily: void 0, fontWeight: 400, cssClass: "", padding: { left: 5, right: 5, top: 2, bottom: 2 } } } }, this.xAxisAnnotation = { id: void 0, x: 0, x2: null, strokeDashArray: 1, fillColor: "#c2c2c2", borderColor: "#c2c2c2", borderWidth: 1, opacity: 0.3, offsetX: 0, offsetY: 0, label: { borderColor: "#c2c2c2", borderWidth: 1, borderRadius: 2, text: void 0, textAnchor: "middle", orientation: "vertical", position: "top", offsetX: 0, offsetY: 0, mouseEnter: void 0, mouseLeave: void 0, click: void 0, style: { background: "#fff", color: void 0, fontSize: "11px", fontFamily: void 0, fontWeight: 400, cssClass: "", padding: { left: 5, right: 5, top: 2, bottom: 2 } } } }, this.text = { x: 0, y: 0, text: "", textAnchor: "start", foreColor: void 0, fontSize: "13px", fontFamily: void 0, fontWeight: 400, appendTo: ".apexcharts-annotations", backgroundColor: "transparent", borderColor: "#c2c2c2", borderRadius: 0, borderWidth: 0, paddingLeft: 4, paddingRight: 4, paddingTop: 2, paddingBottom: 2 };
      }
      return r(t2, [{ key: "init", value: function() {
        return { annotations: { yaxis: [this.yAxisAnnotation], xaxis: [this.xAxisAnnotation], points: [this.pointAnnotation], texts: [], images: [], shapes: [] }, chart: { animations: { enabled: true, easing: "easeinout", speed: 800, animateGradually: { delay: 150, enabled: true }, dynamicAnimation: { enabled: true, speed: 350 } }, background: "transparent", locales: [C], defaultLocale: "en", dropShadow: { enabled: false, enabledOnSeries: void 0, top: 2, left: 2, blur: 4, color: "#000", opacity: 0.35 }, events: { animationEnd: void 0, beforeMount: void 0, mounted: void 0, updated: void 0, click: void 0, mouseMove: void 0, mouseLeave: void 0, xAxisLabelClick: void 0, legendClick: void 0, markerClick: void 0, selection: void 0, dataPointSelection: void 0, dataPointMouseEnter: void 0, dataPointMouseLeave: void 0, beforeZoom: void 0, beforeResetZoom: void 0, zoomed: void 0, scrolled: void 0, brushScrolled: void 0 }, foreColor: "#373d3f", fontFamily: "Helvetica, Arial, sans-serif", height: "auto", parentHeightOffset: 15, redrawOnParentResize: true, redrawOnWindowResize: true, id: void 0, group: void 0, nonce: void 0, offsetX: 0, offsetY: 0, selection: { enabled: false, type: "x", fill: { color: "#24292e", opacity: 0.1 }, stroke: { width: 1, color: "#24292e", opacity: 0.4, dashArray: 3 }, xaxis: { min: void 0, max: void 0 }, yaxis: { min: void 0, max: void 0 } }, sparkline: { enabled: false }, brush: { enabled: false, autoScaleYaxis: true, target: void 0, targets: void 0 }, stacked: false, stackOnlyBar: true, stackType: "normal", toolbar: { show: true, offsetX: 0, offsetY: 0, tools: { download: true, selection: true, zoom: true, zoomin: true, zoomout: true, pan: true, reset: true, customIcons: [] }, export: { csv: { filename: void 0, columnDelimiter: ",", headerCategory: "category", headerValue: "value", dateFormatter: function(t3) {
          return new Date(t3).toDateString();
        } }, png: { filename: void 0 }, svg: { filename: void 0 } }, autoSelected: "zoom" }, type: "line", width: "100%", zoom: { enabled: true, type: "x", autoScaleYaxis: false, zoomedArea: { fill: { color: "#90CAF9", opacity: 0.4 }, stroke: { color: "#0D47A1", opacity: 0.4, width: 1 } } } }, plotOptions: { area: { fillTo: "origin" }, bar: { horizontal: false, columnWidth: "70%", barHeight: "70%", distributed: false, borderRadius: 0, borderRadiusApplication: "around", borderRadiusWhenStacked: "last", rangeBarOverlap: true, rangeBarGroupRows: false, hideZeroBarsWhenGrouped: false, isDumbbell: false, dumbbellColors: void 0, isFunnel: false, isFunnel3d: true, colors: { ranges: [], backgroundBarColors: [], backgroundBarOpacity: 1, backgroundBarRadius: 0 }, dataLabels: { position: "top", maxItems: 100, hideOverflowingLabels: true, orientation: "horizontal", total: { enabled: false, formatter: void 0, offsetX: 0, offsetY: 0, style: { color: "#373d3f", fontSize: "12px", fontFamily: void 0, fontWeight: 600 } } } }, bubble: { zScaling: true, minBubbleRadius: void 0, maxBubbleRadius: void 0 }, candlestick: { colors: { upward: "#00B746", downward: "#EF403C" }, wick: { useFillColor: true } }, boxPlot: { colors: { upper: "#00E396", lower: "#008FFB" } }, heatmap: { radius: 2, enableShades: true, shadeIntensity: 0.5, reverseNegativeShade: false, distributed: false, useFillColorAsStroke: false, colorScale: { inverse: false, ranges: [], min: void 0, max: void 0 } }, treemap: { enableShades: true, shadeIntensity: 0.5, distributed: false, reverseNegativeShade: false, useFillColorAsStroke: false, borderRadius: 4, dataLabels: { format: "scale" }, colorScale: { inverse: false, ranges: [], min: void 0, max: void 0 } }, radialBar: { inverseOrder: false, startAngle: 0, endAngle: 360, offsetX: 0, offsetY: 0, hollow: { margin: 5, size: "50%", background: "transparent", image: void 0, imageWidth: 150, imageHeight: 150, imageOffsetX: 0, imageOffsetY: 0, imageClipped: true, position: "front", dropShadow: { enabled: false, top: 0, left: 0, blur: 3, color: "#000", opacity: 0.5 } }, track: { show: true, startAngle: void 0, endAngle: void 0, background: "#f2f2f2", strokeWidth: "97%", opacity: 1, margin: 5, dropShadow: { enabled: false, top: 0, left: 0, blur: 3, color: "#000", opacity: 0.5 } }, dataLabels: { show: true, name: { show: true, fontSize: "16px", fontFamily: void 0, fontWeight: 600, color: void 0, offsetY: 0, formatter: function(t3) {
          return t3;
        } }, value: { show: true, fontSize: "14px", fontFamily: void 0, fontWeight: 400, color: void 0, offsetY: 16, formatter: function(t3) {
          return t3 + "%";
        } }, total: { show: false, label: "Total", fontSize: "16px", fontWeight: 600, fontFamily: void 0, color: void 0, formatter: function(t3) {
          return t3.globals.seriesTotals.reduce(function(t4, e2) {
            return t4 + e2;
          }, 0) / t3.globals.series.length + "%";
        } } }, barLabels: { enabled: false, margin: 5, useSeriesColors: true, fontFamily: void 0, fontWeight: 600, fontSize: "16px", formatter: function(t3) {
          return t3;
        }, onClick: void 0 } }, pie: { customScale: 1, offsetX: 0, offsetY: 0, startAngle: 0, endAngle: 360, expandOnClick: true, dataLabels: { offset: 0, minAngleToShowLabel: 10 }, donut: { size: "65%", background: "transparent", labels: { show: false, name: { show: true, fontSize: "16px", fontFamily: void 0, fontWeight: 600, color: void 0, offsetY: -10, formatter: function(t3) {
          return t3;
        } }, value: { show: true, fontSize: "20px", fontFamily: void 0, fontWeight: 400, color: void 0, offsetY: 10, formatter: function(t3) {
          return t3;
        } }, total: { show: false, showAlways: false, label: "Total", fontSize: "16px", fontWeight: 400, fontFamily: void 0, color: void 0, formatter: function(t3) {
          return t3.globals.seriesTotals.reduce(function(t4, e2) {
            return t4 + e2;
          }, 0);
        } } } } }, polarArea: { rings: { strokeWidth: 1, strokeColor: "#e8e8e8" }, spokes: { strokeWidth: 1, connectorColors: "#e8e8e8" } }, radar: { size: void 0, offsetX: 0, offsetY: 0, polygons: { strokeWidth: 1, strokeColors: "#e8e8e8", connectorColors: "#e8e8e8", fill: { colors: void 0 } } } }, colors: void 0, dataLabels: { enabled: true, enabledOnSeries: void 0, formatter: function(t3) {
          return null !== t3 ? t3 : "";
        }, textAnchor: "middle", distributed: false, offsetX: 0, offsetY: 0, style: { fontSize: "12px", fontFamily: void 0, fontWeight: 600, colors: void 0 }, background: { enabled: true, foreColor: "#fff", borderRadius: 2, padding: 4, opacity: 0.9, borderWidth: 1, borderColor: "#fff", dropShadow: { enabled: false, top: 1, left: 1, blur: 1, color: "#000", opacity: 0.45 } }, dropShadow: { enabled: false, top: 1, left: 1, blur: 1, color: "#000", opacity: 0.45 } }, fill: { type: "solid", colors: void 0, opacity: 0.85, gradient: { shade: "dark", type: "horizontal", shadeIntensity: 0.5, gradientToColors: void 0, inverseColors: true, opacityFrom: 1, opacityTo: 1, stops: [0, 50, 100], colorStops: [] }, image: { src: [], width: void 0, height: void 0 }, pattern: { style: "squares", width: 6, height: 6, strokeWidth: 2 } }, forecastDataPoints: { count: 0, fillOpacity: 0.5, strokeWidth: void 0, dashArray: 4 }, grid: { show: true, borderColor: "#e0e0e0", strokeDashArray: 0, position: "back", xaxis: { lines: { show: false } }, yaxis: { lines: { show: true } }, row: { colors: void 0, opacity: 0.5 }, column: { colors: void 0, opacity: 0.5 }, padding: { top: 0, right: 10, bottom: 0, left: 12 } }, labels: [], legend: { show: true, showForSingleSeries: false, showForNullSeries: true, showForZeroSeries: true, floating: false, position: "bottom", horizontalAlign: "center", inverseOrder: false, fontSize: "12px", fontFamily: void 0, fontWeight: 400, width: void 0, height: void 0, formatter: void 0, tooltipHoverFormatter: void 0, offsetX: -20, offsetY: 4, customLegendItems: [], labels: { colors: void 0, useSeriesColors: false }, markers: { width: 12, height: 12, strokeWidth: 0, fillColors: void 0, strokeColor: "#fff", radius: 12, customHTML: void 0, offsetX: 0, offsetY: 0, onClick: void 0 }, itemMargin: { horizontal: 5, vertical: 2 }, onItemClick: { toggleDataSeries: true }, onItemHover: { highlightDataSeries: true } }, markers: { discrete: [], size: 0, colors: void 0, strokeColors: "#fff", strokeWidth: 2, strokeOpacity: 0.9, strokeDashArray: 0, fillOpacity: 1, shape: "circle", width: 8, height: 8, radius: 2, offsetX: 0, offsetY: 0, onClick: void 0, onDblClick: void 0, showNullDataPoints: true, hover: { size: void 0, sizeOffset: 3 } }, noData: { text: void 0, align: "center", verticalAlign: "middle", offsetX: 0, offsetY: 0, style: { color: void 0, fontSize: "14px", fontFamily: void 0 } }, responsive: [], series: void 0, states: { normal: { filter: { type: "none", value: 0 } }, hover: { filter: { type: "lighten", value: 0.1 } }, active: { allowMultipleDataPointsSelection: false, filter: { type: "darken", value: 0.5 } } }, title: { text: void 0, align: "left", margin: 5, offsetX: 0, offsetY: 0, floating: false, style: { fontSize: "14px", fontWeight: 900, fontFamily: void 0, color: void 0 } }, subtitle: { text: void 0, align: "left", margin: 5, offsetX: 0, offsetY: 30, floating: false, style: { fontSize: "12px", fontWeight: 400, fontFamily: void 0, color: void 0 } }, stroke: { show: true, curve: "smooth", lineCap: "butt", width: 2, colors: void 0, dashArray: 0, fill: { type: "solid", colors: void 0, opacity: 0.85, gradient: { shade: "dark", type: "horizontal", shadeIntensity: 0.5, gradientToColors: void 0, inverseColors: true, opacityFrom: 1, opacityTo: 1, stops: [0, 50, 100], colorStops: [] } } }, tooltip: { enabled: true, enabledOnSeries: void 0, shared: true, hideEmptySeries: false, followCursor: false, intersect: false, inverseOrder: false, custom: void 0, fillSeriesColor: false, theme: "light", cssClass: "", style: { fontSize: "12px", fontFamily: void 0 }, onDatasetHover: { highlightDataSeries: false }, x: { show: true, format: "dd MMM", formatter: void 0 }, y: { formatter: void 0, title: { formatter: function(t3) {
          return t3 ? t3 + ": " : "";
        } } }, z: { formatter: void 0, title: "Size: " }, marker: { show: true, fillColors: void 0 }, items: { display: "flex" }, fixed: { enabled: false, position: "topRight", offsetX: 0, offsetY: 0 } }, xaxis: { type: "category", categories: [], convertedCatToNumeric: false, offsetX: 0, offsetY: 0, overwriteCategories: void 0, labels: { show: true, rotate: -45, rotateAlways: false, hideOverlappingLabels: true, trim: false, minHeight: void 0, maxHeight: 120, showDuplicates: true, style: { colors: [], fontSize: "12px", fontWeight: 400, fontFamily: void 0, cssClass: "" }, offsetX: 0, offsetY: 0, format: void 0, formatter: void 0, datetimeUTC: true, datetimeFormatter: { year: "yyyy", month: "MMM 'yy", day: "dd MMM", hour: "HH:mm", minute: "HH:mm:ss", second: "HH:mm:ss" } }, group: { groups: [], style: { colors: [], fontSize: "12px", fontWeight: 400, fontFamily: void 0, cssClass: "" } }, axisBorder: { show: true, color: "#e0e0e0", width: "100%", height: 1, offsetX: 0, offsetY: 0 }, axisTicks: { show: true, color: "#e0e0e0", height: 6, offsetX: 0, offsetY: 0 }, stepSize: void 0, tickAmount: void 0, tickPlacement: "on", min: void 0, max: void 0, range: void 0, floating: false, decimalsInFloat: void 0, position: "bottom", title: { text: void 0, offsetX: 0, offsetY: 0, style: { color: void 0, fontSize: "12px", fontWeight: 900, fontFamily: void 0, cssClass: "" } }, crosshairs: { show: true, width: 1, position: "back", opacity: 0.9, stroke: { color: "#b6b6b6", width: 1, dashArray: 3 }, fill: { type: "solid", color: "#B1B9C4", gradient: { colorFrom: "#D8E3F0", colorTo: "#BED1E6", stops: [0, 100], opacityFrom: 0.4, opacityTo: 0.5 } }, dropShadow: { enabled: false, left: 0, top: 0, blur: 1, opacity: 0.4 } }, tooltip: { enabled: true, offsetY: 0, formatter: void 0, style: { fontSize: "12px", fontFamily: void 0 } } }, yaxis: this.yAxis, theme: { mode: "light", palette: "palette1", monochrome: { enabled: false, color: "#008FFB", shadeTo: "light", shadeIntensity: 0.65 } } };
      } }]), t2;
    }();
    var P = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.graphics = new m(this.ctx), this.w.globals.isBarHorizontal && (this.invertAxis = true), this.helpers = new w(this), this.xAxisAnnotations = new k(this), this.yAxisAnnotations = new A2(this), this.pointsAnnotations = new S(this), this.w.globals.isBarHorizontal && this.w.config.yaxis[0].reversed && (this.inversedReversedAxis = true), this.xDivision = this.w.globals.gridWidth / this.w.globals.dataPoints;
      }
      return r(t2, [{ key: "drawAxesAnnotations", value: function() {
        var t3 = this.w;
        if (t3.globals.axisCharts) {
          for (var e2 = this.yAxisAnnotations.drawYAxisAnnotations(), i2 = this.xAxisAnnotations.drawXAxisAnnotations(), a2 = this.pointsAnnotations.drawPointAnnotations(), s2 = t3.config.chart.animations.enabled, r2 = [e2, i2, a2], o2 = [i2.node, e2.node, a2.node], n2 = 0; n2 < 3; n2++)
            t3.globals.dom.elGraphical.add(r2[n2]), !s2 || t3.globals.resized || t3.globals.dataChanged || "scatter" !== t3.config.chart.type && "bubble" !== t3.config.chart.type && t3.globals.dataPoints > 1 && o2[n2].classList.add("apexcharts-element-hidden"), t3.globals.delayedElements.push({ el: o2[n2], index: 0 });
          this.helpers.annotationsBackground();
        }
      } }, { key: "drawImageAnnos", value: function() {
        var t3 = this;
        this.w.config.annotations.images.map(function(e2, i2) {
          t3.addImage(e2, i2);
        });
      } }, { key: "drawTextAnnos", value: function() {
        var t3 = this;
        this.w.config.annotations.texts.map(function(e2, i2) {
          t3.addText(e2, i2);
        });
      } }, { key: "addXaxisAnnotation", value: function(t3, e2, i2) {
        this.xAxisAnnotations.addXaxisAnnotation(t3, e2, i2);
      } }, { key: "addYaxisAnnotation", value: function(t3, e2, i2) {
        this.yAxisAnnotations.addYaxisAnnotation(t3, e2, i2);
      } }, { key: "addPointAnnotation", value: function(t3, e2, i2) {
        this.pointsAnnotations.addPointAnnotation(t3, e2, i2);
      } }, { key: "addText", value: function(t3, e2) {
        var i2 = t3.x, a2 = t3.y, s2 = t3.text, r2 = t3.textAnchor, o2 = t3.foreColor, n2 = t3.fontSize, l2 = t3.fontFamily, h2 = t3.fontWeight, c2 = t3.cssClass, d2 = t3.backgroundColor, g2 = t3.borderWidth, u2 = t3.strokeDashArray, p2 = t3.borderRadius, f2 = t3.borderColor, x2 = t3.appendTo, b2 = void 0 === x2 ? ".apexcharts-svg" : x2, v2 = t3.paddingLeft, m2 = void 0 === v2 ? 4 : v2, y2 = t3.paddingRight, w2 = void 0 === y2 ? 4 : y2, k2 = t3.paddingBottom, A3 = void 0 === k2 ? 2 : k2, S2 = t3.paddingTop, C2 = void 0 === S2 ? 2 : S2, L2 = this.w, P2 = this.graphics.drawText({ x: i2, y: a2, text: s2, textAnchor: r2 || "start", fontSize: n2 || "12px", fontWeight: h2 || "regular", fontFamily: l2 || L2.config.chart.fontFamily, foreColor: o2 || L2.config.chart.foreColor, cssClass: c2 }), I2 = L2.globals.dom.baseEl.querySelector(b2);
        I2 && I2.appendChild(P2.node);
        var T2 = P2.bbox();
        if (s2) {
          var M2 = this.graphics.drawRect(T2.x - m2, T2.y - C2, T2.width + m2 + w2, T2.height + A3 + C2, p2, d2 || "transparent", 1, g2, f2, u2);
          I2.insertBefore(M2.node, P2.node);
        }
      } }, { key: "addImage", value: function(t3, e2) {
        var i2 = this.w, a2 = t3.path, s2 = t3.x, r2 = void 0 === s2 ? 0 : s2, o2 = t3.y, n2 = void 0 === o2 ? 0 : o2, l2 = t3.width, h2 = void 0 === l2 ? 20 : l2, c2 = t3.height, d2 = void 0 === c2 ? 20 : c2, g2 = t3.appendTo, u2 = void 0 === g2 ? ".apexcharts-svg" : g2, p2 = i2.globals.dom.Paper.image(a2);
        p2.size(h2, d2).move(r2, n2);
        var f2 = i2.globals.dom.baseEl.querySelector(u2);
        return f2 && f2.appendChild(p2.node), p2;
      } }, { key: "addXaxisAnnotationExternal", value: function(t3, e2, i2) {
        return this.addAnnotationExternal({ params: t3, pushToMemory: e2, context: i2, type: "xaxis", contextMethod: i2.addXaxisAnnotation }), i2;
      } }, { key: "addYaxisAnnotationExternal", value: function(t3, e2, i2) {
        return this.addAnnotationExternal({ params: t3, pushToMemory: e2, context: i2, type: "yaxis", contextMethod: i2.addYaxisAnnotation }), i2;
      } }, { key: "addPointAnnotationExternal", value: function(t3, e2, i2) {
        return void 0 === this.invertAxis && (this.invertAxis = i2.w.globals.isBarHorizontal), this.addAnnotationExternal({ params: t3, pushToMemory: e2, context: i2, type: "point", contextMethod: i2.addPointAnnotation }), i2;
      } }, { key: "addAnnotationExternal", value: function(t3) {
        var e2 = t3.params, i2 = t3.pushToMemory, a2 = t3.context, s2 = t3.type, r2 = t3.contextMethod, o2 = a2, n2 = o2.w, l2 = n2.globals.dom.baseEl.querySelector(".apexcharts-".concat(s2, "-annotations")), h2 = l2.childNodes.length + 1, c2 = new L(), d2 = Object.assign({}, "xaxis" === s2 ? c2.xAxisAnnotation : "yaxis" === s2 ? c2.yAxisAnnotation : c2.pointAnnotation), g2 = x.extend(d2, e2);
        switch (s2) {
          case "xaxis":
            this.addXaxisAnnotation(g2, l2, h2);
            break;
          case "yaxis":
            this.addYaxisAnnotation(g2, l2, h2);
            break;
          case "point":
            this.addPointAnnotation(g2, l2, h2);
        }
        var u2 = n2.globals.dom.baseEl.querySelector(".apexcharts-".concat(s2, "-annotations .apexcharts-").concat(s2, "-annotation-label[rel='").concat(h2, "']")), p2 = this.helpers.addBackgroundToAnno(u2, g2);
        return p2 && l2.insertBefore(p2.node, u2), i2 && n2.globals.memory.methodsToExec.push({ context: o2, id: g2.id ? g2.id : x.randomId(), method: r2, label: "addAnnotation", params: e2 }), a2;
      } }, { key: "clearAnnotations", value: function(t3) {
        var e2 = t3.w, i2 = e2.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations");
        e2.globals.memory.methodsToExec.map(function(t4, i3) {
          "addText" !== t4.label && "addAnnotation" !== t4.label || e2.globals.memory.methodsToExec.splice(i3, 1);
        }), i2 = x.listToArray(i2), Array.prototype.forEach.call(i2, function(t4) {
          for (; t4.firstChild; )
            t4.removeChild(t4.firstChild);
        });
      } }, { key: "removeAnnotation", value: function(t3, e2) {
        var i2 = t3.w, a2 = i2.globals.dom.baseEl.querySelectorAll(".".concat(e2));
        a2 && (i2.globals.memory.methodsToExec.map(function(t4, a3) {
          t4.id === e2 && i2.globals.memory.methodsToExec.splice(a3, 1);
        }), Array.prototype.forEach.call(a2, function(t4) {
          t4.parentElement.removeChild(t4);
        }));
      } }]), t2;
    }();
    var I = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.months31 = [1, 3, 5, 7, 8, 10, 12], this.months30 = [2, 4, 6, 9, 11], this.daysCntOfYear = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];
      }
      return r(t2, [{ key: "isValidDate", value: function(t3) {
        return "number" != typeof t3 && !isNaN(this.parseDate(t3));
      } }, { key: "getTimeStamp", value: function(t3) {
        return Date.parse(t3) ? this.w.config.xaxis.labels.datetimeUTC ? new Date(new Date(t3).toISOString().substr(0, 25)).getTime() : new Date(t3).getTime() : t3;
      } }, { key: "getDate", value: function(t3) {
        return this.w.config.xaxis.labels.datetimeUTC ? new Date(new Date(t3).toUTCString()) : new Date(t3);
      } }, { key: "parseDate", value: function(t3) {
        var e2 = Date.parse(t3);
        if (!isNaN(e2))
          return this.getTimeStamp(t3);
        var i2 = Date.parse(t3.replace(/-/g, "/").replace(/[a-z]+/gi, " "));
        return i2 = this.getTimeStamp(i2);
      } }, { key: "parseDateWithTimezone", value: function(t3) {
        return Date.parse(t3.replace(/-/g, "/").replace(/[a-z]+/gi, " "));
      } }, { key: "formatDate", value: function(t3, e2) {
        var i2 = this.w.globals.locale, a2 = this.w.config.xaxis.labels.datetimeUTC, s2 = ["\0"].concat(u(i2.months)), r2 = [""].concat(u(i2.shortMonths)), o2 = [""].concat(u(i2.days)), n2 = [""].concat(u(i2.shortDays));
        function l2(t4, e3) {
          var i3 = t4 + "";
          for (e3 = e3 || 2; i3.length < e3; )
            i3 = "0" + i3;
          return i3;
        }
        var h2 = a2 ? t3.getUTCFullYear() : t3.getFullYear();
        e2 = (e2 = (e2 = e2.replace(/(^|[^\\])yyyy+/g, "$1" + h2)).replace(/(^|[^\\])yy/g, "$1" + h2.toString().substr(2, 2))).replace(/(^|[^\\])y/g, "$1" + h2);
        var c2 = (a2 ? t3.getUTCMonth() : t3.getMonth()) + 1;
        e2 = (e2 = (e2 = (e2 = e2.replace(/(^|[^\\])MMMM+/g, "$1" + s2[0])).replace(/(^|[^\\])MMM/g, "$1" + r2[0])).replace(/(^|[^\\])MM/g, "$1" + l2(c2))).replace(/(^|[^\\])M/g, "$1" + c2);
        var d2 = a2 ? t3.getUTCDate() : t3.getDate();
        e2 = (e2 = (e2 = (e2 = e2.replace(/(^|[^\\])dddd+/g, "$1" + o2[0])).replace(/(^|[^\\])ddd/g, "$1" + n2[0])).replace(/(^|[^\\])dd/g, "$1" + l2(d2))).replace(/(^|[^\\])d/g, "$1" + d2);
        var g2 = a2 ? t3.getUTCHours() : t3.getHours(), p2 = g2 > 12 ? g2 - 12 : 0 === g2 ? 12 : g2;
        e2 = (e2 = (e2 = (e2 = e2.replace(/(^|[^\\])HH+/g, "$1" + l2(g2))).replace(/(^|[^\\])H/g, "$1" + g2)).replace(/(^|[^\\])hh+/g, "$1" + l2(p2))).replace(/(^|[^\\])h/g, "$1" + p2);
        var f2 = a2 ? t3.getUTCMinutes() : t3.getMinutes();
        e2 = (e2 = e2.replace(/(^|[^\\])mm+/g, "$1" + l2(f2))).replace(/(^|[^\\])m/g, "$1" + f2);
        var x2 = a2 ? t3.getUTCSeconds() : t3.getSeconds();
        e2 = (e2 = e2.replace(/(^|[^\\])ss+/g, "$1" + l2(x2))).replace(/(^|[^\\])s/g, "$1" + x2);
        var b2 = a2 ? t3.getUTCMilliseconds() : t3.getMilliseconds();
        e2 = e2.replace(/(^|[^\\])fff+/g, "$1" + l2(b2, 3)), b2 = Math.round(b2 / 10), e2 = e2.replace(/(^|[^\\])ff/g, "$1" + l2(b2)), b2 = Math.round(b2 / 10);
        var v2 = g2 < 12 ? "AM" : "PM";
        e2 = (e2 = (e2 = e2.replace(/(^|[^\\])f/g, "$1" + b2)).replace(/(^|[^\\])TT+/g, "$1" + v2)).replace(/(^|[^\\])T/g, "$1" + v2.charAt(0));
        var m2 = v2.toLowerCase();
        e2 = (e2 = e2.replace(/(^|[^\\])tt+/g, "$1" + m2)).replace(/(^|[^\\])t/g, "$1" + m2.charAt(0));
        var y2 = -t3.getTimezoneOffset(), w2 = a2 || !y2 ? "Z" : y2 > 0 ? "+" : "-";
        if (!a2) {
          var k2 = (y2 = Math.abs(y2)) % 60;
          w2 += l2(Math.floor(y2 / 60)) + ":" + l2(k2);
        }
        e2 = e2.replace(/(^|[^\\])K/g, "$1" + w2);
        var A3 = (a2 ? t3.getUTCDay() : t3.getDay()) + 1;
        return e2 = (e2 = (e2 = (e2 = (e2 = e2.replace(new RegExp(o2[0], "g"), o2[A3])).replace(new RegExp(n2[0], "g"), n2[A3])).replace(new RegExp(s2[0], "g"), s2[c2])).replace(new RegExp(r2[0], "g"), r2[c2])).replace(/\\(.)/g, "$1");
      } }, { key: "getTimeUnitsfromTimestamp", value: function(t3, e2, i2) {
        var a2 = this.w;
        void 0 !== a2.config.xaxis.min && (t3 = a2.config.xaxis.min), void 0 !== a2.config.xaxis.max && (e2 = a2.config.xaxis.max);
        var s2 = this.getDate(t3), r2 = this.getDate(e2), o2 = this.formatDate(s2, "yyyy MM dd HH mm ss fff").split(" "), n2 = this.formatDate(r2, "yyyy MM dd HH mm ss fff").split(" ");
        return { minMillisecond: parseInt(o2[6], 10), maxMillisecond: parseInt(n2[6], 10), minSecond: parseInt(o2[5], 10), maxSecond: parseInt(n2[5], 10), minMinute: parseInt(o2[4], 10), maxMinute: parseInt(n2[4], 10), minHour: parseInt(o2[3], 10), maxHour: parseInt(n2[3], 10), minDate: parseInt(o2[2], 10), maxDate: parseInt(n2[2], 10), minMonth: parseInt(o2[1], 10) - 1, maxMonth: parseInt(n2[1], 10) - 1, minYear: parseInt(o2[0], 10), maxYear: parseInt(n2[0], 10) };
      } }, { key: "isLeapYear", value: function(t3) {
        return t3 % 4 == 0 && t3 % 100 != 0 || t3 % 400 == 0;
      } }, { key: "calculcateLastDaysOfMonth", value: function(t3, e2, i2) {
        return this.determineDaysOfMonths(t3, e2) - i2;
      } }, { key: "determineDaysOfYear", value: function(t3) {
        var e2 = 365;
        return this.isLeapYear(t3) && (e2 = 366), e2;
      } }, { key: "determineRemainingDaysOfYear", value: function(t3, e2, i2) {
        var a2 = this.daysCntOfYear[e2] + i2;
        return e2 > 1 && this.isLeapYear() && a2++, a2;
      } }, { key: "determineDaysOfMonths", value: function(t3, e2) {
        var i2 = 30;
        switch (t3 = x.monthMod(t3), true) {
          case this.months30.indexOf(t3) > -1:
            2 === t3 && (i2 = this.isLeapYear(e2) ? 29 : 28);
            break;
          case this.months31.indexOf(t3) > -1:
          default:
            i2 = 31;
        }
        return i2;
      } }]), t2;
    }();
    var T = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.tooltipKeyFormat = "dd MMM";
      }
      return r(t2, [{ key: "xLabelFormat", value: function(t3, e2, i2, a2) {
        var s2 = this.w;
        if ("datetime" === s2.config.xaxis.type && void 0 === s2.config.xaxis.labels.formatter && void 0 === s2.config.tooltip.x.formatter) {
          var r2 = new I(this.ctx);
          return r2.formatDate(r2.getDate(e2), s2.config.tooltip.x.format);
        }
        return t3(e2, i2, a2);
      } }, { key: "defaultGeneralFormatter", value: function(t3) {
        return Array.isArray(t3) ? t3.map(function(t4) {
          return t4;
        }) : t3;
      } }, { key: "defaultYFormatter", value: function(t3, e2, i2) {
        var a2 = this.w;
        return x.isNumber(t3) && (t3 = 0 !== a2.globals.yValueDecimal ? t3.toFixed(void 0 !== e2.decimalsInFloat ? e2.decimalsInFloat : a2.globals.yValueDecimal) : a2.globals.maxYArr[i2] - a2.globals.minYArr[i2] < 5 ? t3.toFixed(1) : t3.toFixed(0)), t3;
      } }, { key: "setLabelFormatters", value: function() {
        var t3 = this, e2 = this.w;
        return e2.globals.xaxisTooltipFormatter = function(e3) {
          return t3.defaultGeneralFormatter(e3);
        }, e2.globals.ttKeyFormatter = function(e3) {
          return t3.defaultGeneralFormatter(e3);
        }, e2.globals.ttZFormatter = function(t4) {
          return t4;
        }, e2.globals.legendFormatter = function(e3) {
          return t3.defaultGeneralFormatter(e3);
        }, void 0 !== e2.config.xaxis.labels.formatter ? e2.globals.xLabelFormatter = e2.config.xaxis.labels.formatter : e2.globals.xLabelFormatter = function(t4) {
          if (x.isNumber(t4)) {
            if (!e2.config.xaxis.convertedCatToNumeric && "numeric" === e2.config.xaxis.type) {
              if (x.isNumber(e2.config.xaxis.decimalsInFloat))
                return t4.toFixed(e2.config.xaxis.decimalsInFloat);
              var i2 = e2.globals.maxX - e2.globals.minX;
              return i2 > 0 && i2 < 100 ? t4.toFixed(1) : t4.toFixed(0);
            }
            if (e2.globals.isBarHorizontal) {
              if (e2.globals.maxY - e2.globals.minYArr < 4)
                return t4.toFixed(1);
            }
            return t4.toFixed(0);
          }
          return t4;
        }, "function" == typeof e2.config.tooltip.x.formatter ? e2.globals.ttKeyFormatter = e2.config.tooltip.x.formatter : e2.globals.ttKeyFormatter = e2.globals.xLabelFormatter, "function" == typeof e2.config.xaxis.tooltip.formatter && (e2.globals.xaxisTooltipFormatter = e2.config.xaxis.tooltip.formatter), (Array.isArray(e2.config.tooltip.y) || void 0 !== e2.config.tooltip.y.formatter) && (e2.globals.ttVal = e2.config.tooltip.y), void 0 !== e2.config.tooltip.z.formatter && (e2.globals.ttZFormatter = e2.config.tooltip.z.formatter), void 0 !== e2.config.legend.formatter && (e2.globals.legendFormatter = e2.config.legend.formatter), e2.config.yaxis.forEach(function(i2, a2) {
          void 0 !== i2.labels.formatter ? e2.globals.yLabelFormatters[a2] = i2.labels.formatter : e2.globals.yLabelFormatters[a2] = function(s2) {
            return e2.globals.xyCharts ? Array.isArray(s2) ? s2.map(function(e3) {
              return t3.defaultYFormatter(e3, i2, a2);
            }) : t3.defaultYFormatter(s2, i2, a2) : s2;
          };
        }), e2.globals;
      } }, { key: "heatmapLabelFormatters", value: function() {
        var t3 = this.w;
        if ("heatmap" === t3.config.chart.type) {
          t3.globals.yAxisScale[0].result = t3.globals.seriesNames.slice();
          var e2 = t3.globals.seriesNames.reduce(function(t4, e3) {
            return t4.length > e3.length ? t4 : e3;
          }, 0);
          t3.globals.yAxisScale[0].niceMax = e2, t3.globals.yAxisScale[0].niceMin = e2;
        }
      } }]), t2;
    }();
    var M = function(t2) {
      var e2, i2 = t2.isTimeline, a2 = t2.ctx, s2 = t2.seriesIndex, r2 = t2.dataPointIndex, o2 = t2.y1, n2 = t2.y2, l2 = t2.w, h2 = l2.globals.seriesRangeStart[s2][r2], c2 = l2.globals.seriesRangeEnd[s2][r2], d2 = l2.globals.labels[r2], g2 = l2.config.series[s2].name ? l2.config.series[s2].name : "", u2 = l2.globals.ttKeyFormatter, p2 = l2.config.tooltip.y.title.formatter, f2 = { w: l2, seriesIndex: s2, dataPointIndex: r2, start: h2, end: c2 };
      ("function" == typeof p2 && (g2 = p2(g2, f2)), null !== (e2 = l2.config.series[s2].data[r2]) && void 0 !== e2 && e2.x && (d2 = l2.config.series[s2].data[r2].x), i2) || "datetime" === l2.config.xaxis.type && (d2 = new T(a2).xLabelFormat(l2.globals.ttKeyFormatter, d2, d2, { i: void 0, dateFormatter: new I(a2).formatDate, w: l2 }));
      "function" == typeof u2 && (d2 = u2(d2, f2)), Number.isFinite(o2) && Number.isFinite(n2) && (h2 = o2, c2 = n2);
      var x2 = "", b2 = "", v2 = l2.globals.colors[s2];
      if (void 0 === l2.config.tooltip.x.formatter)
        if ("datetime" === l2.config.xaxis.type) {
          var m2 = new I(a2);
          x2 = m2.formatDate(m2.getDate(h2), l2.config.tooltip.x.format), b2 = m2.formatDate(m2.getDate(c2), l2.config.tooltip.x.format);
        } else
          x2 = h2, b2 = c2;
      else
        x2 = l2.config.tooltip.x.formatter(h2), b2 = l2.config.tooltip.x.formatter(c2);
      return { start: h2, end: c2, startVal: x2, endVal: b2, ylabel: d2, color: v2, seriesName: g2 };
    };
    var z = function(t2) {
      var e2 = t2.color, i2 = t2.seriesName, a2 = t2.ylabel, s2 = t2.start, r2 = t2.end, o2 = t2.seriesIndex, n2 = t2.dataPointIndex, l2 = t2.ctx.tooltip.tooltipLabels.getFormatters(o2);
      s2 = l2.yLbFormatter(s2), r2 = l2.yLbFormatter(r2);
      var h2 = l2.yLbFormatter(t2.w.globals.series[o2][n2]), c2 = '<span class="value start-value">\n  '.concat(s2, '\n  </span> <span class="separator">-</span> <span class="value end-value">\n  ').concat(r2, "\n  </span>");
      return '<div class="apexcharts-tooltip-rangebar"><div> <span class="series-name" style="color: ' + e2 + '">' + (i2 || "") + '</span></div><div> <span class="category">' + a2 + ": </span> " + (t2.w.globals.comboCharts ? "rangeArea" === t2.w.config.series[o2].type || "rangeBar" === t2.w.config.series[o2].type ? c2 : "<span>".concat(h2, "</span>") : c2) + " </div></div>";
    };
    var X = function() {
      function t2(e2) {
        a(this, t2), this.opts = e2;
      }
      return r(t2, [{ key: "hideYAxis", value: function() {
        this.opts.yaxis[0].show = false, this.opts.yaxis[0].title.text = "", this.opts.yaxis[0].axisBorder.show = false, this.opts.yaxis[0].axisTicks.show = false, this.opts.yaxis[0].floating = true;
      } }, { key: "line", value: function() {
        return { chart: { animations: { easing: "swing" } }, dataLabels: { enabled: false }, stroke: { width: 5, curve: "straight" }, markers: { size: 0, hover: { sizeOffset: 6 } }, xaxis: { crosshairs: { width: 1 } } };
      } }, { key: "sparkline", value: function(t3) {
        this.hideYAxis();
        return x.extend(t3, { grid: { show: false, padding: { left: 0, right: 0, top: 0, bottom: 0 } }, legend: { show: false }, xaxis: { labels: { show: false }, tooltip: { enabled: false }, axisBorder: { show: false }, axisTicks: { show: false } }, chart: { toolbar: { show: false }, zoom: { enabled: false } }, dataLabels: { enabled: false } });
      } }, { key: "bar", value: function() {
        return { chart: { stacked: false, animations: { easing: "swing" } }, plotOptions: { bar: { dataLabels: { position: "center" } } }, dataLabels: { style: { colors: ["#fff"] }, background: { enabled: false } }, stroke: { width: 0, lineCap: "round" }, fill: { opacity: 0.85 }, legend: { markers: { shape: "square", radius: 2, size: 8 } }, tooltip: { shared: false, intersect: true }, xaxis: { tooltip: { enabled: false }, tickPlacement: "between", crosshairs: { width: "barWidth", position: "back", fill: { type: "gradient" }, dropShadow: { enabled: false }, stroke: { width: 0 } } } };
      } }, { key: "funnel", value: function() {
        return this.hideYAxis(), e(e({}, this.bar()), {}, { chart: { animations: { easing: "linear", speed: 800, animateGradually: { enabled: false } } }, plotOptions: { bar: { horizontal: true, borderRadiusApplication: "around", borderRadius: 0, dataLabels: { position: "center" } } }, grid: { show: false, padding: { left: 0, right: 0 } }, xaxis: { labels: { show: false }, tooltip: { enabled: false }, axisBorder: { show: false }, axisTicks: { show: false } } });
      } }, { key: "candlestick", value: function() {
        var t3 = this;
        return { stroke: { width: 1, colors: ["#333"] }, fill: { opacity: 1 }, dataLabels: { enabled: false }, tooltip: { shared: true, custom: function(e2) {
          var i2 = e2.seriesIndex, a2 = e2.dataPointIndex, s2 = e2.w;
          return t3._getBoxTooltip(s2, i2, a2, ["Open", "High", "", "Low", "Close"], "candlestick");
        } }, states: { active: { filter: { type: "none" } } }, xaxis: { crosshairs: { width: 1 } } };
      } }, { key: "boxPlot", value: function() {
        var t3 = this;
        return { chart: { animations: { dynamicAnimation: { enabled: false } } }, stroke: { width: 1, colors: ["#24292e"] }, dataLabels: { enabled: false }, tooltip: { shared: true, custom: function(e2) {
          var i2 = e2.seriesIndex, a2 = e2.dataPointIndex, s2 = e2.w;
          return t3._getBoxTooltip(s2, i2, a2, ["Minimum", "Q1", "Median", "Q3", "Maximum"], "boxPlot");
        } }, markers: { size: 5, strokeWidth: 1, strokeColors: "#111" }, xaxis: { crosshairs: { width: 1 } } };
      } }, { key: "rangeBar", value: function() {
        return { chart: { animations: { animateGradually: false } }, stroke: { width: 0, lineCap: "square" }, plotOptions: { bar: { borderRadius: 0, dataLabels: { position: "center" } } }, dataLabels: { enabled: false, formatter: function(t3, e2) {
          e2.ctx;
          var i2 = e2.seriesIndex, a2 = e2.dataPointIndex, s2 = e2.w, r2 = function() {
            var t4 = s2.globals.seriesRangeStart[i2][a2];
            return s2.globals.seriesRangeEnd[i2][a2] - t4;
          };
          return s2.globals.comboCharts ? "rangeBar" === s2.config.series[i2].type || "rangeArea" === s2.config.series[i2].type ? r2() : t3 : r2();
        }, background: { enabled: false }, style: { colors: ["#fff"] } }, markers: { size: 10 }, tooltip: { shared: false, followCursor: true, custom: function(t3) {
          return t3.w.config.plotOptions && t3.w.config.plotOptions.bar && t3.w.config.plotOptions.bar.horizontal ? function(t4) {
            var i2 = M(e(e({}, t4), {}, { isTimeline: true })), a2 = i2.color, s2 = i2.seriesName, r2 = i2.ylabel, o2 = i2.startVal, n2 = i2.endVal;
            return z(e(e({}, t4), {}, { color: a2, seriesName: s2, ylabel: r2, start: o2, end: n2 }));
          }(t3) : function(t4) {
            var i2 = M(t4), a2 = i2.color, s2 = i2.seriesName, r2 = i2.ylabel, o2 = i2.start, n2 = i2.end;
            return z(e(e({}, t4), {}, { color: a2, seriesName: s2, ylabel: r2, start: o2, end: n2 }));
          }(t3);
        } }, xaxis: { tickPlacement: "between", tooltip: { enabled: false }, crosshairs: { stroke: { width: 0 } } } };
      } }, { key: "dumbbell", value: function(t3) {
        var e2, i2;
        return null !== (e2 = t3.plotOptions.bar) && void 0 !== e2 && e2.barHeight || (t3.plotOptions.bar.barHeight = 2), null !== (i2 = t3.plotOptions.bar) && void 0 !== i2 && i2.columnWidth || (t3.plotOptions.bar.columnWidth = 2), t3;
      } }, { key: "area", value: function() {
        return { stroke: { width: 4, fill: { type: "solid", gradient: { inverseColors: false, shade: "light", type: "vertical", opacityFrom: 0.65, opacityTo: 0.5, stops: [0, 100, 100] } } }, fill: { type: "gradient", gradient: { inverseColors: false, shade: "light", type: "vertical", opacityFrom: 0.65, opacityTo: 0.5, stops: [0, 100, 100] } }, markers: { size: 0, hover: { sizeOffset: 6 } }, tooltip: { followCursor: false } };
      } }, { key: "rangeArea", value: function() {
        return { stroke: { curve: "straight", width: 0 }, fill: { type: "solid", opacity: 0.6 }, markers: { size: 0 }, states: { hover: { filter: { type: "none" } }, active: { filter: { type: "none" } } }, tooltip: { intersect: false, shared: true, followCursor: true, custom: function(t3) {
          return function(t4) {
            var i2 = M(t4), a2 = i2.color, s2 = i2.seriesName, r2 = i2.ylabel, o2 = i2.start, n2 = i2.end;
            return z(e(e({}, t4), {}, { color: a2, seriesName: s2, ylabel: r2, start: o2, end: n2 }));
          }(t3);
        } } };
      } }, { key: "brush", value: function(t3) {
        return x.extend(t3, { chart: { toolbar: { autoSelected: "selection", show: false }, zoom: { enabled: false } }, dataLabels: { enabled: false }, stroke: { width: 1 }, tooltip: { enabled: false }, xaxis: { tooltip: { enabled: false } } });
      } }, { key: "stacked100", value: function(t3) {
        t3.dataLabels = t3.dataLabels || {}, t3.dataLabels.formatter = t3.dataLabels.formatter || void 0;
        var e2 = t3.dataLabels.formatter;
        return t3.yaxis.forEach(function(e3, i2) {
          t3.yaxis[i2].min = 0, t3.yaxis[i2].max = 100;
        }), "bar" === t3.chart.type && (t3.dataLabels.formatter = e2 || function(t4) {
          return "number" == typeof t4 && t4 ? t4.toFixed(0) + "%" : t4;
        }), t3;
      } }, { key: "stackedBars", value: function() {
        var t3 = this.bar();
        return e(e({}, t3), {}, { plotOptions: e(e({}, t3.plotOptions), {}, { bar: e(e({}, t3.plotOptions.bar), {}, { borderRadiusApplication: "end", borderRadiusWhenStacked: "last" }) }) });
      } }, { key: "convertCatToNumeric", value: function(t3) {
        return t3.xaxis.convertedCatToNumeric = true, t3;
      } }, { key: "convertCatToNumericXaxis", value: function(t3, e2, i2) {
        t3.xaxis.type = "numeric", t3.xaxis.labels = t3.xaxis.labels || {}, t3.xaxis.labels.formatter = t3.xaxis.labels.formatter || function(t4) {
          return x.isNumber(t4) ? Math.floor(t4) : t4;
        };
        var a2 = t3.xaxis.labels.formatter, s2 = t3.xaxis.categories && t3.xaxis.categories.length ? t3.xaxis.categories : t3.labels;
        return i2 && i2.length && (s2 = i2.map(function(t4) {
          return Array.isArray(t4) ? t4 : String(t4);
        })), s2 && s2.length && (t3.xaxis.labels.formatter = function(t4) {
          return x.isNumber(t4) ? a2(s2[Math.floor(t4) - 1]) : a2(t4);
        }), t3.xaxis.categories = [], t3.labels = [], t3.xaxis.tickAmount = t3.xaxis.tickAmount || "dataPoints", t3;
      } }, { key: "bubble", value: function() {
        return { dataLabels: { style: { colors: ["#fff"] } }, tooltip: { shared: false, intersect: true }, xaxis: { crosshairs: { width: 0 } }, fill: { type: "solid", gradient: { shade: "light", inverse: true, shadeIntensity: 0.55, opacityFrom: 0.4, opacityTo: 0.8 } } };
      } }, { key: "scatter", value: function() {
        return { dataLabels: { enabled: false }, tooltip: { shared: false, intersect: true }, markers: { size: 6, strokeWidth: 1, hover: { sizeOffset: 2 } } };
      } }, { key: "heatmap", value: function() {
        return { chart: { stacked: false }, fill: { opacity: 1 }, dataLabels: { style: { colors: ["#fff"] } }, stroke: { colors: ["#fff"] }, tooltip: { followCursor: true, marker: { show: false }, x: { show: false } }, legend: { position: "top", markers: { shape: "square", size: 10, offsetY: 2 } }, grid: { padding: { right: 20 } } };
      } }, { key: "treemap", value: function() {
        return { chart: { zoom: { enabled: false } }, dataLabels: { style: { fontSize: 14, fontWeight: 600, colors: ["#fff"] } }, stroke: { show: true, width: 2, colors: ["#fff"] }, legend: { show: false }, fill: { gradient: { stops: [0, 100] } }, tooltip: { followCursor: true, x: { show: false } }, grid: { padding: { left: 0, right: 0 } }, xaxis: { crosshairs: { show: false }, tooltip: { enabled: false } } };
      } }, { key: "pie", value: function() {
        return { chart: { toolbar: { show: false } }, plotOptions: { pie: { donut: { labels: { show: false } } } }, dataLabels: { formatter: function(t3) {
          return t3.toFixed(1) + "%";
        }, style: { colors: ["#fff"] }, background: { enabled: false }, dropShadow: { enabled: true } }, stroke: { colors: ["#fff"] }, fill: { opacity: 1, gradient: { shade: "light", stops: [0, 100] } }, tooltip: { theme: "dark", fillSeriesColor: true }, legend: { position: "right" } };
      } }, { key: "donut", value: function() {
        return { chart: { toolbar: { show: false } }, dataLabels: { formatter: function(t3) {
          return t3.toFixed(1) + "%";
        }, style: { colors: ["#fff"] }, background: { enabled: false }, dropShadow: { enabled: true } }, stroke: { colors: ["#fff"] }, fill: { opacity: 1, gradient: { shade: "light", shadeIntensity: 0.35, stops: [80, 100], opacityFrom: 1, opacityTo: 1 } }, tooltip: { theme: "dark", fillSeriesColor: true }, legend: { position: "right" } };
      } }, { key: "polarArea", value: function() {
        return this.opts.yaxis[0].tickAmount = this.opts.yaxis[0].tickAmount ? this.opts.yaxis[0].tickAmount : 6, { chart: { toolbar: { show: false } }, dataLabels: { formatter: function(t3) {
          return t3.toFixed(1) + "%";
        }, enabled: false }, stroke: { show: true, width: 2 }, fill: { opacity: 0.7 }, tooltip: { theme: "dark", fillSeriesColor: true }, legend: { position: "right" } };
      } }, { key: "radar", value: function() {
        return this.opts.yaxis[0].labels.offsetY = this.opts.yaxis[0].labels.offsetY ? this.opts.yaxis[0].labels.offsetY : 6, { dataLabels: { enabled: false, style: { fontSize: "11px" } }, stroke: { width: 2 }, markers: { size: 3, strokeWidth: 1, strokeOpacity: 1 }, fill: { opacity: 0.2 }, tooltip: { shared: false, intersect: true, followCursor: true }, grid: { show: false }, xaxis: { labels: { formatter: function(t3) {
          return t3;
        }, style: { colors: ["#a8a8a8"], fontSize: "11px" } }, tooltip: { enabled: false }, crosshairs: { show: false } } };
      } }, { key: "radialBar", value: function() {
        return { chart: { animations: { dynamicAnimation: { enabled: true, speed: 800 } }, toolbar: { show: false } }, fill: { gradient: { shade: "dark", shadeIntensity: 0.4, inverseColors: false, type: "diagonal2", opacityFrom: 1, opacityTo: 1, stops: [70, 98, 100] } }, legend: { show: false, position: "right" }, tooltip: { enabled: false, fillSeriesColor: true } };
      } }, { key: "_getBoxTooltip", value: function(t3, e2, i2, a2, s2) {
        var r2 = t3.globals.seriesCandleO[e2][i2], o2 = t3.globals.seriesCandleH[e2][i2], n2 = t3.globals.seriesCandleM[e2][i2], l2 = t3.globals.seriesCandleL[e2][i2], h2 = t3.globals.seriesCandleC[e2][i2];
        return t3.config.series[e2].type && t3.config.series[e2].type !== s2 ? '<div class="apexcharts-custom-tooltip">\n          '.concat(t3.config.series[e2].name ? t3.config.series[e2].name : "series-" + (e2 + 1), ": <strong>").concat(t3.globals.series[e2][i2], "</strong>\n        </div>") : '<div class="apexcharts-tooltip-box apexcharts-tooltip-'.concat(t3.config.chart.type, '">') + "<div>".concat(a2[0], ': <span class="value">') + r2 + "</span></div>" + "<div>".concat(a2[1], ': <span class="value">') + o2 + "</span></div>" + (n2 ? "<div>".concat(a2[2], ': <span class="value">') + n2 + "</span></div>" : "") + "<div>".concat(a2[3], ': <span class="value">') + l2 + "</span></div>" + "<div>".concat(a2[4], ': <span class="value">') + h2 + "</span></div></div>";
      } }]), t2;
    }();
    var E = function() {
      function t2(e2) {
        a(this, t2), this.opts = e2;
      }
      return r(t2, [{ key: "init", value: function(t3) {
        var e2 = t3.responsiveOverride, a2 = this.opts, s2 = new L(), r2 = new X(a2);
        this.chartType = a2.chart.type, a2 = this.extendYAxis(a2), a2 = this.extendAnnotations(a2);
        var o2 = s2.init(), n2 = {};
        if (a2 && "object" === i(a2)) {
          var l2, h2, c2, d2, g2, u2, p2, f2, b2 = {};
          b2 = -1 !== ["line", "area", "bar", "candlestick", "boxPlot", "rangeBar", "rangeArea", "bubble", "scatter", "heatmap", "treemap", "pie", "polarArea", "donut", "radar", "radialBar"].indexOf(a2.chart.type) ? r2[a2.chart.type]() : r2.line(), null !== (l2 = a2.plotOptions) && void 0 !== l2 && null !== (h2 = l2.bar) && void 0 !== h2 && h2.isFunnel && (b2 = r2.funnel()), a2.chart.stacked && "bar" === a2.chart.type && (b2 = r2.stackedBars()), null !== (c2 = a2.chart.brush) && void 0 !== c2 && c2.enabled && (b2 = r2.brush(b2)), a2.chart.stacked && "100%" === a2.chart.stackType && (a2 = r2.stacked100(a2)), null !== (d2 = a2.plotOptions) && void 0 !== d2 && null !== (g2 = d2.bar) && void 0 !== g2 && g2.isDumbbell && (a2 = r2.dumbbell(a2)), this.checkForDarkTheme(window.Apex), this.checkForDarkTheme(a2), a2.xaxis = a2.xaxis || window.Apex.xaxis || {}, e2 || (a2.xaxis.convertedCatToNumeric = false), (null !== (u2 = (a2 = this.checkForCatToNumericXAxis(this.chartType, b2, a2)).chart.sparkline) && void 0 !== u2 && u2.enabled || null !== (p2 = window.Apex.chart) && void 0 !== p2 && null !== (f2 = p2.sparkline) && void 0 !== f2 && f2.enabled) && (b2 = r2.sparkline(b2)), n2 = x.extend(o2, b2);
        }
        var v2 = x.extend(n2, window.Apex);
        return o2 = x.extend(v2, a2), o2 = this.handleUserInputErrors(o2);
      } }, { key: "checkForCatToNumericXAxis", value: function(t3, e2, i2) {
        var a2, s2, r2 = new X(i2), o2 = ("bar" === t3 || "boxPlot" === t3) && (null === (a2 = i2.plotOptions) || void 0 === a2 || null === (s2 = a2.bar) || void 0 === s2 ? void 0 : s2.horizontal), n2 = "pie" === t3 || "polarArea" === t3 || "donut" === t3 || "radar" === t3 || "radialBar" === t3 || "heatmap" === t3, l2 = "datetime" !== i2.xaxis.type && "numeric" !== i2.xaxis.type, h2 = i2.xaxis.tickPlacement ? i2.xaxis.tickPlacement : e2.xaxis && e2.xaxis.tickPlacement;
        return o2 || n2 || !l2 || "between" === h2 || (i2 = r2.convertCatToNumeric(i2)), i2;
      } }, { key: "extendYAxis", value: function(t3, e2) {
        var i2 = new L();
        (void 0 === t3.yaxis || !t3.yaxis || Array.isArray(t3.yaxis) && 0 === t3.yaxis.length) && (t3.yaxis = {}), t3.yaxis.constructor !== Array && window.Apex.yaxis && window.Apex.yaxis.constructor !== Array && (t3.yaxis = x.extend(t3.yaxis, window.Apex.yaxis)), t3.yaxis.constructor !== Array ? t3.yaxis = [x.extend(i2.yAxis, t3.yaxis)] : t3.yaxis = x.extendArray(t3.yaxis, i2.yAxis);
        var a2 = false;
        t3.yaxis.forEach(function(t4) {
          t4.logarithmic && (a2 = true);
        });
        var s2 = t3.series;
        return e2 && !s2 && (s2 = e2.config.series), a2 && s2.length !== t3.yaxis.length && s2.length && (t3.yaxis = s2.map(function(e3, a3) {
          if (e3.name || (s2[a3].name = "series-".concat(a3 + 1)), t3.yaxis[a3])
            return t3.yaxis[a3].seriesName = s2[a3].name, t3.yaxis[a3];
          var r2 = x.extend(i2.yAxis, t3.yaxis[0]);
          return r2.show = false, r2;
        })), a2 && s2.length > 1 && s2.length !== t3.yaxis.length && console.warn("A multi-series logarithmic chart should have equal number of series and y-axes"), t3;
      } }, { key: "extendAnnotations", value: function(t3) {
        return void 0 === t3.annotations && (t3.annotations = {}, t3.annotations.yaxis = [], t3.annotations.xaxis = [], t3.annotations.points = []), t3 = this.extendYAxisAnnotations(t3), t3 = this.extendXAxisAnnotations(t3), t3 = this.extendPointAnnotations(t3);
      } }, { key: "extendYAxisAnnotations", value: function(t3) {
        var e2 = new L();
        return t3.annotations.yaxis = x.extendArray(void 0 !== t3.annotations.yaxis ? t3.annotations.yaxis : [], e2.yAxisAnnotation), t3;
      } }, { key: "extendXAxisAnnotations", value: function(t3) {
        var e2 = new L();
        return t3.annotations.xaxis = x.extendArray(void 0 !== t3.annotations.xaxis ? t3.annotations.xaxis : [], e2.xAxisAnnotation), t3;
      } }, { key: "extendPointAnnotations", value: function(t3) {
        var e2 = new L();
        return t3.annotations.points = x.extendArray(void 0 !== t3.annotations.points ? t3.annotations.points : [], e2.pointAnnotation), t3;
      } }, { key: "checkForDarkTheme", value: function(t3) {
        t3.theme && "dark" === t3.theme.mode && (t3.tooltip || (t3.tooltip = {}), "light" !== t3.tooltip.theme && (t3.tooltip.theme = "dark"), t3.chart.foreColor || (t3.chart.foreColor = "#f6f7f8"), t3.chart.background || (t3.chart.background = "#424242"), t3.theme.palette || (t3.theme.palette = "palette4"));
      } }, { key: "handleUserInputErrors", value: function(t3) {
        var e2 = t3;
        if (e2.tooltip.shared && e2.tooltip.intersect)
          throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.");
        if ("bar" === e2.chart.type && e2.plotOptions.bar.horizontal) {
          if (e2.yaxis.length > 1)
            throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");
          e2.yaxis[0].reversed && (e2.yaxis[0].opposite = true), e2.xaxis.tooltip.enabled = false, e2.yaxis[0].tooltip.enabled = false, e2.chart.zoom.enabled = false;
        }
        return "bar" !== e2.chart.type && "rangeBar" !== e2.chart.type || e2.tooltip.shared && "barWidth" === e2.xaxis.crosshairs.width && e2.series.length > 1 && (e2.xaxis.crosshairs.width = "tickWidth"), "candlestick" !== e2.chart.type && "boxPlot" !== e2.chart.type || e2.yaxis[0].reversed && (console.warn("Reversed y-axis in ".concat(e2.chart.type, " chart is not supported.")), e2.yaxis[0].reversed = false), e2;
      } }]), t2;
    }();
    var Y = function() {
      function t2() {
        a(this, t2);
      }
      return r(t2, [{ key: "initGlobalVars", value: function(t3) {
        t3.series = [], t3.seriesCandleO = [], t3.seriesCandleH = [], t3.seriesCandleM = [], t3.seriesCandleL = [], t3.seriesCandleC = [], t3.seriesRangeStart = [], t3.seriesRangeEnd = [], t3.seriesRange = [], t3.seriesPercent = [], t3.seriesGoals = [], t3.seriesX = [], t3.seriesZ = [], t3.seriesNames = [], t3.seriesTotals = [], t3.seriesLog = [], t3.seriesColors = [], t3.stackedSeriesTotals = [], t3.seriesXvalues = [], t3.seriesYvalues = [], t3.labels = [], t3.hasXaxisGroups = false, t3.groups = [], t3.hasSeriesGroups = false, t3.seriesGroups = [], t3.categoryLabels = [], t3.timescaleLabels = [], t3.noLabelsProvided = false, t3.resizeTimer = null, t3.selectionResizeTimer = null, t3.delayedElements = [], t3.pointsArray = [], t3.dataLabelsRects = [], t3.isXNumeric = false, t3.skipLastTimelinelabel = false, t3.skipFirstTimelinelabel = false, t3.isDataXYZ = false, t3.isMultiLineX = false, t3.isMultipleYAxis = false, t3.maxY = -Number.MAX_VALUE, t3.minY = Number.MIN_VALUE, t3.minYArr = [], t3.maxYArr = [], t3.maxX = -Number.MAX_VALUE, t3.minX = Number.MAX_VALUE, t3.initialMaxX = -Number.MAX_VALUE, t3.initialMinX = Number.MAX_VALUE, t3.maxDate = 0, t3.minDate = Number.MAX_VALUE, t3.minZ = Number.MAX_VALUE, t3.maxZ = -Number.MAX_VALUE, t3.minXDiff = Number.MAX_VALUE, t3.yAxisScale = [], t3.xAxisScale = null, t3.xAxisTicksPositions = [], t3.yLabelsCoords = [], t3.yTitleCoords = [], t3.barPadForNumericAxis = 0, t3.padHorizontal = 0, t3.xRange = 0, t3.yRange = [], t3.zRange = 0, t3.dataPoints = 0, t3.xTickAmount = 0;
      } }, { key: "globalVars", value: function(t3) {
        return { chartID: null, cuid: null, events: { beforeMount: [], mounted: [], updated: [], clicked: [], selection: [], dataPointSelection: [], zoomed: [], scrolled: [] }, colors: [], clientX: null, clientY: null, fill: { colors: [] }, stroke: { colors: [] }, dataLabels: { style: { colors: [] } }, radarPolygons: { fill: { colors: [] } }, markers: { colors: [], size: t3.markers.size, largestSize: 0 }, animationEnded: false, isTouchDevice: "ontouchstart" in window || navigator.msMaxTouchPoints, isDirty: false, isExecCalled: false, initialConfig: null, initialSeries: [], lastXAxis: [], lastYAxis: [], columnSeries: null, labels: [], timescaleLabels: [], noLabelsProvided: false, allSeriesCollapsed: false, collapsedSeries: [], collapsedSeriesIndices: [], ancillaryCollapsedSeries: [], ancillaryCollapsedSeriesIndices: [], risingSeries: [], dataFormatXNumeric: false, capturedSeriesIndex: -1, capturedDataPointIndex: -1, selectedDataPoints: [], goldenPadding: 35, invalidLogScale: false, ignoreYAxisIndexes: [], yAxisSameScaleIndices: [], maxValsInArrayIndex: 0, radialSize: 0, selection: void 0, zoomEnabled: "zoom" === t3.chart.toolbar.autoSelected && t3.chart.toolbar.tools.zoom && t3.chart.zoom.enabled, panEnabled: "pan" === t3.chart.toolbar.autoSelected && t3.chart.toolbar.tools.pan, selectionEnabled: "selection" === t3.chart.toolbar.autoSelected && t3.chart.toolbar.tools.selection, yaxis: null, mousedown: false, lastClientPosition: {}, visibleXRange: void 0, yValueDecimal: 0, total: 0, SVGNS: "http://www.w3.org/2000/svg", svgWidth: 0, svgHeight: 0, noData: false, locale: {}, dom: {}, memory: { methodsToExec: [] }, shouldAnimate: true, skipLastTimelinelabel: false, skipFirstTimelinelabel: false, delayedElements: [], axisCharts: true, isDataXYZ: false, resized: false, resizeTimer: null, comboCharts: false, dataChanged: false, previousPaths: [], allSeriesHasEqualX: true, pointsArray: [], dataLabelsRects: [], lastDrawnDataLabelsIndexes: [], hasNullValues: false, easing: null, zoomed: false, gridWidth: 0, gridHeight: 0, rotateXLabels: false, defaultLabels: false, xLabelFormatter: void 0, yLabelFormatters: [], xaxisTooltipFormatter: void 0, ttKeyFormatter: void 0, ttVal: void 0, ttZFormatter: void 0, LINE_HEIGHT_RATIO: 1.618, xAxisLabelsHeight: 0, xAxisGroupLabelsHeight: 0, xAxisLabelsWidth: 0, yAxisLabelsWidth: 0, scaleX: 1, scaleY: 1, translateX: 0, translateY: 0, translateYAxisX: [], yAxisWidths: [], translateXAxisY: 0, translateXAxisX: 0, tooltip: null };
      } }, { key: "init", value: function(t3) {
        var e2 = this.globalVars(t3);
        return this.initGlobalVars(e2), e2.initialConfig = x.extend({}, t3), e2.initialSeries = x.clone(t3.series), e2.lastXAxis = x.clone(e2.initialConfig.xaxis), e2.lastYAxis = x.clone(e2.initialConfig.yaxis), e2;
      } }]), t2;
    }();
    var F = function() {
      function t2(e2) {
        a(this, t2), this.opts = e2;
      }
      return r(t2, [{ key: "init", value: function() {
        var t3 = new E(this.opts).init({ responsiveOverride: false });
        return { config: t3, globals: new Y().init(t3) };
      } }]), t2;
    }();
    var R = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.opts = null, this.seriesIndex = 0;
      }
      return r(t2, [{ key: "clippedImgArea", value: function(t3) {
        var e2 = this.w, i2 = e2.config, a2 = parseInt(e2.globals.gridWidth, 10), s2 = parseInt(e2.globals.gridHeight, 10), r2 = a2 > s2 ? a2 : s2, o2 = t3.image, n2 = 0, l2 = 0;
        void 0 === t3.width && void 0 === t3.height ? void 0 !== i2.fill.image.width && void 0 !== i2.fill.image.height ? (n2 = i2.fill.image.width + 1, l2 = i2.fill.image.height) : (n2 = r2 + 1, l2 = r2) : (n2 = t3.width, l2 = t3.height);
        var h2 = document.createElementNS(e2.globals.SVGNS, "pattern");
        m.setAttrs(h2, { id: t3.patternID, patternUnits: t3.patternUnits ? t3.patternUnits : "userSpaceOnUse", width: n2 + "px", height: l2 + "px" });
        var c2 = document.createElementNS(e2.globals.SVGNS, "image");
        h2.appendChild(c2), c2.setAttributeNS(window.SVG.xlink, "href", o2), m.setAttrs(c2, { x: 0, y: 0, preserveAspectRatio: "none", width: n2 + "px", height: l2 + "px" }), c2.style.opacity = t3.opacity, e2.globals.dom.elDefs.node.appendChild(h2);
      } }, { key: "getSeriesIndex", value: function(t3) {
        var e2 = this.w, i2 = e2.config.chart.type;
        return ("bar" === i2 || "rangeBar" === i2) && e2.config.plotOptions.bar.distributed || "heatmap" === i2 || "treemap" === i2 ? this.seriesIndex = t3.seriesNumber : this.seriesIndex = t3.seriesNumber % e2.globals.series.length, this.seriesIndex;
      } }, { key: "fillPath", value: function(t3) {
        var e2 = this.w;
        this.opts = t3;
        var i2, a2, s2, r2 = this.w.config;
        this.seriesIndex = this.getSeriesIndex(t3);
        var o2 = this.getFillColors()[this.seriesIndex];
        void 0 !== e2.globals.seriesColors[this.seriesIndex] && (o2 = e2.globals.seriesColors[this.seriesIndex]), "function" == typeof o2 && (o2 = o2({ seriesIndex: this.seriesIndex, dataPointIndex: t3.dataPointIndex, value: t3.value, w: e2 }));
        var n2 = t3.fillType ? t3.fillType : this.getFillType(this.seriesIndex), l2 = Array.isArray(r2.fill.opacity) ? r2.fill.opacity[this.seriesIndex] : r2.fill.opacity;
        t3.color && (o2 = t3.color), o2 || (o2 = "#fff", console.warn("undefined color - ApexCharts"));
        var h2 = o2;
        if (-1 === o2.indexOf("rgb") ? o2.length < 9 && (h2 = x.hexToRgba(o2, l2)) : o2.indexOf("rgba") > -1 && (l2 = x.getOpacityFromRGBA(o2)), t3.opacity && (l2 = t3.opacity), "pattern" === n2 && (a2 = this.handlePatternFill({ fillConfig: t3.fillConfig, patternFill: a2, fillColor: o2, fillOpacity: l2, defaultColor: h2 })), "gradient" === n2 && (s2 = this.handleGradientFill({ fillConfig: t3.fillConfig, fillColor: o2, fillOpacity: l2, i: this.seriesIndex })), "image" === n2) {
          var c2 = r2.fill.image.src, d2 = t3.patternID ? t3.patternID : "";
          this.clippedImgArea({ opacity: l2, image: Array.isArray(c2) ? t3.seriesNumber < c2.length ? c2[t3.seriesNumber] : c2[0] : c2, width: t3.width ? t3.width : void 0, height: t3.height ? t3.height : void 0, patternUnits: t3.patternUnits, patternID: "pattern".concat(e2.globals.cuid).concat(t3.seriesNumber + 1).concat(d2) }), i2 = "url(#pattern".concat(e2.globals.cuid).concat(t3.seriesNumber + 1).concat(d2, ")");
        } else
          i2 = "gradient" === n2 ? s2 : "pattern" === n2 ? a2 : h2;
        return t3.solid && (i2 = h2), i2;
      } }, { key: "getFillType", value: function(t3) {
        var e2 = this.w;
        return Array.isArray(e2.config.fill.type) ? e2.config.fill.type[t3] : e2.config.fill.type;
      } }, { key: "getFillColors", value: function() {
        var t3 = this.w, e2 = t3.config, i2 = this.opts, a2 = [];
        return t3.globals.comboCharts ? "line" === t3.config.series[this.seriesIndex].type ? Array.isArray(t3.globals.stroke.colors) ? a2 = t3.globals.stroke.colors : a2.push(t3.globals.stroke.colors) : Array.isArray(t3.globals.fill.colors) ? a2 = t3.globals.fill.colors : a2.push(t3.globals.fill.colors) : "line" === e2.chart.type ? Array.isArray(t3.globals.stroke.colors) ? a2 = t3.globals.stroke.colors : a2.push(t3.globals.stroke.colors) : Array.isArray(t3.globals.fill.colors) ? a2 = t3.globals.fill.colors : a2.push(t3.globals.fill.colors), void 0 !== i2.fillColors && (a2 = [], Array.isArray(i2.fillColors) ? a2 = i2.fillColors.slice() : a2.push(i2.fillColors)), a2;
      } }, { key: "handlePatternFill", value: function(t3) {
        var e2 = t3.fillConfig, i2 = t3.patternFill, a2 = t3.fillColor, s2 = t3.fillOpacity, r2 = t3.defaultColor, o2 = this.w.config.fill;
        e2 && (o2 = e2);
        var n2 = this.opts, l2 = new m(this.ctx), h2 = Array.isArray(o2.pattern.strokeWidth) ? o2.pattern.strokeWidth[this.seriesIndex] : o2.pattern.strokeWidth, c2 = a2;
        Array.isArray(o2.pattern.style) ? i2 = void 0 !== o2.pattern.style[n2.seriesNumber] ? l2.drawPattern(o2.pattern.style[n2.seriesNumber], o2.pattern.width, o2.pattern.height, c2, h2, s2) : r2 : i2 = l2.drawPattern(o2.pattern.style, o2.pattern.width, o2.pattern.height, c2, h2, s2);
        return i2;
      } }, { key: "handleGradientFill", value: function(t3) {
        var i2 = t3.fillColor, a2 = t3.fillOpacity, s2 = t3.fillConfig, r2 = t3.i, o2 = this.w.config.fill;
        s2 && (o2 = e(e({}, o2), s2));
        var n2, l2 = this.opts, h2 = new m(this.ctx), c2 = new x(), d2 = o2.gradient.type, g2 = i2, u2 = void 0 === o2.gradient.opacityFrom ? a2 : Array.isArray(o2.gradient.opacityFrom) ? o2.gradient.opacityFrom[r2] : o2.gradient.opacityFrom;
        g2.indexOf("rgba") > -1 && (u2 = x.getOpacityFromRGBA(g2));
        var p2 = void 0 === o2.gradient.opacityTo ? a2 : Array.isArray(o2.gradient.opacityTo) ? o2.gradient.opacityTo[r2] : o2.gradient.opacityTo;
        if (void 0 === o2.gradient.gradientToColors || 0 === o2.gradient.gradientToColors.length)
          n2 = "dark" === o2.gradient.shade ? c2.shadeColor(-1 * parseFloat(o2.gradient.shadeIntensity), i2.indexOf("rgb") > -1 ? x.rgb2hex(i2) : i2) : c2.shadeColor(parseFloat(o2.gradient.shadeIntensity), i2.indexOf("rgb") > -1 ? x.rgb2hex(i2) : i2);
        else if (o2.gradient.gradientToColors[l2.seriesNumber]) {
          var f2 = o2.gradient.gradientToColors[l2.seriesNumber];
          n2 = f2, f2.indexOf("rgba") > -1 && (p2 = x.getOpacityFromRGBA(f2));
        } else
          n2 = i2;
        if (o2.gradient.gradientFrom && (g2 = o2.gradient.gradientFrom), o2.gradient.gradientTo && (n2 = o2.gradient.gradientTo), o2.gradient.inverseColors) {
          var b2 = g2;
          g2 = n2, n2 = b2;
        }
        return g2.indexOf("rgb") > -1 && (g2 = x.rgb2hex(g2)), n2.indexOf("rgb") > -1 && (n2 = x.rgb2hex(n2)), h2.drawGradient(d2, g2, n2, u2, p2, l2.size, o2.gradient.stops, o2.gradient.colorStops, r2);
      } }]), t2;
    }();
    var H = function() {
      function t2(e2, i2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "setGlobalMarkerSize", value: function() {
        var t3 = this.w;
        if (t3.globals.markers.size = Array.isArray(t3.config.markers.size) ? t3.config.markers.size : [t3.config.markers.size], t3.globals.markers.size.length > 0) {
          if (t3.globals.markers.size.length < t3.globals.series.length + 1)
            for (var e2 = 0; e2 <= t3.globals.series.length; e2++)
              void 0 === t3.globals.markers.size[e2] && t3.globals.markers.size.push(t3.globals.markers.size[0]);
        } else
          t3.globals.markers.size = t3.config.series.map(function(e3) {
            return t3.config.markers.size;
          });
      } }, { key: "plotChartMarkers", value: function(t3, e2, i2, a2) {
        var s2, r2 = arguments.length > 4 && void 0 !== arguments[4] && arguments[4], o2 = this.w, n2 = e2, l2 = t3, h2 = null, c2 = new m(this.ctx), d2 = o2.config.markers.discrete && o2.config.markers.discrete.length;
        if ((o2.globals.markers.size[e2] > 0 || r2 || d2) && (h2 = c2.group({ class: r2 || d2 ? "" : "apexcharts-series-markers" })).attr("clip-path", "url(#gridRectMarkerMask".concat(o2.globals.cuid, ")")), Array.isArray(l2.x))
          for (var g2 = 0; g2 < l2.x.length; g2++) {
            var u2 = i2;
            1 === i2 && 0 === g2 && (u2 = 0), 1 === i2 && 1 === g2 && (u2 = 1);
            var p2 = "apexcharts-marker";
            if ("line" !== o2.config.chart.type && "area" !== o2.config.chart.type || o2.globals.comboCharts || o2.config.tooltip.intersect || (p2 += " no-pointer-events"), (Array.isArray(o2.config.markers.size) ? o2.globals.markers.size[e2] > 0 : o2.config.markers.size > 0) || r2 || d2) {
              x.isNumber(l2.y[g2]) ? p2 += " w".concat(x.randomId()) : p2 = "apexcharts-nullpoint";
              var f2 = this.getMarkerConfig({ cssClass: p2, seriesIndex: e2, dataPointIndex: u2 });
              o2.config.series[n2].data[u2] && (o2.config.series[n2].data[u2].fillColor && (f2.pointFillColor = o2.config.series[n2].data[u2].fillColor), o2.config.series[n2].data[u2].strokeColor && (f2.pointStrokeColor = o2.config.series[n2].data[u2].strokeColor)), a2 && (f2.pSize = a2), (l2.x[g2] < 0 || l2.x[g2] > o2.globals.gridWidth || l2.y[g2] < -o2.globals.markers.largestSize || l2.y[g2] > o2.globals.gridHeight + o2.globals.markers.largestSize) && (f2.pSize = 0), (s2 = c2.drawMarker(l2.x[g2], l2.y[g2], f2)).attr("rel", u2), s2.attr("j", u2), s2.attr("index", e2), s2.node.setAttribute("default-marker-size", f2.pSize), new v(this.ctx).setSelectionFilter(s2, e2, u2), this.addEvents(s2), h2 && h2.add(s2);
            } else
              void 0 === o2.globals.pointsArray[e2] && (o2.globals.pointsArray[e2] = []), o2.globals.pointsArray[e2].push([l2.x[g2], l2.y[g2]]);
          }
        return h2;
      } }, { key: "getMarkerConfig", value: function(t3) {
        var e2 = t3.cssClass, i2 = t3.seriesIndex, a2 = t3.dataPointIndex, s2 = void 0 === a2 ? null : a2, r2 = t3.finishRadius, o2 = void 0 === r2 ? null : r2, n2 = this.w, l2 = this.getMarkerStyle(i2), h2 = n2.globals.markers.size[i2], c2 = n2.config.markers;
        return null !== s2 && c2.discrete.length && c2.discrete.map(function(t4) {
          t4.seriesIndex === i2 && t4.dataPointIndex === s2 && (l2.pointStrokeColor = t4.strokeColor, l2.pointFillColor = t4.fillColor, h2 = t4.size, l2.pointShape = t4.shape);
        }), { pSize: null === o2 ? h2 : o2, pRadius: c2.radius, width: Array.isArray(c2.width) ? c2.width[i2] : c2.width, height: Array.isArray(c2.height) ? c2.height[i2] : c2.height, pointStrokeWidth: Array.isArray(c2.strokeWidth) ? c2.strokeWidth[i2] : c2.strokeWidth, pointStrokeColor: l2.pointStrokeColor, pointFillColor: l2.pointFillColor, shape: l2.pointShape || (Array.isArray(c2.shape) ? c2.shape[i2] : c2.shape), class: e2, pointStrokeOpacity: Array.isArray(c2.strokeOpacity) ? c2.strokeOpacity[i2] : c2.strokeOpacity, pointStrokeDashArray: Array.isArray(c2.strokeDashArray) ? c2.strokeDashArray[i2] : c2.strokeDashArray, pointFillOpacity: Array.isArray(c2.fillOpacity) ? c2.fillOpacity[i2] : c2.fillOpacity, seriesIndex: i2 };
      } }, { key: "addEvents", value: function(t3) {
        var e2 = this.w, i2 = new m(this.ctx);
        t3.node.addEventListener("mouseenter", i2.pathMouseEnter.bind(this.ctx, t3)), t3.node.addEventListener("mouseleave", i2.pathMouseLeave.bind(this.ctx, t3)), t3.node.addEventListener("mousedown", i2.pathMouseDown.bind(this.ctx, t3)), t3.node.addEventListener("click", e2.config.markers.onClick), t3.node.addEventListener("dblclick", e2.config.markers.onDblClick), t3.node.addEventListener("touchstart", i2.pathMouseDown.bind(this.ctx, t3), { passive: true });
      } }, { key: "getMarkerStyle", value: function(t3) {
        var e2 = this.w, i2 = e2.globals.markers.colors, a2 = e2.config.markers.strokeColor || e2.config.markers.strokeColors;
        return { pointStrokeColor: Array.isArray(a2) ? a2[t3] : a2, pointFillColor: Array.isArray(i2) ? i2[t3] : i2 };
      } }]), t2;
    }();
    var D = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled;
      }
      return r(t2, [{ key: "draw", value: function(t3, e2, i2) {
        var a2 = this.w, s2 = new m(this.ctx), r2 = i2.realIndex, o2 = i2.pointsPos, n2 = i2.zRatio, l2 = i2.elParent, h2 = s2.group({ class: "apexcharts-series-markers apexcharts-series-".concat(a2.config.chart.type) });
        if (h2.attr("clip-path", "url(#gridRectMarkerMask".concat(a2.globals.cuid, ")")), Array.isArray(o2.x))
          for (var c2 = 0; c2 < o2.x.length; c2++) {
            var d2 = e2 + 1, g2 = true;
            0 === e2 && 0 === c2 && (d2 = 0), 0 === e2 && 1 === c2 && (d2 = 1);
            var u2 = 0, p2 = a2.globals.markers.size[r2];
            if (n2 !== 1 / 0) {
              var f2 = a2.config.plotOptions.bubble;
              p2 = a2.globals.seriesZ[r2][d2], f2.zScaling && (p2 /= n2), f2.minBubbleRadius && p2 < f2.minBubbleRadius && (p2 = f2.minBubbleRadius), f2.maxBubbleRadius && p2 > f2.maxBubbleRadius && (p2 = f2.maxBubbleRadius);
            }
            a2.config.chart.animations.enabled || (u2 = p2);
            var x2 = o2.x[c2], b2 = o2.y[c2];
            if (u2 = u2 || 0, null !== b2 && void 0 !== a2.globals.series[r2][d2] || (g2 = false), g2) {
              var v2 = this.drawPoint(x2, b2, u2, p2, r2, d2, e2);
              h2.add(v2);
            }
            l2.add(h2);
          }
      } }, { key: "drawPoint", value: function(t3, e2, i2, a2, s2, r2, o2) {
        var n2 = this.w, l2 = s2, h2 = new b(this.ctx), c2 = new v(this.ctx), d2 = new R(this.ctx), g2 = new H(this.ctx), u2 = new m(this.ctx), p2 = g2.getMarkerConfig({ cssClass: "apexcharts-marker", seriesIndex: l2, dataPointIndex: r2, finishRadius: "bubble" === n2.config.chart.type || n2.globals.comboCharts && n2.config.series[s2] && "bubble" === n2.config.series[s2].type ? a2 : null });
        a2 = p2.pSize;
        var f2, x2 = d2.fillPath({ seriesNumber: s2, dataPointIndex: r2, color: p2.pointFillColor, patternUnits: "objectBoundingBox", value: n2.globals.series[s2][o2] });
        if ("circle" === p2.shape ? f2 = u2.drawCircle(i2) : "square" !== p2.shape && "rect" !== p2.shape || (f2 = u2.drawRect(0, 0, p2.width - p2.pointStrokeWidth / 2, p2.height - p2.pointStrokeWidth / 2, p2.pRadius)), n2.config.series[l2].data[r2] && n2.config.series[l2].data[r2].fillColor && (x2 = n2.config.series[l2].data[r2].fillColor), f2.attr({ x: t3 - p2.width / 2 - p2.pointStrokeWidth / 2, y: e2 - p2.height / 2 - p2.pointStrokeWidth / 2, cx: t3, cy: e2, fill: x2, "fill-opacity": p2.pointFillOpacity, stroke: p2.pointStrokeColor, r: a2, "stroke-width": p2.pointStrokeWidth, "stroke-dasharray": p2.pointStrokeDashArray, "stroke-opacity": p2.pointStrokeOpacity }), n2.config.chart.dropShadow.enabled) {
          var y2 = n2.config.chart.dropShadow;
          c2.dropShadow(f2, y2, s2);
        }
        if (!this.initialAnim || n2.globals.dataChanged || n2.globals.resized)
          n2.globals.animationEnded = true;
        else {
          var w2 = n2.config.chart.animations.speed;
          h2.animateMarker(f2, 0, "circle" === p2.shape ? a2 : { width: p2.width, height: p2.height }, w2, n2.globals.easing, function() {
            window.setTimeout(function() {
              h2.animationCompleted(f2);
            }, 100);
          });
        }
        if (n2.globals.dataChanged && "circle" === p2.shape)
          if (this.dynamicAnim) {
            var k2, A3, S2, C2, L2 = n2.config.chart.animations.dynamicAnimation.speed;
            null != (C2 = n2.globals.previousPaths[s2] && n2.globals.previousPaths[s2][o2]) && (k2 = C2.x, A3 = C2.y, S2 = void 0 !== C2.r ? C2.r : a2);
            for (var P2 = 0; P2 < n2.globals.collapsedSeries.length; P2++)
              n2.globals.collapsedSeries[P2].index === s2 && (L2 = 1, a2 = 0);
            0 === t3 && 0 === e2 && (a2 = 0), h2.animateCircle(f2, { cx: k2, cy: A3, r: S2 }, { cx: t3, cy: e2, r: a2 }, L2, n2.globals.easing);
          } else
            f2.attr({ r: a2 });
        return f2.attr({ rel: r2, j: r2, index: s2, "default-marker-size": a2 }), c2.setSelectionFilter(f2, s2, r2), g2.addEvents(f2), f2.node.classList.add("apexcharts-marker"), f2;
      } }, { key: "centerTextInBubble", value: function(t3) {
        var e2 = this.w;
        return { y: t3 += parseInt(e2.config.dataLabels.style.fontSize, 10) / 4 };
      } }]), t2;
    }();
    var O = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "dataLabelsCorrection", value: function(t3, e2, i2, a2, s2, r2, o2) {
        var n2 = this.w, l2 = false, h2 = new m(this.ctx).getTextRects(i2, o2), c2 = h2.width, d2 = h2.height;
        e2 < 0 && (e2 = 0), e2 > n2.globals.gridHeight + d2 && (e2 = n2.globals.gridHeight + d2 / 2), void 0 === n2.globals.dataLabelsRects[a2] && (n2.globals.dataLabelsRects[a2] = []), n2.globals.dataLabelsRects[a2].push({ x: t3, y: e2, width: c2, height: d2 });
        var g2 = n2.globals.dataLabelsRects[a2].length - 2, u2 = void 0 !== n2.globals.lastDrawnDataLabelsIndexes[a2] ? n2.globals.lastDrawnDataLabelsIndexes[a2][n2.globals.lastDrawnDataLabelsIndexes[a2].length - 1] : 0;
        if (void 0 !== n2.globals.dataLabelsRects[a2][g2]) {
          var p2 = n2.globals.dataLabelsRects[a2][u2];
          (t3 > p2.x + p2.width || e2 > p2.y + p2.height || e2 + d2 < p2.y || t3 + c2 < p2.x) && (l2 = true);
        }
        return (0 === s2 || r2) && (l2 = true), { x: t3, y: e2, textRects: h2, drawnextLabel: l2 };
      } }, { key: "drawDataLabel", value: function(t3) {
        var e2 = this, i2 = t3.type, a2 = t3.pos, s2 = t3.i, r2 = t3.j, o2 = t3.isRangeStart, n2 = t3.strokeWidth, l2 = void 0 === n2 ? 2 : n2, h2 = this.w, c2 = new m(this.ctx), d2 = h2.config.dataLabels, g2 = 0, u2 = 0, p2 = r2, f2 = null;
        if (!d2.enabled || !Array.isArray(a2.x))
          return f2;
        f2 = c2.group({ class: "apexcharts-data-labels" });
        for (var x2 = 0; x2 < a2.x.length; x2++)
          if (g2 = a2.x[x2] + d2.offsetX, u2 = a2.y[x2] + d2.offsetY + l2, !isNaN(g2)) {
            1 === r2 && 0 === x2 && (p2 = 0), 1 === r2 && 1 === x2 && (p2 = 1);
            var b2 = h2.globals.series[s2][p2];
            "rangeArea" === i2 && (b2 = o2 ? h2.globals.seriesRangeStart[s2][p2] : h2.globals.seriesRangeEnd[s2][p2]);
            var v2 = "", y2 = function(t4) {
              return h2.config.dataLabels.formatter(t4, { ctx: e2.ctx, seriesIndex: s2, dataPointIndex: p2, w: h2 });
            };
            if ("bubble" === h2.config.chart.type)
              v2 = y2(b2 = h2.globals.seriesZ[s2][p2]), u2 = a2.y[x2], u2 = new D(this.ctx).centerTextInBubble(u2, s2, p2).y;
            else
              void 0 !== b2 && (v2 = y2(b2));
            this.plotDataLabelsText({ x: g2, y: u2, text: v2, i: s2, j: p2, parent: f2, offsetCorrection: true, dataLabelsConfig: h2.config.dataLabels });
          }
        return f2;
      } }, { key: "plotDataLabelsText", value: function(t3) {
        var e2 = this.w, i2 = new m(this.ctx), a2 = t3.x, s2 = t3.y, r2 = t3.i, o2 = t3.j, n2 = t3.text, l2 = t3.textAnchor, h2 = t3.fontSize, c2 = t3.parent, d2 = t3.dataLabelsConfig, g2 = t3.color, u2 = t3.alwaysDrawDataLabel, p2 = t3.offsetCorrection;
        if (!(Array.isArray(e2.config.dataLabels.enabledOnSeries) && e2.config.dataLabels.enabledOnSeries.indexOf(r2) < 0)) {
          var f2 = { x: a2, y: s2, drawnextLabel: true, textRects: null };
          p2 && (f2 = this.dataLabelsCorrection(a2, s2, n2, r2, o2, u2, parseInt(d2.style.fontSize, 10))), e2.globals.zoomed || (a2 = f2.x, s2 = f2.y), f2.textRects && (a2 < -20 - f2.textRects.width || a2 > e2.globals.gridWidth + f2.textRects.width + 30) && (n2 = "");
          var x2 = e2.globals.dataLabels.style.colors[r2];
          (("bar" === e2.config.chart.type || "rangeBar" === e2.config.chart.type) && e2.config.plotOptions.bar.distributed || e2.config.dataLabels.distributed) && (x2 = e2.globals.dataLabels.style.colors[o2]), "function" == typeof x2 && (x2 = x2({ series: e2.globals.series, seriesIndex: r2, dataPointIndex: o2, w: e2 })), g2 && (x2 = g2);
          var b2 = d2.offsetX, y2 = d2.offsetY;
          if ("bar" !== e2.config.chart.type && "rangeBar" !== e2.config.chart.type || (b2 = 0, y2 = 0), f2.drawnextLabel) {
            var w2 = i2.drawText({ width: 100, height: parseInt(d2.style.fontSize, 10), x: a2 + b2, y: s2 + y2, foreColor: x2, textAnchor: l2 || d2.textAnchor, text: n2, fontSize: h2 || d2.style.fontSize, fontFamily: d2.style.fontFamily, fontWeight: d2.style.fontWeight || "normal" });
            if (w2.attr({ class: "apexcharts-datalabel", cx: a2, cy: s2 }), d2.dropShadow.enabled) {
              var k2 = d2.dropShadow;
              new v(this.ctx).dropShadow(w2, k2);
            }
            c2.add(w2), void 0 === e2.globals.lastDrawnDataLabelsIndexes[r2] && (e2.globals.lastDrawnDataLabelsIndexes[r2] = []), e2.globals.lastDrawnDataLabelsIndexes[r2].push(o2);
          }
        }
      } }, { key: "addBackgroundToDataLabel", value: function(t3, e2) {
        var i2 = this.w, a2 = i2.config.dataLabels.background, s2 = a2.padding, r2 = a2.padding / 2, o2 = e2.width, n2 = e2.height, l2 = new m(this.ctx).drawRect(e2.x - s2, e2.y - r2 / 2, o2 + 2 * s2, n2 + r2, a2.borderRadius, "transparent" === i2.config.chart.background ? "#fff" : i2.config.chart.background, a2.opacity, a2.borderWidth, a2.borderColor);
        a2.dropShadow.enabled && new v(this.ctx).dropShadow(l2, a2.dropShadow);
        return l2;
      } }, { key: "dataLabelsBackground", value: function() {
        var t3 = this.w;
        if ("bubble" !== t3.config.chart.type)
          for (var e2 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels text"), i2 = 0; i2 < e2.length; i2++) {
            var a2 = e2[i2], s2 = a2.getBBox(), r2 = null;
            if (s2.width && s2.height && (r2 = this.addBackgroundToDataLabel(a2, s2)), r2) {
              a2.parentNode.insertBefore(r2.node, a2);
              var o2 = a2.getAttribute("fill");
              t3.config.chart.animations.enabled && !t3.globals.resized && !t3.globals.dataChanged ? r2.animate().attr({ fill: o2 }) : r2.attr({ fill: o2 }), a2.setAttribute("fill", t3.config.dataLabels.background.foreColor);
            }
          }
      } }, { key: "bringForward", value: function() {
        for (var t3 = this.w, e2 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels"), i2 = t3.globals.dom.baseEl.querySelector(".apexcharts-plot-series:last-child"), a2 = 0; a2 < e2.length; a2++)
          i2 && i2.insertBefore(e2[a2], i2.nextSibling);
      } }]), t2;
    }();
    var N = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.legendInactiveClass = "legend-mouseover-inactive";
      }
      return r(t2, [{ key: "getAllSeriesEls", value: function() {
        return this.w.globals.dom.baseEl.getElementsByClassName("apexcharts-series");
      } }, { key: "getSeriesByName", value: function(t3) {
        return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner .apexcharts-series[seriesName='".concat(x.escapeString(t3), "']"));
      } }, { key: "isSeriesHidden", value: function(t3) {
        var e2 = this.getSeriesByName(t3), i2 = parseInt(e2.getAttribute("data:realIndex"), 10);
        return { isHidden: e2.classList.contains("apexcharts-series-collapsed"), realIndex: i2 };
      } }, { key: "addCollapsedClassToSeries", value: function(t3, e2) {
        var i2 = this.w;
        function a2(i3) {
          for (var a3 = 0; a3 < i3.length; a3++)
            i3[a3].index === e2 && t3.node.classList.add("apexcharts-series-collapsed");
        }
        a2(i2.globals.collapsedSeries), a2(i2.globals.ancillaryCollapsedSeries);
      } }, { key: "toggleSeries", value: function(t3) {
        var e2 = this.isSeriesHidden(t3);
        return this.ctx.legend.legendHelpers.toggleDataSeries(e2.realIndex, e2.isHidden), e2.isHidden;
      } }, { key: "showSeries", value: function(t3) {
        var e2 = this.isSeriesHidden(t3);
        e2.isHidden && this.ctx.legend.legendHelpers.toggleDataSeries(e2.realIndex, true);
      } }, { key: "hideSeries", value: function(t3) {
        var e2 = this.isSeriesHidden(t3);
        e2.isHidden || this.ctx.legend.legendHelpers.toggleDataSeries(e2.realIndex, false);
      } }, { key: "resetSeries", value: function() {
        var t3 = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0], e2 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i2 = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], a2 = this.w, s2 = x.clone(a2.globals.initialSeries);
        a2.globals.previousPaths = [], i2 ? (a2.globals.collapsedSeries = [], a2.globals.ancillaryCollapsedSeries = [], a2.globals.collapsedSeriesIndices = [], a2.globals.ancillaryCollapsedSeriesIndices = []) : s2 = this.emptyCollapsedSeries(s2), a2.config.series = s2, t3 && (e2 && (a2.globals.zoomed = false, this.ctx.updateHelpers.revertDefaultAxisMinMax()), this.ctx.updateHelpers._updateSeries(s2, a2.config.chart.animations.dynamicAnimation.enabled));
      } }, { key: "emptyCollapsedSeries", value: function(t3) {
        for (var e2 = this.w, i2 = 0; i2 < t3.length; i2++)
          e2.globals.collapsedSeriesIndices.indexOf(i2) > -1 && (t3[i2].data = []);
        return t3;
      } }, { key: "toggleSeriesOnHover", value: function(t3, e2) {
        var i2 = this.w;
        e2 || (e2 = t3.target);
        var a2 = i2.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels");
        if ("mousemove" === t3.type) {
          var s2 = parseInt(e2.getAttribute("rel"), 10) - 1, r2 = null, o2 = null;
          i2.globals.axisCharts || "radialBar" === i2.config.chart.type ? i2.globals.axisCharts ? (r2 = i2.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(s2, "']")), o2 = i2.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(s2, "']"))) : r2 = i2.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s2 + 1, "']")) : r2 = i2.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s2 + 1, "'] path"));
          for (var n2 = 0; n2 < a2.length; n2++)
            a2[n2].classList.add(this.legendInactiveClass);
          null !== r2 && (i2.globals.axisCharts || r2.parentNode.classList.remove(this.legendInactiveClass), r2.classList.remove(this.legendInactiveClass), null !== o2 && o2.classList.remove(this.legendInactiveClass));
        } else if ("mouseout" === t3.type)
          for (var l2 = 0; l2 < a2.length; l2++)
            a2[l2].classList.remove(this.legendInactiveClass);
      } }, { key: "highlightRangeInSeries", value: function(t3, e2) {
        var i2 = this, a2 = this.w, s2 = a2.globals.dom.baseEl.getElementsByClassName("apexcharts-heatmap-rect"), r2 = function(t4) {
          for (var e3 = 0; e3 < s2.length; e3++)
            s2[e3].classList[t4](i2.legendInactiveClass);
        };
        if ("mousemove" === t3.type) {
          var o2 = parseInt(e2.getAttribute("rel"), 10) - 1;
          r2("add"), function(t4) {
            for (var e3 = 0; e3 < s2.length; e3++) {
              var a3 = parseInt(s2[e3].getAttribute("val"), 10);
              a3 >= t4.from && a3 <= t4.to && s2[e3].classList.remove(i2.legendInactiveClass);
            }
          }(a2.config.plotOptions.heatmap.colorScale.ranges[o2]);
        } else
          "mouseout" === t3.type && r2("remove");
      } }, { key: "getActiveConfigSeriesIndex", value: function() {
        var t3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "asc", e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [], i2 = this.w, a2 = 0;
        if (i2.config.series.length > 1) {
          for (var s2 = i2.config.series.map(function(t4, a3) {
            return t4.data && t4.data.length > 0 && -1 === i2.globals.collapsedSeriesIndices.indexOf(a3) && (!i2.globals.comboCharts || 0 === e2.length || e2.length && e2.indexOf(i2.config.series[a3].type) > -1) ? a3 : -1;
          }), r2 = "asc" === t3 ? 0 : s2.length - 1; "asc" === t3 ? r2 < s2.length : r2 >= 0; "asc" === t3 ? r2++ : r2--)
            if (-1 !== s2[r2]) {
              a2 = s2[r2];
              break;
            }
        }
        return a2;
      } }, { key: "getBarSeriesIndices", value: function() {
        return this.w.globals.comboCharts ? this.w.config.series.map(function(t3, e2) {
          return "bar" === t3.type || "column" === t3.type ? e2 : -1;
        }).filter(function(t3) {
          return -1 !== t3;
        }) : this.w.config.series.map(function(t3, e2) {
          return e2;
        });
      } }, { key: "getPreviousPaths", value: function() {
        var t3 = this.w;
        function e2(e3, i3, a3) {
          for (var s3 = e3[i3].childNodes, r2 = { type: a3, paths: [], realIndex: e3[i3].getAttribute("data:realIndex") }, o2 = 0; o2 < s3.length; o2++)
            if (s3[o2].hasAttribute("pathTo")) {
              var n2 = s3[o2].getAttribute("pathTo");
              r2.paths.push({ d: n2 });
            }
          t3.globals.previousPaths.push(r2);
        }
        t3.globals.previousPaths = [];
        ["line", "area", "bar", "rangebar", "rangeArea", "candlestick", "radar"].forEach(function(i3) {
          for (var a3, s3 = (a3 = i3, t3.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(a3, "-series .apexcharts-series"))), r2 = 0; r2 < s3.length; r2++)
            e2(s3, r2, i3);
        }), this.handlePrevBubbleScatterPaths("bubble"), this.handlePrevBubbleScatterPaths("scatter");
        var i2 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t3.config.chart.type, " .apexcharts-series"));
        if (i2.length > 0)
          for (var a2 = function(e3) {
            for (var i3 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t3.config.chart.type, " .apexcharts-series[data\\:realIndex='").concat(e3, "'] rect")), a3 = [], s3 = function(t4) {
              var e4 = function(e5) {
                return i3[t4].getAttribute(e5);
              }, s4 = { x: parseFloat(e4("x")), y: parseFloat(e4("y")), width: parseFloat(e4("width")), height: parseFloat(e4("height")) };
              a3.push({ rect: s4, color: i3[t4].getAttribute("color") });
            }, r2 = 0; r2 < i3.length; r2++)
              s3(r2);
            t3.globals.previousPaths.push(a3);
          }, s2 = 0; s2 < i2.length; s2++)
            a2(s2);
        t3.globals.axisCharts || (t3.globals.previousPaths = t3.globals.series);
      } }, { key: "handlePrevBubbleScatterPaths", value: function(t3) {
        var e2 = this.w, i2 = e2.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t3, "-series .apexcharts-series"));
        if (i2.length > 0)
          for (var a2 = 0; a2 < i2.length; a2++) {
            for (var s2 = e2.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t3, "-series .apexcharts-series[data\\:realIndex='").concat(a2, "'] circle")), r2 = [], o2 = 0; o2 < s2.length; o2++)
              r2.push({ x: s2[o2].getAttribute("cx"), y: s2[o2].getAttribute("cy"), r: s2[o2].getAttribute("r") });
            e2.globals.previousPaths.push(r2);
          }
      } }, { key: "clearPreviousPaths", value: function() {
        var t3 = this.w;
        t3.globals.previousPaths = [], t3.globals.allSeriesCollapsed = false;
      } }, { key: "handleNoData", value: function() {
        var t3 = this.w, e2 = t3.config.noData, i2 = new m(this.ctx), a2 = t3.globals.svgWidth / 2, s2 = t3.globals.svgHeight / 2, r2 = "middle";
        if (t3.globals.noData = true, t3.globals.animationEnded = true, "left" === e2.align ? (a2 = 10, r2 = "start") : "right" === e2.align && (a2 = t3.globals.svgWidth - 10, r2 = "end"), "top" === e2.verticalAlign ? s2 = 50 : "bottom" === e2.verticalAlign && (s2 = t3.globals.svgHeight - 50), a2 += e2.offsetX, s2 = s2 + parseInt(e2.style.fontSize, 10) + 2 + e2.offsetY, void 0 !== e2.text && "" !== e2.text) {
          var o2 = i2.drawText({ x: a2, y: s2, text: e2.text, textAnchor: r2, fontSize: e2.style.fontSize, fontFamily: e2.style.fontFamily, foreColor: e2.style.color, opacity: 1, class: "apexcharts-text-nodata" });
          t3.globals.dom.Paper.add(o2);
        }
      } }, { key: "setNullSeriesToZeroValues", value: function(t3) {
        for (var e2 = this.w, i2 = 0; i2 < t3.length; i2++)
          if (0 === t3[i2].length)
            for (var a2 = 0; a2 < t3[e2.globals.maxValsInArrayIndex].length; a2++)
              t3[i2].push(0);
        return t3;
      } }, { key: "hasAllSeriesEqualX", value: function() {
        for (var t3 = true, e2 = this.w, i2 = this.filteredSeriesX(), a2 = 0; a2 < i2.length - 1; a2++)
          if (i2[a2][0] !== i2[a2 + 1][0]) {
            t3 = false;
            break;
          }
        return e2.globals.allSeriesHasEqualX = t3, t3;
      } }, { key: "filteredSeriesX", value: function() {
        var t3 = this.w.globals.seriesX.map(function(t4) {
          return t4.length > 0 ? t4 : [];
        });
        return t3;
      } }]), t2;
    }();
    var W = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.twoDSeries = [], this.threeDSeries = [], this.twoDSeriesX = [], this.seriesGoals = [], this.coreUtils = new y(this.ctx);
      }
      return r(t2, [{ key: "isMultiFormat", value: function() {
        return this.isFormatXY() || this.isFormat2DArray();
      } }, { key: "isFormatXY", value: function() {
        var t3 = this.w.config.series.slice(), e2 = new N(this.ctx);
        if (this.activeSeriesIndex = e2.getActiveConfigSeriesIndex(), void 0 !== t3[this.activeSeriesIndex].data && t3[this.activeSeriesIndex].data.length > 0 && null !== t3[this.activeSeriesIndex].data[0] && void 0 !== t3[this.activeSeriesIndex].data[0].x && null !== t3[this.activeSeriesIndex].data[0])
          return true;
      } }, { key: "isFormat2DArray", value: function() {
        var t3 = this.w.config.series.slice(), e2 = new N(this.ctx);
        if (this.activeSeriesIndex = e2.getActiveConfigSeriesIndex(), void 0 !== t3[this.activeSeriesIndex].data && t3[this.activeSeriesIndex].data.length > 0 && void 0 !== t3[this.activeSeriesIndex].data[0] && null !== t3[this.activeSeriesIndex].data[0] && t3[this.activeSeriesIndex].data[0].constructor === Array)
          return true;
      } }, { key: "handleFormat2DArray", value: function(t3, e2) {
        for (var i2 = this.w.config, a2 = this.w.globals, s2 = "boxPlot" === i2.chart.type || "boxPlot" === i2.series[e2].type, r2 = 0; r2 < t3[e2].data.length; r2++)
          if (void 0 !== t3[e2].data[r2][1] && (Array.isArray(t3[e2].data[r2][1]) && 4 === t3[e2].data[r2][1].length && !s2 ? this.twoDSeries.push(x.parseNumber(t3[e2].data[r2][1][3])) : t3[e2].data[r2].length >= 5 ? this.twoDSeries.push(x.parseNumber(t3[e2].data[r2][4])) : this.twoDSeries.push(x.parseNumber(t3[e2].data[r2][1])), a2.dataFormatXNumeric = true), "datetime" === i2.xaxis.type) {
            var o2 = new Date(t3[e2].data[r2][0]);
            o2 = new Date(o2).getTime(), this.twoDSeriesX.push(o2);
          } else
            this.twoDSeriesX.push(t3[e2].data[r2][0]);
        for (var n2 = 0; n2 < t3[e2].data.length; n2++)
          void 0 !== t3[e2].data[n2][2] && (this.threeDSeries.push(t3[e2].data[n2][2]), a2.isDataXYZ = true);
      } }, { key: "handleFormatXY", value: function(t3, e2) {
        var i2 = this.w.config, a2 = this.w.globals, s2 = new I(this.ctx), r2 = e2;
        a2.collapsedSeriesIndices.indexOf(e2) > -1 && (r2 = this.activeSeriesIndex);
        for (var o2 = 0; o2 < t3[e2].data.length; o2++)
          void 0 !== t3[e2].data[o2].y && (Array.isArray(t3[e2].data[o2].y) ? this.twoDSeries.push(x.parseNumber(t3[e2].data[o2].y[t3[e2].data[o2].y.length - 1])) : this.twoDSeries.push(x.parseNumber(t3[e2].data[o2].y))), void 0 !== t3[e2].data[o2].goals && Array.isArray(t3[e2].data[o2].goals) ? (void 0 === this.seriesGoals[e2] && (this.seriesGoals[e2] = []), this.seriesGoals[e2].push(t3[e2].data[o2].goals)) : (void 0 === this.seriesGoals[e2] && (this.seriesGoals[e2] = []), this.seriesGoals[e2].push(null));
        for (var n2 = 0; n2 < t3[r2].data.length; n2++) {
          var l2 = "string" == typeof t3[r2].data[n2].x, h2 = Array.isArray(t3[r2].data[n2].x), c2 = !h2 && !!s2.isValidDate(t3[r2].data[n2].x);
          if (l2 || c2)
            if (l2 || i2.xaxis.convertedCatToNumeric) {
              var d2 = a2.isBarHorizontal && a2.isRangeData;
              "datetime" !== i2.xaxis.type || d2 ? (this.fallbackToCategory = true, this.twoDSeriesX.push(t3[r2].data[n2].x), isNaN(t3[r2].data[n2].x) || "category" === this.w.config.xaxis.type || "string" == typeof t3[r2].data[n2].x || (a2.isXNumeric = true)) : this.twoDSeriesX.push(s2.parseDate(t3[r2].data[n2].x));
            } else
              "datetime" === i2.xaxis.type ? this.twoDSeriesX.push(s2.parseDate(t3[r2].data[n2].x.toString())) : (a2.dataFormatXNumeric = true, a2.isXNumeric = true, this.twoDSeriesX.push(parseFloat(t3[r2].data[n2].x)));
          else
            h2 ? (this.fallbackToCategory = true, this.twoDSeriesX.push(t3[r2].data[n2].x)) : (a2.isXNumeric = true, a2.dataFormatXNumeric = true, this.twoDSeriesX.push(t3[r2].data[n2].x));
        }
        if (t3[e2].data[0] && void 0 !== t3[e2].data[0].z) {
          for (var g2 = 0; g2 < t3[e2].data.length; g2++)
            this.threeDSeries.push(t3[e2].data[g2].z);
          a2.isDataXYZ = true;
        }
      } }, { key: "handleRangeData", value: function(t3, e2) {
        var i2 = this.w.globals, a2 = {};
        return this.isFormat2DArray() ? a2 = this.handleRangeDataFormat("array", t3, e2) : this.isFormatXY() && (a2 = this.handleRangeDataFormat("xy", t3, e2)), i2.seriesRangeStart.push(a2.start), i2.seriesRangeEnd.push(a2.end), i2.seriesRange.push(a2.rangeUniques), i2.seriesRange.forEach(function(t4, e3) {
          t4 && t4.forEach(function(t5, e4) {
            t5.y.forEach(function(e5, i3) {
              for (var a3 = 0; a3 < t5.y.length; a3++)
                if (i3 !== a3) {
                  var s2 = e5.y1, r2 = e5.y2, o2 = t5.y[a3].y1;
                  s2 <= t5.y[a3].y2 && o2 <= r2 && (t5.overlaps.indexOf(e5.rangeName) < 0 && t5.overlaps.push(e5.rangeName), t5.overlaps.indexOf(t5.y[a3].rangeName) < 0 && t5.overlaps.push(t5.y[a3].rangeName));
                }
            });
          });
        }), a2;
      } }, { key: "handleCandleStickBoxData", value: function(t3, e2) {
        var i2 = this.w.globals, a2 = {};
        return this.isFormat2DArray() ? a2 = this.handleCandleStickBoxDataFormat("array", t3, e2) : this.isFormatXY() && (a2 = this.handleCandleStickBoxDataFormat("xy", t3, e2)), i2.seriesCandleO[e2] = a2.o, i2.seriesCandleH[e2] = a2.h, i2.seriesCandleM[e2] = a2.m, i2.seriesCandleL[e2] = a2.l, i2.seriesCandleC[e2] = a2.c, a2;
      } }, { key: "handleRangeDataFormat", value: function(t3, e2, i2) {
        var a2 = [], s2 = [], r2 = e2[i2].data.filter(function(t4, e3, i3) {
          return e3 === i3.findIndex(function(e4) {
            return e4.x === t4.x;
          });
        }).map(function(t4, e3) {
          return { x: t4.x, overlaps: [], y: [] };
        });
        if ("array" === t3)
          for (var o2 = 0; o2 < e2[i2].data.length; o2++)
            Array.isArray(e2[i2].data[o2]) ? (a2.push(e2[i2].data[o2][1][0]), s2.push(e2[i2].data[o2][1][1])) : (a2.push(e2[i2].data[o2]), s2.push(e2[i2].data[o2]));
        else if ("xy" === t3)
          for (var n2 = function(t4) {
            var o3 = Array.isArray(e2[i2].data[t4].y), n3 = x.randomId(), l3 = e2[i2].data[t4].x, h2 = { y1: o3 ? e2[i2].data[t4].y[0] : e2[i2].data[t4].y, y2: o3 ? e2[i2].data[t4].y[1] : e2[i2].data[t4].y, rangeName: n3 };
            e2[i2].data[t4].rangeName = n3;
            var c2 = r2.findIndex(function(t5) {
              return t5.x === l3;
            });
            r2[c2].y.push(h2), a2.push(h2.y1), s2.push(h2.y2);
          }, l2 = 0; l2 < e2[i2].data.length; l2++)
            n2(l2);
        return { start: a2, end: s2, rangeUniques: r2 };
      } }, { key: "handleCandleStickBoxDataFormat", value: function(t3, e2, i2) {
        var a2 = this.w, s2 = "boxPlot" === a2.config.chart.type || "boxPlot" === a2.config.series[i2].type, r2 = [], o2 = [], n2 = [], l2 = [], h2 = [];
        if ("array" === t3)
          if (s2 && 6 === e2[i2].data[0].length || !s2 && 5 === e2[i2].data[0].length)
            for (var c2 = 0; c2 < e2[i2].data.length; c2++)
              r2.push(e2[i2].data[c2][1]), o2.push(e2[i2].data[c2][2]), s2 ? (n2.push(e2[i2].data[c2][3]), l2.push(e2[i2].data[c2][4]), h2.push(e2[i2].data[c2][5])) : (l2.push(e2[i2].data[c2][3]), h2.push(e2[i2].data[c2][4]));
          else
            for (var d2 = 0; d2 < e2[i2].data.length; d2++)
              Array.isArray(e2[i2].data[d2][1]) && (r2.push(e2[i2].data[d2][1][0]), o2.push(e2[i2].data[d2][1][1]), s2 ? (n2.push(e2[i2].data[d2][1][2]), l2.push(e2[i2].data[d2][1][3]), h2.push(e2[i2].data[d2][1][4])) : (l2.push(e2[i2].data[d2][1][2]), h2.push(e2[i2].data[d2][1][3])));
        else if ("xy" === t3)
          for (var g2 = 0; g2 < e2[i2].data.length; g2++)
            Array.isArray(e2[i2].data[g2].y) && (r2.push(e2[i2].data[g2].y[0]), o2.push(e2[i2].data[g2].y[1]), s2 ? (n2.push(e2[i2].data[g2].y[2]), l2.push(e2[i2].data[g2].y[3]), h2.push(e2[i2].data[g2].y[4])) : (l2.push(e2[i2].data[g2].y[2]), h2.push(e2[i2].data[g2].y[3])));
        return { o: r2, h: o2, m: n2, l: l2, c: h2 };
      } }, { key: "parseDataAxisCharts", value: function(t3) {
        var e2, i2 = this, a2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.ctx, s2 = this.w.config, r2 = this.w.globals, o2 = new I(a2), n2 = s2.labels.length > 0 ? s2.labels.slice() : s2.xaxis.categories.slice();
        if (r2.isRangeBar = "rangeBar" === s2.chart.type && r2.isBarHorizontal, r2.hasXaxisGroups = "category" === s2.xaxis.type && s2.xaxis.group.groups.length > 0, r2.hasXaxisGroups && (r2.groups = s2.xaxis.group.groups), r2.hasSeriesGroups = null === (e2 = t3[0]) || void 0 === e2 ? void 0 : e2.group, r2.hasSeriesGroups) {
          var l2 = [], h2 = u(new Set(t3.map(function(t4) {
            return t4.group;
          })));
          t3.forEach(function(t4, e3) {
            var i3 = h2.indexOf(t4.group);
            l2[i3] || (l2[i3] = []), l2[i3].push(t4.name);
          }), r2.seriesGroups = l2;
        }
        for (var c2 = function() {
          for (var t4 = 0; t4 < n2.length; t4++)
            if ("string" == typeof n2[t4]) {
              if (!o2.isValidDate(n2[t4]))
                throw new Error("You have provided invalid Date format. Please provide a valid JavaScript Date");
              i2.twoDSeriesX.push(o2.parseDate(n2[t4]));
            } else
              i2.twoDSeriesX.push(n2[t4]);
        }, d2 = 0; d2 < t3.length; d2++) {
          if (this.twoDSeries = [], this.twoDSeriesX = [], this.threeDSeries = [], void 0 === t3[d2].data)
            return void console.error("It is a possibility that you may have not included 'data' property in series.");
          if ("rangeBar" !== s2.chart.type && "rangeArea" !== s2.chart.type && "rangeBar" !== t3[d2].type && "rangeArea" !== t3[d2].type || (r2.isRangeData = true, "rangeBar" !== s2.chart.type && "rangeArea" !== s2.chart.type || this.handleRangeData(t3, d2)), this.isMultiFormat())
            this.isFormat2DArray() ? this.handleFormat2DArray(t3, d2) : this.isFormatXY() && this.handleFormatXY(t3, d2), "candlestick" !== s2.chart.type && "candlestick" !== t3[d2].type && "boxPlot" !== s2.chart.type && "boxPlot" !== t3[d2].type || this.handleCandleStickBoxData(t3, d2), r2.series.push(this.twoDSeries), r2.labels.push(this.twoDSeriesX), r2.seriesX.push(this.twoDSeriesX), r2.seriesGoals = this.seriesGoals, d2 !== this.activeSeriesIndex || this.fallbackToCategory || (r2.isXNumeric = true);
          else {
            "datetime" === s2.xaxis.type ? (r2.isXNumeric = true, c2(), r2.seriesX.push(this.twoDSeriesX)) : "numeric" === s2.xaxis.type && (r2.isXNumeric = true, n2.length > 0 && (this.twoDSeriesX = n2, r2.seriesX.push(this.twoDSeriesX))), r2.labels.push(this.twoDSeriesX);
            var g2 = t3[d2].data.map(function(t4) {
              return x.parseNumber(t4);
            });
            r2.series.push(g2);
          }
          r2.seriesZ.push(this.threeDSeries), void 0 !== t3[d2].name ? r2.seriesNames.push(t3[d2].name) : r2.seriesNames.push("series-" + parseInt(d2 + 1, 10)), void 0 !== t3[d2].color ? r2.seriesColors.push(t3[d2].color) : r2.seriesColors.push(void 0);
        }
        return this.w;
      } }, { key: "parseDataNonAxisCharts", value: function(t3) {
        var e2 = this.w.globals, i2 = this.w.config;
        e2.series = t3.slice(), e2.seriesNames = i2.labels.slice();
        for (var a2 = 0; a2 < e2.series.length; a2++)
          void 0 === e2.seriesNames[a2] && e2.seriesNames.push("series-" + (a2 + 1));
        return this.w;
      } }, { key: "handleExternalLabelsData", value: function(t3) {
        var e2 = this.w.config, i2 = this.w.globals;
        if (e2.xaxis.categories.length > 0)
          i2.labels = e2.xaxis.categories;
        else if (e2.labels.length > 0)
          i2.labels = e2.labels.slice();
        else if (this.fallbackToCategory) {
          if (i2.labels = i2.labels[0], i2.seriesRange.length && (i2.seriesRange.map(function(t4) {
            t4.forEach(function(t5) {
              i2.labels.indexOf(t5.x) < 0 && t5.x && i2.labels.push(t5.x);
            });
          }), i2.labels = Array.from(new Set(i2.labels.map(JSON.stringify)), JSON.parse)), e2.xaxis.convertedCatToNumeric)
            new X(e2).convertCatToNumericXaxis(e2, this.ctx, i2.seriesX[0]), this._generateExternalLabels(t3);
        } else
          this._generateExternalLabels(t3);
      } }, { key: "_generateExternalLabels", value: function(t3) {
        var e2 = this.w.globals, i2 = this.w.config, a2 = [];
        if (e2.axisCharts) {
          if (e2.series.length > 0)
            if (this.isFormatXY())
              for (var s2 = i2.series.map(function(t4, e3) {
                return t4.data.filter(function(t5, e4, i3) {
                  return i3.findIndex(function(e5) {
                    return e5.x === t5.x;
                  }) === e4;
                });
              }), r2 = s2.reduce(function(t4, e3, i3, a3) {
                return a3[t4].length > e3.length ? t4 : i3;
              }, 0), o2 = 0; o2 < s2[r2].length; o2++)
                a2.push(o2 + 1);
            else
              for (var n2 = 0; n2 < e2.series[e2.maxValsInArrayIndex].length; n2++)
                a2.push(n2 + 1);
          e2.seriesX = [];
          for (var l2 = 0; l2 < t3.length; l2++)
            e2.seriesX.push(a2);
          this.w.globals.isBarHorizontal || (e2.isXNumeric = true);
        }
        if (0 === a2.length) {
          a2 = e2.axisCharts ? [] : e2.series.map(function(t4, e3) {
            return e3 + 1;
          });
          for (var h2 = 0; h2 < t3.length; h2++)
            e2.seriesX.push(a2);
        }
        e2.labels = a2, i2.xaxis.convertedCatToNumeric && (e2.categoryLabels = a2.map(function(t4) {
          return i2.xaxis.labels.formatter(t4);
        })), e2.noLabelsProvided = true;
      } }, { key: "parseData", value: function(t3) {
        var e2 = this.w, i2 = e2.config, a2 = e2.globals;
        if (this.excludeCollapsedSeriesInYAxis(), this.fallbackToCategory = false, this.ctx.core.resetGlobals(), this.ctx.core.isMultipleY(), a2.axisCharts ? (this.parseDataAxisCharts(t3), this.coreUtils.getLargestSeries()) : this.parseDataNonAxisCharts(t3), i2.chart.stacked) {
          var s2 = new N(this.ctx);
          a2.series = s2.setNullSeriesToZeroValues(a2.series);
        }
        this.coreUtils.getSeriesTotals(), a2.axisCharts && (a2.stackedSeriesTotals = this.coreUtils.getStackedSeriesTotals(), a2.stackedSeriesTotalsByGroups = this.coreUtils.getStackedSeriesTotalsByGroups()), this.coreUtils.getPercentSeries(), a2.dataFormatXNumeric || a2.isXNumeric && ("numeric" !== i2.xaxis.type || 0 !== i2.labels.length || 0 !== i2.xaxis.categories.length) || this.handleExternalLabelsData(t3);
        for (var r2 = this.coreUtils.getCategoryLabels(a2.labels), o2 = 0; o2 < r2.length; o2++)
          if (Array.isArray(r2[o2])) {
            a2.isMultiLineX = true;
            break;
          }
      } }, { key: "excludeCollapsedSeriesInYAxis", value: function() {
        var t3 = this, e2 = this.w;
        e2.globals.ignoreYAxisIndexes = e2.globals.collapsedSeries.map(function(i2, a2) {
          if (t3.w.globals.isMultipleYAxis && !e2.config.chart.stacked)
            return i2.index;
        });
      } }]), t2;
    }();
    var B = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "getLabel", value: function(t3, e2, i2, a2) {
        var s2 = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : [], r2 = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : "12px", o2 = !(arguments.length > 6 && void 0 !== arguments[6]) || arguments[6], n2 = this.w, l2 = void 0 === t3[a2] ? "" : t3[a2], h2 = l2, c2 = n2.globals.xLabelFormatter, d2 = n2.config.xaxis.labels.formatter, g2 = false, u2 = new T(this.ctx), p2 = l2;
        o2 && (h2 = u2.xLabelFormat(c2, l2, p2, { i: a2, dateFormatter: new I(this.ctx).formatDate, w: n2 }), void 0 !== d2 && (h2 = d2(l2, t3[a2], { i: a2, dateFormatter: new I(this.ctx).formatDate, w: n2 })));
        var f2, x2;
        e2.length > 0 ? (f2 = e2[a2].unit, x2 = null, e2.forEach(function(t4) {
          "month" === t4.unit ? x2 = "year" : "day" === t4.unit ? x2 = "month" : "hour" === t4.unit ? x2 = "day" : "minute" === t4.unit && (x2 = "hour");
        }), g2 = x2 === f2, i2 = e2[a2].position, h2 = e2[a2].value) : "datetime" === n2.config.xaxis.type && void 0 === d2 && (h2 = ""), void 0 === h2 && (h2 = ""), h2 = Array.isArray(h2) ? h2 : h2.toString();
        var b2 = new m(this.ctx), v2 = {};
        v2 = n2.globals.rotateXLabels && o2 ? b2.getTextRects(h2, parseInt(r2, 10), null, "rotate(".concat(n2.config.xaxis.labels.rotate, " 0 0)"), false) : b2.getTextRects(h2, parseInt(r2, 10));
        var y2 = !n2.config.xaxis.labels.showDuplicates && this.ctx.timeScale;
        return !Array.isArray(h2) && (0 === h2.indexOf("NaN") || 0 === h2.toLowerCase().indexOf("invalid") || h2.toLowerCase().indexOf("infinity") >= 0 || s2.indexOf(h2) >= 0 && y2) && (h2 = ""), { x: i2, text: h2, textRect: v2, isBold: g2 };
      } }, { key: "checkLabelBasedOnTickamount", value: function(t3, e2, i2) {
        var a2 = this.w, s2 = a2.config.xaxis.tickAmount;
        return "dataPoints" === s2 && (s2 = Math.round(a2.globals.gridWidth / 120)), s2 > i2 || t3 % Math.round(i2 / (s2 + 1)) == 0 || (e2.text = ""), e2;
      } }, { key: "checkForOverflowingLabels", value: function(t3, e2, i2, a2, s2) {
        var r2 = this.w;
        if (0 === t3 && r2.globals.skipFirstTimelinelabel && (e2.text = ""), t3 === i2 - 1 && r2.globals.skipLastTimelinelabel && (e2.text = ""), r2.config.xaxis.labels.hideOverlappingLabels && a2.length > 0) {
          var o2 = s2[s2.length - 1];
          e2.x < o2.textRect.width / (r2.globals.rotateXLabels ? Math.abs(r2.config.xaxis.labels.rotate) / 12 : 1.01) + o2.x && (e2.text = "");
        }
        return e2;
      } }, { key: "checkForReversedLabels", value: function(t3, e2) {
        var i2 = this.w;
        return i2.config.yaxis[t3] && i2.config.yaxis[t3].reversed && e2.reverse(), e2;
      } }, { key: "isYAxisHidden", value: function(t3) {
        var e2 = this.w, i2 = new y(this.ctx);
        return !e2.config.yaxis[t3].show || !e2.config.yaxis[t3].showForNullSeries && i2.isSeriesNull(t3) && -1 === e2.globals.collapsedSeriesIndices.indexOf(t3);
      } }, { key: "getYAxisForeColor", value: function(t3, e2) {
        var i2 = this.w;
        return Array.isArray(t3) && i2.globals.yAxisScale[e2] && this.ctx.theme.pushExtraColors(t3, i2.globals.yAxisScale[e2].result.length, false), t3;
      } }, { key: "drawYAxisTicks", value: function(t3, e2, i2, a2, s2, r2, o2) {
        var n2 = this.w, l2 = new m(this.ctx), h2 = n2.globals.translateY;
        if (a2.show && e2 > 0) {
          true === n2.config.yaxis[s2].opposite && (t3 += a2.width);
          for (var c2 = e2; c2 >= 0; c2--) {
            var d2 = h2 + e2 / 10 + n2.config.yaxis[s2].labels.offsetY - 1;
            n2.globals.isBarHorizontal && (d2 = r2 * c2), "heatmap" === n2.config.chart.type && (d2 += r2 / 2);
            var g2 = l2.drawLine(t3 + i2.offsetX - a2.width + a2.offsetX, d2 + a2.offsetY, t3 + i2.offsetX + a2.offsetX, d2 + a2.offsetY, a2.color);
            o2.add(g2), h2 += r2;
          }
        }
      } }]), t2;
    }();
    var G = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "scaleSvgNode", value: function(t3, e2) {
        var i2 = parseFloat(t3.getAttributeNS(null, "width")), a2 = parseFloat(t3.getAttributeNS(null, "height"));
        t3.setAttributeNS(null, "width", i2 * e2), t3.setAttributeNS(null, "height", a2 * e2), t3.setAttributeNS(null, "viewBox", "0 0 " + i2 + " " + a2);
      } }, { key: "fixSvgStringForIe11", value: function(t3) {
        if (!x.isIE11())
          return t3.replace(/&nbsp;/g, "&#160;");
        var e2 = 0, i2 = t3.replace(/xmlns="http:\/\/www.w3.org\/2000\/svg"/g, function(t4) {
          return 2 === ++e2 ? 'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev"' : t4;
        });
        return i2 = (i2 = i2.replace(/xmlns:NS\d+=""/g, "")).replace(/NS\d+:(\w+:\w+=")/g, "$1");
      } }, { key: "getSvgString", value: function(t3) {
        null == t3 && (t3 = 1);
        var e2 = this.w.globals.dom.Paper.svg();
        if (1 !== t3) {
          var i2 = this.w.globals.dom.Paper.node.cloneNode(true);
          this.scaleSvgNode(i2, t3), e2 = new XMLSerializer().serializeToString(i2);
        }
        return this.fixSvgStringForIe11(e2);
      } }, { key: "cleanup", value: function() {
        var t3 = this.w, e2 = t3.globals.dom.baseEl.getElementsByClassName("apexcharts-xcrosshairs"), i2 = t3.globals.dom.baseEl.getElementsByClassName("apexcharts-ycrosshairs"), a2 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-zoom-rect, .apexcharts-selection-rect");
        Array.prototype.forEach.call(a2, function(t4) {
          t4.setAttribute("width", 0);
        }), e2 && e2[0] && (e2[0].setAttribute("x", -500), e2[0].setAttribute("x1", -500), e2[0].setAttribute("x2", -500)), i2 && i2[0] && (i2[0].setAttribute("y", -100), i2[0].setAttribute("y1", -100), i2[0].setAttribute("y2", -100));
      } }, { key: "svgUrl", value: function() {
        this.cleanup();
        var t3 = this.getSvgString(), e2 = new Blob([t3], { type: "image/svg+xml;charset=utf-8" });
        return URL.createObjectURL(e2);
      } }, { key: "dataURI", value: function(t3) {
        var e2 = this;
        return new Promise(function(i2) {
          var a2 = e2.w, s2 = t3 ? t3.scale || t3.width / a2.globals.svgWidth : 1;
          e2.cleanup();
          var r2 = document.createElement("canvas");
          r2.width = a2.globals.svgWidth * s2, r2.height = parseInt(a2.globals.dom.elWrap.style.height, 10) * s2;
          var o2 = "transparent" === a2.config.chart.background ? "#fff" : a2.config.chart.background, n2 = r2.getContext("2d");
          n2.fillStyle = o2, n2.fillRect(0, 0, r2.width * s2, r2.height * s2);
          var l2 = e2.getSvgString(s2);
          if (window.canvg && x.isIE11()) {
            var h2 = window.canvg.Canvg.fromString(n2, l2, { ignoreClear: true, ignoreDimensions: true });
            h2.start();
            var c2 = r2.msToBlob();
            h2.stop(), i2({ blob: c2 });
          } else {
            var d2 = "data:image/svg+xml," + encodeURIComponent(l2), g2 = new Image();
            g2.crossOrigin = "anonymous", g2.onload = function() {
              if (n2.drawImage(g2, 0, 0), r2.msToBlob) {
                var t4 = r2.msToBlob();
                i2({ blob: t4 });
              } else {
                var e3 = r2.toDataURL("image/png");
                i2({ imgURI: e3 });
              }
            }, g2.src = d2;
          }
        });
      } }, { key: "exportToSVG", value: function() {
        this.triggerDownload(this.svgUrl(), this.w.config.chart.toolbar.export.svg.filename, ".svg");
      } }, { key: "exportToPng", value: function() {
        var t3 = this;
        this.dataURI().then(function(e2) {
          var i2 = e2.imgURI, a2 = e2.blob;
          a2 ? navigator.msSaveOrOpenBlob(a2, t3.w.globals.chartID + ".png") : t3.triggerDownload(i2, t3.w.config.chart.toolbar.export.png.filename, ".png");
        });
      } }, { key: "exportToCSV", value: function(t3) {
        var e2 = this, i2 = t3.series, a2 = t3.fileName, s2 = t3.columnDelimiter, r2 = void 0 === s2 ? "," : s2, o2 = t3.lineDelimiter, n2 = void 0 === o2 ? "\n" : o2, l2 = this.w;
        i2 || (i2 = l2.config.series);
        var h2, c2, d2 = [], g2 = [], p2 = "", f2 = l2.globals.series.map(function(t4, e3) {
          return -1 === l2.globals.collapsedSeriesIndices.indexOf(e3) ? t4 : [];
        }), b2 = function(t4) {
          return "datetime" === l2.config.xaxis.type && String(t4).length >= 10;
        }, v2 = Math.max.apply(Math, u(i2.map(function(t4) {
          return t4.data ? t4.data.length : 0;
        }))), m2 = new W(this.ctx), y2 = new B(this.ctx), w2 = function(t4) {
          var i3 = "";
          if (l2.globals.axisCharts) {
            if ("category" === l2.config.xaxis.type || l2.config.xaxis.convertedCatToNumeric)
              if (l2.globals.isBarHorizontal) {
                var a3 = l2.globals.yLabelFormatters[0], s3 = new N(e2.ctx).getActiveConfigSeriesIndex();
                i3 = a3(l2.globals.labels[t4], { seriesIndex: s3, dataPointIndex: t4, w: l2 });
              } else
                i3 = y2.getLabel(l2.globals.labels, l2.globals.timescaleLabels, 0, t4).text;
            "datetime" === l2.config.xaxis.type && (l2.config.xaxis.categories.length ? i3 = l2.config.xaxis.categories[t4] : l2.config.labels.length && (i3 = l2.config.labels[t4]));
          } else
            i3 = l2.config.labels[t4];
          return Array.isArray(i3) && (i3 = i3.join(" ")), x.isNumber(i3) ? i3 : i3.split(r2).join("");
        }, k2 = function(t4, e3) {
          if (d2.length && 0 === e3 && g2.push(d2.join(r2)), t4.data) {
            t4.data = t4.data.length && t4.data || u(Array(v2)).map(function() {
              return "";
            });
            for (var a3 = 0; a3 < t4.data.length; a3++) {
              d2 = [];
              var s3 = w2(a3);
              if (s3 || (m2.isFormatXY() ? s3 = i2[e3].data[a3].x : m2.isFormat2DArray() && (s3 = i2[e3].data[a3] ? i2[e3].data[a3][0] : "")), 0 === e3) {
                d2.push(b2(s3) ? l2.config.chart.toolbar.export.csv.dateFormatter(s3) : x.isNumber(s3) ? s3 : s3.split(r2).join(""));
                for (var o3 = 0; o3 < l2.globals.series.length; o3++) {
                  var n3;
                  if (m2.isFormatXY())
                    d2.push(null === (n3 = i2[o3].data[a3]) || void 0 === n3 ? void 0 : n3.y);
                  else
                    d2.push(f2[o3][a3]);
                }
              }
              ("candlestick" === l2.config.chart.type || t4.type && "candlestick" === t4.type) && (d2.pop(), d2.push(l2.globals.seriesCandleO[e3][a3]), d2.push(l2.globals.seriesCandleH[e3][a3]), d2.push(l2.globals.seriesCandleL[e3][a3]), d2.push(l2.globals.seriesCandleC[e3][a3])), ("boxPlot" === l2.config.chart.type || t4.type && "boxPlot" === t4.type) && (d2.pop(), d2.push(l2.globals.seriesCandleO[e3][a3]), d2.push(l2.globals.seriesCandleH[e3][a3]), d2.push(l2.globals.seriesCandleM[e3][a3]), d2.push(l2.globals.seriesCandleL[e3][a3]), d2.push(l2.globals.seriesCandleC[e3][a3])), "rangeBar" === l2.config.chart.type && (d2.pop(), d2.push(l2.globals.seriesRangeStart[e3][a3]), d2.push(l2.globals.seriesRangeEnd[e3][a3])), d2.length && g2.push(d2.join(r2));
            }
          }
        };
        d2.push(l2.config.chart.toolbar.export.csv.headerCategory), "boxPlot" === l2.config.chart.type ? (d2.push("minimum"), d2.push("q1"), d2.push("median"), d2.push("q3"), d2.push("maximum")) : "candlestick" === l2.config.chart.type ? (d2.push("open"), d2.push("high"), d2.push("low"), d2.push("close")) : "rangeBar" === l2.config.chart.type ? (d2.push("minimum"), d2.push("maximum")) : i2.map(function(t4, e3) {
          var i3 = (t4.name ? t4.name : "series-".concat(e3)) + "";
          l2.globals.axisCharts && d2.push(i3.split(r2).join("") ? i3.split(r2).join("") : "series-".concat(e3));
        }), l2.globals.axisCharts || (d2.push(l2.config.chart.toolbar.export.csv.headerValue), g2.push(d2.join(r2))), l2.globals.allSeriesHasEqualX || !l2.globals.axisCharts || l2.config.xaxis.categories.length || l2.config.labels.length ? i2.map(function(t4, e3) {
          l2.globals.axisCharts ? k2(t4, e3) : ((d2 = []).push(l2.globals.labels[e3].split(r2).join("")), d2.push(f2[e3]), g2.push(d2.join(r2)));
        }) : (h2 = /* @__PURE__ */ new Set(), c2 = {}, i2.forEach(function(t4, e3) {
          null == t4 || t4.data.forEach(function(t5) {
            var a3, s3;
            if (m2.isFormatXY())
              a3 = t5.x, s3 = t5.y;
            else {
              if (!m2.isFormat2DArray())
                return;
              a3 = t5[0], s3 = t5[1];
            }
            c2[a3] || (c2[a3] = Array(i2.length).fill("")), c2[a3][e3] = s3, h2.add(a3);
          });
        }), d2.length && g2.push(d2.join(r2)), Array.from(h2).sort().forEach(function(t4) {
          g2.push([b2(t4) && "datetime" === l2.config.xaxis.type ? l2.config.chart.toolbar.export.csv.dateFormatter(t4) : x.isNumber(t4) ? t4 : t4.split(r2).join(""), c2[t4].join(r2)]);
        })), p2 += g2.join(n2), this.triggerDownload("data:text/csv; charset=utf-8," + encodeURIComponent("\uFEFF" + p2), a2 || l2.config.chart.toolbar.export.csv.filename, ".csv");
      } }, { key: "triggerDownload", value: function(t3, e2, i2) {
        var a2 = document.createElement("a");
        a2.href = t3, a2.download = (e2 || this.w.globals.chartID) + i2, document.body.appendChild(a2), a2.click(), document.body.removeChild(a2);
      } }]), t2;
    }();
    var V = function() {
      function t2(e2, i2) {
        a(this, t2), this.ctx = e2, this.elgrid = i2, this.w = e2.w;
        var s2 = this.w;
        this.axesUtils = new B(e2), this.xaxisLabels = s2.globals.labels.slice(), s2.globals.timescaleLabels.length > 0 && !s2.globals.isBarHorizontal && (this.xaxisLabels = s2.globals.timescaleLabels.slice()), s2.config.xaxis.overwriteCategories && (this.xaxisLabels = s2.config.xaxis.overwriteCategories), this.drawnLabels = [], this.drawnLabelsRects = [], "top" === s2.config.xaxis.position ? this.offY = 0 : this.offY = s2.globals.gridHeight + 1, this.offY = this.offY + s2.config.xaxis.axisBorder.offsetY, this.isCategoryBarHorizontal = "bar" === s2.config.chart.type && s2.config.plotOptions.bar.horizontal, this.xaxisFontSize = s2.config.xaxis.labels.style.fontSize, this.xaxisFontFamily = s2.config.xaxis.labels.style.fontFamily, this.xaxisForeColors = s2.config.xaxis.labels.style.colors, this.xaxisBorderWidth = s2.config.xaxis.axisBorder.width, this.isCategoryBarHorizontal && (this.xaxisBorderWidth = s2.config.yaxis[0].axisBorder.width.toString()), this.xaxisBorderWidth.indexOf("%") > -1 ? this.xaxisBorderWidth = s2.globals.gridWidth * parseInt(this.xaxisBorderWidth, 10) / 100 : this.xaxisBorderWidth = parseInt(this.xaxisBorderWidth, 10), this.xaxisBorderHeight = s2.config.xaxis.axisBorder.height, this.yaxis = s2.config.yaxis[0];
      }
      return r(t2, [{ key: "drawXaxis", value: function() {
        var t3 = this.w, e2 = new m(this.ctx), i2 = e2.group({ class: "apexcharts-xaxis", transform: "translate(".concat(t3.config.xaxis.offsetX, ", ").concat(t3.config.xaxis.offsetY, ")") }), a2 = e2.group({ class: "apexcharts-xaxis-texts-g", transform: "translate(".concat(t3.globals.translateXAxisX, ", ").concat(t3.globals.translateXAxisY, ")") });
        i2.add(a2);
        for (var s2 = [], r2 = 0; r2 < this.xaxisLabels.length; r2++)
          s2.push(this.xaxisLabels[r2]);
        if (this.drawXAxisLabelAndGroup(true, e2, a2, s2, t3.globals.isXNumeric, function(t4, e3) {
          return e3;
        }), t3.globals.hasXaxisGroups) {
          var o2 = t3.globals.groups;
          s2 = [];
          for (var n2 = 0; n2 < o2.length; n2++)
            s2.push(o2[n2].title);
          var l2 = {};
          t3.config.xaxis.group.style && (l2.xaxisFontSize = t3.config.xaxis.group.style.fontSize, l2.xaxisFontFamily = t3.config.xaxis.group.style.fontFamily, l2.xaxisForeColors = t3.config.xaxis.group.style.colors, l2.fontWeight = t3.config.xaxis.group.style.fontWeight, l2.cssClass = t3.config.xaxis.group.style.cssClass), this.drawXAxisLabelAndGroup(false, e2, a2, s2, false, function(t4, e3) {
            return o2[t4].cols * e3;
          }, l2);
        }
        if (void 0 !== t3.config.xaxis.title.text) {
          var h2 = e2.group({ class: "apexcharts-xaxis-title" }), c2 = e2.drawText({ x: t3.globals.gridWidth / 2 + t3.config.xaxis.title.offsetX, y: this.offY + parseFloat(this.xaxisFontSize) + ("bottom" === t3.config.xaxis.position ? t3.globals.xAxisLabelsHeight : -t3.globals.xAxisLabelsHeight - 10) + t3.config.xaxis.title.offsetY, text: t3.config.xaxis.title.text, textAnchor: "middle", fontSize: t3.config.xaxis.title.style.fontSize, fontFamily: t3.config.xaxis.title.style.fontFamily, fontWeight: t3.config.xaxis.title.style.fontWeight, foreColor: t3.config.xaxis.title.style.color, cssClass: "apexcharts-xaxis-title-text " + t3.config.xaxis.title.style.cssClass });
          h2.add(c2), i2.add(h2);
        }
        if (t3.config.xaxis.axisBorder.show) {
          var d2 = t3.globals.barPadForNumericAxis, g2 = e2.drawLine(t3.globals.padHorizontal + t3.config.xaxis.axisBorder.offsetX - d2, this.offY, this.xaxisBorderWidth + d2, this.offY, t3.config.xaxis.axisBorder.color, 0, this.xaxisBorderHeight);
          this.elgrid && this.elgrid.elGridBorders && t3.config.grid.show ? this.elgrid.elGridBorders.add(g2) : i2.add(g2);
        }
        return i2;
      } }, { key: "drawXAxisLabelAndGroup", value: function(t3, e2, i2, a2, s2, r2) {
        var o2, n2 = this, l2 = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : {}, h2 = [], c2 = [], d2 = this.w, g2 = l2.xaxisFontSize || this.xaxisFontSize, u2 = l2.xaxisFontFamily || this.xaxisFontFamily, p2 = l2.xaxisForeColors || this.xaxisForeColors, f2 = l2.fontWeight || d2.config.xaxis.labels.style.fontWeight, x2 = l2.cssClass || d2.config.xaxis.labels.style.cssClass, b2 = d2.globals.padHorizontal, v2 = a2.length, m2 = "category" === d2.config.xaxis.type ? d2.globals.dataPoints : v2;
        if (0 === m2 && v2 > m2 && (m2 = v2), s2) {
          var y2 = m2 > 1 ? m2 - 1 : m2;
          o2 = d2.globals.gridWidth / Math.min(y2, v2 - 1), b2 = b2 + r2(0, o2) / 2 + d2.config.xaxis.labels.offsetX;
        } else
          o2 = d2.globals.gridWidth / m2, b2 = b2 + r2(0, o2) + d2.config.xaxis.labels.offsetX;
        for (var w2 = function(s3) {
          var l3 = b2 - r2(s3, o2) / 2 + d2.config.xaxis.labels.offsetX;
          0 === s3 && 1 === v2 && o2 / 2 === b2 && 1 === m2 && (l3 = d2.globals.gridWidth / 2);
          var y3 = n2.axesUtils.getLabel(a2, d2.globals.timescaleLabels, l3, s3, h2, g2, t3), w3 = 28;
          d2.globals.rotateXLabels && t3 && (w3 = 22), d2.config.xaxis.title.text && "top" === d2.config.xaxis.position && (w3 += parseFloat(d2.config.xaxis.title.style.fontSize) + 2), t3 || (w3 = w3 + parseFloat(g2) + (d2.globals.xAxisLabelsHeight - d2.globals.xAxisGroupLabelsHeight) + (d2.globals.rotateXLabels ? 10 : 0)), y3 = void 0 !== d2.config.xaxis.tickAmount && "dataPoints" !== d2.config.xaxis.tickAmount && "datetime" !== d2.config.xaxis.type ? n2.axesUtils.checkLabelBasedOnTickamount(s3, y3, v2) : n2.axesUtils.checkForOverflowingLabels(s3, y3, v2, h2, c2);
          if (d2.config.xaxis.labels.show) {
            var k3 = e2.drawText({ x: y3.x, y: n2.offY + d2.config.xaxis.labels.offsetY + w3 - ("top" === d2.config.xaxis.position ? d2.globals.xAxisHeight + d2.config.xaxis.axisTicks.height - 2 : 0), text: y3.text, textAnchor: "middle", fontWeight: y3.isBold ? 600 : f2, fontSize: g2, fontFamily: u2, foreColor: Array.isArray(p2) ? t3 && d2.config.xaxis.convertedCatToNumeric ? p2[d2.globals.minX + s3 - 1] : p2[s3] : p2, isPlainText: false, cssClass: (t3 ? "apexcharts-xaxis-label " : "apexcharts-xaxis-group-label ") + x2 });
            if (i2.add(k3), k3.on("click", function(t4) {
              if ("function" == typeof d2.config.chart.events.xAxisLabelClick) {
                var e3 = Object.assign({}, d2, { labelIndex: s3 });
                d2.config.chart.events.xAxisLabelClick(t4, n2.ctx, e3);
              }
            }), t3) {
              var A3 = document.createElementNS(d2.globals.SVGNS, "title");
              A3.textContent = Array.isArray(y3.text) ? y3.text.join(" ") : y3.text, k3.node.appendChild(A3), "" !== y3.text && (h2.push(y3.text), c2.push(y3));
            }
          }
          s3 < v2 - 1 && (b2 += r2(s3 + 1, o2));
        }, k2 = 0; k2 <= v2 - 1; k2++)
          w2(k2);
      } }, { key: "drawXaxisInversed", value: function(t3) {
        var e2, i2, a2 = this, s2 = this.w, r2 = new m(this.ctx), o2 = s2.config.yaxis[0].opposite ? s2.globals.translateYAxisX[t3] : 0, n2 = r2.group({ class: "apexcharts-yaxis apexcharts-xaxis-inversed", rel: t3 }), l2 = r2.group({ class: "apexcharts-yaxis-texts-g apexcharts-xaxis-inversed-texts-g", transform: "translate(" + o2 + ", 0)" });
        n2.add(l2);
        var h2 = [];
        if (s2.config.yaxis[t3].show)
          for (var c2 = 0; c2 < this.xaxisLabels.length; c2++)
            h2.push(this.xaxisLabels[c2]);
        e2 = s2.globals.gridHeight / h2.length, i2 = -e2 / 2.2;
        var d2 = s2.globals.yLabelFormatters[0], g2 = s2.config.yaxis[0].labels;
        if (g2.show)
          for (var u2 = function(o3) {
            var n3 = void 0 === h2[o3] ? "" : h2[o3];
            n3 = d2(n3, { seriesIndex: t3, dataPointIndex: o3, w: s2 });
            var c3 = a2.axesUtils.getYAxisForeColor(g2.style.colors, t3), u3 = 0;
            Array.isArray(n3) && (u3 = n3.length / 2 * parseInt(g2.style.fontSize, 10));
            var p3 = g2.offsetX - 15, f3 = "end";
            a2.yaxis.opposite && (f3 = "start"), "left" === s2.config.yaxis[0].labels.align ? (p3 = g2.offsetX, f3 = "start") : "center" === s2.config.yaxis[0].labels.align ? (p3 = g2.offsetX, f3 = "middle") : "right" === s2.config.yaxis[0].labels.align && (f3 = "end");
            var x3 = r2.drawText({ x: p3, y: i2 + e2 + g2.offsetY - u3, text: n3, textAnchor: f3, foreColor: Array.isArray(c3) ? c3[o3] : c3, fontSize: g2.style.fontSize, fontFamily: g2.style.fontFamily, fontWeight: g2.style.fontWeight, isPlainText: false, cssClass: "apexcharts-yaxis-label " + g2.style.cssClass, maxWidth: g2.maxWidth });
            l2.add(x3), x3.on("click", function(t4) {
              if ("function" == typeof s2.config.chart.events.xAxisLabelClick) {
                var e3 = Object.assign({}, s2, { labelIndex: o3 });
                s2.config.chart.events.xAxisLabelClick(t4, a2.ctx, e3);
              }
            });
            var b3 = document.createElementNS(s2.globals.SVGNS, "title");
            if (b3.textContent = Array.isArray(n3) ? n3.join(" ") : n3, x3.node.appendChild(b3), 0 !== s2.config.yaxis[t3].labels.rotate) {
              var v3 = r2.rotateAroundCenter(x3.node);
              x3.node.setAttribute("transform", "rotate(".concat(s2.config.yaxis[t3].labels.rotate, " 0 ").concat(v3.y, ")"));
            }
            i2 += e2;
          }, p2 = 0; p2 <= h2.length - 1; p2++)
            u2(p2);
        if (void 0 !== s2.config.yaxis[0].title.text) {
          var f2 = r2.group({ class: "apexcharts-yaxis-title apexcharts-xaxis-title-inversed", transform: "translate(" + o2 + ", 0)" }), x2 = r2.drawText({ x: s2.config.yaxis[0].title.offsetX, y: s2.globals.gridHeight / 2 + s2.config.yaxis[0].title.offsetY, text: s2.config.yaxis[0].title.text, textAnchor: "middle", foreColor: s2.config.yaxis[0].title.style.color, fontSize: s2.config.yaxis[0].title.style.fontSize, fontWeight: s2.config.yaxis[0].title.style.fontWeight, fontFamily: s2.config.yaxis[0].title.style.fontFamily, cssClass: "apexcharts-yaxis-title-text " + s2.config.yaxis[0].title.style.cssClass });
          f2.add(x2), n2.add(f2);
        }
        var b2 = 0;
        this.isCategoryBarHorizontal && s2.config.yaxis[0].opposite && (b2 = s2.globals.gridWidth);
        var v2 = s2.config.xaxis.axisBorder;
        if (v2.show) {
          var y2 = r2.drawLine(s2.globals.padHorizontal + v2.offsetX + b2, 1 + v2.offsetY, s2.globals.padHorizontal + v2.offsetX + b2, s2.globals.gridHeight + v2.offsetY, v2.color, 0);
          this.elgrid && this.elgrid.elGridBorders && s2.config.grid.show ? this.elgrid.elGridBorders.add(y2) : n2.add(y2);
        }
        return s2.config.yaxis[0].axisTicks.show && this.axesUtils.drawYAxisTicks(b2, h2.length, s2.config.yaxis[0].axisBorder, s2.config.yaxis[0].axisTicks, 0, e2, n2), n2;
      } }, { key: "drawXaxisTicks", value: function(t3, e2, i2) {
        var a2 = this.w, s2 = t3;
        if (!(t3 < 0 || t3 - 2 > a2.globals.gridWidth)) {
          var r2 = this.offY + a2.config.xaxis.axisTicks.offsetY;
          if (e2 = e2 + r2 + a2.config.xaxis.axisTicks.height, "top" === a2.config.xaxis.position && (e2 = r2 - a2.config.xaxis.axisTicks.height), a2.config.xaxis.axisTicks.show) {
            var o2 = new m(this.ctx).drawLine(t3 + a2.config.xaxis.axisTicks.offsetX, r2 + a2.config.xaxis.offsetY, s2 + a2.config.xaxis.axisTicks.offsetX, e2 + a2.config.xaxis.offsetY, a2.config.xaxis.axisTicks.color);
            i2.add(o2), o2.node.classList.add("apexcharts-xaxis-tick");
          }
        }
      } }, { key: "getXAxisTicksPositions", value: function() {
        var t3 = this.w, e2 = [], i2 = this.xaxisLabels.length, a2 = t3.globals.padHorizontal;
        if (t3.globals.timescaleLabels.length > 0)
          for (var s2 = 0; s2 < i2; s2++)
            a2 = this.xaxisLabels[s2].position, e2.push(a2);
        else
          for (var r2 = i2, o2 = 0; o2 < r2; o2++) {
            var n2 = r2;
            t3.globals.isXNumeric && "bar" !== t3.config.chart.type && (n2 -= 1), a2 += t3.globals.gridWidth / n2, e2.push(a2);
          }
        return e2;
      } }, { key: "xAxisLabelCorrections", value: function() {
        var t3 = this.w, e2 = new m(this.ctx), i2 = t3.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g"), a2 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-xaxis-texts-g text:not(.apexcharts-xaxis-group-label)"), s2 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-inversed text"), r2 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-xaxis-inversed-texts-g text tspan");
        if (t3.globals.rotateXLabels || t3.config.xaxis.labels.rotateAlways)
          for (var o2 = 0; o2 < a2.length; o2++) {
            var n2 = e2.rotateAroundCenter(a2[o2]);
            n2.y = n2.y - 1, n2.x = n2.x + 1, a2[o2].setAttribute("transform", "rotate(".concat(t3.config.xaxis.labels.rotate, " ").concat(n2.x, " ").concat(n2.y, ")")), a2[o2].setAttribute("text-anchor", "end");
            i2.setAttribute("transform", "translate(0, ".concat(-10, ")"));
            var l2 = a2[o2].childNodes;
            t3.config.xaxis.labels.trim && Array.prototype.forEach.call(l2, function(i3) {
              e2.placeTextWithEllipsis(i3, i3.textContent, t3.globals.xAxisLabelsHeight - ("bottom" === t3.config.legend.position ? 20 : 10));
            });
          }
        else
          !function() {
            for (var i3 = t3.globals.gridWidth / (t3.globals.labels.length + 1), s3 = 0; s3 < a2.length; s3++) {
              var r3 = a2[s3].childNodes;
              t3.config.xaxis.labels.trim && "datetime" !== t3.config.xaxis.type && Array.prototype.forEach.call(r3, function(t4) {
                e2.placeTextWithEllipsis(t4, t4.textContent, i3);
              });
            }
          }();
        if (s2.length > 0) {
          var h2 = s2[s2.length - 1].getBBox(), c2 = s2[0].getBBox();
          h2.x < -20 && s2[s2.length - 1].parentNode.removeChild(s2[s2.length - 1]), c2.x + c2.width > t3.globals.gridWidth && !t3.globals.isBarHorizontal && s2[0].parentNode.removeChild(s2[0]);
          for (var d2 = 0; d2 < r2.length; d2++)
            e2.placeTextWithEllipsis(r2[d2], r2[d2].textContent, t3.config.yaxis[0].labels.maxWidth - (t3.config.yaxis[0].title.text ? 2 * parseFloat(t3.config.yaxis[0].title.style.fontSize) : 0) - 15);
        }
      } }]), t2;
    }();
    var j = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
        var i2 = this.w;
        this.xaxisLabels = i2.globals.labels.slice(), this.axesUtils = new B(e2), this.isRangeBar = i2.globals.seriesRange.length && i2.globals.isBarHorizontal, i2.globals.timescaleLabels.length > 0 && (this.xaxisLabels = i2.globals.timescaleLabels.slice());
      }
      return r(t2, [{ key: "drawGridArea", value: function() {
        var t3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, e2 = this.w, i2 = new m(this.ctx);
        null === t3 && (t3 = i2.group({ class: "apexcharts-grid" }));
        var a2 = i2.drawLine(e2.globals.padHorizontal, 1, e2.globals.padHorizontal, e2.globals.gridHeight, "transparent"), s2 = i2.drawLine(e2.globals.padHorizontal, e2.globals.gridHeight, e2.globals.gridWidth, e2.globals.gridHeight, "transparent");
        return t3.add(s2), t3.add(a2), t3;
      } }, { key: "drawGrid", value: function() {
        var t3 = null;
        return this.w.globals.axisCharts && (t3 = this.renderGrid(), this.drawGridArea(t3.el)), t3;
      } }, { key: "createGridMask", value: function() {
        var t3 = this.w, e2 = t3.globals, i2 = new m(this.ctx), a2 = Array.isArray(t3.config.stroke.width) ? 0 : t3.config.stroke.width;
        if (Array.isArray(t3.config.stroke.width)) {
          var s2 = 0;
          t3.config.stroke.width.forEach(function(t4) {
            s2 = Math.max(s2, t4);
          }), a2 = s2;
        }
        e2.dom.elGridRectMask = document.createElementNS(e2.SVGNS, "clipPath"), e2.dom.elGridRectMask.setAttribute("id", "gridRectMask".concat(e2.cuid)), e2.dom.elGridRectMarkerMask = document.createElementNS(e2.SVGNS, "clipPath"), e2.dom.elGridRectMarkerMask.setAttribute("id", "gridRectMarkerMask".concat(e2.cuid)), e2.dom.elForecastMask = document.createElementNS(e2.SVGNS, "clipPath"), e2.dom.elForecastMask.setAttribute("id", "forecastMask".concat(e2.cuid)), e2.dom.elNonForecastMask = document.createElementNS(e2.SVGNS, "clipPath"), e2.dom.elNonForecastMask.setAttribute("id", "nonForecastMask".concat(e2.cuid));
        var r2 = t3.config.chart.type, o2 = 0, n2 = 0;
        ("bar" === r2 || "rangeBar" === r2 || "candlestick" === r2 || "boxPlot" === r2 || t3.globals.comboBarCount > 0) && t3.globals.isXNumeric && !t3.globals.isBarHorizontal && (o2 = t3.config.grid.padding.left, n2 = t3.config.grid.padding.right, e2.barPadForNumericAxis > o2 && (o2 = e2.barPadForNumericAxis, n2 = e2.barPadForNumericAxis)), e2.dom.elGridRect = i2.drawRect(-a2 - o2 - 2, 2 * -a2 - 2, e2.gridWidth + a2 + n2 + o2 + 4, e2.gridHeight + 4 * a2 + 4, 0, "#fff");
        var l2 = t3.globals.markers.largestSize + 1;
        e2.dom.elGridRectMarker = i2.drawRect(2 * -l2, 2 * -l2, e2.gridWidth + 4 * l2, e2.gridHeight + 4 * l2, 0, "#fff"), e2.dom.elGridRectMask.appendChild(e2.dom.elGridRect.node), e2.dom.elGridRectMarkerMask.appendChild(e2.dom.elGridRectMarker.node);
        var h2 = e2.dom.baseEl.querySelector("defs");
        h2.appendChild(e2.dom.elGridRectMask), h2.appendChild(e2.dom.elForecastMask), h2.appendChild(e2.dom.elNonForecastMask), h2.appendChild(e2.dom.elGridRectMarkerMask);
      } }, { key: "_drawGridLines", value: function(t3) {
        var e2 = t3.i, i2 = t3.x1, a2 = t3.y1, s2 = t3.x2, r2 = t3.y2, o2 = t3.xCount, n2 = t3.parent, l2 = this.w;
        if (!(0 === e2 && l2.globals.skipFirstTimelinelabel || e2 === o2 - 1 && l2.globals.skipLastTimelinelabel && !l2.config.xaxis.labels.formatter || "radar" === l2.config.chart.type)) {
          l2.config.grid.xaxis.lines.show && this._drawGridLine({ i: e2, x1: i2, y1: a2, x2: s2, y2: r2, xCount: o2, parent: n2 });
          var h2 = 0;
          if (l2.globals.hasXaxisGroups && "between" === l2.config.xaxis.tickPlacement) {
            var c2 = l2.globals.groups;
            if (c2) {
              for (var d2 = 0, g2 = 0; d2 < e2 && g2 < c2.length; g2++)
                d2 += c2[g2].cols;
              d2 === e2 && (h2 = 0.6 * l2.globals.xAxisLabelsHeight);
            }
          }
          new V(this.ctx).drawXaxisTicks(i2, h2, l2.globals.dom.elGraphical);
        }
      } }, { key: "_drawGridLine", value: function(t3) {
        var e2 = t3.i, i2 = t3.x1, a2 = t3.y1, s2 = t3.x2, r2 = t3.y2, o2 = t3.xCount, n2 = t3.parent, l2 = this.w, h2 = false, c2 = n2.node.classList.contains("apexcharts-gridlines-horizontal"), d2 = l2.config.grid.strokeDashArray, g2 = l2.globals.barPadForNumericAxis;
        (0 === a2 && 0 === r2 || 0 === i2 && 0 === s2) && (h2 = true), a2 === l2.globals.gridHeight && r2 === l2.globals.gridHeight && (h2 = true), !l2.globals.isBarHorizontal || 0 !== e2 && e2 !== o2 - 1 || (h2 = true);
        var u2 = new m(this).drawLine(i2 - (c2 ? g2 : 0), a2, s2 + (c2 ? g2 : 0), r2, l2.config.grid.borderColor, d2);
        u2.node.classList.add("apexcharts-gridline"), h2 && l2.config.grid.show ? this.elGridBorders.add(u2) : n2.add(u2);
      } }, { key: "_drawGridBandRect", value: function(t3) {
        var e2 = t3.c, i2 = t3.x1, a2 = t3.y1, s2 = t3.x2, r2 = t3.y2, o2 = t3.type, n2 = this.w, l2 = new m(this.ctx), h2 = n2.globals.barPadForNumericAxis;
        if ("column" !== o2 || "datetime" !== n2.config.xaxis.type) {
          var c2 = n2.config.grid[o2].colors[e2], d2 = l2.drawRect(i2 - ("row" === o2 ? h2 : 0), a2, s2 + ("row" === o2 ? 2 * h2 : 0), r2, 0, c2, n2.config.grid[o2].opacity);
          this.elg.add(d2), d2.attr("clip-path", "url(#gridRectMask".concat(n2.globals.cuid, ")")), d2.node.classList.add("apexcharts-grid-".concat(o2));
        }
      } }, { key: "_drawXYLines", value: function(t3) {
        var e2 = this, i2 = t3.xCount, a2 = t3.tickAmount, s2 = this.w;
        if (s2.config.grid.xaxis.lines.show || s2.config.xaxis.axisTicks.show) {
          var r2, o2 = s2.globals.padHorizontal, n2 = s2.globals.gridHeight;
          s2.globals.timescaleLabels.length ? function(t4) {
            for (var a3 = t4.xC, s3 = t4.x1, r3 = t4.y1, o3 = t4.x2, n3 = t4.y2, l3 = 0; l3 < a3; l3++)
              s3 = e2.xaxisLabels[l3].position, o3 = e2.xaxisLabels[l3].position, e2._drawGridLines({ i: l3, x1: s3, y1: r3, x2: o3, y2: n3, xCount: i2, parent: e2.elgridLinesV });
          }({ xC: i2, x1: o2, y1: 0, x2: r2, y2: n2 }) : (s2.globals.isXNumeric && (i2 = s2.globals.xAxisScale.result.length), function(t4) {
            for (var a3 = t4.xC, r3 = t4.x1, o3 = t4.y1, n3 = t4.x2, l3 = t4.y2, h3 = 0; h3 < a3 + (s2.globals.isXNumeric ? 0 : 1); h3++)
              0 === h3 && 1 === a3 && 1 === s2.globals.dataPoints && (n3 = r3 = s2.globals.gridWidth / 2), e2._drawGridLines({ i: h3, x1: r3, y1: o3, x2: n3, y2: l3, xCount: i2, parent: e2.elgridLinesV }), n3 = r3 += s2.globals.gridWidth / (s2.globals.isXNumeric ? a3 - 1 : a3);
          }({ xC: i2, x1: o2, y1: 0, x2: r2, y2: n2 }));
        }
        if (s2.config.grid.yaxis.lines.show) {
          var l2 = 0, h2 = 0, c2 = s2.globals.gridWidth, d2 = a2 + 1;
          this.isRangeBar && (d2 = s2.globals.labels.length);
          for (var g2 = 0; g2 < d2 + (this.isRangeBar ? 1 : 0); g2++)
            this._drawGridLine({ i: g2, xCount: d2 + (this.isRangeBar ? 1 : 0), x1: 0, y1: l2, x2: c2, y2: h2, parent: this.elgridLinesH }), h2 = l2 += s2.globals.gridHeight / (this.isRangeBar ? d2 : a2);
        }
      } }, { key: "_drawInvertedXYLines", value: function(t3) {
        var e2 = t3.xCount, i2 = this.w;
        if (i2.config.grid.xaxis.lines.show || i2.config.xaxis.axisTicks.show)
          for (var a2, s2 = i2.globals.padHorizontal, r2 = i2.globals.gridHeight, o2 = 0; o2 < e2 + 1; o2++) {
            i2.config.grid.xaxis.lines.show && this._drawGridLine({ i: o2, xCount: e2 + 1, x1: s2, y1: 0, x2: a2, y2: r2, parent: this.elgridLinesV }), new V(this.ctx).drawXaxisTicks(s2, 0, i2.globals.dom.elGraphical), a2 = s2 = s2 + i2.globals.gridWidth / e2 + 0.3;
          }
        if (i2.config.grid.yaxis.lines.show)
          for (var n2 = 0, l2 = 0, h2 = i2.globals.gridWidth, c2 = 0; c2 < i2.globals.dataPoints + 1; c2++)
            this._drawGridLine({ i: c2, xCount: i2.globals.dataPoints + 1, x1: 0, y1: n2, x2: h2, y2: l2, parent: this.elgridLinesH }), l2 = n2 += i2.globals.gridHeight / i2.globals.dataPoints;
      } }, { key: "renderGrid", value: function() {
        var t3 = this.w, e2 = new m(this.ctx);
        this.elg = e2.group({ class: "apexcharts-grid" }), this.elgridLinesH = e2.group({ class: "apexcharts-gridlines-horizontal" }), this.elgridLinesV = e2.group({ class: "apexcharts-gridlines-vertical" }), this.elGridBorders = e2.group({ class: "apexcharts-grid-borders" }), this.elg.add(this.elgridLinesH), this.elg.add(this.elgridLinesV), t3.config.grid.show || (this.elgridLinesV.hide(), this.elgridLinesH.hide(), this.elGridBorders.hide());
        for (var i2, a2 = t3.globals.yAxisScale.length ? t3.globals.yAxisScale[0].result.length - 1 : 5, s2 = 0; s2 < t3.globals.series.length && (void 0 !== t3.globals.yAxisScale[s2] && (a2 = t3.globals.yAxisScale[s2].result.length - 1), !(a2 > 2)); s2++)
          ;
        if (!t3.globals.isBarHorizontal || this.isRangeBar) {
          var r2, o2, n2;
          if (i2 = this.xaxisLabels.length, this.isRangeBar)
            i2--, a2 = t3.globals.labels.length, t3.config.xaxis.tickAmount && t3.config.xaxis.labels.formatter && (i2 = t3.config.xaxis.tickAmount), (null === (r2 = t3.globals.yAxisScale) || void 0 === r2 || null === (o2 = r2[0]) || void 0 === o2 || null === (n2 = o2.result) || void 0 === n2 ? void 0 : n2.length) > 0 && "datetime" !== t3.config.xaxis.type && (i2 = t3.globals.yAxisScale[0].result.length - 1);
          this._drawXYLines({ xCount: i2, tickAmount: a2 });
        } else
          i2 = a2, a2 = t3.globals.xTickAmount, this._drawInvertedXYLines({ xCount: i2, tickAmount: a2 });
        return this.drawGridBands(i2, a2), { el: this.elg, elGridBorders: this.elGridBorders, xAxisTickWidth: t3.globals.gridWidth / i2 };
      } }, { key: "drawGridBands", value: function(t3, e2) {
        var i2 = this.w;
        if (void 0 !== i2.config.grid.row.colors && i2.config.grid.row.colors.length > 0)
          for (var a2 = 0, s2 = i2.globals.gridHeight / e2, r2 = i2.globals.gridWidth, o2 = 0, n2 = 0; o2 < e2; o2++, n2++)
            n2 >= i2.config.grid.row.colors.length && (n2 = 0), this._drawGridBandRect({ c: n2, x1: 0, y1: a2, x2: r2, y2: s2, type: "row" }), a2 += i2.globals.gridHeight / e2;
        if (void 0 !== i2.config.grid.column.colors && i2.config.grid.column.colors.length > 0)
          for (var l2 = i2.globals.isBarHorizontal || "on" !== i2.config.xaxis.tickPlacement || "category" !== i2.config.xaxis.type && !i2.config.xaxis.convertedCatToNumeric ? t3 : t3 - 1, h2 = i2.globals.padHorizontal, c2 = i2.globals.padHorizontal + i2.globals.gridWidth / l2, d2 = i2.globals.gridHeight, g2 = 0, u2 = 0; g2 < t3; g2++, u2++)
            u2 >= i2.config.grid.column.colors.length && (u2 = 0), this._drawGridBandRect({ c: u2, x1: h2, y1: 0, x2: c2, y2: d2, type: "column" }), h2 += i2.globals.gridWidth / l2;
      } }]), t2;
    }();
    var _ = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "niceScale", value: function(t3, e2) {
        var i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 5, a2 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, s2 = arguments.length > 4 ? arguments[4] : void 0, r2 = this.w, o2 = Math.abs(e2 - t3);
        if ("dataPoints" === (i2 = this._adjustTicksForSmallRange(i2, a2, o2)) && (i2 = r2.globals.dataPoints - 1), t3 === Number.MIN_VALUE && 0 === e2 || !x.isNumber(t3) && !x.isNumber(e2) || t3 === Number.MIN_VALUE && e2 === -Number.MAX_VALUE)
          return t3 = 0, e2 = i2, this.linearScale(t3, e2, i2, a2, r2.config.yaxis[a2].stepSize);
        t3 > e2 ? (console.warn("axis.min cannot be greater than axis.max"), e2 = t3 + 0.1) : t3 === e2 && (t3 = 0 === t3 ? 0 : t3 - 0.5, e2 = 0 === e2 ? 2 : e2 + 0.5);
        var n2 = [];
        o2 < 1 && s2 && ("candlestick" === r2.config.chart.type || "candlestick" === r2.config.series[a2].type || "boxPlot" === r2.config.chart.type || "boxPlot" === r2.config.series[a2].type || r2.globals.isRangeData) && (e2 *= 1.01);
        var l2 = i2 + 1;
        l2 < 2 ? l2 = 2 : l2 > 2 && (l2 -= 2);
        var h2 = o2 / l2, c2 = Math.floor(x.log10(h2)), d2 = Math.pow(10, c2), g2 = Math.round(h2 / d2);
        g2 < 1 && (g2 = 1);
        var u2 = g2 * d2;
        r2.config.yaxis[a2].stepSize && (u2 = r2.config.yaxis[a2].stepSize), r2.globals.isBarHorizontal && r2.config.xaxis.stepSize && "datetime" !== r2.config.xaxis.type && (u2 = r2.config.xaxis.stepSize);
        var p2 = u2 * Math.floor(t3 / u2), f2 = u2 * Math.ceil(e2 / u2), b2 = p2;
        if (s2 && o2 > 2) {
          for (; n2.push(x.stripNumber(b2, 7)), !((b2 += u2) > f2); )
            ;
          return { result: n2, niceMin: n2[0], niceMax: n2[n2.length - 1] };
        }
        var v2 = t3;
        (n2 = []).push(x.stripNumber(v2, 7));
        for (var m2 = Math.abs(e2 - t3) / i2, y2 = 0; y2 <= i2; y2++)
          v2 += m2, n2.push(v2);
        return n2[n2.length - 2] >= e2 && n2.pop(), { result: n2, niceMin: n2[0], niceMax: n2[n2.length - 1] };
      } }, { key: "linearScale", value: function(t3, e2) {
        var i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 5, a2 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, s2 = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : void 0, r2 = Math.abs(e2 - t3);
        "dataPoints" === (i2 = this._adjustTicksForSmallRange(i2, a2, r2)) && (i2 = this.w.globals.dataPoints - 1), s2 || (s2 = r2 / i2), i2 === Number.MAX_VALUE && (i2 = 5, s2 = 1);
        for (var o2 = [], n2 = t3; i2 >= 0; )
          o2.push(n2), n2 += s2, i2 -= 1;
        return { result: o2, niceMin: o2[0], niceMax: o2[o2.length - 1] };
      } }, { key: "logarithmicScaleNice", value: function(t3, e2, i2) {
        e2 <= 0 && (e2 = Math.max(t3, i2)), t3 <= 0 && (t3 = Math.min(e2, i2));
        for (var a2 = [], s2 = Math.ceil(Math.log(e2) / Math.log(i2) + 1), r2 = Math.floor(Math.log(t3) / Math.log(i2)); r2 < s2; r2++)
          a2.push(Math.pow(i2, r2));
        return { result: a2, niceMin: a2[0], niceMax: a2[a2.length - 1] };
      } }, { key: "logarithmicScale", value: function(t3, e2, i2) {
        e2 <= 0 && (e2 = Math.max(t3, i2)), t3 <= 0 && (t3 = Math.min(e2, i2));
        for (var a2 = [], s2 = Math.log(e2) / Math.log(i2), r2 = Math.log(t3) / Math.log(i2), o2 = s2 - r2, n2 = Math.round(o2), l2 = o2 / n2, h2 = 0, c2 = r2; h2 < n2; h2++, c2 += l2)
          a2.push(Math.pow(i2, c2));
        return a2.push(Math.pow(i2, s2)), { result: a2, niceMin: t3, niceMax: e2 };
      } }, { key: "_adjustTicksForSmallRange", value: function(t3, e2, i2) {
        var a2 = t3;
        if (void 0 !== e2 && this.w.config.yaxis[e2].labels.formatter && void 0 === this.w.config.yaxis[e2].tickAmount) {
          var s2 = Number(this.w.config.yaxis[e2].labels.formatter(1));
          x.isNumber(s2) && 0 === this.w.globals.yValueDecimal && (a2 = Math.ceil(i2));
        }
        return a2 < t3 ? a2 : t3;
      } }, { key: "setYScaleForIndex", value: function(t3, e2, i2) {
        var a2 = this.w.globals, s2 = this.w.config, r2 = a2.isBarHorizontal ? s2.xaxis : s2.yaxis[t3];
        void 0 === a2.yAxisScale[t3] && (a2.yAxisScale[t3] = []);
        var o2 = Math.abs(i2 - e2);
        if (r2.logarithmic && o2 <= 5 && (a2.invalidLogScale = true), r2.logarithmic && o2 > 5)
          a2.allSeriesCollapsed = false, a2.yAxisScale[t3] = this.logarithmicScale(e2, i2, r2.logBase), a2.yAxisScale[t3] = r2.forceNiceScale ? this.logarithmicScaleNice(e2, i2, r2.logBase) : this.logarithmicScale(e2, i2, r2.logBase);
        else if (i2 !== -Number.MAX_VALUE && x.isNumber(i2))
          if (a2.allSeriesCollapsed = false, void 0 === r2.min && void 0 === r2.max || r2.forceNiceScale) {
            var n2 = void 0 === s2.yaxis[t3].max && void 0 === s2.yaxis[t3].min || s2.yaxis[t3].forceNiceScale;
            a2.yAxisScale[t3] = this.niceScale(e2, i2, r2.tickAmount ? r2.tickAmount : o2 < 5 && o2 > 1 ? o2 + 1 : 5, t3, n2);
          } else
            a2.yAxisScale[t3] = this.linearScale(e2, i2, r2.tickAmount, t3, s2.yaxis[t3].stepSize);
        else
          a2.yAxisScale[t3] = this.linearScale(0, 5, 5, t3, s2.yaxis[t3].stepSize);
      } }, { key: "setXScale", value: function(t3, e2) {
        var i2 = this.w, a2 = i2.globals, s2 = Math.abs(e2 - t3);
        return e2 !== -Number.MAX_VALUE && x.isNumber(e2) ? a2.xAxisScale = this.linearScale(t3, e2, i2.config.xaxis.tickAmount ? i2.config.xaxis.tickAmount : s2 < 5 && s2 > 1 ? s2 + 1 : 5, 0, i2.config.xaxis.stepSize) : a2.xAxisScale = this.linearScale(0, 5, 5), a2.xAxisScale;
      } }, { key: "setMultipleYScales", value: function() {
        var t3 = this, e2 = this.w.globals, i2 = this.w.config, a2 = e2.minYArr.concat([]), s2 = e2.maxYArr.concat([]), r2 = [];
        i2.yaxis.forEach(function(e3, o2) {
          var n2 = o2;
          i2.series.forEach(function(t4, i3) {
            t4.name === e3.seriesName && (n2 = i3, o2 !== i3 ? r2.push({ index: i3, similarIndex: o2, alreadyExists: true }) : r2.push({ index: i3 }));
          });
          var l2 = a2[n2], h2 = s2[n2];
          t3.setYScaleForIndex(o2, l2, h2);
        }), this.sameScaleInMultipleAxes(a2, s2, r2);
      } }, { key: "sameScaleInMultipleAxes", value: function(t3, e2, i2) {
        var a2 = this, s2 = this.w.config, r2 = this.w.globals, o2 = [];
        i2.forEach(function(t4) {
          t4.alreadyExists && (void 0 === o2[t4.index] && (o2[t4.index] = []), o2[t4.index].push(t4.index), o2[t4.index].push(t4.similarIndex));
        }), r2.yAxisSameScaleIndices = o2, o2.forEach(function(t4, e3) {
          o2.forEach(function(i3, a3) {
            var s3, r3;
            e3 !== a3 && (s3 = t4, r3 = i3, s3.filter(function(t5) {
              return -1 !== r3.indexOf(t5);
            })).length > 0 && (o2[e3] = o2[e3].concat(o2[a3]));
          });
        });
        var n2 = o2.map(function(t4) {
          return t4.filter(function(e3, i3) {
            return t4.indexOf(e3) === i3;
          });
        }).map(function(t4) {
          return t4.sort();
        });
        o2 = o2.filter(function(t4) {
          return !!t4;
        });
        var l2 = n2.slice(), h2 = l2.map(function(t4) {
          return JSON.stringify(t4);
        });
        l2 = l2.filter(function(t4, e3) {
          return h2.indexOf(JSON.stringify(t4)) === e3;
        });
        var c2 = [], d2 = [];
        t3.forEach(function(t4, i3) {
          l2.forEach(function(a3, s3) {
            a3.indexOf(i3) > -1 && (void 0 === c2[s3] && (c2[s3] = [], d2[s3] = []), c2[s3].push({ key: i3, value: t4 }), d2[s3].push({ key: i3, value: e2[i3] }));
          });
        });
        var g2 = Array.apply(null, Array(l2.length)).map(Number.prototype.valueOf, Number.MIN_VALUE), u2 = Array.apply(null, Array(l2.length)).map(Number.prototype.valueOf, -Number.MAX_VALUE);
        c2.forEach(function(t4, e3) {
          t4.forEach(function(t5, i3) {
            g2[e3] = Math.min(t5.value, g2[e3]);
          });
        }), d2.forEach(function(t4, e3) {
          t4.forEach(function(t5, i3) {
            u2[e3] = Math.max(t5.value, u2[e3]);
          });
        }), t3.forEach(function(t4, e3) {
          d2.forEach(function(t5, i3) {
            var o3 = g2[i3], n3 = u2[i3];
            s2.chart.stacked && (n3 = 0, t5.forEach(function(t6, e4) {
              t6.value !== -Number.MAX_VALUE && (n3 += t6.value), o3 !== Number.MIN_VALUE && (o3 += c2[i3][e4].value);
            })), t5.forEach(function(i4, l3) {
              t5[l3].key === e3 && (void 0 !== s2.yaxis[e3].min && (o3 = "function" == typeof s2.yaxis[e3].min ? s2.yaxis[e3].min(r2.minY) : s2.yaxis[e3].min), void 0 !== s2.yaxis[e3].max && (n3 = "function" == typeof s2.yaxis[e3].max ? s2.yaxis[e3].max(r2.maxY) : s2.yaxis[e3].max), a2.setYScaleForIndex(e3, o3, n3));
            });
          });
        });
      } }, { key: "autoScaleY", value: function(t3, e2, i2) {
        t3 || (t3 = this);
        var a2 = t3.w;
        if (a2.globals.isMultipleYAxis || a2.globals.collapsedSeries.length)
          return console.warn("autoScaleYaxis not supported in a multi-yaxis chart."), e2;
        var s2 = a2.globals.seriesX[0], r2 = a2.config.chart.stacked;
        return e2.forEach(function(t4, o2) {
          for (var n2 = 0, l2 = 0; l2 < s2.length; l2++)
            if (s2[l2] >= i2.xaxis.min) {
              n2 = l2;
              break;
            }
          var h2, c2, d2 = a2.globals.minYArr[o2], g2 = a2.globals.maxYArr[o2], u2 = a2.globals.stackedSeriesTotals;
          a2.globals.series.forEach(function(o3, l3) {
            var p2 = o3[n2];
            r2 ? (p2 = u2[n2], h2 = c2 = p2, u2.forEach(function(t5, e3) {
              s2[e3] <= i2.xaxis.max && s2[e3] >= i2.xaxis.min && (t5 > c2 && null !== t5 && (c2 = t5), o3[e3] < h2 && null !== o3[e3] && (h2 = o3[e3]));
            })) : (h2 = c2 = p2, o3.forEach(function(t5, e3) {
              if (s2[e3] <= i2.xaxis.max && s2[e3] >= i2.xaxis.min) {
                var r3 = t5, o4 = t5;
                a2.globals.series.forEach(function(i3, a3) {
                  null !== t5 && (r3 = Math.min(i3[e3], r3), o4 = Math.max(i3[e3], o4));
                }), o4 > c2 && null !== o4 && (c2 = o4), r3 < h2 && null !== r3 && (h2 = r3);
              }
            })), void 0 === h2 && void 0 === c2 && (h2 = d2, c2 = g2), c2 *= c2 < 0 ? 0.9 : 1.1, 0 === (h2 *= h2 < 0 ? 1.1 : 0.9) && 0 === c2 && (h2 = -1, c2 = 1), c2 < 0 && c2 < g2 && (c2 = g2), h2 < 0 && h2 > d2 && (h2 = d2), e2.length > 1 ? (e2[l3].min = void 0 === t4.min ? h2 : t4.min, e2[l3].max = void 0 === t4.max ? c2 : t4.max) : (e2[0].min = void 0 === t4.min ? h2 : t4.min, e2[0].max = void 0 === t4.max ? c2 : t4.max);
          });
        }), e2;
      } }]), t2;
    }();
    var U = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.scales = new _(e2);
      }
      return r(t2, [{ key: "init", value: function() {
        this.setYRange(), this.setXRange(), this.setZRange();
      } }, { key: "getMinYMaxY", value: function(t3) {
        var e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Number.MAX_VALUE, i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : -Number.MAX_VALUE, a2 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null, s2 = this.w.config, r2 = this.w.globals, o2 = -Number.MAX_VALUE, n2 = Number.MIN_VALUE;
        null === a2 && (a2 = t3 + 1);
        var l2 = r2.series, h2 = l2, c2 = l2;
        "candlestick" === s2.chart.type ? (h2 = r2.seriesCandleL, c2 = r2.seriesCandleH) : "boxPlot" === s2.chart.type ? (h2 = r2.seriesCandleO, c2 = r2.seriesCandleC) : r2.isRangeData && (h2 = r2.seriesRangeStart, c2 = r2.seriesRangeEnd);
        for (var d2 = t3; d2 < a2; d2++) {
          r2.dataPoints = Math.max(r2.dataPoints, l2[d2].length), r2.categoryLabels.length && (r2.dataPoints = r2.categoryLabels.filter(function(t4) {
            return void 0 !== t4;
          }).length), r2.labels.length && "datetime" !== s2.xaxis.type && 0 !== r2.series.reduce(function(t4, e3) {
            return t4 + e3.length;
          }, 0) && (r2.dataPoints = Math.max(r2.dataPoints, r2.labels.length));
          for (var g2 = 0; g2 < r2.series[d2].length; g2++) {
            var u2 = l2[d2][g2];
            null !== u2 && x.isNumber(u2) ? (void 0 !== c2[d2][g2] && (o2 = Math.max(o2, c2[d2][g2]), e2 = Math.min(e2, c2[d2][g2])), void 0 !== h2[d2][g2] && (e2 = Math.min(e2, h2[d2][g2]), i2 = Math.max(i2, h2[d2][g2])), "candlestick" !== this.w.config.chart.type && "boxPlot" !== this.w.config.chart.type && "rangeArea" === this.w.config.chart.type && "rangeBar" === this.w.config.chart.type || ("candlestick" !== this.w.config.chart.type && "boxPlot" !== this.w.config.chart.type || void 0 !== r2.seriesCandleC[d2][g2] && (o2 = Math.max(o2, r2.seriesCandleO[d2][g2]), o2 = Math.max(o2, r2.seriesCandleH[d2][g2]), o2 = Math.max(o2, r2.seriesCandleL[d2][g2]), o2 = Math.max(o2, r2.seriesCandleC[d2][g2]), "boxPlot" === this.w.config.chart.type && (o2 = Math.max(o2, r2.seriesCandleM[d2][g2]))), !s2.series[d2].type || "candlestick" === s2.series[d2].type && "boxPlot" === s2.series[d2].type && "rangeArea" === s2.series[d2].type && "rangeBar" === s2.series[d2].type || (o2 = Math.max(o2, r2.series[d2][g2]), e2 = Math.min(e2, r2.series[d2][g2])), i2 = o2), r2.seriesGoals[d2] && r2.seriesGoals[d2][g2] && Array.isArray(r2.seriesGoals[d2][g2]) && r2.seriesGoals[d2][g2].forEach(function(t4) {
              n2 !== Number.MIN_VALUE && (n2 = Math.min(n2, t4.value), e2 = n2), o2 = Math.max(o2, t4.value), i2 = o2;
            }), x.isFloat(u2) && (u2 = x.noExponents(u2), r2.yValueDecimal = Math.max(r2.yValueDecimal, u2.toString().split(".")[1].length)), n2 > h2[d2][g2] && h2[d2][g2] < 0 && (n2 = h2[d2][g2])) : r2.hasNullValues = true;
          }
        }
        return "rangeBar" === s2.chart.type && r2.seriesRangeStart.length && r2.isBarHorizontal && (n2 = e2), "bar" === s2.chart.type && (n2 < 0 && o2 < 0 && (o2 = 0), n2 === Number.MIN_VALUE && (n2 = 0)), { minY: n2, maxY: o2, lowestY: e2, highestY: i2 };
      } }, { key: "setYRange", value: function() {
        var t3 = this.w.globals, e2 = this.w.config;
        t3.maxY = -Number.MAX_VALUE, t3.minY = Number.MIN_VALUE;
        var i2 = Number.MAX_VALUE;
        if (t3.isMultipleYAxis)
          for (var a2 = 0; a2 < t3.series.length; a2++) {
            var s2 = this.getMinYMaxY(a2, i2, null, a2 + 1);
            t3.minYArr.push(s2.minY), t3.maxYArr.push(s2.maxY), i2 = s2.lowestY;
          }
        var r2 = this.getMinYMaxY(0, i2, null, t3.series.length);
        if (t3.minY = r2.minY, t3.maxY = r2.maxY, i2 = r2.lowestY, e2.chart.stacked && this._setStackedMinMax(), ("line" === e2.chart.type || "area" === e2.chart.type || "candlestick" === e2.chart.type || "boxPlot" === e2.chart.type || "rangeBar" === e2.chart.type && !t3.isBarHorizontal) && t3.minY === Number.MIN_VALUE && i2 !== -Number.MAX_VALUE && i2 !== t3.maxY) {
          var o2 = t3.maxY - i2;
          (i2 >= 0 && i2 <= 10 || void 0 !== e2.yaxis[0].min || void 0 !== e2.yaxis[0].max) && (o2 = 0), t3.minY = i2 - 5 * o2 / 100, i2 > 0 && t3.minY < 0 && (t3.minY = 0), t3.maxY = t3.maxY + 5 * o2 / 100;
        }
        if (e2.yaxis.forEach(function(e3, i3) {
          void 0 !== e3.max && ("number" == typeof e3.max ? t3.maxYArr[i3] = e3.max : "function" == typeof e3.max && (t3.maxYArr[i3] = e3.max(t3.isMultipleYAxis ? t3.maxYArr[i3] : t3.maxY)), t3.maxY = t3.maxYArr[i3]), void 0 !== e3.min && ("number" == typeof e3.min ? t3.minYArr[i3] = e3.min : "function" == typeof e3.min && (t3.minYArr[i3] = e3.min(t3.isMultipleYAxis ? t3.minYArr[i3] === Number.MIN_VALUE ? 0 : t3.minYArr[i3] : t3.minY)), t3.minY = t3.minYArr[i3]);
        }), t3.isBarHorizontal) {
          ["min", "max"].forEach(function(i3) {
            void 0 !== e2.xaxis[i3] && "number" == typeof e2.xaxis[i3] && ("min" === i3 ? t3.minY = e2.xaxis[i3] : t3.maxY = e2.xaxis[i3]);
          });
        }
        return t3.isMultipleYAxis ? (this.scales.setMultipleYScales(), t3.minY = i2, t3.yAxisScale.forEach(function(e3, i3) {
          t3.minYArr[i3] = e3.niceMin, t3.maxYArr[i3] = e3.niceMax;
        })) : (this.scales.setYScaleForIndex(0, t3.minY, t3.maxY), t3.minY = t3.yAxisScale[0].niceMin, t3.maxY = t3.yAxisScale[0].niceMax, t3.minYArr[0] = t3.yAxisScale[0].niceMin, t3.maxYArr[0] = t3.yAxisScale[0].niceMax), { minY: t3.minY, maxY: t3.maxY, minYArr: t3.minYArr, maxYArr: t3.maxYArr, yAxisScale: t3.yAxisScale };
      } }, { key: "setXRange", value: function() {
        var t3 = this.w.globals, e2 = this.w.config, i2 = "numeric" === e2.xaxis.type || "datetime" === e2.xaxis.type || "category" === e2.xaxis.type && !t3.noLabelsProvided || t3.noLabelsProvided || t3.isXNumeric;
        if (t3.isXNumeric && function() {
          for (var e3 = 0; e3 < t3.series.length; e3++)
            if (t3.labels[e3])
              for (var i3 = 0; i3 < t3.labels[e3].length; i3++)
                null !== t3.labels[e3][i3] && x.isNumber(t3.labels[e3][i3]) && (t3.maxX = Math.max(t3.maxX, t3.labels[e3][i3]), t3.initialMaxX = Math.max(t3.maxX, t3.labels[e3][i3]), t3.minX = Math.min(t3.minX, t3.labels[e3][i3]), t3.initialMinX = Math.min(t3.minX, t3.labels[e3][i3]));
        }(), t3.noLabelsProvided && 0 === e2.xaxis.categories.length && (t3.maxX = t3.labels[t3.labels.length - 1], t3.initialMaxX = t3.labels[t3.labels.length - 1], t3.minX = 1, t3.initialMinX = 1), t3.isXNumeric || t3.noLabelsProvided || t3.dataFormatXNumeric) {
          var a2;
          if (void 0 === e2.xaxis.tickAmount ? (a2 = Math.round(t3.svgWidth / 150), "numeric" === e2.xaxis.type && t3.dataPoints < 30 && (a2 = t3.dataPoints - 1), a2 > t3.dataPoints && 0 !== t3.dataPoints && (a2 = t3.dataPoints - 1)) : "dataPoints" === e2.xaxis.tickAmount ? (t3.series.length > 1 && (a2 = t3.series[t3.maxValsInArrayIndex].length - 1), t3.isXNumeric && (a2 = t3.maxX - t3.minX - 1)) : a2 = e2.xaxis.tickAmount, t3.xTickAmount = a2, void 0 !== e2.xaxis.max && "number" == typeof e2.xaxis.max && (t3.maxX = e2.xaxis.max), void 0 !== e2.xaxis.min && "number" == typeof e2.xaxis.min && (t3.minX = e2.xaxis.min), void 0 !== e2.xaxis.range && (t3.minX = t3.maxX - e2.xaxis.range), t3.minX !== Number.MAX_VALUE && t3.maxX !== -Number.MAX_VALUE)
            if (e2.xaxis.convertedCatToNumeric && !t3.dataFormatXNumeric) {
              for (var s2 = [], r2 = t3.minX - 1; r2 < t3.maxX; r2++)
                s2.push(r2 + 1);
              t3.xAxisScale = { result: s2, niceMin: s2[0], niceMax: s2[s2.length - 1] };
            } else
              t3.xAxisScale = this.scales.setXScale(t3.minX, t3.maxX);
          else
            t3.xAxisScale = this.scales.linearScale(0, a2, a2, 0, e2.xaxis.stepSize), t3.noLabelsProvided && t3.labels.length > 0 && (t3.xAxisScale = this.scales.linearScale(1, t3.labels.length, a2 - 1, 0, e2.xaxis.stepSize), t3.seriesX = t3.labels.slice());
          i2 && (t3.labels = t3.xAxisScale.result.slice());
        }
        return t3.isBarHorizontal && t3.labels.length && (t3.xTickAmount = t3.labels.length), this._handleSingleDataPoint(), this._getMinXDiff(), { minX: t3.minX, maxX: t3.maxX };
      } }, { key: "setZRange", value: function() {
        var t3 = this.w.globals;
        if (t3.isDataXYZ) {
          for (var e2 = 0; e2 < t3.series.length; e2++)
            if (void 0 !== t3.seriesZ[e2])
              for (var i2 = 0; i2 < t3.seriesZ[e2].length; i2++)
                null !== t3.seriesZ[e2][i2] && x.isNumber(t3.seriesZ[e2][i2]) && (t3.maxZ = Math.max(t3.maxZ, t3.seriesZ[e2][i2]), t3.minZ = Math.min(t3.minZ, t3.seriesZ[e2][i2]));
        }
      } }, { key: "_handleSingleDataPoint", value: function() {
        var t3 = this.w.globals, e2 = this.w.config;
        if (t3.minX === t3.maxX) {
          var i2 = new I(this.ctx);
          if ("datetime" === e2.xaxis.type) {
            var a2 = i2.getDate(t3.minX);
            e2.xaxis.labels.datetimeUTC ? a2.setUTCDate(a2.getUTCDate() - 2) : a2.setDate(a2.getDate() - 2), t3.minX = new Date(a2).getTime();
            var s2 = i2.getDate(t3.maxX);
            e2.xaxis.labels.datetimeUTC ? s2.setUTCDate(s2.getUTCDate() + 2) : s2.setDate(s2.getDate() + 2), t3.maxX = new Date(s2).getTime();
          } else
            ("numeric" === e2.xaxis.type || "category" === e2.xaxis.type && !t3.noLabelsProvided) && (t3.minX = t3.minX - 2, t3.initialMinX = t3.minX, t3.maxX = t3.maxX + 2, t3.initialMaxX = t3.maxX);
        }
      } }, { key: "_getMinXDiff", value: function() {
        var t3 = this.w.globals;
        t3.isXNumeric && t3.seriesX.forEach(function(e2, i2) {
          1 === e2.length && e2.push(t3.seriesX[t3.maxValsInArrayIndex][t3.seriesX[t3.maxValsInArrayIndex].length - 1]);
          var a2 = e2.slice();
          a2.sort(function(t4, e3) {
            return t4 - e3;
          }), a2.forEach(function(e3, i3) {
            if (i3 > 0) {
              var s2 = e3 - a2[i3 - 1];
              s2 > 0 && (t3.minXDiff = Math.min(s2, t3.minXDiff));
            }
          }), 1 !== t3.dataPoints && t3.minXDiff !== Number.MAX_VALUE || (t3.minXDiff = 0.5);
        });
      } }, { key: "_setStackedMinMax", value: function() {
        var t3 = this, e2 = this.w.globals;
        if (e2.series.length) {
          var i2 = e2.seriesGroups;
          i2.length || (i2 = [this.w.config.series.map(function(t4) {
            return t4.name;
          })]);
          var a2 = {}, s2 = {};
          i2.forEach(function(i3) {
            a2[i3] = [], s2[i3] = [], t3.w.config.series.map(function(t4, e3) {
              return i3.indexOf(t4.name) > -1 ? e3 : null;
            }).filter(function(t4) {
              return null !== t4;
            }).forEach(function(r2) {
              for (var o2 = 0; o2 < e2.series[e2.maxValsInArrayIndex].length; o2++) {
                var n2, l2;
                void 0 === a2[i3][o2] && (a2[i3][o2] = 0, s2[i3][o2] = 0), (t3.w.config.chart.stacked && !e2.comboCharts || t3.w.config.chart.stacked && e2.comboCharts && (!t3.w.config.chart.stackOnlyBar || "bar" === (null === (n2 = t3.w.config.series) || void 0 === n2 || null === (l2 = n2[r2]) || void 0 === l2 ? void 0 : l2.type))) && null !== e2.series[r2][o2] && x.isNumber(e2.series[r2][o2]) && (e2.series[r2][o2] > 0 ? a2[i3][o2] += parseFloat(e2.series[r2][o2]) + 1e-4 : s2[i3][o2] += parseFloat(e2.series[r2][o2]));
              }
            });
          }), Object.entries(a2).forEach(function(t4) {
            var i3 = g(t4, 1)[0];
            a2[i3].forEach(function(t5, r2) {
              e2.maxY = Math.max(e2.maxY, a2[i3][r2]), e2.minY = Math.min(e2.minY, s2[i3][r2]);
            });
          });
        }
      } }]), t2;
    }();
    var q = function() {
      function t2(e2, i2) {
        a(this, t2), this.ctx = e2, this.elgrid = i2, this.w = e2.w;
        var s2 = this.w;
        this.xaxisFontSize = s2.config.xaxis.labels.style.fontSize, this.axisFontFamily = s2.config.xaxis.labels.style.fontFamily, this.xaxisForeColors = s2.config.xaxis.labels.style.colors, this.isCategoryBarHorizontal = "bar" === s2.config.chart.type && s2.config.plotOptions.bar.horizontal, this.xAxisoffX = 0, "bottom" === s2.config.xaxis.position && (this.xAxisoffX = s2.globals.gridHeight), this.drawnLabels = [], this.axesUtils = new B(e2);
      }
      return r(t2, [{ key: "drawYaxis", value: function(t3) {
        var e2 = this, i2 = this.w, a2 = new m(this.ctx), s2 = i2.config.yaxis[t3].labels.style, r2 = s2.fontSize, o2 = s2.fontFamily, n2 = s2.fontWeight, l2 = a2.group({ class: "apexcharts-yaxis", rel: t3, transform: "translate(" + i2.globals.translateYAxisX[t3] + ", 0)" });
        if (this.axesUtils.isYAxisHidden(t3))
          return l2;
        var h2 = a2.group({ class: "apexcharts-yaxis-texts-g" });
        l2.add(h2);
        var c2 = i2.globals.yAxisScale[t3].result.length - 1, d2 = i2.globals.gridHeight / c2, g2 = i2.globals.translateY, u2 = i2.globals.yLabelFormatters[t3], p2 = i2.globals.yAxisScale[t3].result.slice();
        p2 = this.axesUtils.checkForReversedLabels(t3, p2);
        var f2 = "";
        if (i2.config.yaxis[t3].labels.show)
          for (var x2 = function(l3) {
            var x3 = p2[l3];
            x3 = u2(x3, l3, i2);
            var b3 = i2.config.yaxis[t3].labels.padding;
            i2.config.yaxis[t3].opposite && 0 !== i2.config.yaxis.length && (b3 *= -1);
            var v3 = "end";
            i2.config.yaxis[t3].opposite && (v3 = "start"), "left" === i2.config.yaxis[t3].labels.align ? v3 = "start" : "center" === i2.config.yaxis[t3].labels.align ? v3 = "middle" : "right" === i2.config.yaxis[t3].labels.align && (v3 = "end");
            var m2 = e2.axesUtils.getYAxisForeColor(s2.colors, t3), y3 = i2.config.yaxis[t3].labels.offsetY;
            "heatmap" === i2.config.chart.type && (y3 -= (i2.globals.gridHeight / i2.globals.series.length - 1) / 2);
            var w3 = a2.drawText({ x: b3, y: g2 + c2 / 10 + y3 + 1, text: x3, textAnchor: v3, fontSize: r2, fontFamily: o2, fontWeight: n2, maxWidth: i2.config.yaxis[t3].labels.maxWidth, foreColor: Array.isArray(m2) ? m2[l3] : m2, isPlainText: false, cssClass: "apexcharts-yaxis-label " + s2.cssClass });
            l3 === c2 && (f2 = w3), h2.add(w3);
            var k3 = document.createElementNS(i2.globals.SVGNS, "title");
            if (k3.textContent = Array.isArray(x3) ? x3.join(" ") : x3, w3.node.appendChild(k3), 0 !== i2.config.yaxis[t3].labels.rotate) {
              var A4 = a2.rotateAroundCenter(f2.node), S3 = a2.rotateAroundCenter(w3.node);
              w3.node.setAttribute("transform", "rotate(".concat(i2.config.yaxis[t3].labels.rotate, " ").concat(A4.x, " ").concat(S3.y, ")"));
            }
            g2 += d2;
          }, b2 = c2; b2 >= 0; b2--)
            x2(b2);
        if (void 0 !== i2.config.yaxis[t3].title.text) {
          var v2 = a2.group({ class: "apexcharts-yaxis-title" }), y2 = 0;
          i2.config.yaxis[t3].opposite && (y2 = i2.globals.translateYAxisX[t3]);
          var w2 = a2.drawText({ x: y2, y: i2.globals.gridHeight / 2 + i2.globals.translateY + i2.config.yaxis[t3].title.offsetY, text: i2.config.yaxis[t3].title.text, textAnchor: "end", foreColor: i2.config.yaxis[t3].title.style.color, fontSize: i2.config.yaxis[t3].title.style.fontSize, fontWeight: i2.config.yaxis[t3].title.style.fontWeight, fontFamily: i2.config.yaxis[t3].title.style.fontFamily, cssClass: "apexcharts-yaxis-title-text " + i2.config.yaxis[t3].title.style.cssClass });
          v2.add(w2), l2.add(v2);
        }
        var k2 = i2.config.yaxis[t3].axisBorder, A3 = 31 + k2.offsetX;
        if (i2.config.yaxis[t3].opposite && (A3 = -31 - k2.offsetX), k2.show) {
          var S2 = a2.drawLine(A3, i2.globals.translateY + k2.offsetY - 2, A3, i2.globals.gridHeight + i2.globals.translateY + k2.offsetY + 2, k2.color, 0, k2.width);
          l2.add(S2);
        }
        return i2.config.yaxis[t3].axisTicks.show && this.axesUtils.drawYAxisTicks(A3, c2, k2, i2.config.yaxis[t3].axisTicks, t3, d2, l2), l2;
      } }, { key: "drawYaxisInversed", value: function(t3) {
        var e2 = this.w, i2 = new m(this.ctx), a2 = i2.group({ class: "apexcharts-xaxis apexcharts-yaxis-inversed" }), s2 = i2.group({ class: "apexcharts-xaxis-texts-g", transform: "translate(".concat(e2.globals.translateXAxisX, ", ").concat(e2.globals.translateXAxisY, ")") });
        a2.add(s2);
        var r2 = e2.globals.yAxisScale[t3].result.length - 1, o2 = e2.globals.gridWidth / r2 + 0.1, n2 = o2 + e2.config.xaxis.labels.offsetX, l2 = e2.globals.xLabelFormatter, h2 = e2.globals.yAxisScale[t3].result.slice(), c2 = e2.globals.timescaleLabels;
        c2.length > 0 && (this.xaxisLabels = c2.slice(), r2 = (h2 = c2.slice()).length), h2 = this.axesUtils.checkForReversedLabels(t3, h2);
        var d2 = c2.length;
        if (e2.config.xaxis.labels.show)
          for (var g2 = d2 ? 0 : r2; d2 ? g2 < d2 : g2 >= 0; d2 ? g2++ : g2--) {
            var u2 = h2[g2];
            u2 = l2(u2, g2, e2);
            var p2 = e2.globals.gridWidth + e2.globals.padHorizontal - (n2 - o2 + e2.config.xaxis.labels.offsetX);
            if (c2.length) {
              var f2 = this.axesUtils.getLabel(h2, c2, p2, g2, this.drawnLabels, this.xaxisFontSize);
              p2 = f2.x, u2 = f2.text, this.drawnLabels.push(f2.text), 0 === g2 && e2.globals.skipFirstTimelinelabel && (u2 = ""), g2 === h2.length - 1 && e2.globals.skipLastTimelinelabel && (u2 = "");
            }
            var x2 = i2.drawText({ x: p2, y: this.xAxisoffX + e2.config.xaxis.labels.offsetY + 30 - ("top" === e2.config.xaxis.position ? e2.globals.xAxisHeight + e2.config.xaxis.axisTicks.height - 2 : 0), text: u2, textAnchor: "middle", foreColor: Array.isArray(this.xaxisForeColors) ? this.xaxisForeColors[t3] : this.xaxisForeColors, fontSize: this.xaxisFontSize, fontFamily: this.xaxisFontFamily, fontWeight: e2.config.xaxis.labels.style.fontWeight, isPlainText: false, cssClass: "apexcharts-xaxis-label " + e2.config.xaxis.labels.style.cssClass });
            s2.add(x2), x2.tspan(u2);
            var b2 = document.createElementNS(e2.globals.SVGNS, "title");
            b2.textContent = u2, x2.node.appendChild(b2), n2 += o2;
          }
        return this.inversedYAxisTitleText(a2), this.inversedYAxisBorder(a2), a2;
      } }, { key: "inversedYAxisBorder", value: function(t3) {
        var e2 = this.w, i2 = new m(this.ctx), a2 = e2.config.xaxis.axisBorder;
        if (a2.show) {
          var s2 = 0;
          "bar" === e2.config.chart.type && e2.globals.isXNumeric && (s2 -= 15);
          var r2 = i2.drawLine(e2.globals.padHorizontal + s2 + a2.offsetX, this.xAxisoffX, e2.globals.gridWidth, this.xAxisoffX, a2.color, 0, a2.height);
          this.elgrid && this.elgrid.elGridBorders && e2.config.grid.show ? this.elgrid.elGridBorders.add(r2) : t3.add(r2);
        }
      } }, { key: "inversedYAxisTitleText", value: function(t3) {
        var e2 = this.w, i2 = new m(this.ctx);
        if (void 0 !== e2.config.xaxis.title.text) {
          var a2 = i2.group({ class: "apexcharts-xaxis-title apexcharts-yaxis-title-inversed" }), s2 = i2.drawText({ x: e2.globals.gridWidth / 2 + e2.config.xaxis.title.offsetX, y: this.xAxisoffX + parseFloat(this.xaxisFontSize) + parseFloat(e2.config.xaxis.title.style.fontSize) + e2.config.xaxis.title.offsetY + 20, text: e2.config.xaxis.title.text, textAnchor: "middle", fontSize: e2.config.xaxis.title.style.fontSize, fontFamily: e2.config.xaxis.title.style.fontFamily, fontWeight: e2.config.xaxis.title.style.fontWeight, foreColor: e2.config.xaxis.title.style.color, cssClass: "apexcharts-xaxis-title-text " + e2.config.xaxis.title.style.cssClass });
          a2.add(s2), t3.add(a2);
        }
      } }, { key: "yAxisTitleRotate", value: function(t3, e2) {
        var i2 = this.w, a2 = new m(this.ctx), s2 = { width: 0, height: 0 }, r2 = { width: 0, height: 0 }, o2 = i2.globals.dom.baseEl.querySelector(" .apexcharts-yaxis[rel='".concat(t3, "'] .apexcharts-yaxis-texts-g"));
        null !== o2 && (s2 = o2.getBoundingClientRect());
        var n2 = i2.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(t3, "'] .apexcharts-yaxis-title text"));
        if (null !== n2 && (r2 = n2.getBoundingClientRect()), null !== n2) {
          var l2 = this.xPaddingForYAxisTitle(t3, s2, r2, e2);
          n2.setAttribute("x", l2.xPos - (e2 ? 10 : 0));
        }
        if (null !== n2) {
          var h2 = a2.rotateAroundCenter(n2);
          n2.setAttribute("transform", "rotate(".concat(e2 ? -1 * i2.config.yaxis[t3].title.rotate : i2.config.yaxis[t3].title.rotate, " ").concat(h2.x, " ").concat(h2.y, ")"));
        }
      } }, { key: "xPaddingForYAxisTitle", value: function(t3, e2, i2, a2) {
        var s2 = this.w, r2 = 0, o2 = 0, n2 = 10;
        return void 0 === s2.config.yaxis[t3].title.text || t3 < 0 ? { xPos: o2, padd: 0 } : (a2 ? (o2 = e2.width + s2.config.yaxis[t3].title.offsetX + i2.width / 2 + n2 / 2, 0 === (r2 += 1) && (o2 -= n2 / 2)) : (o2 = -1 * e2.width + s2.config.yaxis[t3].title.offsetX + n2 / 2 + i2.width / 2, s2.globals.isBarHorizontal && (n2 = 25, o2 = -1 * e2.width - s2.config.yaxis[t3].title.offsetX - n2)), { xPos: o2, padd: n2 });
      } }, { key: "setYAxisXPosition", value: function(t3, e2) {
        var i2 = this.w, a2 = 0, s2 = 0, r2 = 18, o2 = 1;
        i2.config.yaxis.length > 1 && (this.multipleYs = true), i2.config.yaxis.map(function(n2, l2) {
          var h2 = i2.globals.ignoreYAxisIndexes.indexOf(l2) > -1 || !n2.show || n2.floating || 0 === t3[l2].width, c2 = t3[l2].width + e2[l2].width;
          n2.opposite ? i2.globals.isBarHorizontal ? (s2 = i2.globals.gridWidth + i2.globals.translateX - 1, i2.globals.translateYAxisX[l2] = s2 - n2.labels.offsetX) : (s2 = i2.globals.gridWidth + i2.globals.translateX + o2, h2 || (o2 = o2 + c2 + 20), i2.globals.translateYAxisX[l2] = s2 - n2.labels.offsetX + 20) : (a2 = i2.globals.translateX - r2, h2 || (r2 = r2 + c2 + 20), i2.globals.translateYAxisX[l2] = a2 + n2.labels.offsetX);
        });
      } }, { key: "setYAxisTextAlignments", value: function() {
        var t3 = this.w, e2 = t3.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis");
        (e2 = x.listToArray(e2)).forEach(function(e3, i2) {
          var a2 = t3.config.yaxis[i2];
          if (a2 && !a2.floating && void 0 !== a2.labels.align) {
            var s2 = t3.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(i2, "'] .apexcharts-yaxis-texts-g")), r2 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(i2, "'] .apexcharts-yaxis-label"));
            r2 = x.listToArray(r2);
            var o2 = s2.getBoundingClientRect();
            "left" === a2.labels.align ? (r2.forEach(function(t4, e4) {
              t4.setAttribute("text-anchor", "start");
            }), a2.opposite || s2.setAttribute("transform", "translate(-".concat(o2.width, ", 0)"))) : "center" === a2.labels.align ? (r2.forEach(function(t4, e4) {
              t4.setAttribute("text-anchor", "middle");
            }), s2.setAttribute("transform", "translate(".concat(o2.width / 2 * (a2.opposite ? 1 : -1), ", 0)"))) : "right" === a2.labels.align && (r2.forEach(function(t4, e4) {
              t4.setAttribute("text-anchor", "end");
            }), a2.opposite && s2.setAttribute("transform", "translate(".concat(o2.width, ", 0)")));
          }
        });
      } }]), t2;
    }();
    var Z2 = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.documentEvent = x.bind(this.documentEvent, this);
      }
      return r(t2, [{ key: "addEventListener", value: function(t3, e2) {
        var i2 = this.w;
        i2.globals.events.hasOwnProperty(t3) ? i2.globals.events[t3].push(e2) : i2.globals.events[t3] = [e2];
      } }, { key: "removeEventListener", value: function(t3, e2) {
        var i2 = this.w;
        if (i2.globals.events.hasOwnProperty(t3)) {
          var a2 = i2.globals.events[t3].indexOf(e2);
          -1 !== a2 && i2.globals.events[t3].splice(a2, 1);
        }
      } }, { key: "fireEvent", value: function(t3, e2) {
        var i2 = this.w;
        if (i2.globals.events.hasOwnProperty(t3)) {
          e2 && e2.length || (e2 = []);
          for (var a2 = i2.globals.events[t3], s2 = a2.length, r2 = 0; r2 < s2; r2++)
            a2[r2].apply(null, e2);
        }
      } }, { key: "setupEventHandlers", value: function() {
        var t3 = this, e2 = this.w, i2 = this.ctx, a2 = e2.globals.dom.baseEl.querySelector(e2.globals.chartClass);
        this.ctx.eventList.forEach(function(t4) {
          a2.addEventListener(t4, function(t5) {
            var a3 = Object.assign({}, e2, { seriesIndex: e2.globals.capturedSeriesIndex, dataPointIndex: e2.globals.capturedDataPointIndex });
            "mousemove" === t5.type || "touchmove" === t5.type ? "function" == typeof e2.config.chart.events.mouseMove && e2.config.chart.events.mouseMove(t5, i2, a3) : "mouseleave" === t5.type || "touchleave" === t5.type ? "function" == typeof e2.config.chart.events.mouseLeave && e2.config.chart.events.mouseLeave(t5, i2, a3) : ("mouseup" === t5.type && 1 === t5.which || "touchend" === t5.type) && ("function" == typeof e2.config.chart.events.click && e2.config.chart.events.click(t5, i2, a3), i2.ctx.events.fireEvent("click", [t5, i2, a3]));
          }, { capture: false, passive: true });
        }), this.ctx.eventList.forEach(function(i3) {
          e2.globals.dom.baseEl.addEventListener(i3, t3.documentEvent, { passive: true });
        }), this.ctx.core.setupBrushHandler();
      } }, { key: "documentEvent", value: function(t3) {
        var e2 = this.w, i2 = t3.target.className;
        if ("click" === t3.type) {
          var a2 = e2.globals.dom.baseEl.querySelector(".apexcharts-menu");
          a2 && a2.classList.contains("apexcharts-menu-open") && "apexcharts-menu-icon" !== i2 && a2.classList.remove("apexcharts-menu-open");
        }
        e2.globals.clientX = "touchmove" === t3.type ? t3.touches[0].clientX : t3.clientX, e2.globals.clientY = "touchmove" === t3.type ? t3.touches[0].clientY : t3.clientY;
      } }]), t2;
    }();
    var $ = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "setCurrentLocaleValues", value: function(t3) {
        var e2 = this.w.config.chart.locales;
        window.Apex.chart && window.Apex.chart.locales && window.Apex.chart.locales.length > 0 && (e2 = this.w.config.chart.locales.concat(window.Apex.chart.locales));
        var i2 = e2.filter(function(e3) {
          return e3.name === t3;
        })[0];
        if (!i2)
          throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");
        var a2 = x.extend(C, i2);
        this.w.globals.locale = a2.options;
      } }]), t2;
    }();
    var J = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "drawAxis", value: function(t3, e2) {
        var i2, a2, s2 = this, r2 = this.w.globals, o2 = this.w.config, n2 = new V(this.ctx, e2), l2 = new q(this.ctx, e2);
        r2.axisCharts && "radar" !== t3 && (r2.isBarHorizontal ? (a2 = l2.drawYaxisInversed(0), i2 = n2.drawXaxisInversed(0), r2.dom.elGraphical.add(i2), r2.dom.elGraphical.add(a2)) : (i2 = n2.drawXaxis(), r2.dom.elGraphical.add(i2), o2.yaxis.map(function(t4, e3) {
          if (-1 === r2.ignoreYAxisIndexes.indexOf(e3) && (a2 = l2.drawYaxis(e3), r2.dom.Paper.add(a2), "back" === s2.w.config.grid.position)) {
            var i3 = r2.dom.Paper.children()[1];
            i3.remove(), r2.dom.Paper.add(i3);
          }
        })));
      } }]), t2;
    }();
    var Q = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "drawXCrosshairs", value: function() {
        var t3 = this.w, e2 = new m(this.ctx), i2 = new v(this.ctx), a2 = t3.config.xaxis.crosshairs.fill.gradient, s2 = t3.config.xaxis.crosshairs.dropShadow, r2 = t3.config.xaxis.crosshairs.fill.type, o2 = a2.colorFrom, n2 = a2.colorTo, l2 = a2.opacityFrom, h2 = a2.opacityTo, c2 = a2.stops, d2 = s2.enabled, g2 = s2.left, u2 = s2.top, p2 = s2.blur, f2 = s2.color, b2 = s2.opacity, y2 = t3.config.xaxis.crosshairs.fill.color;
        if (t3.config.xaxis.crosshairs.show) {
          "gradient" === r2 && (y2 = e2.drawGradient("vertical", o2, n2, l2, h2, null, c2, null));
          var w2 = e2.drawRect();
          1 === t3.config.xaxis.crosshairs.width && (w2 = e2.drawLine());
          var k2 = t3.globals.gridHeight;
          (!x.isNumber(k2) || k2 < 0) && (k2 = 0);
          var A3 = t3.config.xaxis.crosshairs.width;
          (!x.isNumber(A3) || A3 < 0) && (A3 = 0), w2.attr({ class: "apexcharts-xcrosshairs", x: 0, y: 0, y2: k2, width: A3, height: k2, fill: y2, filter: "none", "fill-opacity": t3.config.xaxis.crosshairs.opacity, stroke: t3.config.xaxis.crosshairs.stroke.color, "stroke-width": t3.config.xaxis.crosshairs.stroke.width, "stroke-dasharray": t3.config.xaxis.crosshairs.stroke.dashArray }), d2 && (w2 = i2.dropShadow(w2, { left: g2, top: u2, blur: p2, color: f2, opacity: b2 })), t3.globals.dom.elGraphical.add(w2);
        }
      } }, { key: "drawYCrosshairs", value: function() {
        var t3 = this.w, e2 = new m(this.ctx), i2 = t3.config.yaxis[0].crosshairs, a2 = t3.globals.barPadForNumericAxis;
        if (t3.config.yaxis[0].crosshairs.show) {
          var s2 = e2.drawLine(-a2, 0, t3.globals.gridWidth + a2, 0, i2.stroke.color, i2.stroke.dashArray, i2.stroke.width);
          s2.attr({ class: "apexcharts-ycrosshairs" }), t3.globals.dom.elGraphical.add(s2);
        }
        var r2 = e2.drawLine(-a2, 0, t3.globals.gridWidth + a2, 0, i2.stroke.color, 0, 0);
        r2.attr({ class: "apexcharts-ycrosshairs-hidden" }), t3.globals.dom.elGraphical.add(r2);
      } }]), t2;
    }();
    var K = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "checkResponsiveConfig", value: function(t3) {
        var e2 = this, i2 = this.w, a2 = i2.config;
        if (0 !== a2.responsive.length) {
          var s2 = a2.responsive.slice();
          s2.sort(function(t4, e3) {
            return t4.breakpoint > e3.breakpoint ? 1 : e3.breakpoint > t4.breakpoint ? -1 : 0;
          }).reverse();
          var r2 = new E({}), o2 = function() {
            var t4 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, a3 = s2[0].breakpoint, o3 = window.innerWidth > 0 ? window.innerWidth : screen.width;
            if (o3 > a3) {
              var n3 = y.extendArrayProps(r2, i2.globals.initialConfig, i2);
              t4 = x.extend(n3, t4), t4 = x.extend(i2.config, t4), e2.overrideResponsiveOptions(t4);
            } else
              for (var l2 = 0; l2 < s2.length; l2++)
                o3 < s2[l2].breakpoint && (t4 = y.extendArrayProps(r2, s2[l2].options, i2), t4 = x.extend(i2.config, t4), e2.overrideResponsiveOptions(t4));
          };
          if (t3) {
            var n2 = y.extendArrayProps(r2, t3, i2);
            n2 = x.extend(i2.config, n2), o2(n2 = x.extend(n2, t3));
          } else
            o2({});
        }
      } }, { key: "overrideResponsiveOptions", value: function(t3) {
        var e2 = new E(t3).init({ responsiveOverride: true });
        this.w.config = e2;
      } }]), t2;
    }();
    var tt = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.colors = [], this.w = e2.w;
        var i2 = this.w;
        this.isColorFn = false, this.isHeatmapDistributed = "treemap" === i2.config.chart.type && i2.config.plotOptions.treemap.distributed || "heatmap" === i2.config.chart.type && i2.config.plotOptions.heatmap.distributed, this.isBarDistributed = i2.config.plotOptions.bar.distributed && ("bar" === i2.config.chart.type || "rangeBar" === i2.config.chart.type);
      }
      return r(t2, [{ key: "init", value: function() {
        this.setDefaultColors();
      } }, { key: "setDefaultColors", value: function() {
        var t3, e2 = this, i2 = this.w, a2 = new x();
        if (i2.globals.dom.elWrap.classList.add("apexcharts-theme-".concat(i2.config.theme.mode)), void 0 === i2.config.colors || 0 === (null === (t3 = i2.config.colors) || void 0 === t3 ? void 0 : t3.length) ? i2.globals.colors = this.predefined() : (i2.globals.colors = i2.config.colors, Array.isArray(i2.config.colors) && i2.config.colors.length > 0 && "function" == typeof i2.config.colors[0] && (i2.globals.colors = i2.config.series.map(function(t4, a3) {
          var s3 = i2.config.colors[a3];
          return s3 || (s3 = i2.config.colors[0]), "function" == typeof s3 ? (e2.isColorFn = true, s3({ value: i2.globals.axisCharts ? i2.globals.series[a3][0] ? i2.globals.series[a3][0] : 0 : i2.globals.series[a3], seriesIndex: a3, dataPointIndex: a3, w: i2 })) : s3;
        }))), i2.globals.seriesColors.map(function(t4, e3) {
          t4 && (i2.globals.colors[e3] = t4);
        }), i2.config.theme.monochrome.enabled) {
          var s2 = [], r2 = i2.globals.series.length;
          (this.isBarDistributed || this.isHeatmapDistributed) && (r2 = i2.globals.series[0].length * i2.globals.series.length);
          for (var o2 = i2.config.theme.monochrome.color, n2 = 1 / (r2 / i2.config.theme.monochrome.shadeIntensity), l2 = i2.config.theme.monochrome.shadeTo, h2 = 0, c2 = 0; c2 < r2; c2++) {
            var d2 = void 0;
            "dark" === l2 ? (d2 = a2.shadeColor(-1 * h2, o2), h2 += n2) : (d2 = a2.shadeColor(h2, o2), h2 += n2), s2.push(d2);
          }
          i2.globals.colors = s2.slice();
        }
        var g2 = i2.globals.colors.slice();
        this.pushExtraColors(i2.globals.colors);
        ["fill", "stroke"].forEach(function(t4) {
          void 0 === i2.config[t4].colors ? i2.globals[t4].colors = e2.isColorFn ? i2.config.colors : g2 : i2.globals[t4].colors = i2.config[t4].colors.slice(), e2.pushExtraColors(i2.globals[t4].colors);
        }), void 0 === i2.config.dataLabels.style.colors ? i2.globals.dataLabels.style.colors = g2 : i2.globals.dataLabels.style.colors = i2.config.dataLabels.style.colors.slice(), this.pushExtraColors(i2.globals.dataLabels.style.colors, 50), void 0 === i2.config.plotOptions.radar.polygons.fill.colors ? i2.globals.radarPolygons.fill.colors = ["dark" === i2.config.theme.mode ? "#424242" : "none"] : i2.globals.radarPolygons.fill.colors = i2.config.plotOptions.radar.polygons.fill.colors.slice(), this.pushExtraColors(i2.globals.radarPolygons.fill.colors, 20), void 0 === i2.config.markers.colors ? i2.globals.markers.colors = g2 : i2.globals.markers.colors = i2.config.markers.colors.slice(), this.pushExtraColors(i2.globals.markers.colors);
      } }, { key: "pushExtraColors", value: function(t3, e2) {
        var i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, a2 = this.w, s2 = e2 || a2.globals.series.length;
        if (null === i2 && (i2 = this.isBarDistributed || this.isHeatmapDistributed || "heatmap" === a2.config.chart.type && a2.config.plotOptions.heatmap.colorScale.inverse), i2 && a2.globals.series.length && (s2 = a2.globals.series[a2.globals.maxValsInArrayIndex].length * a2.globals.series.length), t3.length < s2)
          for (var r2 = s2 - t3.length, o2 = 0; o2 < r2; o2++)
            t3.push(t3[o2]);
      } }, { key: "updateThemeOptions", value: function(t3) {
        t3.chart = t3.chart || {}, t3.tooltip = t3.tooltip || {};
        var e2 = t3.theme.mode || "light", i2 = t3.theme.palette ? t3.theme.palette : "dark" === e2 ? "palette4" : "palette1", a2 = t3.chart.foreColor ? t3.chart.foreColor : "dark" === e2 ? "#f6f7f8" : "#373d3f";
        return t3.tooltip.theme = e2, t3.chart.foreColor = a2, t3.theme.palette = i2, t3;
      } }, { key: "predefined", value: function() {
        switch (this.w.config.theme.palette) {
          case "palette1":
          default:
            this.colors = ["#008FFB", "#00E396", "#FEB019", "#FF4560", "#775DD0"];
            break;
          case "palette2":
            this.colors = ["#3f51b5", "#03a9f4", "#4caf50", "#f9ce1d", "#FF9800"];
            break;
          case "palette3":
            this.colors = ["#33b2df", "#546E7A", "#d4526e", "#13d8aa", "#A5978B"];
            break;
          case "palette4":
            this.colors = ["#4ecdc4", "#c7f464", "#81D4FA", "#fd6a6a", "#546E7A"];
            break;
          case "palette5":
            this.colors = ["#2b908f", "#f9a3a4", "#90ee7e", "#fa4443", "#69d2e7"];
            break;
          case "palette6":
            this.colors = ["#449DD1", "#F86624", "#EA3546", "#662E9B", "#C5D86D"];
            break;
          case "palette7":
            this.colors = ["#D7263D", "#1B998B", "#2E294E", "#F46036", "#E2C044"];
            break;
          case "palette8":
            this.colors = ["#662E9B", "#F86624", "#F9C80E", "#EA3546", "#43BCCD"];
            break;
          case "palette9":
            this.colors = ["#5C4742", "#A5978B", "#8D5B4C", "#5A2A27", "#C4BBAF"];
            break;
          case "palette10":
            this.colors = ["#A300D6", "#7D02EB", "#5653FE", "#2983FF", "#00B1F2"];
        }
        return this.colors;
      } }]), t2;
    }();
    var et = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "draw", value: function() {
        this.drawTitleSubtitle("title"), this.drawTitleSubtitle("subtitle");
      } }, { key: "drawTitleSubtitle", value: function(t3) {
        var e2 = this.w, i2 = "title" === t3 ? e2.config.title : e2.config.subtitle, a2 = e2.globals.svgWidth / 2, s2 = i2.offsetY, r2 = "middle";
        if ("left" === i2.align ? (a2 = 10, r2 = "start") : "right" === i2.align && (a2 = e2.globals.svgWidth - 10, r2 = "end"), a2 += i2.offsetX, s2 = s2 + parseInt(i2.style.fontSize, 10) + i2.margin / 2, void 0 !== i2.text) {
          var o2 = new m(this.ctx).drawText({ x: a2, y: s2, text: i2.text, textAnchor: r2, fontSize: i2.style.fontSize, fontFamily: i2.style.fontFamily, fontWeight: i2.style.fontWeight, foreColor: i2.style.color, opacity: 1 });
          o2.node.setAttribute("class", "apexcharts-".concat(t3, "-text")), e2.globals.dom.Paper.add(o2);
        }
      } }]), t2;
    }();
    var it = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.dCtx = e2;
      }
      return r(t2, [{ key: "getTitleSubtitleCoords", value: function(t3) {
        var e2 = this.w, i2 = 0, a2 = 0, s2 = "title" === t3 ? e2.config.title.floating : e2.config.subtitle.floating, r2 = e2.globals.dom.baseEl.querySelector(".apexcharts-".concat(t3, "-text"));
        if (null !== r2 && !s2) {
          var o2 = r2.getBoundingClientRect();
          i2 = o2.width, a2 = e2.globals.axisCharts ? o2.height + 5 : o2.height;
        }
        return { width: i2, height: a2 };
      } }, { key: "getLegendsRect", value: function() {
        var t3 = this.w, e2 = t3.globals.dom.elLegendWrap;
        t3.config.legend.height || "top" !== t3.config.legend.position && "bottom" !== t3.config.legend.position || (e2.style.maxHeight = t3.globals.svgHeight / 2 + "px");
        var i2 = Object.assign({}, x.getBoundingClientRect(e2));
        return null !== e2 && !t3.config.legend.floating && t3.config.legend.show ? this.dCtx.lgRect = { x: i2.x, y: i2.y, height: i2.height, width: 0 === i2.height ? 0 : i2.width } : this.dCtx.lgRect = { x: 0, y: 0, height: 0, width: 0 }, "left" !== t3.config.legend.position && "right" !== t3.config.legend.position || 1.5 * this.dCtx.lgRect.width > t3.globals.svgWidth && (this.dCtx.lgRect.width = t3.globals.svgWidth / 1.5), this.dCtx.lgRect;
      } }, { key: "getLargestStringFromMultiArr", value: function(t3, e2) {
        var i2 = t3;
        if (this.w.globals.isMultiLineX) {
          var a2 = e2.map(function(t4, e3) {
            return Array.isArray(t4) ? t4.length : 1;
          }), s2 = Math.max.apply(Math, u(a2));
          i2 = e2[a2.indexOf(s2)];
        }
        return i2;
      } }]), t2;
    }();
    var at = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.dCtx = e2;
      }
      return r(t2, [{ key: "getxAxisLabelsCoords", value: function() {
        var t3, e2 = this.w, i2 = e2.globals.labels.slice();
        if (e2.config.xaxis.convertedCatToNumeric && 0 === i2.length && (i2 = e2.globals.categoryLabels), e2.globals.timescaleLabels.length > 0) {
          var a2 = this.getxAxisTimeScaleLabelsCoords();
          t3 = { width: a2.width, height: a2.height }, e2.globals.rotateXLabels = false;
        } else {
          this.dCtx.lgWidthForSideLegends = "left" !== e2.config.legend.position && "right" !== e2.config.legend.position || e2.config.legend.floating ? 0 : this.dCtx.lgRect.width;
          var s2 = e2.globals.xLabelFormatter, r2 = x.getLargestStringFromArr(i2), o2 = this.dCtx.dimHelpers.getLargestStringFromMultiArr(r2, i2);
          e2.globals.isBarHorizontal && (o2 = r2 = e2.globals.yAxisScale[0].result.reduce(function(t4, e3) {
            return t4.length > e3.length ? t4 : e3;
          }, 0));
          var n2 = new T(this.dCtx.ctx), l2 = r2;
          r2 = n2.xLabelFormat(s2, r2, l2, { i: void 0, dateFormatter: new I(this.dCtx.ctx).formatDate, w: e2 }), o2 = n2.xLabelFormat(s2, o2, l2, { i: void 0, dateFormatter: new I(this.dCtx.ctx).formatDate, w: e2 }), (e2.config.xaxis.convertedCatToNumeric && void 0 === r2 || "" === String(r2).trim()) && (o2 = r2 = "1");
          var h2 = new m(this.dCtx.ctx), c2 = h2.getTextRects(r2, e2.config.xaxis.labels.style.fontSize), d2 = c2;
          if (r2 !== o2 && (d2 = h2.getTextRects(o2, e2.config.xaxis.labels.style.fontSize)), (t3 = { width: c2.width >= d2.width ? c2.width : d2.width, height: c2.height >= d2.height ? c2.height : d2.height }).width * i2.length > e2.globals.svgWidth - this.dCtx.lgWidthForSideLegends - this.dCtx.yAxisWidth - this.dCtx.gridPad.left - this.dCtx.gridPad.right && 0 !== e2.config.xaxis.labels.rotate || e2.config.xaxis.labels.rotateAlways) {
            if (!e2.globals.isBarHorizontal) {
              e2.globals.rotateXLabels = true;
              var g2 = function(t4) {
                return h2.getTextRects(t4, e2.config.xaxis.labels.style.fontSize, e2.config.xaxis.labels.style.fontFamily, "rotate(".concat(e2.config.xaxis.labels.rotate, " 0 0)"), false);
              };
              c2 = g2(r2), r2 !== o2 && (d2 = g2(o2)), t3.height = (c2.height > d2.height ? c2.height : d2.height) / 1.5, t3.width = c2.width > d2.width ? c2.width : d2.width;
            }
          } else
            e2.globals.rotateXLabels = false;
        }
        return e2.config.xaxis.labels.show || (t3 = { width: 0, height: 0 }), { width: t3.width, height: t3.height };
      } }, { key: "getxAxisGroupLabelsCoords", value: function() {
        var t3, e2 = this.w;
        if (!e2.globals.hasXaxisGroups)
          return { width: 0, height: 0 };
        var i2, a2 = (null === (t3 = e2.config.xaxis.group.style) || void 0 === t3 ? void 0 : t3.fontSize) || e2.config.xaxis.labels.style.fontSize, s2 = e2.globals.groups.map(function(t4) {
          return t4.title;
        }), r2 = x.getLargestStringFromArr(s2), o2 = this.dCtx.dimHelpers.getLargestStringFromMultiArr(r2, s2), n2 = new m(this.dCtx.ctx), l2 = n2.getTextRects(r2, a2), h2 = l2;
        return r2 !== o2 && (h2 = n2.getTextRects(o2, a2)), i2 = { width: l2.width >= h2.width ? l2.width : h2.width, height: l2.height >= h2.height ? l2.height : h2.height }, e2.config.xaxis.labels.show || (i2 = { width: 0, height: 0 }), { width: i2.width, height: i2.height };
      } }, { key: "getxAxisTitleCoords", value: function() {
        var t3 = this.w, e2 = 0, i2 = 0;
        if (void 0 !== t3.config.xaxis.title.text) {
          var a2 = new m(this.dCtx.ctx).getTextRects(t3.config.xaxis.title.text, t3.config.xaxis.title.style.fontSize);
          e2 = a2.width, i2 = a2.height;
        }
        return { width: e2, height: i2 };
      } }, { key: "getxAxisTimeScaleLabelsCoords", value: function() {
        var t3, e2 = this.w;
        this.dCtx.timescaleLabels = e2.globals.timescaleLabels.slice();
        var i2 = this.dCtx.timescaleLabels.map(function(t4) {
          return t4.value;
        }), a2 = i2.reduce(function(t4, e3) {
          return void 0 === t4 ? (console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"), 0) : t4.length > e3.length ? t4 : e3;
        }, 0);
        return 1.05 * (t3 = new m(this.dCtx.ctx).getTextRects(a2, e2.config.xaxis.labels.style.fontSize)).width * i2.length > e2.globals.gridWidth && 0 !== e2.config.xaxis.labels.rotate && (e2.globals.overlappingXLabels = true), t3;
      } }, { key: "additionalPaddingXLabels", value: function(t3) {
        var e2 = this, i2 = this.w, a2 = i2.globals, s2 = i2.config, r2 = s2.xaxis.type, o2 = t3.width;
        a2.skipLastTimelinelabel = false, a2.skipFirstTimelinelabel = false;
        var n2 = i2.config.yaxis[0].opposite && i2.globals.isBarHorizontal, l2 = function(t4, n3) {
          s2.yaxis.length > 1 && function(t5) {
            return -1 !== a2.collapsedSeriesIndices.indexOf(t5);
          }(n3) || function(t5) {
            if (e2.dCtx.timescaleLabels && e2.dCtx.timescaleLabels.length) {
              var n4 = e2.dCtx.timescaleLabels[0], l3 = e2.dCtx.timescaleLabels[e2.dCtx.timescaleLabels.length - 1].position + o2 / 1.75 - e2.dCtx.yAxisWidthRight, h2 = n4.position - o2 / 1.75 + e2.dCtx.yAxisWidthLeft, c2 = "right" === i2.config.legend.position && e2.dCtx.lgRect.width > 0 ? e2.dCtx.lgRect.width : 0;
              l3 > a2.svgWidth - a2.translateX - c2 && (a2.skipLastTimelinelabel = true), h2 < -(t5.show && !t5.floating || "bar" !== s2.chart.type && "candlestick" !== s2.chart.type && "rangeBar" !== s2.chart.type && "boxPlot" !== s2.chart.type ? 10 : o2 / 1.75) && (a2.skipFirstTimelinelabel = true);
            } else
              "datetime" === r2 ? e2.dCtx.gridPad.right < o2 && !a2.rotateXLabels && (a2.skipLastTimelinelabel = true) : "datetime" !== r2 && e2.dCtx.gridPad.right < o2 / 2 - e2.dCtx.yAxisWidthRight && !a2.rotateXLabels && !i2.config.xaxis.labels.trim && ("between" !== i2.config.xaxis.tickPlacement || i2.globals.isBarHorizontal) && (e2.dCtx.xPadRight = o2 / 2 + 1);
          }(t4);
        };
        s2.yaxis.forEach(function(t4, i3) {
          n2 ? (e2.dCtx.gridPad.left < o2 && (e2.dCtx.xPadLeft = o2 / 2 + 1), e2.dCtx.xPadRight = o2 / 2 + 1) : l2(t4, i3);
        });
      } }]), t2;
    }();
    var st = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.dCtx = e2;
      }
      return r(t2, [{ key: "getyAxisLabelsCoords", value: function() {
        var t3 = this, e2 = this.w, i2 = [], a2 = 10, s2 = new B(this.dCtx.ctx);
        return e2.config.yaxis.map(function(r2, o2) {
          var n2 = { seriesIndex: o2, dataPointIndex: -1, w: e2 }, l2 = e2.globals.yAxisScale[o2], h2 = 0;
          if (!s2.isYAxisHidden(o2) && r2.labels.show && void 0 !== r2.labels.minWidth && (h2 = r2.labels.minWidth), !s2.isYAxisHidden(o2) && r2.labels.show && l2.result.length) {
            var c2 = e2.globals.yLabelFormatters[o2], d2 = l2.niceMin === Number.MIN_VALUE ? 0 : l2.niceMin, g2 = l2.result.reduce(function(t4, e3) {
              var i3, a3;
              return (null === (i3 = String(c2(t4, n2))) || void 0 === i3 ? void 0 : i3.length) > (null === (a3 = String(c2(e3, n2))) || void 0 === a3 ? void 0 : a3.length) ? t4 : e3;
            }, d2), u2 = g2 = c2(g2, n2);
            if (void 0 !== g2 && 0 !== g2.length || (g2 = l2.niceMax), e2.globals.isBarHorizontal) {
              a2 = 0;
              var p2 = e2.globals.labels.slice();
              g2 = x.getLargestStringFromArr(p2), g2 = c2(g2, { seriesIndex: o2, dataPointIndex: -1, w: e2 }), u2 = t3.dCtx.dimHelpers.getLargestStringFromMultiArr(g2, p2);
            }
            var f2 = new m(t3.dCtx.ctx), b2 = "rotate(".concat(r2.labels.rotate, " 0 0)"), v2 = f2.getTextRects(g2, r2.labels.style.fontSize, r2.labels.style.fontFamily, b2, false), y2 = v2;
            g2 !== u2 && (y2 = f2.getTextRects(u2, r2.labels.style.fontSize, r2.labels.style.fontFamily, b2, false)), i2.push({ width: (h2 > y2.width || h2 > v2.width ? h2 : y2.width > v2.width ? y2.width : v2.width) + a2, height: y2.height > v2.height ? y2.height : v2.height });
          } else
            i2.push({ width: 0, height: 0 });
        }), i2;
      } }, { key: "getyAxisTitleCoords", value: function() {
        var t3 = this, e2 = this.w, i2 = [];
        return e2.config.yaxis.map(function(e3, a2) {
          if (e3.show && void 0 !== e3.title.text) {
            var s2 = new m(t3.dCtx.ctx), r2 = "rotate(".concat(e3.title.rotate, " 0 0)"), o2 = s2.getTextRects(e3.title.text, e3.title.style.fontSize, e3.title.style.fontFamily, r2, false);
            i2.push({ width: o2.width, height: o2.height });
          } else
            i2.push({ width: 0, height: 0 });
        }), i2;
      } }, { key: "getTotalYAxisWidth", value: function() {
        var t3 = this.w, e2 = 0, i2 = 0, a2 = 0, s2 = t3.globals.yAxisScale.length > 1 ? 10 : 0, r2 = new B(this.dCtx.ctx), o2 = function(o3, n2) {
          var l2 = t3.config.yaxis[n2].floating, h2 = 0;
          o3.width > 0 && !l2 ? (h2 = o3.width + s2, function(e3) {
            return t3.globals.ignoreYAxisIndexes.indexOf(e3) > -1;
          }(n2) && (h2 = h2 - o3.width - s2)) : h2 = l2 || r2.isYAxisHidden(n2) ? 0 : 5, t3.config.yaxis[n2].opposite ? a2 += h2 : i2 += h2, e2 += h2;
        };
        return t3.globals.yLabelsCoords.map(function(t4, e3) {
          o2(t4, e3);
        }), t3.globals.yTitleCoords.map(function(t4, e3) {
          o2(t4, e3);
        }), t3.globals.isBarHorizontal && !t3.config.yaxis[0].floating && (e2 = t3.globals.yLabelsCoords[0].width + t3.globals.yTitleCoords[0].width + 15), this.dCtx.yAxisWidthLeft = i2, this.dCtx.yAxisWidthRight = a2, e2;
      } }]), t2;
    }();
    var rt = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.dCtx = e2;
      }
      return r(t2, [{ key: "gridPadForColumnsInNumericAxis", value: function(t3) {
        var e2 = this.w;
        if (e2.globals.noData || e2.globals.allSeriesCollapsed)
          return 0;
        var i2 = function(t4) {
          return "bar" === t4 || "rangeBar" === t4 || "candlestick" === t4 || "boxPlot" === t4;
        }, a2 = e2.config.chart.type, s2 = 0, r2 = i2(a2) ? e2.config.series.length : 1;
        if (e2.globals.comboBarCount > 0 && (r2 = e2.globals.comboBarCount), e2.globals.collapsedSeries.forEach(function(t4) {
          i2(t4.type) && (r2 -= 1);
        }), e2.config.chart.stacked && (r2 = 1), (i2(a2) || e2.globals.comboBarCount > 0) && e2.globals.isXNumeric && !e2.globals.isBarHorizontal && r2 > 0) {
          var o2, n2, l2 = Math.abs(e2.globals.initialMaxX - e2.globals.initialMinX);
          l2 <= 3 && (l2 = e2.globals.dataPoints), o2 = l2 / t3, e2.globals.minXDiff && e2.globals.minXDiff / o2 > 0 && (n2 = e2.globals.minXDiff / o2), n2 > t3 / 2 && (n2 /= 2), (s2 = n2 / r2 * parseInt(e2.config.plotOptions.bar.columnWidth, 10) / 100) < 1 && (s2 = 1), s2 = s2 / (r2 > 1 ? 1 : 1.5) + 5, e2.globals.barPadForNumericAxis = s2;
        }
        return s2;
      } }, { key: "gridPadFortitleSubtitle", value: function() {
        var t3 = this, e2 = this.w, i2 = e2.globals, a2 = this.dCtx.isSparkline || !e2.globals.axisCharts ? 0 : 10;
        ["title", "subtitle"].forEach(function(i3) {
          void 0 !== e2.config[i3].text ? a2 += e2.config[i3].margin : a2 += t3.dCtx.isSparkline || !e2.globals.axisCharts ? 0 : 5;
        }), !e2.config.legend.show || "bottom" !== e2.config.legend.position || e2.config.legend.floating || e2.globals.axisCharts || (a2 += 10);
        var s2 = this.dCtx.dimHelpers.getTitleSubtitleCoords("title"), r2 = this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle");
        i2.gridHeight = i2.gridHeight - s2.height - r2.height - a2, i2.translateY = i2.translateY + s2.height + r2.height + a2;
      } }, { key: "setGridXPosForDualYAxis", value: function(t3, e2) {
        var i2 = this.w, a2 = new B(this.dCtx.ctx);
        i2.config.yaxis.map(function(s2, r2) {
          -1 !== i2.globals.ignoreYAxisIndexes.indexOf(r2) || s2.floating || a2.isYAxisHidden(r2) || (s2.opposite && (i2.globals.translateX = i2.globals.translateX - (e2[r2].width + t3[r2].width) - parseInt(i2.config.yaxis[r2].labels.style.fontSize, 10) / 1.2 - 12), i2.globals.translateX < 2 && (i2.globals.translateX = 2));
        });
      } }]), t2;
    }();
    var ot = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.lgRect = {}, this.yAxisWidth = 0, this.yAxisWidthLeft = 0, this.yAxisWidthRight = 0, this.xAxisHeight = 0, this.isSparkline = this.w.config.chart.sparkline.enabled, this.dimHelpers = new it(this), this.dimYAxis = new st(this), this.dimXAxis = new at(this), this.dimGrid = new rt(this), this.lgWidthForSideLegends = 0, this.gridPad = this.w.config.grid.padding, this.xPadRight = 0, this.xPadLeft = 0;
      }
      return r(t2, [{ key: "plotCoords", value: function() {
        var t3 = this, e2 = this.w, i2 = e2.globals;
        this.lgRect = this.dimHelpers.getLegendsRect(), this.isSparkline && ((e2.config.markers.discrete.length > 0 || e2.config.markers.size > 0) && Object.entries(this.gridPad).forEach(function(e3) {
          var i3 = g(e3, 2), a3 = i3[0], s2 = i3[1];
          t3.gridPad[a3] = Math.max(s2, t3.w.globals.markers.largestSize / 1.5);
        }), this.gridPad.top = Math.max(e2.config.stroke.width / 2, this.gridPad.top), this.gridPad.bottom = Math.max(e2.config.stroke.width / 2, this.gridPad.bottom)), i2.axisCharts ? this.setDimensionsForAxisCharts() : this.setDimensionsForNonAxisCharts(), this.dimGrid.gridPadFortitleSubtitle(), i2.gridHeight = i2.gridHeight - this.gridPad.top - this.gridPad.bottom, i2.gridWidth = i2.gridWidth - this.gridPad.left - this.gridPad.right - this.xPadRight - this.xPadLeft;
        var a2 = this.dimGrid.gridPadForColumnsInNumericAxis(i2.gridWidth);
        i2.gridWidth = i2.gridWidth - 2 * a2, i2.translateX = i2.translateX + this.gridPad.left + this.xPadLeft + (a2 > 0 ? a2 + 4 : 0), i2.translateY = i2.translateY + this.gridPad.top;
      } }, { key: "setDimensionsForAxisCharts", value: function() {
        var t3 = this, e2 = this.w, i2 = e2.globals, a2 = this.dimYAxis.getyAxisLabelsCoords(), s2 = this.dimYAxis.getyAxisTitleCoords();
        e2.globals.yLabelsCoords = [], e2.globals.yTitleCoords = [], e2.config.yaxis.map(function(t4, i3) {
          e2.globals.yLabelsCoords.push({ width: a2[i3].width, index: i3 }), e2.globals.yTitleCoords.push({ width: s2[i3].width, index: i3 });
        }), this.yAxisWidth = this.dimYAxis.getTotalYAxisWidth();
        var r2 = this.dimXAxis.getxAxisLabelsCoords(), o2 = this.dimXAxis.getxAxisGroupLabelsCoords(), n2 = this.dimXAxis.getxAxisTitleCoords();
        this.conditionalChecksForAxisCoords(r2, n2, o2), i2.translateXAxisY = e2.globals.rotateXLabels ? this.xAxisHeight / 8 : -4, i2.translateXAxisX = e2.globals.rotateXLabels && e2.globals.isXNumeric && e2.config.xaxis.labels.rotate <= -45 ? -this.xAxisWidth / 4 : 0, e2.globals.isBarHorizontal && (i2.rotateXLabels = false, i2.translateXAxisY = parseInt(e2.config.xaxis.labels.style.fontSize, 10) / 1.5 * -1), i2.translateXAxisY = i2.translateXAxisY + e2.config.xaxis.labels.offsetY, i2.translateXAxisX = i2.translateXAxisX + e2.config.xaxis.labels.offsetX;
        var l2 = this.yAxisWidth, h2 = this.xAxisHeight;
        i2.xAxisLabelsHeight = this.xAxisHeight - n2.height, i2.xAxisGroupLabelsHeight = i2.xAxisLabelsHeight - r2.height, i2.xAxisLabelsWidth = this.xAxisWidth, i2.xAxisHeight = this.xAxisHeight;
        var c2 = 10;
        ("radar" === e2.config.chart.type || this.isSparkline) && (l2 = 0, h2 = i2.goldenPadding), this.isSparkline && (this.lgRect = { height: 0, width: 0 }), (this.isSparkline || "treemap" === e2.config.chart.type) && (l2 = 0, h2 = 0, c2 = 0), this.isSparkline || this.dimXAxis.additionalPaddingXLabels(r2);
        var d2 = function() {
          i2.translateX = l2, i2.gridHeight = i2.svgHeight - t3.lgRect.height - h2 - (t3.isSparkline || "treemap" === e2.config.chart.type ? 0 : e2.globals.rotateXLabels ? 10 : 15), i2.gridWidth = i2.svgWidth - l2;
        };
        switch ("top" === e2.config.xaxis.position && (c2 = i2.xAxisHeight - e2.config.xaxis.axisTicks.height - 5), e2.config.legend.position) {
          case "bottom":
            i2.translateY = c2, d2();
            break;
          case "top":
            i2.translateY = this.lgRect.height + c2, d2();
            break;
          case "left":
            i2.translateY = c2, i2.translateX = this.lgRect.width + l2, i2.gridHeight = i2.svgHeight - h2 - 12, i2.gridWidth = i2.svgWidth - this.lgRect.width - l2;
            break;
          case "right":
            i2.translateY = c2, i2.translateX = l2, i2.gridHeight = i2.svgHeight - h2 - 12, i2.gridWidth = i2.svgWidth - this.lgRect.width - l2 - 5;
            break;
          default:
            throw new Error("Legend position not supported");
        }
        this.dimGrid.setGridXPosForDualYAxis(s2, a2), new q(this.ctx).setYAxisXPosition(a2, s2);
      } }, { key: "setDimensionsForNonAxisCharts", value: function() {
        var t3 = this.w, e2 = t3.globals, i2 = t3.config, a2 = 0;
        t3.config.legend.show && !t3.config.legend.floating && (a2 = 20);
        var s2 = "pie" === i2.chart.type || "polarArea" === i2.chart.type || "donut" === i2.chart.type ? "pie" : "radialBar", r2 = i2.plotOptions[s2].offsetY, o2 = i2.plotOptions[s2].offsetX;
        if (!i2.legend.show || i2.legend.floating)
          return e2.gridHeight = e2.svgHeight - i2.grid.padding.left + i2.grid.padding.right, e2.gridWidth = e2.gridHeight, e2.translateY = r2, void (e2.translateX = o2 + (e2.svgWidth - e2.gridWidth) / 2);
        switch (i2.legend.position) {
          case "bottom":
            e2.gridHeight = e2.svgHeight - this.lgRect.height - e2.goldenPadding, e2.gridWidth = e2.svgWidth, e2.translateY = r2 - 10, e2.translateX = o2 + (e2.svgWidth - e2.gridWidth) / 2;
            break;
          case "top":
            e2.gridHeight = e2.svgHeight - this.lgRect.height - e2.goldenPadding, e2.gridWidth = e2.svgWidth, e2.translateY = this.lgRect.height + r2 + 10, e2.translateX = o2 + (e2.svgWidth - e2.gridWidth) / 2;
            break;
          case "left":
            e2.gridWidth = e2.svgWidth - this.lgRect.width - a2, e2.gridHeight = "auto" !== i2.chart.height ? e2.svgHeight : e2.gridWidth, e2.translateY = r2, e2.translateX = o2 + this.lgRect.width + a2;
            break;
          case "right":
            e2.gridWidth = e2.svgWidth - this.lgRect.width - a2 - 5, e2.gridHeight = "auto" !== i2.chart.height ? e2.svgHeight : e2.gridWidth, e2.translateY = r2, e2.translateX = o2 + 10;
            break;
          default:
            throw new Error("Legend position not supported");
        }
      } }, { key: "conditionalChecksForAxisCoords", value: function(t3, e2, i2) {
        var a2 = this.w, s2 = a2.globals.hasXaxisGroups ? 2 : 1, r2 = i2.height + t3.height + e2.height, o2 = a2.globals.isMultiLineX ? 1.2 : a2.globals.LINE_HEIGHT_RATIO, n2 = a2.globals.rotateXLabels ? 22 : 10, l2 = a2.globals.rotateXLabels && "bottom" === a2.config.legend.position ? 10 : 0;
        this.xAxisHeight = r2 * o2 + s2 * n2 + l2, this.xAxisWidth = t3.width, this.xAxisHeight - e2.height > a2.config.xaxis.labels.maxHeight && (this.xAxisHeight = a2.config.xaxis.labels.maxHeight), a2.config.xaxis.labels.minHeight && this.xAxisHeight < a2.config.xaxis.labels.minHeight && (this.xAxisHeight = a2.config.xaxis.labels.minHeight), a2.config.xaxis.floating && (this.xAxisHeight = 0);
        var h2 = 0, c2 = 0;
        a2.config.yaxis.forEach(function(t4) {
          h2 += t4.labels.minWidth, c2 += t4.labels.maxWidth;
        }), this.yAxisWidth < h2 && (this.yAxisWidth = h2), this.yAxisWidth > c2 && (this.yAxisWidth = c2);
      } }]), t2;
    }();
    var nt = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.lgCtx = e2;
      }
      return r(t2, [{ key: "getLegendStyles", value: function() {
        var t3, e2, i2, a2 = document.createElement("style");
        a2.setAttribute("type", "text/css");
        var s2 = (null === (t3 = this.lgCtx.ctx) || void 0 === t3 || null === (e2 = t3.opts) || void 0 === e2 || null === (i2 = e2.chart) || void 0 === i2 ? void 0 : i2.nonce) || this.w.config.chart.nonce;
        s2 && a2.setAttribute("nonce", s2);
        var r2 = document.createTextNode("\n      .apexcharts-legend {\n        display: flex;\n        overflow: auto;\n        padding: 0 10px;\n      }\n      .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\n        flex-wrap: wrap\n      }\n      .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\n        flex-direction: column;\n        bottom: 0;\n      }\n      .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\n        justify-content: flex-start;\n      }\n      .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\n        justify-content: center;\n      }\n      .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\n        justify-content: flex-end;\n      }\n      .apexcharts-legend-series {\n        cursor: pointer;\n        line-height: normal;\n      }\n      .apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, .apexcharts-legend.apx-legend-position-top .apexcharts-legend-series{\n        display: flex;\n        align-items: center;\n      }\n      .apexcharts-legend-text {\n        position: relative;\n        font-size: 14px;\n      }\n      .apexcharts-legend-text *, .apexcharts-legend-marker * {\n        pointer-events: none;\n      }\n      .apexcharts-legend-marker {\n        position: relative;\n        display: inline-block;\n        cursor: pointer;\n        margin-right: 3px;\n        border-style: solid;\n      }\n\n      .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\n        display: inline-block;\n      }\n      .apexcharts-legend-series.apexcharts-no-click {\n        cursor: auto;\n      }\n      .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\n        display: none !important;\n      }\n      .apexcharts-inactive-legend {\n        opacity: 0.45;\n      }");
        return a2.appendChild(r2), a2;
      } }, { key: "getLegendBBox", value: function() {
        var t3 = this.w.globals.dom.baseEl.querySelector(".apexcharts-legend").getBoundingClientRect(), e2 = t3.width;
        return { clwh: t3.height, clww: e2 };
      } }, { key: "appendToForeignObject", value: function() {
        this.w.globals.dom.elLegendForeign.appendChild(this.getLegendStyles());
      } }, { key: "toggleDataSeries", value: function(t3, e2) {
        var i2 = this, a2 = this.w;
        if (a2.globals.axisCharts || "radialBar" === a2.config.chart.type) {
          a2.globals.resized = true;
          var s2 = null, r2 = null;
          if (a2.globals.risingSeries = [], a2.globals.axisCharts ? (s2 = a2.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(t3, "']")), r2 = parseInt(s2.getAttribute("data:realIndex"), 10)) : (s2 = a2.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(t3 + 1, "']")), r2 = parseInt(s2.getAttribute("rel"), 10) - 1), e2)
            [{ cs: a2.globals.collapsedSeries, csi: a2.globals.collapsedSeriesIndices }, { cs: a2.globals.ancillaryCollapsedSeries, csi: a2.globals.ancillaryCollapsedSeriesIndices }].forEach(function(t4) {
              i2.riseCollapsedSeries(t4.cs, t4.csi, r2);
            });
          else
            this.hideSeries({ seriesEl: s2, realIndex: r2 });
        } else {
          var o2 = a2.globals.dom.Paper.select(" .apexcharts-series[rel='".concat(t3 + 1, "'] path")), n2 = a2.config.chart.type;
          if ("pie" === n2 || "polarArea" === n2 || "donut" === n2) {
            var l2 = a2.config.plotOptions.pie.donut.labels;
            new m(this.lgCtx.ctx).pathMouseDown(o2.members[0], null), this.lgCtx.ctx.pie.printDataLabelsInner(o2.members[0].node, l2);
          }
          o2.fire("click");
        }
      } }, { key: "hideSeries", value: function(t3) {
        var e2 = t3.seriesEl, i2 = t3.realIndex, a2 = this.w, s2 = x.clone(a2.config.series);
        if (a2.globals.axisCharts) {
          var r2 = false;
          if (a2.config.yaxis[i2] && a2.config.yaxis[i2].show && a2.config.yaxis[i2].showAlways && (r2 = true, a2.globals.ancillaryCollapsedSeriesIndices.indexOf(i2) < 0 && (a2.globals.ancillaryCollapsedSeries.push({ index: i2, data: s2[i2].data.slice(), type: e2.parentNode.className.baseVal.split("-")[1] }), a2.globals.ancillaryCollapsedSeriesIndices.push(i2))), !r2) {
            a2.globals.collapsedSeries.push({ index: i2, data: s2[i2].data.slice(), type: e2.parentNode.className.baseVal.split("-")[1] }), a2.globals.collapsedSeriesIndices.push(i2);
            var o2 = a2.globals.risingSeries.indexOf(i2);
            a2.globals.risingSeries.splice(o2, 1);
          }
        } else
          a2.globals.collapsedSeries.push({ index: i2, data: s2[i2] }), a2.globals.collapsedSeriesIndices.push(i2);
        for (var n2 = e2.childNodes, l2 = 0; l2 < n2.length; l2++)
          n2[l2].classList.contains("apexcharts-series-markers-wrap") && (n2[l2].classList.contains("apexcharts-hide") ? n2[l2].classList.remove("apexcharts-hide") : n2[l2].classList.add("apexcharts-hide"));
        a2.globals.allSeriesCollapsed = a2.globals.collapsedSeries.length === a2.config.series.length, s2 = this._getSeriesBasedOnCollapsedState(s2), this.lgCtx.ctx.updateHelpers._updateSeries(s2, a2.config.chart.animations.dynamicAnimation.enabled);
      } }, { key: "riseCollapsedSeries", value: function(t3, e2, i2) {
        var a2 = this.w, s2 = x.clone(a2.config.series);
        if (t3.length > 0) {
          for (var r2 = 0; r2 < t3.length; r2++)
            t3[r2].index === i2 && (a2.globals.axisCharts ? (s2[i2].data = t3[r2].data.slice(), t3.splice(r2, 1), e2.splice(r2, 1), a2.globals.risingSeries.push(i2)) : (s2[i2] = t3[r2].data, t3.splice(r2, 1), e2.splice(r2, 1), a2.globals.risingSeries.push(i2)));
          s2 = this._getSeriesBasedOnCollapsedState(s2), this.lgCtx.ctx.updateHelpers._updateSeries(s2, a2.config.chart.animations.dynamicAnimation.enabled);
        }
      } }, { key: "_getSeriesBasedOnCollapsedState", value: function(t3) {
        var e2 = this.w;
        return e2.globals.axisCharts ? t3.forEach(function(i2, a2) {
          e2.globals.collapsedSeriesIndices.indexOf(a2) > -1 && (t3[a2].data = []);
        }) : t3.forEach(function(i2, a2) {
          e2.globals.collapsedSeriesIndices.indexOf(a2) > -1 && (t3[a2] = 0);
        }), t3;
      } }]), t2;
    }();
    var lt = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.onLegendClick = this.onLegendClick.bind(this), this.onLegendHovered = this.onLegendHovered.bind(this), this.isBarsDistributed = "bar" === this.w.config.chart.type && this.w.config.plotOptions.bar.distributed && 1 === this.w.config.series.length, this.legendHelpers = new nt(this);
      }
      return r(t2, [{ key: "init", value: function() {
        var t3 = this.w, e2 = t3.globals, i2 = t3.config;
        if ((i2.legend.showForSingleSeries && 1 === e2.series.length || this.isBarsDistributed || e2.series.length > 1 || !e2.axisCharts) && i2.legend.show) {
          for (; e2.dom.elLegendWrap.firstChild; )
            e2.dom.elLegendWrap.removeChild(e2.dom.elLegendWrap.firstChild);
          this.drawLegends(), x.isIE11() ? document.getElementsByTagName("head")[0].appendChild(this.legendHelpers.getLegendStyles()) : this.legendHelpers.appendToForeignObject(), "bottom" === i2.legend.position || "top" === i2.legend.position ? this.legendAlignHorizontal() : "right" !== i2.legend.position && "left" !== i2.legend.position || this.legendAlignVertical();
        }
      } }, { key: "drawLegends", value: function() {
        var t3 = this, e2 = this.w, i2 = e2.config.legend.fontFamily, a2 = e2.globals.seriesNames, s2 = e2.globals.colors.slice();
        if ("heatmap" === e2.config.chart.type) {
          var r2 = e2.config.plotOptions.heatmap.colorScale.ranges;
          a2 = r2.map(function(t4) {
            return t4.name ? t4.name : t4.from + " - " + t4.to;
          }), s2 = r2.map(function(t4) {
            return t4.color;
          });
        } else
          this.isBarsDistributed && (a2 = e2.globals.labels.slice());
        e2.config.legend.customLegendItems.length && (a2 = e2.config.legend.customLegendItems);
        for (var o2 = e2.globals.legendFormatter, n2 = e2.config.legend.inverseOrder, l2 = n2 ? a2.length - 1 : 0; n2 ? l2 >= 0 : l2 <= a2.length - 1; n2 ? l2-- : l2++) {
          var h2, c2 = o2(a2[l2], { seriesIndex: l2, w: e2 }), d2 = false, g2 = false;
          if (e2.globals.collapsedSeries.length > 0)
            for (var u2 = 0; u2 < e2.globals.collapsedSeries.length; u2++)
              e2.globals.collapsedSeries[u2].index === l2 && (d2 = true);
          if (e2.globals.ancillaryCollapsedSeriesIndices.length > 0)
            for (var p2 = 0; p2 < e2.globals.ancillaryCollapsedSeriesIndices.length; p2++)
              e2.globals.ancillaryCollapsedSeriesIndices[p2] === l2 && (g2 = true);
          var f2 = document.createElement("span");
          f2.classList.add("apexcharts-legend-marker");
          var b2 = e2.config.legend.markers.offsetX, v2 = e2.config.legend.markers.offsetY, w2 = e2.config.legend.markers.height, k2 = e2.config.legend.markers.width, A3 = e2.config.legend.markers.strokeWidth, S2 = e2.config.legend.markers.strokeColor, C2 = e2.config.legend.markers.radius, L2 = f2.style;
          L2.background = s2[l2], L2.color = s2[l2], L2.setProperty("background", s2[l2], "important"), e2.config.legend.markers.fillColors && e2.config.legend.markers.fillColors[l2] && (L2.background = e2.config.legend.markers.fillColors[l2]), void 0 !== e2.globals.seriesColors[l2] && (L2.background = e2.globals.seriesColors[l2], L2.color = e2.globals.seriesColors[l2]), L2.height = Array.isArray(w2) ? parseFloat(w2[l2]) + "px" : parseFloat(w2) + "px", L2.width = Array.isArray(k2) ? parseFloat(k2[l2]) + "px" : parseFloat(k2) + "px", L2.left = (Array.isArray(b2) ? parseFloat(b2[l2]) : parseFloat(b2)) + "px", L2.top = (Array.isArray(v2) ? parseFloat(v2[l2]) : parseFloat(v2)) + "px", L2.borderWidth = Array.isArray(A3) ? A3[l2] : A3, L2.borderColor = Array.isArray(S2) ? S2[l2] : S2, L2.borderRadius = Array.isArray(C2) ? parseFloat(C2[l2]) + "px" : parseFloat(C2) + "px", e2.config.legend.markers.customHTML && (Array.isArray(e2.config.legend.markers.customHTML) ? e2.config.legend.markers.customHTML[l2] && (f2.innerHTML = e2.config.legend.markers.customHTML[l2]()) : f2.innerHTML = e2.config.legend.markers.customHTML()), m.setAttrs(f2, { rel: l2 + 1, "data:collapsed": d2 || g2 }), (d2 || g2) && f2.classList.add("apexcharts-inactive-legend");
          var P2 = document.createElement("div"), I2 = document.createElement("span");
          I2.classList.add("apexcharts-legend-text"), I2.innerHTML = Array.isArray(c2) ? c2.join(" ") : c2;
          var T2 = e2.config.legend.labels.useSeriesColors ? e2.globals.colors[l2] : Array.isArray(e2.config.legend.labels.colors) ? null === (h2 = e2.config.legend.labels.colors) || void 0 === h2 ? void 0 : h2[l2] : e2.config.legend.labels.colors;
          T2 || (T2 = e2.config.chart.foreColor), I2.style.color = T2, I2.style.fontSize = parseFloat(e2.config.legend.fontSize) + "px", I2.style.fontWeight = e2.config.legend.fontWeight, I2.style.fontFamily = i2 || e2.config.chart.fontFamily, m.setAttrs(I2, { rel: l2 + 1, i: l2, "data:default-text": encodeURIComponent(c2), "data:collapsed": d2 || g2 }), P2.appendChild(f2), P2.appendChild(I2);
          var M2 = new y(this.ctx);
          if (!e2.config.legend.showForZeroSeries)
            0 === M2.getSeriesTotalByIndex(l2) && M2.seriesHaveSameValues(l2) && !M2.isSeriesNull(l2) && -1 === e2.globals.collapsedSeriesIndices.indexOf(l2) && -1 === e2.globals.ancillaryCollapsedSeriesIndices.indexOf(l2) && P2.classList.add("apexcharts-hidden-zero-series");
          e2.config.legend.showForNullSeries || M2.isSeriesNull(l2) && -1 === e2.globals.collapsedSeriesIndices.indexOf(l2) && -1 === e2.globals.ancillaryCollapsedSeriesIndices.indexOf(l2) && P2.classList.add("apexcharts-hidden-null-series"), e2.globals.dom.elLegendWrap.appendChild(P2), e2.globals.dom.elLegendWrap.classList.add("apexcharts-align-".concat(e2.config.legend.horizontalAlign)), e2.globals.dom.elLegendWrap.classList.add("apx-legend-position-" + e2.config.legend.position), P2.classList.add("apexcharts-legend-series"), P2.style.margin = "".concat(e2.config.legend.itemMargin.vertical, "px ").concat(e2.config.legend.itemMargin.horizontal, "px"), e2.globals.dom.elLegendWrap.style.width = e2.config.legend.width ? e2.config.legend.width + "px" : "", e2.globals.dom.elLegendWrap.style.height = e2.config.legend.height ? e2.config.legend.height + "px" : "", m.setAttrs(P2, { rel: l2 + 1, seriesName: x.escapeString(a2[l2]), "data:collapsed": d2 || g2 }), (d2 || g2) && P2.classList.add("apexcharts-inactive-legend"), e2.config.legend.onItemClick.toggleDataSeries || P2.classList.add("apexcharts-no-click");
        }
        e2.globals.dom.elWrap.addEventListener("click", t3.onLegendClick, true), e2.config.legend.onItemHover.highlightDataSeries && 0 === e2.config.legend.customLegendItems.length && (e2.globals.dom.elWrap.addEventListener("mousemove", t3.onLegendHovered, true), e2.globals.dom.elWrap.addEventListener("mouseout", t3.onLegendHovered, true));
      } }, { key: "setLegendWrapXY", value: function(t3, e2) {
        var i2 = this.w, a2 = i2.globals.dom.elLegendWrap, s2 = a2.getBoundingClientRect(), r2 = 0, o2 = 0;
        if ("bottom" === i2.config.legend.position)
          o2 += i2.globals.svgHeight - s2.height / 2;
        else if ("top" === i2.config.legend.position) {
          var n2 = new ot(this.ctx), l2 = n2.dimHelpers.getTitleSubtitleCoords("title").height, h2 = n2.dimHelpers.getTitleSubtitleCoords("subtitle").height;
          o2 = o2 + (l2 > 0 ? l2 - 10 : 0) + (h2 > 0 ? h2 - 10 : 0);
        }
        a2.style.position = "absolute", r2 = r2 + t3 + i2.config.legend.offsetX, o2 = o2 + e2 + i2.config.legend.offsetY, a2.style.left = r2 + "px", a2.style.top = o2 + "px", "bottom" === i2.config.legend.position ? (a2.style.top = "auto", a2.style.bottom = 5 - i2.config.legend.offsetY + "px") : "right" === i2.config.legend.position && (a2.style.left = "auto", a2.style.right = 25 + i2.config.legend.offsetX + "px");
        ["width", "height"].forEach(function(t4) {
          a2.style[t4] && (a2.style[t4] = parseInt(i2.config.legend[t4], 10) + "px");
        });
      } }, { key: "legendAlignHorizontal", value: function() {
        var t3 = this.w;
        t3.globals.dom.elLegendWrap.style.right = 0;
        var e2 = this.legendHelpers.getLegendBBox(), i2 = new ot(this.ctx), a2 = i2.dimHelpers.getTitleSubtitleCoords("title"), s2 = i2.dimHelpers.getTitleSubtitleCoords("subtitle"), r2 = 0;
        "bottom" === t3.config.legend.position ? r2 = -e2.clwh / 1.8 : "top" === t3.config.legend.position && (r2 = a2.height + s2.height + t3.config.title.margin + t3.config.subtitle.margin - 10), this.setLegendWrapXY(20, r2);
      } }, { key: "legendAlignVertical", value: function() {
        var t3 = this.w, e2 = this.legendHelpers.getLegendBBox(), i2 = 0;
        "left" === t3.config.legend.position && (i2 = 20), "right" === t3.config.legend.position && (i2 = t3.globals.svgWidth - e2.clww - 10), this.setLegendWrapXY(i2, 20);
      } }, { key: "onLegendHovered", value: function(t3) {
        var e2 = this.w, i2 = t3.target.classList.contains("apexcharts-legend-series") || t3.target.classList.contains("apexcharts-legend-text") || t3.target.classList.contains("apexcharts-legend-marker");
        if ("heatmap" === e2.config.chart.type || this.isBarsDistributed) {
          if (i2) {
            var a2 = parseInt(t3.target.getAttribute("rel"), 10) - 1;
            this.ctx.events.fireEvent("legendHover", [this.ctx, a2, this.w]), new N(this.ctx).highlightRangeInSeries(t3, t3.target);
          }
        } else
          !t3.target.classList.contains("apexcharts-inactive-legend") && i2 && new N(this.ctx).toggleSeriesOnHover(t3, t3.target);
      } }, { key: "onLegendClick", value: function(t3) {
        var e2 = this.w;
        if (!e2.config.legend.customLegendItems.length && (t3.target.classList.contains("apexcharts-legend-series") || t3.target.classList.contains("apexcharts-legend-text") || t3.target.classList.contains("apexcharts-legend-marker"))) {
          var i2 = parseInt(t3.target.getAttribute("rel"), 10) - 1, a2 = "true" === t3.target.getAttribute("data:collapsed"), s2 = this.w.config.chart.events.legendClick;
          "function" == typeof s2 && s2(this.ctx, i2, this.w), this.ctx.events.fireEvent("legendClick", [this.ctx, i2, this.w]);
          var r2 = this.w.config.legend.markers.onClick;
          "function" == typeof r2 && t3.target.classList.contains("apexcharts-legend-marker") && (r2(this.ctx, i2, this.w), this.ctx.events.fireEvent("legendMarkerClick", [this.ctx, i2, this.w])), "treemap" !== e2.config.chart.type && "heatmap" !== e2.config.chart.type && !this.isBarsDistributed && e2.config.legend.onItemClick.toggleDataSeries && this.legendHelpers.toggleDataSeries(i2, a2);
        }
      } }]), t2;
    }();
    var ht = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
        var i2 = this.w;
        this.ev = this.w.config.chart.events, this.selectedClass = "apexcharts-selected", this.localeValues = this.w.globals.locale.toolbar, this.minX = i2.globals.minX, this.maxX = i2.globals.maxX;
      }
      return r(t2, [{ key: "createToolbar", value: function() {
        var t3 = this, e2 = this.w, i2 = function() {
          return document.createElement("div");
        }, a2 = i2();
        if (a2.setAttribute("class", "apexcharts-toolbar"), a2.style.top = e2.config.chart.toolbar.offsetY + "px", a2.style.right = 3 - e2.config.chart.toolbar.offsetX + "px", e2.globals.dom.elWrap.appendChild(a2), this.elZoom = i2(), this.elZoomIn = i2(), this.elZoomOut = i2(), this.elPan = i2(), this.elSelection = i2(), this.elZoomReset = i2(), this.elMenuIcon = i2(), this.elMenu = i2(), this.elCustomIcons = [], this.t = e2.config.chart.toolbar.tools, Array.isArray(this.t.customIcons))
          for (var s2 = 0; s2 < this.t.customIcons.length; s2++)
            this.elCustomIcons.push(i2());
        var r2 = [], o2 = function(i3, a3, s3) {
          var o3 = i3.toLowerCase();
          t3.t[o3] && e2.config.chart.zoom.enabled && r2.push({ el: a3, icon: "string" == typeof t3.t[o3] ? t3.t[o3] : s3, title: t3.localeValues[i3], class: "apexcharts-".concat(o3, "-icon") });
        };
        o2("zoomIn", this.elZoomIn, '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">\n    <path d="M0 0h24v24H0z" fill="none"/>\n    <path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\n</svg>\n'), o2("zoomOut", this.elZoomOut, '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">\n    <path d="M0 0h24v24H0z" fill="none"/>\n    <path d="M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\n</svg>\n');
        var n2 = function(i3) {
          t3.t[i3] && e2.config.chart[i3].enabled && r2.push({ el: "zoom" === i3 ? t3.elZoom : t3.elSelection, icon: "string" == typeof t3.t[i3] ? t3.t[i3] : "zoom" === i3 ? '<svg xmlns="http://www.w3.org/2000/svg" fill="#000000" height="24" viewBox="0 0 24 24" width="24">\n    <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>\n    <path d="M0 0h24v24H0V0z" fill="none"/>\n    <path d="M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z"/>\n</svg>' : '<svg fill="#6E8192" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">\n    <path d="M0 0h24v24H0z" fill="none"/>\n    <path d="M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2z"/>\n</svg>', title: t3.localeValues["zoom" === i3 ? "selectionZoom" : "selection"], class: e2.globals.isTouchDevice ? "apexcharts-element-hidden" : "apexcharts-".concat(i3, "-icon") });
        };
        n2("zoom"), n2("selection"), this.t.pan && e2.config.chart.zoom.enabled && r2.push({ el: this.elPan, icon: "string" == typeof this.t.pan ? this.t.pan : '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000000" height="24" viewBox="0 0 24 24" width="24">\n    <defs>\n        <path d="M0 0h24v24H0z" id="a"/>\n    </defs>\n    <clipPath id="b">\n        <use overflow="visible" xlink:href="#a"/>\n    </clipPath>\n    <path clip-path="url(#b)" d="M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z"/>\n</svg>', title: this.localeValues.pan, class: e2.globals.isTouchDevice ? "apexcharts-element-hidden" : "apexcharts-pan-icon" }), o2("reset", this.elZoomReset, '<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">\n    <path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/>\n    <path d="M0 0h24v24H0z" fill="none"/>\n</svg>'), this.t.download && r2.push({ el: this.elMenuIcon, icon: "string" == typeof this.t.download ? this.t.download : '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>', title: this.localeValues.menu, class: "apexcharts-menu-icon" });
        for (var l2 = 0; l2 < this.elCustomIcons.length; l2++)
          r2.push({ el: this.elCustomIcons[l2], icon: this.t.customIcons[l2].icon, title: this.t.customIcons[l2].title, index: this.t.customIcons[l2].index, class: "apexcharts-toolbar-custom-icon " + this.t.customIcons[l2].class });
        r2.forEach(function(t4, e3) {
          t4.index && x.moveIndexInArray(r2, e3, t4.index);
        });
        for (var h2 = 0; h2 < r2.length; h2++)
          m.setAttrs(r2[h2].el, { class: r2[h2].class, title: r2[h2].title }), r2[h2].el.innerHTML = r2[h2].icon, a2.appendChild(r2[h2].el);
        this._createHamburgerMenu(a2), e2.globals.zoomEnabled ? this.elZoom.classList.add(this.selectedClass) : e2.globals.panEnabled ? this.elPan.classList.add(this.selectedClass) : e2.globals.selectionEnabled && this.elSelection.classList.add(this.selectedClass), this.addToolbarEventListeners();
      } }, { key: "_createHamburgerMenu", value: function(t3) {
        this.elMenuItems = [], t3.appendChild(this.elMenu), m.setAttrs(this.elMenu, { class: "apexcharts-menu" });
        for (var e2 = [{ name: "exportSVG", title: this.localeValues.exportToSVG }, { name: "exportPNG", title: this.localeValues.exportToPNG }, { name: "exportCSV", title: this.localeValues.exportToCSV }], i2 = 0; i2 < e2.length; i2++)
          this.elMenuItems.push(document.createElement("div")), this.elMenuItems[i2].innerHTML = e2[i2].title, m.setAttrs(this.elMenuItems[i2], { class: "apexcharts-menu-item ".concat(e2[i2].name), title: e2[i2].title }), this.elMenu.appendChild(this.elMenuItems[i2]);
      } }, { key: "addToolbarEventListeners", value: function() {
        var t3 = this;
        this.elZoomReset.addEventListener("click", this.handleZoomReset.bind(this)), this.elSelection.addEventListener("click", this.toggleZoomSelection.bind(this, "selection")), this.elZoom.addEventListener("click", this.toggleZoomSelection.bind(this, "zoom")), this.elZoomIn.addEventListener("click", this.handleZoomIn.bind(this)), this.elZoomOut.addEventListener("click", this.handleZoomOut.bind(this)), this.elPan.addEventListener("click", this.togglePanning.bind(this)), this.elMenuIcon.addEventListener("click", this.toggleMenu.bind(this)), this.elMenuItems.forEach(function(e3) {
          e3.classList.contains("exportSVG") ? e3.addEventListener("click", t3.handleDownload.bind(t3, "svg")) : e3.classList.contains("exportPNG") ? e3.addEventListener("click", t3.handleDownload.bind(t3, "png")) : e3.classList.contains("exportCSV") && e3.addEventListener("click", t3.handleDownload.bind(t3, "csv"));
        });
        for (var e2 = 0; e2 < this.t.customIcons.length; e2++)
          this.elCustomIcons[e2].addEventListener("click", this.t.customIcons[e2].click.bind(this, this.ctx, this.ctx.w));
      } }, { key: "toggleZoomSelection", value: function(t3) {
        this.ctx.getSyncedCharts().forEach(function(e2) {
          e2.ctx.toolbar.toggleOtherControls();
          var i2 = "selection" === t3 ? e2.ctx.toolbar.elSelection : e2.ctx.toolbar.elZoom, a2 = "selection" === t3 ? "selectionEnabled" : "zoomEnabled";
          e2.w.globals[a2] = !e2.w.globals[a2], i2.classList.contains(e2.ctx.toolbar.selectedClass) ? i2.classList.remove(e2.ctx.toolbar.selectedClass) : i2.classList.add(e2.ctx.toolbar.selectedClass);
        });
      } }, { key: "getToolbarIconsReference", value: function() {
        var t3 = this.w;
        this.elZoom || (this.elZoom = t3.globals.dom.baseEl.querySelector(".apexcharts-zoom-icon")), this.elPan || (this.elPan = t3.globals.dom.baseEl.querySelector(".apexcharts-pan-icon")), this.elSelection || (this.elSelection = t3.globals.dom.baseEl.querySelector(".apexcharts-selection-icon"));
      } }, { key: "enableZoomPanFromToolbar", value: function(t3) {
        this.toggleOtherControls(), "pan" === t3 ? this.w.globals.panEnabled = true : this.w.globals.zoomEnabled = true;
        var e2 = "pan" === t3 ? this.elPan : this.elZoom, i2 = "pan" === t3 ? this.elZoom : this.elPan;
        e2 && e2.classList.add(this.selectedClass), i2 && i2.classList.remove(this.selectedClass);
      } }, { key: "togglePanning", value: function() {
        this.ctx.getSyncedCharts().forEach(function(t3) {
          t3.ctx.toolbar.toggleOtherControls(), t3.w.globals.panEnabled = !t3.w.globals.panEnabled, t3.ctx.toolbar.elPan.classList.contains(t3.ctx.toolbar.selectedClass) ? t3.ctx.toolbar.elPan.classList.remove(t3.ctx.toolbar.selectedClass) : t3.ctx.toolbar.elPan.classList.add(t3.ctx.toolbar.selectedClass);
        });
      } }, { key: "toggleOtherControls", value: function() {
        var t3 = this, e2 = this.w;
        e2.globals.panEnabled = false, e2.globals.zoomEnabled = false, e2.globals.selectionEnabled = false, this.getToolbarIconsReference(), [this.elPan, this.elSelection, this.elZoom].forEach(function(e3) {
          e3 && e3.classList.remove(t3.selectedClass);
        });
      } }, { key: "handleZoomIn", value: function() {
        var t3 = this.w;
        t3.globals.isRangeBar && (this.minX = t3.globals.minY, this.maxX = t3.globals.maxY);
        var e2 = (this.minX + this.maxX) / 2, i2 = (this.minX + e2) / 2, a2 = (this.maxX + e2) / 2, s2 = this._getNewMinXMaxX(i2, a2);
        t3.globals.disableZoomIn || this.zoomUpdateOptions(s2.minX, s2.maxX);
      } }, { key: "handleZoomOut", value: function() {
        var t3 = this.w;
        if (t3.globals.isRangeBar && (this.minX = t3.globals.minY, this.maxX = t3.globals.maxY), !("datetime" === t3.config.xaxis.type && new Date(this.minX).getUTCFullYear() < 1e3)) {
          var e2 = (this.minX + this.maxX) / 2, i2 = this.minX - (e2 - this.minX), a2 = this.maxX - (e2 - this.maxX), s2 = this._getNewMinXMaxX(i2, a2);
          t3.globals.disableZoomOut || this.zoomUpdateOptions(s2.minX, s2.maxX);
        }
      } }, { key: "_getNewMinXMaxX", value: function(t3, e2) {
        var i2 = this.w.config.xaxis.convertedCatToNumeric;
        return { minX: i2 ? Math.floor(t3) : t3, maxX: i2 ? Math.floor(e2) : e2 };
      } }, { key: "zoomUpdateOptions", value: function(t3, e2) {
        var i2 = this.w;
        if (void 0 !== t3 || void 0 !== e2) {
          if (!(i2.config.xaxis.convertedCatToNumeric && (t3 < 1 && (t3 = 1, e2 = i2.globals.dataPoints), e2 - t3 < 2))) {
            var a2 = { min: t3, max: e2 }, s2 = this.getBeforeZoomRange(a2);
            s2 && (a2 = s2.xaxis);
            var r2 = { xaxis: a2 }, o2 = x.clone(i2.globals.initialConfig.yaxis);
            if (i2.config.chart.zoom.autoScaleYaxis)
              o2 = new _(this.ctx).autoScaleY(this.ctx, o2, { xaxis: a2 });
            i2.config.chart.group || (r2.yaxis = o2), this.w.globals.zoomed = true, this.ctx.updateHelpers._updateOptions(r2, false, this.w.config.chart.animations.dynamicAnimation.enabled), this.zoomCallback(a2, o2);
          }
        } else
          this.handleZoomReset();
      } }, { key: "zoomCallback", value: function(t3, e2) {
        "function" == typeof this.ev.zoomed && this.ev.zoomed(this.ctx, { xaxis: t3, yaxis: e2 });
      } }, { key: "getBeforeZoomRange", value: function(t3, e2) {
        var i2 = null;
        return "function" == typeof this.ev.beforeZoom && (i2 = this.ev.beforeZoom(this, { xaxis: t3, yaxis: e2 })), i2;
      } }, { key: "toggleMenu", value: function() {
        var t3 = this;
        window.setTimeout(function() {
          t3.elMenu.classList.contains("apexcharts-menu-open") ? t3.elMenu.classList.remove("apexcharts-menu-open") : t3.elMenu.classList.add("apexcharts-menu-open");
        }, 0);
      } }, { key: "handleDownload", value: function(t3) {
        var e2 = this.w, i2 = new G(this.ctx);
        switch (t3) {
          case "svg":
            i2.exportToSVG(this.ctx);
            break;
          case "png":
            i2.exportToPng(this.ctx);
            break;
          case "csv":
            i2.exportToCSV({ series: e2.config.series, columnDelimiter: e2.config.chart.toolbar.export.csv.columnDelimiter });
        }
      } }, { key: "handleZoomReset", value: function(t3) {
        this.ctx.getSyncedCharts().forEach(function(t4) {
          var e2 = t4.w;
          if (e2.globals.lastXAxis.min = e2.globals.initialConfig.xaxis.min, e2.globals.lastXAxis.max = e2.globals.initialConfig.xaxis.max, t4.updateHelpers.revertDefaultAxisMinMax(), "function" == typeof e2.config.chart.events.beforeResetZoom) {
            var i2 = e2.config.chart.events.beforeResetZoom(t4, e2);
            i2 && t4.updateHelpers.revertDefaultAxisMinMax(i2);
          }
          "function" == typeof e2.config.chart.events.zoomed && t4.ctx.toolbar.zoomCallback({ min: e2.config.xaxis.min, max: e2.config.xaxis.max }), e2.globals.zoomed = false;
          var a2 = t4.ctx.series.emptyCollapsedSeries(x.clone(e2.globals.initialSeries));
          t4.updateHelpers._updateSeries(a2, e2.config.chart.animations.dynamicAnimation.enabled);
        });
      } }, { key: "destroy", value: function() {
        this.elZoom = null, this.elZoomIn = null, this.elZoomOut = null, this.elPan = null, this.elSelection = null, this.elZoomReset = null, this.elMenuIcon = null;
      } }]), t2;
    }();
    var ct = function(t2) {
      n(i2, ht);
      var e2 = d(i2);
      function i2(t3) {
        var s2;
        return a(this, i2), (s2 = e2.call(this, t3)).ctx = t3, s2.w = t3.w, s2.dragged = false, s2.graphics = new m(s2.ctx), s2.eventList = ["mousedown", "mouseleave", "mousemove", "touchstart", "touchmove", "mouseup", "touchend"], s2.clientX = 0, s2.clientY = 0, s2.startX = 0, s2.endX = 0, s2.dragX = 0, s2.startY = 0, s2.endY = 0, s2.dragY = 0, s2.moveDirection = "none", s2;
      }
      return r(i2, [{ key: "init", value: function(t3) {
        var e3 = this, i3 = t3.xyRatios, a2 = this.w, s2 = this;
        this.xyRatios = i3, this.zoomRect = this.graphics.drawRect(0, 0, 0, 0), this.selectionRect = this.graphics.drawRect(0, 0, 0, 0), this.gridRect = a2.globals.dom.baseEl.querySelector(".apexcharts-grid"), this.zoomRect.node.classList.add("apexcharts-zoom-rect"), this.selectionRect.node.classList.add("apexcharts-selection-rect"), a2.globals.dom.elGraphical.add(this.zoomRect), a2.globals.dom.elGraphical.add(this.selectionRect), "x" === a2.config.chart.selection.type ? this.slDraggableRect = this.selectionRect.draggable({ minX: 0, minY: 0, maxX: a2.globals.gridWidth, maxY: a2.globals.gridHeight }).on("dragmove", this.selectionDragging.bind(this, "dragging")) : "y" === a2.config.chart.selection.type ? this.slDraggableRect = this.selectionRect.draggable({ minX: 0, maxX: a2.globals.gridWidth }).on("dragmove", this.selectionDragging.bind(this, "dragging")) : this.slDraggableRect = this.selectionRect.draggable().on("dragmove", this.selectionDragging.bind(this, "dragging")), this.preselectedSelection(), this.hoverArea = a2.globals.dom.baseEl.querySelector("".concat(a2.globals.chartClass, " .apexcharts-svg")), this.hoverArea.classList.add("apexcharts-zoomable"), this.eventList.forEach(function(t4) {
          e3.hoverArea.addEventListener(t4, s2.svgMouseEvents.bind(s2, i3), { capture: false, passive: true });
        });
      } }, { key: "destroy", value: function() {
        this.slDraggableRect && (this.slDraggableRect.draggable(false), this.slDraggableRect.off(), this.selectionRect.off()), this.selectionRect = null, this.zoomRect = null, this.gridRect = null;
      } }, { key: "svgMouseEvents", value: function(t3, e3) {
        var i3 = this.w, a2 = this, s2 = this.ctx.toolbar, r2 = i3.globals.zoomEnabled ? i3.config.chart.zoom.type : i3.config.chart.selection.type, o2 = i3.config.chart.toolbar.autoSelected;
        if (e3.shiftKey ? (this.shiftWasPressed = true, s2.enableZoomPanFromToolbar("pan" === o2 ? "zoom" : "pan")) : this.shiftWasPressed && (s2.enableZoomPanFromToolbar(o2), this.shiftWasPressed = false), e3.target) {
          var n2, l2 = e3.target.classList;
          if (e3.target.parentNode && null !== e3.target.parentNode && (n2 = e3.target.parentNode.classList), !(l2.contains("apexcharts-selection-rect") || l2.contains("apexcharts-legend-marker") || l2.contains("apexcharts-legend-text") || n2 && n2.contains("apexcharts-toolbar"))) {
            if (a2.clientX = "touchmove" === e3.type || "touchstart" === e3.type ? e3.touches[0].clientX : "touchend" === e3.type ? e3.changedTouches[0].clientX : e3.clientX, a2.clientY = "touchmove" === e3.type || "touchstart" === e3.type ? e3.touches[0].clientY : "touchend" === e3.type ? e3.changedTouches[0].clientY : e3.clientY, "mousedown" === e3.type && 1 === e3.which) {
              var h2 = a2.gridRect.getBoundingClientRect();
              a2.startX = a2.clientX - h2.left, a2.startY = a2.clientY - h2.top, a2.dragged = false, a2.w.globals.mousedown = true;
            }
            if (("mousemove" === e3.type && 1 === e3.which || "touchmove" === e3.type) && (a2.dragged = true, i3.globals.panEnabled ? (i3.globals.selection = null, a2.w.globals.mousedown && a2.panDragging({ context: a2, zoomtype: r2, xyRatios: t3 })) : (a2.w.globals.mousedown && i3.globals.zoomEnabled || a2.w.globals.mousedown && i3.globals.selectionEnabled) && (a2.selection = a2.selectionDrawing({ context: a2, zoomtype: r2 }))), "mouseup" === e3.type || "touchend" === e3.type || "mouseleave" === e3.type) {
              var c2 = a2.gridRect.getBoundingClientRect();
              a2.w.globals.mousedown && (a2.endX = a2.clientX - c2.left, a2.endY = a2.clientY - c2.top, a2.dragX = Math.abs(a2.endX - a2.startX), a2.dragY = Math.abs(a2.endY - a2.startY), (i3.globals.zoomEnabled || i3.globals.selectionEnabled) && a2.selectionDrawn({ context: a2, zoomtype: r2 }), i3.globals.panEnabled && i3.config.xaxis.convertedCatToNumeric && a2.delayedPanScrolled()), i3.globals.zoomEnabled && a2.hideSelectionRect(this.selectionRect), a2.dragged = false, a2.w.globals.mousedown = false;
            }
            this.makeSelectionRectDraggable();
          }
        }
      } }, { key: "makeSelectionRectDraggable", value: function() {
        var t3 = this.w;
        if (this.selectionRect) {
          var e3 = this.selectionRect.node.getBoundingClientRect();
          e3.width > 0 && e3.height > 0 && this.slDraggableRect.selectize({ points: "l, r", pointSize: 8, pointType: "rect" }).resize({ constraint: { minX: 0, minY: 0, maxX: t3.globals.gridWidth, maxY: t3.globals.gridHeight } }).on("resizing", this.selectionDragging.bind(this, "resizing"));
        }
      } }, { key: "preselectedSelection", value: function() {
        var t3 = this.w, e3 = this.xyRatios;
        if (!t3.globals.zoomEnabled) {
          if (void 0 !== t3.globals.selection && null !== t3.globals.selection)
            this.drawSelectionRect(t3.globals.selection);
          else if (void 0 !== t3.config.chart.selection.xaxis.min && void 0 !== t3.config.chart.selection.xaxis.max) {
            var i3 = (t3.config.chart.selection.xaxis.min - t3.globals.minX) / e3.xRatio, a2 = t3.globals.gridWidth - (t3.globals.maxX - t3.config.chart.selection.xaxis.max) / e3.xRatio - i3;
            t3.globals.isRangeBar && (i3 = (t3.config.chart.selection.xaxis.min - t3.globals.yAxisScale[0].niceMin) / e3.invertedYRatio, a2 = (t3.config.chart.selection.xaxis.max - t3.config.chart.selection.xaxis.min) / e3.invertedYRatio);
            var s2 = { x: i3, y: 0, width: a2, height: t3.globals.gridHeight, translateX: 0, translateY: 0, selectionEnabled: true };
            this.drawSelectionRect(s2), this.makeSelectionRectDraggable(), "function" == typeof t3.config.chart.events.selection && t3.config.chart.events.selection(this.ctx, { xaxis: { min: t3.config.chart.selection.xaxis.min, max: t3.config.chart.selection.xaxis.max }, yaxis: {} });
          }
        }
      } }, { key: "drawSelectionRect", value: function(t3) {
        var e3 = t3.x, i3 = t3.y, a2 = t3.width, s2 = t3.height, r2 = t3.translateX, o2 = void 0 === r2 ? 0 : r2, n2 = t3.translateY, l2 = void 0 === n2 ? 0 : n2, h2 = this.w, c2 = this.zoomRect, d2 = this.selectionRect;
        if (this.dragged || null !== h2.globals.selection) {
          var g2 = { transform: "translate(" + o2 + ", " + l2 + ")" };
          h2.globals.zoomEnabled && this.dragged && (a2 < 0 && (a2 = 1), c2.attr({ x: e3, y: i3, width: a2, height: s2, fill: h2.config.chart.zoom.zoomedArea.fill.color, "fill-opacity": h2.config.chart.zoom.zoomedArea.fill.opacity, stroke: h2.config.chart.zoom.zoomedArea.stroke.color, "stroke-width": h2.config.chart.zoom.zoomedArea.stroke.width, "stroke-opacity": h2.config.chart.zoom.zoomedArea.stroke.opacity }), m.setAttrs(c2.node, g2)), h2.globals.selectionEnabled && (d2.attr({ x: e3, y: i3, width: a2 > 0 ? a2 : 0, height: s2 > 0 ? s2 : 0, fill: h2.config.chart.selection.fill.color, "fill-opacity": h2.config.chart.selection.fill.opacity, stroke: h2.config.chart.selection.stroke.color, "stroke-width": h2.config.chart.selection.stroke.width, "stroke-dasharray": h2.config.chart.selection.stroke.dashArray, "stroke-opacity": h2.config.chart.selection.stroke.opacity }), m.setAttrs(d2.node, g2));
        }
      } }, { key: "hideSelectionRect", value: function(t3) {
        t3 && t3.attr({ x: 0, y: 0, width: 0, height: 0 });
      } }, { key: "selectionDrawing", value: function(t3) {
        var e3 = t3.context, i3 = t3.zoomtype, a2 = this.w, s2 = e3, r2 = this.gridRect.getBoundingClientRect(), o2 = s2.startX - 1, n2 = s2.startY, l2 = false, h2 = false, c2 = s2.clientX - r2.left - o2, d2 = s2.clientY - r2.top - n2, g2 = {};
        return Math.abs(c2 + o2) > a2.globals.gridWidth ? c2 = a2.globals.gridWidth - o2 : s2.clientX - r2.left < 0 && (c2 = o2), o2 > s2.clientX - r2.left && (l2 = true, c2 = Math.abs(c2)), n2 > s2.clientY - r2.top && (h2 = true, d2 = Math.abs(d2)), g2 = "x" === i3 ? { x: l2 ? o2 - c2 : o2, y: 0, width: c2, height: a2.globals.gridHeight } : "y" === i3 ? { x: 0, y: h2 ? n2 - d2 : n2, width: a2.globals.gridWidth, height: d2 } : { x: l2 ? o2 - c2 : o2, y: h2 ? n2 - d2 : n2, width: c2, height: d2 }, s2.drawSelectionRect(g2), s2.selectionDragging("resizing"), g2;
      } }, { key: "selectionDragging", value: function(t3, e3) {
        var i3 = this, a2 = this.w, s2 = this.xyRatios, r2 = this.selectionRect, o2 = 0;
        "resizing" === t3 && (o2 = 30);
        var n2 = function(t4) {
          return parseFloat(r2.node.getAttribute(t4));
        }, l2 = { x: n2("x"), y: n2("y"), width: n2("width"), height: n2("height") };
        a2.globals.selection = l2, "function" == typeof a2.config.chart.events.selection && a2.globals.selectionEnabled && (clearTimeout(this.w.globals.selectionResizeTimer), this.w.globals.selectionResizeTimer = window.setTimeout(function() {
          var t4, e4, o3, n3, l3 = i3.gridRect.getBoundingClientRect(), h2 = r2.node.getBoundingClientRect();
          a2.globals.isRangeBar ? (t4 = a2.globals.yAxisScale[0].niceMin + (h2.left - l3.left) * s2.invertedYRatio, e4 = a2.globals.yAxisScale[0].niceMin + (h2.right - l3.left) * s2.invertedYRatio, o3 = 0, n3 = 1) : (t4 = a2.globals.xAxisScale.niceMin + (h2.left - l3.left) * s2.xRatio, e4 = a2.globals.xAxisScale.niceMin + (h2.right - l3.left) * s2.xRatio, o3 = a2.globals.yAxisScale[0].niceMin + (l3.bottom - h2.bottom) * s2.yRatio[0], n3 = a2.globals.yAxisScale[0].niceMax - (h2.top - l3.top) * s2.yRatio[0]);
          var c2 = { xaxis: { min: t4, max: e4 }, yaxis: { min: o3, max: n3 } };
          a2.config.chart.events.selection(i3.ctx, c2), a2.config.chart.brush.enabled && void 0 !== a2.config.chart.events.brushScrolled && a2.config.chart.events.brushScrolled(i3.ctx, c2);
        }, o2));
      } }, { key: "selectionDrawn", value: function(t3) {
        var e3 = t3.context, i3 = t3.zoomtype, a2 = this.w, s2 = e3, r2 = this.xyRatios, o2 = this.ctx.toolbar;
        if (s2.startX > s2.endX) {
          var n2 = s2.startX;
          s2.startX = s2.endX, s2.endX = n2;
        }
        if (s2.startY > s2.endY) {
          var l2 = s2.startY;
          s2.startY = s2.endY, s2.endY = l2;
        }
        var h2 = void 0, c2 = void 0;
        a2.globals.isRangeBar ? (h2 = a2.globals.yAxisScale[0].niceMin + s2.startX * r2.invertedYRatio, c2 = a2.globals.yAxisScale[0].niceMin + s2.endX * r2.invertedYRatio) : (h2 = a2.globals.xAxisScale.niceMin + s2.startX * r2.xRatio, c2 = a2.globals.xAxisScale.niceMin + s2.endX * r2.xRatio);
        var d2 = [], g2 = [];
        if (a2.config.yaxis.forEach(function(t4, e4) {
          d2.push(a2.globals.yAxisScale[e4].niceMax - r2.yRatio[e4] * s2.startY), g2.push(a2.globals.yAxisScale[e4].niceMax - r2.yRatio[e4] * s2.endY);
        }), s2.dragged && (s2.dragX > 10 || s2.dragY > 10) && h2 !== c2) {
          if (a2.globals.zoomEnabled) {
            var u2 = x.clone(a2.globals.initialConfig.yaxis), p2 = x.clone(a2.globals.initialConfig.xaxis);
            if (a2.globals.zoomed = true, a2.config.xaxis.convertedCatToNumeric && (h2 = Math.floor(h2), c2 = Math.floor(c2), h2 < 1 && (h2 = 1, c2 = a2.globals.dataPoints), c2 - h2 < 2 && (c2 = h2 + 1)), "xy" !== i3 && "x" !== i3 || (p2 = { min: h2, max: c2 }), "xy" !== i3 && "y" !== i3 || u2.forEach(function(t4, e4) {
              u2[e4].min = g2[e4], u2[e4].max = d2[e4];
            }), a2.config.chart.zoom.autoScaleYaxis) {
              var f2 = new _(s2.ctx);
              u2 = f2.autoScaleY(s2.ctx, u2, { xaxis: p2 });
            }
            if (o2) {
              var b2 = o2.getBeforeZoomRange(p2, u2);
              b2 && (p2 = b2.xaxis ? b2.xaxis : p2, u2 = b2.yaxis ? b2.yaxis : u2);
            }
            var v2 = { xaxis: p2 };
            a2.config.chart.group || (v2.yaxis = u2), s2.ctx.updateHelpers._updateOptions(v2, false, s2.w.config.chart.animations.dynamicAnimation.enabled), "function" == typeof a2.config.chart.events.zoomed && o2.zoomCallback(p2, u2);
          } else if (a2.globals.selectionEnabled) {
            var m2, y2 = null;
            m2 = { min: h2, max: c2 }, "xy" !== i3 && "y" !== i3 || (y2 = x.clone(a2.config.yaxis)).forEach(function(t4, e4) {
              y2[e4].min = g2[e4], y2[e4].max = d2[e4];
            }), a2.globals.selection = s2.selection, "function" == typeof a2.config.chart.events.selection && a2.config.chart.events.selection(s2.ctx, { xaxis: m2, yaxis: y2 });
          }
        }
      } }, { key: "panDragging", value: function(t3) {
        var e3 = t3.context, i3 = this.w, a2 = e3;
        if (void 0 !== i3.globals.lastClientPosition.x) {
          var s2 = i3.globals.lastClientPosition.x - a2.clientX, r2 = i3.globals.lastClientPosition.y - a2.clientY;
          Math.abs(s2) > Math.abs(r2) && s2 > 0 ? this.moveDirection = "left" : Math.abs(s2) > Math.abs(r2) && s2 < 0 ? this.moveDirection = "right" : Math.abs(r2) > Math.abs(s2) && r2 > 0 ? this.moveDirection = "up" : Math.abs(r2) > Math.abs(s2) && r2 < 0 && (this.moveDirection = "down");
        }
        i3.globals.lastClientPosition = { x: a2.clientX, y: a2.clientY };
        var o2 = i3.globals.isRangeBar ? i3.globals.minY : i3.globals.minX, n2 = i3.globals.isRangeBar ? i3.globals.maxY : i3.globals.maxX;
        i3.config.xaxis.convertedCatToNumeric || a2.panScrolled(o2, n2);
      } }, { key: "delayedPanScrolled", value: function() {
        var t3 = this.w, e3 = t3.globals.minX, i3 = t3.globals.maxX, a2 = (t3.globals.maxX - t3.globals.minX) / 2;
        "left" === this.moveDirection ? (e3 = t3.globals.minX + a2, i3 = t3.globals.maxX + a2) : "right" === this.moveDirection && (e3 = t3.globals.minX - a2, i3 = t3.globals.maxX - a2), e3 = Math.floor(e3), i3 = Math.floor(i3), this.updateScrolledChart({ xaxis: { min: e3, max: i3 } }, e3, i3);
      } }, { key: "panScrolled", value: function(t3, e3) {
        var i3 = this.w, a2 = this.xyRatios, s2 = x.clone(i3.globals.initialConfig.yaxis), r2 = a2.xRatio, o2 = i3.globals.minX, n2 = i3.globals.maxX;
        i3.globals.isRangeBar && (r2 = a2.invertedYRatio, o2 = i3.globals.minY, n2 = i3.globals.maxY), "left" === this.moveDirection ? (t3 = o2 + i3.globals.gridWidth / 15 * r2, e3 = n2 + i3.globals.gridWidth / 15 * r2) : "right" === this.moveDirection && (t3 = o2 - i3.globals.gridWidth / 15 * r2, e3 = n2 - i3.globals.gridWidth / 15 * r2), i3.globals.isRangeBar || (t3 < i3.globals.initialMinX || e3 > i3.globals.initialMaxX) && (t3 = o2, e3 = n2);
        var l2 = { min: t3, max: e3 };
        i3.config.chart.zoom.autoScaleYaxis && (s2 = new _(this.ctx).autoScaleY(this.ctx, s2, { xaxis: l2 }));
        var h2 = { xaxis: { min: t3, max: e3 } };
        i3.config.chart.group || (h2.yaxis = s2), this.updateScrolledChart(h2, t3, e3);
      } }, { key: "updateScrolledChart", value: function(t3, e3, i3) {
        var a2 = this.w;
        this.ctx.updateHelpers._updateOptions(t3, false, false), "function" == typeof a2.config.chart.events.scrolled && a2.config.chart.events.scrolled(this.ctx, { xaxis: { min: e3, max: i3 } });
      } }]), i2;
    }();
    var dt = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.ttCtx = e2, this.ctx = e2.ctx;
      }
      return r(t2, [{ key: "getNearestValues", value: function(t3) {
        var e2 = t3.hoverArea, i2 = t3.elGrid, a2 = t3.clientX, s2 = t3.clientY, r2 = this.w, o2 = i2.getBoundingClientRect(), n2 = o2.width, l2 = o2.height, h2 = n2 / (r2.globals.dataPoints - 1), c2 = l2 / r2.globals.dataPoints, d2 = this.hasBars();
        !r2.globals.comboCharts && !d2 || r2.config.xaxis.convertedCatToNumeric || (h2 = n2 / r2.globals.dataPoints);
        var g2 = a2 - o2.left - r2.globals.barPadForNumericAxis, u2 = s2 - o2.top;
        g2 < 0 || u2 < 0 || g2 > n2 || u2 > l2 ? (e2.classList.remove("hovering-zoom"), e2.classList.remove("hovering-pan")) : r2.globals.zoomEnabled ? (e2.classList.remove("hovering-pan"), e2.classList.add("hovering-zoom")) : r2.globals.panEnabled && (e2.classList.remove("hovering-zoom"), e2.classList.add("hovering-pan"));
        var p2 = Math.round(g2 / h2), f2 = Math.floor(u2 / c2);
        d2 && !r2.config.xaxis.convertedCatToNumeric && (p2 = Math.ceil(g2 / h2), p2 -= 1);
        var b2 = null, v2 = null, m2 = r2.globals.seriesXvalues.map(function(t4) {
          return t4.filter(function(t5) {
            return x.isNumber(t5);
          });
        }), y2 = r2.globals.seriesYvalues.map(function(t4) {
          return t4.filter(function(t5) {
            return x.isNumber(t5);
          });
        });
        if (r2.globals.isXNumeric) {
          var w2 = this.ttCtx.getElGrid().getBoundingClientRect(), k2 = g2 * (w2.width / n2), A3 = u2 * (w2.height / l2);
          b2 = (v2 = this.closestInMultiArray(k2, A3, m2, y2)).index, p2 = v2.j, null !== b2 && (m2 = r2.globals.seriesXvalues[b2], p2 = (v2 = this.closestInArray(k2, m2)).index);
        }
        return r2.globals.capturedSeriesIndex = null === b2 ? -1 : b2, (!p2 || p2 < 1) && (p2 = 0), r2.globals.isBarHorizontal ? r2.globals.capturedDataPointIndex = f2 : r2.globals.capturedDataPointIndex = p2, { capturedSeries: b2, j: r2.globals.isBarHorizontal ? f2 : p2, hoverX: g2, hoverY: u2 };
      } }, { key: "closestInMultiArray", value: function(t3, e2, i2, a2) {
        var s2 = this.w, r2 = 0, o2 = null, n2 = -1;
        s2.globals.series.length > 1 ? r2 = this.getFirstActiveXArray(i2) : o2 = 0;
        var l2 = i2[r2][0], h2 = Math.abs(t3 - l2);
        if (i2.forEach(function(e3) {
          e3.forEach(function(e4, i3) {
            var a3 = Math.abs(t3 - e4);
            a3 <= h2 && (h2 = a3, n2 = i3);
          });
        }), -1 !== n2) {
          var c2 = a2[r2][n2], d2 = Math.abs(e2 - c2);
          o2 = r2, a2.forEach(function(t4, i3) {
            var a3 = Math.abs(e2 - t4[n2]);
            a3 <= d2 && (d2 = a3, o2 = i3);
          });
        }
        return { index: o2, j: n2 };
      } }, { key: "getFirstActiveXArray", value: function(t3) {
        for (var e2 = this.w, i2 = 0, a2 = t3.map(function(t4, e3) {
          return t4.length > 0 ? e3 : -1;
        }), s2 = 0; s2 < a2.length; s2++)
          if (-1 !== a2[s2] && -1 === e2.globals.collapsedSeriesIndices.indexOf(s2) && -1 === e2.globals.ancillaryCollapsedSeriesIndices.indexOf(s2)) {
            i2 = a2[s2];
            break;
          }
        return i2;
      } }, { key: "closestInArray", value: function(t3, e2) {
        for (var i2 = e2[0], a2 = null, s2 = Math.abs(t3 - i2), r2 = 0; r2 < e2.length; r2++) {
          var o2 = Math.abs(t3 - e2[r2]);
          o2 < s2 && (s2 = o2, a2 = r2);
        }
        return { index: a2 };
      } }, { key: "isXoverlap", value: function(t3) {
        var e2 = [], i2 = this.w.globals.seriesX.filter(function(t4) {
          return void 0 !== t4[0];
        });
        if (i2.length > 0)
          for (var a2 = 0; a2 < i2.length - 1; a2++)
            void 0 !== i2[a2][t3] && void 0 !== i2[a2 + 1][t3] && i2[a2][t3] !== i2[a2 + 1][t3] && e2.push("unEqual");
        return 0 === e2.length;
      } }, { key: "isInitialSeriesSameLen", value: function() {
        for (var t3 = true, e2 = this.w.globals.initialSeries, i2 = 0; i2 < e2.length - 1; i2++)
          if (e2[i2].data.length !== e2[i2 + 1].data.length) {
            t3 = false;
            break;
          }
        return t3;
      } }, { key: "getBarsHeight", value: function(t3) {
        return u(t3).reduce(function(t4, e2) {
          return t4 + e2.getBBox().height;
        }, 0);
      } }, { key: "getElMarkers", value: function(t3) {
        return "number" == typeof t3 ? this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series[data\\:realIndex='".concat(t3, "'] .apexcharts-series-markers-wrap > *")) : this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap > *");
      } }, { key: "getAllMarkers", value: function() {
        var t3 = this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap");
        (t3 = u(t3)).sort(function(t4, e3) {
          var i2 = Number(t4.getAttribute("data:realIndex")), a2 = Number(e3.getAttribute("data:realIndex"));
          return a2 < i2 ? 1 : a2 > i2 ? -1 : 0;
        });
        var e2 = [];
        return t3.forEach(function(t4) {
          e2.push(t4.querySelector(".apexcharts-marker"));
        }), e2;
      } }, { key: "hasMarkers", value: function(t3) {
        return this.getElMarkers(t3).length > 0;
      } }, { key: "getElBars", value: function() {
        return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series,  .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series");
      } }, { key: "hasBars", value: function() {
        return this.getElBars().length > 0;
      } }, { key: "getHoverMarkerSize", value: function(t3) {
        var e2 = this.w, i2 = e2.config.markers.hover.size;
        return void 0 === i2 && (i2 = e2.globals.markers.size[t3] + e2.config.markers.hover.sizeOffset), i2;
      } }, { key: "toggleAllTooltipSeriesGroups", value: function(t3) {
        var e2 = this.w, i2 = this.ttCtx;
        0 === i2.allTooltipSeriesGroups.length && (i2.allTooltipSeriesGroups = e2.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group"));
        for (var a2 = i2.allTooltipSeriesGroups, s2 = 0; s2 < a2.length; s2++)
          "enable" === t3 ? (a2[s2].classList.add("apexcharts-active"), a2[s2].style.display = e2.config.tooltip.items.display) : (a2[s2].classList.remove("apexcharts-active"), a2[s2].style.display = "none");
      } }]), t2;
    }();
    var gt = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.ctx = e2.ctx, this.ttCtx = e2, this.tooltipUtil = new dt(e2);
      }
      return r(t2, [{ key: "drawSeriesTexts", value: function(t3) {
        var e2 = t3.shared, i2 = void 0 === e2 || e2, a2 = t3.ttItems, s2 = t3.i, r2 = void 0 === s2 ? 0 : s2, o2 = t3.j, n2 = void 0 === o2 ? null : o2, l2 = t3.y1, h2 = t3.y2, c2 = t3.e, d2 = this.w;
        void 0 !== d2.config.tooltip.custom ? this.handleCustomTooltip({ i: r2, j: n2, y1: l2, y2: h2, w: d2 }) : this.toggleActiveInactiveSeries(i2);
        var g2 = this.getValuesToPrint({ i: r2, j: n2 });
        this.printLabels({ i: r2, j: n2, values: g2, ttItems: a2, shared: i2, e: c2 });
        var u2 = this.ttCtx.getElTooltip();
        this.ttCtx.tooltipRect.ttWidth = u2.getBoundingClientRect().width, this.ttCtx.tooltipRect.ttHeight = u2.getBoundingClientRect().height;
      } }, { key: "printLabels", value: function(t3) {
        var i2, a2 = this, s2 = t3.i, r2 = t3.j, o2 = t3.values, n2 = t3.ttItems, l2 = t3.shared, h2 = t3.e, c2 = this.w, d2 = [], g2 = function(t4) {
          return c2.globals.seriesGoals[t4] && c2.globals.seriesGoals[t4][r2] && Array.isArray(c2.globals.seriesGoals[t4][r2]);
        }, u2 = o2.xVal, p2 = o2.zVal, f2 = o2.xAxisTTVal, x2 = "", b2 = c2.globals.colors[s2];
        null !== r2 && c2.config.plotOptions.bar.distributed && (b2 = c2.globals.colors[r2]);
        for (var v2 = function(t4, o3) {
          var v3 = a2.getFormatters(s2);
          x2 = a2.getSeriesName({ fn: v3.yLbTitleFormatter, index: s2, seriesIndex: s2, j: r2 }), "treemap" === c2.config.chart.type && (x2 = v3.yLbTitleFormatter(String(c2.config.series[s2].data[r2].x), { series: c2.globals.series, seriesIndex: s2, dataPointIndex: r2, w: c2 }));
          var m3 = c2.config.tooltip.inverseOrder ? o3 : t4;
          if (c2.globals.axisCharts) {
            var y3 = function(t5) {
              var e2, i3, a3, s3;
              return c2.globals.isRangeData ? v3.yLbFormatter(null === (e2 = c2.globals.seriesRangeStart) || void 0 === e2 || null === (i3 = e2[t5]) || void 0 === i3 ? void 0 : i3[r2], { series: c2.globals.seriesRangeStart, seriesIndex: t5, dataPointIndex: r2, w: c2 }) + " - " + v3.yLbFormatter(null === (a3 = c2.globals.seriesRangeEnd) || void 0 === a3 || null === (s3 = a3[t5]) || void 0 === s3 ? void 0 : s3[r2], { series: c2.globals.seriesRangeEnd, seriesIndex: t5, dataPointIndex: r2, w: c2 }) : v3.yLbFormatter(c2.globals.series[t5][r2], { series: c2.globals.series, seriesIndex: t5, dataPointIndex: r2, w: c2 });
            };
            if (l2)
              v3 = a2.getFormatters(m3), x2 = a2.getSeriesName({ fn: v3.yLbTitleFormatter, index: m3, seriesIndex: s2, j: r2 }), b2 = c2.globals.colors[m3], i2 = y3(m3), g2(m3) && (d2 = c2.globals.seriesGoals[m3][r2].map(function(t5) {
                return { attrs: t5, val: v3.yLbFormatter(t5.value, { seriesIndex: m3, dataPointIndex: r2, w: c2 }) };
              }));
            else {
              var w2, k2 = null == h2 || null === (w2 = h2.target) || void 0 === w2 ? void 0 : w2.getAttribute("fill");
              k2 && (b2 = -1 !== k2.indexOf("url") ? document.querySelector(k2.substr(4).slice(0, -1)).childNodes[0].getAttribute("stroke") : k2), i2 = y3(s2), g2(s2) && Array.isArray(c2.globals.seriesGoals[s2][r2]) && (d2 = c2.globals.seriesGoals[s2][r2].map(function(t5) {
                return { attrs: t5, val: v3.yLbFormatter(t5.value, { seriesIndex: s2, dataPointIndex: r2, w: c2 }) };
              }));
            }
          }
          null === r2 && (i2 = v3.yLbFormatter(c2.globals.series[s2], e(e({}, c2), {}, { seriesIndex: s2, dataPointIndex: s2 }))), a2.DOMHandling({ i: s2, t: m3, j: r2, ttItems: n2, values: { val: i2, goalVals: d2, xVal: u2, xAxisTTVal: f2, zVal: p2 }, seriesName: x2, shared: l2, pColor: b2 });
        }, m2 = 0, y2 = c2.globals.series.length - 1; m2 < c2.globals.series.length; m2++, y2--)
          v2(m2, y2);
      } }, { key: "getFormatters", value: function(t3) {
        var e2, i2 = this.w, a2 = i2.globals.yLabelFormatters[t3];
        return void 0 !== i2.globals.ttVal ? Array.isArray(i2.globals.ttVal) ? (a2 = i2.globals.ttVal[t3] && i2.globals.ttVal[t3].formatter, e2 = i2.globals.ttVal[t3] && i2.globals.ttVal[t3].title && i2.globals.ttVal[t3].title.formatter) : (a2 = i2.globals.ttVal.formatter, "function" == typeof i2.globals.ttVal.title.formatter && (e2 = i2.globals.ttVal.title.formatter)) : e2 = i2.config.tooltip.y.title.formatter, "function" != typeof a2 && (a2 = i2.globals.yLabelFormatters[0] ? i2.globals.yLabelFormatters[0] : function(t4) {
          return t4;
        }), "function" != typeof e2 && (e2 = function(t4) {
          return t4;
        }), { yLbFormatter: a2, yLbTitleFormatter: e2 };
      } }, { key: "getSeriesName", value: function(t3) {
        var e2 = t3.fn, i2 = t3.index, a2 = t3.seriesIndex, s2 = t3.j, r2 = this.w;
        return e2(String(r2.globals.seriesNames[i2]), { series: r2.globals.series, seriesIndex: a2, dataPointIndex: s2, w: r2 });
      } }, { key: "DOMHandling", value: function(t3) {
        t3.i;
        var e2 = t3.t, i2 = t3.j, a2 = t3.ttItems, s2 = t3.values, r2 = t3.seriesName, o2 = t3.shared, n2 = t3.pColor, l2 = this.w, h2 = this.ttCtx, c2 = s2.val, d2 = s2.goalVals, g2 = s2.xVal, u2 = s2.xAxisTTVal, p2 = s2.zVal, f2 = null;
        f2 = a2[e2].children, l2.config.tooltip.fillSeriesColor && (a2[e2].style.backgroundColor = n2, f2[0].style.display = "none"), h2.showTooltipTitle && (null === h2.tooltipTitle && (h2.tooltipTitle = l2.globals.dom.baseEl.querySelector(".apexcharts-tooltip-title")), h2.tooltipTitle.innerHTML = g2), h2.isXAxisTooltipEnabled && (h2.xaxisTooltipText.innerHTML = "" !== u2 ? u2 : g2);
        var x2 = a2[e2].querySelector(".apexcharts-tooltip-text-y-label");
        x2 && (x2.innerHTML = r2 || "");
        var b2 = a2[e2].querySelector(".apexcharts-tooltip-text-y-value");
        b2 && (b2.innerHTML = void 0 !== c2 ? c2 : ""), f2[0] && f2[0].classList.contains("apexcharts-tooltip-marker") && (l2.config.tooltip.marker.fillColors && Array.isArray(l2.config.tooltip.marker.fillColors) && (n2 = l2.config.tooltip.marker.fillColors[e2]), f2[0].style.backgroundColor = n2), l2.config.tooltip.marker.show || (f2[0].style.display = "none");
        var v2 = a2[e2].querySelector(".apexcharts-tooltip-text-goals-label"), m2 = a2[e2].querySelector(".apexcharts-tooltip-text-goals-value");
        if (d2.length && l2.globals.seriesGoals[e2]) {
          var y2 = function() {
            var t4 = "<div >", e3 = "<div>";
            d2.forEach(function(i3, a3) {
              t4 += ' <div style="display: flex"><span class="apexcharts-tooltip-marker" style="background-color: '.concat(i3.attrs.strokeColor, '; height: 3px; border-radius: 0; top: 5px;"></span> ').concat(i3.attrs.name, "</div>"), e3 += "<div>".concat(i3.val, "</div>");
            }), v2.innerHTML = t4 + "</div>", m2.innerHTML = e3 + "</div>";
          };
          o2 ? l2.globals.seriesGoals[e2][i2] && Array.isArray(l2.globals.seriesGoals[e2][i2]) ? y2() : (v2.innerHTML = "", m2.innerHTML = "") : y2();
        } else
          v2.innerHTML = "", m2.innerHTML = "";
        null !== p2 && (a2[e2].querySelector(".apexcharts-tooltip-text-z-label").innerHTML = l2.config.tooltip.z.title, a2[e2].querySelector(".apexcharts-tooltip-text-z-value").innerHTML = void 0 !== p2 ? p2 : "");
        if (o2 && f2[0]) {
          if (l2.config.tooltip.hideEmptySeries) {
            var w2 = a2[e2].querySelector(".apexcharts-tooltip-marker"), k2 = a2[e2].querySelector(".apexcharts-tooltip-text");
            0 == parseFloat(c2) ? (w2.style.display = "none", k2.style.display = "none") : (w2.style.display = "block", k2.style.display = "block");
          }
          null == c2 || l2.globals.ancillaryCollapsedSeriesIndices.indexOf(e2) > -1 || l2.globals.collapsedSeriesIndices.indexOf(e2) > -1 ? f2[0].parentNode.style.display = "none" : f2[0].parentNode.style.display = l2.config.tooltip.items.display;
        }
      } }, { key: "toggleActiveInactiveSeries", value: function(t3) {
        var e2 = this.w;
        if (t3)
          this.tooltipUtil.toggleAllTooltipSeriesGroups("enable");
        else {
          this.tooltipUtil.toggleAllTooltipSeriesGroups("disable");
          var i2 = e2.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group");
          i2 && (i2.classList.add("apexcharts-active"), i2.style.display = e2.config.tooltip.items.display);
        }
      } }, { key: "getValuesToPrint", value: function(t3) {
        var e2 = t3.i, i2 = t3.j, a2 = this.w, s2 = this.ctx.series.filteredSeriesX(), r2 = "", o2 = "", n2 = null, l2 = null, h2 = { series: a2.globals.series, seriesIndex: e2, dataPointIndex: i2, w: a2 }, c2 = a2.globals.ttZFormatter;
        null === i2 ? l2 = a2.globals.series[e2] : a2.globals.isXNumeric && "treemap" !== a2.config.chart.type ? (r2 = s2[e2][i2], 0 === s2[e2].length && (r2 = s2[this.tooltipUtil.getFirstActiveXArray(s2)][i2])) : r2 = void 0 !== a2.globals.labels[i2] ? a2.globals.labels[i2] : "";
        var d2 = r2;
        a2.globals.isXNumeric && "datetime" === a2.config.xaxis.type ? r2 = new T(this.ctx).xLabelFormat(a2.globals.ttKeyFormatter, d2, d2, { i: void 0, dateFormatter: new I(this.ctx).formatDate, w: this.w }) : r2 = a2.globals.isBarHorizontal ? a2.globals.yLabelFormatters[0](d2, h2) : a2.globals.xLabelFormatter(d2, h2);
        return void 0 !== a2.config.tooltip.x.formatter && (r2 = a2.globals.ttKeyFormatter(d2, h2)), a2.globals.seriesZ.length > 0 && a2.globals.seriesZ[e2].length > 0 && (n2 = c2(a2.globals.seriesZ[e2][i2], a2)), o2 = "function" == typeof a2.config.xaxis.tooltip.formatter ? a2.globals.xaxisTooltipFormatter(d2, h2) : r2, { val: Array.isArray(l2) ? l2.join(" ") : l2, xVal: Array.isArray(r2) ? r2.join(" ") : r2, xAxisTTVal: Array.isArray(o2) ? o2.join(" ") : o2, zVal: n2 };
      } }, { key: "handleCustomTooltip", value: function(t3) {
        var e2 = t3.i, i2 = t3.j, a2 = t3.y1, s2 = t3.y2, r2 = t3.w, o2 = this.ttCtx.getElTooltip(), n2 = r2.config.tooltip.custom;
        Array.isArray(n2) && n2[e2] && (n2 = n2[e2]), o2.innerHTML = n2({ ctx: this.ctx, series: r2.globals.series, seriesIndex: e2, dataPointIndex: i2, y1: a2, y2: s2, w: r2 });
      } }]), t2;
    }();
    var ut = function() {
      function t2(e2) {
        a(this, t2), this.ttCtx = e2, this.ctx = e2.ctx, this.w = e2.w;
      }
      return r(t2, [{ key: "moveXCrosshairs", value: function(t3) {
        var e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, i2 = this.ttCtx, a2 = this.w, s2 = i2.getElXCrosshairs(), r2 = t3 - i2.xcrosshairsWidth / 2, o2 = a2.globals.labels.slice().length;
        if (null !== e2 && (r2 = a2.globals.gridWidth / o2 * e2), null === s2 || a2.globals.isBarHorizontal || (s2.setAttribute("x", r2), s2.setAttribute("x1", r2), s2.setAttribute("x2", r2), s2.setAttribute("y2", a2.globals.gridHeight), s2.classList.add("apexcharts-active")), r2 < 0 && (r2 = 0), r2 > a2.globals.gridWidth && (r2 = a2.globals.gridWidth), i2.isXAxisTooltipEnabled) {
          var n2 = r2;
          "tickWidth" !== a2.config.xaxis.crosshairs.width && "barWidth" !== a2.config.xaxis.crosshairs.width || (n2 = r2 + i2.xcrosshairsWidth / 2), this.moveXAxisTooltip(n2);
        }
      } }, { key: "moveYCrosshairs", value: function(t3) {
        var e2 = this.ttCtx;
        null !== e2.ycrosshairs && m.setAttrs(e2.ycrosshairs, { y1: t3, y2: t3 }), null !== e2.ycrosshairsHidden && m.setAttrs(e2.ycrosshairsHidden, { y1: t3, y2: t3 });
      } }, { key: "moveXAxisTooltip", value: function(t3) {
        var e2 = this.w, i2 = this.ttCtx;
        if (null !== i2.xaxisTooltip && 0 !== i2.xcrosshairsWidth) {
          i2.xaxisTooltip.classList.add("apexcharts-active");
          var a2 = i2.xaxisOffY + e2.config.xaxis.tooltip.offsetY + e2.globals.translateY + 1 + e2.config.xaxis.offsetY;
          if (t3 -= i2.xaxisTooltip.getBoundingClientRect().width / 2, !isNaN(t3)) {
            t3 += e2.globals.translateX;
            var s2;
            s2 = new m(this.ctx).getTextRects(i2.xaxisTooltipText.innerHTML), i2.xaxisTooltipText.style.minWidth = s2.width + "px", i2.xaxisTooltip.style.left = t3 + "px", i2.xaxisTooltip.style.top = a2 + "px";
          }
        }
      } }, { key: "moveYAxisTooltip", value: function(t3) {
        var e2 = this.w, i2 = this.ttCtx;
        null === i2.yaxisTTEls && (i2.yaxisTTEls = e2.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));
        var a2 = parseInt(i2.ycrosshairsHidden.getAttribute("y1"), 10), s2 = e2.globals.translateY + a2, r2 = i2.yaxisTTEls[t3].getBoundingClientRect().height, o2 = e2.globals.translateYAxisX[t3] - 2;
        e2.config.yaxis[t3].opposite && (o2 -= 26), s2 -= r2 / 2, -1 === e2.globals.ignoreYAxisIndexes.indexOf(t3) ? (i2.yaxisTTEls[t3].classList.add("apexcharts-active"), i2.yaxisTTEls[t3].style.top = s2 + "px", i2.yaxisTTEls[t3].style.left = o2 + e2.config.yaxis[t3].tooltip.offsetX + "px") : i2.yaxisTTEls[t3].classList.remove("apexcharts-active");
      } }, { key: "moveTooltip", value: function(t3, e2) {
        var i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, a2 = this.w, s2 = this.ttCtx, r2 = s2.getElTooltip(), o2 = s2.tooltipRect, n2 = null !== i2 ? parseFloat(i2) : 1, l2 = parseFloat(t3) + n2 + 5, h2 = parseFloat(e2) + n2 / 2;
        if (l2 > a2.globals.gridWidth / 2 && (l2 = l2 - o2.ttWidth - n2 - 10), l2 > a2.globals.gridWidth - o2.ttWidth - 10 && (l2 = a2.globals.gridWidth - o2.ttWidth), l2 < -20 && (l2 = -20), a2.config.tooltip.followCursor) {
          var c2 = s2.getElGrid().getBoundingClientRect();
          (l2 = s2.e.clientX - c2.left) > a2.globals.gridWidth / 2 && (l2 -= s2.tooltipRect.ttWidth), (h2 = s2.e.clientY + a2.globals.translateY - c2.top) > a2.globals.gridHeight / 2 && (h2 -= s2.tooltipRect.ttHeight);
        } else
          a2.globals.isBarHorizontal || o2.ttHeight / 2 + h2 > a2.globals.gridHeight && (h2 = a2.globals.gridHeight - o2.ttHeight + a2.globals.translateY);
        isNaN(l2) || (l2 += a2.globals.translateX, r2.style.left = l2 + "px", r2.style.top = h2 + "px");
      } }, { key: "moveMarkers", value: function(t3, e2) {
        var i2 = this.w, a2 = this.ttCtx;
        if (i2.globals.markers.size[t3] > 0)
          for (var s2 = i2.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(t3, "'] .apexcharts-marker")), r2 = 0; r2 < s2.length; r2++)
            parseInt(s2[r2].getAttribute("rel"), 10) === e2 && (a2.marker.resetPointsSize(), a2.marker.enlargeCurrentPoint(e2, s2[r2]));
        else
          a2.marker.resetPointsSize(), this.moveDynamicPointOnHover(e2, t3);
      } }, { key: "moveDynamicPointOnHover", value: function(t3, e2) {
        var i2, a2, s2 = this.w, r2 = this.ttCtx, o2 = s2.globals.pointsArray, n2 = r2.tooltipUtil.getHoverMarkerSize(e2), l2 = s2.config.series[e2].type;
        if (!l2 || "column" !== l2 && "candlestick" !== l2 && "boxPlot" !== l2) {
          i2 = o2[e2][t3][0], a2 = o2[e2][t3][1] ? o2[e2][t3][1] : 0;
          var h2 = s2.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(e2, "'] .apexcharts-series-markers circle"));
          h2 && a2 < s2.globals.gridHeight && a2 > 0 && (h2.setAttribute("r", n2), h2.setAttribute("cx", i2), h2.setAttribute("cy", a2)), this.moveXCrosshairs(i2), r2.fixedTooltip || this.moveTooltip(i2, a2, n2);
        }
      } }, { key: "moveDynamicPointsOnHover", value: function(t3) {
        var e2, i2 = this.ttCtx, a2 = i2.w, s2 = 0, r2 = 0, o2 = a2.globals.pointsArray;
        e2 = new N(this.ctx).getActiveConfigSeriesIndex("asc", ["line", "area", "scatter", "bubble"]);
        var n2 = i2.tooltipUtil.getHoverMarkerSize(e2);
        o2[e2] && (s2 = o2[e2][t3][0], r2 = o2[e2][t3][1]);
        var l2 = i2.tooltipUtil.getAllMarkers();
        if (null !== l2)
          for (var h2 = 0; h2 < a2.globals.series.length; h2++) {
            var c2 = o2[h2];
            if (a2.globals.comboCharts && void 0 === c2 && l2.splice(h2, 0, null), c2 && c2.length) {
              var d2 = o2[h2][t3][1], g2 = void 0;
              if (l2[h2].setAttribute("cx", s2), "rangeArea" === a2.config.chart.type && !a2.globals.comboCharts) {
                var u2 = t3 + a2.globals.series[h2].length;
                g2 = o2[h2][u2][1], d2 -= Math.abs(d2 - g2) / 2;
              }
              null !== d2 && !isNaN(d2) && d2 < a2.globals.gridHeight + n2 && d2 + n2 > 0 ? (l2[h2] && l2[h2].setAttribute("r", n2), l2[h2] && l2[h2].setAttribute("cy", d2)) : l2[h2] && l2[h2].setAttribute("r", 0);
            }
          }
        this.moveXCrosshairs(s2), i2.fixedTooltip || this.moveTooltip(s2, r2 || a2.globals.gridHeight, n2);
      } }, { key: "moveStickyTooltipOverBars", value: function(t3, e2) {
        var i2 = this.w, a2 = this.ttCtx, s2 = i2.globals.columnSeries ? i2.globals.columnSeries.length : i2.globals.series.length, r2 = s2 >= 2 && s2 % 2 == 0 ? Math.floor(s2 / 2) : Math.floor(s2 / 2) + 1;
        i2.globals.isBarHorizontal && (r2 = new N(this.ctx).getActiveConfigSeriesIndex("desc") + 1);
        var o2 = i2.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(r2, "'] path[j='").concat(t3, "'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(r2, "'] path[j='").concat(t3, "'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(r2, "'] path[j='").concat(t3, "'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(r2, "'] path[j='").concat(t3, "']"));
        o2 || "number" != typeof e2 || (o2 = i2.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[data\\:realIndex='".concat(e2, "'] path[j='").concat(t3, "'],\n        .apexcharts-candlestick-series .apexcharts-series[data\\:realIndex='").concat(e2, "'] path[j='").concat(t3, "'],\n        .apexcharts-boxPlot-series .apexcharts-series[data\\:realIndex='").concat(e2, "'] path[j='").concat(t3, "'],\n        .apexcharts-rangebar-series .apexcharts-series[data\\:realIndex='").concat(e2, "'] path[j='").concat(t3, "']")));
        var n2 = o2 ? parseFloat(o2.getAttribute("cx")) : 0, l2 = o2 ? parseFloat(o2.getAttribute("cy")) : 0, h2 = o2 ? parseFloat(o2.getAttribute("barWidth")) : 0, c2 = a2.getElGrid().getBoundingClientRect(), d2 = o2 && (o2.classList.contains("apexcharts-candlestick-area") || o2.classList.contains("apexcharts-boxPlot-area"));
        i2.globals.isXNumeric ? (o2 && !d2 && (n2 -= s2 % 2 != 0 ? h2 / 2 : 0), o2 && d2 && i2.globals.comboCharts && (n2 -= h2 / 2)) : i2.globals.isBarHorizontal || (n2 = a2.xAxisTicksPositions[t3 - 1] + a2.dataPointsDividedWidth / 2, isNaN(n2) && (n2 = a2.xAxisTicksPositions[t3] - a2.dataPointsDividedWidth / 2)), i2.globals.isBarHorizontal ? l2 -= a2.tooltipRect.ttHeight : i2.config.tooltip.followCursor ? l2 = a2.e.clientY - c2.top - a2.tooltipRect.ttHeight / 2 : l2 + a2.tooltipRect.ttHeight + 15 > i2.globals.gridHeight && (l2 = i2.globals.gridHeight), i2.globals.isBarHorizontal || this.moveXCrosshairs(n2), a2.fixedTooltip || this.moveTooltip(n2, l2 || i2.globals.gridHeight);
      } }]), t2;
    }();
    var pt = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.ttCtx = e2, this.ctx = e2.ctx, this.tooltipPosition = new ut(e2);
      }
      return r(t2, [{ key: "drawDynamicPoints", value: function() {
        var t3 = this.w, e2 = new m(this.ctx), i2 = new H(this.ctx), a2 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-series");
        a2 = u(a2), t3.config.chart.stacked && a2.sort(function(t4, e3) {
          return parseFloat(t4.getAttribute("data:realIndex")) - parseFloat(e3.getAttribute("data:realIndex"));
        });
        for (var s2 = 0; s2 < a2.length; s2++) {
          var r2 = a2[s2].querySelector(".apexcharts-series-markers-wrap");
          if (null !== r2) {
            var o2 = void 0, n2 = "apexcharts-marker w".concat((Math.random() + 1).toString(36).substring(4));
            "line" !== t3.config.chart.type && "area" !== t3.config.chart.type || t3.globals.comboCharts || t3.config.tooltip.intersect || (n2 += " no-pointer-events");
            var l2 = i2.getMarkerConfig({ cssClass: n2, seriesIndex: Number(r2.getAttribute("data:realIndex")) });
            (o2 = e2.drawMarker(0, 0, l2)).node.setAttribute("default-marker-size", 0);
            var h2 = document.createElementNS(t3.globals.SVGNS, "g");
            h2.classList.add("apexcharts-series-markers"), h2.appendChild(o2.node), r2.appendChild(h2);
          }
        }
      } }, { key: "enlargeCurrentPoint", value: function(t3, e2) {
        var i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, a2 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null, s2 = this.w;
        "bubble" !== s2.config.chart.type && this.newPointSize(t3, e2);
        var r2 = e2.getAttribute("cx"), o2 = e2.getAttribute("cy");
        if (null !== i2 && null !== a2 && (r2 = i2, o2 = a2), this.tooltipPosition.moveXCrosshairs(r2), !this.fixedTooltip) {
          if ("radar" === s2.config.chart.type) {
            var n2 = this.ttCtx.getElGrid().getBoundingClientRect();
            r2 = this.ttCtx.e.clientX - n2.left;
          }
          this.tooltipPosition.moveTooltip(r2, o2, s2.config.markers.hover.size);
        }
      } }, { key: "enlargePoints", value: function(t3) {
        for (var e2 = this.w, i2 = this, a2 = this.ttCtx, s2 = t3, r2 = e2.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"), o2 = e2.config.markers.hover.size, n2 = 0; n2 < r2.length; n2++) {
          var l2 = r2[n2].getAttribute("rel"), h2 = r2[n2].getAttribute("index");
          if (void 0 === o2 && (o2 = e2.globals.markers.size[h2] + e2.config.markers.hover.sizeOffset), s2 === parseInt(l2, 10)) {
            i2.newPointSize(s2, r2[n2]);
            var c2 = r2[n2].getAttribute("cx"), d2 = r2[n2].getAttribute("cy");
            i2.tooltipPosition.moveXCrosshairs(c2), a2.fixedTooltip || i2.tooltipPosition.moveTooltip(c2, d2, o2);
          } else
            i2.oldPointSize(r2[n2]);
        }
      } }, { key: "newPointSize", value: function(t3, e2) {
        var i2 = this.w, a2 = i2.config.markers.hover.size, s2 = 0 === t3 ? e2.parentNode.firstChild : e2.parentNode.lastChild;
        if ("0" !== s2.getAttribute("default-marker-size")) {
          var r2 = parseInt(s2.getAttribute("index"), 10);
          void 0 === a2 && (a2 = i2.globals.markers.size[r2] + i2.config.markers.hover.sizeOffset), a2 < 0 && (a2 = 0), s2.setAttribute("r", a2);
        }
      } }, { key: "oldPointSize", value: function(t3) {
        var e2 = parseFloat(t3.getAttribute("default-marker-size"));
        t3.setAttribute("r", e2);
      } }, { key: "resetPointsSize", value: function() {
        for (var t3 = this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"), e2 = 0; e2 < t3.length; e2++) {
          var i2 = parseFloat(t3[e2].getAttribute("default-marker-size"));
          x.isNumber(i2) && i2 >= 0 ? t3[e2].setAttribute("r", i2) : t3[e2].setAttribute("r", 0);
        }
      } }]), t2;
    }();
    var ft = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w;
        var i2 = this.w;
        this.ttCtx = e2, this.isVerticalGroupedRangeBar = !i2.globals.isBarHorizontal && "rangeBar" === i2.config.chart.type && i2.config.plotOptions.bar.rangeBarGroupRows;
      }
      return r(t2, [{ key: "getAttr", value: function(t3, e2) {
        return parseFloat(t3.target.getAttribute(e2));
      } }, { key: "handleHeatTreeTooltip", value: function(t3) {
        var e2 = t3.e, i2 = t3.opt, a2 = t3.x, s2 = t3.y, r2 = t3.type, o2 = this.ttCtx, n2 = this.w;
        if (e2.target.classList.contains("apexcharts-".concat(r2, "-rect"))) {
          var l2 = this.getAttr(e2, "i"), h2 = this.getAttr(e2, "j"), c2 = this.getAttr(e2, "cx"), d2 = this.getAttr(e2, "cy"), g2 = this.getAttr(e2, "width"), u2 = this.getAttr(e2, "height");
          if (o2.tooltipLabels.drawSeriesTexts({ ttItems: i2.ttItems, i: l2, j: h2, shared: false, e: e2 }), n2.globals.capturedSeriesIndex = l2, n2.globals.capturedDataPointIndex = h2, a2 = c2 + o2.tooltipRect.ttWidth / 2 + g2, s2 = d2 + o2.tooltipRect.ttHeight / 2 - u2 / 2, o2.tooltipPosition.moveXCrosshairs(c2 + g2 / 2), a2 > n2.globals.gridWidth / 2 && (a2 = c2 - o2.tooltipRect.ttWidth / 2 + g2), o2.w.config.tooltip.followCursor) {
            var p2 = n2.globals.dom.elWrap.getBoundingClientRect();
            a2 = n2.globals.clientX - p2.left - (a2 > n2.globals.gridWidth / 2 ? o2.tooltipRect.ttWidth : 0), s2 = n2.globals.clientY - p2.top - (s2 > n2.globals.gridHeight / 2 ? o2.tooltipRect.ttHeight : 0);
          }
        }
        return { x: a2, y: s2 };
      } }, { key: "handleMarkerTooltip", value: function(t3) {
        var e2, i2, a2 = t3.e, s2 = t3.opt, r2 = t3.x, o2 = t3.y, n2 = this.w, l2 = this.ttCtx;
        if (a2.target.classList.contains("apexcharts-marker")) {
          var h2 = parseInt(s2.paths.getAttribute("cx"), 10), c2 = parseInt(s2.paths.getAttribute("cy"), 10), d2 = parseFloat(s2.paths.getAttribute("val"));
          if (i2 = parseInt(s2.paths.getAttribute("rel"), 10), e2 = parseInt(s2.paths.parentNode.parentNode.parentNode.getAttribute("rel"), 10) - 1, l2.intersect) {
            var g2 = x.findAncestor(s2.paths, "apexcharts-series");
            g2 && (e2 = parseInt(g2.getAttribute("data:realIndex"), 10));
          }
          if (l2.tooltipLabels.drawSeriesTexts({ ttItems: s2.ttItems, i: e2, j: i2, shared: !l2.showOnIntersect && n2.config.tooltip.shared, e: a2 }), "mouseup" === a2.type && l2.markerClick(a2, e2, i2), n2.globals.capturedSeriesIndex = e2, n2.globals.capturedDataPointIndex = i2, r2 = h2, o2 = c2 + n2.globals.translateY - 1.4 * l2.tooltipRect.ttHeight, l2.w.config.tooltip.followCursor) {
            var u2 = l2.getElGrid().getBoundingClientRect();
            o2 = l2.e.clientY + n2.globals.translateY - u2.top;
          }
          d2 < 0 && (o2 = c2), l2.marker.enlargeCurrentPoint(i2, s2.paths, r2, o2);
        }
        return { x: r2, y: o2 };
      } }, { key: "handleBarTooltip", value: function(t3) {
        var e2, i2, a2 = t3.e, s2 = t3.opt, r2 = this.w, o2 = this.ttCtx, n2 = o2.getElTooltip(), l2 = 0, h2 = 0, c2 = 0, d2 = this.getBarTooltipXY({ e: a2, opt: s2 });
        e2 = d2.i;
        var g2 = d2.barHeight, u2 = d2.j;
        r2.globals.capturedSeriesIndex = e2, r2.globals.capturedDataPointIndex = u2, r2.globals.isBarHorizontal && o2.tooltipUtil.hasBars() || !r2.config.tooltip.shared ? (h2 = d2.x, c2 = d2.y, i2 = Array.isArray(r2.config.stroke.width) ? r2.config.stroke.width[e2] : r2.config.stroke.width, l2 = h2) : r2.globals.comboCharts || r2.config.tooltip.shared || (l2 /= 2), isNaN(c2) && (c2 = r2.globals.svgHeight - o2.tooltipRect.ttHeight);
        var p2 = parseInt(s2.paths.parentNode.getAttribute("data:realIndex"), 10), f2 = r2.globals.isMultipleYAxis ? r2.config.yaxis[p2] && r2.config.yaxis[p2].reversed : r2.config.yaxis[0].reversed;
        if (h2 + o2.tooltipRect.ttWidth > r2.globals.gridWidth && !f2 ? h2 -= o2.tooltipRect.ttWidth : h2 < 0 && (h2 = 0), o2.w.config.tooltip.followCursor) {
          var x2 = o2.getElGrid().getBoundingClientRect();
          c2 = o2.e.clientY - x2.top;
        }
        null === o2.tooltip && (o2.tooltip = r2.globals.dom.baseEl.querySelector(".apexcharts-tooltip")), r2.config.tooltip.shared || (r2.globals.comboBarCount > 0 ? o2.tooltipPosition.moveXCrosshairs(l2 + i2 / 2) : o2.tooltipPosition.moveXCrosshairs(l2)), !o2.fixedTooltip && (!r2.config.tooltip.shared || r2.globals.isBarHorizontal && o2.tooltipUtil.hasBars()) && (f2 && (h2 -= o2.tooltipRect.ttWidth) < 0 && (h2 = 0), !f2 || r2.globals.isBarHorizontal && o2.tooltipUtil.hasBars() || (c2 = c2 + g2 - 2 * (r2.globals.series[e2][u2] < 0 ? g2 : 0)), c2 = c2 + r2.globals.translateY - o2.tooltipRect.ttHeight / 2, n2.style.left = h2 + r2.globals.translateX + "px", n2.style.top = c2 + "px");
      } }, { key: "getBarTooltipXY", value: function(t3) {
        var e2 = this, i2 = t3.e, a2 = t3.opt, s2 = this.w, r2 = null, o2 = this.ttCtx, n2 = 0, l2 = 0, h2 = 0, c2 = 0, d2 = 0, g2 = i2.target.classList;
        if (g2.contains("apexcharts-bar-area") || g2.contains("apexcharts-candlestick-area") || g2.contains("apexcharts-boxPlot-area") || g2.contains("apexcharts-rangebar-area")) {
          var u2 = i2.target, p2 = u2.getBoundingClientRect(), f2 = a2.elGrid.getBoundingClientRect(), x2 = p2.height;
          d2 = p2.height;
          var b2 = p2.width, v2 = parseInt(u2.getAttribute("cx"), 10), m2 = parseInt(u2.getAttribute("cy"), 10);
          c2 = parseFloat(u2.getAttribute("barWidth"));
          var y2 = "touchmove" === i2.type ? i2.touches[0].clientX : i2.clientX;
          r2 = parseInt(u2.getAttribute("j"), 10), n2 = parseInt(u2.parentNode.getAttribute("rel"), 10) - 1;
          var w2 = u2.getAttribute("data-range-y1"), k2 = u2.getAttribute("data-range-y2");
          s2.globals.comboCharts && (n2 = parseInt(u2.parentNode.getAttribute("data:realIndex"), 10));
          var A3 = function(t4) {
            return s2.globals.isXNumeric ? v2 - b2 / 2 : e2.isVerticalGroupedRangeBar ? v2 + b2 / 2 : v2 - o2.dataPointsDividedWidth + b2 / 2;
          }, S2 = function() {
            return m2 - o2.dataPointsDividedHeight + x2 / 2 - o2.tooltipRect.ttHeight / 2;
          };
          o2.tooltipLabels.drawSeriesTexts({ ttItems: a2.ttItems, i: n2, j: r2, y1: w2 ? parseInt(w2, 10) : null, y2: k2 ? parseInt(k2, 10) : null, shared: !o2.showOnIntersect && s2.config.tooltip.shared, e: i2 }), s2.config.tooltip.followCursor ? s2.globals.isBarHorizontal ? (l2 = y2 - f2.left + 15, h2 = S2()) : (l2 = A3(), h2 = i2.clientY - f2.top - o2.tooltipRect.ttHeight / 2 - 15) : s2.globals.isBarHorizontal ? ((l2 = v2) < o2.xyRatios.baseLineInvertedY && (l2 = v2 - o2.tooltipRect.ttWidth), h2 = S2()) : (l2 = A3(), h2 = m2);
        }
        return { x: l2, y: h2, barHeight: d2, barWidth: c2, i: n2, j: r2 };
      } }]), t2;
    }();
    var xt = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.ttCtx = e2;
      }
      return r(t2, [{ key: "drawXaxisTooltip", value: function() {
        var t3 = this.w, e2 = this.ttCtx, i2 = "bottom" === t3.config.xaxis.position;
        e2.xaxisOffY = i2 ? t3.globals.gridHeight + 1 : -t3.globals.xAxisHeight - t3.config.xaxis.axisTicks.height + 3;
        var a2 = i2 ? "apexcharts-xaxistooltip apexcharts-xaxistooltip-bottom" : "apexcharts-xaxistooltip apexcharts-xaxistooltip-top", s2 = t3.globals.dom.elWrap;
        e2.isXAxisTooltipEnabled && (null === t3.globals.dom.baseEl.querySelector(".apexcharts-xaxistooltip") && (e2.xaxisTooltip = document.createElement("div"), e2.xaxisTooltip.setAttribute("class", a2 + " apexcharts-theme-" + t3.config.tooltip.theme), s2.appendChild(e2.xaxisTooltip), e2.xaxisTooltipText = document.createElement("div"), e2.xaxisTooltipText.classList.add("apexcharts-xaxistooltip-text"), e2.xaxisTooltipText.style.fontFamily = t3.config.xaxis.tooltip.style.fontFamily || t3.config.chart.fontFamily, e2.xaxisTooltipText.style.fontSize = t3.config.xaxis.tooltip.style.fontSize, e2.xaxisTooltip.appendChild(e2.xaxisTooltipText)));
      } }, { key: "drawYaxisTooltip", value: function() {
        for (var t3 = this.w, e2 = this.ttCtx, i2 = function(i3) {
          var a3 = t3.config.yaxis[i3].opposite || t3.config.yaxis[i3].crosshairs.opposite;
          e2.yaxisOffX = a3 ? t3.globals.gridWidth + 1 : 1;
          var s2 = "apexcharts-yaxistooltip apexcharts-yaxistooltip-".concat(i3, a3 ? " apexcharts-yaxistooltip-right" : " apexcharts-yaxistooltip-left");
          t3.globals.yAxisSameScaleIndices.map(function(e3, a4) {
            e3.map(function(e4, a5) {
              a5 === i3 && (s2 += t3.config.yaxis[a5].show ? " " : " apexcharts-yaxistooltip-hidden");
            });
          });
          var r2 = t3.globals.dom.elWrap;
          null === t3.globals.dom.baseEl.querySelector(".apexcharts-yaxistooltip apexcharts-yaxistooltip-".concat(i3)) && (e2.yaxisTooltip = document.createElement("div"), e2.yaxisTooltip.setAttribute("class", s2 + " apexcharts-theme-" + t3.config.tooltip.theme), r2.appendChild(e2.yaxisTooltip), 0 === i3 && (e2.yaxisTooltipText = []), e2.yaxisTooltipText[i3] = document.createElement("div"), e2.yaxisTooltipText[i3].classList.add("apexcharts-yaxistooltip-text"), e2.yaxisTooltip.appendChild(e2.yaxisTooltipText[i3]));
        }, a2 = 0; a2 < t3.config.yaxis.length; a2++)
          i2(a2);
      } }, { key: "setXCrosshairWidth", value: function() {
        var t3 = this.w, e2 = this.ttCtx, i2 = e2.getElXCrosshairs();
        if (e2.xcrosshairsWidth = parseInt(t3.config.xaxis.crosshairs.width, 10), t3.globals.comboCharts) {
          var a2 = t3.globals.dom.baseEl.querySelector(".apexcharts-bar-area");
          if (null !== a2 && "barWidth" === t3.config.xaxis.crosshairs.width) {
            var s2 = parseFloat(a2.getAttribute("barWidth"));
            e2.xcrosshairsWidth = s2;
          } else if ("tickWidth" === t3.config.xaxis.crosshairs.width) {
            var r2 = t3.globals.labels.length;
            e2.xcrosshairsWidth = t3.globals.gridWidth / r2;
          }
        } else if ("tickWidth" === t3.config.xaxis.crosshairs.width) {
          var o2 = t3.globals.labels.length;
          e2.xcrosshairsWidth = t3.globals.gridWidth / o2;
        } else if ("barWidth" === t3.config.xaxis.crosshairs.width) {
          var n2 = t3.globals.dom.baseEl.querySelector(".apexcharts-bar-area");
          if (null !== n2) {
            var l2 = parseFloat(n2.getAttribute("barWidth"));
            e2.xcrosshairsWidth = l2;
          } else
            e2.xcrosshairsWidth = 1;
        }
        t3.globals.isBarHorizontal && (e2.xcrosshairsWidth = 0), null !== i2 && e2.xcrosshairsWidth > 0 && i2.setAttribute("width", e2.xcrosshairsWidth);
      } }, { key: "handleYCrosshair", value: function() {
        var t3 = this.w, e2 = this.ttCtx;
        e2.ycrosshairs = t3.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"), e2.ycrosshairsHidden = t3.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden");
      } }, { key: "drawYaxisTooltipText", value: function(t3, e2, i2) {
        var a2 = this.ttCtx, s2 = this.w, r2 = s2.globals.yLabelFormatters[t3];
        if (a2.yaxisTooltips[t3]) {
          var o2 = a2.getElGrid().getBoundingClientRect(), n2 = (e2 - o2.top) * i2.yRatio[t3], l2 = s2.globals.maxYArr[t3] - s2.globals.minYArr[t3], h2 = s2.globals.minYArr[t3] + (l2 - n2);
          a2.tooltipPosition.moveYCrosshairs(e2 - o2.top), a2.yaxisTooltipText[t3].innerHTML = r2(h2), a2.tooltipPosition.moveYAxisTooltip(t3);
        }
      } }]), t2;
    }();
    var bt = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
        var i2 = this.w;
        this.tConfig = i2.config.tooltip, this.tooltipUtil = new dt(this), this.tooltipLabels = new gt(this), this.tooltipPosition = new ut(this), this.marker = new pt(this), this.intersect = new ft(this), this.axesTooltip = new xt(this), this.showOnIntersect = this.tConfig.intersect, this.showTooltipTitle = this.tConfig.x.show, this.fixedTooltip = this.tConfig.fixed.enabled, this.xaxisTooltip = null, this.yaxisTTEls = null, this.isBarShared = !i2.globals.isBarHorizontal && this.tConfig.shared, this.lastHoverTime = Date.now();
      }
      return r(t2, [{ key: "getElTooltip", value: function(t3) {
        return t3 || (t3 = this), t3.w.globals.dom.baseEl ? t3.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip") : null;
      } }, { key: "getElXCrosshairs", value: function() {
        return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs");
      } }, { key: "getElGrid", value: function() {
        return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid");
      } }, { key: "drawTooltip", value: function(t3) {
        var e2 = this.w;
        this.xyRatios = t3, this.isXAxisTooltipEnabled = e2.config.xaxis.tooltip.enabled && e2.globals.axisCharts, this.yaxisTooltips = e2.config.yaxis.map(function(t4, i3) {
          return !!(t4.show && t4.tooltip.enabled && e2.globals.axisCharts);
        }), this.allTooltipSeriesGroups = [], e2.globals.axisCharts || (this.showTooltipTitle = false);
        var i2 = document.createElement("div");
        if (i2.classList.add("apexcharts-tooltip"), e2.config.tooltip.cssClass && i2.classList.add(e2.config.tooltip.cssClass), i2.classList.add("apexcharts-theme-".concat(this.tConfig.theme)), e2.globals.dom.elWrap.appendChild(i2), e2.globals.axisCharts) {
          this.axesTooltip.drawXaxisTooltip(), this.axesTooltip.drawYaxisTooltip(), this.axesTooltip.setXCrosshairWidth(), this.axesTooltip.handleYCrosshair();
          var a2 = new V(this.ctx);
          this.xAxisTicksPositions = a2.getXAxisTicksPositions();
        }
        if (!e2.globals.comboCharts && !this.tConfig.intersect && "rangeBar" !== e2.config.chart.type || this.tConfig.shared || (this.showOnIntersect = true), 0 !== e2.config.markers.size && 0 !== e2.globals.markers.largestSize || this.marker.drawDynamicPoints(this), e2.globals.collapsedSeries.length !== e2.globals.series.length) {
          this.dataPointsDividedHeight = e2.globals.gridHeight / e2.globals.dataPoints, this.dataPointsDividedWidth = e2.globals.gridWidth / e2.globals.dataPoints, this.showTooltipTitle && (this.tooltipTitle = document.createElement("div"), this.tooltipTitle.classList.add("apexcharts-tooltip-title"), this.tooltipTitle.style.fontFamily = this.tConfig.style.fontFamily || e2.config.chart.fontFamily, this.tooltipTitle.style.fontSize = this.tConfig.style.fontSize, i2.appendChild(this.tooltipTitle));
          var s2 = e2.globals.series.length;
          (e2.globals.xyCharts || e2.globals.comboCharts) && this.tConfig.shared && (s2 = this.showOnIntersect ? 1 : e2.globals.series.length), this.legendLabels = e2.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"), this.ttItems = this.createTTElements(s2), this.addSVGEvents();
        }
      } }, { key: "createTTElements", value: function(t3) {
        for (var e2 = this, i2 = this.w, a2 = [], s2 = this.getElTooltip(), r2 = function(r3) {
          var o3 = document.createElement("div");
          o3.classList.add("apexcharts-tooltip-series-group"), o3.style.order = i2.config.tooltip.inverseOrder ? t3 - r3 : r3 + 1, e2.tConfig.shared && e2.tConfig.enabledOnSeries && Array.isArray(e2.tConfig.enabledOnSeries) && e2.tConfig.enabledOnSeries.indexOf(r3) < 0 && o3.classList.add("apexcharts-tooltip-series-group-hidden");
          var n2 = document.createElement("span");
          n2.classList.add("apexcharts-tooltip-marker"), n2.style.backgroundColor = i2.globals.colors[r3], o3.appendChild(n2);
          var l2 = document.createElement("div");
          l2.classList.add("apexcharts-tooltip-text"), l2.style.fontFamily = e2.tConfig.style.fontFamily || i2.config.chart.fontFamily, l2.style.fontSize = e2.tConfig.style.fontSize, ["y", "goals", "z"].forEach(function(t4) {
            var e3 = document.createElement("div");
            e3.classList.add("apexcharts-tooltip-".concat(t4, "-group"));
            var i3 = document.createElement("span");
            i3.classList.add("apexcharts-tooltip-text-".concat(t4, "-label")), e3.appendChild(i3);
            var a3 = document.createElement("span");
            a3.classList.add("apexcharts-tooltip-text-".concat(t4, "-value")), e3.appendChild(a3), l2.appendChild(e3);
          }), o3.appendChild(l2), s2.appendChild(o3), a2.push(o3);
        }, o2 = 0; o2 < t3; o2++)
          r2(o2);
        return a2;
      } }, { key: "addSVGEvents", value: function() {
        var t3 = this.w, e2 = t3.config.chart.type, i2 = this.getElTooltip(), a2 = !("bar" !== e2 && "candlestick" !== e2 && "boxPlot" !== e2 && "rangeBar" !== e2), s2 = "area" === e2 || "line" === e2 || "scatter" === e2 || "bubble" === e2 || "radar" === e2, r2 = t3.globals.dom.Paper.node, o2 = this.getElGrid();
        o2 && (this.seriesBound = o2.getBoundingClientRect());
        var n2, l2 = [], h2 = [], c2 = { hoverArea: r2, elGrid: o2, tooltipEl: i2, tooltipY: l2, tooltipX: h2, ttItems: this.ttItems };
        if (t3.globals.axisCharts && (s2 ? n2 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-series[data\\:longestSeries='true'] .apexcharts-marker") : a2 ? n2 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-series .apexcharts-bar-area, .apexcharts-series .apexcharts-candlestick-area, .apexcharts-series .apexcharts-boxPlot-area, .apexcharts-series .apexcharts-rangebar-area") : "heatmap" !== e2 && "treemap" !== e2 || (n2 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-series .apexcharts-heatmap, .apexcharts-series .apexcharts-treemap")), n2 && n2.length))
          for (var d2 = 0; d2 < n2.length; d2++)
            l2.push(n2[d2].getAttribute("cy")), h2.push(n2[d2].getAttribute("cx"));
        if (t3.globals.xyCharts && !this.showOnIntersect || t3.globals.comboCharts && !this.showOnIntersect || a2 && this.tooltipUtil.hasBars() && this.tConfig.shared)
          this.addPathsEventListeners([r2], c2);
        else if (a2 && !t3.globals.comboCharts || s2 && this.showOnIntersect)
          this.addDatapointEventsListeners(c2);
        else if (!t3.globals.axisCharts || "heatmap" === e2 || "treemap" === e2) {
          var g2 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-series");
          this.addPathsEventListeners(g2, c2);
        }
        if (this.showOnIntersect) {
          var u2 = t3.globals.dom.baseEl.querySelectorAll(".apexcharts-line-series .apexcharts-marker, .apexcharts-area-series .apexcharts-marker");
          u2.length > 0 && this.addPathsEventListeners(u2, c2), this.tooltipUtil.hasBars() && !this.tConfig.shared && this.addDatapointEventsListeners(c2);
        }
      } }, { key: "drawFixedTooltipRect", value: function() {
        var t3 = this.w, e2 = this.getElTooltip(), i2 = e2.getBoundingClientRect(), a2 = i2.width + 10, s2 = i2.height + 10, r2 = this.tConfig.fixed.offsetX, o2 = this.tConfig.fixed.offsetY, n2 = this.tConfig.fixed.position.toLowerCase();
        return n2.indexOf("right") > -1 && (r2 = r2 + t3.globals.svgWidth - a2 + 10), n2.indexOf("bottom") > -1 && (o2 = o2 + t3.globals.svgHeight - s2 - 10), e2.style.left = r2 + "px", e2.style.top = o2 + "px", { x: r2, y: o2, ttWidth: a2, ttHeight: s2 };
      } }, { key: "addDatapointEventsListeners", value: function(t3) {
        var e2 = this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area");
        this.addPathsEventListeners(e2, t3);
      } }, { key: "addPathsEventListeners", value: function(t3, e2) {
        for (var i2 = this, a2 = function(a3) {
          var s3 = { paths: t3[a3], tooltipEl: e2.tooltipEl, tooltipY: e2.tooltipY, tooltipX: e2.tooltipX, elGrid: e2.elGrid, hoverArea: e2.hoverArea, ttItems: e2.ttItems };
          ["mousemove", "mouseup", "touchmove", "mouseout", "touchend"].map(function(e3) {
            return t3[a3].addEventListener(e3, i2.onSeriesHover.bind(i2, s3), { capture: false, passive: true });
          });
        }, s2 = 0; s2 < t3.length; s2++)
          a2(s2);
      } }, { key: "onSeriesHover", value: function(t3, e2) {
        var i2 = this, a2 = Date.now() - this.lastHoverTime;
        a2 >= 100 ? this.seriesHover(t3, e2) : (clearTimeout(this.seriesHoverTimeout), this.seriesHoverTimeout = setTimeout(function() {
          i2.seriesHover(t3, e2);
        }, 100 - a2));
      } }, { key: "seriesHover", value: function(t3, e2) {
        var i2 = this;
        this.lastHoverTime = Date.now();
        var a2 = [], s2 = this.w;
        s2.config.chart.group && (a2 = this.ctx.getGroupedCharts()), s2.globals.axisCharts && (s2.globals.minX === -1 / 0 && s2.globals.maxX === 1 / 0 || 0 === s2.globals.dataPoints) || (a2.length ? a2.forEach(function(a3) {
          var s3 = i2.getElTooltip(a3), r2 = { paths: t3.paths, tooltipEl: s3, tooltipY: t3.tooltipY, tooltipX: t3.tooltipX, elGrid: t3.elGrid, hoverArea: t3.hoverArea, ttItems: a3.w.globals.tooltip.ttItems };
          a3.w.globals.minX === i2.w.globals.minX && a3.w.globals.maxX === i2.w.globals.maxX && a3.w.globals.tooltip.seriesHoverByContext({ chartCtx: a3, ttCtx: a3.w.globals.tooltip, opt: r2, e: e2 });
        }) : this.seriesHoverByContext({ chartCtx: this.ctx, ttCtx: this.w.globals.tooltip, opt: t3, e: e2 }));
      } }, { key: "seriesHoverByContext", value: function(t3) {
        var e2 = t3.chartCtx, i2 = t3.ttCtx, a2 = t3.opt, s2 = t3.e, r2 = e2.w, o2 = this.getElTooltip();
        if (o2) {
          if (i2.tooltipRect = { x: 0, y: 0, ttWidth: o2.getBoundingClientRect().width, ttHeight: o2.getBoundingClientRect().height }, i2.e = s2, i2.tooltipUtil.hasBars() && !r2.globals.comboCharts && !i2.isBarShared) {
            if (this.tConfig.onDatasetHover.highlightDataSeries)
              new N(e2).toggleSeriesOnHover(s2, s2.target.parentNode);
          }
          i2.fixedTooltip && i2.drawFixedTooltipRect(), r2.globals.axisCharts ? i2.axisChartsTooltips({ e: s2, opt: a2, tooltipRect: i2.tooltipRect }) : i2.nonAxisChartsTooltips({ e: s2, opt: a2, tooltipRect: i2.tooltipRect });
        }
      } }, { key: "axisChartsTooltips", value: function(t3) {
        var e2, i2, a2 = t3.e, s2 = t3.opt, r2 = this.w, o2 = s2.elGrid.getBoundingClientRect(), n2 = "touchmove" === a2.type ? a2.touches[0].clientX : a2.clientX, l2 = "touchmove" === a2.type ? a2.touches[0].clientY : a2.clientY;
        if (this.clientY = l2, this.clientX = n2, r2.globals.capturedSeriesIndex = -1, r2.globals.capturedDataPointIndex = -1, l2 < o2.top || l2 > o2.top + o2.height)
          this.handleMouseOut(s2);
        else {
          if (Array.isArray(this.tConfig.enabledOnSeries) && !r2.config.tooltip.shared) {
            var h2 = parseInt(s2.paths.getAttribute("index"), 10);
            if (this.tConfig.enabledOnSeries.indexOf(h2) < 0)
              return void this.handleMouseOut(s2);
          }
          var c2 = this.getElTooltip(), d2 = this.getElXCrosshairs(), g2 = r2.globals.xyCharts || "bar" === r2.config.chart.type && !r2.globals.isBarHorizontal && this.tooltipUtil.hasBars() && this.tConfig.shared || r2.globals.comboCharts && this.tooltipUtil.hasBars();
          if ("mousemove" === a2.type || "touchmove" === a2.type || "mouseup" === a2.type) {
            if (r2.globals.collapsedSeries.length + r2.globals.ancillaryCollapsedSeries.length === r2.globals.series.length)
              return;
            null !== d2 && d2.classList.add("apexcharts-active");
            var u2 = this.yaxisTooltips.filter(function(t4) {
              return true === t4;
            });
            if (null !== this.ycrosshairs && u2.length && this.ycrosshairs.classList.add("apexcharts-active"), g2 && !this.showOnIntersect)
              this.handleStickyTooltip(a2, n2, l2, s2);
            else if ("heatmap" === r2.config.chart.type || "treemap" === r2.config.chart.type) {
              var p2 = this.intersect.handleHeatTreeTooltip({ e: a2, opt: s2, x: e2, y: i2, type: r2.config.chart.type });
              e2 = p2.x, i2 = p2.y, c2.style.left = e2 + "px", c2.style.top = i2 + "px";
            } else
              this.tooltipUtil.hasBars() && this.intersect.handleBarTooltip({ e: a2, opt: s2 }), this.tooltipUtil.hasMarkers() && this.intersect.handleMarkerTooltip({ e: a2, opt: s2, x: e2, y: i2 });
            if (this.yaxisTooltips.length)
              for (var f2 = 0; f2 < r2.config.yaxis.length; f2++)
                this.axesTooltip.drawYaxisTooltipText(f2, l2, this.xyRatios);
            s2.tooltipEl.classList.add("apexcharts-active");
          } else
            "mouseout" !== a2.type && "touchend" !== a2.type || this.handleMouseOut(s2);
        }
      } }, { key: "nonAxisChartsTooltips", value: function(t3) {
        var e2 = t3.e, i2 = t3.opt, a2 = t3.tooltipRect, s2 = this.w, r2 = i2.paths.getAttribute("rel"), o2 = this.getElTooltip(), n2 = s2.globals.dom.elWrap.getBoundingClientRect();
        if ("mousemove" === e2.type || "touchmove" === e2.type) {
          o2.classList.add("apexcharts-active"), this.tooltipLabels.drawSeriesTexts({ ttItems: i2.ttItems, i: parseInt(r2, 10) - 1, shared: false });
          var l2 = s2.globals.clientX - n2.left - a2.ttWidth / 2, h2 = s2.globals.clientY - n2.top - a2.ttHeight - 10;
          if (o2.style.left = l2 + "px", o2.style.top = h2 + "px", s2.config.legend.tooltipHoverFormatter) {
            var c2 = r2 - 1, d2 = (0, s2.config.legend.tooltipHoverFormatter)(this.legendLabels[c2].getAttribute("data:default-text"), { seriesIndex: c2, dataPointIndex: c2, w: s2 });
            this.legendLabels[c2].innerHTML = d2;
          }
        } else
          "mouseout" !== e2.type && "touchend" !== e2.type || (o2.classList.remove("apexcharts-active"), s2.config.legend.tooltipHoverFormatter && this.legendLabels.forEach(function(t4) {
            var e3 = t4.getAttribute("data:default-text");
            t4.innerHTML = decodeURIComponent(e3);
          }));
      } }, { key: "handleStickyTooltip", value: function(t3, e2, i2, a2) {
        var s2 = this.w, r2 = this.tooltipUtil.getNearestValues({ context: this, hoverArea: a2.hoverArea, elGrid: a2.elGrid, clientX: e2, clientY: i2 }), o2 = r2.j, n2 = r2.capturedSeries;
        s2.globals.collapsedSeriesIndices.includes(n2) && (n2 = null);
        var l2 = a2.elGrid.getBoundingClientRect();
        if (r2.hoverX < 0 || r2.hoverX > l2.width)
          this.handleMouseOut(a2);
        else if (null !== n2)
          this.handleStickyCapturedSeries(t3, n2, a2, o2);
        else if (this.tooltipUtil.isXoverlap(o2) || s2.globals.isBarHorizontal) {
          var h2 = s2.globals.series.findIndex(function(t4, e3) {
            return !s2.globals.collapsedSeriesIndices.includes(e3);
          });
          this.create(t3, this, h2, o2, a2.ttItems);
        }
      } }, { key: "handleStickyCapturedSeries", value: function(t3, e2, i2, a2) {
        var s2 = this.w;
        if (!this.tConfig.shared && null === s2.globals.series[e2][a2])
          return void this.handleMouseOut(i2);
        if (void 0 !== s2.globals.series[e2][a2])
          this.tConfig.shared && this.tooltipUtil.isXoverlap(a2) && this.tooltipUtil.isInitialSeriesSameLen() ? this.create(t3, this, e2, a2, i2.ttItems) : this.create(t3, this, e2, a2, i2.ttItems, false);
        else if (this.tooltipUtil.isXoverlap(a2)) {
          var r2 = s2.globals.series.findIndex(function(t4, e3) {
            return !s2.globals.collapsedSeriesIndices.includes(e3);
          });
          this.create(t3, this, r2, a2, i2.ttItems);
        }
      } }, { key: "deactivateHoverFilter", value: function() {
        for (var t3 = this.w, e2 = new m(this.ctx), i2 = t3.globals.dom.Paper.select(".apexcharts-bar-area"), a2 = 0; a2 < i2.length; a2++)
          e2.pathMouseLeave(i2[a2]);
      } }, { key: "handleMouseOut", value: function(t3) {
        var e2 = this.w, i2 = this.getElXCrosshairs();
        if (t3.tooltipEl.classList.remove("apexcharts-active"), this.deactivateHoverFilter(), "bubble" !== e2.config.chart.type && this.marker.resetPointsSize(), null !== i2 && i2.classList.remove("apexcharts-active"), null !== this.ycrosshairs && this.ycrosshairs.classList.remove("apexcharts-active"), this.isXAxisTooltipEnabled && this.xaxisTooltip.classList.remove("apexcharts-active"), this.yaxisTooltips.length) {
          null === this.yaxisTTEls && (this.yaxisTTEls = e2.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));
          for (var a2 = 0; a2 < this.yaxisTTEls.length; a2++)
            this.yaxisTTEls[a2].classList.remove("apexcharts-active");
        }
        e2.config.legend.tooltipHoverFormatter && this.legendLabels.forEach(function(t4) {
          var e3 = t4.getAttribute("data:default-text");
          t4.innerHTML = decodeURIComponent(e3);
        });
      } }, { key: "markerClick", value: function(t3, e2, i2) {
        var a2 = this.w;
        "function" == typeof a2.config.chart.events.markerClick && a2.config.chart.events.markerClick(t3, this.ctx, { seriesIndex: e2, dataPointIndex: i2, w: a2 }), this.ctx.events.fireEvent("markerClick", [t3, this.ctx, { seriesIndex: e2, dataPointIndex: i2, w: a2 }]);
      } }, { key: "create", value: function(t3, i2, a2, s2, r2) {
        var o2, n2, l2, h2, c2, d2, g2, u2, p2, f2, x2, b2, v2, y2, w2, k2, A3 = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : null, S2 = this.w, C2 = i2;
        "mouseup" === t3.type && this.markerClick(t3, a2, s2), null === A3 && (A3 = this.tConfig.shared);
        var L2 = this.tooltipUtil.hasMarkers(a2), P2 = this.tooltipUtil.getElBars();
        if (S2.config.legend.tooltipHoverFormatter) {
          var I2 = S2.config.legend.tooltipHoverFormatter, T2 = Array.from(this.legendLabels);
          T2.forEach(function(t4) {
            var e2 = t4.getAttribute("data:default-text");
            t4.innerHTML = decodeURIComponent(e2);
          });
          for (var M2 = 0; M2 < T2.length; M2++) {
            var z2 = T2[M2], X2 = parseInt(z2.getAttribute("i"), 10), E2 = decodeURIComponent(z2.getAttribute("data:default-text")), Y2 = I2(E2, { seriesIndex: A3 ? X2 : a2, dataPointIndex: s2, w: S2 });
            if (A3)
              z2.innerHTML = S2.globals.collapsedSeriesIndices.indexOf(X2) < 0 ? Y2 : E2;
            else if (z2.innerHTML = X2 === a2 ? Y2 : E2, a2 === X2)
              break;
          }
        }
        var F2 = e(e({ ttItems: r2, i: a2, j: s2 }, void 0 !== (null === (o2 = S2.globals.seriesRange) || void 0 === o2 || null === (n2 = o2[a2]) || void 0 === n2 || null === (l2 = n2[s2]) || void 0 === l2 || null === (h2 = l2.y[0]) || void 0 === h2 ? void 0 : h2.y1) && { y1: null === (c2 = S2.globals.seriesRange) || void 0 === c2 || null === (d2 = c2[a2]) || void 0 === d2 || null === (g2 = d2[s2]) || void 0 === g2 || null === (u2 = g2.y[0]) || void 0 === u2 ? void 0 : u2.y1 }), void 0 !== (null === (p2 = S2.globals.seriesRange) || void 0 === p2 || null === (f2 = p2[a2]) || void 0 === f2 || null === (x2 = f2[s2]) || void 0 === x2 || null === (b2 = x2.y[0]) || void 0 === b2 ? void 0 : b2.y2) && { y2: null === (v2 = S2.globals.seriesRange) || void 0 === v2 || null === (y2 = v2[a2]) || void 0 === y2 || null === (w2 = y2[s2]) || void 0 === w2 || null === (k2 = w2.y[0]) || void 0 === k2 ? void 0 : k2.y2 });
        if (A3) {
          if (C2.tooltipLabels.drawSeriesTexts(e(e({}, F2), {}, { shared: !this.showOnIntersect && this.tConfig.shared })), L2)
            S2.globals.markers.largestSize > 0 ? C2.marker.enlargePoints(s2) : C2.tooltipPosition.moveDynamicPointsOnHover(s2);
          else if (this.tooltipUtil.hasBars() && (this.barSeriesHeight = this.tooltipUtil.getBarsHeight(P2), this.barSeriesHeight > 0)) {
            var R2 = new m(this.ctx), H2 = S2.globals.dom.Paper.select(".apexcharts-bar-area[j='".concat(s2, "']"));
            this.deactivateHoverFilter(), this.tooltipPosition.moveStickyTooltipOverBars(s2, a2);
            for (var D2 = 0; D2 < H2.length; D2++)
              R2.pathMouseEnter(H2[D2]);
          }
        } else
          C2.tooltipLabels.drawSeriesTexts(e({ shared: false }, F2)), this.tooltipUtil.hasBars() && C2.tooltipPosition.moveStickyTooltipOverBars(s2, a2), L2 && C2.tooltipPosition.moveMarkers(a2, s2);
      } }]), t2;
    }();
    var vt = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.barCtx = e2, this.totalFormatter = this.w.config.plotOptions.bar.dataLabels.total.formatter, this.totalFormatter || (this.totalFormatter = this.w.config.dataLabels.formatter);
      }
      return r(t2, [{ key: "handleBarDataLabels", value: function(t3) {
        var e2 = t3.x, i2 = t3.y, a2 = t3.y1, s2 = t3.y2, r2 = t3.i, o2 = t3.j, n2 = t3.realIndex, l2 = t3.groupIndex, h2 = t3.series, c2 = t3.barHeight, d2 = t3.barWidth, g2 = t3.barXPosition, u2 = t3.barYPosition, p2 = t3.visibleSeries, f2 = t3.renderedPath, x2 = this.w, b2 = new m(this.barCtx.ctx), v2 = Array.isArray(this.barCtx.strokeWidth) ? this.barCtx.strokeWidth[n2] : this.barCtx.strokeWidth, y2 = e2 + parseFloat(d2 * p2), w2 = i2 + parseFloat(c2 * p2);
        x2.globals.isXNumeric && !x2.globals.isBarHorizontal && (y2 = e2 + parseFloat(d2 * (p2 + 1)), w2 = i2 + parseFloat(c2 * (p2 + 1)) - v2);
        var k2, A3 = null, S2 = e2, C2 = i2, L2 = {}, P2 = x2.config.dataLabels, I2 = this.barCtx.barOptions.dataLabels, T2 = this.barCtx.barOptions.dataLabels.total;
        void 0 !== u2 && this.barCtx.isRangeBar && (w2 = u2, C2 = u2), void 0 !== g2 && this.barCtx.isVerticalGroupedRangeBar && (y2 = g2, S2 = g2);
        var M2 = P2.offsetX, z2 = P2.offsetY, X2 = { width: 0, height: 0 };
        if (x2.config.dataLabels.enabled) {
          var E2 = this.barCtx.series[r2][o2];
          X2 = b2.getTextRects(x2.globals.yLabelFormatters[0](E2), parseFloat(P2.style.fontSize));
        }
        var Y2 = { x: e2, y: i2, i: r2, j: o2, realIndex: n2, groupIndex: l2 || -1, renderedPath: f2, bcx: y2, bcy: w2, barHeight: c2, barWidth: d2, textRects: X2, strokeWidth: v2, dataLabelsX: S2, dataLabelsY: C2, dataLabelsConfig: P2, barDataLabelsConfig: I2, barTotalDataLabelsConfig: T2, offX: M2, offY: z2 };
        return L2 = this.barCtx.isHorizontal ? this.calculateBarsDataLabelsPosition(Y2) : this.calculateColumnsDataLabelsPosition(Y2), f2.attr({ cy: L2.bcy, cx: L2.bcx, j: o2, val: h2[r2][o2], barHeight: c2, barWidth: d2 }), k2 = this.drawCalculatedDataLabels({ x: L2.dataLabelsX, y: L2.dataLabelsY, val: this.barCtx.isRangeBar ? [a2, s2] : h2[r2][o2], i: n2, j: o2, barWidth: d2, barHeight: c2, textRects: X2, dataLabelsConfig: P2 }), x2.config.chart.stacked && T2.enabled && (A3 = this.drawTotalDataLabels({ x: L2.totalDataLabelsX, y: L2.totalDataLabelsY, barWidth: d2, barHeight: c2, realIndex: n2, textAnchor: L2.totalDataLabelsAnchor, val: this.getStackedTotalDataLabel({ realIndex: n2, j: o2 }), dataLabelsConfig: P2, barTotalDataLabelsConfig: T2 })), { dataLabels: k2, totalDataLabels: A3 };
      } }, { key: "getStackedTotalDataLabel", value: function(t3) {
        var i2 = t3.realIndex, a2 = t3.j, s2 = this.w, r2 = this.barCtx.stackedSeriesTotals[a2];
        return this.totalFormatter && (r2 = this.totalFormatter(r2, e(e({}, s2), {}, { seriesIndex: i2, dataPointIndex: a2, w: s2 }))), r2;
      } }, { key: "calculateColumnsDataLabelsPosition", value: function(t3) {
        var e2, i2, a2 = this.w, s2 = t3.i, r2 = t3.j, o2 = t3.realIndex, n2 = t3.groupIndex, l2 = t3.y, h2 = t3.bcx, c2 = t3.barWidth, d2 = t3.barHeight, g2 = t3.textRects, u2 = t3.dataLabelsX, p2 = t3.dataLabelsY, f2 = t3.dataLabelsConfig, x2 = t3.barDataLabelsConfig, b2 = t3.barTotalDataLabelsConfig, v2 = t3.strokeWidth, y2 = t3.offX, w2 = t3.offY;
        d2 = Math.abs(d2);
        var k2 = "vertical" === a2.config.plotOptions.bar.dataLabels.orientation, A3 = this.barCtx.barHelpers.getZeroValueEncounters({ i: s2, j: r2 }).zeroEncounters;
        h2 = h2 - v2 / 2 + (-1 !== n2 ? n2 * c2 : 0);
        var S2 = a2.globals.gridWidth / a2.globals.dataPoints;
        if (this.barCtx.isVerticalGroupedRangeBar ? u2 += c2 / 2 : (u2 = a2.globals.isXNumeric ? h2 - c2 / 2 + y2 : h2 - S2 + c2 / 2 + y2, A3 > 0 && a2.config.plotOptions.bar.hideZeroBarsWhenGrouped && (u2 -= c2 * A3)), k2) {
          u2 = u2 + g2.height / 2 - v2 / 2 - 2;
        }
        var C2 = this.barCtx.series[s2][r2] < 0, L2 = l2;
        switch (this.barCtx.isReversed && (L2 = l2 - d2 + (C2 ? 2 * d2 : 0), l2 -= d2), x2.position) {
          case "center":
            p2 = k2 ? C2 ? L2 - d2 / 2 + w2 : L2 + d2 / 2 - w2 : C2 ? L2 - d2 / 2 + g2.height / 2 + w2 : L2 + d2 / 2 + g2.height / 2 - w2;
            break;
          case "bottom":
            p2 = k2 ? C2 ? L2 - d2 + w2 : L2 + d2 - w2 : C2 ? L2 - d2 + g2.height + v2 + w2 : L2 + d2 - g2.height / 2 + v2 - w2;
            break;
          case "top":
            p2 = k2 ? C2 ? L2 + w2 : L2 - w2 : C2 ? L2 - g2.height / 2 - w2 : L2 + g2.height + w2;
        }
        if (this.barCtx.lastActiveBarSerieIndex === o2 && b2.enabled) {
          var P2 = new m(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({ realIndex: o2, j: r2 }), f2.fontSize);
          e2 = C2 ? L2 - P2.height / 2 - w2 - b2.offsetY + 18 : L2 + P2.height + w2 + b2.offsetY - 18, i2 = u2 + b2.offsetX;
        }
        return a2.config.chart.stacked || (p2 < 0 ? p2 = 0 + v2 : p2 + g2.height / 3 > a2.globals.gridHeight && (p2 = a2.globals.gridHeight - v2)), { bcx: h2, bcy: l2, dataLabelsX: u2, dataLabelsY: p2, totalDataLabelsX: i2, totalDataLabelsY: e2, totalDataLabelsAnchor: "middle" };
      } }, { key: "calculateBarsDataLabelsPosition", value: function(t3) {
        var e2 = this.w, i2 = t3.x, a2 = t3.i, s2 = t3.j, r2 = t3.realIndex, o2 = t3.groupIndex, n2 = t3.bcy, l2 = t3.barHeight, h2 = t3.barWidth, c2 = t3.textRects, d2 = t3.dataLabelsX, g2 = t3.strokeWidth, u2 = t3.dataLabelsConfig, p2 = t3.barDataLabelsConfig, f2 = t3.barTotalDataLabelsConfig, x2 = t3.offX, b2 = t3.offY, v2 = e2.globals.gridHeight / e2.globals.dataPoints;
        h2 = Math.abs(h2);
        var y2, w2, k2 = (n2 += -1 !== o2 ? o2 * l2 : 0) - (this.barCtx.isRangeBar ? 0 : v2) + l2 / 2 + c2.height / 2 + b2 - 3, A3 = "start", S2 = this.barCtx.series[a2][s2] < 0, C2 = i2;
        switch (this.barCtx.isReversed && (C2 = i2 + h2 - (S2 ? 2 * h2 : 0), i2 = e2.globals.gridWidth - h2), p2.position) {
          case "center":
            d2 = S2 ? C2 + h2 / 2 - x2 : Math.max(c2.width / 2, C2 - h2 / 2) + x2;
            break;
          case "bottom":
            d2 = S2 ? C2 + h2 - g2 - Math.round(c2.width / 2) - x2 : C2 - h2 + g2 + Math.round(c2.width / 2) + x2;
            break;
          case "top":
            d2 = S2 ? C2 - g2 + Math.round(c2.width / 2) - x2 : C2 - g2 - Math.round(c2.width / 2) + x2;
        }
        if (this.barCtx.lastActiveBarSerieIndex === r2 && f2.enabled) {
          var L2 = new m(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({ realIndex: r2, j: s2 }), u2.fontSize);
          S2 ? (y2 = C2 - g2 + Math.round(L2.width / 2) - x2 - f2.offsetX - 15, A3 = "end") : y2 = C2 - g2 - Math.round(L2.width / 2) + x2 + f2.offsetX + 15, w2 = k2 + f2.offsetY;
        }
        return e2.config.chart.stacked || (d2 < 0 ? d2 = d2 + c2.width + g2 : d2 + c2.width / 2 > e2.globals.gridWidth && (d2 = e2.globals.gridWidth - c2.width - g2)), { bcx: i2, bcy: n2, dataLabelsX: d2, dataLabelsY: k2, totalDataLabelsX: y2, totalDataLabelsY: w2, totalDataLabelsAnchor: A3 };
      } }, { key: "drawCalculatedDataLabels", value: function(t3) {
        var i2 = t3.x, a2 = t3.y, s2 = t3.val, r2 = t3.i, o2 = t3.j, n2 = t3.textRects, l2 = t3.barHeight, h2 = t3.barWidth, c2 = t3.dataLabelsConfig, d2 = this.w, g2 = "rotate(0)";
        "vertical" === d2.config.plotOptions.bar.dataLabels.orientation && (g2 = "rotate(-90, ".concat(i2, ", ").concat(a2, ")"));
        var u2 = new O(this.barCtx.ctx), p2 = new m(this.barCtx.ctx), f2 = c2.formatter, x2 = null, b2 = d2.globals.collapsedSeriesIndices.indexOf(r2) > -1;
        if (c2.enabled && !b2) {
          x2 = p2.group({ class: "apexcharts-data-labels", transform: g2 });
          var v2 = "";
          void 0 !== s2 && (v2 = f2(s2, e(e({}, d2), {}, { seriesIndex: r2, dataPointIndex: o2, w: d2 }))), !s2 && d2.config.plotOptions.bar.hideZeroBarsWhenGrouped && (v2 = "");
          var y2 = d2.globals.series[r2][o2] < 0, w2 = d2.config.plotOptions.bar.dataLabels.position;
          if ("vertical" === d2.config.plotOptions.bar.dataLabels.orientation && ("top" === w2 && (c2.textAnchor = y2 ? "end" : "start"), "center" === w2 && (c2.textAnchor = "middle"), "bottom" === w2 && (c2.textAnchor = y2 ? "end" : "start")), this.barCtx.isRangeBar && this.barCtx.barOptions.dataLabels.hideOverflowingLabels)
            h2 < p2.getTextRects(v2, parseFloat(c2.style.fontSize)).width && (v2 = "");
          d2.config.chart.stacked && this.barCtx.barOptions.dataLabels.hideOverflowingLabels && (this.barCtx.isHorizontal ? n2.width / 1.6 > Math.abs(h2) && (v2 = "") : n2.height / 1.6 > Math.abs(l2) && (v2 = ""));
          var k2 = e({}, c2);
          this.barCtx.isHorizontal && s2 < 0 && ("start" === c2.textAnchor ? k2.textAnchor = "end" : "end" === c2.textAnchor && (k2.textAnchor = "start")), u2.plotDataLabelsText({ x: i2, y: a2, text: v2, i: r2, j: o2, parent: x2, dataLabelsConfig: k2, alwaysDrawDataLabel: true, offsetCorrection: true });
        }
        return x2;
      } }, { key: "drawTotalDataLabels", value: function(t3) {
        var e2, i2 = t3.x, a2 = t3.y, s2 = t3.val, r2 = t3.barWidth, o2 = t3.barHeight, n2 = t3.realIndex, l2 = t3.textAnchor, h2 = t3.barTotalDataLabelsConfig, c2 = this.w, d2 = new m(this.barCtx.ctx);
        return h2.enabled && void 0 !== i2 && void 0 !== a2 && this.barCtx.lastActiveBarSerieIndex === n2 && (e2 = d2.drawText({ x: i2 - (!c2.globals.isBarHorizontal && c2.globals.seriesGroups.length ? r2 / c2.globals.seriesGroups.length : 0), y: a2 - (c2.globals.isBarHorizontal && c2.globals.seriesGroups.length ? o2 / c2.globals.seriesGroups.length : 0), foreColor: h2.style.color, text: s2, textAnchor: l2, fontFamily: h2.style.fontFamily, fontSize: h2.style.fontSize, fontWeight: h2.style.fontWeight })), e2;
      } }]), t2;
    }();
    var mt = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.barCtx = e2;
      }
      return r(t2, [{ key: "initVariables", value: function(t3) {
        var e2 = this.w;
        this.barCtx.series = t3, this.barCtx.totalItems = 0, this.barCtx.seriesLen = 0, this.barCtx.visibleI = -1, this.barCtx.visibleItems = 1;
        for (var i2 = 0; i2 < t3.length; i2++)
          if (t3[i2].length > 0 && (this.barCtx.seriesLen = this.barCtx.seriesLen + 1, this.barCtx.totalItems += t3[i2].length), e2.globals.isXNumeric)
            for (var a2 = 0; a2 < t3[i2].length; a2++)
              e2.globals.seriesX[i2][a2] > e2.globals.minX && e2.globals.seriesX[i2][a2] < e2.globals.maxX && this.barCtx.visibleItems++;
          else
            this.barCtx.visibleItems = e2.globals.dataPoints;
        0 === this.barCtx.seriesLen && (this.barCtx.seriesLen = 1), this.barCtx.zeroSerieses = [], e2.globals.comboCharts || this.checkZeroSeries({ series: t3 });
      } }, { key: "initialPositions", value: function() {
        var t3, e2, i2, a2, s2, r2, o2, n2, l2 = this.w, h2 = l2.globals.dataPoints;
        this.barCtx.isRangeBar && (h2 = l2.globals.labels.length);
        var c2 = this.barCtx.seriesLen;
        if (l2.config.plotOptions.bar.rangeBarGroupRows && (c2 = 1), this.barCtx.isHorizontal)
          s2 = (i2 = l2.globals.gridHeight / h2) / c2, l2.globals.isXNumeric && (s2 = (i2 = l2.globals.gridHeight / this.barCtx.totalItems) / this.barCtx.seriesLen), s2 = s2 * parseInt(this.barCtx.barOptions.barHeight, 10) / 100, -1 === String(this.barCtx.barOptions.barHeight).indexOf("%") && (s2 = parseInt(this.barCtx.barOptions.barHeight, 10)), n2 = this.barCtx.baseLineInvertedY + l2.globals.padHorizontal + (this.barCtx.isReversed ? l2.globals.gridWidth : 0) - (this.barCtx.isReversed ? 2 * this.barCtx.baseLineInvertedY : 0), this.barCtx.isFunnel && (n2 = l2.globals.gridWidth / 2), e2 = (i2 - s2 * this.barCtx.seriesLen) / 2;
        else {
          if (a2 = l2.globals.gridWidth / this.barCtx.visibleItems, l2.config.xaxis.convertedCatToNumeric && (a2 = l2.globals.gridWidth / l2.globals.dataPoints), r2 = a2 / c2 * parseInt(this.barCtx.barOptions.columnWidth, 10) / 100, l2.globals.isXNumeric) {
            var d2 = this.barCtx.xRatio;
            l2.globals.minXDiff && 0.5 !== l2.globals.minXDiff && l2.globals.minXDiff / d2 > 0 && (a2 = l2.globals.minXDiff / d2), (r2 = a2 / c2 * parseInt(this.barCtx.barOptions.columnWidth, 10) / 100) < 1 && (r2 = 1);
          }
          -1 === String(this.barCtx.barOptions.columnWidth).indexOf("%") && (r2 = parseInt(this.barCtx.barOptions.columnWidth, 10)), o2 = l2.globals.gridHeight - this.barCtx.baseLineY[this.barCtx.yaxisIndex] - (this.barCtx.isReversed ? l2.globals.gridHeight : 0) + (this.barCtx.isReversed ? 2 * this.barCtx.baseLineY[this.barCtx.yaxisIndex] : 0), t3 = l2.globals.padHorizontal + (a2 - r2 * this.barCtx.seriesLen) / 2;
        }
        return l2.globals.barHeight = s2, l2.globals.barWidth = r2, { x: t3, y: e2, yDivision: i2, xDivision: a2, barHeight: s2, barWidth: r2, zeroH: o2, zeroW: n2 };
      } }, { key: "initializeStackedPrevVars", value: function(t3) {
        var e2 = t3.w;
        e2.globals.hasSeriesGroups ? e2.globals.seriesGroups.forEach(function(e3) {
          t3[e3] || (t3[e3] = {}), t3[e3].prevY = [], t3[e3].prevX = [], t3[e3].prevYF = [], t3[e3].prevXF = [], t3[e3].prevYVal = [], t3[e3].prevXVal = [];
        }) : (t3.prevY = [], t3.prevX = [], t3.prevYF = [], t3.prevXF = [], t3.prevYVal = [], t3.prevXVal = []);
      } }, { key: "initializeStackedXYVars", value: function(t3) {
        var e2 = t3.w;
        e2.globals.hasSeriesGroups ? e2.globals.seriesGroups.forEach(function(e3) {
          t3[e3] || (t3[e3] = {}), t3[e3].xArrj = [], t3[e3].xArrjF = [], t3[e3].xArrjVal = [], t3[e3].yArrj = [], t3[e3].yArrjF = [], t3[e3].yArrjVal = [];
        }) : (t3.xArrj = [], t3.xArrjF = [], t3.xArrjVal = [], t3.yArrj = [], t3.yArrjF = [], t3.yArrjVal = []);
      } }, { key: "getPathFillColor", value: function(t3, e2, i2, a2) {
        var s2, r2, o2, n2, l2 = this.w, h2 = new R(this.barCtx.ctx), c2 = null, d2 = this.barCtx.barOptions.distributed ? i2 : e2;
        this.barCtx.barOptions.colors.ranges.length > 0 && this.barCtx.barOptions.colors.ranges.map(function(a3) {
          t3[e2][i2] >= a3.from && t3[e2][i2] <= a3.to && (c2 = a3.color);
        });
        return l2.config.series[e2].data[i2] && l2.config.series[e2].data[i2].fillColor && (c2 = l2.config.series[e2].data[i2].fillColor), h2.fillPath({ seriesNumber: this.barCtx.barOptions.distributed ? d2 : a2, dataPointIndex: i2, color: c2, value: t3[e2][i2], fillConfig: null === (s2 = l2.config.series[e2].data[i2]) || void 0 === s2 ? void 0 : s2.fill, fillType: null !== (r2 = l2.config.series[e2].data[i2]) && void 0 !== r2 && null !== (o2 = r2.fill) && void 0 !== o2 && o2.type ? null === (n2 = l2.config.series[e2].data[i2]) || void 0 === n2 ? void 0 : n2.fill.type : Array.isArray(l2.config.fill.type) ? l2.config.fill.type[e2] : l2.config.fill.type });
      } }, { key: "getStrokeWidth", value: function(t3, e2, i2) {
        var a2 = 0, s2 = this.w;
        return void 0 === this.barCtx.series[t3][e2] || null === this.barCtx.series[t3][e2] ? this.barCtx.isNullValue = true : this.barCtx.isNullValue = false, s2.config.stroke.show && (this.barCtx.isNullValue || (a2 = Array.isArray(this.barCtx.strokeWidth) ? this.barCtx.strokeWidth[i2] : this.barCtx.strokeWidth)), a2;
      } }, { key: "shouldApplyRadius", value: function(t3) {
        var e2 = this.w, i2 = false;
        return e2.config.plotOptions.bar.borderRadius > 0 && (e2.config.chart.stacked && "last" === e2.config.plotOptions.bar.borderRadiusWhenStacked ? this.barCtx.lastActiveBarSerieIndex === t3 && (i2 = true) : i2 = true), i2;
      } }, { key: "barBackground", value: function(t3) {
        var e2 = t3.j, i2 = t3.i, a2 = t3.x1, s2 = t3.x2, r2 = t3.y1, o2 = t3.y2, n2 = t3.elSeries, l2 = this.w, h2 = new m(this.barCtx.ctx), c2 = new N(this.barCtx.ctx).getActiveConfigSeriesIndex();
        if (this.barCtx.barOptions.colors.backgroundBarColors.length > 0 && c2 === i2) {
          e2 >= this.barCtx.barOptions.colors.backgroundBarColors.length && (e2 %= this.barCtx.barOptions.colors.backgroundBarColors.length);
          var d2 = this.barCtx.barOptions.colors.backgroundBarColors[e2], g2 = h2.drawRect(void 0 !== a2 ? a2 : 0, void 0 !== r2 ? r2 : 0, void 0 !== s2 ? s2 : l2.globals.gridWidth, void 0 !== o2 ? o2 : l2.globals.gridHeight, this.barCtx.barOptions.colors.backgroundBarRadius, d2, this.barCtx.barOptions.colors.backgroundBarOpacity);
          n2.add(g2), g2.node.classList.add("apexcharts-backgroundBar");
        }
      } }, { key: "getColumnPaths", value: function(t3) {
        var e2, i2 = t3.barWidth, a2 = t3.barXPosition, s2 = t3.y1, r2 = t3.y2, o2 = t3.strokeWidth, n2 = t3.seriesGroup, l2 = t3.realIndex, h2 = t3.i, c2 = t3.j, d2 = t3.w, g2 = new m(this.barCtx.ctx);
        (o2 = Array.isArray(o2) ? o2[l2] : o2) || (o2 = 0);
        var u2 = i2, p2 = a2;
        null !== (e2 = d2.config.series[l2].data[c2]) && void 0 !== e2 && e2.columnWidthOffset && (p2 = a2 - d2.config.series[l2].data[c2].columnWidthOffset / 2, u2 = i2 + d2.config.series[l2].data[c2].columnWidthOffset);
        var f2 = p2, x2 = p2 + u2;
        s2 += 1e-3, r2 += 1e-3;
        var b2 = g2.move(f2, s2), v2 = g2.move(f2, s2), y2 = g2.line(x2 - o2, s2);
        if (d2.globals.previousPaths.length > 0 && (v2 = this.barCtx.getPreviousPath(l2, c2, false)), b2 = b2 + g2.line(f2, r2) + g2.line(x2 - o2, r2) + g2.line(x2 - o2, s2) + ("around" === d2.config.plotOptions.bar.borderRadiusApplication ? " Z" : " z"), v2 = v2 + g2.line(f2, s2) + y2 + y2 + y2 + y2 + y2 + g2.line(f2, s2) + ("around" === d2.config.plotOptions.bar.borderRadiusApplication ? " Z" : " z"), this.shouldApplyRadius(l2) && (b2 = g2.roundPathCorners(b2, d2.config.plotOptions.bar.borderRadius)), d2.config.chart.stacked) {
          var w2 = this.barCtx;
          d2.globals.hasSeriesGroups && n2 && (w2 = this.barCtx[n2]), w2.yArrj.push(r2), w2.yArrjF.push(Math.abs(s2 - r2)), w2.yArrjVal.push(this.barCtx.series[h2][c2]);
        }
        return { pathTo: b2, pathFrom: v2 };
      } }, { key: "getBarpaths", value: function(t3) {
        var e2, i2 = t3.barYPosition, a2 = t3.barHeight, s2 = t3.x1, r2 = t3.x2, o2 = t3.strokeWidth, n2 = t3.seriesGroup, l2 = t3.realIndex, h2 = t3.i, c2 = t3.j, d2 = t3.w, g2 = new m(this.barCtx.ctx);
        (o2 = Array.isArray(o2) ? o2[l2] : o2) || (o2 = 0);
        var u2 = i2, p2 = a2;
        null !== (e2 = d2.config.series[l2].data[c2]) && void 0 !== e2 && e2.barHeightOffset && (u2 = i2 - d2.config.series[l2].data[c2].barHeightOffset / 2, p2 = a2 + d2.config.series[l2].data[c2].barHeightOffset);
        var f2 = u2, x2 = u2 + p2;
        s2 += 1e-3, r2 += 1e-3;
        var b2 = g2.move(s2, f2), v2 = g2.move(s2, f2);
        d2.globals.previousPaths.length > 0 && (v2 = this.barCtx.getPreviousPath(l2, c2, false));
        var y2 = g2.line(s2, x2 - o2);
        if (b2 = b2 + g2.line(r2, f2) + g2.line(r2, x2 - o2) + y2 + ("around" === d2.config.plotOptions.bar.borderRadiusApplication ? " Z" : " z"), v2 = v2 + g2.line(s2, f2) + y2 + y2 + y2 + y2 + y2 + g2.line(s2, f2) + ("around" === d2.config.plotOptions.bar.borderRadiusApplication ? " Z" : " z"), this.shouldApplyRadius(l2) && (b2 = g2.roundPathCorners(b2, d2.config.plotOptions.bar.borderRadius)), d2.config.chart.stacked) {
          var w2 = this.barCtx;
          d2.globals.hasSeriesGroups && n2 && (w2 = this.barCtx[n2]), w2.xArrj.push(r2), w2.xArrjF.push(Math.abs(s2 - r2)), w2.xArrjVal.push(this.barCtx.series[h2][c2]);
        }
        return { pathTo: b2, pathFrom: v2 };
      } }, { key: "checkZeroSeries", value: function(t3) {
        for (var e2 = t3.series, i2 = this.w, a2 = 0; a2 < e2.length; a2++) {
          for (var s2 = 0, r2 = 0; r2 < e2[i2.globals.maxValsInArrayIndex].length; r2++)
            s2 += e2[a2][r2];
          0 === s2 && this.barCtx.zeroSerieses.push(a2);
        }
      } }, { key: "getXForValue", value: function(t3, e2) {
        var i2 = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2] ? e2 : null;
        return null != t3 && (i2 = e2 + t3 / this.barCtx.invertedYRatio - 2 * (this.barCtx.isReversed ? t3 / this.barCtx.invertedYRatio : 0)), i2;
      } }, { key: "getYForValue", value: function(t3, e2) {
        var i2 = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2] ? e2 : null;
        return null != t3 && (i2 = e2 - t3 / this.barCtx.yRatio[this.barCtx.yaxisIndex] + 2 * (this.barCtx.isReversed ? t3 / this.barCtx.yRatio[this.barCtx.yaxisIndex] : 0)), i2;
      } }, { key: "getGoalValues", value: function(t3, i2, a2, s2, r2) {
        var n2 = this, l2 = this.w, h2 = [], c2 = function(e2, s3) {
          var r3;
          h2.push((o(r3 = {}, t3, "x" === t3 ? n2.getXForValue(e2, i2, false) : n2.getYForValue(e2, a2, false)), o(r3, "attrs", s3), r3));
        };
        if (l2.globals.seriesGoals[s2] && l2.globals.seriesGoals[s2][r2] && Array.isArray(l2.globals.seriesGoals[s2][r2]) && l2.globals.seriesGoals[s2][r2].forEach(function(t4) {
          c2(t4.value, t4);
        }), this.barCtx.barOptions.isDumbbell && l2.globals.seriesRange.length) {
          var d2 = this.barCtx.barOptions.dumbbellColors ? this.barCtx.barOptions.dumbbellColors : l2.globals.colors, g2 = { strokeHeight: "x" === t3 ? 0 : l2.globals.markers.size[s2], strokeWidth: "x" === t3 ? l2.globals.markers.size[s2] : 0, strokeDashArray: 0, strokeLineCap: "round", strokeColor: Array.isArray(d2[s2]) ? d2[s2][0] : d2[s2] };
          c2(l2.globals.seriesRangeStart[s2][r2], g2), c2(l2.globals.seriesRangeEnd[s2][r2], e(e({}, g2), {}, { strokeColor: Array.isArray(d2[s2]) ? d2[s2][1] : d2[s2] }));
        }
        return h2;
      } }, { key: "drawGoalLine", value: function(t3) {
        var e2 = t3.barXPosition, i2 = t3.barYPosition, a2 = t3.goalX, s2 = t3.goalY, r2 = t3.barWidth, o2 = t3.barHeight, n2 = new m(this.barCtx.ctx), l2 = n2.group({ className: "apexcharts-bar-goals-groups" });
        l2.node.classList.add("apexcharts-element-hidden"), this.barCtx.w.globals.delayedElements.push({ el: l2.node }), l2.attr("clip-path", "url(#gridRectMarkerMask".concat(this.barCtx.w.globals.cuid, ")"));
        var h2 = null;
        return this.barCtx.isHorizontal ? Array.isArray(a2) && a2.forEach(function(t4) {
          var e3 = void 0 !== t4.attrs.strokeHeight ? t4.attrs.strokeHeight : o2 / 2, a3 = i2 + e3 + o2 / 2;
          h2 = n2.drawLine(t4.x, a3 - 2 * e3, t4.x, a3, t4.attrs.strokeColor ? t4.attrs.strokeColor : void 0, t4.attrs.strokeDashArray, t4.attrs.strokeWidth ? t4.attrs.strokeWidth : 2, t4.attrs.strokeLineCap), l2.add(h2);
        }) : Array.isArray(s2) && s2.forEach(function(t4) {
          var i3 = void 0 !== t4.attrs.strokeWidth ? t4.attrs.strokeWidth : r2 / 2, a3 = e2 + i3 + r2 / 2;
          h2 = n2.drawLine(a3 - 2 * i3, t4.y, a3, t4.y, t4.attrs.strokeColor ? t4.attrs.strokeColor : void 0, t4.attrs.strokeDashArray, t4.attrs.strokeHeight ? t4.attrs.strokeHeight : 2, t4.attrs.strokeLineCap), l2.add(h2);
        }), l2;
      } }, { key: "drawBarShadow", value: function(t3) {
        var e2 = t3.prevPaths, i2 = t3.currPaths, a2 = t3.color, s2 = this.w, r2 = e2.x, o2 = e2.x1, n2 = e2.barYPosition, l2 = i2.x, h2 = i2.x1, c2 = i2.barYPosition, d2 = n2 + i2.barHeight, g2 = new m(this.barCtx.ctx), u2 = new x(), p2 = g2.move(o2, d2) + g2.line(r2, d2) + g2.line(l2, c2) + g2.line(h2, c2) + g2.line(o2, d2) + ("around" === s2.config.plotOptions.bar.borderRadiusApplication ? " Z" : " z");
        return g2.drawPath({ d: p2, fill: u2.shadeColor(0.5, x.rgb2hex(a2)), stroke: "none", strokeWidth: 0, fillOpacity: 1, classes: "apexcharts-bar-shadows" });
      } }, { key: "getZeroValueEncounters", value: function(t3) {
        var e2 = t3.i, i2 = t3.j, a2 = this.w, s2 = 0, r2 = 0;
        return a2.globals.seriesPercent.forEach(function(t4, a3) {
          t4[i2] && s2++, a3 < e2 && 0 === t4[i2] && r2++;
        }), { nonZeroColumns: s2, zeroEncounters: r2 };
      } }]), t2;
    }();
    var yt = function() {
      function t2(e2, i2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
        var s2 = this.w;
        this.barOptions = s2.config.plotOptions.bar, this.isHorizontal = this.barOptions.horizontal, this.strokeWidth = s2.config.stroke.width, this.isNullValue = false, this.isRangeBar = s2.globals.seriesRange.length && this.isHorizontal, this.isVerticalGroupedRangeBar = !s2.globals.isBarHorizontal && s2.globals.seriesRange.length && s2.config.plotOptions.bar.rangeBarGroupRows, this.isFunnel = this.barOptions.isFunnel, this.xyRatios = i2, null !== this.xyRatios && (this.xRatio = i2.xRatio, this.yRatio = i2.yRatio, this.invertedXRatio = i2.invertedXRatio, this.invertedYRatio = i2.invertedYRatio, this.baseLineY = i2.baseLineY, this.baseLineInvertedY = i2.baseLineInvertedY), this.yaxisIndex = 0, this.seriesLen = 0, this.pathArr = [];
        var r2 = new N(this.ctx);
        this.lastActiveBarSerieIndex = r2.getActiveConfigSeriesIndex("desc", ["bar", "column"]);
        var o2 = r2.getBarSeriesIndices(), n2 = new y(this.ctx);
        this.stackedSeriesTotals = n2.getStackedSeriesTotals(this.w.config.series.map(function(t3, e3) {
          return -1 === o2.indexOf(e3) ? e3 : -1;
        }).filter(function(t3) {
          return -1 !== t3;
        })), this.barHelpers = new mt(this);
      }
      return r(t2, [{ key: "draw", value: function(t3, i2) {
        var a2 = this.w, s2 = new m(this.ctx), r2 = new y(this.ctx, a2);
        t3 = r2.getLogSeries(t3), this.series = t3, this.yRatio = r2.getLogYRatios(this.yRatio), this.barHelpers.initVariables(t3);
        var o2 = s2.group({ class: "apexcharts-bar-series apexcharts-plot-series" });
        a2.config.dataLabels.enabled && this.totalItems > this.barOptions.dataLabels.maxItems && console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering - ApexCharts");
        for (var n2 = 0, l2 = 0; n2 < t3.length; n2++, l2++) {
          var h2, c2, d2, g2, u2 = void 0, p2 = void 0, f2 = [], b2 = [], v2 = a2.globals.comboCharts ? i2[n2] : n2, w2 = s2.group({ class: "apexcharts-series", rel: n2 + 1, seriesName: x.escapeString(a2.globals.seriesNames[v2]), "data:realIndex": v2 });
          this.ctx.series.addCollapsedClassToSeries(w2, v2), t3[n2].length > 0 && (this.visibleI = this.visibleI + 1);
          var k2 = 0, A3 = 0;
          this.yRatio.length > 1 && (this.yaxisIndex = v2), this.isReversed = a2.config.yaxis[this.yaxisIndex] && a2.config.yaxis[this.yaxisIndex].reversed;
          var S2 = this.barHelpers.initialPositions();
          p2 = S2.y, k2 = S2.barHeight, c2 = S2.yDivision, g2 = S2.zeroW, u2 = S2.x, A3 = S2.barWidth, h2 = S2.xDivision, d2 = S2.zeroH, this.horizontal || b2.push(u2 + A3 / 2);
          var C2 = s2.group({ class: "apexcharts-datalabels", "data:realIndex": v2 });
          a2.globals.delayedElements.push({ el: C2.node }), C2.node.classList.add("apexcharts-element-hidden");
          var L2 = s2.group({ class: "apexcharts-bar-goals-markers" }), P2 = s2.group({ class: "apexcharts-bar-shadows" });
          a2.globals.delayedElements.push({ el: P2.node }), P2.node.classList.add("apexcharts-element-hidden");
          for (var I2 = 0; I2 < a2.globals.dataPoints; I2++) {
            var T2 = this.barHelpers.getStrokeWidth(n2, I2, v2), M2 = null, z2 = { indexes: { i: n2, j: I2, realIndex: v2, bc: l2 }, x: u2, y: p2, strokeWidth: T2, elSeries: w2 };
            this.isHorizontal ? (M2 = this.drawBarPaths(e(e({}, z2), {}, { barHeight: k2, zeroW: g2, yDivision: c2 })), A3 = this.series[n2][I2] / this.invertedYRatio) : (M2 = this.drawColumnPaths(e(e({}, z2), {}, { xDivision: h2, barWidth: A3, zeroH: d2 })), k2 = this.series[n2][I2] / this.yRatio[this.yaxisIndex]);
            var X2 = this.barHelpers.getPathFillColor(t3, n2, I2, v2);
            if (this.isFunnel && this.barOptions.isFunnel3d && this.pathArr.length && I2 > 0) {
              var E2 = this.barHelpers.drawBarShadow({ color: "string" == typeof X2 && -1 === (null == X2 ? void 0 : X2.indexOf("url")) ? X2 : x.hexToRgba(a2.globals.colors[n2]), prevPaths: this.pathArr[this.pathArr.length - 1], currPaths: M2 });
              E2 && P2.add(E2);
            }
            this.pathArr.push(M2);
            var Y2 = this.barHelpers.drawGoalLine({ barXPosition: M2.barXPosition, barYPosition: M2.barYPosition, goalX: M2.goalX, goalY: M2.goalY, barHeight: k2, barWidth: A3 });
            Y2 && L2.add(Y2), p2 = M2.y, u2 = M2.x, I2 > 0 && b2.push(u2 + A3 / 2), f2.push(p2), this.renderSeries({ realIndex: v2, pathFill: X2, j: I2, i: n2, pathFrom: M2.pathFrom, pathTo: M2.pathTo, strokeWidth: T2, elSeries: w2, x: u2, y: p2, series: t3, barHeight: M2.barHeight ? M2.barHeight : k2, barWidth: M2.barWidth ? M2.barWidth : A3, elDataLabelsWrap: C2, elGoalsMarkers: L2, elBarShadows: P2, visibleSeries: this.visibleI, type: "bar" });
          }
          a2.globals.seriesXvalues[v2] = b2, a2.globals.seriesYvalues[v2] = f2, o2.add(w2);
        }
        return o2;
      } }, { key: "renderSeries", value: function(t3) {
        var e2 = t3.realIndex, i2 = t3.pathFill, a2 = t3.lineFill, s2 = t3.j, r2 = t3.i, o2 = t3.groupIndex, n2 = t3.pathFrom, l2 = t3.pathTo, h2 = t3.strokeWidth, c2 = t3.elSeries, d2 = t3.x, g2 = t3.y, u2 = t3.y1, p2 = t3.y2, f2 = t3.series, x2 = t3.barHeight, b2 = t3.barWidth, y2 = t3.barXPosition, w2 = t3.barYPosition, k2 = t3.elDataLabelsWrap, A3 = t3.elGoalsMarkers, S2 = t3.elBarShadows, C2 = t3.visibleSeries, L2 = t3.type, P2 = this.w, I2 = new m(this.ctx);
        a2 || (a2 = this.barOptions.distributed ? P2.globals.stroke.colors[s2] : P2.globals.stroke.colors[e2]), P2.config.series[r2].data[s2] && P2.config.series[r2].data[s2].strokeColor && (a2 = P2.config.series[r2].data[s2].strokeColor), this.isNullValue && (i2 = "none");
        var T2 = s2 / P2.config.chart.animations.animateGradually.delay * (P2.config.chart.animations.speed / P2.globals.dataPoints) / 2.4, M2 = I2.renderPaths({ i: r2, j: s2, realIndex: e2, pathFrom: n2, pathTo: l2, stroke: a2, strokeWidth: h2, strokeLineCap: P2.config.stroke.lineCap, fill: i2, animationDelay: T2, initialSpeed: P2.config.chart.animations.speed, dataChangeSpeed: P2.config.chart.animations.dynamicAnimation.speed, className: "apexcharts-".concat(L2, "-area") });
        M2.attr("clip-path", "url(#gridRectMask".concat(P2.globals.cuid, ")"));
        var z2 = P2.config.forecastDataPoints;
        z2.count > 0 && s2 >= P2.globals.dataPoints - z2.count && (M2.node.setAttribute("stroke-dasharray", z2.dashArray), M2.node.setAttribute("stroke-width", z2.strokeWidth), M2.node.setAttribute("fill-opacity", z2.fillOpacity)), void 0 !== u2 && void 0 !== p2 && (M2.attr("data-range-y1", u2), M2.attr("data-range-y2", p2)), new v(this.ctx).setSelectionFilter(M2, e2, s2), c2.add(M2);
        var X2 = new vt(this).handleBarDataLabels({ x: d2, y: g2, y1: u2, y2: p2, i: r2, j: s2, series: f2, realIndex: e2, groupIndex: o2, barHeight: x2, barWidth: b2, barXPosition: y2, barYPosition: w2, renderedPath: M2, visibleSeries: C2 });
        return null !== X2.dataLabels && k2.add(X2.dataLabels), X2.totalDataLabels && k2.add(X2.totalDataLabels), c2.add(k2), A3 && c2.add(A3), S2 && c2.add(S2), c2;
      } }, { key: "drawBarPaths", value: function(t3) {
        var e2, i2 = t3.indexes, a2 = t3.barHeight, s2 = t3.strokeWidth, r2 = t3.zeroW, o2 = t3.x, n2 = t3.y, l2 = t3.yDivision, h2 = t3.elSeries, c2 = this.w, d2 = i2.i, g2 = i2.j;
        if (c2.globals.isXNumeric)
          e2 = (n2 = (c2.globals.seriesX[d2][g2] - c2.globals.minX) / this.invertedXRatio - a2) + a2 * this.visibleI;
        else if (c2.config.plotOptions.bar.hideZeroBarsWhenGrouped) {
          var u2 = 0, p2 = 0;
          c2.globals.seriesPercent.forEach(function(t4, e3) {
            t4[g2] && u2++, e3 < d2 && 0 === t4[g2] && p2++;
          }), u2 > 0 && (a2 = this.seriesLen * a2 / u2), e2 = n2 + a2 * this.visibleI, e2 -= a2 * p2;
        } else
          e2 = n2 + a2 * this.visibleI;
        this.isFunnel && (r2 -= (this.barHelpers.getXForValue(this.series[d2][g2], r2) - r2) / 2), o2 = this.barHelpers.getXForValue(this.series[d2][g2], r2);
        var f2 = this.barHelpers.getBarpaths({ barYPosition: e2, barHeight: a2, x1: r2, x2: o2, strokeWidth: s2, series: this.series, realIndex: i2.realIndex, i: d2, j: g2, w: c2 });
        return c2.globals.isXNumeric || (n2 += l2), this.barHelpers.barBackground({ j: g2, i: d2, y1: e2 - a2 * this.visibleI, y2: a2 * this.seriesLen, elSeries: h2 }), { pathTo: f2.pathTo, pathFrom: f2.pathFrom, x1: r2, x: o2, y: n2, goalX: this.barHelpers.getGoalValues("x", r2, null, d2, g2), barYPosition: e2, barHeight: a2 };
      } }, { key: "drawColumnPaths", value: function(t3) {
        var e2, i2 = t3.indexes, a2 = t3.x, s2 = t3.y, r2 = t3.xDivision, o2 = t3.barWidth, n2 = t3.zeroH, l2 = t3.strokeWidth, h2 = t3.elSeries, c2 = this.w, d2 = i2.realIndex, g2 = i2.i, u2 = i2.j, p2 = i2.bc;
        if (c2.globals.isXNumeric) {
          var f2 = this.getBarXForNumericXAxis({ x: a2, j: u2, realIndex: d2, barWidth: o2 });
          a2 = f2.x, e2 = f2.barXPosition;
        } else if (c2.config.plotOptions.bar.hideZeroBarsWhenGrouped) {
          var x2 = this.barHelpers.getZeroValueEncounters({ i: g2, j: u2 }), b2 = x2.nonZeroColumns, v2 = x2.zeroEncounters;
          b2 > 0 && (o2 = this.seriesLen * o2 / b2), e2 = a2 + o2 * this.visibleI, e2 -= o2 * v2;
        } else
          e2 = a2 + o2 * this.visibleI;
        s2 = this.barHelpers.getYForValue(this.series[g2][u2], n2);
        var m2 = this.barHelpers.getColumnPaths({ barXPosition: e2, barWidth: o2, y1: n2, y2: s2, strokeWidth: l2, series: this.series, realIndex: i2.realIndex, i: g2, j: u2, w: c2 });
        return c2.globals.isXNumeric || (a2 += r2), this.barHelpers.barBackground({ bc: p2, j: u2, i: g2, x1: e2 - l2 / 2 - o2 * this.visibleI, x2: o2 * this.seriesLen + l2 / 2, elSeries: h2 }), { pathTo: m2.pathTo, pathFrom: m2.pathFrom, x: a2, y: s2, goalY: this.barHelpers.getGoalValues("y", null, n2, g2, u2), barXPosition: e2, barWidth: o2 };
      } }, { key: "getBarXForNumericXAxis", value: function(t3) {
        var e2 = t3.x, i2 = t3.barWidth, a2 = t3.realIndex, s2 = t3.j, r2 = this.w, o2 = a2;
        return r2.globals.seriesX[a2].length || (o2 = r2.globals.maxValsInArrayIndex), r2.globals.seriesX[o2][s2] && (e2 = (r2.globals.seriesX[o2][s2] - r2.globals.minX) / this.xRatio - i2 * this.seriesLen / 2), { barXPosition: e2 + i2 * this.visibleI, x: e2 };
      } }, { key: "getPreviousPath", value: function(t3, e2) {
        for (var i2, a2 = this.w, s2 = 0; s2 < a2.globals.previousPaths.length; s2++) {
          var r2 = a2.globals.previousPaths[s2];
          r2.paths && r2.paths.length > 0 && parseInt(r2.realIndex, 10) === parseInt(t3, 10) && void 0 !== a2.globals.previousPaths[s2].paths[e2] && (i2 = a2.globals.previousPaths[s2].paths[e2].d);
        }
        return i2;
      } }]), t2;
    }();
    var wt = function(t2) {
      n(s2, yt);
      var i2 = d(s2);
      function s2() {
        return a(this, s2), i2.apply(this, arguments);
      }
      return r(s2, [{ key: "draw", value: function(t3, i3) {
        var a2 = this, s3 = this.w;
        this.graphics = new m(this.ctx), this.bar = new yt(this.ctx, this.xyRatios);
        var r2 = new y(this.ctx, s3);
        t3 = r2.getLogSeries(t3), this.yRatio = r2.getLogYRatios(this.yRatio), this.barHelpers.initVariables(t3), "100%" === s3.config.chart.stackType && (t3 = s3.globals.seriesPercent.slice()), this.series = t3, this.barHelpers.initializeStackedPrevVars(this);
        for (var o2 = this.graphics.group({ class: "apexcharts-bar-series apexcharts-plot-series" }), n2 = 0, l2 = 0, h2 = function(r3, h3) {
          var c3 = void 0, d3 = void 0, g2 = void 0, u2 = void 0, p2 = -1;
          a2.groupCtx = a2, s3.globals.seriesGroups.forEach(function(t4, e2) {
            t4.indexOf(s3.config.series[r3].name) > -1 && (p2 = e2);
          }), -1 !== p2 && (a2.groupCtx = a2[s3.globals.seriesGroups[p2]]);
          var f2 = [], b2 = [], v2 = s3.globals.comboCharts ? i3[r3] : r3;
          a2.yRatio.length > 1 && (a2.yaxisIndex = v2), a2.isReversed = s3.config.yaxis[a2.yaxisIndex] && s3.config.yaxis[a2.yaxisIndex].reversed;
          var m2 = a2.graphics.group({ class: "apexcharts-series", seriesName: x.escapeString(s3.globals.seriesNames[v2]), rel: r3 + 1, "data:realIndex": v2 });
          a2.ctx.series.addCollapsedClassToSeries(m2, v2);
          var y2 = a2.graphics.group({ class: "apexcharts-datalabels", "data:realIndex": v2 }), w2 = a2.graphics.group({ class: "apexcharts-bar-goals-markers" }), k2 = 0, A3 = 0, S2 = a2.initialPositions(n2, l2, c3, d3, g2, u2);
          l2 = S2.y, k2 = S2.barHeight, d3 = S2.yDivision, u2 = S2.zeroW, n2 = S2.x, A3 = S2.barWidth, c3 = S2.xDivision, g2 = S2.zeroH, s3.globals.barHeight = k2, s3.globals.barWidth = A3, a2.barHelpers.initializeStackedXYVars(a2), 1 === a2.groupCtx.prevY.length && a2.groupCtx.prevY[0].every(function(t4) {
            return isNaN(t4);
          }) && (a2.groupCtx.prevY[0] = a2.groupCtx.prevY[0].map(function(t4) {
            return g2;
          }), a2.groupCtx.prevYF[0] = a2.groupCtx.prevYF[0].map(function(t4) {
            return 0;
          }));
          for (var C2 = 0; C2 < s3.globals.dataPoints; C2++) {
            var L2 = a2.barHelpers.getStrokeWidth(r3, C2, v2), P2 = { indexes: { i: r3, j: C2, realIndex: v2, bc: h3 }, strokeWidth: L2, x: n2, y: l2, elSeries: m2, groupIndex: p2, seriesGroup: s3.globals.seriesGroups[p2] }, I2 = null;
            a2.isHorizontal ? (I2 = a2.drawStackedBarPaths(e(e({}, P2), {}, { zeroW: u2, barHeight: k2, yDivision: d3 })), A3 = a2.series[r3][C2] / a2.invertedYRatio) : (I2 = a2.drawStackedColumnPaths(e(e({}, P2), {}, { xDivision: c3, barWidth: A3, zeroH: g2 })), k2 = a2.series[r3][C2] / a2.yRatio[a2.yaxisIndex]);
            var T2 = a2.barHelpers.drawGoalLine({ barXPosition: I2.barXPosition, barYPosition: I2.barYPosition, goalX: I2.goalX, goalY: I2.goalY, barHeight: k2, barWidth: A3 });
            T2 && w2.add(T2), l2 = I2.y, n2 = I2.x, f2.push(n2), b2.push(l2);
            var M2 = a2.barHelpers.getPathFillColor(t3, r3, C2, v2);
            m2 = a2.renderSeries({ realIndex: v2, pathFill: M2, j: C2, i: r3, groupIndex: p2, pathFrom: I2.pathFrom, pathTo: I2.pathTo, strokeWidth: L2, elSeries: m2, x: n2, y: l2, series: t3, barHeight: k2, barWidth: A3, elDataLabelsWrap: y2, elGoalsMarkers: w2, type: "bar", visibleSeries: 0 });
          }
          s3.globals.seriesXvalues[v2] = f2, s3.globals.seriesYvalues[v2] = b2, a2.groupCtx.prevY.push(a2.groupCtx.yArrj), a2.groupCtx.prevYF.push(a2.groupCtx.yArrjF), a2.groupCtx.prevYVal.push(a2.groupCtx.yArrjVal), a2.groupCtx.prevX.push(a2.groupCtx.xArrj), a2.groupCtx.prevXF.push(a2.groupCtx.xArrjF), a2.groupCtx.prevXVal.push(a2.groupCtx.xArrjVal), o2.add(m2);
        }, c2 = 0, d2 = 0; c2 < t3.length; c2++, d2++)
          h2(c2, d2);
        return o2;
      } }, { key: "initialPositions", value: function(t3, e2, i3, a2, s3, r2) {
        var o2, n2, l2, h2, c2 = this.w;
        return this.isHorizontal ? (l2 = (l2 = a2 = c2.globals.gridHeight / c2.globals.dataPoints) * parseInt(c2.config.plotOptions.bar.barHeight, 10) / 100, -1 === String(c2.config.plotOptions.bar.barHeight).indexOf("%") && (l2 = parseInt(c2.config.plotOptions.bar.barHeight, 10)), r2 = this.baseLineInvertedY + c2.globals.padHorizontal + (this.isReversed ? c2.globals.gridWidth : 0) - (this.isReversed ? 2 * this.baseLineInvertedY : 0), e2 = (a2 - l2) / 2) : (h2 = i3 = c2.globals.gridWidth / c2.globals.dataPoints, h2 = c2.globals.isXNumeric && c2.globals.dataPoints > 1 ? (i3 = c2.globals.minXDiff / this.xRatio) * parseInt(this.barOptions.columnWidth, 10) / 100 : h2 * parseInt(c2.config.plotOptions.bar.columnWidth, 10) / 100, -1 === String(c2.config.plotOptions.bar.columnWidth).indexOf("%") && (h2 = parseInt(c2.config.plotOptions.bar.columnWidth, 10)), s3 = c2.globals.gridHeight - this.baseLineY[this.yaxisIndex] - (this.isReversed ? c2.globals.gridHeight : 0) + (this.isReversed ? 2 * this.baseLineY[this.yaxisIndex] : 0), t3 = c2.globals.padHorizontal + (i3 - h2) / 2), { x: t3, y: e2, yDivision: a2, xDivision: i3, barHeight: null !== (o2 = c2.globals.seriesGroups) && void 0 !== o2 && o2.length ? l2 / c2.globals.seriesGroups.length : l2, barWidth: null !== (n2 = c2.globals.seriesGroups) && void 0 !== n2 && n2.length ? h2 / c2.globals.seriesGroups.length : h2, zeroH: s3, zeroW: r2 };
      } }, { key: "drawStackedBarPaths", value: function(t3) {
        for (var e2, i3 = t3.indexes, a2 = t3.barHeight, s3 = t3.strokeWidth, r2 = t3.zeroW, o2 = t3.x, n2 = t3.y, l2 = t3.groupIndex, h2 = t3.seriesGroup, c2 = t3.yDivision, d2 = t3.elSeries, g2 = this.w, u2 = n2 + (-1 !== l2 ? l2 * a2 : 0), p2 = i3.i, f2 = i3.j, x2 = 0, b2 = 0; b2 < this.groupCtx.prevXF.length; b2++)
          x2 += this.groupCtx.prevXF[b2][f2];
        var v2 = p2;
        if (h2 && (v2 = h2.indexOf(g2.config.series[p2].name)), v2 > 0) {
          var m2 = r2;
          this.groupCtx.prevXVal[v2 - 1][f2] < 0 ? m2 = this.series[p2][f2] >= 0 ? this.groupCtx.prevX[v2 - 1][f2] + x2 - 2 * (this.isReversed ? x2 : 0) : this.groupCtx.prevX[v2 - 1][f2] : this.groupCtx.prevXVal[v2 - 1][f2] >= 0 && (m2 = this.series[p2][f2] >= 0 ? this.groupCtx.prevX[v2 - 1][f2] : this.groupCtx.prevX[v2 - 1][f2] - x2 + 2 * (this.isReversed ? x2 : 0)), e2 = m2;
        } else
          e2 = r2;
        o2 = null === this.series[p2][f2] ? e2 : e2 + this.series[p2][f2] / this.invertedYRatio - 2 * (this.isReversed ? this.series[p2][f2] / this.invertedYRatio : 0);
        var y2 = this.barHelpers.getBarpaths({ barYPosition: u2, barHeight: a2, x1: e2, x2: o2, strokeWidth: s3, series: this.series, realIndex: i3.realIndex, seriesGroup: h2, i: p2, j: f2, w: g2 });
        return this.barHelpers.barBackground({ j: f2, i: p2, y1: u2, y2: a2, elSeries: d2 }), n2 += c2, { pathTo: y2.pathTo, pathFrom: y2.pathFrom, goalX: this.barHelpers.getGoalValues("x", r2, null, p2, f2), barYPosition: u2, x: o2, y: n2 };
      } }, { key: "drawStackedColumnPaths", value: function(t3) {
        var e2 = t3.indexes, i3 = t3.x, a2 = t3.y, s3 = t3.xDivision, r2 = t3.barWidth, o2 = t3.zeroH, n2 = t3.groupIndex, l2 = t3.seriesGroup, h2 = t3.elSeries, c2 = this.w, d2 = e2.i, g2 = e2.j, u2 = e2.bc;
        if (c2.globals.isXNumeric) {
          var p2 = c2.globals.seriesX[d2][g2];
          p2 || (p2 = 0), i3 = (p2 - c2.globals.minX) / this.xRatio - r2 / 2, c2.globals.seriesGroups.length && (i3 = (p2 - c2.globals.minX) / this.xRatio - r2 / 2 * c2.globals.seriesGroups.length);
        }
        for (var f2, x2 = i3 + (-1 !== n2 ? n2 * r2 : 0), b2 = 0, v2 = 0; v2 < this.groupCtx.prevYF.length; v2++)
          b2 += isNaN(this.groupCtx.prevYF[v2][g2]) ? 0 : this.groupCtx.prevYF[v2][g2];
        var m2 = d2;
        if (l2 && (m2 = l2.indexOf(c2.config.series[d2].name)), m2 > 0 && !c2.globals.isXNumeric || m2 > 0 && c2.globals.isXNumeric && c2.globals.seriesX[d2 - 1][g2] === c2.globals.seriesX[d2][g2]) {
          var y2, w2, k2, A3 = Math.min(this.yRatio.length + 1, d2 + 1);
          if (void 0 !== this.groupCtx.prevY[m2 - 1] && this.groupCtx.prevY[m2 - 1].length)
            for (var S2 = 1; S2 < A3; S2++) {
              var C2;
              if (!isNaN(null === (C2 = this.groupCtx.prevY[m2 - S2]) || void 0 === C2 ? void 0 : C2[g2])) {
                k2 = this.groupCtx.prevY[m2 - S2][g2];
                break;
              }
            }
          for (var L2 = 1; L2 < A3; L2++) {
            var P2, I2;
            if ((null === (P2 = this.groupCtx.prevYVal[m2 - L2]) || void 0 === P2 ? void 0 : P2[g2]) < 0) {
              w2 = this.series[d2][g2] >= 0 ? k2 - b2 + 2 * (this.isReversed ? b2 : 0) : k2;
              break;
            }
            if ((null === (I2 = this.groupCtx.prevYVal[m2 - L2]) || void 0 === I2 ? void 0 : I2[g2]) >= 0) {
              w2 = this.series[d2][g2] >= 0 ? k2 : k2 + b2 - 2 * (this.isReversed ? b2 : 0);
              break;
            }
          }
          void 0 === w2 && (w2 = c2.globals.gridHeight), f2 = null !== (y2 = this.groupCtx.prevYF[0]) && void 0 !== y2 && y2.every(function(t4) {
            return 0 === t4;
          }) && this.groupCtx.prevYF.slice(1, m2).every(function(t4) {
            return t4.every(function(t5) {
              return isNaN(t5);
            });
          }) ? o2 : w2;
        } else
          f2 = o2;
        a2 = this.series[d2][g2] ? f2 - this.series[d2][g2] / this.yRatio[this.yaxisIndex] + 2 * (this.isReversed ? this.series[d2][g2] / this.yRatio[this.yaxisIndex] : 0) : f2;
        var T2 = this.barHelpers.getColumnPaths({ barXPosition: x2, barWidth: r2, y1: f2, y2: a2, yRatio: this.yRatio[this.yaxisIndex], strokeWidth: this.strokeWidth, series: this.series, seriesGroup: l2, realIndex: e2.realIndex, i: d2, j: g2, w: c2 });
        return this.barHelpers.barBackground({ bc: u2, j: g2, i: d2, x1: x2, x2: r2, elSeries: h2 }), i3 += s3, { pathTo: T2.pathTo, pathFrom: T2.pathFrom, goalY: this.barHelpers.getGoalValues("y", null, o2, d2, g2), barXPosition: x2, x: c2.globals.isXNumeric ? i3 - s3 : i3, y: a2 };
      } }]), s2;
    }();
    var kt = function(t2) {
      n(s2, yt);
      var i2 = d(s2);
      function s2() {
        return a(this, s2), i2.apply(this, arguments);
      }
      return r(s2, [{ key: "draw", value: function(t3, i3, a2) {
        var s3 = this, r2 = this.w, o2 = new m(this.ctx), n2 = r2.globals.comboCharts ? i3 : r2.config.chart.type, l2 = new R(this.ctx);
        this.candlestickOptions = this.w.config.plotOptions.candlestick, this.boxOptions = this.w.config.plotOptions.boxPlot, this.isHorizontal = r2.config.plotOptions.bar.horizontal;
        var h2 = new y(this.ctx, r2);
        t3 = h2.getLogSeries(t3), this.series = t3, this.yRatio = h2.getLogYRatios(this.yRatio), this.barHelpers.initVariables(t3);
        for (var c2 = o2.group({ class: "apexcharts-".concat(n2, "-series apexcharts-plot-series") }), d2 = function(i4) {
          s3.isBoxPlot = "boxPlot" === r2.config.chart.type || "boxPlot" === r2.config.series[i4].type;
          var n3, h3, d3, g3, u2 = void 0, p2 = void 0, f2 = [], b2 = [], v2 = r2.globals.comboCharts ? a2[i4] : i4, m2 = o2.group({ class: "apexcharts-series", seriesName: x.escapeString(r2.globals.seriesNames[v2]), rel: i4 + 1, "data:realIndex": v2 });
          s3.ctx.series.addCollapsedClassToSeries(m2, v2), t3[i4].length > 0 && (s3.visibleI = s3.visibleI + 1);
          var y2, w2;
          s3.yRatio.length > 1 && (s3.yaxisIndex = v2);
          var k2 = s3.barHelpers.initialPositions();
          p2 = k2.y, y2 = k2.barHeight, h3 = k2.yDivision, g3 = k2.zeroW, u2 = k2.x, w2 = k2.barWidth, n3 = k2.xDivision, d3 = k2.zeroH, b2.push(u2 + w2 / 2);
          for (var A3 = o2.group({ class: "apexcharts-datalabels", "data:realIndex": v2 }), S2 = function(a3) {
            var o3 = s3.barHelpers.getStrokeWidth(i4, a3, v2), c3 = null, x2 = { indexes: { i: i4, j: a3, realIndex: v2 }, x: u2, y: p2, strokeWidth: o3, elSeries: m2 };
            c3 = s3.isHorizontal ? s3.drawHorizontalBoxPaths(e(e({}, x2), {}, { yDivision: h3, barHeight: y2, zeroW: g3 })) : s3.drawVerticalBoxPaths(e(e({}, x2), {}, { xDivision: n3, barWidth: w2, zeroH: d3 })), p2 = c3.y, u2 = c3.x, a3 > 0 && b2.push(u2 + w2 / 2), f2.push(p2), c3.pathTo.forEach(function(e2, n4) {
              var h4 = !s3.isBoxPlot && s3.candlestickOptions.wick.useFillColor ? c3.color[n4] : r2.globals.stroke.colors[i4], d4 = l2.fillPath({ seriesNumber: v2, dataPointIndex: a3, color: c3.color[n4], value: t3[i4][a3] });
              s3.renderSeries({ realIndex: v2, pathFill: d4, lineFill: h4, j: a3, i: i4, pathFrom: c3.pathFrom, pathTo: e2, strokeWidth: o3, elSeries: m2, x: u2, y: p2, series: t3, barHeight: y2, barWidth: w2, elDataLabelsWrap: A3, visibleSeries: s3.visibleI, type: r2.config.chart.type });
            });
          }, C2 = 0; C2 < r2.globals.dataPoints; C2++)
            S2(C2);
          r2.globals.seriesXvalues[v2] = b2, r2.globals.seriesYvalues[v2] = f2, c2.add(m2);
        }, g2 = 0; g2 < t3.length; g2++)
          d2(g2);
        return c2;
      } }, { key: "drawVerticalBoxPaths", value: function(t3) {
        var e2 = t3.indexes, i3 = t3.x;
        t3.y;
        var a2 = t3.xDivision, s3 = t3.barWidth, r2 = t3.zeroH, o2 = t3.strokeWidth, n2 = this.w, l2 = new m(this.ctx), h2 = e2.i, c2 = e2.j, d2 = true, g2 = n2.config.plotOptions.candlestick.colors.upward, u2 = n2.config.plotOptions.candlestick.colors.downward, p2 = "";
        this.isBoxPlot && (p2 = [this.boxOptions.colors.lower, this.boxOptions.colors.upper]);
        var f2 = this.yRatio[this.yaxisIndex], x2 = e2.realIndex, b2 = this.getOHLCValue(x2, c2), v2 = r2, y2 = r2;
        b2.o > b2.c && (d2 = false);
        var w2 = Math.min(b2.o, b2.c), k2 = Math.max(b2.o, b2.c), A3 = b2.m;
        n2.globals.isXNumeric && (i3 = (n2.globals.seriesX[x2][c2] - n2.globals.minX) / this.xRatio - s3 / 2);
        var S2 = i3 + s3 * this.visibleI;
        void 0 === this.series[h2][c2] || null === this.series[h2][c2] ? (w2 = r2, k2 = r2) : (w2 = r2 - w2 / f2, k2 = r2 - k2 / f2, v2 = r2 - b2.h / f2, y2 = r2 - b2.l / f2, A3 = r2 - b2.m / f2);
        var C2 = l2.move(S2, r2), L2 = l2.move(S2 + s3 / 2, w2);
        return n2.globals.previousPaths.length > 0 && (L2 = this.getPreviousPath(x2, c2, true)), C2 = this.isBoxPlot ? [l2.move(S2, w2) + l2.line(S2 + s3 / 2, w2) + l2.line(S2 + s3 / 2, v2) + l2.line(S2 + s3 / 4, v2) + l2.line(S2 + s3 - s3 / 4, v2) + l2.line(S2 + s3 / 2, v2) + l2.line(S2 + s3 / 2, w2) + l2.line(S2 + s3, w2) + l2.line(S2 + s3, A3) + l2.line(S2, A3) + l2.line(S2, w2 + o2 / 2), l2.move(S2, A3) + l2.line(S2 + s3, A3) + l2.line(S2 + s3, k2) + l2.line(S2 + s3 / 2, k2) + l2.line(S2 + s3 / 2, y2) + l2.line(S2 + s3 - s3 / 4, y2) + l2.line(S2 + s3 / 4, y2) + l2.line(S2 + s3 / 2, y2) + l2.line(S2 + s3 / 2, k2) + l2.line(S2, k2) + l2.line(S2, A3) + "z"] : [l2.move(S2, k2) + l2.line(S2 + s3 / 2, k2) + l2.line(S2 + s3 / 2, v2) + l2.line(S2 + s3 / 2, k2) + l2.line(S2 + s3, k2) + l2.line(S2 + s3, w2) + l2.line(S2 + s3 / 2, w2) + l2.line(S2 + s3 / 2, y2) + l2.line(S2 + s3 / 2, w2) + l2.line(S2, w2) + l2.line(S2, k2 - o2 / 2)], L2 += l2.move(S2, w2), n2.globals.isXNumeric || (i3 += a2), { pathTo: C2, pathFrom: L2, x: i3, y: k2, barXPosition: S2, color: this.isBoxPlot ? p2 : d2 ? [g2] : [u2] };
      } }, { key: "drawHorizontalBoxPaths", value: function(t3) {
        var e2 = t3.indexes;
        t3.x;
        var i3 = t3.y, a2 = t3.yDivision, s3 = t3.barHeight, r2 = t3.zeroW, o2 = t3.strokeWidth, n2 = this.w, l2 = new m(this.ctx), h2 = e2.i, c2 = e2.j, d2 = this.boxOptions.colors.lower;
        this.isBoxPlot && (d2 = [this.boxOptions.colors.lower, this.boxOptions.colors.upper]);
        var g2 = this.invertedYRatio, u2 = e2.realIndex, p2 = this.getOHLCValue(u2, c2), f2 = r2, x2 = r2, b2 = Math.min(p2.o, p2.c), v2 = Math.max(p2.o, p2.c), y2 = p2.m;
        n2.globals.isXNumeric && (i3 = (n2.globals.seriesX[u2][c2] - n2.globals.minX) / this.invertedXRatio - s3 / 2);
        var w2 = i3 + s3 * this.visibleI;
        void 0 === this.series[h2][c2] || null === this.series[h2][c2] ? (b2 = r2, v2 = r2) : (b2 = r2 + b2 / g2, v2 = r2 + v2 / g2, f2 = r2 + p2.h / g2, x2 = r2 + p2.l / g2, y2 = r2 + p2.m / g2);
        var k2 = l2.move(r2, w2), A3 = l2.move(b2, w2 + s3 / 2);
        return n2.globals.previousPaths.length > 0 && (A3 = this.getPreviousPath(u2, c2, true)), k2 = [l2.move(b2, w2) + l2.line(b2, w2 + s3 / 2) + l2.line(f2, w2 + s3 / 2) + l2.line(f2, w2 + s3 / 2 - s3 / 4) + l2.line(f2, w2 + s3 / 2 + s3 / 4) + l2.line(f2, w2 + s3 / 2) + l2.line(b2, w2 + s3 / 2) + l2.line(b2, w2 + s3) + l2.line(y2, w2 + s3) + l2.line(y2, w2) + l2.line(b2 + o2 / 2, w2), l2.move(y2, w2) + l2.line(y2, w2 + s3) + l2.line(v2, w2 + s3) + l2.line(v2, w2 + s3 / 2) + l2.line(x2, w2 + s3 / 2) + l2.line(x2, w2 + s3 - s3 / 4) + l2.line(x2, w2 + s3 / 4) + l2.line(x2, w2 + s3 / 2) + l2.line(v2, w2 + s3 / 2) + l2.line(v2, w2) + l2.line(y2, w2) + "z"], A3 += l2.move(b2, w2), n2.globals.isXNumeric || (i3 += a2), { pathTo: k2, pathFrom: A3, x: v2, y: i3, barYPosition: w2, color: d2 };
      } }, { key: "getOHLCValue", value: function(t3, e2) {
        var i3 = this.w;
        return { o: this.isBoxPlot ? i3.globals.seriesCandleH[t3][e2] : i3.globals.seriesCandleO[t3][e2], h: this.isBoxPlot ? i3.globals.seriesCandleO[t3][e2] : i3.globals.seriesCandleH[t3][e2], m: i3.globals.seriesCandleM[t3][e2], l: this.isBoxPlot ? i3.globals.seriesCandleC[t3][e2] : i3.globals.seriesCandleL[t3][e2], c: this.isBoxPlot ? i3.globals.seriesCandleL[t3][e2] : i3.globals.seriesCandleC[t3][e2] };
      } }]), s2;
    }();
    var At = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "checkColorRange", value: function() {
        var t3 = this.w, e2 = false, i2 = t3.config.plotOptions[t3.config.chart.type];
        return i2.colorScale.ranges.length > 0 && i2.colorScale.ranges.map(function(t4, i3) {
          t4.from <= 0 && (e2 = true);
        }), e2;
      } }, { key: "getShadeColor", value: function(t3, e2, i2, a2) {
        var s2 = this.w, r2 = 1, o2 = s2.config.plotOptions[t3].shadeIntensity, n2 = this.determineColor(t3, e2, i2);
        s2.globals.hasNegs || a2 ? r2 = s2.config.plotOptions[t3].reverseNegativeShade ? n2.percent < 0 ? n2.percent / 100 * (1.25 * o2) : (1 - n2.percent / 100) * (1.25 * o2) : n2.percent <= 0 ? 1 - (1 + n2.percent / 100) * o2 : (1 - n2.percent / 100) * o2 : (r2 = 1 - n2.percent / 100, "treemap" === t3 && (r2 = (1 - n2.percent / 100) * (1.25 * o2)));
        var l2 = n2.color, h2 = new x();
        return s2.config.plotOptions[t3].enableShades && (l2 = "dark" === this.w.config.theme.mode ? x.hexToRgba(h2.shadeColor(-1 * r2, n2.color), s2.config.fill.opacity) : x.hexToRgba(h2.shadeColor(r2, n2.color), s2.config.fill.opacity)), { color: l2, colorProps: n2 };
      } }, { key: "determineColor", value: function(t3, e2, i2) {
        var a2 = this.w, s2 = a2.globals.series[e2][i2], r2 = a2.config.plotOptions[t3], o2 = r2.colorScale.inverse ? i2 : e2;
        r2.distributed && "treemap" === a2.config.chart.type && (o2 = i2);
        var n2 = a2.globals.colors[o2], l2 = null, h2 = Math.min.apply(Math, u(a2.globals.series[e2])), c2 = Math.max.apply(Math, u(a2.globals.series[e2]));
        r2.distributed || "heatmap" !== t3 || (h2 = a2.globals.minY, c2 = a2.globals.maxY), void 0 !== r2.colorScale.min && (h2 = r2.colorScale.min < a2.globals.minY ? r2.colorScale.min : a2.globals.minY, c2 = r2.colorScale.max > a2.globals.maxY ? r2.colorScale.max : a2.globals.maxY);
        var d2 = Math.abs(c2) + Math.abs(h2), g2 = 100 * s2 / (0 === d2 ? d2 - 1e-6 : d2);
        r2.colorScale.ranges.length > 0 && r2.colorScale.ranges.map(function(t4, e3) {
          if (s2 >= t4.from && s2 <= t4.to) {
            n2 = t4.color, l2 = t4.foreColor ? t4.foreColor : null, h2 = t4.from, c2 = t4.to;
            var i3 = Math.abs(c2) + Math.abs(h2);
            g2 = 100 * s2 / (0 === i3 ? i3 - 1e-6 : i3);
          }
        });
        return { color: n2, foreColor: l2, percent: g2 };
      } }, { key: "calculateDataLabels", value: function(t3) {
        var e2 = t3.text, i2 = t3.x, a2 = t3.y, s2 = t3.i, r2 = t3.j, o2 = t3.colorProps, n2 = t3.fontSize, l2 = this.w.config.dataLabels, h2 = new m(this.ctx), c2 = new O(this.ctx), d2 = null;
        if (l2.enabled) {
          d2 = h2.group({ class: "apexcharts-data-labels" });
          var g2 = l2.offsetX, u2 = l2.offsetY, p2 = i2 + g2, f2 = a2 + parseFloat(l2.style.fontSize) / 3 + u2;
          c2.plotDataLabelsText({ x: p2, y: f2, text: e2, i: s2, j: r2, color: o2.foreColor, parent: d2, fontSize: n2, dataLabelsConfig: l2 });
        }
        return d2;
      } }, { key: "addListeners", value: function(t3) {
        var e2 = new m(this.ctx);
        t3.node.addEventListener("mouseenter", e2.pathMouseEnter.bind(this, t3)), t3.node.addEventListener("mouseleave", e2.pathMouseLeave.bind(this, t3)), t3.node.addEventListener("mousedown", e2.pathMouseDown.bind(this, t3));
      } }]), t2;
    }();
    var St = function() {
      function t2(e2, i2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.xRatio = i2.xRatio, this.yRatio = i2.yRatio, this.dynamicAnim = this.w.config.chart.animations.dynamicAnimation, this.helpers = new At(e2), this.rectRadius = this.w.config.plotOptions.heatmap.radius, this.strokeWidth = this.w.config.stroke.show ? this.w.config.stroke.width : 0;
      }
      return r(t2, [{ key: "draw", value: function(t3) {
        var e2 = this.w, i2 = new m(this.ctx), a2 = i2.group({ class: "apexcharts-heatmap" });
        a2.attr("clip-path", "url(#gridRectMask".concat(e2.globals.cuid, ")"));
        var s2 = e2.globals.gridWidth / e2.globals.dataPoints, r2 = e2.globals.gridHeight / e2.globals.series.length, o2 = 0, n2 = false;
        this.negRange = this.helpers.checkColorRange();
        var l2 = t3.slice();
        e2.config.yaxis[0].reversed && (n2 = true, l2.reverse());
        for (var h2 = n2 ? 0 : l2.length - 1; n2 ? h2 < l2.length : h2 >= 0; n2 ? h2++ : h2--) {
          var c2 = i2.group({ class: "apexcharts-series apexcharts-heatmap-series", seriesName: x.escapeString(e2.globals.seriesNames[h2]), rel: h2 + 1, "data:realIndex": h2 });
          if (this.ctx.series.addCollapsedClassToSeries(c2, h2), e2.config.chart.dropShadow.enabled) {
            var d2 = e2.config.chart.dropShadow;
            new v(this.ctx).dropShadow(c2, d2, h2);
          }
          for (var g2 = 0, u2 = e2.config.plotOptions.heatmap.shadeIntensity, p2 = 0; p2 < l2[h2].length; p2++) {
            var f2 = this.helpers.getShadeColor(e2.config.chart.type, h2, p2, this.negRange), b2 = f2.color, y2 = f2.colorProps;
            if ("image" === e2.config.fill.type)
              b2 = new R(this.ctx).fillPath({ seriesNumber: h2, dataPointIndex: p2, opacity: e2.globals.hasNegs ? y2.percent < 0 ? 1 - (1 + y2.percent / 100) : u2 + y2.percent / 100 : y2.percent / 100, patternID: x.randomId(), width: e2.config.fill.image.width ? e2.config.fill.image.width : s2, height: e2.config.fill.image.height ? e2.config.fill.image.height : r2 });
            var w2 = this.rectRadius, k2 = i2.drawRect(g2, o2, s2, r2, w2);
            if (k2.attr({ cx: g2, cy: o2 }), k2.node.classList.add("apexcharts-heatmap-rect"), c2.add(k2), k2.attr({ fill: b2, i: h2, index: h2, j: p2, val: t3[h2][p2], "stroke-width": this.strokeWidth, stroke: e2.config.plotOptions.heatmap.useFillColorAsStroke ? b2 : e2.globals.stroke.colors[0], color: b2 }), this.helpers.addListeners(k2), e2.config.chart.animations.enabled && !e2.globals.dataChanged) {
              var A3 = 1;
              e2.globals.resized || (A3 = e2.config.chart.animations.speed), this.animateHeatMap(k2, g2, o2, s2, r2, A3);
            }
            if (e2.globals.dataChanged) {
              var S2 = 1;
              if (this.dynamicAnim.enabled && e2.globals.shouldAnimate) {
                S2 = this.dynamicAnim.speed;
                var C2 = e2.globals.previousPaths[h2] && e2.globals.previousPaths[h2][p2] && e2.globals.previousPaths[h2][p2].color;
                C2 || (C2 = "rgba(255, 255, 255, 0)"), this.animateHeatColor(k2, x.isColorHex(C2) ? C2 : x.rgb2hex(C2), x.isColorHex(b2) ? b2 : x.rgb2hex(b2), S2);
              }
            }
            var L2 = (0, e2.config.dataLabels.formatter)(e2.globals.series[h2][p2], { value: e2.globals.series[h2][p2], seriesIndex: h2, dataPointIndex: p2, w: e2 }), P2 = this.helpers.calculateDataLabels({ text: L2, x: g2 + s2 / 2, y: o2 + r2 / 2, i: h2, j: p2, colorProps: y2, series: l2 });
            null !== P2 && c2.add(P2), g2 += s2;
          }
          o2 += r2, a2.add(c2);
        }
        var I2 = e2.globals.yAxisScale[0].result.slice();
        return e2.config.yaxis[0].reversed ? I2.unshift("") : I2.push(""), e2.globals.yAxisScale[0].result = I2, a2;
      } }, { key: "animateHeatMap", value: function(t3, e2, i2, a2, s2, r2) {
        var o2 = new b(this.ctx);
        o2.animateRect(t3, { x: e2 + a2 / 2, y: i2 + s2 / 2, width: 0, height: 0 }, { x: e2, y: i2, width: a2, height: s2 }, r2, function() {
          o2.animationCompleted(t3);
        });
      } }, { key: "animateHeatColor", value: function(t3, e2, i2, a2) {
        t3.attr({ fill: e2 }).animate(a2).attr({ fill: i2 });
      } }]), t2;
    }();
    var Ct = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "drawYAxisTexts", value: function(t3, e2, i2, a2) {
        var s2 = this.w, r2 = s2.config.yaxis[0], o2 = s2.globals.yLabelFormatters[0];
        return new m(this.ctx).drawText({ x: t3 + r2.labels.offsetX, y: e2 + r2.labels.offsetY, text: o2(a2, i2), textAnchor: "middle", fontSize: r2.labels.style.fontSize, fontFamily: r2.labels.style.fontFamily, foreColor: Array.isArray(r2.labels.style.colors) ? r2.labels.style.colors[i2] : r2.labels.style.colors });
      } }]), t2;
    }();
    var Lt = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
        var i2 = this.w;
        this.chartType = this.w.config.chart.type, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled, this.animBeginArr = [0], this.animDur = 0, this.donutDataLabels = this.w.config.plotOptions.pie.donut.labels, this.lineColorArr = void 0 !== i2.globals.stroke.colors ? i2.globals.stroke.colors : i2.globals.colors, this.defaultSize = Math.min(i2.globals.gridWidth, i2.globals.gridHeight), this.centerY = this.defaultSize / 2, this.centerX = i2.globals.gridWidth / 2, "radialBar" === i2.config.chart.type ? this.fullAngle = 360 : this.fullAngle = Math.abs(i2.config.plotOptions.pie.endAngle - i2.config.plotOptions.pie.startAngle), this.initialAngle = i2.config.plotOptions.pie.startAngle % this.fullAngle, i2.globals.radialSize = this.defaultSize / 2.05 - i2.config.stroke.width - (i2.config.chart.sparkline.enabled ? 0 : i2.config.chart.dropShadow.blur), this.donutSize = i2.globals.radialSize * parseInt(i2.config.plotOptions.pie.donut.size, 10) / 100, this.maxY = 0, this.sliceLabels = [], this.sliceSizes = [], this.prevSectorAngleArr = [];
      }
      return r(t2, [{ key: "draw", value: function(t3) {
        var e2 = this, i2 = this.w, a2 = new m(this.ctx);
        if (this.ret = a2.group({ class: "apexcharts-pie" }), i2.globals.noData)
          return this.ret;
        for (var s2 = 0, r2 = 0; r2 < t3.length; r2++)
          s2 += x.negToZero(t3[r2]);
        var o2 = [], n2 = a2.group();
        0 === s2 && (s2 = 1e-5), t3.forEach(function(t4) {
          e2.maxY = Math.max(e2.maxY, t4);
        }), i2.config.yaxis[0].max && (this.maxY = i2.config.yaxis[0].max), "back" === i2.config.grid.position && "polarArea" === this.chartType && this.drawPolarElements(this.ret);
        for (var l2 = 0; l2 < t3.length; l2++) {
          var h2 = this.fullAngle * x.negToZero(t3[l2]) / s2;
          o2.push(h2), "polarArea" === this.chartType ? (o2[l2] = this.fullAngle / t3.length, this.sliceSizes.push(i2.globals.radialSize * t3[l2] / this.maxY)) : this.sliceSizes.push(i2.globals.radialSize);
        }
        if (i2.globals.dataChanged) {
          for (var c2, d2 = 0, g2 = 0; g2 < i2.globals.previousPaths.length; g2++)
            d2 += x.negToZero(i2.globals.previousPaths[g2]);
          for (var u2 = 0; u2 < i2.globals.previousPaths.length; u2++)
            c2 = this.fullAngle * x.negToZero(i2.globals.previousPaths[u2]) / d2, this.prevSectorAngleArr.push(c2);
        }
        this.donutSize < 0 && (this.donutSize = 0);
        var p2 = i2.config.plotOptions.pie.customScale, f2 = i2.globals.gridWidth / 2, b2 = i2.globals.gridHeight / 2, v2 = f2 - i2.globals.gridWidth / 2 * p2, y2 = b2 - i2.globals.gridHeight / 2 * p2;
        if ("donut" === this.chartType) {
          var w2 = a2.drawCircle(this.donutSize);
          w2.attr({ cx: this.centerX, cy: this.centerY, fill: i2.config.plotOptions.pie.donut.background ? i2.config.plotOptions.pie.donut.background : "transparent" }), n2.add(w2);
        }
        var k2 = this.drawArcs(o2, t3);
        if (this.sliceLabels.forEach(function(t4) {
          k2.add(t4);
        }), n2.attr({ transform: "translate(".concat(v2, ", ").concat(y2, ") scale(").concat(p2, ")") }), n2.add(k2), this.ret.add(n2), this.donutDataLabels.show) {
          var A3 = this.renderInnerDataLabels(this.donutDataLabels, { hollowSize: this.donutSize, centerX: this.centerX, centerY: this.centerY, opacity: this.donutDataLabels.show, translateX: v2, translateY: y2 });
          this.ret.add(A3);
        }
        return "front" === i2.config.grid.position && "polarArea" === this.chartType && this.drawPolarElements(this.ret), this.ret;
      } }, { key: "drawArcs", value: function(t3, e2) {
        var i2 = this.w, a2 = new v(this.ctx), s2 = new m(this.ctx), r2 = new R(this.ctx), o2 = s2.group({ class: "apexcharts-slices" }), n2 = this.initialAngle, l2 = this.initialAngle, h2 = this.initialAngle, c2 = this.initialAngle;
        this.strokeWidth = i2.config.stroke.show ? i2.config.stroke.width : 0;
        for (var d2 = 0; d2 < t3.length; d2++) {
          var g2 = s2.group({ class: "apexcharts-series apexcharts-pie-series", seriesName: x.escapeString(i2.globals.seriesNames[d2]), rel: d2 + 1, "data:realIndex": d2 });
          o2.add(g2), l2 = c2, h2 = (n2 = h2) + t3[d2], c2 = l2 + this.prevSectorAngleArr[d2];
          var u2 = h2 < n2 ? this.fullAngle + h2 - n2 : h2 - n2, p2 = r2.fillPath({ seriesNumber: d2, size: this.sliceSizes[d2], value: e2[d2] }), f2 = this.getChangedPath(l2, c2), b2 = s2.drawPath({ d: f2, stroke: Array.isArray(this.lineColorArr) ? this.lineColorArr[d2] : this.lineColorArr, strokeWidth: 0, fill: p2, fillOpacity: i2.config.fill.opacity, classes: "apexcharts-pie-area apexcharts-".concat(this.chartType.toLowerCase(), "-slice-").concat(d2) });
          if (b2.attr({ index: 0, j: d2 }), a2.setSelectionFilter(b2, 0, d2), i2.config.chart.dropShadow.enabled) {
            var y2 = i2.config.chart.dropShadow;
            a2.dropShadow(b2, y2, d2);
          }
          this.addListeners(b2, this.donutDataLabels), m.setAttrs(b2.node, { "data:angle": u2, "data:startAngle": n2, "data:strokeWidth": this.strokeWidth, "data:value": e2[d2] });
          var w2 = { x: 0, y: 0 };
          "pie" === this.chartType || "polarArea" === this.chartType ? w2 = x.polarToCartesian(this.centerX, this.centerY, i2.globals.radialSize / 1.25 + i2.config.plotOptions.pie.dataLabels.offset, (n2 + u2 / 2) % this.fullAngle) : "donut" === this.chartType && (w2 = x.polarToCartesian(this.centerX, this.centerY, (i2.globals.radialSize + this.donutSize) / 2 + i2.config.plotOptions.pie.dataLabels.offset, (n2 + u2 / 2) % this.fullAngle)), g2.add(b2);
          var k2 = 0;
          if (!this.initialAnim || i2.globals.resized || i2.globals.dataChanged ? this.animBeginArr.push(0) : (0 === (k2 = u2 / this.fullAngle * i2.config.chart.animations.speed) && (k2 = 1), this.animDur = k2 + this.animDur, this.animBeginArr.push(this.animDur)), this.dynamicAnim && i2.globals.dataChanged ? this.animatePaths(b2, { size: this.sliceSizes[d2], endAngle: h2, startAngle: n2, prevStartAngle: l2, prevEndAngle: c2, animateStartingPos: true, i: d2, animBeginArr: this.animBeginArr, shouldSetPrevPaths: true, dur: i2.config.chart.animations.dynamicAnimation.speed }) : this.animatePaths(b2, { size: this.sliceSizes[d2], endAngle: h2, startAngle: n2, i: d2, totalItems: t3.length - 1, animBeginArr: this.animBeginArr, dur: k2 }), i2.config.plotOptions.pie.expandOnClick && "polarArea" !== this.chartType && b2.click(this.pieClicked.bind(this, d2)), void 0 !== i2.globals.selectedDataPoints[0] && i2.globals.selectedDataPoints[0].indexOf(d2) > -1 && this.pieClicked(d2), i2.config.dataLabels.enabled) {
            var A3 = w2.x, S2 = w2.y, C2 = 100 * u2 / this.fullAngle + "%";
            if (0 !== u2 && i2.config.plotOptions.pie.dataLabels.minAngleToShowLabel < t3[d2]) {
              var L2 = i2.config.dataLabels.formatter;
              void 0 !== L2 && (C2 = L2(i2.globals.seriesPercent[d2][0], { seriesIndex: d2, w: i2 }));
              var P2 = i2.globals.dataLabels.style.colors[d2], I2 = s2.group({ class: "apexcharts-datalabels" }), T2 = s2.drawText({ x: A3, y: S2, text: C2, textAnchor: "middle", fontSize: i2.config.dataLabels.style.fontSize, fontFamily: i2.config.dataLabels.style.fontFamily, fontWeight: i2.config.dataLabels.style.fontWeight, foreColor: P2 });
              if (I2.add(T2), i2.config.dataLabels.dropShadow.enabled) {
                var M2 = i2.config.dataLabels.dropShadow;
                a2.dropShadow(T2, M2);
              }
              T2.node.classList.add("apexcharts-pie-label"), i2.config.chart.animations.animate && false === i2.globals.resized && (T2.node.classList.add("apexcharts-pie-label-delay"), T2.node.style.animationDelay = i2.config.chart.animations.speed / 940 + "s"), this.sliceLabels.push(I2);
            }
          }
        }
        return o2;
      } }, { key: "addListeners", value: function(t3, e2) {
        var i2 = new m(this.ctx);
        t3.node.addEventListener("mouseenter", i2.pathMouseEnter.bind(this, t3)), t3.node.addEventListener("mouseleave", i2.pathMouseLeave.bind(this, t3)), t3.node.addEventListener("mouseleave", this.revertDataLabelsInner.bind(this, t3.node, e2)), t3.node.addEventListener("mousedown", i2.pathMouseDown.bind(this, t3)), this.donutDataLabels.total.showAlways || (t3.node.addEventListener("mouseenter", this.printDataLabelsInner.bind(this, t3.node, e2)), t3.node.addEventListener("mousedown", this.printDataLabelsInner.bind(this, t3.node, e2)));
      } }, { key: "animatePaths", value: function(t3, e2) {
        var i2 = this.w, a2 = e2.endAngle < e2.startAngle ? this.fullAngle + e2.endAngle - e2.startAngle : e2.endAngle - e2.startAngle, s2 = a2, r2 = e2.startAngle, o2 = e2.startAngle;
        void 0 !== e2.prevStartAngle && void 0 !== e2.prevEndAngle && (r2 = e2.prevEndAngle, s2 = e2.prevEndAngle < e2.prevStartAngle ? this.fullAngle + e2.prevEndAngle - e2.prevStartAngle : e2.prevEndAngle - e2.prevStartAngle), e2.i === i2.config.series.length - 1 && (a2 + o2 > this.fullAngle ? e2.endAngle = e2.endAngle - (a2 + o2) : a2 + o2 < this.fullAngle && (e2.endAngle = e2.endAngle + (this.fullAngle - (a2 + o2)))), a2 === this.fullAngle && (a2 = this.fullAngle - 0.01), this.animateArc(t3, r2, o2, a2, s2, e2);
      } }, { key: "animateArc", value: function(t3, e2, i2, a2, s2, r2) {
        var o2, n2 = this, l2 = this.w, h2 = new b(this.ctx), c2 = r2.size;
        (isNaN(e2) || isNaN(s2)) && (e2 = i2, s2 = a2, r2.dur = 0);
        var d2 = a2, g2 = i2, u2 = e2 < i2 ? this.fullAngle + e2 - i2 : e2 - i2;
        l2.globals.dataChanged && r2.shouldSetPrevPaths && r2.prevEndAngle && (o2 = n2.getPiePath({ me: n2, startAngle: r2.prevStartAngle, angle: r2.prevEndAngle < r2.prevStartAngle ? this.fullAngle + r2.prevEndAngle - r2.prevStartAngle : r2.prevEndAngle - r2.prevStartAngle, size: c2 }), t3.attr({ d: o2 })), 0 !== r2.dur ? t3.animate(r2.dur, l2.globals.easing, r2.animBeginArr[r2.i]).afterAll(function() {
          "pie" !== n2.chartType && "donut" !== n2.chartType && "polarArea" !== n2.chartType || this.animate(l2.config.chart.animations.dynamicAnimation.speed).attr({ "stroke-width": n2.strokeWidth }), r2.i === l2.config.series.length - 1 && h2.animationCompleted(t3);
        }).during(function(l3) {
          d2 = u2 + (a2 - u2) * l3, r2.animateStartingPos && (d2 = s2 + (a2 - s2) * l3, g2 = e2 - s2 + (i2 - (e2 - s2)) * l3), o2 = n2.getPiePath({ me: n2, startAngle: g2, angle: d2, size: c2 }), t3.node.setAttribute("data:pathOrig", o2), t3.attr({ d: o2 });
        }) : (o2 = n2.getPiePath({ me: n2, startAngle: g2, angle: a2, size: c2 }), r2.isTrack || (l2.globals.animationEnded = true), t3.node.setAttribute("data:pathOrig", o2), t3.attr({ d: o2, "stroke-width": n2.strokeWidth }));
      } }, { key: "pieClicked", value: function(t3) {
        var e2, i2 = this.w, a2 = this, s2 = a2.sliceSizes[t3] + (i2.config.plotOptions.pie.expandOnClick ? 4 : 0), r2 = i2.globals.dom.Paper.select(".apexcharts-".concat(a2.chartType.toLowerCase(), "-slice-").concat(t3)).members[0];
        if ("true" !== r2.attr("data:pieClicked")) {
          var o2 = i2.globals.dom.baseEl.getElementsByClassName("apexcharts-pie-area");
          Array.prototype.forEach.call(o2, function(t4) {
            t4.setAttribute("data:pieClicked", "false");
            var e3 = t4.getAttribute("data:pathOrig");
            e3 && t4.setAttribute("d", e3);
          }), r2.attr("data:pieClicked", "true");
          var n2 = parseInt(r2.attr("data:startAngle"), 10), l2 = parseInt(r2.attr("data:angle"), 10);
          e2 = a2.getPiePath({ me: a2, startAngle: n2, angle: l2, size: s2 }), 360 !== l2 && r2.plot(e2);
        } else {
          r2.attr({ "data:pieClicked": "false" }), this.revertDataLabelsInner(r2.node, this.donutDataLabels);
          var h2 = r2.attr("data:pathOrig");
          r2.attr({ d: h2 });
        }
      } }, { key: "getChangedPath", value: function(t3, e2) {
        var i2 = "";
        return this.dynamicAnim && this.w.globals.dataChanged && (i2 = this.getPiePath({ me: this, startAngle: t3, angle: e2 - t3, size: this.size })), i2;
      } }, { key: "getPiePath", value: function(t3) {
        var e2, i2 = t3.me, a2 = t3.startAngle, s2 = t3.angle, r2 = t3.size, o2 = new m(this.ctx), n2 = a2, l2 = Math.PI * (n2 - 90) / 180, h2 = s2 + a2;
        Math.ceil(h2) >= this.fullAngle + this.w.config.plotOptions.pie.startAngle % this.fullAngle && (h2 = this.fullAngle + this.w.config.plotOptions.pie.startAngle % this.fullAngle - 0.01), Math.ceil(h2) > this.fullAngle && (h2 -= this.fullAngle);
        var c2 = Math.PI * (h2 - 90) / 180, d2 = i2.centerX + r2 * Math.cos(l2), g2 = i2.centerY + r2 * Math.sin(l2), u2 = i2.centerX + r2 * Math.cos(c2), p2 = i2.centerY + r2 * Math.sin(c2), f2 = x.polarToCartesian(i2.centerX, i2.centerY, i2.donutSize, h2), b2 = x.polarToCartesian(i2.centerX, i2.centerY, i2.donutSize, n2), v2 = s2 > 180 ? 1 : 0, y2 = ["M", d2, g2, "A", r2, r2, 0, v2, 1, u2, p2];
        return e2 = "donut" === i2.chartType ? [].concat(y2, ["L", f2.x, f2.y, "A", i2.donutSize, i2.donutSize, 0, v2, 0, b2.x, b2.y, "L", d2, g2, "z"]).join(" ") : "pie" === i2.chartType || "polarArea" === i2.chartType ? [].concat(y2, ["L", i2.centerX, i2.centerY, "L", d2, g2]).join(" ") : [].concat(y2).join(" "), o2.roundPathCorners(e2, 2 * this.strokeWidth);
      } }, { key: "drawPolarElements", value: function(t3) {
        var e2 = this.w, i2 = new _(this.ctx), a2 = new m(this.ctx), s2 = new Ct(this.ctx), r2 = a2.group(), o2 = a2.group(), n2 = i2.niceScale(0, Math.ceil(this.maxY), e2.config.yaxis[0].tickAmount, 0, true), l2 = n2.result.reverse(), h2 = n2.result.length;
        this.maxY = n2.niceMax;
        for (var c2 = e2.globals.radialSize, d2 = c2 / (h2 - 1), g2 = 0; g2 < h2 - 1; g2++) {
          var u2 = a2.drawCircle(c2);
          if (u2.attr({ cx: this.centerX, cy: this.centerY, fill: "none", "stroke-width": e2.config.plotOptions.polarArea.rings.strokeWidth, stroke: e2.config.plotOptions.polarArea.rings.strokeColor }), e2.config.yaxis[0].show) {
            var p2 = s2.drawYAxisTexts(this.centerX, this.centerY - c2 + parseInt(e2.config.yaxis[0].labels.style.fontSize, 10) / 2, g2, l2[g2]);
            o2.add(p2);
          }
          r2.add(u2), c2 -= d2;
        }
        this.drawSpokes(t3), t3.add(r2), t3.add(o2);
      } }, { key: "renderInnerDataLabels", value: function(t3, e2) {
        var i2 = this.w, a2 = new m(this.ctx), s2 = a2.group({ class: "apexcharts-datalabels-group", transform: "translate(".concat(e2.translateX ? e2.translateX : 0, ", ").concat(e2.translateY ? e2.translateY : 0, ") scale(").concat(i2.config.plotOptions.pie.customScale, ")") }), r2 = t3.total.show;
        s2.node.style.opacity = e2.opacity;
        var o2, n2, l2 = e2.centerX, h2 = e2.centerY;
        o2 = void 0 === t3.name.color ? i2.globals.colors[0] : t3.name.color;
        var c2 = t3.name.fontSize, d2 = t3.name.fontFamily, g2 = t3.name.fontWeight;
        n2 = void 0 === t3.value.color ? i2.config.chart.foreColor : t3.value.color;
        var u2 = t3.value.formatter, p2 = "", f2 = "";
        if (r2 ? (o2 = t3.total.color, c2 = t3.total.fontSize, d2 = t3.total.fontFamily, g2 = t3.total.fontWeight, f2 = t3.total.label, p2 = t3.total.formatter(i2)) : 1 === i2.globals.series.length && (p2 = u2(i2.globals.series[0], i2), f2 = i2.globals.seriesNames[0]), f2 && (f2 = t3.name.formatter(f2, t3.total.show, i2)), t3.name.show) {
          var x2 = a2.drawText({ x: l2, y: h2 + parseFloat(t3.name.offsetY), text: f2, textAnchor: "middle", foreColor: o2, fontSize: c2, fontWeight: g2, fontFamily: d2 });
          x2.node.classList.add("apexcharts-datalabel-label"), s2.add(x2);
        }
        if (t3.value.show) {
          var b2 = t3.name.show ? parseFloat(t3.value.offsetY) + 16 : t3.value.offsetY, v2 = a2.drawText({ x: l2, y: h2 + b2, text: p2, textAnchor: "middle", foreColor: n2, fontWeight: t3.value.fontWeight, fontSize: t3.value.fontSize, fontFamily: t3.value.fontFamily });
          v2.node.classList.add("apexcharts-datalabel-value"), s2.add(v2);
        }
        return s2;
      } }, { key: "printInnerLabels", value: function(t3, e2, i2, a2) {
        var s2, r2 = this.w;
        a2 ? s2 = void 0 === t3.name.color ? r2.globals.colors[parseInt(a2.parentNode.getAttribute("rel"), 10) - 1] : t3.name.color : r2.globals.series.length > 1 && t3.total.show && (s2 = t3.total.color);
        var o2 = r2.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"), n2 = r2.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value");
        i2 = (0, t3.value.formatter)(i2, r2), a2 || "function" != typeof t3.total.formatter || (i2 = t3.total.formatter(r2));
        var l2 = e2 === t3.total.label;
        e2 = t3.name.formatter(e2, l2, r2), null !== o2 && (o2.textContent = e2), null !== n2 && (n2.textContent = i2), null !== o2 && (o2.style.fill = s2);
      } }, { key: "printDataLabelsInner", value: function(t3, e2) {
        var i2 = this.w, a2 = t3.getAttribute("data:value"), s2 = i2.globals.seriesNames[parseInt(t3.parentNode.getAttribute("rel"), 10) - 1];
        i2.globals.series.length > 1 && this.printInnerLabels(e2, s2, a2, t3);
        var r2 = i2.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");
        null !== r2 && (r2.style.opacity = 1);
      } }, { key: "drawSpokes", value: function(t3) {
        var e2 = this, i2 = this.w, a2 = new m(this.ctx), s2 = i2.config.plotOptions.polarArea.spokes;
        if (0 !== s2.strokeWidth) {
          for (var r2 = [], o2 = 360 / i2.globals.series.length, n2 = 0; n2 < i2.globals.series.length; n2++)
            r2.push(x.polarToCartesian(this.centerX, this.centerY, i2.globals.radialSize, i2.config.plotOptions.pie.startAngle + o2 * n2));
          r2.forEach(function(i3, r3) {
            var o3 = a2.drawLine(i3.x, i3.y, e2.centerX, e2.centerY, Array.isArray(s2.connectorColors) ? s2.connectorColors[r3] : s2.connectorColors);
            t3.add(o3);
          });
        }
      } }, { key: "revertDataLabelsInner", value: function(t3, e2, i2) {
        var a2 = this, s2 = this.w, r2 = s2.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group"), o2 = false, n2 = s2.globals.dom.baseEl.getElementsByClassName("apexcharts-pie-area"), l2 = function(t4) {
          var i3 = t4.makeSliceOut, s3 = t4.printLabel;
          Array.prototype.forEach.call(n2, function(t5) {
            "true" === t5.getAttribute("data:pieClicked") && (i3 && (o2 = true), s3 && a2.printDataLabelsInner(t5, e2));
          });
        };
        if (l2({ makeSliceOut: true, printLabel: false }), e2.total.show && s2.globals.series.length > 1)
          o2 && !e2.total.showAlways ? l2({ makeSliceOut: false, printLabel: true }) : this.printInnerLabels(e2, e2.total.label, e2.total.formatter(s2));
        else if (l2({ makeSliceOut: false, printLabel: true }), !o2)
          if (s2.globals.selectedDataPoints.length && s2.globals.series.length > 1)
            if (s2.globals.selectedDataPoints[0].length > 0) {
              var h2 = s2.globals.selectedDataPoints[0], c2 = s2.globals.dom.baseEl.querySelector(".apexcharts-".concat(this.chartType.toLowerCase(), "-slice-").concat(h2));
              this.printDataLabelsInner(c2, e2);
            } else
              r2 && s2.globals.selectedDataPoints.length && 0 === s2.globals.selectedDataPoints[0].length && (r2.style.opacity = 0);
          else
            r2 && s2.globals.series.length > 1 && (r2.style.opacity = 0);
      } }]), t2;
    }();
    var Pt = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.chartType = this.w.config.chart.type, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled, this.animDur = 0;
        var i2 = this.w;
        this.graphics = new m(this.ctx), this.lineColorArr = void 0 !== i2.globals.stroke.colors ? i2.globals.stroke.colors : i2.globals.colors, this.defaultSize = i2.globals.svgHeight < i2.globals.svgWidth ? i2.globals.gridHeight + 1.5 * i2.globals.goldenPadding : i2.globals.gridWidth, this.isLog = i2.config.yaxis[0].logarithmic, this.coreUtils = new y(this.ctx), this.maxValue = this.isLog ? this.coreUtils.getLogVal(i2.globals.maxY, 0) : i2.globals.maxY, this.minValue = this.isLog ? this.coreUtils.getLogVal(this.w.globals.minY, 0) : i2.globals.minY, this.polygons = i2.config.plotOptions.radar.polygons, this.strokeWidth = i2.config.stroke.show ? i2.config.stroke.width : 0, this.size = this.defaultSize / 2.1 - this.strokeWidth - i2.config.chart.dropShadow.blur, i2.config.xaxis.labels.show && (this.size = this.size - i2.globals.xAxisLabelsWidth / 1.75), void 0 !== i2.config.plotOptions.radar.size && (this.size = i2.config.plotOptions.radar.size), this.dataRadiusOfPercent = [], this.dataRadius = [], this.angleArr = [], this.yaxisLabelsTextsPos = [];
      }
      return r(t2, [{ key: "draw", value: function(t3) {
        var i2 = this, a2 = this.w, s2 = new R(this.ctx), r2 = [], o2 = new O(this.ctx);
        t3.length && (this.dataPointsLen = t3[a2.globals.maxValsInArrayIndex].length), this.disAngle = 2 * Math.PI / this.dataPointsLen;
        var n2 = a2.globals.gridWidth / 2, l2 = a2.globals.gridHeight / 2, h2 = n2 + a2.config.plotOptions.radar.offsetX, c2 = l2 + a2.config.plotOptions.radar.offsetY, d2 = this.graphics.group({ class: "apexcharts-radar-series apexcharts-plot-series", transform: "translate(".concat(h2 || 0, ", ").concat(c2 || 0, ")") }), g2 = [], u2 = null, p2 = null;
        if (this.yaxisLabels = this.graphics.group({ class: "apexcharts-yaxis" }), t3.forEach(function(t4, n3) {
          var l3 = t4.length === a2.globals.dataPoints, h3 = i2.graphics.group().attr({ class: "apexcharts-series", "data:longestSeries": l3, seriesName: x.escapeString(a2.globals.seriesNames[n3]), rel: n3 + 1, "data:realIndex": n3 });
          i2.dataRadiusOfPercent[n3] = [], i2.dataRadius[n3] = [], i2.angleArr[n3] = [], t4.forEach(function(t5, e2) {
            var a3 = Math.abs(i2.maxValue - i2.minValue);
            t5 += Math.abs(i2.minValue), i2.isLog && (t5 = i2.coreUtils.getLogVal(t5, 0)), i2.dataRadiusOfPercent[n3][e2] = t5 / a3, i2.dataRadius[n3][e2] = i2.dataRadiusOfPercent[n3][e2] * i2.size, i2.angleArr[n3][e2] = e2 * i2.disAngle;
          }), g2 = i2.getDataPointsPos(i2.dataRadius[n3], i2.angleArr[n3]);
          var c3 = i2.createPaths(g2, { x: 0, y: 0 });
          u2 = i2.graphics.group({ class: "apexcharts-series-markers-wrap apexcharts-element-hidden" }), p2 = i2.graphics.group({ class: "apexcharts-datalabels", "data:realIndex": n3 }), a2.globals.delayedElements.push({ el: u2.node, index: n3 });
          var d3 = { i: n3, realIndex: n3, animationDelay: n3, initialSpeed: a2.config.chart.animations.speed, dataChangeSpeed: a2.config.chart.animations.dynamicAnimation.speed, className: "apexcharts-radar", shouldClipToGrid: false, bindEventsOnPaths: false, stroke: a2.globals.stroke.colors[n3], strokeLineCap: a2.config.stroke.lineCap }, f3 = null;
          a2.globals.previousPaths.length > 0 && (f3 = i2.getPreviousPath(n3));
          for (var b2 = 0; b2 < c3.linePathsTo.length; b2++) {
            var m2 = i2.graphics.renderPaths(e(e({}, d3), {}, { pathFrom: null === f3 ? c3.linePathsFrom[b2] : f3, pathTo: c3.linePathsTo[b2], strokeWidth: Array.isArray(i2.strokeWidth) ? i2.strokeWidth[n3] : i2.strokeWidth, fill: "none", drawShadow: false }));
            h3.add(m2);
            var y2 = s2.fillPath({ seriesNumber: n3 }), w2 = i2.graphics.renderPaths(e(e({}, d3), {}, { pathFrom: null === f3 ? c3.areaPathsFrom[b2] : f3, pathTo: c3.areaPathsTo[b2], strokeWidth: 0, fill: y2, drawShadow: false }));
            if (a2.config.chart.dropShadow.enabled) {
              var k2 = new v(i2.ctx), A3 = a2.config.chart.dropShadow;
              k2.dropShadow(w2, Object.assign({}, A3, { noUserSpaceOnUse: true }), n3);
            }
            h3.add(w2);
          }
          t4.forEach(function(t5, s3) {
            var r3 = new H(i2.ctx).getMarkerConfig({ cssClass: "apexcharts-marker", seriesIndex: n3, dataPointIndex: s3 }), l4 = i2.graphics.drawMarker(g2[s3].x, g2[s3].y, r3);
            l4.attr("rel", s3), l4.attr("j", s3), l4.attr("index", n3), l4.node.setAttribute("default-marker-size", r3.pSize);
            var c4 = i2.graphics.group({ class: "apexcharts-series-markers" });
            c4 && c4.add(l4), u2.add(c4), h3.add(u2);
            var d4 = a2.config.dataLabels;
            if (d4.enabled) {
              var f4 = d4.formatter(a2.globals.series[n3][s3], { seriesIndex: n3, dataPointIndex: s3, w: a2 });
              o2.plotDataLabelsText({ x: g2[s3].x, y: g2[s3].y, text: f4, textAnchor: "middle", i: n3, j: n3, parent: p2, offsetCorrection: false, dataLabelsConfig: e({}, d4) });
            }
            h3.add(p2);
          }), r2.push(h3);
        }), this.drawPolygons({ parent: d2 }), a2.config.xaxis.labels.show) {
          var f2 = this.drawXAxisTexts();
          d2.add(f2);
        }
        return r2.forEach(function(t4) {
          d2.add(t4);
        }), d2.add(this.yaxisLabels), d2;
      } }, { key: "drawPolygons", value: function(t3) {
        for (var e2 = this, i2 = this.w, a2 = t3.parent, s2 = new Ct(this.ctx), r2 = i2.globals.yAxisScale[0].result.reverse(), o2 = r2.length, n2 = [], l2 = this.size / (o2 - 1), h2 = 0; h2 < o2; h2++)
          n2[h2] = l2 * h2;
        n2.reverse();
        var c2 = [], d2 = [];
        n2.forEach(function(t4, i3) {
          var a3 = x.getPolygonPos(t4, e2.dataPointsLen), s3 = "";
          a3.forEach(function(t5, a4) {
            if (0 === i3) {
              var r3 = e2.graphics.drawLine(t5.x, t5.y, 0, 0, Array.isArray(e2.polygons.connectorColors) ? e2.polygons.connectorColors[a4] : e2.polygons.connectorColors);
              d2.push(r3);
            }
            0 === a4 && e2.yaxisLabelsTextsPos.push({ x: t5.x, y: t5.y }), s3 += t5.x + "," + t5.y + " ";
          }), c2.push(s3);
        }), c2.forEach(function(t4, s3) {
          var r3 = e2.polygons.strokeColors, o3 = e2.polygons.strokeWidth, n3 = e2.graphics.drawPolygon(t4, Array.isArray(r3) ? r3[s3] : r3, Array.isArray(o3) ? o3[s3] : o3, i2.globals.radarPolygons.fill.colors[s3]);
          a2.add(n3);
        }), d2.forEach(function(t4) {
          a2.add(t4);
        }), i2.config.yaxis[0].show && this.yaxisLabelsTextsPos.forEach(function(t4, i3) {
          var a3 = s2.drawYAxisTexts(t4.x, t4.y, i3, r2[i3]);
          e2.yaxisLabels.add(a3);
        });
      } }, { key: "drawXAxisTexts", value: function() {
        var t3 = this, i2 = this.w, a2 = i2.config.xaxis.labels, s2 = this.graphics.group({ class: "apexcharts-xaxis" }), r2 = x.getPolygonPos(this.size, this.dataPointsLen);
        return i2.globals.labels.forEach(function(o2, n2) {
          var l2 = i2.config.xaxis.labels.formatter, h2 = new O(t3.ctx);
          if (r2[n2]) {
            var c2 = t3.getTextPos(r2[n2], t3.size), d2 = l2(o2, { seriesIndex: -1, dataPointIndex: n2, w: i2 });
            h2.plotDataLabelsText({ x: c2.newX, y: c2.newY, text: d2, textAnchor: c2.textAnchor, i: n2, j: n2, parent: s2, color: Array.isArray(a2.style.colors) && a2.style.colors[n2] ? a2.style.colors[n2] : "#a8a8a8", dataLabelsConfig: e({ textAnchor: c2.textAnchor, dropShadow: { enabled: false } }, a2), offsetCorrection: false });
          }
        }), s2;
      } }, { key: "createPaths", value: function(t3, e2) {
        var i2 = this, a2 = [], s2 = [], r2 = [], o2 = [];
        if (t3.length) {
          s2 = [this.graphics.move(e2.x, e2.y)], o2 = [this.graphics.move(e2.x, e2.y)];
          var n2 = this.graphics.move(t3[0].x, t3[0].y), l2 = this.graphics.move(t3[0].x, t3[0].y);
          t3.forEach(function(e3, a3) {
            n2 += i2.graphics.line(e3.x, e3.y), l2 += i2.graphics.line(e3.x, e3.y), a3 === t3.length - 1 && (n2 += "Z", l2 += "Z");
          }), a2.push(n2), r2.push(l2);
        }
        return { linePathsFrom: s2, linePathsTo: a2, areaPathsFrom: o2, areaPathsTo: r2 };
      } }, { key: "getTextPos", value: function(t3, e2) {
        var i2 = "middle", a2 = t3.x, s2 = t3.y;
        return Math.abs(t3.x) >= 10 ? t3.x > 0 ? (i2 = "start", a2 += 10) : t3.x < 0 && (i2 = "end", a2 -= 10) : i2 = "middle", Math.abs(t3.y) >= e2 - 10 && (t3.y < 0 ? s2 -= 10 : t3.y > 0 && (s2 += 10)), { textAnchor: i2, newX: a2, newY: s2 };
      } }, { key: "getPreviousPath", value: function(t3) {
        for (var e2 = this.w, i2 = null, a2 = 0; a2 < e2.globals.previousPaths.length; a2++) {
          var s2 = e2.globals.previousPaths[a2];
          s2.paths.length > 0 && parseInt(s2.realIndex, 10) === parseInt(t3, 10) && void 0 !== e2.globals.previousPaths[a2].paths[0] && (i2 = e2.globals.previousPaths[a2].paths[0].d);
        }
        return i2;
      } }, { key: "getDataPointsPos", value: function(t3, e2) {
        var i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this.dataPointsLen;
        t3 = t3 || [], e2 = e2 || [];
        for (var a2 = [], s2 = 0; s2 < i2; s2++) {
          var r2 = {};
          r2.x = t3[s2] * Math.sin(e2[s2]), r2.y = -t3[s2] * Math.cos(e2[s2]), a2.push(r2);
        }
        return a2;
      } }]), t2;
    }();
    var It = function(t2) {
      n(i2, Lt);
      var e2 = d(i2);
      function i2(t3) {
        var s2;
        a(this, i2), (s2 = e2.call(this, t3)).ctx = t3, s2.w = t3.w, s2.animBeginArr = [0], s2.animDur = 0;
        var r2 = s2.w;
        return s2.startAngle = r2.config.plotOptions.radialBar.startAngle, s2.endAngle = r2.config.plotOptions.radialBar.endAngle, s2.totalAngle = Math.abs(r2.config.plotOptions.radialBar.endAngle - r2.config.plotOptions.radialBar.startAngle), s2.trackStartAngle = r2.config.plotOptions.radialBar.track.startAngle, s2.trackEndAngle = r2.config.plotOptions.radialBar.track.endAngle, s2.barLabels = s2.w.config.plotOptions.radialBar.barLabels, s2.donutDataLabels = s2.w.config.plotOptions.radialBar.dataLabels, s2.radialDataLabels = s2.donutDataLabels, s2.trackStartAngle || (s2.trackStartAngle = s2.startAngle), s2.trackEndAngle || (s2.trackEndAngle = s2.endAngle), 360 === s2.endAngle && (s2.endAngle = 359.99), s2.margin = parseInt(r2.config.plotOptions.radialBar.track.margin, 10), s2.onBarLabelClick = s2.onBarLabelClick.bind(c(s2)), s2;
      }
      return r(i2, [{ key: "draw", value: function(t3) {
        var e3 = this.w, i3 = new m(this.ctx), a2 = i3.group({ class: "apexcharts-radialbar" });
        if (e3.globals.noData)
          return a2;
        var s2 = i3.group(), r2 = this.defaultSize / 2, o2 = e3.globals.gridWidth / 2, n2 = this.defaultSize / 2.05;
        e3.config.chart.sparkline.enabled || (n2 = n2 - e3.config.stroke.width - e3.config.chart.dropShadow.blur);
        var l2 = e3.globals.fill.colors;
        if (e3.config.plotOptions.radialBar.track.show) {
          var h2 = this.drawTracks({ size: n2, centerX: o2, centerY: r2, colorArr: l2, series: t3 });
          s2.add(h2);
        }
        var c2 = this.drawArcs({ size: n2, centerX: o2, centerY: r2, colorArr: l2, series: t3 }), d2 = 360;
        e3.config.plotOptions.radialBar.startAngle < 0 && (d2 = this.totalAngle);
        var g2 = (360 - d2) / 360;
        if (e3.globals.radialSize = n2 - n2 * g2, this.radialDataLabels.value.show) {
          var u2 = Math.max(this.radialDataLabels.value.offsetY, this.radialDataLabels.name.offsetY);
          e3.globals.radialSize += u2 * g2;
        }
        return s2.add(c2.g), "front" === e3.config.plotOptions.radialBar.hollow.position && (c2.g.add(c2.elHollow), c2.dataLabels && c2.g.add(c2.dataLabels)), a2.add(s2), a2;
      } }, { key: "drawTracks", value: function(t3) {
        var e3 = this.w, i3 = new m(this.ctx), a2 = i3.group({ class: "apexcharts-tracks" }), s2 = new v(this.ctx), r2 = new R(this.ctx), o2 = this.getStrokeWidth(t3);
        t3.size = t3.size - o2 / 2;
        for (var n2 = 0; n2 < t3.series.length; n2++) {
          var l2 = i3.group({ class: "apexcharts-radialbar-track apexcharts-track" });
          a2.add(l2), l2.attr({ rel: n2 + 1 }), t3.size = t3.size - o2 - this.margin;
          var h2 = e3.config.plotOptions.radialBar.track, c2 = r2.fillPath({ seriesNumber: 0, size: t3.size, fillColors: Array.isArray(h2.background) ? h2.background[n2] : h2.background, solid: true }), d2 = this.trackStartAngle, g2 = this.trackEndAngle;
          Math.abs(g2) + Math.abs(d2) >= 360 && (g2 = 360 - Math.abs(this.startAngle) - 0.1);
          var u2 = i3.drawPath({ d: "", stroke: c2, strokeWidth: o2 * parseInt(h2.strokeWidth, 10) / 100, fill: "none", strokeOpacity: h2.opacity, classes: "apexcharts-radialbar-area" });
          if (h2.dropShadow.enabled) {
            var p2 = h2.dropShadow;
            s2.dropShadow(u2, p2);
          }
          l2.add(u2), u2.attr("id", "apexcharts-radialbarTrack-" + n2), this.animatePaths(u2, { centerX: t3.centerX, centerY: t3.centerY, endAngle: g2, startAngle: d2, size: t3.size, i: n2, totalItems: 2, animBeginArr: 0, dur: 0, isTrack: true, easing: e3.globals.easing });
        }
        return a2;
      } }, { key: "drawArcs", value: function(t3) {
        var e3 = this.w, i3 = new m(this.ctx), a2 = new R(this.ctx), s2 = new v(this.ctx), r2 = i3.group(), o2 = this.getStrokeWidth(t3);
        t3.size = t3.size - o2 / 2;
        var n2 = e3.config.plotOptions.radialBar.hollow.background, l2 = t3.size - o2 * t3.series.length - this.margin * t3.series.length - o2 * parseInt(e3.config.plotOptions.radialBar.track.strokeWidth, 10) / 100 / 2, h2 = l2 - e3.config.plotOptions.radialBar.hollow.margin;
        void 0 !== e3.config.plotOptions.radialBar.hollow.image && (n2 = this.drawHollowImage(t3, r2, l2, n2));
        var c2 = this.drawHollow({ size: h2, centerX: t3.centerX, centerY: t3.centerY, fill: n2 || "transparent" });
        if (e3.config.plotOptions.radialBar.hollow.dropShadow.enabled) {
          var d2 = e3.config.plotOptions.radialBar.hollow.dropShadow;
          s2.dropShadow(c2, d2);
        }
        var g2 = 1;
        !this.radialDataLabels.total.show && e3.globals.series.length > 1 && (g2 = 0);
        var u2 = null;
        this.radialDataLabels.show && (u2 = this.renderInnerDataLabels(this.radialDataLabels, { hollowSize: l2, centerX: t3.centerX, centerY: t3.centerY, opacity: g2 })), "back" === e3.config.plotOptions.radialBar.hollow.position && (r2.add(c2), u2 && r2.add(u2));
        var p2 = false;
        e3.config.plotOptions.radialBar.inverseOrder && (p2 = true);
        for (var f2 = p2 ? t3.series.length - 1 : 0; p2 ? f2 >= 0 : f2 < t3.series.length; p2 ? f2-- : f2++) {
          var b2 = i3.group({ class: "apexcharts-series apexcharts-radial-series", seriesName: x.escapeString(e3.globals.seriesNames[f2]) });
          r2.add(b2), b2.attr({ rel: f2 + 1, "data:realIndex": f2 }), this.ctx.series.addCollapsedClassToSeries(b2, f2), t3.size = t3.size - o2 - this.margin;
          var y2 = a2.fillPath({ seriesNumber: f2, size: t3.size, value: t3.series[f2] }), w2 = this.startAngle, k2 = void 0, A3 = x.negToZero(t3.series[f2] > 100 ? 100 : t3.series[f2]) / 100, S2 = Math.round(this.totalAngle * A3) + this.startAngle, C2 = void 0;
          e3.globals.dataChanged && (k2 = this.startAngle, C2 = Math.round(this.totalAngle * x.negToZero(e3.globals.previousPaths[f2]) / 100) + k2), Math.abs(S2) + Math.abs(w2) >= 360 && (S2 -= 0.01), Math.abs(C2) + Math.abs(k2) >= 360 && (C2 -= 0.01);
          var L2 = S2 - w2, P2 = Array.isArray(e3.config.stroke.dashArray) ? e3.config.stroke.dashArray[f2] : e3.config.stroke.dashArray, I2 = i3.drawPath({ d: "", stroke: y2, strokeWidth: o2, fill: "none", fillOpacity: e3.config.fill.opacity, classes: "apexcharts-radialbar-area apexcharts-radialbar-slice-" + f2, strokeDashArray: P2 });
          if (m.setAttrs(I2.node, { "data:angle": L2, "data:value": t3.series[f2] }), e3.config.chart.dropShadow.enabled) {
            var T2 = e3.config.chart.dropShadow;
            s2.dropShadow(I2, T2, f2);
          }
          if (s2.setSelectionFilter(I2, 0, f2), this.addListeners(I2, this.radialDataLabels), b2.add(I2), I2.attr({ index: 0, j: f2 }), this.barLabels.enabled) {
            var M2 = x.polarToCartesian(t3.centerX, t3.centerY, t3.size, w2), z2 = this.barLabels.formatter(e3.globals.seriesNames[f2], { seriesIndex: f2, w: e3 }), X2 = ["apexcharts-radialbar-label"];
            this.barLabels.onClick || X2.push("apexcharts-no-click");
            var E2 = this.barLabels.useSeriesColors ? e3.globals.colors[f2] : e3.config.chart.foreColor;
            E2 || (E2 = e3.config.chart.foreColor);
            var Y2 = M2.x - this.barLabels.margin, F2 = M2.y, H2 = i3.drawText({ x: Y2, y: F2, text: z2, textAnchor: "end", dominantBaseline: "middle", fontFamily: this.barLabels.fontFamily, fontWeight: this.barLabels.fontWeight, fontSize: this.barLabels.fontSize, foreColor: E2, cssClass: X2.join(" ") });
            H2.on("click", this.onBarLabelClick), H2.attr({ rel: f2 + 1 }), 0 !== w2 && H2.attr({ "transform-origin": "".concat(Y2, " ").concat(F2), transform: "rotate(".concat(w2, " 0 0)") }), b2.add(H2);
          }
          var D2 = 0;
          !this.initialAnim || e3.globals.resized || e3.globals.dataChanged || (D2 = e3.config.chart.animations.speed), e3.globals.dataChanged && (D2 = e3.config.chart.animations.dynamicAnimation.speed), this.animDur = D2 / (1.2 * t3.series.length) + this.animDur, this.animBeginArr.push(this.animDur), this.animatePaths(I2, { centerX: t3.centerX, centerY: t3.centerY, endAngle: S2, startAngle: w2, prevEndAngle: C2, prevStartAngle: k2, size: t3.size, i: f2, totalItems: 2, animBeginArr: this.animBeginArr, dur: D2, shouldSetPrevPaths: true, easing: e3.globals.easing });
        }
        return { g: r2, elHollow: c2, dataLabels: u2 };
      } }, { key: "drawHollow", value: function(t3) {
        var e3 = new m(this.ctx).drawCircle(2 * t3.size);
        return e3.attr({ class: "apexcharts-radialbar-hollow", cx: t3.centerX, cy: t3.centerY, r: t3.size, fill: t3.fill }), e3;
      } }, { key: "drawHollowImage", value: function(t3, e3, i3, a2) {
        var s2 = this.w, r2 = new R(this.ctx), o2 = x.randomId(), n2 = s2.config.plotOptions.radialBar.hollow.image;
        if (s2.config.plotOptions.radialBar.hollow.imageClipped)
          r2.clippedImgArea({ width: i3, height: i3, image: n2, patternID: "pattern".concat(s2.globals.cuid).concat(o2) }), a2 = "url(#pattern".concat(s2.globals.cuid).concat(o2, ")");
        else {
          var l2 = s2.config.plotOptions.radialBar.hollow.imageWidth, h2 = s2.config.plotOptions.radialBar.hollow.imageHeight;
          if (void 0 === l2 && void 0 === h2) {
            var c2 = s2.globals.dom.Paper.image(n2).loaded(function(e4) {
              this.move(t3.centerX - e4.width / 2 + s2.config.plotOptions.radialBar.hollow.imageOffsetX, t3.centerY - e4.height / 2 + s2.config.plotOptions.radialBar.hollow.imageOffsetY);
            });
            e3.add(c2);
          } else {
            var d2 = s2.globals.dom.Paper.image(n2).loaded(function(e4) {
              this.move(t3.centerX - l2 / 2 + s2.config.plotOptions.radialBar.hollow.imageOffsetX, t3.centerY - h2 / 2 + s2.config.plotOptions.radialBar.hollow.imageOffsetY), this.size(l2, h2);
            });
            e3.add(d2);
          }
        }
        return a2;
      } }, { key: "getStrokeWidth", value: function(t3) {
        var e3 = this.w;
        return t3.size * (100 - parseInt(e3.config.plotOptions.radialBar.hollow.size, 10)) / 100 / (t3.series.length + 1) - this.margin;
      } }, { key: "onBarLabelClick", value: function(t3) {
        var e3 = parseInt(t3.target.getAttribute("rel"), 10) - 1, i3 = this.barLabels.onClick, a2 = this.w;
        i3 && i3(a2.globals.seriesNames[e3], { w: a2, seriesIndex: e3 });
      } }]), i2;
    }();
    var Tt = function(t2) {
      n(s2, yt);
      var i2 = d(s2);
      function s2() {
        return a(this, s2), i2.apply(this, arguments);
      }
      return r(s2, [{ key: "draw", value: function(t3, i3) {
        var a2 = this.w, s3 = new m(this.ctx);
        this.rangeBarOptions = this.w.config.plotOptions.rangeBar, this.series = t3, this.seriesRangeStart = a2.globals.seriesRangeStart, this.seriesRangeEnd = a2.globals.seriesRangeEnd, this.barHelpers.initVariables(t3);
        for (var r2 = s3.group({ class: "apexcharts-rangebar-series apexcharts-plot-series" }), n2 = 0; n2 < t3.length; n2++) {
          var l2, h2, c2, d2, g2 = void 0, u2 = void 0, p2 = a2.globals.comboCharts ? i3[n2] : n2, f2 = s3.group({ class: "apexcharts-series", seriesName: x.escapeString(a2.globals.seriesNames[p2]), rel: n2 + 1, "data:realIndex": p2 });
          this.ctx.series.addCollapsedClassToSeries(f2, p2), t3[n2].length > 0 && (this.visibleI = this.visibleI + 1);
          var b2 = 0, v2 = 0;
          this.yRatio.length > 1 && (this.yaxisIndex = p2);
          var y2 = this.barHelpers.initialPositions();
          u2 = y2.y, d2 = y2.zeroW, g2 = y2.x, v2 = y2.barWidth, b2 = y2.barHeight, l2 = y2.xDivision, h2 = y2.yDivision, c2 = y2.zeroH;
          for (var w2 = s3.group({ class: "apexcharts-datalabels", "data:realIndex": p2 }), k2 = s3.group({ class: "apexcharts-rangebar-goals-markers" }), A3 = 0; A3 < a2.globals.dataPoints; A3++) {
            var S2, C2 = this.barHelpers.getStrokeWidth(n2, A3, p2), L2 = this.seriesRangeStart[n2][A3], P2 = this.seriesRangeEnd[n2][A3], I2 = null, T2 = null, M2 = null, z2 = { x: g2, y: u2, strokeWidth: C2, elSeries: f2 }, X2 = this.seriesLen;
            if (a2.config.plotOptions.bar.rangeBarGroupRows && (X2 = 1), void 0 === a2.config.series[n2].data[A3])
              break;
            if (this.isHorizontal) {
              M2 = u2 + b2 * this.visibleI;
              var E2 = (h2 - b2 * X2) / 2;
              if (a2.config.series[n2].data[A3].x) {
                var Y2 = this.detectOverlappingBars({ i: n2, j: A3, barYPosition: M2, srty: E2, barHeight: b2, yDivision: h2, initPositions: y2 });
                b2 = Y2.barHeight, M2 = Y2.barYPosition;
              }
              v2 = (I2 = this.drawRangeBarPaths(e({ indexes: { i: n2, j: A3, realIndex: p2 }, barHeight: b2, barYPosition: M2, zeroW: d2, yDivision: h2, y1: L2, y2: P2 }, z2))).barWidth;
            } else {
              a2.globals.isXNumeric && (g2 = (a2.globals.seriesX[n2][A3] - a2.globals.minX) / this.xRatio - v2 / 2), T2 = g2 + v2 * this.visibleI;
              var F2 = (l2 - v2 * X2) / 2;
              if (a2.config.series[n2].data[A3].x) {
                var R2 = this.detectOverlappingBars({ i: n2, j: A3, barXPosition: T2, srtx: F2, barWidth: v2, xDivision: l2, initPositions: y2 });
                v2 = R2.barWidth, T2 = R2.barXPosition;
              }
              b2 = (I2 = this.drawRangeColumnPaths(e({ indexes: { i: n2, j: A3, realIndex: p2 }, barWidth: v2, barXPosition: T2, zeroH: c2, xDivision: l2 }, z2))).barHeight;
            }
            var H2 = this.barHelpers.drawGoalLine({ barXPosition: I2.barXPosition, barYPosition: M2, goalX: I2.goalX, goalY: I2.goalY, barHeight: b2, barWidth: v2 });
            H2 && k2.add(H2), u2 = I2.y, g2 = I2.x;
            var D2 = this.barHelpers.getPathFillColor(t3, n2, A3, p2), O2 = a2.globals.stroke.colors[p2];
            this.renderSeries((o(S2 = { realIndex: p2, pathFill: D2, lineFill: O2, j: A3, i: n2, x: g2, y: u2, y1: L2, y2: P2, pathFrom: I2.pathFrom, pathTo: I2.pathTo, strokeWidth: C2, elSeries: f2, series: t3, barHeight: b2, barWidth: v2, barXPosition: T2, barYPosition: M2 }, "barWidth", v2), o(S2, "elDataLabelsWrap", w2), o(S2, "elGoalsMarkers", k2), o(S2, "visibleSeries", this.visibleI), o(S2, "type", "rangebar"), S2));
          }
          r2.add(f2);
        }
        return r2;
      } }, { key: "detectOverlappingBars", value: function(t3) {
        var e2 = t3.i, i3 = t3.j, a2 = t3.barYPosition, s3 = t3.barXPosition, r2 = t3.srty, o2 = t3.srtx, n2 = t3.barHeight, l2 = t3.barWidth, h2 = t3.yDivision, c2 = t3.xDivision, d2 = t3.initPositions, g2 = this.w, u2 = [], p2 = g2.config.series[e2].data[i3].rangeName, f2 = g2.config.series[e2].data[i3].x, x2 = Array.isArray(f2) ? f2.join(" ") : f2, b2 = g2.globals.labels.map(function(t4) {
          return Array.isArray(t4) ? t4.join(" ") : t4;
        }).indexOf(x2), v2 = g2.globals.seriesRange[e2].findIndex(function(t4) {
          return t4.x === x2 && t4.overlaps.length > 0;
        });
        return this.isHorizontal ? (a2 = g2.config.plotOptions.bar.rangeBarGroupRows ? r2 + h2 * b2 : r2 + n2 * this.visibleI + h2 * b2, v2 > -1 && !g2.config.plotOptions.bar.rangeBarOverlap && (u2 = g2.globals.seriesRange[e2][v2].overlaps).indexOf(p2) > -1 && (a2 = (n2 = d2.barHeight / u2.length) * this.visibleI + h2 * (100 - parseInt(this.barOptions.barHeight, 10)) / 100 / 2 + n2 * (this.visibleI + u2.indexOf(p2)) + h2 * b2)) : (b2 > -1 && (s3 = g2.config.plotOptions.bar.rangeBarGroupRows ? o2 + c2 * b2 : o2 + l2 * this.visibleI + c2 * b2), v2 > -1 && !g2.config.plotOptions.bar.rangeBarOverlap && (u2 = g2.globals.seriesRange[e2][v2].overlaps).indexOf(p2) > -1 && (s3 = (l2 = d2.barWidth / u2.length) * this.visibleI + c2 * (100 - parseInt(this.barOptions.barWidth, 10)) / 100 / 2 + l2 * (this.visibleI + u2.indexOf(p2)) + c2 * b2)), { barYPosition: a2, barXPosition: s3, barHeight: n2, barWidth: l2 };
      } }, { key: "drawRangeColumnPaths", value: function(t3) {
        var e2 = t3.indexes, i3 = t3.x, a2 = t3.xDivision, s3 = t3.barWidth, r2 = t3.barXPosition, o2 = t3.zeroH, n2 = this.w, l2 = e2.i, h2 = e2.j, c2 = this.yRatio[this.yaxisIndex], d2 = e2.realIndex, g2 = this.getRangeValue(d2, h2), u2 = Math.min(g2.start, g2.end), p2 = Math.max(g2.start, g2.end);
        void 0 === this.series[l2][h2] || null === this.series[l2][h2] ? u2 = o2 : (u2 = o2 - u2 / c2, p2 = o2 - p2 / c2);
        var f2 = Math.abs(p2 - u2), x2 = this.barHelpers.getColumnPaths({ barXPosition: r2, barWidth: s3, y1: u2, y2: p2, strokeWidth: this.strokeWidth, series: this.seriesRangeEnd, realIndex: e2.realIndex, i: d2, j: h2, w: n2 });
        if (n2.globals.isXNumeric) {
          var b2 = this.getBarXForNumericXAxis({ x: i3, j: h2, realIndex: d2, barWidth: s3 });
          i3 = b2.x, r2 = b2.barXPosition;
        } else
          i3 += a2;
        return { pathTo: x2.pathTo, pathFrom: x2.pathFrom, barHeight: f2, x: i3, y: p2, goalY: this.barHelpers.getGoalValues("y", null, o2, l2, h2), barXPosition: r2 };
      } }, { key: "drawRangeBarPaths", value: function(t3) {
        var e2 = t3.indexes, i3 = t3.y, a2 = t3.y1, s3 = t3.y2, r2 = t3.yDivision, o2 = t3.barHeight, n2 = t3.barYPosition, l2 = t3.zeroW, h2 = this.w, c2 = l2 + a2 / this.invertedYRatio, d2 = l2 + s3 / this.invertedYRatio, g2 = Math.abs(d2 - c2), u2 = this.barHelpers.getBarpaths({ barYPosition: n2, barHeight: o2, x1: c2, x2: d2, strokeWidth: this.strokeWidth, series: this.seriesRangeEnd, i: e2.realIndex, realIndex: e2.realIndex, j: e2.j, w: h2 });
        return h2.globals.isXNumeric || (i3 += r2), { pathTo: u2.pathTo, pathFrom: u2.pathFrom, barWidth: g2, x: d2, goalX: this.barHelpers.getGoalValues("x", l2, null, e2.realIndex, e2.j), y: i3 };
      } }, { key: "getRangeValue", value: function(t3, e2) {
        var i3 = this.w;
        return { start: i3.globals.seriesRangeStart[t3][e2], end: i3.globals.seriesRangeEnd[t3][e2] };
      } }]), s2;
    }();
    var Mt = function() {
      function t2(e2) {
        a(this, t2), this.w = e2.w, this.lineCtx = e2;
      }
      return r(t2, [{ key: "sameValueSeriesFix", value: function(t3, e2) {
        var i2 = this.w;
        if (("gradient" === i2.config.fill.type || "gradient" === i2.config.fill.type[t3]) && new y(this.lineCtx.ctx, i2).seriesHaveSameValues(t3)) {
          var a2 = e2[t3].slice();
          a2[a2.length - 1] = a2[a2.length - 1] + 1e-6, e2[t3] = a2;
        }
        return e2;
      } }, { key: "calculatePoints", value: function(t3) {
        var e2 = t3.series, i2 = t3.realIndex, a2 = t3.x, s2 = t3.y, r2 = t3.i, o2 = t3.j, n2 = t3.prevY, l2 = this.w, h2 = [], c2 = [];
        if (0 === o2) {
          var d2 = this.lineCtx.categoryAxisCorrection + l2.config.markers.offsetX;
          l2.globals.isXNumeric && (d2 = (l2.globals.seriesX[i2][0] - l2.globals.minX) / this.lineCtx.xRatio + l2.config.markers.offsetX), h2.push(d2), c2.push(x.isNumber(e2[r2][0]) ? n2 + l2.config.markers.offsetY : null), h2.push(a2 + l2.config.markers.offsetX), c2.push(x.isNumber(e2[r2][o2 + 1]) ? s2 + l2.config.markers.offsetY : null);
        } else
          h2.push(a2 + l2.config.markers.offsetX), c2.push(x.isNumber(e2[r2][o2 + 1]) ? s2 + l2.config.markers.offsetY : null);
        return { x: h2, y: c2 };
      } }, { key: "checkPreviousPaths", value: function(t3) {
        for (var e2 = t3.pathFromLine, i2 = t3.pathFromArea, a2 = t3.realIndex, s2 = this.w, r2 = 0; r2 < s2.globals.previousPaths.length; r2++) {
          var o2 = s2.globals.previousPaths[r2];
          ("line" === o2.type || "area" === o2.type) && o2.paths.length > 0 && parseInt(o2.realIndex, 10) === parseInt(a2, 10) && ("line" === o2.type ? (this.lineCtx.appendPathFrom = false, e2 = s2.globals.previousPaths[r2].paths[0].d) : "area" === o2.type && (this.lineCtx.appendPathFrom = false, i2 = s2.globals.previousPaths[r2].paths[0].d, s2.config.stroke.show && s2.globals.previousPaths[r2].paths[1] && (e2 = s2.globals.previousPaths[r2].paths[1].d)));
        }
        return { pathFromLine: e2, pathFromArea: i2 };
      } }, { key: "determineFirstPrevY", value: function(t3) {
        var e2, i2, a2 = t3.i, s2 = t3.series, r2 = t3.prevY, o2 = t3.lineYPosition, n2 = this.w, l2 = n2.config.chart.stacked && !n2.globals.comboCharts || n2.config.chart.stacked && n2.globals.comboCharts && (!this.w.config.chart.stackOnlyBar || "bar" === (null === (e2 = this.w.config.series[a2]) || void 0 === e2 ? void 0 : e2.type));
        if (void 0 !== (null === (i2 = s2[a2]) || void 0 === i2 ? void 0 : i2[0]))
          r2 = (o2 = l2 && a2 > 0 ? this.lineCtx.prevSeriesY[a2 - 1][0] : this.lineCtx.zeroY) - s2[a2][0] / this.lineCtx.yRatio[this.lineCtx.yaxisIndex] + 2 * (this.lineCtx.isReversed ? s2[a2][0] / this.lineCtx.yRatio[this.lineCtx.yaxisIndex] : 0);
        else if (l2 && a2 > 0 && void 0 === s2[a2][0]) {
          for (var h2 = a2 - 1; h2 >= 0; h2--)
            if (null !== s2[h2][0] && void 0 !== s2[h2][0]) {
              r2 = o2 = this.lineCtx.prevSeriesY[h2][0];
              break;
            }
        }
        return { prevY: r2, lineYPosition: o2 };
      } }]), t2;
    }();
    var zt = function(t2) {
      for (var e2, i2, a2, s2, r2 = function(t3) {
        for (var e3 = [], i3 = t3[0], a3 = t3[1], s3 = e3[0] = Yt(i3, a3), r3 = 1, o3 = t3.length - 1; r3 < o3; r3++)
          i3 = a3, a3 = t3[r3 + 1], e3[r3] = 0.5 * (s3 + (s3 = Yt(i3, a3)));
        return e3[r3] = s3, e3;
      }(t2), o2 = t2.length - 1, n2 = [], l2 = 0; l2 < o2; l2++)
        a2 = Yt(t2[l2], t2[l2 + 1]), Math.abs(a2) < 1e-6 ? r2[l2] = r2[l2 + 1] = 0 : (s2 = (e2 = r2[l2] / a2) * e2 + (i2 = r2[l2 + 1] / a2) * i2) > 9 && (s2 = 3 * a2 / Math.sqrt(s2), r2[l2] = s2 * e2, r2[l2 + 1] = s2 * i2);
      for (var h2 = 0; h2 <= o2; h2++)
        s2 = (t2[Math.min(o2, h2 + 1)][0] - t2[Math.max(0, h2 - 1)][0]) / (6 * (1 + r2[h2] * r2[h2])), n2.push([s2 || 0, r2[h2] * s2 || 0]);
      return n2;
    };
    var Xt = function(t2) {
      for (var e2 = "", i2 = 0; i2 < t2.length; i2++) {
        var a2 = t2[i2], s2 = a2.length;
        s2 > 4 ? (e2 += "C".concat(a2[0], ", ").concat(a2[1]), e2 += ", ".concat(a2[2], ", ").concat(a2[3]), e2 += ", ".concat(a2[4], ", ").concat(a2[5])) : s2 > 2 && (e2 += "S".concat(a2[0], ", ").concat(a2[1]), e2 += ", ".concat(a2[2], ", ").concat(a2[3]));
      }
      return e2;
    };
    var Et = function(t2) {
      var e2 = zt(t2), i2 = t2[1], a2 = t2[0], s2 = [], r2 = e2[1], o2 = e2[0];
      s2.push(a2, [a2[0] + o2[0], a2[1] + o2[1], i2[0] - r2[0], i2[1] - r2[1], i2[0], i2[1]]);
      for (var n2 = 2, l2 = e2.length; n2 < l2; n2++) {
        var h2 = t2[n2], c2 = e2[n2];
        s2.push([h2[0] - c2[0], h2[1] - c2[1], h2[0], h2[1]]);
      }
      return s2;
    };
    function Yt(t2, e2) {
      return (e2[1] - t2[1]) / (e2[0] - t2[0]);
    }
    var Ft = function() {
      function t2(e2, i2, s2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.xyRatios = i2, this.pointsChart = !("bubble" !== this.w.config.chart.type && "scatter" !== this.w.config.chart.type) || s2, this.scatter = new D(this.ctx), this.noNegatives = this.w.globals.minX === Number.MAX_VALUE, this.lineHelpers = new Mt(this), this.markers = new H(this.ctx), this.prevSeriesY = [], this.categoryAxisCorrection = 0, this.yaxisIndex = 0;
      }
      return r(t2, [{ key: "draw", value: function(t3, i2, a2, s2) {
        var r2, o2 = this.w, n2 = new m(this.ctx), l2 = o2.globals.comboCharts ? i2 : o2.config.chart.type, h2 = n2.group({ class: "apexcharts-".concat(l2, "-series apexcharts-plot-series") }), c2 = new y(this.ctx, o2);
        this.yRatio = this.xyRatios.yRatio, this.zRatio = this.xyRatios.zRatio, this.xRatio = this.xyRatios.xRatio, this.baseLineY = this.xyRatios.baseLineY, t3 = c2.getLogSeries(t3), this.yRatio = c2.getLogYRatios(this.yRatio);
        for (var d2 = [], g2 = 0; g2 < t3.length; g2++) {
          t3 = this.lineHelpers.sameValueSeriesFix(g2, t3);
          var u2 = o2.globals.comboCharts ? a2[g2] : g2;
          this._initSerieVariables(t3, g2, u2);
          var p2 = [], f2 = [], x2 = [], b2 = o2.globals.padHorizontal + this.categoryAxisCorrection;
          this.ctx.series.addCollapsedClassToSeries(this.elSeries, u2), o2.globals.isXNumeric && o2.globals.seriesX.length > 0 && (b2 = (o2.globals.seriesX[u2][0] - o2.globals.minX) / this.xRatio), x2.push(b2);
          var v2, w2 = b2, k2 = void 0, A3 = w2, S2 = this.zeroY, C2 = this.zeroY;
          S2 = this.lineHelpers.determineFirstPrevY({ i: g2, series: t3, prevY: S2, lineYPosition: 0 }).prevY, "monotonCubic" === o2.config.stroke.curve && null === t3[g2][0] ? p2.push(null) : p2.push(S2), v2 = S2;
          "rangeArea" === l2 && (k2 = C2 = this.lineHelpers.determineFirstPrevY({ i: g2, series: s2, prevY: C2, lineYPosition: 0 }).prevY, f2.push(C2));
          var L2 = { type: l2, series: t3, realIndex: u2, i: g2, x: b2, y: 1, pX: w2, pY: v2, pathsFrom: this._calculatePathsFrom({ type: l2, series: t3, i: g2, realIndex: u2, prevX: A3, prevY: S2, prevY2: C2 }), linePaths: [], areaPaths: [], seriesIndex: a2, lineYPosition: 0, xArrj: x2, yArrj: p2, y2Arrj: f2, seriesRangeEnd: s2 }, P2 = this._iterateOverDataPoints(e(e({}, L2), {}, { iterations: "rangeArea" === l2 ? t3[g2].length - 1 : void 0, isRangeStart: true }));
          if ("rangeArea" === l2) {
            var I2 = this._calculatePathsFrom({ series: s2, i: g2, realIndex: u2, prevX: A3, prevY: C2 }), T2 = this._iterateOverDataPoints(e(e({}, L2), {}, { series: s2, pY: k2, pathsFrom: I2, iterations: s2[g2].length - 1, isRangeStart: false }));
            P2.linePaths[0] = T2.linePath + P2.linePath, P2.pathFromLine = T2.pathFromLine + P2.pathFromLine;
          }
          this._handlePaths({ type: l2, realIndex: u2, i: g2, paths: P2 }), this.elSeries.add(this.elPointsMain), this.elSeries.add(this.elDataLabelsWrap), d2.push(this.elSeries);
        }
        if (void 0 !== (null === (r2 = o2.config.series[0]) || void 0 === r2 ? void 0 : r2.zIndex) && d2.sort(function(t4, e2) {
          return Number(t4.node.getAttribute("zIndex")) - Number(e2.node.getAttribute("zIndex"));
        }), o2.config.chart.stacked)
          for (var M2 = d2.length; M2 > 0; M2--)
            h2.add(d2[M2 - 1]);
        else
          for (var z2 = 0; z2 < d2.length; z2++)
            h2.add(d2[z2]);
        return h2;
      } }, { key: "_initSerieVariables", value: function(t3, e2, i2) {
        var a2 = this.w, s2 = new m(this.ctx);
        this.xDivision = a2.globals.gridWidth / (a2.globals.dataPoints - ("on" === a2.config.xaxis.tickPlacement ? 1 : 0)), this.strokeWidth = Array.isArray(a2.config.stroke.width) ? a2.config.stroke.width[i2] : a2.config.stroke.width, this.yRatio.length > 1 && (this.yaxisIndex = i2), this.isReversed = a2.config.yaxis[this.yaxisIndex] && a2.config.yaxis[this.yaxisIndex].reversed, this.zeroY = a2.globals.gridHeight - this.baseLineY[this.yaxisIndex] - (this.isReversed ? a2.globals.gridHeight : 0) + (this.isReversed ? 2 * this.baseLineY[this.yaxisIndex] : 0), this.areaBottomY = this.zeroY, (this.zeroY > a2.globals.gridHeight || "end" === a2.config.plotOptions.area.fillTo) && (this.areaBottomY = a2.globals.gridHeight), this.categoryAxisCorrection = this.xDivision / 2, this.elSeries = s2.group({ class: "apexcharts-series", zIndex: void 0 !== a2.config.series[i2].zIndex ? a2.config.series[i2].zIndex : i2, seriesName: x.escapeString(a2.globals.seriesNames[i2]) }), this.elPointsMain = s2.group({ class: "apexcharts-series-markers-wrap", "data:realIndex": i2 }), this.elDataLabelsWrap = s2.group({ class: "apexcharts-datalabels", "data:realIndex": i2 });
        var r2 = t3[e2].length === a2.globals.dataPoints;
        this.elSeries.attr({ "data:longestSeries": r2, rel: e2 + 1, "data:realIndex": i2 }), this.appendPathFrom = true;
      } }, { key: "_calculatePathsFrom", value: function(t3) {
        var e2, i2, a2, s2, r2 = t3.type, o2 = t3.series, n2 = t3.i, l2 = t3.realIndex, h2 = t3.prevX, c2 = t3.prevY, d2 = t3.prevY2, g2 = this.w, u2 = new m(this.ctx);
        if (null === o2[n2][0]) {
          for (var p2 = 0; p2 < o2[n2].length; p2++)
            if (null !== o2[n2][p2]) {
              h2 = this.xDivision * p2, c2 = this.zeroY - o2[n2][p2] / this.yRatio[this.yaxisIndex], e2 = u2.move(h2, c2), i2 = u2.move(h2, this.areaBottomY);
              break;
            }
        } else
          e2 = u2.move(h2, c2), "rangeArea" === r2 && (e2 = u2.move(h2, d2) + u2.line(h2, c2)), i2 = u2.move(h2, this.areaBottomY) + u2.line(h2, c2);
        if (a2 = u2.move(-1, this.zeroY) + u2.line(-1, this.zeroY), s2 = u2.move(-1, this.zeroY) + u2.line(-1, this.zeroY), g2.globals.previousPaths.length > 0) {
          var f2 = this.lineHelpers.checkPreviousPaths({ pathFromLine: a2, pathFromArea: s2, realIndex: l2 });
          a2 = f2.pathFromLine, s2 = f2.pathFromArea;
        }
        return { prevX: h2, prevY: c2, linePath: e2, areaPath: i2, pathFromLine: a2, pathFromArea: s2 };
      } }, { key: "_handlePaths", value: function(t3) {
        var i2 = t3.type, a2 = t3.realIndex, s2 = t3.i, r2 = t3.paths, o2 = this.w, n2 = new m(this.ctx), l2 = new R(this.ctx);
        this.prevSeriesY.push(r2.yArrj), o2.globals.seriesXvalues[a2] = r2.xArrj, o2.globals.seriesYvalues[a2] = r2.yArrj;
        var h2 = o2.config.forecastDataPoints;
        if (h2.count > 0 && "rangeArea" !== i2) {
          var c2 = o2.globals.seriesXvalues[a2][o2.globals.seriesXvalues[a2].length - h2.count - 1], d2 = n2.drawRect(c2, 0, o2.globals.gridWidth, o2.globals.gridHeight, 0);
          o2.globals.dom.elForecastMask.appendChild(d2.node);
          var g2 = n2.drawRect(0, 0, c2, o2.globals.gridHeight, 0);
          o2.globals.dom.elNonForecastMask.appendChild(g2.node);
        }
        this.pointsChart || o2.globals.delayedElements.push({ el: this.elPointsMain.node, index: a2 });
        var u2 = { i: s2, realIndex: a2, animationDelay: s2, initialSpeed: o2.config.chart.animations.speed, dataChangeSpeed: o2.config.chart.animations.dynamicAnimation.speed, className: "apexcharts-".concat(i2) };
        if ("area" === i2)
          for (var p2 = l2.fillPath({ seriesNumber: a2 }), f2 = 0; f2 < r2.areaPaths.length; f2++) {
            var x2 = n2.renderPaths(e(e({}, u2), {}, { pathFrom: r2.pathFromArea, pathTo: r2.areaPaths[f2], stroke: "none", strokeWidth: 0, strokeLineCap: null, fill: p2 }));
            this.elSeries.add(x2);
          }
        if (o2.config.stroke.show && !this.pointsChart) {
          var b2 = null;
          if ("line" === i2)
            b2 = l2.fillPath({ seriesNumber: a2, i: s2 });
          else if ("solid" === o2.config.stroke.fill.type)
            b2 = o2.globals.stroke.colors[a2];
          else {
            var v2 = o2.config.fill;
            o2.config.fill = o2.config.stroke.fill, b2 = l2.fillPath({ seriesNumber: a2, i: s2 }), o2.config.fill = v2;
          }
          for (var y2 = 0; y2 < r2.linePaths.length; y2++) {
            var w2 = b2;
            "rangeArea" === i2 && (w2 = l2.fillPath({ seriesNumber: a2 }));
            var k2 = e(e({}, u2), {}, { pathFrom: r2.pathFromLine, pathTo: r2.linePaths[y2], stroke: b2, strokeWidth: this.strokeWidth, strokeLineCap: o2.config.stroke.lineCap, fill: "rangeArea" === i2 ? w2 : "none" }), A3 = n2.renderPaths(k2);
            if (this.elSeries.add(A3), A3.attr("fill-rule", "evenodd"), h2.count > 0 && "rangeArea" !== i2) {
              var S2 = n2.renderPaths(k2);
              S2.node.setAttribute("stroke-dasharray", h2.dashArray), h2.strokeWidth && S2.node.setAttribute("stroke-width", h2.strokeWidth), this.elSeries.add(S2), S2.attr("clip-path", "url(#forecastMask".concat(o2.globals.cuid, ")")), A3.attr("clip-path", "url(#nonForecastMask".concat(o2.globals.cuid, ")"));
            }
          }
        }
      } }, { key: "_iterateOverDataPoints", value: function(t3) {
        var e2, i2 = this, a2 = t3.type, s2 = t3.series, r2 = t3.iterations, o2 = t3.realIndex, n2 = t3.i, l2 = t3.x, h2 = t3.y, c2 = t3.pX, d2 = t3.pY, g2 = t3.pathsFrom, u2 = t3.linePaths, p2 = t3.areaPaths, f2 = t3.seriesIndex, b2 = t3.lineYPosition, v2 = t3.xArrj, y2 = t3.yArrj, w2 = t3.y2Arrj, k2 = t3.isRangeStart, A3 = t3.seriesRangeEnd, S2 = this.w, C2 = new m(this.ctx), L2 = this.yRatio, P2 = g2.prevY, I2 = g2.linePath, T2 = g2.areaPath, M2 = g2.pathFromLine, z2 = g2.pathFromArea, X2 = x.isNumber(S2.globals.minYArr[o2]) ? S2.globals.minYArr[o2] : S2.globals.minY;
        r2 || (r2 = S2.globals.dataPoints > 1 ? S2.globals.dataPoints - 1 : S2.globals.dataPoints);
        for (var E2 = function(t4, e3) {
          return e3 - t4 / L2[i2.yaxisIndex] + 2 * (i2.isReversed ? t4 / L2[i2.yaxisIndex] : 0);
        }, Y2 = h2, F2 = S2.config.chart.stacked && !S2.globals.comboCharts || S2.config.chart.stacked && S2.globals.comboCharts && (!this.w.config.chart.stackOnlyBar || "bar" === (null === (e2 = this.w.config.series[o2]) || void 0 === e2 ? void 0 : e2.type)), R2 = 0; R2 < r2; R2++) {
          var H2 = void 0 === s2[n2][R2 + 1] || null === s2[n2][R2 + 1];
          if (S2.globals.isXNumeric) {
            var D2 = S2.globals.seriesX[o2][R2 + 1];
            void 0 === S2.globals.seriesX[o2][R2 + 1] && (D2 = S2.globals.seriesX[o2][r2 - 1]), l2 = (D2 - S2.globals.minX) / this.xRatio;
          } else
            l2 += this.xDivision;
          if (F2)
            if (n2 > 0 && S2.globals.collapsedSeries.length < S2.config.series.length - 1) {
              b2 = this.prevSeriesY[function(t4) {
                for (var e3 = t4, i3 = 0; i3 < S2.globals.series.length; i3++)
                  if (S2.globals.collapsedSeriesIndices.indexOf(t4) > -1) {
                    e3--;
                    break;
                  }
                return e3 >= 0 ? e3 : 0;
              }(n2 - 1)][R2 + 1];
            } else
              b2 = this.zeroY;
          else
            b2 = this.zeroY;
          H2 ? h2 = E2(X2, b2) : (h2 = E2(s2[n2][R2 + 1], b2), "rangeArea" === a2 && (Y2 = E2(A3[n2][R2 + 1], b2))), v2.push(l2), H2 && "smooth" === S2.config.stroke.curve ? y2.push(null) : y2.push(h2), w2.push(Y2);
          var O2 = this.lineHelpers.calculatePoints({ series: s2, x: l2, y: h2, realIndex: o2, i: n2, j: R2, prevY: P2 }), N2 = this._createPaths({ type: a2, series: s2, i: n2, realIndex: o2, j: R2, x: l2, y: h2, y2: Y2, xArrj: v2, yArrj: y2, y2Arrj: w2, pX: c2, pY: d2, linePath: I2, areaPath: T2, linePaths: u2, areaPaths: p2, seriesIndex: f2, isRangeStart: k2 });
          p2 = N2.areaPaths, u2 = N2.linePaths, c2 = N2.pX, d2 = N2.pY, T2 = N2.areaPath, I2 = N2.linePath, !this.appendPathFrom || "monotoneCubic" === S2.config.stroke.curve && "rangeArea" === a2 || (M2 += C2.line(l2, this.zeroY), z2 += C2.line(l2, this.zeroY)), this.handleNullDataPoints(s2, O2, n2, R2, o2), this._handleMarkersAndLabels({ type: a2, pointsPos: O2, i: n2, j: R2, realIndex: o2, isRangeStart: k2 });
        }
        return { yArrj: y2, xArrj: v2, pathFromArea: z2, areaPaths: p2, pathFromLine: M2, linePaths: u2, linePath: I2, areaPath: T2 };
      } }, { key: "_handleMarkersAndLabels", value: function(t3) {
        var e2 = t3.type, i2 = t3.pointsPos, a2 = t3.isRangeStart, s2 = t3.i, r2 = t3.j, o2 = t3.realIndex, n2 = this.w, l2 = new O(this.ctx);
        if (this.pointsChart)
          this.scatter.draw(this.elSeries, r2, { realIndex: o2, pointsPos: i2, zRatio: this.zRatio, elParent: this.elPointsMain });
        else {
          n2.globals.series[s2].length > 1 && this.elPointsMain.node.classList.add("apexcharts-element-hidden");
          var h2 = this.markers.plotChartMarkers(i2, o2, r2 + 1);
          null !== h2 && this.elPointsMain.add(h2);
        }
        var c2 = l2.drawDataLabel({ type: e2, isRangeStart: a2, pos: i2, i: o2, j: r2 + 1 });
        null !== c2 && this.elDataLabelsWrap.add(c2);
      } }, { key: "_createPaths", value: function(t3) {
        var e2 = t3.type, i2 = t3.series, a2 = t3.i, s2 = t3.realIndex, r2 = t3.j, o2 = t3.x, n2 = t3.y, l2 = t3.xArrj, h2 = t3.yArrj, c2 = t3.y2, d2 = t3.y2Arrj, g2 = t3.pX, u2 = t3.pY, p2 = t3.linePath, f2 = t3.areaPath, x2 = t3.linePaths, b2 = t3.areaPaths, v2 = t3.seriesIndex, y2 = t3.isRangeStart, w2 = this.w, k2 = new m(this.ctx), A3 = w2.config.stroke.curve, S2 = this.areaBottomY;
        if (Array.isArray(w2.config.stroke.curve) && (A3 = Array.isArray(v2) ? w2.config.stroke.curve[v2[a2]] : w2.config.stroke.curve[a2]), "rangeArea" === e2 && (w2.globals.hasNullValues || w2.config.forecastDataPoints.count > 0) && "monotoneCubic" === A3 && (A3 = "straight"), "monotoneCubic" === A3) {
          var C2 = "rangeArea" === e2 ? l2.length === w2.globals.dataPoints : r2 === i2[a2].length - 2, L2 = l2.map(function(t4, e3) {
            return [l2[e3], h2[e3]];
          }).filter(function(t4) {
            return null !== t4[1];
          });
          if (C2 && L2.length > 1) {
            var P2 = Et(L2);
            if (p2 += Xt(P2), null === i2[a2][0] ? f2 = p2 : f2 += Xt(P2), "rangeArea" === e2 && y2) {
              p2 += k2.line(l2[l2.length - 1], d2[d2.length - 1]);
              var I2 = l2.slice().reverse(), T2 = d2.slice().reverse(), M2 = I2.map(function(t4, e3) {
                return [I2[e3], T2[e3]];
              }), z2 = Et(M2);
              f2 = p2 += Xt(z2);
            } else
              f2 += k2.line(L2[L2.length - 1][0], S2) + k2.line(L2[0][0], S2) + k2.move(L2[0][0], L2[0][1]) + "z";
            x2.push(p2), b2.push(f2);
          }
        } else if ("smooth" === A3) {
          var X2 = 0.35 * (o2 - g2);
          w2.globals.hasNullValues ? (null !== i2[a2][r2] && (null !== i2[a2][r2 + 1] ? (p2 = k2.move(g2, u2) + k2.curve(g2 + X2, u2, o2 - X2, n2, o2 + 1, n2), f2 = k2.move(g2 + 1, u2) + k2.curve(g2 + X2, u2, o2 - X2, n2, o2 + 1, n2) + k2.line(o2, S2) + k2.line(g2, S2) + "z") : (p2 = k2.move(g2, u2), f2 = k2.move(g2, u2) + "z")), x2.push(p2), b2.push(f2)) : (p2 += k2.curve(g2 + X2, u2, o2 - X2, n2, o2, n2), f2 += k2.curve(g2 + X2, u2, o2 - X2, n2, o2, n2)), g2 = o2, u2 = n2, r2 === i2[a2].length - 2 && (f2 = f2 + k2.curve(g2, u2, o2, n2, o2, S2) + k2.move(o2, n2) + "z", "rangeArea" === e2 && y2 ? p2 = p2 + k2.curve(g2, u2, o2, n2, o2, c2) + k2.move(o2, c2) + "z" : w2.globals.hasNullValues || (x2.push(p2), b2.push(f2)));
        } else {
          if (null === i2[a2][r2 + 1]) {
            p2 += k2.move(o2, n2);
            var E2 = w2.globals.isXNumeric ? (w2.globals.seriesX[s2][r2] - w2.globals.minX) / this.xRatio : o2 - this.xDivision;
            f2 = f2 + k2.line(E2, S2) + k2.move(o2, n2) + "z";
          }
          null === i2[a2][r2] && (p2 += k2.move(o2, n2), f2 += k2.move(o2, S2)), "stepline" === A3 ? (p2 = p2 + k2.line(o2, null, "H") + k2.line(null, n2, "V"), f2 = f2 + k2.line(o2, null, "H") + k2.line(null, n2, "V")) : "straight" === A3 && (p2 += k2.line(o2, n2), f2 += k2.line(o2, n2)), r2 === i2[a2].length - 2 && (f2 = f2 + k2.line(o2, S2) + k2.move(o2, n2) + "z", "rangeArea" === e2 && y2 ? p2 = p2 + k2.line(o2, c2) + k2.move(o2, c2) + "z" : (x2.push(p2), b2.push(f2)));
        }
        return { linePaths: x2, areaPaths: b2, pX: g2, pY: u2, linePath: p2, areaPath: f2 };
      } }, { key: "handleNullDataPoints", value: function(t3, e2, i2, a2, s2) {
        var r2 = this.w;
        if (null === t3[i2][a2] && r2.config.markers.showNullDataPoints || 1 === t3[i2].length) {
          var o2 = this.markers.plotChartMarkers(e2, s2, a2 + 1, this.strokeWidth - r2.config.markers.strokeWidth / 2, true);
          null !== o2 && this.elPointsMain.add(o2);
        }
      } }]), t2;
    }();
    window.TreemapSquared = {}, window.TreemapSquared.generate = /* @__PURE__ */ function() {
      function t2(e3, i3, a3, s3) {
        this.xoffset = e3, this.yoffset = i3, this.height = s3, this.width = a3, this.shortestEdge = function() {
          return Math.min(this.height, this.width);
        }, this.getCoordinates = function(t3) {
          var e4, i4 = [], a4 = this.xoffset, s4 = this.yoffset, o3 = r2(t3) / this.height, n2 = r2(t3) / this.width;
          if (this.width >= this.height)
            for (e4 = 0; e4 < t3.length; e4++)
              i4.push([a4, s4, a4 + o3, s4 + t3[e4] / o3]), s4 += t3[e4] / o3;
          else
            for (e4 = 0; e4 < t3.length; e4++)
              i4.push([a4, s4, a4 + t3[e4] / n2, s4 + n2]), a4 += t3[e4] / n2;
          return i4;
        }, this.cutArea = function(e4) {
          var i4;
          if (this.width >= this.height) {
            var a4 = e4 / this.height, s4 = this.width - a4;
            i4 = new t2(this.xoffset + a4, this.yoffset, s4, this.height);
          } else {
            var r3 = e4 / this.width, o3 = this.height - r3;
            i4 = new t2(this.xoffset, this.yoffset + r3, this.width, o3);
          }
          return i4;
        };
      }
      function e2(e3, a3, s3, o3, n2) {
        o3 = void 0 === o3 ? 0 : o3, n2 = void 0 === n2 ? 0 : n2;
        var l2 = i2(function(t3, e4) {
          var i3, a4 = [], s4 = e4 / r2(t3);
          for (i3 = 0; i3 < t3.length; i3++)
            a4[i3] = t3[i3] * s4;
          return a4;
        }(e3, a3 * s3), [], new t2(o3, n2, a3, s3), []);
        return function(t3) {
          var e4, i3, a4 = [];
          for (e4 = 0; e4 < t3.length; e4++)
            for (i3 = 0; i3 < t3[e4].length; i3++)
              a4.push(t3[e4][i3]);
          return a4;
        }(l2);
      }
      function i2(t3, e3, s3, o3) {
        var n2, l2, h2;
        if (0 !== t3.length)
          return n2 = s3.shortestEdge(), function(t4, e4, i3) {
            var s4;
            if (0 === t4.length)
              return true;
            (s4 = t4.slice()).push(e4);
            var r3 = a2(t4, i3), o4 = a2(s4, i3);
            return r3 >= o4;
          }(e3, l2 = t3[0], n2) ? (e3.push(l2), i2(t3.slice(1), e3, s3, o3)) : (h2 = s3.cutArea(r2(e3), o3), o3.push(s3.getCoordinates(e3)), i2(t3, [], h2, o3)), o3;
        o3.push(s3.getCoordinates(e3));
      }
      function a2(t3, e3) {
        var i3 = Math.min.apply(Math, t3), a3 = Math.max.apply(Math, t3), s3 = r2(t3);
        return Math.max(Math.pow(e3, 2) * a3 / Math.pow(s3, 2), Math.pow(s3, 2) / (Math.pow(e3, 2) * i3));
      }
      function s2(t3) {
        return t3 && t3.constructor === Array;
      }
      function r2(t3) {
        var e3, i3 = 0;
        for (e3 = 0; e3 < t3.length; e3++)
          i3 += t3[e3];
        return i3;
      }
      function o2(t3) {
        var e3, i3 = 0;
        if (s2(t3[0]))
          for (e3 = 0; e3 < t3.length; e3++)
            i3 += o2(t3[e3]);
        else
          i3 = r2(t3);
        return i3;
      }
      return function t3(i3, a3, r3, n2, l2) {
        n2 = void 0 === n2 ? 0 : n2, l2 = void 0 === l2 ? 0 : l2;
        var h2, c2, d2 = [], g2 = [];
        if (s2(i3[0])) {
          for (c2 = 0; c2 < i3.length; c2++)
            d2[c2] = o2(i3[c2]);
          for (h2 = e2(d2, a3, r3, n2, l2), c2 = 0; c2 < i3.length; c2++)
            g2.push(t3(i3[c2], h2[c2][2] - h2[c2][0], h2[c2][3] - h2[c2][1], h2[c2][0], h2[c2][1]));
        } else
          g2 = e2(i3, a3, r3, n2, l2);
        return g2;
      };
    }();
    var Rt;
    var Ht;
    var Dt = function() {
      function t2(e2, i2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.strokeWidth = this.w.config.stroke.width, this.helpers = new At(e2), this.dynamicAnim = this.w.config.chart.animations.dynamicAnimation, this.labels = [];
      }
      return r(t2, [{ key: "draw", value: function(t3) {
        var e2 = this, i2 = this.w, a2 = new m(this.ctx), s2 = new R(this.ctx), r2 = a2.group({ class: "apexcharts-treemap" });
        if (i2.globals.noData)
          return r2;
        var o2 = [];
        return t3.forEach(function(t4) {
          var e3 = t4.map(function(t5) {
            return Math.abs(t5);
          });
          o2.push(e3);
        }), this.negRange = this.helpers.checkColorRange(), i2.config.series.forEach(function(t4, i3) {
          t4.data.forEach(function(t5) {
            Array.isArray(e2.labels[i3]) || (e2.labels[i3] = []), e2.labels[i3].push(t5.x);
          });
        }), window.TreemapSquared.generate(o2, i2.globals.gridWidth, i2.globals.gridHeight).forEach(function(o3, n2) {
          var l2 = a2.group({ class: "apexcharts-series apexcharts-treemap-series", seriesName: x.escapeString(i2.globals.seriesNames[n2]), rel: n2 + 1, "data:realIndex": n2 });
          if (i2.config.chart.dropShadow.enabled) {
            var h2 = i2.config.chart.dropShadow;
            new v(e2.ctx).dropShadow(r2, h2, n2);
          }
          var c2 = a2.group({ class: "apexcharts-data-labels" });
          o3.forEach(function(r3, o4) {
            var h3 = r3[0], c3 = r3[1], d2 = r3[2], g2 = r3[3], u2 = a2.drawRect(h3, c3, d2 - h3, g2 - c3, i2.config.plotOptions.treemap.borderRadius, "#fff", 1, e2.strokeWidth, i2.config.plotOptions.treemap.useFillColorAsStroke ? f2 : i2.globals.stroke.colors[n2]);
            u2.attr({ cx: h3, cy: c3, index: n2, i: n2, j: o4, width: d2 - h3, height: g2 - c3 });
            var p2 = e2.helpers.getShadeColor(i2.config.chart.type, n2, o4, e2.negRange), f2 = p2.color;
            void 0 !== i2.config.series[n2].data[o4] && i2.config.series[n2].data[o4].fillColor && (f2 = i2.config.series[n2].data[o4].fillColor);
            var x2 = s2.fillPath({ color: f2, seriesNumber: n2, dataPointIndex: o4 });
            u2.node.classList.add("apexcharts-treemap-rect"), u2.attr({ fill: x2 }), e2.helpers.addListeners(u2);
            var b2 = { x: h3 + (d2 - h3) / 2, y: c3 + (g2 - c3) / 2, width: 0, height: 0 }, v2 = { x: h3, y: c3, width: d2 - h3, height: g2 - c3 };
            if (i2.config.chart.animations.enabled && !i2.globals.dataChanged) {
              var m2 = 1;
              i2.globals.resized || (m2 = i2.config.chart.animations.speed), e2.animateTreemap(u2, b2, v2, m2);
            }
            if (i2.globals.dataChanged) {
              var y2 = 1;
              e2.dynamicAnim.enabled && i2.globals.shouldAnimate && (y2 = e2.dynamicAnim.speed, i2.globals.previousPaths[n2] && i2.globals.previousPaths[n2][o4] && i2.globals.previousPaths[n2][o4].rect && (b2 = i2.globals.previousPaths[n2][o4].rect), e2.animateTreemap(u2, b2, v2, y2));
            }
            var w2 = e2.getFontSize(r3), k2 = i2.config.dataLabels.formatter(e2.labels[n2][o4], { value: i2.globals.series[n2][o4], seriesIndex: n2, dataPointIndex: o4, w: i2 });
            "truncate" === i2.config.plotOptions.treemap.dataLabels.format && (w2 = parseInt(i2.config.dataLabels.style.fontSize, 10), k2 = e2.truncateLabels(k2, w2, h3, c3, d2, g2));
            var A3 = e2.helpers.calculateDataLabels({ text: k2, x: (h3 + d2) / 2, y: (c3 + g2) / 2 + e2.strokeWidth / 2 + w2 / 3, i: n2, j: o4, colorProps: p2, fontSize: w2, series: t3 });
            i2.config.dataLabels.enabled && A3 && e2.rotateToFitLabel(A3, w2, k2, h3, c3, d2, g2), l2.add(u2), null !== A3 && l2.add(A3);
          }), l2.add(c2), r2.add(l2);
        }), r2;
      } }, { key: "getFontSize", value: function(t3) {
        var e2 = this.w;
        var i2, a2, s2, r2, o2 = function t4(e3) {
          var i3, a3 = 0;
          if (Array.isArray(e3[0]))
            for (i3 = 0; i3 < e3.length; i3++)
              a3 += t4(e3[i3]);
          else
            for (i3 = 0; i3 < e3.length; i3++)
              a3 += e3[i3].length;
          return a3;
        }(this.labels) / function t4(e3) {
          var i3, a3 = 0;
          if (Array.isArray(e3[0]))
            for (i3 = 0; i3 < e3.length; i3++)
              a3 += t4(e3[i3]);
          else
            for (i3 = 0; i3 < e3.length; i3++)
              a3 += 1;
          return a3;
        }(this.labels);
        return i2 = t3[2] - t3[0], a2 = t3[3] - t3[1], s2 = i2 * a2, r2 = Math.pow(s2, 0.5), Math.min(r2 / o2, parseInt(e2.config.dataLabels.style.fontSize, 10));
      } }, { key: "rotateToFitLabel", value: function(t3, e2, i2, a2, s2, r2, o2) {
        var n2 = new m(this.ctx), l2 = n2.getTextRects(i2, e2);
        if (l2.width + this.w.config.stroke.width + 5 > r2 - a2 && l2.width <= o2 - s2) {
          var h2 = n2.rotateAroundCenter(t3.node);
          t3.node.setAttribute("transform", "rotate(-90 ".concat(h2.x, " ").concat(h2.y, ") translate(").concat(l2.height / 3, ")"));
        }
      } }, { key: "truncateLabels", value: function(t3, e2, i2, a2, s2, r2) {
        var o2 = new m(this.ctx), n2 = o2.getTextRects(t3, e2).width + this.w.config.stroke.width + 5 > s2 - i2 && r2 - a2 > s2 - i2 ? r2 - a2 : s2 - i2, l2 = o2.getTextBasedOnMaxWidth({ text: t3, maxWidth: n2, fontSize: e2 });
        return t3.length !== l2.length && n2 / e2 < 5 ? "" : l2;
      } }, { key: "animateTreemap", value: function(t3, e2, i2, a2) {
        var s2 = new b(this.ctx);
        s2.animateRect(t3, { x: e2.x, y: e2.y, width: e2.width, height: e2.height }, { x: i2.x, y: i2.y, width: i2.width, height: i2.height }, a2, function() {
          s2.animationCompleted(t3);
        });
      } }]), t2;
    }();
    var Ot = 86400;
    var Nt = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w, this.timeScaleArray = [], this.utc = this.w.config.xaxis.labels.datetimeUTC;
      }
      return r(t2, [{ key: "calculateTimeScaleTicks", value: function(t3, i2) {
        var a2 = this, s2 = this.w;
        if (s2.globals.allSeriesCollapsed)
          return s2.globals.labels = [], s2.globals.timescaleLabels = [], [];
        var r2 = new I(this.ctx), o2 = (i2 - t3) / 864e5;
        this.determineInterval(o2), s2.globals.disableZoomIn = false, s2.globals.disableZoomOut = false, o2 < 11574074074074075e-20 ? s2.globals.disableZoomIn = true : o2 > 5e4 && (s2.globals.disableZoomOut = true);
        var n2 = r2.getTimeUnitsfromTimestamp(t3, i2, this.utc), l2 = s2.globals.gridWidth / o2, h2 = l2 / 24, c2 = h2 / 60, d2 = c2 / 60, g2 = Math.floor(24 * o2), u2 = Math.floor(1440 * o2), p2 = Math.floor(o2 * Ot), f2 = Math.floor(o2), x2 = Math.floor(o2 / 30), b2 = Math.floor(o2 / 365), v2 = { minMillisecond: n2.minMillisecond, minSecond: n2.minSecond, minMinute: n2.minMinute, minHour: n2.minHour, minDate: n2.minDate, minMonth: n2.minMonth, minYear: n2.minYear }, m2 = { firstVal: v2, currentMillisecond: v2.minMillisecond, currentSecond: v2.minSecond, currentMinute: v2.minMinute, currentHour: v2.minHour, currentMonthDate: v2.minDate, currentDate: v2.minDate, currentMonth: v2.minMonth, currentYear: v2.minYear, daysWidthOnXAxis: l2, hoursWidthOnXAxis: h2, minutesWidthOnXAxis: c2, secondsWidthOnXAxis: d2, numberOfSeconds: p2, numberOfMinutes: u2, numberOfHours: g2, numberOfDays: f2, numberOfMonths: x2, numberOfYears: b2 };
        switch (this.tickInterval) {
          case "years":
            this.generateYearScale(m2);
            break;
          case "months":
          case "half_year":
            this.generateMonthScale(m2);
            break;
          case "months_days":
          case "months_fortnight":
          case "days":
          case "week_days":
            this.generateDayScale(m2);
            break;
          case "hours":
            this.generateHourScale(m2);
            break;
          case "minutes_fives":
          case "minutes":
            this.generateMinuteScale(m2);
            break;
          case "seconds_tens":
          case "seconds_fives":
          case "seconds":
            this.generateSecondScale(m2);
        }
        var y2 = this.timeScaleArray.map(function(t4) {
          var i3 = { position: t4.position, unit: t4.unit, year: t4.year, day: t4.day ? t4.day : 1, hour: t4.hour ? t4.hour : 0, month: t4.month + 1 };
          return "month" === t4.unit ? e(e({}, i3), {}, { day: 1, value: t4.value + 1 }) : "day" === t4.unit || "hour" === t4.unit ? e(e({}, i3), {}, { value: t4.value }) : "minute" === t4.unit ? e(e({}, i3), {}, { value: t4.value, minute: t4.value }) : "second" === t4.unit ? e(e({}, i3), {}, { value: t4.value, minute: t4.minute, second: t4.second }) : t4;
        });
        return y2.filter(function(t4) {
          var e2 = 1, i3 = Math.ceil(s2.globals.gridWidth / 120), r3 = t4.value;
          void 0 !== s2.config.xaxis.tickAmount && (i3 = s2.config.xaxis.tickAmount), y2.length > i3 && (e2 = Math.floor(y2.length / i3));
          var o3 = false, n3 = false;
          switch (a2.tickInterval) {
            case "years":
              "year" === t4.unit && (o3 = true);
              break;
            case "half_year":
              e2 = 7, "year" === t4.unit && (o3 = true);
              break;
            case "months":
              e2 = 1, "year" === t4.unit && (o3 = true);
              break;
            case "months_fortnight":
              e2 = 15, "year" !== t4.unit && "month" !== t4.unit || (o3 = true), 30 === r3 && (n3 = true);
              break;
            case "months_days":
              e2 = 10, "month" === t4.unit && (o3 = true), 30 === r3 && (n3 = true);
              break;
            case "week_days":
              e2 = 8, "month" === t4.unit && (o3 = true);
              break;
            case "days":
              e2 = 1, "month" === t4.unit && (o3 = true);
              break;
            case "hours":
              "day" === t4.unit && (o3 = true);
              break;
            case "minutes_fives":
            case "seconds_fives":
              r3 % 5 != 0 && (n3 = true);
              break;
            case "seconds_tens":
              r3 % 10 != 0 && (n3 = true);
          }
          if ("hours" === a2.tickInterval || "minutes_fives" === a2.tickInterval || "seconds_tens" === a2.tickInterval || "seconds_fives" === a2.tickInterval) {
            if (!n3)
              return true;
          } else if ((r3 % e2 == 0 || o3) && !n3)
            return true;
        });
      } }, { key: "recalcDimensionsBasedOnFormat", value: function(t3, e2) {
        var i2 = this.w, a2 = this.formatDates(t3), s2 = this.removeOverlappingTS(a2);
        i2.globals.timescaleLabels = s2.slice(), new ot(this.ctx).plotCoords();
      } }, { key: "determineInterval", value: function(t3) {
        var e2 = 24 * t3, i2 = 60 * e2;
        switch (true) {
          case t3 / 365 > 5:
            this.tickInterval = "years";
            break;
          case t3 > 800:
            this.tickInterval = "half_year";
            break;
          case t3 > 180:
            this.tickInterval = "months";
            break;
          case t3 > 90:
            this.tickInterval = "months_fortnight";
            break;
          case t3 > 60:
            this.tickInterval = "months_days";
            break;
          case t3 > 30:
            this.tickInterval = "week_days";
            break;
          case t3 > 2:
            this.tickInterval = "days";
            break;
          case e2 > 2.4:
            this.tickInterval = "hours";
            break;
          case i2 > 15:
            this.tickInterval = "minutes_fives";
            break;
          case i2 > 5:
            this.tickInterval = "minutes";
            break;
          case i2 > 1:
            this.tickInterval = "seconds_tens";
            break;
          case 60 * i2 > 20:
            this.tickInterval = "seconds_fives";
            break;
          default:
            this.tickInterval = "seconds";
        }
      } }, { key: "generateYearScale", value: function(t3) {
        var e2 = t3.firstVal, i2 = t3.currentMonth, a2 = t3.currentYear, s2 = t3.daysWidthOnXAxis, r2 = t3.numberOfYears, o2 = e2.minYear, n2 = 0, l2 = new I(this.ctx), h2 = "year";
        if (e2.minDate > 1 || e2.minMonth > 0) {
          var c2 = l2.determineRemainingDaysOfYear(e2.minYear, e2.minMonth, e2.minDate);
          n2 = (l2.determineDaysOfYear(e2.minYear) - c2 + 1) * s2, o2 = e2.minYear + 1, this.timeScaleArray.push({ position: n2, value: o2, unit: h2, year: o2, month: x.monthMod(i2 + 1) });
        } else
          1 === e2.minDate && 0 === e2.minMonth && this.timeScaleArray.push({ position: n2, value: o2, unit: h2, year: a2, month: x.monthMod(i2 + 1) });
        for (var d2 = o2, g2 = n2, u2 = 0; u2 < r2; u2++)
          d2++, g2 = l2.determineDaysOfYear(d2 - 1) * s2 + g2, this.timeScaleArray.push({ position: g2, value: d2, unit: h2, year: d2, month: 1 });
      } }, { key: "generateMonthScale", value: function(t3) {
        var e2 = t3.firstVal, i2 = t3.currentMonthDate, a2 = t3.currentMonth, s2 = t3.currentYear, r2 = t3.daysWidthOnXAxis, o2 = t3.numberOfMonths, n2 = a2, l2 = 0, h2 = new I(this.ctx), c2 = "month", d2 = 0;
        if (e2.minDate > 1) {
          l2 = (h2.determineDaysOfMonths(a2 + 1, e2.minYear) - i2 + 1) * r2, n2 = x.monthMod(a2 + 1);
          var g2 = s2 + d2, u2 = x.monthMod(n2), p2 = n2;
          0 === n2 && (c2 = "year", p2 = g2, u2 = 1, g2 += d2 += 1), this.timeScaleArray.push({ position: l2, value: p2, unit: c2, year: g2, month: u2 });
        } else
          this.timeScaleArray.push({ position: l2, value: n2, unit: c2, year: s2, month: x.monthMod(a2) });
        for (var f2 = n2 + 1, b2 = l2, v2 = 0, m2 = 1; v2 < o2; v2++, m2++) {
          0 === (f2 = x.monthMod(f2)) ? (c2 = "year", d2 += 1) : c2 = "month";
          var y2 = this._getYear(s2, f2, d2);
          b2 = h2.determineDaysOfMonths(f2, y2) * r2 + b2;
          var w2 = 0 === f2 ? y2 : f2;
          this.timeScaleArray.push({ position: b2, value: w2, unit: c2, year: y2, month: 0 === f2 ? 1 : f2 }), f2++;
        }
      } }, { key: "generateDayScale", value: function(t3) {
        var e2 = t3.firstVal, i2 = t3.currentMonth, a2 = t3.currentYear, s2 = t3.hoursWidthOnXAxis, r2 = t3.numberOfDays, o2 = new I(this.ctx), n2 = "day", l2 = e2.minDate + 1, h2 = l2, c2 = function(t4, e3, i3) {
          return t4 > o2.determineDaysOfMonths(e3 + 1, i3) ? (h2 = 1, n2 = "month", g2 = e3 += 1, e3) : e3;
        }, d2 = (24 - e2.minHour) * s2, g2 = l2, u2 = c2(h2, i2, a2);
        0 === e2.minHour && 1 === e2.minDate ? (d2 = 0, g2 = x.monthMod(e2.minMonth), n2 = "month", h2 = e2.minDate) : 1 !== e2.minDate && 0 === e2.minHour && 0 === e2.minMinute && (d2 = 0, l2 = e2.minDate, g2 = l2, u2 = c2(h2 = l2, i2, a2)), this.timeScaleArray.push({ position: d2, value: g2, unit: n2, year: this._getYear(a2, u2, 0), month: x.monthMod(u2), day: h2 });
        for (var p2 = d2, f2 = 0; f2 < r2; f2++) {
          n2 = "day", u2 = c2(h2 += 1, u2, this._getYear(a2, u2, 0));
          var b2 = this._getYear(a2, u2, 0);
          p2 = 24 * s2 + p2;
          var v2 = 1 === h2 ? x.monthMod(u2) : h2;
          this.timeScaleArray.push({ position: p2, value: v2, unit: n2, year: b2, month: x.monthMod(u2), day: v2 });
        }
      } }, { key: "generateHourScale", value: function(t3) {
        var e2 = t3.firstVal, i2 = t3.currentDate, a2 = t3.currentMonth, s2 = t3.currentYear, r2 = t3.minutesWidthOnXAxis, o2 = t3.numberOfHours, n2 = new I(this.ctx), l2 = "hour", h2 = function(t4, e3) {
          return t4 > n2.determineDaysOfMonths(e3 + 1, s2) && (f2 = 1, e3 += 1), { month: e3, date: f2 };
        }, c2 = function(t4, e3) {
          return t4 > n2.determineDaysOfMonths(e3 + 1, s2) ? e3 += 1 : e3;
        }, d2 = 60 - (e2.minMinute + e2.minSecond / 60), g2 = d2 * r2, u2 = e2.minHour + 1, p2 = u2;
        60 === d2 && (g2 = 0, p2 = u2 = e2.minHour);
        var f2 = i2;
        p2 >= 24 && (p2 = 0, f2 += 1, l2 = "day");
        var b2 = h2(f2, a2).month;
        b2 = c2(f2, b2), this.timeScaleArray.push({ position: g2, value: u2, unit: l2, day: f2, hour: p2, year: s2, month: x.monthMod(b2) }), p2++;
        for (var v2 = g2, m2 = 0; m2 < o2; m2++) {
          if (l2 = "hour", p2 >= 24)
            p2 = 0, l2 = "day", b2 = h2(f2 += 1, b2).month, b2 = c2(f2, b2);
          var y2 = this._getYear(s2, b2, 0);
          v2 = 60 * r2 + v2;
          var w2 = 0 === p2 ? f2 : p2;
          this.timeScaleArray.push({ position: v2, value: w2, unit: l2, hour: p2, day: f2, year: y2, month: x.monthMod(b2) }), p2++;
        }
      } }, { key: "generateMinuteScale", value: function(t3) {
        for (var e2 = t3.currentMillisecond, i2 = t3.currentSecond, a2 = t3.currentMinute, s2 = t3.currentHour, r2 = t3.currentDate, o2 = t3.currentMonth, n2 = t3.currentYear, l2 = t3.minutesWidthOnXAxis, h2 = t3.secondsWidthOnXAxis, c2 = t3.numberOfMinutes, d2 = a2 + 1, g2 = r2, u2 = o2, p2 = n2, f2 = s2, b2 = (60 - i2 - e2 / 1e3) * h2, v2 = 0; v2 < c2; v2++)
          d2 >= 60 && (d2 = 0, 24 === (f2 += 1) && (f2 = 0)), this.timeScaleArray.push({ position: b2, value: d2, unit: "minute", hour: f2, minute: d2, day: g2, year: this._getYear(p2, u2, 0), month: x.monthMod(u2) }), b2 += l2, d2++;
      } }, { key: "generateSecondScale", value: function(t3) {
        for (var e2 = t3.currentMillisecond, i2 = t3.currentSecond, a2 = t3.currentMinute, s2 = t3.currentHour, r2 = t3.currentDate, o2 = t3.currentMonth, n2 = t3.currentYear, l2 = t3.secondsWidthOnXAxis, h2 = t3.numberOfSeconds, c2 = i2 + 1, d2 = a2, g2 = r2, u2 = o2, p2 = n2, f2 = s2, b2 = (1e3 - e2) / 1e3 * l2, v2 = 0; v2 < h2; v2++)
          c2 >= 60 && (c2 = 0, ++d2 >= 60 && (d2 = 0, 24 === ++f2 && (f2 = 0))), this.timeScaleArray.push({ position: b2, value: c2, unit: "second", hour: f2, minute: d2, second: c2, day: g2, year: this._getYear(p2, u2, 0), month: x.monthMod(u2) }), b2 += l2, c2++;
      } }, { key: "createRawDateString", value: function(t3, e2) {
        var i2 = t3.year;
        return 0 === t3.month && (t3.month = 1), i2 += "-" + ("0" + t3.month.toString()).slice(-2), "day" === t3.unit ? i2 += "day" === t3.unit ? "-" + ("0" + e2).slice(-2) : "-01" : i2 += "-" + ("0" + (t3.day ? t3.day : "1")).slice(-2), "hour" === t3.unit ? i2 += "hour" === t3.unit ? "T" + ("0" + e2).slice(-2) : "T00" : i2 += "T" + ("0" + (t3.hour ? t3.hour : "0")).slice(-2), "minute" === t3.unit ? i2 += ":" + ("0" + e2).slice(-2) : i2 += ":" + (t3.minute ? ("0" + t3.minute).slice(-2) : "00"), "second" === t3.unit ? i2 += ":" + ("0" + e2).slice(-2) : i2 += ":00", this.utc && (i2 += ".000Z"), i2;
      } }, { key: "formatDates", value: function(t3) {
        var e2 = this, i2 = this.w;
        return t3.map(function(t4) {
          var a2 = t4.value.toString(), s2 = new I(e2.ctx), r2 = e2.createRawDateString(t4, a2), o2 = s2.getDate(s2.parseDate(r2));
          if (e2.utc || (o2 = s2.getDate(s2.parseDateWithTimezone(r2))), void 0 === i2.config.xaxis.labels.format) {
            var n2 = "dd MMM", l2 = i2.config.xaxis.labels.datetimeFormatter;
            "year" === t4.unit && (n2 = l2.year), "month" === t4.unit && (n2 = l2.month), "day" === t4.unit && (n2 = l2.day), "hour" === t4.unit && (n2 = l2.hour), "minute" === t4.unit && (n2 = l2.minute), "second" === t4.unit && (n2 = l2.second), a2 = s2.formatDate(o2, n2);
          } else
            a2 = s2.formatDate(o2, i2.config.xaxis.labels.format);
          return { dateString: r2, position: t4.position, value: a2, unit: t4.unit, year: t4.year, month: t4.month };
        });
      } }, { key: "removeOverlappingTS", value: function(t3) {
        var e2, i2 = this, a2 = new m(this.ctx), s2 = false;
        t3.length > 0 && t3[0].value && t3.every(function(e3) {
          return e3.value.length === t3[0].value.length;
        }) && (s2 = true, e2 = a2.getTextRects(t3[0].value).width);
        var r2 = 0, o2 = t3.map(function(o3, n2) {
          if (n2 > 0 && i2.w.config.xaxis.labels.hideOverlappingLabels) {
            var l2 = s2 ? e2 : a2.getTextRects(t3[r2].value).width, h2 = t3[r2].position;
            return o3.position > h2 + l2 + 10 ? (r2 = n2, o3) : null;
          }
          return o3;
        });
        return o2 = o2.filter(function(t4) {
          return null !== t4;
        });
      } }, { key: "_getYear", value: function(t3, e2, i2) {
        return t3 + Math.floor(e2 / 12) + i2;
      } }]), t2;
    }();
    var Wt = function() {
      function t2(e2, i2) {
        a(this, t2), this.ctx = i2, this.w = i2.w, this.el = e2;
      }
      return r(t2, [{ key: "setupElements", value: function() {
        var t3 = this.w.globals, e2 = this.w.config, i2 = e2.chart.type;
        t3.axisCharts = ["line", "area", "bar", "rangeBar", "rangeArea", "candlestick", "boxPlot", "scatter", "bubble", "radar", "heatmap", "treemap"].indexOf(i2) > -1, t3.xyCharts = ["line", "area", "bar", "rangeBar", "rangeArea", "candlestick", "boxPlot", "scatter", "bubble"].indexOf(i2) > -1, t3.isBarHorizontal = ("bar" === e2.chart.type || "rangeBar" === e2.chart.type || "boxPlot" === e2.chart.type) && e2.plotOptions.bar.horizontal, t3.chartClass = ".apexcharts" + t3.chartID, t3.dom.baseEl = this.el, t3.dom.elWrap = document.createElement("div"), m.setAttrs(t3.dom.elWrap, { id: t3.chartClass.substring(1), class: "apexcharts-canvas " + t3.chartClass.substring(1) }), this.el.appendChild(t3.dom.elWrap), t3.dom.Paper = new window.SVG.Doc(t3.dom.elWrap), t3.dom.Paper.attr({ class: "apexcharts-svg", "xmlns:data": "ApexChartsNS", transform: "translate(".concat(e2.chart.offsetX, ", ").concat(e2.chart.offsetY, ")") }), t3.dom.Paper.node.style.background = "dark" !== e2.theme.mode || e2.chart.background ? e2.chart.background : "rgba(0, 0, 0, 0.8)", this.setSVGDimensions(), t3.dom.elLegendForeign = document.createElementNS(t3.SVGNS, "foreignObject"), m.setAttrs(t3.dom.elLegendForeign, { x: 0, y: 0, width: t3.svgWidth, height: t3.svgHeight }), t3.dom.elLegendWrap = document.createElement("div"), t3.dom.elLegendWrap.classList.add("apexcharts-legend"), t3.dom.elLegendWrap.setAttribute("xmlns", "http://www.w3.org/1999/xhtml"), t3.dom.elLegendForeign.appendChild(t3.dom.elLegendWrap), t3.dom.Paper.node.appendChild(t3.dom.elLegendForeign), t3.dom.elGraphical = t3.dom.Paper.group().attr({ class: "apexcharts-inner apexcharts-graphical" }), t3.dom.elDefs = t3.dom.Paper.defs(), t3.dom.Paper.add(t3.dom.elGraphical), t3.dom.elGraphical.add(t3.dom.elDefs);
      } }, { key: "plotChartType", value: function(t3, e2) {
        var i2 = this.w, a2 = i2.config, s2 = i2.globals, r2 = { series: [], i: [] }, o2 = { series: [], i: [] }, n2 = { series: [], i: [] }, l2 = { series: [], i: [] }, h2 = { series: [], i: [] }, c2 = { series: [], i: [] }, d2 = { series: [], i: [] }, g2 = { series: [], i: [] }, u2 = { series: [], seriesRangeEnd: [], i: [] };
        s2.series.map(function(e3, p3) {
          var f3 = 0;
          void 0 !== t3[p3].type ? ("column" === t3[p3].type || "bar" === t3[p3].type ? (s2.series.length > 1 && a2.plotOptions.bar.horizontal && console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"), h2.series.push(e3), h2.i.push(p3), f3++, i2.globals.columnSeries = h2.series) : "area" === t3[p3].type ? (o2.series.push(e3), o2.i.push(p3), f3++) : "line" === t3[p3].type ? (r2.series.push(e3), r2.i.push(p3), f3++) : "scatter" === t3[p3].type ? (n2.series.push(e3), n2.i.push(p3)) : "bubble" === t3[p3].type ? (l2.series.push(e3), l2.i.push(p3), f3++) : "candlestick" === t3[p3].type ? (c2.series.push(e3), c2.i.push(p3), f3++) : "boxPlot" === t3[p3].type ? (d2.series.push(e3), d2.i.push(p3), f3++) : "rangeBar" === t3[p3].type ? (g2.series.push(e3), g2.i.push(p3), f3++) : "rangeArea" === t3[p3].type ? (u2.series.push(s2.seriesRangeStart[p3]), u2.seriesRangeEnd.push(s2.seriesRangeEnd[p3]), u2.i.push(p3), f3++) : console.warn("You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble/candlestick/boxPlot/rangeBar/rangeArea"), f3 > 1 && (s2.comboCharts = true)) : (r2.series.push(e3), r2.i.push(p3));
        });
        var p2 = new Ft(this.ctx, e2), f2 = new kt(this.ctx, e2);
        this.ctx.pie = new Lt(this.ctx);
        var x2 = new It(this.ctx);
        this.ctx.rangeBar = new Tt(this.ctx, e2);
        var b2 = new Pt(this.ctx), v2 = [];
        if (s2.comboCharts) {
          if (o2.series.length > 0 && v2.push(p2.draw(o2.series, "area", o2.i)), h2.series.length > 0)
            if (i2.config.chart.stacked) {
              var m2 = new wt(this.ctx, e2);
              v2.push(m2.draw(h2.series, h2.i));
            } else
              this.ctx.bar = new yt(this.ctx, e2), v2.push(this.ctx.bar.draw(h2.series, h2.i));
          if (u2.series.length > 0 && v2.push(p2.draw(u2.series, "rangeArea", u2.i, u2.seriesRangeEnd)), r2.series.length > 0 && v2.push(p2.draw(r2.series, "line", r2.i)), c2.series.length > 0 && v2.push(f2.draw(c2.series, "candlestick", c2.i)), d2.series.length > 0 && v2.push(f2.draw(d2.series, "boxPlot", d2.i)), g2.series.length > 0 && v2.push(this.ctx.rangeBar.draw(g2.series, g2.i)), n2.series.length > 0) {
            var y2 = new Ft(this.ctx, e2, true);
            v2.push(y2.draw(n2.series, "scatter", n2.i));
          }
          if (l2.series.length > 0) {
            var w2 = new Ft(this.ctx, e2, true);
            v2.push(w2.draw(l2.series, "bubble", l2.i));
          }
        } else
          switch (a2.chart.type) {
            case "line":
              v2 = p2.draw(s2.series, "line");
              break;
            case "area":
              v2 = p2.draw(s2.series, "area");
              break;
            case "bar":
              if (a2.chart.stacked)
                v2 = new wt(this.ctx, e2).draw(s2.series);
              else
                this.ctx.bar = new yt(this.ctx, e2), v2 = this.ctx.bar.draw(s2.series);
              break;
            case "candlestick":
              v2 = new kt(this.ctx, e2).draw(s2.series, "candlestick");
              break;
            case "boxPlot":
              v2 = new kt(this.ctx, e2).draw(s2.series, a2.chart.type);
              break;
            case "rangeBar":
              v2 = this.ctx.rangeBar.draw(s2.series);
              break;
            case "rangeArea":
              v2 = p2.draw(s2.seriesRangeStart, "rangeArea", void 0, s2.seriesRangeEnd);
              break;
            case "heatmap":
              v2 = new St(this.ctx, e2).draw(s2.series);
              break;
            case "treemap":
              v2 = new Dt(this.ctx, e2).draw(s2.series);
              break;
            case "pie":
            case "donut":
            case "polarArea":
              v2 = this.ctx.pie.draw(s2.series);
              break;
            case "radialBar":
              v2 = x2.draw(s2.series);
              break;
            case "radar":
              v2 = b2.draw(s2.series);
              break;
            default:
              v2 = p2.draw(s2.series);
          }
        return v2;
      } }, { key: "setSVGDimensions", value: function() {
        var t3 = this.w.globals, e2 = this.w.config;
        t3.svgWidth = e2.chart.width, t3.svgHeight = e2.chart.height;
        var i2 = x.getDimensions(this.el), a2 = e2.chart.width.toString().split(/[0-9]+/g).pop();
        "%" === a2 ? x.isNumber(i2[0]) && (0 === i2[0].width && (i2 = x.getDimensions(this.el.parentNode)), t3.svgWidth = i2[0] * parseInt(e2.chart.width, 10) / 100) : "px" !== a2 && "" !== a2 || (t3.svgWidth = parseInt(e2.chart.width, 10));
        var s2 = e2.chart.height.toString().split(/[0-9]+/g).pop();
        if ("auto" !== t3.svgHeight && "" !== t3.svgHeight)
          if ("%" === s2) {
            var r2 = x.getDimensions(this.el.parentNode);
            t3.svgHeight = r2[1] * parseInt(e2.chart.height, 10) / 100;
          } else
            t3.svgHeight = parseInt(e2.chart.height, 10);
        else
          t3.axisCharts ? t3.svgHeight = t3.svgWidth / 1.61 : t3.svgHeight = t3.svgWidth / 1.2;
        if (t3.svgWidth < 0 && (t3.svgWidth = 0), t3.svgHeight < 0 && (t3.svgHeight = 0), m.setAttrs(t3.dom.Paper.node, { width: t3.svgWidth, height: t3.svgHeight }), "%" !== s2) {
          var o2 = e2.chart.sparkline.enabled ? 0 : t3.axisCharts ? e2.chart.parentHeightOffset : 0;
          t3.dom.Paper.node.parentNode.parentNode.style.minHeight = t3.svgHeight + o2 + "px";
        }
        t3.dom.elWrap.style.width = t3.svgWidth + "px", t3.dom.elWrap.style.height = t3.svgHeight + "px";
      } }, { key: "shiftGraphPosition", value: function() {
        var t3 = this.w.globals, e2 = t3.translateY, i2 = { transform: "translate(" + t3.translateX + ", " + e2 + ")" };
        m.setAttrs(t3.dom.elGraphical.node, i2);
      } }, { key: "resizeNonAxisCharts", value: function() {
        var t3 = this.w, e2 = t3.globals, i2 = 0, a2 = t3.config.chart.sparkline.enabled ? 1 : 15;
        a2 += t3.config.grid.padding.bottom, "top" !== t3.config.legend.position && "bottom" !== t3.config.legend.position || !t3.config.legend.show || t3.config.legend.floating || (i2 = new lt(this.ctx).legendHelpers.getLegendBBox().clwh + 10);
        var s2 = t3.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"), r2 = 2.05 * t3.globals.radialSize;
        if (s2 && !t3.config.chart.sparkline.enabled && 0 !== t3.config.plotOptions.radialBar.startAngle) {
          var o2 = x.getBoundingClientRect(s2);
          r2 = o2.bottom;
          var n2 = o2.bottom - o2.top;
          r2 = Math.max(2.05 * t3.globals.radialSize, n2);
        }
        var l2 = r2 + e2.translateY + i2 + a2;
        e2.dom.elLegendForeign && e2.dom.elLegendForeign.setAttribute("height", l2), t3.config.chart.height && String(t3.config.chart.height).indexOf("%") > 0 || (e2.dom.elWrap.style.height = l2 + "px", m.setAttrs(e2.dom.Paper.node, { height: l2 }), e2.dom.Paper.node.parentNode.parentNode.style.minHeight = l2 + "px");
      } }, { key: "coreCalculations", value: function() {
        new U(this.ctx).init();
      } }, { key: "resetGlobals", value: function() {
        var t3 = this, e2 = function() {
          return t3.w.config.series.map(function(t4) {
            return [];
          });
        }, i2 = new Y(), a2 = this.w.globals;
        i2.initGlobalVars(a2), a2.seriesXvalues = e2(), a2.seriesYvalues = e2();
      } }, { key: "isMultipleY", value: function() {
        if (this.w.config.yaxis.constructor === Array && this.w.config.yaxis.length > 1)
          return this.w.globals.isMultipleYAxis = true, true;
      } }, { key: "xySettings", value: function() {
        var t3 = null, e2 = this.w;
        if (e2.globals.axisCharts) {
          if ("back" === e2.config.xaxis.crosshairs.position)
            new Q(this.ctx).drawXCrosshairs();
          if ("back" === e2.config.yaxis[0].crosshairs.position)
            new Q(this.ctx).drawYCrosshairs();
          if ("datetime" === e2.config.xaxis.type && void 0 === e2.config.xaxis.labels.formatter) {
            this.ctx.timeScale = new Nt(this.ctx);
            var i2 = [];
            isFinite(e2.globals.minX) && isFinite(e2.globals.maxX) && !e2.globals.isBarHorizontal ? i2 = this.ctx.timeScale.calculateTimeScaleTicks(e2.globals.minX, e2.globals.maxX) : e2.globals.isBarHorizontal && (i2 = this.ctx.timeScale.calculateTimeScaleTicks(e2.globals.minY, e2.globals.maxY)), this.ctx.timeScale.recalcDimensionsBasedOnFormat(i2);
          }
          t3 = new y(this.ctx).getCalculatedRatios();
        }
        return t3;
      } }, { key: "updateSourceChart", value: function(t3) {
        this.ctx.w.globals.selection = void 0, this.ctx.updateHelpers._updateOptions({ chart: { selection: { xaxis: { min: t3.w.globals.minX, max: t3.w.globals.maxX } } } }, false, false);
      } }, { key: "setupBrushHandler", value: function() {
        var t3 = this, i2 = this.w;
        if (i2.config.chart.brush.enabled && "function" != typeof i2.config.chart.events.selection) {
          var a2 = Array.isArray(i2.config.chart.brush.targets) ? i2.config.chart.brush.targets : [i2.config.chart.brush.target];
          a2.forEach(function(e2) {
            var i3 = ApexCharts.getChartByID(e2);
            i3.w.globals.brushSource = t3.ctx, "function" != typeof i3.w.config.chart.events.zoomed && (i3.w.config.chart.events.zoomed = function() {
              t3.updateSourceChart(i3);
            }), "function" != typeof i3.w.config.chart.events.scrolled && (i3.w.config.chart.events.scrolled = function() {
              t3.updateSourceChart(i3);
            });
          }), i2.config.chart.events.selection = function(t4, s2) {
            a2.forEach(function(t5) {
              var a3 = ApexCharts.getChartByID(t5), r2 = x.clone(i2.config.yaxis);
              if (i2.config.chart.brush.autoScaleYaxis && 1 === a3.w.globals.series.length) {
                var o2 = new _(a3);
                r2 = o2.autoScaleY(a3, r2, s2);
              }
              var n2 = a3.w.config.yaxis.reduce(function(t6, i3, s3) {
                return [].concat(u(t6), [e(e({}, a3.w.config.yaxis[s3]), {}, { min: r2[0].min, max: r2[0].max })]);
              }, []);
              a3.ctx.updateHelpers._updateOptions({ xaxis: { min: s2.xaxis.min, max: s2.xaxis.max }, yaxis: n2 }, false, false, false, false);
            });
          };
        }
      } }]), t2;
    }();
    var Bt = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "_updateOptions", value: function(t3) {
        var e2 = this, a2 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], s2 = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], r2 = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3], o2 = arguments.length > 4 && void 0 !== arguments[4] && arguments[4];
        return new Promise(function(n2) {
          var l2 = [e2.ctx];
          r2 && (l2 = e2.ctx.getSyncedCharts()), e2.ctx.w.globals.isExecCalled && (l2 = [e2.ctx], e2.ctx.w.globals.isExecCalled = false), l2.forEach(function(r3, h2) {
            var c2 = r3.w;
            if (c2.globals.shouldAnimate = s2, a2 || (c2.globals.resized = true, c2.globals.dataChanged = true, s2 && r3.series.getPreviousPaths()), t3 && "object" === i(t3) && (r3.config = new E(t3), t3 = y.extendArrayProps(r3.config, t3, c2), r3.w.globals.chartID !== e2.ctx.w.globals.chartID && delete t3.series, c2.config = x.extend(c2.config, t3), o2 && (c2.globals.lastXAxis = t3.xaxis ? x.clone(t3.xaxis) : [], c2.globals.lastYAxis = t3.yaxis ? x.clone(t3.yaxis) : [], c2.globals.initialConfig = x.extend({}, c2.config), c2.globals.initialSeries = x.clone(c2.config.series), t3.series))) {
              for (var d2 = 0; d2 < c2.globals.collapsedSeriesIndices.length; d2++) {
                var g2 = c2.config.series[c2.globals.collapsedSeriesIndices[d2]];
                c2.globals.collapsedSeries[d2].data = c2.globals.axisCharts ? g2.data.slice() : g2;
              }
              for (var u2 = 0; u2 < c2.globals.ancillaryCollapsedSeriesIndices.length; u2++) {
                var p2 = c2.config.series[c2.globals.ancillaryCollapsedSeriesIndices[u2]];
                c2.globals.ancillaryCollapsedSeries[u2].data = c2.globals.axisCharts ? p2.data.slice() : p2;
              }
              r3.series.emptyCollapsedSeries(c2.config.series);
            }
            return r3.update(t3).then(function() {
              h2 === l2.length - 1 && n2(r3);
            });
          });
        });
      } }, { key: "_updateSeries", value: function(t3, e2) {
        var i2 = this, a2 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
        return new Promise(function(s2) {
          var r2, o2 = i2.w;
          return o2.globals.shouldAnimate = e2, o2.globals.dataChanged = true, e2 && i2.ctx.series.getPreviousPaths(), o2.globals.axisCharts ? (0 === (r2 = t3.map(function(t4, e3) {
            return i2._extendSeries(t4, e3);
          })).length && (r2 = [{ data: [] }]), o2.config.series = r2) : o2.config.series = t3.slice(), a2 && (o2.globals.initialConfig.series = x.clone(o2.config.series), o2.globals.initialSeries = x.clone(o2.config.series)), i2.ctx.update().then(function() {
            s2(i2.ctx);
          });
        });
      } }, { key: "_extendSeries", value: function(t3, i2) {
        var a2 = this.w, s2 = a2.config.series[i2];
        return e(e({}, a2.config.series[i2]), {}, { name: t3.name ? t3.name : null == s2 ? void 0 : s2.name, color: t3.color ? t3.color : null == s2 ? void 0 : s2.color, type: t3.type ? t3.type : null == s2 ? void 0 : s2.type, group: t3.group ? t3.group : null == s2 ? void 0 : s2.group, data: t3.data ? t3.data : null == s2 ? void 0 : s2.data, zIndex: void 0 !== t3.zIndex ? t3.zIndex : i2 });
      } }, { key: "toggleDataPointSelection", value: function(t3, e2) {
        var i2 = this.w, a2 = null, s2 = ".apexcharts-series[data\\:realIndex='".concat(t3, "']");
        return i2.globals.axisCharts ? a2 = i2.globals.dom.Paper.select("".concat(s2, " path[j='").concat(e2, "'], ").concat(s2, " circle[j='").concat(e2, "'], ").concat(s2, " rect[j='").concat(e2, "']")).members[0] : void 0 === e2 && (a2 = i2.globals.dom.Paper.select("".concat(s2, " path[j='").concat(t3, "']")).members[0], "pie" !== i2.config.chart.type && "polarArea" !== i2.config.chart.type && "donut" !== i2.config.chart.type || this.ctx.pie.pieClicked(t3)), a2 ? (new m(this.ctx).pathMouseDown(a2, null), a2.node ? a2.node : null) : (console.warn("toggleDataPointSelection: Element not found"), null);
      } }, { key: "forceXAxisUpdate", value: function(t3) {
        var e2 = this.w;
        if (["min", "max"].forEach(function(i3) {
          void 0 !== t3.xaxis[i3] && (e2.config.xaxis[i3] = t3.xaxis[i3], e2.globals.lastXAxis[i3] = t3.xaxis[i3]);
        }), t3.xaxis.categories && t3.xaxis.categories.length && (e2.config.xaxis.categories = t3.xaxis.categories), e2.config.xaxis.convertedCatToNumeric) {
          var i2 = new X(t3);
          t3 = i2.convertCatToNumericXaxis(t3, this.ctx);
        }
        return t3;
      } }, { key: "forceYAxisUpdate", value: function(t3) {
        return t3.chart && t3.chart.stacked && "100%" === t3.chart.stackType && (Array.isArray(t3.yaxis) ? t3.yaxis.forEach(function(e2, i2) {
          t3.yaxis[i2].min = 0, t3.yaxis[i2].max = 100;
        }) : (t3.yaxis.min = 0, t3.yaxis.max = 100)), t3;
      } }, { key: "revertDefaultAxisMinMax", value: function(t3) {
        var e2 = this, i2 = this.w, a2 = i2.globals.lastXAxis, s2 = i2.globals.lastYAxis;
        t3 && t3.xaxis && (a2 = t3.xaxis), t3 && t3.yaxis && (s2 = t3.yaxis), i2.config.xaxis.min = a2.min, i2.config.xaxis.max = a2.max;
        var r2 = function(t4) {
          void 0 !== s2[t4] && (i2.config.yaxis[t4].min = s2[t4].min, i2.config.yaxis[t4].max = s2[t4].max);
        };
        i2.config.yaxis.map(function(t4, a3) {
          i2.globals.zoomed || void 0 !== s2[a3] ? r2(a3) : void 0 !== e2.ctx.opts.yaxis[a3] && (t4.min = e2.ctx.opts.yaxis[a3].min, t4.max = e2.ctx.opts.yaxis[a3].max);
        });
      } }]), t2;
    }();
    Rt = "undefined" != typeof window ? window : void 0, Ht = function(t2, e2) {
      var a2 = (void 0 !== this ? this : t2).SVG = function(t3) {
        if (a2.supported)
          return t3 = new a2.Doc(t3), a2.parser.draw || a2.prepare(), t3;
      };
      if (a2.ns = "http://www.w3.org/2000/svg", a2.xmlns = "http://www.w3.org/2000/xmlns/", a2.xlink = "http://www.w3.org/1999/xlink", a2.svgjs = "http://svgjs.dev", a2.supported = true, !a2.supported)
        return false;
      a2.did = 1e3, a2.eid = function(t3) {
        return "Svgjs" + d2(t3) + a2.did++;
      }, a2.create = function(t3) {
        var i2 = e2.createElementNS(this.ns, t3);
        return i2.setAttribute("id", this.eid(t3)), i2;
      }, a2.extend = function() {
        var t3, e3;
        e3 = (t3 = [].slice.call(arguments)).pop();
        for (var i2 = t3.length - 1; i2 >= 0; i2--)
          if (t3[i2])
            for (var s3 in e3)
              t3[i2].prototype[s3] = e3[s3];
        a2.Set && a2.Set.inherit && a2.Set.inherit();
      }, a2.invent = function(t3) {
        var e3 = "function" == typeof t3.create ? t3.create : function() {
          this.constructor.call(this, a2.create(t3.create));
        };
        return t3.inherit && (e3.prototype = new t3.inherit()), t3.extend && a2.extend(e3, t3.extend), t3.construct && a2.extend(t3.parent || a2.Container, t3.construct), e3;
      }, a2.adopt = function(e3) {
        return e3 ? e3.instance ? e3.instance : ((i2 = "svg" == e3.nodeName ? e3.parentNode instanceof t2.SVGElement ? new a2.Nested() : new a2.Doc() : "linearGradient" == e3.nodeName ? new a2.Gradient("linear") : "radialGradient" == e3.nodeName ? new a2.Gradient("radial") : a2[d2(e3.nodeName)] ? new a2[d2(e3.nodeName)]() : new a2.Element(e3)).type = e3.nodeName, i2.node = e3, e3.instance = i2, i2 instanceof a2.Doc && i2.namespace().defs(), i2.setData(JSON.parse(e3.getAttribute("svgjs:data")) || {}), i2) : null;
        var i2;
      }, a2.prepare = function() {
        var t3 = e2.getElementsByTagName("body")[0], i2 = (t3 ? new a2.Doc(t3) : a2.adopt(e2.documentElement).nested()).size(2, 0);
        a2.parser = { body: t3 || e2.documentElement, draw: i2.style("opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden").node, poly: i2.polyline().node, path: i2.path().node, native: a2.create("svg") };
      }, a2.parser = { native: a2.create("svg") }, e2.addEventListener("DOMContentLoaded", function() {
        a2.parser.draw || a2.prepare();
      }, false), a2.regex = { numberAndUnit: /^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i, hex: /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i, rgb: /rgb\((\d+),(\d+),(\d+)\)/, reference: /#([a-z0-9\-_]+)/i, transforms: /\)\s*,?\s*/, whitespace: /\s/g, isHex: /^#[a-f0-9]{3,6}$/i, isRgb: /^rgb\(/, isCss: /[^:]+:[^;]+;?/, isBlank: /^(\s+)?$/, isNumber: /^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, isPercent: /^-?[\d\.]+%$/, isImage: /\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i, delimiter: /[\s,]+/, hyphen: /([^e])\-/gi, pathLetters: /[MLHVCSQTAZ]/gi, isPathLetter: /[MLHVCSQTAZ]/i, numbersWithDots: /((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi, dots: /\./g }, a2.utils = { map: function(t3, e3) {
        for (var i2 = t3.length, a3 = [], s3 = 0; s3 < i2; s3++)
          a3.push(e3(t3[s3]));
        return a3;
      }, filter: function(t3, e3) {
        for (var i2 = t3.length, a3 = [], s3 = 0; s3 < i2; s3++)
          e3(t3[s3]) && a3.push(t3[s3]);
        return a3;
      }, filterSVGElements: function(e3) {
        return this.filter(e3, function(e4) {
          return e4 instanceof t2.SVGElement;
        });
      } }, a2.defaults = { attrs: { "fill-opacity": 1, "stroke-opacity": 1, "stroke-width": 0, "stroke-linejoin": "miter", "stroke-linecap": "butt", fill: "#000000", stroke: "#000000", opacity: 1, x: 0, y: 0, cx: 0, cy: 0, width: 0, height: 0, r: 0, rx: 0, ry: 0, offset: 0, "stop-opacity": 1, "stop-color": "#000000", "font-size": 16, "font-family": "Helvetica, Arial, sans-serif", "text-anchor": "start" } }, a2.Color = function(t3) {
        var e3, s3;
        this.r = 0, this.g = 0, this.b = 0, t3 && ("string" == typeof t3 ? a2.regex.isRgb.test(t3) ? (e3 = a2.regex.rgb.exec(t3.replace(a2.regex.whitespace, "")), this.r = parseInt(e3[1]), this.g = parseInt(e3[2]), this.b = parseInt(e3[3])) : a2.regex.isHex.test(t3) && (e3 = a2.regex.hex.exec(4 == (s3 = t3).length ? ["#", s3.substring(1, 2), s3.substring(1, 2), s3.substring(2, 3), s3.substring(2, 3), s3.substring(3, 4), s3.substring(3, 4)].join("") : s3), this.r = parseInt(e3[1], 16), this.g = parseInt(e3[2], 16), this.b = parseInt(e3[3], 16)) : "object" === i(t3) && (this.r = t3.r, this.g = t3.g, this.b = t3.b));
      }, a2.extend(a2.Color, { toString: function() {
        return this.toHex();
      }, toHex: function() {
        return "#" + g2(this.r) + g2(this.g) + g2(this.b);
      }, toRgb: function() {
        return "rgb(" + [this.r, this.g, this.b].join() + ")";
      }, brightness: function() {
        return this.r / 255 * 0.3 + this.g / 255 * 0.59 + this.b / 255 * 0.11;
      }, morph: function(t3) {
        return this.destination = new a2.Color(t3), this;
      }, at: function(t3) {
        return this.destination ? (t3 = t3 < 0 ? 0 : t3 > 1 ? 1 : t3, new a2.Color({ r: ~~(this.r + (this.destination.r - this.r) * t3), g: ~~(this.g + (this.destination.g - this.g) * t3), b: ~~(this.b + (this.destination.b - this.b) * t3) })) : this;
      } }), a2.Color.test = function(t3) {
        return t3 += "", a2.regex.isHex.test(t3) || a2.regex.isRgb.test(t3);
      }, a2.Color.isRgb = function(t3) {
        return t3 && "number" == typeof t3.r && "number" == typeof t3.g && "number" == typeof t3.b;
      }, a2.Color.isColor = function(t3) {
        return a2.Color.isRgb(t3) || a2.Color.test(t3);
      }, a2.Array = function(t3, e3) {
        0 == (t3 = (t3 || []).valueOf()).length && e3 && (t3 = e3.valueOf()), this.value = this.parse(t3);
      }, a2.extend(a2.Array, { toString: function() {
        return this.value.join(" ");
      }, valueOf: function() {
        return this.value;
      }, parse: function(t3) {
        return t3 = t3.valueOf(), Array.isArray(t3) ? t3 : this.split(t3);
      } }), a2.PointArray = function(t3, e3) {
        a2.Array.call(this, t3, e3 || [[0, 0]]);
      }, a2.PointArray.prototype = new a2.Array(), a2.PointArray.prototype.constructor = a2.PointArray;
      for (var s2 = { M: function(t3, e3, i2) {
        return e3.x = i2.x = t3[0], e3.y = i2.y = t3[1], ["M", e3.x, e3.y];
      }, L: function(t3, e3) {
        return e3.x = t3[0], e3.y = t3[1], ["L", t3[0], t3[1]];
      }, H: function(t3, e3) {
        return e3.x = t3[0], ["H", t3[0]];
      }, V: function(t3, e3) {
        return e3.y = t3[0], ["V", t3[0]];
      }, C: function(t3, e3) {
        return e3.x = t3[4], e3.y = t3[5], ["C", t3[0], t3[1], t3[2], t3[3], t3[4], t3[5]];
      }, Q: function(t3, e3) {
        return e3.x = t3[2], e3.y = t3[3], ["Q", t3[0], t3[1], t3[2], t3[3]];
      }, S: function(t3, e3) {
        return e3.x = t3[2], e3.y = t3[3], ["S", t3[0], t3[1], t3[2], t3[3]];
      }, Z: function(t3, e3, i2) {
        return e3.x = i2.x, e3.y = i2.y, ["Z"];
      } }, r2 = "mlhvqtcsaz".split(""), o2 = 0, n2 = r2.length; o2 < n2; ++o2)
        s2[r2[o2]] = /* @__PURE__ */ function(t3) {
          return function(e3, i2, a3) {
            if ("H" == t3)
              e3[0] = e3[0] + i2.x;
            else if ("V" == t3)
              e3[0] = e3[0] + i2.y;
            else if ("A" == t3)
              e3[5] = e3[5] + i2.x, e3[6] = e3[6] + i2.y;
            else
              for (var r3 = 0, o3 = e3.length; r3 < o3; ++r3)
                e3[r3] = e3[r3] + (r3 % 2 ? i2.y : i2.x);
            if (s2 && "function" == typeof s2[t3])
              return s2[t3](e3, i2, a3);
          };
        }(r2[o2].toUpperCase());
      a2.PathArray = function(t3, e3) {
        a2.Array.call(this, t3, e3 || [["M", 0, 0]]);
      }, a2.PathArray.prototype = new a2.Array(), a2.PathArray.prototype.constructor = a2.PathArray, a2.extend(a2.PathArray, { toString: function() {
        return function(t3) {
          for (var e3 = 0, i2 = t3.length, a3 = ""; e3 < i2; e3++)
            a3 += t3[e3][0], null != t3[e3][1] && (a3 += t3[e3][1], null != t3[e3][2] && (a3 += " ", a3 += t3[e3][2], null != t3[e3][3] && (a3 += " ", a3 += t3[e3][3], a3 += " ", a3 += t3[e3][4], null != t3[e3][5] && (a3 += " ", a3 += t3[e3][5], a3 += " ", a3 += t3[e3][6], null != t3[e3][7] && (a3 += " ", a3 += t3[e3][7])))));
          return a3 + " ";
        }(this.value);
      }, move: function(t3, e3) {
        var i2 = this.bbox();
        return i2.x, i2.y, this;
      }, at: function(t3) {
        if (!this.destination)
          return this;
        for (var e3 = this.value, i2 = this.destination.value, s3 = [], r3 = new a2.PathArray(), o3 = 0, n3 = e3.length; o3 < n3; o3++) {
          s3[o3] = [e3[o3][0]];
          for (var l3 = 1, h3 = e3[o3].length; l3 < h3; l3++)
            s3[o3][l3] = e3[o3][l3] + (i2[o3][l3] - e3[o3][l3]) * t3;
          "A" === s3[o3][0] && (s3[o3][4] = +(0 != s3[o3][4]), s3[o3][5] = +(0 != s3[o3][5]));
        }
        return r3.value = s3, r3;
      }, parse: function(t3) {
        if (t3 instanceof a2.PathArray)
          return t3.valueOf();
        var e3, i2 = { M: 2, L: 2, H: 1, V: 1, C: 6, S: 4, Q: 4, T: 2, A: 7, Z: 0 };
        t3 = "string" == typeof t3 ? t3.replace(a2.regex.numbersWithDots, h2).replace(a2.regex.pathLetters, " $& ").replace(a2.regex.hyphen, "$1 -").trim().split(a2.regex.delimiter) : t3.reduce(function(t4, e4) {
          return [].concat.call(t4, e4);
        }, []);
        var r3 = [], o3 = new a2.Point(), n3 = new a2.Point(), l3 = 0, c3 = t3.length;
        do {
          a2.regex.isPathLetter.test(t3[l3]) ? (e3 = t3[l3], ++l3) : "M" == e3 ? e3 = "L" : "m" == e3 && (e3 = "l"), r3.push(s2[e3].call(null, t3.slice(l3, l3 += i2[e3.toUpperCase()]).map(parseFloat), o3, n3));
        } while (c3 > l3);
        return r3;
      }, bbox: function() {
        return a2.parser.draw || a2.prepare(), a2.parser.path.setAttribute("d", this.toString()), a2.parser.path.getBBox();
      } }), a2.Number = a2.invent({ create: function(t3, e3) {
        this.value = 0, this.unit = e3 || "", "number" == typeof t3 ? this.value = isNaN(t3) ? 0 : isFinite(t3) ? t3 : t3 < 0 ? -34e37 : 34e37 : "string" == typeof t3 ? (e3 = t3.match(a2.regex.numberAndUnit)) && (this.value = parseFloat(e3[1]), "%" == e3[5] ? this.value /= 100 : "s" == e3[5] && (this.value *= 1e3), this.unit = e3[5]) : t3 instanceof a2.Number && (this.value = t3.valueOf(), this.unit = t3.unit);
      }, extend: { toString: function() {
        return ("%" == this.unit ? ~~(1e8 * this.value) / 1e6 : "s" == this.unit ? this.value / 1e3 : this.value) + this.unit;
      }, toJSON: function() {
        return this.toString();
      }, valueOf: function() {
        return this.value;
      }, plus: function(t3) {
        return t3 = new a2.Number(t3), new a2.Number(this + t3, this.unit || t3.unit);
      }, minus: function(t3) {
        return t3 = new a2.Number(t3), new a2.Number(this - t3, this.unit || t3.unit);
      }, times: function(t3) {
        return t3 = new a2.Number(t3), new a2.Number(this * t3, this.unit || t3.unit);
      }, divide: function(t3) {
        return t3 = new a2.Number(t3), new a2.Number(this / t3, this.unit || t3.unit);
      }, to: function(t3) {
        var e3 = new a2.Number(this);
        return "string" == typeof t3 && (e3.unit = t3), e3;
      }, morph: function(t3) {
        return this.destination = new a2.Number(t3), t3.relative && (this.destination.value += this.value), this;
      }, at: function(t3) {
        return this.destination ? new a2.Number(this.destination).minus(this).times(t3).plus(this) : this;
      } } }), a2.Element = a2.invent({ create: function(t3) {
        this._stroke = a2.defaults.attrs.stroke, this._event = null, this.dom = {}, (this.node = t3) && (this.type = t3.nodeName, this.node.instance = this, this._stroke = t3.getAttribute("stroke") || this._stroke);
      }, extend: { x: function(t3) {
        return this.attr("x", t3);
      }, y: function(t3) {
        return this.attr("y", t3);
      }, cx: function(t3) {
        return null == t3 ? this.x() + this.width() / 2 : this.x(t3 - this.width() / 2);
      }, cy: function(t3) {
        return null == t3 ? this.y() + this.height() / 2 : this.y(t3 - this.height() / 2);
      }, move: function(t3, e3) {
        return this.x(t3).y(e3);
      }, center: function(t3, e3) {
        return this.cx(t3).cy(e3);
      }, width: function(t3) {
        return this.attr("width", t3);
      }, height: function(t3) {
        return this.attr("height", t3);
      }, size: function(t3, e3) {
        var i2 = u2(this, t3, e3);
        return this.width(new a2.Number(i2.width)).height(new a2.Number(i2.height));
      }, clone: function(t3) {
        this.writeDataToDom();
        var e3 = x2(this.node.cloneNode(true));
        return t3 ? t3.add(e3) : this.after(e3), e3;
      }, remove: function() {
        return this.parent() && this.parent().removeElement(this), this;
      }, replace: function(t3) {
        return this.after(t3).remove(), t3;
      }, addTo: function(t3) {
        return t3.put(this);
      }, putIn: function(t3) {
        return t3.add(this);
      }, id: function(t3) {
        return this.attr("id", t3);
      }, show: function() {
        return this.style("display", "");
      }, hide: function() {
        return this.style("display", "none");
      }, visible: function() {
        return "none" != this.style("display");
      }, toString: function() {
        return this.attr("id");
      }, classes: function() {
        var t3 = this.attr("class");
        return null == t3 ? [] : t3.trim().split(a2.regex.delimiter);
      }, hasClass: function(t3) {
        return -1 != this.classes().indexOf(t3);
      }, addClass: function(t3) {
        if (!this.hasClass(t3)) {
          var e3 = this.classes();
          e3.push(t3), this.attr("class", e3.join(" "));
        }
        return this;
      }, removeClass: function(t3) {
        return this.hasClass(t3) && this.attr("class", this.classes().filter(function(e3) {
          return e3 != t3;
        }).join(" ")), this;
      }, toggleClass: function(t3) {
        return this.hasClass(t3) ? this.removeClass(t3) : this.addClass(t3);
      }, reference: function(t3) {
        return a2.get(this.attr(t3));
      }, parent: function(e3) {
        var i2 = this;
        if (!i2.node.parentNode)
          return null;
        if (i2 = a2.adopt(i2.node.parentNode), !e3)
          return i2;
        for (; i2 && i2.node instanceof t2.SVGElement; ) {
          if ("string" == typeof e3 ? i2.matches(e3) : i2 instanceof e3)
            return i2;
          if (!i2.node.parentNode || "#document" == i2.node.parentNode.nodeName)
            return null;
          i2 = a2.adopt(i2.node.parentNode);
        }
      }, doc: function() {
        return this instanceof a2.Doc ? this : this.parent(a2.Doc);
      }, parents: function(t3) {
        var e3 = [], i2 = this;
        do {
          if (!(i2 = i2.parent(t3)) || !i2.node)
            break;
          e3.push(i2);
        } while (i2.parent);
        return e3;
      }, matches: function(t3) {
        return function(t4, e3) {
          return (t4.matches || t4.matchesSelector || t4.msMatchesSelector || t4.mozMatchesSelector || t4.webkitMatchesSelector || t4.oMatchesSelector).call(t4, e3);
        }(this.node, t3);
      }, native: function() {
        return this.node;
      }, svg: function(t3) {
        var i2 = e2.createElement("svg");
        if (!(t3 && this instanceof a2.Parent))
          return i2.appendChild(t3 = e2.createElement("svg")), this.writeDataToDom(), t3.appendChild(this.node.cloneNode(true)), i2.innerHTML.replace(/^<svg>/, "").replace(/<\/svg>$/, "");
        i2.innerHTML = "<svg>" + t3.replace(/\n/, "").replace(/<([\w:-]+)([^<]+?)\/>/g, "<$1$2></$1>") + "</svg>";
        for (var s3 = 0, r3 = i2.firstChild.childNodes.length; s3 < r3; s3++)
          this.node.appendChild(i2.firstChild.firstChild);
        return this;
      }, writeDataToDom: function() {
        return (this.each || this.lines) && (this.each ? this : this.lines()).each(function() {
          this.writeDataToDom();
        }), this.node.removeAttribute("svgjs:data"), Object.keys(this.dom).length && this.node.setAttribute("svgjs:data", JSON.stringify(this.dom)), this;
      }, setData: function(t3) {
        return this.dom = t3, this;
      }, is: function(t3) {
        return function(t4, e3) {
          return t4 instanceof e3;
        }(this, t3);
      } } }), a2.easing = { "-": function(t3) {
        return t3;
      }, "<>": function(t3) {
        return -Math.cos(t3 * Math.PI) / 2 + 0.5;
      }, ">": function(t3) {
        return Math.sin(t3 * Math.PI / 2);
      }, "<": function(t3) {
        return 1 - Math.cos(t3 * Math.PI / 2);
      } }, a2.morph = function(t3) {
        return function(e3, i2) {
          return new a2.MorphObj(e3, i2).at(t3);
        };
      }, a2.Situation = a2.invent({ create: function(t3) {
        this.init = false, this.reversed = false, this.reversing = false, this.duration = new a2.Number(t3.duration).valueOf(), this.delay = new a2.Number(t3.delay).valueOf(), this.start = +/* @__PURE__ */ new Date() + this.delay, this.finish = this.start + this.duration, this.ease = t3.ease, this.loop = 0, this.loops = false, this.animations = {}, this.attrs = {}, this.styles = {}, this.transforms = [], this.once = {};
      } }), a2.FX = a2.invent({ create: function(t3) {
        this._target = t3, this.situations = [], this.active = false, this.situation = null, this.paused = false, this.lastPos = 0, this.pos = 0, this.absPos = 0, this._speed = 1;
      }, extend: { animate: function(t3, e3, s3) {
        "object" === i(t3) && (e3 = t3.ease, s3 = t3.delay, t3 = t3.duration);
        var r3 = new a2.Situation({ duration: t3 || 1e3, delay: s3 || 0, ease: a2.easing[e3 || "-"] || e3 });
        return this.queue(r3), this;
      }, target: function(t3) {
        return t3 && t3 instanceof a2.Element ? (this._target = t3, this) : this._target;
      }, timeToAbsPos: function(t3) {
        return (t3 - this.situation.start) / (this.situation.duration / this._speed);
      }, absPosToTime: function(t3) {
        return this.situation.duration / this._speed * t3 + this.situation.start;
      }, startAnimFrame: function() {
        this.stopAnimFrame(), this.animationFrame = t2.requestAnimationFrame((function() {
          this.step();
        }).bind(this));
      }, stopAnimFrame: function() {
        t2.cancelAnimationFrame(this.animationFrame);
      }, start: function() {
        return !this.active && this.situation && (this.active = true, this.startCurrent()), this;
      }, startCurrent: function() {
        return this.situation.start = +/* @__PURE__ */ new Date() + this.situation.delay / this._speed, this.situation.finish = this.situation.start + this.situation.duration / this._speed, this.initAnimations().step();
      }, queue: function(t3) {
        return ("function" == typeof t3 || t3 instanceof a2.Situation) && this.situations.push(t3), this.situation || (this.situation = this.situations.shift()), this;
      }, dequeue: function() {
        return this.stop(), this.situation = this.situations.shift(), this.situation && (this.situation instanceof a2.Situation ? this.start() : this.situation.call(this)), this;
      }, initAnimations: function() {
        var t3, e3 = this.situation;
        if (e3.init)
          return this;
        for (var i2 in e3.animations) {
          t3 = this.target()[i2](), Array.isArray(t3) || (t3 = [t3]), Array.isArray(e3.animations[i2]) || (e3.animations[i2] = [e3.animations[i2]]);
          for (var s3 = t3.length; s3--; )
            e3.animations[i2][s3] instanceof a2.Number && (t3[s3] = new a2.Number(t3[s3])), e3.animations[i2][s3] = t3[s3].morph(e3.animations[i2][s3]);
        }
        for (var i2 in e3.attrs)
          e3.attrs[i2] = new a2.MorphObj(this.target().attr(i2), e3.attrs[i2]);
        for (var i2 in e3.styles)
          e3.styles[i2] = new a2.MorphObj(this.target().style(i2), e3.styles[i2]);
        return e3.initialTransformation = this.target().matrixify(), e3.init = true, this;
      }, clearQueue: function() {
        return this.situations = [], this;
      }, clearCurrent: function() {
        return this.situation = null, this;
      }, stop: function(t3, e3) {
        var i2 = this.active;
        return this.active = false, e3 && this.clearQueue(), t3 && this.situation && (!i2 && this.startCurrent(), this.atEnd()), this.stopAnimFrame(), this.clearCurrent();
      }, after: function(t3) {
        var e3 = this.last();
        return this.target().on("finished.fx", function i2(a3) {
          a3.detail.situation == e3 && (t3.call(this, e3), this.off("finished.fx", i2));
        }), this._callStart();
      }, during: function(t3) {
        var e3 = this.last(), i2 = function(i3) {
          i3.detail.situation == e3 && t3.call(this, i3.detail.pos, a2.morph(i3.detail.pos), i3.detail.eased, e3);
        };
        return this.target().off("during.fx", i2).on("during.fx", i2), this.after(function() {
          this.off("during.fx", i2);
        }), this._callStart();
      }, afterAll: function(t3) {
        var e3 = function e4(i2) {
          t3.call(this), this.off("allfinished.fx", e4);
        };
        return this.target().off("allfinished.fx", e3).on("allfinished.fx", e3), this._callStart();
      }, last: function() {
        return this.situations.length ? this.situations[this.situations.length - 1] : this.situation;
      }, add: function(t3, e3, i2) {
        return this.last()[i2 || "animations"][t3] = e3, this._callStart();
      }, step: function(t3) {
        var e3, i2, a3;
        t3 || (this.absPos = this.timeToAbsPos(+/* @__PURE__ */ new Date())), false !== this.situation.loops ? (e3 = Math.max(this.absPos, 0), i2 = Math.floor(e3), true === this.situation.loops || i2 < this.situation.loops ? (this.pos = e3 - i2, a3 = this.situation.loop, this.situation.loop = i2) : (this.absPos = this.situation.loops, this.pos = 1, a3 = this.situation.loop - 1, this.situation.loop = this.situation.loops), this.situation.reversing && (this.situation.reversed = this.situation.reversed != Boolean((this.situation.loop - a3) % 2))) : (this.absPos = Math.min(this.absPos, 1), this.pos = this.absPos), this.pos < 0 && (this.pos = 0), this.situation.reversed && (this.pos = 1 - this.pos);
        var s3 = this.situation.ease(this.pos);
        for (var r3 in this.situation.once)
          r3 > this.lastPos && r3 <= s3 && (this.situation.once[r3].call(this.target(), this.pos, s3), delete this.situation.once[r3]);
        return this.active && this.target().fire("during", { pos: this.pos, eased: s3, fx: this, situation: this.situation }), this.situation ? (this.eachAt(), 1 == this.pos && !this.situation.reversed || this.situation.reversed && 0 == this.pos ? (this.stopAnimFrame(), this.target().fire("finished", { fx: this, situation: this.situation }), this.situations.length || (this.target().fire("allfinished"), this.situations.length || (this.target().off(".fx"), this.active = false)), this.active ? this.dequeue() : this.clearCurrent()) : !this.paused && this.active && this.startAnimFrame(), this.lastPos = s3, this) : this;
      }, eachAt: function() {
        var t3, e3 = this, i2 = this.target(), s3 = this.situation;
        for (var r3 in s3.animations)
          t3 = [].concat(s3.animations[r3]).map(function(t4) {
            return "string" != typeof t4 && t4.at ? t4.at(s3.ease(e3.pos), e3.pos) : t4;
          }), i2[r3].apply(i2, t3);
        for (var r3 in s3.attrs)
          t3 = [r3].concat(s3.attrs[r3]).map(function(t4) {
            return "string" != typeof t4 && t4.at ? t4.at(s3.ease(e3.pos), e3.pos) : t4;
          }), i2.attr.apply(i2, t3);
        for (var r3 in s3.styles)
          t3 = [r3].concat(s3.styles[r3]).map(function(t4) {
            return "string" != typeof t4 && t4.at ? t4.at(s3.ease(e3.pos), e3.pos) : t4;
          }), i2.style.apply(i2, t3);
        if (s3.transforms.length) {
          t3 = s3.initialTransformation, r3 = 0;
          for (var o3 = s3.transforms.length; r3 < o3; r3++) {
            var n3 = s3.transforms[r3];
            n3 instanceof a2.Matrix ? t3 = n3.relative ? t3.multiply(new a2.Matrix().morph(n3).at(s3.ease(this.pos))) : t3.morph(n3).at(s3.ease(this.pos)) : (n3.relative || n3.undo(t3.extract()), t3 = t3.multiply(n3.at(s3.ease(this.pos))));
          }
          i2.matrix(t3);
        }
        return this;
      }, once: function(t3, e3, i2) {
        var a3 = this.last();
        return i2 || (t3 = a3.ease(t3)), a3.once[t3] = e3, this;
      }, _callStart: function() {
        return setTimeout((function() {
          this.start();
        }).bind(this), 0), this;
      } }, parent: a2.Element, construct: { animate: function(t3, e3, i2) {
        return (this.fx || (this.fx = new a2.FX(this))).animate(t3, e3, i2);
      }, delay: function(t3) {
        return (this.fx || (this.fx = new a2.FX(this))).delay(t3);
      }, stop: function(t3, e3) {
        return this.fx && this.fx.stop(t3, e3), this;
      }, finish: function() {
        return this.fx && this.fx.finish(), this;
      } } }), a2.MorphObj = a2.invent({ create: function(t3, e3) {
        return a2.Color.isColor(e3) ? new a2.Color(t3).morph(e3) : a2.regex.delimiter.test(t3) ? a2.regex.pathLetters.test(t3) ? new a2.PathArray(t3).morph(e3) : new a2.Array(t3).morph(e3) : a2.regex.numberAndUnit.test(e3) ? new a2.Number(t3).morph(e3) : (this.value = t3, void (this.destination = e3));
      }, extend: { at: function(t3, e3) {
        return e3 < 1 ? this.value : this.destination;
      }, valueOf: function() {
        return this.value;
      } } }), a2.extend(a2.FX, { attr: function(t3, e3, a3) {
        if ("object" === i(t3))
          for (var s3 in t3)
            this.attr(s3, t3[s3]);
        else
          this.add(t3, e3, "attrs");
        return this;
      }, plot: function(t3, e3, i2, a3) {
        return 4 == arguments.length ? this.plot([t3, e3, i2, a3]) : this.add("plot", new (this.target()).morphArray(t3));
      } }), a2.Box = a2.invent({ create: function(t3, e3, s3, r3) {
        if (!("object" !== i(t3) || t3 instanceof a2.Element))
          return a2.Box.call(this, null != t3.left ? t3.left : t3.x, null != t3.top ? t3.top : t3.y, t3.width, t3.height);
        var o3;
        4 == arguments.length && (this.x = t3, this.y = e3, this.width = s3, this.height = r3), null == (o3 = this).x && (o3.x = 0, o3.y = 0, o3.width = 0, o3.height = 0), o3.w = o3.width, o3.h = o3.height, o3.x2 = o3.x + o3.width, o3.y2 = o3.y + o3.height, o3.cx = o3.x + o3.width / 2, o3.cy = o3.y + o3.height / 2;
      } }), a2.BBox = a2.invent({ create: function(t3) {
        if (a2.Box.apply(this, [].slice.call(arguments)), t3 instanceof a2.Element) {
          var i2;
          try {
            if (!e2.documentElement.contains) {
              for (var s3 = t3.node; s3.parentNode; )
                s3 = s3.parentNode;
              if (s3 != e2)
                throw new Error("Element not in the dom");
            }
            i2 = t3.node.getBBox();
          } catch (e3) {
            if (t3 instanceof a2.Shape) {
              a2.parser.draw || a2.prepare();
              var r3 = t3.clone(a2.parser.draw.instance).show();
              r3 && r3.node && "function" == typeof r3.node.getBBox && (i2 = r3.node.getBBox()), r3 && "function" == typeof r3.remove && r3.remove();
            } else
              i2 = { x: t3.node.clientLeft, y: t3.node.clientTop, width: t3.node.clientWidth, height: t3.node.clientHeight };
          }
          a2.Box.call(this, i2);
        }
      }, inherit: a2.Box, parent: a2.Element, construct: { bbox: function() {
        return new a2.BBox(this);
      } } }), a2.BBox.prototype.constructor = a2.BBox, a2.Matrix = a2.invent({ create: function(t3) {
        var e3 = f2([1, 0, 0, 1, 0, 0]);
        t3 = null === t3 ? e3 : t3 instanceof a2.Element ? t3.matrixify() : "string" == typeof t3 ? f2(t3.split(a2.regex.delimiter).map(parseFloat)) : 6 == arguments.length ? f2([].slice.call(arguments)) : Array.isArray(t3) ? f2(t3) : t3 && "object" === i(t3) ? t3 : e3;
        for (var s3 = v2.length - 1; s3 >= 0; --s3)
          this[v2[s3]] = null != t3[v2[s3]] ? t3[v2[s3]] : e3[v2[s3]];
      }, extend: { extract: function() {
        var t3 = p2(this, 0, 1);
        p2(this, 1, 0);
        var e3 = 180 / Math.PI * Math.atan2(t3.y, t3.x) - 90;
        return { x: this.e, y: this.f, transformedX: (this.e * Math.cos(e3 * Math.PI / 180) + this.f * Math.sin(e3 * Math.PI / 180)) / Math.sqrt(this.a * this.a + this.b * this.b), transformedY: (this.f * Math.cos(e3 * Math.PI / 180) + this.e * Math.sin(-e3 * Math.PI / 180)) / Math.sqrt(this.c * this.c + this.d * this.d), rotation: e3, a: this.a, b: this.b, c: this.c, d: this.d, e: this.e, f: this.f, matrix: new a2.Matrix(this) };
      }, clone: function() {
        return new a2.Matrix(this);
      }, morph: function(t3) {
        return this.destination = new a2.Matrix(t3), this;
      }, multiply: function(t3) {
        return new a2.Matrix(this.native().multiply(function(t4) {
          return t4 instanceof a2.Matrix || (t4 = new a2.Matrix(t4)), t4;
        }(t3).native()));
      }, inverse: function() {
        return new a2.Matrix(this.native().inverse());
      }, translate: function(t3, e3) {
        return new a2.Matrix(this.native().translate(t3 || 0, e3 || 0));
      }, native: function() {
        for (var t3 = a2.parser.native.createSVGMatrix(), e3 = v2.length - 1; e3 >= 0; e3--)
          t3[v2[e3]] = this[v2[e3]];
        return t3;
      }, toString: function() {
        return "matrix(" + b2(this.a) + "," + b2(this.b) + "," + b2(this.c) + "," + b2(this.d) + "," + b2(this.e) + "," + b2(this.f) + ")";
      } }, parent: a2.Element, construct: { ctm: function() {
        return new a2.Matrix(this.node.getCTM());
      }, screenCTM: function() {
        if (this instanceof a2.Nested) {
          var t3 = this.rect(1, 1), e3 = t3.node.getScreenCTM();
          return t3.remove(), new a2.Matrix(e3);
        }
        return new a2.Matrix(this.node.getScreenCTM());
      } } }), a2.Point = a2.invent({ create: function(t3, e3) {
        var a3;
        a3 = Array.isArray(t3) ? { x: t3[0], y: t3[1] } : "object" === i(t3) ? { x: t3.x, y: t3.y } : null != t3 ? { x: t3, y: null != e3 ? e3 : t3 } : { x: 0, y: 0 }, this.x = a3.x, this.y = a3.y;
      }, extend: { clone: function() {
        return new a2.Point(this);
      }, morph: function(t3, e3) {
        return this.destination = new a2.Point(t3, e3), this;
      } } }), a2.extend(a2.Element, { point: function(t3, e3) {
        return new a2.Point(t3, e3).transform(this.screenCTM().inverse());
      } }), a2.extend(a2.Element, { attr: function(t3, e3, s3) {
        if (null == t3) {
          for (t3 = {}, s3 = (e3 = this.node.attributes).length - 1; s3 >= 0; s3--)
            t3[e3[s3].nodeName] = a2.regex.isNumber.test(e3[s3].nodeValue) ? parseFloat(e3[s3].nodeValue) : e3[s3].nodeValue;
          return t3;
        }
        if ("object" === i(t3))
          for (var r3 in t3)
            this.attr(r3, t3[r3]);
        else if (null === e3)
          this.node.removeAttribute(t3);
        else {
          if (null == e3)
            return null == (e3 = this.node.getAttribute(t3)) ? a2.defaults.attrs[t3] : a2.regex.isNumber.test(e3) ? parseFloat(e3) : e3;
          "stroke-width" == t3 ? this.attr("stroke", parseFloat(e3) > 0 ? this._stroke : null) : "stroke" == t3 && (this._stroke = e3), "fill" != t3 && "stroke" != t3 || (a2.regex.isImage.test(e3) && (e3 = this.doc().defs().image(e3, 0, 0)), e3 instanceof a2.Image && (e3 = this.doc().defs().pattern(0, 0, function() {
            this.add(e3);
          }))), "number" == typeof e3 ? e3 = new a2.Number(e3) : a2.Color.isColor(e3) ? e3 = new a2.Color(e3) : Array.isArray(e3) && (e3 = new a2.Array(e3)), "leading" == t3 ? this.leading && this.leading(e3) : "string" == typeof s3 ? this.node.setAttributeNS(s3, t3, e3.toString()) : this.node.setAttribute(t3, e3.toString()), !this.rebuild || "font-size" != t3 && "x" != t3 || this.rebuild(t3, e3);
        }
        return this;
      } }), a2.extend(a2.Element, { transform: function(t3, e3) {
        var s3;
        return "object" !== i(t3) ? (s3 = new a2.Matrix(this).extract(), "string" == typeof t3 ? s3[t3] : s3) : (s3 = new a2.Matrix(this), e3 = !!e3 || !!t3.relative, null != t3.a && (s3 = e3 ? s3.multiply(new a2.Matrix(t3)) : new a2.Matrix(t3)), this.attr("transform", s3));
      } }), a2.extend(a2.Element, { untransform: function() {
        return this.attr("transform", null);
      }, matrixify: function() {
        return (this.attr("transform") || "").split(a2.regex.transforms).slice(0, -1).map(function(t3) {
          var e3 = t3.trim().split("(");
          return [e3[0], e3[1].split(a2.regex.delimiter).map(function(t4) {
            return parseFloat(t4);
          })];
        }).reduce(function(t3, e3) {
          return "matrix" == e3[0] ? t3.multiply(f2(e3[1])) : t3[e3[0]].apply(t3, e3[1]);
        }, new a2.Matrix());
      }, toParent: function(t3) {
        if (this == t3)
          return this;
        var e3 = this.screenCTM(), i2 = t3.screenCTM().inverse();
        return this.addTo(t3).untransform().transform(i2.multiply(e3)), this;
      }, toDoc: function() {
        return this.toParent(this.doc());
      } }), a2.Transformation = a2.invent({ create: function(t3, e3) {
        if (arguments.length > 1 && "boolean" != typeof e3)
          return this.constructor.call(this, [].slice.call(arguments));
        if (Array.isArray(t3))
          for (var a3 = 0, s3 = this.arguments.length; a3 < s3; ++a3)
            this[this.arguments[a3]] = t3[a3];
        else if (t3 && "object" === i(t3))
          for (a3 = 0, s3 = this.arguments.length; a3 < s3; ++a3)
            this[this.arguments[a3]] = t3[this.arguments[a3]];
        this.inversed = false, true === e3 && (this.inversed = true);
      } }), a2.Translate = a2.invent({ parent: a2.Matrix, inherit: a2.Transformation, create: function(t3, e3) {
        this.constructor.apply(this, [].slice.call(arguments));
      }, extend: { arguments: ["transformedX", "transformedY"], method: "translate" } }), a2.extend(a2.Element, { style: function(t3, e3) {
        if (0 == arguments.length)
          return this.node.style.cssText || "";
        if (arguments.length < 2)
          if ("object" === i(t3))
            for (var s3 in t3)
              this.style(s3, t3[s3]);
          else {
            if (!a2.regex.isCss.test(t3))
              return this.node.style[c2(t3)];
            for (t3 = t3.split(/\s*;\s*/).filter(function(t4) {
              return !!t4;
            }).map(function(t4) {
              return t4.split(/\s*:\s*/);
            }); e3 = t3.pop(); )
              this.style(e3[0], e3[1]);
          }
        else
          this.node.style[c2(t3)] = null === e3 || a2.regex.isBlank.test(e3) ? "" : e3;
        return this;
      } }), a2.Parent = a2.invent({ create: function(t3) {
        this.constructor.call(this, t3);
      }, inherit: a2.Element, extend: { children: function() {
        return a2.utils.map(a2.utils.filterSVGElements(this.node.childNodes), function(t3) {
          return a2.adopt(t3);
        });
      }, add: function(t3, e3) {
        return null == e3 ? this.node.appendChild(t3.node) : t3.node != this.node.childNodes[e3] && this.node.insertBefore(t3.node, this.node.childNodes[e3]), this;
      }, put: function(t3, e3) {
        return this.add(t3, e3), t3;
      }, has: function(t3) {
        return this.index(t3) >= 0;
      }, index: function(t3) {
        return [].slice.call(this.node.childNodes).indexOf(t3.node);
      }, get: function(t3) {
        return a2.adopt(this.node.childNodes[t3]);
      }, first: function() {
        return this.get(0);
      }, last: function() {
        return this.get(this.node.childNodes.length - 1);
      }, each: function(t3, e3) {
        for (var i2 = this.children(), s3 = 0, r3 = i2.length; s3 < r3; s3++)
          i2[s3] instanceof a2.Element && t3.apply(i2[s3], [s3, i2]), e3 && i2[s3] instanceof a2.Container && i2[s3].each(t3, e3);
        return this;
      }, removeElement: function(t3) {
        return this.node.removeChild(t3.node), this;
      }, clear: function() {
        for (; this.node.hasChildNodes(); )
          this.node.removeChild(this.node.lastChild);
        return delete this._defs, this;
      }, defs: function() {
        return this.doc().defs();
      } } }), a2.extend(a2.Parent, { ungroup: function(t3, e3) {
        return 0 === e3 || this instanceof a2.Defs || this.node == a2.parser.draw || (t3 = t3 || (this instanceof a2.Doc ? this : this.parent(a2.Parent)), e3 = e3 || 1 / 0, this.each(function() {
          return this instanceof a2.Defs ? this : this instanceof a2.Parent ? this.ungroup(t3, e3 - 1) : this.toParent(t3);
        }), this.node.firstChild || this.remove()), this;
      }, flatten: function(t3, e3) {
        return this.ungroup(t3, e3);
      } }), a2.Container = a2.invent({ create: function(t3) {
        this.constructor.call(this, t3);
      }, inherit: a2.Parent }), a2.ViewBox = a2.invent({ parent: a2.Container, construct: {} }), ["click", "dblclick", "mousedown", "mouseup", "mouseover", "mouseout", "mousemove", "touchstart", "touchmove", "touchleave", "touchend", "touchcancel"].forEach(function(t3) {
        a2.Element.prototype[t3] = function(e3) {
          return a2.on(this.node, t3, e3), this;
        };
      }), a2.listeners = [], a2.handlerMap = [], a2.listenerId = 0, a2.on = function(t3, e3, i2, s3, r3) {
        var o3 = i2.bind(s3 || t3.instance || t3), n3 = (a2.handlerMap.indexOf(t3) + 1 || a2.handlerMap.push(t3)) - 1, l3 = e3.split(".")[0], h3 = e3.split(".")[1] || "*";
        a2.listeners[n3] = a2.listeners[n3] || {}, a2.listeners[n3][l3] = a2.listeners[n3][l3] || {}, a2.listeners[n3][l3][h3] = a2.listeners[n3][l3][h3] || {}, i2._svgjsListenerId || (i2._svgjsListenerId = ++a2.listenerId), a2.listeners[n3][l3][h3][i2._svgjsListenerId] = o3, t3.addEventListener(l3, o3, r3 || { passive: true });
      }, a2.off = function(t3, e3, i2) {
        var s3 = a2.handlerMap.indexOf(t3), r3 = e3 && e3.split(".")[0], o3 = e3 && e3.split(".")[1], n3 = "";
        if (-1 != s3)
          if (i2) {
            if ("function" == typeof i2 && (i2 = i2._svgjsListenerId), !i2)
              return;
            a2.listeners[s3][r3] && a2.listeners[s3][r3][o3 || "*"] && (t3.removeEventListener(r3, a2.listeners[s3][r3][o3 || "*"][i2], false), delete a2.listeners[s3][r3][o3 || "*"][i2]);
          } else if (o3 && r3) {
            if (a2.listeners[s3][r3] && a2.listeners[s3][r3][o3]) {
              for (var l3 in a2.listeners[s3][r3][o3])
                a2.off(t3, [r3, o3].join("."), l3);
              delete a2.listeners[s3][r3][o3];
            }
          } else if (o3)
            for (var h3 in a2.listeners[s3])
              for (var n3 in a2.listeners[s3][h3])
                o3 === n3 && a2.off(t3, [h3, o3].join("."));
          else if (r3) {
            if (a2.listeners[s3][r3]) {
              for (var n3 in a2.listeners[s3][r3])
                a2.off(t3, [r3, n3].join("."));
              delete a2.listeners[s3][r3];
            }
          } else {
            for (var h3 in a2.listeners[s3])
              a2.off(t3, h3);
            delete a2.listeners[s3], delete a2.handlerMap[s3];
          }
      }, a2.extend(a2.Element, { on: function(t3, e3, i2, s3) {
        return a2.on(this.node, t3, e3, i2, s3), this;
      }, off: function(t3, e3) {
        return a2.off(this.node, t3, e3), this;
      }, fire: function(e3, i2) {
        return e3 instanceof t2.Event ? this.node.dispatchEvent(e3) : this.node.dispatchEvent(e3 = new a2.CustomEvent(e3, { detail: i2, cancelable: true })), this._event = e3, this;
      }, event: function() {
        return this._event;
      } }), a2.Defs = a2.invent({ create: "defs", inherit: a2.Container }), a2.G = a2.invent({ create: "g", inherit: a2.Container, extend: { x: function(t3) {
        return null == t3 ? this.transform("x") : this.transform({ x: t3 - this.x() }, true);
      } }, construct: { group: function() {
        return this.put(new a2.G());
      } } }), a2.Doc = a2.invent({ create: function(t3) {
        t3 && ("svg" == (t3 = "string" == typeof t3 ? e2.getElementById(t3) : t3).nodeName ? this.constructor.call(this, t3) : (this.constructor.call(this, a2.create("svg")), t3.appendChild(this.node), this.size("100%", "100%")), this.namespace().defs());
      }, inherit: a2.Container, extend: { namespace: function() {
        return this.attr({ xmlns: a2.ns, version: "1.1" }).attr("xmlns:xlink", a2.xlink, a2.xmlns).attr("xmlns:svgjs", a2.svgjs, a2.xmlns);
      }, defs: function() {
        var t3;
        return this._defs || ((t3 = this.node.getElementsByTagName("defs")[0]) ? this._defs = a2.adopt(t3) : this._defs = new a2.Defs(), this.node.appendChild(this._defs.node)), this._defs;
      }, parent: function() {
        return this.node.parentNode && "#document" != this.node.parentNode.nodeName ? this.node.parentNode : null;
      }, remove: function() {
        return this.parent() && this.parent().removeChild(this.node), this;
      }, clear: function() {
        for (; this.node.hasChildNodes(); )
          this.node.removeChild(this.node.lastChild);
        return delete this._defs, a2.parser.draw && !a2.parser.draw.parentNode && this.node.appendChild(a2.parser.draw), this;
      }, clone: function(t3) {
        this.writeDataToDom();
        var e3 = this.node, i2 = x2(e3.cloneNode(true));
        return t3 ? (t3.node || t3).appendChild(i2.node) : e3.parentNode.insertBefore(i2.node, e3.nextSibling), i2;
      } } }), a2.extend(a2.Element, {}), a2.Gradient = a2.invent({ create: function(t3) {
        this.constructor.call(this, a2.create(t3 + "Gradient")), this.type = t3;
      }, inherit: a2.Container, extend: { at: function(t3, e3, i2) {
        return this.put(new a2.Stop()).update(t3, e3, i2);
      }, update: function(t3) {
        return this.clear(), "function" == typeof t3 && t3.call(this, this), this;
      }, fill: function() {
        return "url(#" + this.id() + ")";
      }, toString: function() {
        return this.fill();
      }, attr: function(t3, e3, i2) {
        return "transform" == t3 && (t3 = "gradientTransform"), a2.Container.prototype.attr.call(this, t3, e3, i2);
      } }, construct: { gradient: function(t3, e3) {
        return this.defs().gradient(t3, e3);
      } } }), a2.extend(a2.Gradient, a2.FX, { from: function(t3, e3) {
        return "radial" == (this._target || this).type ? this.attr({ fx: new a2.Number(t3), fy: new a2.Number(e3) }) : this.attr({ x1: new a2.Number(t3), y1: new a2.Number(e3) });
      }, to: function(t3, e3) {
        return "radial" == (this._target || this).type ? this.attr({ cx: new a2.Number(t3), cy: new a2.Number(e3) }) : this.attr({ x2: new a2.Number(t3), y2: new a2.Number(e3) });
      } }), a2.extend(a2.Defs, { gradient: function(t3, e3) {
        return this.put(new a2.Gradient(t3)).update(e3);
      } }), a2.Stop = a2.invent({ create: "stop", inherit: a2.Element, extend: { update: function(t3) {
        return ("number" == typeof t3 || t3 instanceof a2.Number) && (t3 = { offset: arguments[0], color: arguments[1], opacity: arguments[2] }), null != t3.opacity && this.attr("stop-opacity", t3.opacity), null != t3.color && this.attr("stop-color", t3.color), null != t3.offset && this.attr("offset", new a2.Number(t3.offset)), this;
      } } }), a2.Pattern = a2.invent({ create: "pattern", inherit: a2.Container, extend: { fill: function() {
        return "url(#" + this.id() + ")";
      }, update: function(t3) {
        return this.clear(), "function" == typeof t3 && t3.call(this, this), this;
      }, toString: function() {
        return this.fill();
      }, attr: function(t3, e3, i2) {
        return "transform" == t3 && (t3 = "patternTransform"), a2.Container.prototype.attr.call(this, t3, e3, i2);
      } }, construct: { pattern: function(t3, e3, i2) {
        return this.defs().pattern(t3, e3, i2);
      } } }), a2.extend(a2.Defs, { pattern: function(t3, e3, i2) {
        return this.put(new a2.Pattern()).update(i2).attr({ x: 0, y: 0, width: t3, height: e3, patternUnits: "userSpaceOnUse" });
      } }), a2.Shape = a2.invent({ create: function(t3) {
        this.constructor.call(this, t3);
      }, inherit: a2.Element }), a2.Symbol = a2.invent({ create: "symbol", inherit: a2.Container, construct: { symbol: function() {
        return this.put(new a2.Symbol());
      } } }), a2.Use = a2.invent({ create: "use", inherit: a2.Shape, extend: { element: function(t3, e3) {
        return this.attr("href", (e3 || "") + "#" + t3, a2.xlink);
      } }, construct: { use: function(t3, e3) {
        return this.put(new a2.Use()).element(t3, e3);
      } } }), a2.Rect = a2.invent({ create: "rect", inherit: a2.Shape, construct: { rect: function(t3, e3) {
        return this.put(new a2.Rect()).size(t3, e3);
      } } }), a2.Circle = a2.invent({ create: "circle", inherit: a2.Shape, construct: { circle: function(t3) {
        return this.put(new a2.Circle()).rx(new a2.Number(t3).divide(2)).move(0, 0);
      } } }), a2.extend(a2.Circle, a2.FX, { rx: function(t3) {
        return this.attr("r", t3);
      }, ry: function(t3) {
        return this.rx(t3);
      } }), a2.Ellipse = a2.invent({ create: "ellipse", inherit: a2.Shape, construct: { ellipse: function(t3, e3) {
        return this.put(new a2.Ellipse()).size(t3, e3).move(0, 0);
      } } }), a2.extend(a2.Ellipse, a2.Rect, a2.FX, { rx: function(t3) {
        return this.attr("rx", t3);
      }, ry: function(t3) {
        return this.attr("ry", t3);
      } }), a2.extend(a2.Circle, a2.Ellipse, { x: function(t3) {
        return null == t3 ? this.cx() - this.rx() : this.cx(t3 + this.rx());
      }, y: function(t3) {
        return null == t3 ? this.cy() - this.ry() : this.cy(t3 + this.ry());
      }, cx: function(t3) {
        return null == t3 ? this.attr("cx") : this.attr("cx", t3);
      }, cy: function(t3) {
        return null == t3 ? this.attr("cy") : this.attr("cy", t3);
      }, width: function(t3) {
        return null == t3 ? 2 * this.rx() : this.rx(new a2.Number(t3).divide(2));
      }, height: function(t3) {
        return null == t3 ? 2 * this.ry() : this.ry(new a2.Number(t3).divide(2));
      }, size: function(t3, e3) {
        var i2 = u2(this, t3, e3);
        return this.rx(new a2.Number(i2.width).divide(2)).ry(new a2.Number(i2.height).divide(2));
      } }), a2.Line = a2.invent({ create: "line", inherit: a2.Shape, extend: { array: function() {
        return new a2.PointArray([[this.attr("x1"), this.attr("y1")], [this.attr("x2"), this.attr("y2")]]);
      }, plot: function(t3, e3, i2, s3) {
        return null == t3 ? this.array() : (t3 = void 0 !== e3 ? { x1: t3, y1: e3, x2: i2, y2: s3 } : new a2.PointArray(t3).toLine(), this.attr(t3));
      }, move: function(t3, e3) {
        return this.attr(this.array().move(t3, e3).toLine());
      }, size: function(t3, e3) {
        var i2 = u2(this, t3, e3);
        return this.attr(this.array().size(i2.width, i2.height).toLine());
      } }, construct: { line: function(t3, e3, i2, s3) {
        return a2.Line.prototype.plot.apply(this.put(new a2.Line()), null != t3 ? [t3, e3, i2, s3] : [0, 0, 0, 0]);
      } } }), a2.Polyline = a2.invent({ create: "polyline", inherit: a2.Shape, construct: { polyline: function(t3) {
        return this.put(new a2.Polyline()).plot(t3 || new a2.PointArray());
      } } }), a2.Polygon = a2.invent({ create: "polygon", inherit: a2.Shape, construct: { polygon: function(t3) {
        return this.put(new a2.Polygon()).plot(t3 || new a2.PointArray());
      } } }), a2.extend(a2.Polyline, a2.Polygon, { array: function() {
        return this._array || (this._array = new a2.PointArray(this.attr("points")));
      }, plot: function(t3) {
        return null == t3 ? this.array() : this.clear().attr("points", "string" == typeof t3 ? t3 : this._array = new a2.PointArray(t3));
      }, clear: function() {
        return delete this._array, this;
      }, move: function(t3, e3) {
        return this.attr("points", this.array().move(t3, e3));
      }, size: function(t3, e3) {
        var i2 = u2(this, t3, e3);
        return this.attr("points", this.array().size(i2.width, i2.height));
      } }), a2.extend(a2.Line, a2.Polyline, a2.Polygon, { morphArray: a2.PointArray, x: function(t3) {
        return null == t3 ? this.bbox().x : this.move(t3, this.bbox().y);
      }, y: function(t3) {
        return null == t3 ? this.bbox().y : this.move(this.bbox().x, t3);
      }, width: function(t3) {
        var e3 = this.bbox();
        return null == t3 ? e3.width : this.size(t3, e3.height);
      }, height: function(t3) {
        var e3 = this.bbox();
        return null == t3 ? e3.height : this.size(e3.width, t3);
      } }), a2.Path = a2.invent({ create: "path", inherit: a2.Shape, extend: { morphArray: a2.PathArray, array: function() {
        return this._array || (this._array = new a2.PathArray(this.attr("d")));
      }, plot: function(t3) {
        return null == t3 ? this.array() : this.clear().attr("d", "string" == typeof t3 ? t3 : this._array = new a2.PathArray(t3));
      }, clear: function() {
        return delete this._array, this;
      } }, construct: { path: function(t3) {
        return this.put(new a2.Path()).plot(t3 || new a2.PathArray());
      } } }), a2.Image = a2.invent({ create: "image", inherit: a2.Shape, extend: { load: function(e3) {
        if (!e3)
          return this;
        var i2 = this, s3 = new t2.Image();
        return a2.on(s3, "load", function() {
          a2.off(s3);
          var t3 = i2.parent(a2.Pattern);
          null !== t3 && (0 == i2.width() && 0 == i2.height() && i2.size(s3.width, s3.height), t3 && 0 == t3.width() && 0 == t3.height() && t3.size(i2.width(), i2.height()), "function" == typeof i2._loaded && i2._loaded.call(i2, { width: s3.width, height: s3.height, ratio: s3.width / s3.height, url: e3 }));
        }), a2.on(s3, "error", function(t3) {
          a2.off(s3), "function" == typeof i2._error && i2._error.call(i2, t3);
        }), this.attr("href", s3.src = this.src = e3, a2.xlink);
      }, loaded: function(t3) {
        return this._loaded = t3, this;
      }, error: function(t3) {
        return this._error = t3, this;
      } }, construct: { image: function(t3, e3, i2) {
        return this.put(new a2.Image()).load(t3).size(e3 || 0, i2 || e3 || 0);
      } } }), a2.Text = a2.invent({ create: function() {
        this.constructor.call(this, a2.create("text")), this.dom.leading = new a2.Number(1.3), this._rebuild = true, this._build = false, this.attr("font-family", a2.defaults.attrs["font-family"]);
      }, inherit: a2.Shape, extend: { x: function(t3) {
        return null == t3 ? this.attr("x") : this.attr("x", t3);
      }, text: function(t3) {
        if (void 0 === t3) {
          t3 = "";
          for (var e3 = this.node.childNodes, i2 = 0, s3 = e3.length; i2 < s3; ++i2)
            0 != i2 && 3 != e3[i2].nodeType && 1 == a2.adopt(e3[i2]).dom.newLined && (t3 += "\n"), t3 += e3[i2].textContent;
          return t3;
        }
        if (this.clear().build(true), "function" == typeof t3)
          t3.call(this, this);
        else {
          i2 = 0;
          for (var r3 = (t3 = t3.split("\n")).length; i2 < r3; i2++)
            this.tspan(t3[i2]).newLine();
        }
        return this.build(false).rebuild();
      }, size: function(t3) {
        return this.attr("font-size", t3).rebuild();
      }, leading: function(t3) {
        return null == t3 ? this.dom.leading : (this.dom.leading = new a2.Number(t3), this.rebuild());
      }, lines: function() {
        var t3 = (this.textPath && this.textPath() || this).node, e3 = a2.utils.map(a2.utils.filterSVGElements(t3.childNodes), function(t4) {
          return a2.adopt(t4);
        });
        return new a2.Set(e3);
      }, rebuild: function(t3) {
        if ("boolean" == typeof t3 && (this._rebuild = t3), this._rebuild) {
          var e3 = this, i2 = 0, s3 = this.dom.leading * new a2.Number(this.attr("font-size"));
          this.lines().each(function() {
            this.dom.newLined && (e3.textPath() || this.attr("x", e3.attr("x")), "\n" == this.text() ? i2 += s3 : (this.attr("dy", s3 + i2), i2 = 0));
          }), this.fire("rebuild");
        }
        return this;
      }, build: function(t3) {
        return this._build = !!t3, this;
      }, setData: function(t3) {
        return this.dom = t3, this.dom.leading = new a2.Number(t3.leading || 1.3), this;
      } }, construct: { text: function(t3) {
        return this.put(new a2.Text()).text(t3);
      }, plain: function(t3) {
        return this.put(new a2.Text()).plain(t3);
      } } }), a2.Tspan = a2.invent({ create: "tspan", inherit: a2.Shape, extend: { text: function(t3) {
        return null == t3 ? this.node.textContent + (this.dom.newLined ? "\n" : "") : ("function" == typeof t3 ? t3.call(this, this) : this.plain(t3), this);
      }, dx: function(t3) {
        return this.attr("dx", t3);
      }, dy: function(t3) {
        return this.attr("dy", t3);
      }, newLine: function() {
        var t3 = this.parent(a2.Text);
        return this.dom.newLined = true, this.dy(t3.dom.leading * t3.attr("font-size")).attr("x", t3.x());
      } } }), a2.extend(a2.Text, a2.Tspan, { plain: function(t3) {
        return false === this._build && this.clear(), this.node.appendChild(e2.createTextNode(t3)), this;
      }, tspan: function(t3) {
        var e3 = (this.textPath && this.textPath() || this).node, i2 = new a2.Tspan();
        return false === this._build && this.clear(), e3.appendChild(i2.node), i2.text(t3);
      }, clear: function() {
        for (var t3 = (this.textPath && this.textPath() || this).node; t3.hasChildNodes(); )
          t3.removeChild(t3.lastChild);
        return this;
      }, length: function() {
        return this.node.getComputedTextLength();
      } }), a2.TextPath = a2.invent({ create: "textPath", inherit: a2.Parent, parent: a2.Text, construct: { morphArray: a2.PathArray, array: function() {
        var t3 = this.track();
        return t3 ? t3.array() : null;
      }, plot: function(t3) {
        var e3 = this.track(), i2 = null;
        return e3 && (i2 = e3.plot(t3)), null == t3 ? i2 : this;
      }, track: function() {
        var t3 = this.textPath();
        if (t3)
          return t3.reference("href");
      }, textPath: function() {
        if (this.node.firstChild && "textPath" == this.node.firstChild.nodeName)
          return a2.adopt(this.node.firstChild);
      } } }), a2.Nested = a2.invent({ create: function() {
        this.constructor.call(this, a2.create("svg")), this.style("overflow", "visible");
      }, inherit: a2.Container, construct: { nested: function() {
        return this.put(new a2.Nested());
      } } });
      var l2 = { stroke: ["color", "width", "opacity", "linecap", "linejoin", "miterlimit", "dasharray", "dashoffset"], fill: ["color", "opacity", "rule"], prefix: function(t3, e3) {
        return "color" == e3 ? t3 : t3 + "-" + e3;
      } };
      function h2(t3, e3, i2, s3) {
        return i2 + s3.replace(a2.regex.dots, " .");
      }
      function c2(t3) {
        return t3.toLowerCase().replace(/-(.)/g, function(t4, e3) {
          return e3.toUpperCase();
        });
      }
      function d2(t3) {
        return t3.charAt(0).toUpperCase() + t3.slice(1);
      }
      function g2(t3) {
        var e3 = t3.toString(16);
        return 1 == e3.length ? "0" + e3 : e3;
      }
      function u2(t3, e3, i2) {
        if (null == e3 || null == i2) {
          var a3 = t3.bbox();
          null == e3 ? e3 = a3.width / a3.height * i2 : null == i2 && (i2 = a3.height / a3.width * e3);
        }
        return { width: e3, height: i2 };
      }
      function p2(t3, e3, i2) {
        return { x: e3 * t3.a + i2 * t3.c + 0, y: e3 * t3.b + i2 * t3.d + 0 };
      }
      function f2(t3) {
        return { a: t3[0], b: t3[1], c: t3[2], d: t3[3], e: t3[4], f: t3[5] };
      }
      function x2(e3) {
        for (var i2 = e3.childNodes.length - 1; i2 >= 0; i2--)
          e3.childNodes[i2] instanceof t2.SVGElement && x2(e3.childNodes[i2]);
        return a2.adopt(e3).id(a2.eid(e3.nodeName));
      }
      function b2(t3) {
        return Math.abs(t3) > 1e-37 ? t3 : 0;
      }
      ["fill", "stroke"].forEach(function(t3) {
        var e3 = {};
        e3[t3] = function(e4) {
          if (void 0 === e4)
            return this;
          if ("string" == typeof e4 || a2.Color.isRgb(e4) || e4 && "function" == typeof e4.fill)
            this.attr(t3, e4);
          else
            for (var i2 = l2[t3].length - 1; i2 >= 0; i2--)
              null != e4[l2[t3][i2]] && this.attr(l2.prefix(t3, l2[t3][i2]), e4[l2[t3][i2]]);
          return this;
        }, a2.extend(a2.Element, a2.FX, e3);
      }), a2.extend(a2.Element, a2.FX, { translate: function(t3, e3) {
        return this.transform({ x: t3, y: e3 });
      }, matrix: function(t3) {
        return this.attr("transform", new a2.Matrix(6 == arguments.length ? [].slice.call(arguments) : t3));
      }, opacity: function(t3) {
        return this.attr("opacity", t3);
      }, dx: function(t3) {
        return this.x(new a2.Number(t3).plus(this instanceof a2.FX ? 0 : this.x()), true);
      }, dy: function(t3) {
        return this.y(new a2.Number(t3).plus(this instanceof a2.FX ? 0 : this.y()), true);
      } }), a2.extend(a2.Path, { length: function() {
        return this.node.getTotalLength();
      }, pointAt: function(t3) {
        return this.node.getPointAtLength(t3);
      } }), a2.Set = a2.invent({ create: function(t3) {
        Array.isArray(t3) ? this.members = t3 : this.clear();
      }, extend: { add: function() {
        for (var t3 = [].slice.call(arguments), e3 = 0, i2 = t3.length; e3 < i2; e3++)
          this.members.push(t3[e3]);
        return this;
      }, remove: function(t3) {
        var e3 = this.index(t3);
        return e3 > -1 && this.members.splice(e3, 1), this;
      }, each: function(t3) {
        for (var e3 = 0, i2 = this.members.length; e3 < i2; e3++)
          t3.apply(this.members[e3], [e3, this.members]);
        return this;
      }, clear: function() {
        return this.members = [], this;
      }, length: function() {
        return this.members.length;
      }, has: function(t3) {
        return this.index(t3) >= 0;
      }, index: function(t3) {
        return this.members.indexOf(t3);
      }, get: function(t3) {
        return this.members[t3];
      }, first: function() {
        return this.get(0);
      }, last: function() {
        return this.get(this.members.length - 1);
      }, valueOf: function() {
        return this.members;
      } }, construct: { set: function(t3) {
        return new a2.Set(t3);
      } } }), a2.FX.Set = a2.invent({ create: function(t3) {
        this.set = t3;
      } }), a2.Set.inherit = function() {
        var t3 = [];
        for (var e3 in a2.Shape.prototype)
          "function" == typeof a2.Shape.prototype[e3] && "function" != typeof a2.Set.prototype[e3] && t3.push(e3);
        for (var e3 in t3.forEach(function(t4) {
          a2.Set.prototype[t4] = function() {
            for (var e4 = 0, i2 = this.members.length; e4 < i2; e4++)
              this.members[e4] && "function" == typeof this.members[e4][t4] && this.members[e4][t4].apply(this.members[e4], arguments);
            return "animate" == t4 ? this.fx || (this.fx = new a2.FX.Set(this)) : this;
          };
        }), t3 = [], a2.FX.prototype)
          "function" == typeof a2.FX.prototype[e3] && "function" != typeof a2.FX.Set.prototype[e3] && t3.push(e3);
        t3.forEach(function(t4) {
          a2.FX.Set.prototype[t4] = function() {
            for (var e4 = 0, i2 = this.set.members.length; e4 < i2; e4++)
              this.set.members[e4].fx[t4].apply(this.set.members[e4].fx, arguments);
            return this;
          };
        });
      }, a2.extend(a2.Element, {}), a2.extend(a2.Element, { remember: function(t3, e3) {
        if ("object" === i(arguments[0]))
          for (var a3 in t3)
            this.remember(a3, t3[a3]);
        else {
          if (1 == arguments.length)
            return this.memory()[t3];
          this.memory()[t3] = e3;
        }
        return this;
      }, forget: function() {
        if (0 == arguments.length)
          this._memory = {};
        else
          for (var t3 = arguments.length - 1; t3 >= 0; t3--)
            delete this.memory()[arguments[t3]];
        return this;
      }, memory: function() {
        return this._memory || (this._memory = {});
      } }), a2.get = function(t3) {
        var i2 = e2.getElementById(function(t4) {
          var e3 = (t4 || "").toString().match(a2.regex.reference);
          if (e3)
            return e3[1];
        }(t3) || t3);
        return a2.adopt(i2);
      }, a2.select = function(t3, i2) {
        return new a2.Set(a2.utils.map((i2 || e2).querySelectorAll(t3), function(t4) {
          return a2.adopt(t4);
        }));
      }, a2.extend(a2.Parent, { select: function(t3) {
        return a2.select(t3, this.node);
      } });
      var v2 = "abcdef".split("");
      if ("function" != typeof t2.CustomEvent) {
        var m2 = function(t3, i2) {
          i2 = i2 || { bubbles: false, cancelable: false, detail: void 0 };
          var a3 = e2.createEvent("CustomEvent");
          return a3.initCustomEvent(t3, i2.bubbles, i2.cancelable, i2.detail), a3;
        };
        m2.prototype = t2.Event.prototype, a2.CustomEvent = m2;
      } else
        a2.CustomEvent = t2.CustomEvent;
      return a2;
    }, "function" == typeof define && define.amd ? define(function() {
      return Ht(Rt, Rt.document);
    }) : "object" === ("undefined" == typeof exports ? "undefined" : i(exports)) && "undefined" != typeof module ? module.exports = Rt.document ? Ht(Rt, Rt.document) : function(t2) {
      return Ht(t2, t2.document);
    } : Rt.SVG = Ht(Rt, Rt.document), /*! svg.filter.js - v2.0.2 - 2016-02-24
    * https://github.com/wout/svg.filter.js
    * Copyright (c) 2016 Wout Fierens; Licensed MIT */
    (function() {
      SVG.Filter = SVG.invent({ create: "filter", inherit: SVG.Parent, extend: { source: "SourceGraphic", sourceAlpha: "SourceAlpha", background: "BackgroundImage", backgroundAlpha: "BackgroundAlpha", fill: "FillPaint", stroke: "StrokePaint", autoSetIn: true, put: function(t3, e3) {
        return this.add(t3, e3), !t3.attr("in") && this.autoSetIn && t3.attr("in", this.source), t3.attr("result") || t3.attr("result", t3), t3;
      }, blend: function(t3, e3, i3) {
        return this.put(new SVG.BlendEffect(t3, e3, i3));
      }, colorMatrix: function(t3, e3) {
        return this.put(new SVG.ColorMatrixEffect(t3, e3));
      }, convolveMatrix: function(t3) {
        return this.put(new SVG.ConvolveMatrixEffect(t3));
      }, componentTransfer: function(t3) {
        return this.put(new SVG.ComponentTransferEffect(t3));
      }, composite: function(t3, e3, i3) {
        return this.put(new SVG.CompositeEffect(t3, e3, i3));
      }, flood: function(t3, e3) {
        return this.put(new SVG.FloodEffect(t3, e3));
      }, offset: function(t3, e3) {
        return this.put(new SVG.OffsetEffect(t3, e3));
      }, image: function(t3) {
        return this.put(new SVG.ImageEffect(t3));
      }, merge: function() {
        var t3 = [void 0];
        for (var e3 in arguments)
          t3.push(arguments[e3]);
        return this.put(new (SVG.MergeEffect.bind.apply(SVG.MergeEffect, t3))());
      }, gaussianBlur: function(t3, e3) {
        return this.put(new SVG.GaussianBlurEffect(t3, e3));
      }, morphology: function(t3, e3) {
        return this.put(new SVG.MorphologyEffect(t3, e3));
      }, diffuseLighting: function(t3, e3, i3) {
        return this.put(new SVG.DiffuseLightingEffect(t3, e3, i3));
      }, displacementMap: function(t3, e3, i3, a3, s3) {
        return this.put(new SVG.DisplacementMapEffect(t3, e3, i3, a3, s3));
      }, specularLighting: function(t3, e3, i3, a3) {
        return this.put(new SVG.SpecularLightingEffect(t3, e3, i3, a3));
      }, tile: function() {
        return this.put(new SVG.TileEffect());
      }, turbulence: function(t3, e3, i3, a3, s3) {
        return this.put(new SVG.TurbulenceEffect(t3, e3, i3, a3, s3));
      }, toString: function() {
        return "url(#" + this.attr("id") + ")";
      } } }), SVG.extend(SVG.Defs, { filter: function(t3) {
        var e3 = this.put(new SVG.Filter());
        return "function" == typeof t3 && t3.call(e3, e3), e3;
      } }), SVG.extend(SVG.Container, { filter: function(t3) {
        return this.defs().filter(t3);
      } }), SVG.extend(SVG.Element, SVG.G, SVG.Nested, { filter: function(t3) {
        return this.filterer = t3 instanceof SVG.Element ? t3 : this.doc().filter(t3), this.doc() && this.filterer.doc() !== this.doc() && this.doc().defs().add(this.filterer), this.attr("filter", this.filterer), this.filterer;
      }, unfilter: function(t3) {
        return this.filterer && true === t3 && this.filterer.remove(), delete this.filterer, this.attr("filter", null);
      } }), SVG.Effect = SVG.invent({ create: function() {
        this.constructor.call(this);
      }, inherit: SVG.Element, extend: { in: function(t3) {
        return null == t3 ? this.parent() && this.parent().select('[result="' + this.attr("in") + '"]').get(0) || this.attr("in") : this.attr("in", t3);
      }, result: function(t3) {
        return null == t3 ? this.attr("result") : this.attr("result", t3);
      }, toString: function() {
        return this.result();
      } } }), SVG.ParentEffect = SVG.invent({ create: function() {
        this.constructor.call(this);
      }, inherit: SVG.Parent, extend: { in: function(t3) {
        return null == t3 ? this.parent() && this.parent().select('[result="' + this.attr("in") + '"]').get(0) || this.attr("in") : this.attr("in", t3);
      }, result: function(t3) {
        return null == t3 ? this.attr("result") : this.attr("result", t3);
      }, toString: function() {
        return this.result();
      } } });
      var t2 = { blend: function(t3, e3) {
        return this.parent() && this.parent().blend(this, t3, e3);
      }, colorMatrix: function(t3, e3) {
        return this.parent() && this.parent().colorMatrix(t3, e3).in(this);
      }, convolveMatrix: function(t3) {
        return this.parent() && this.parent().convolveMatrix(t3).in(this);
      }, componentTransfer: function(t3) {
        return this.parent() && this.parent().componentTransfer(t3).in(this);
      }, composite: function(t3, e3) {
        return this.parent() && this.parent().composite(this, t3, e3);
      }, flood: function(t3, e3) {
        return this.parent() && this.parent().flood(t3, e3);
      }, offset: function(t3, e3) {
        return this.parent() && this.parent().offset(t3, e3).in(this);
      }, image: function(t3) {
        return this.parent() && this.parent().image(t3);
      }, merge: function() {
        return this.parent() && this.parent().merge.apply(this.parent(), [this].concat(arguments));
      }, gaussianBlur: function(t3, e3) {
        return this.parent() && this.parent().gaussianBlur(t3, e3).in(this);
      }, morphology: function(t3, e3) {
        return this.parent() && this.parent().morphology(t3, e3).in(this);
      }, diffuseLighting: function(t3, e3, i3) {
        return this.parent() && this.parent().diffuseLighting(t3, e3, i3).in(this);
      }, displacementMap: function(t3, e3, i3, a3) {
        return this.parent() && this.parent().displacementMap(this, t3, e3, i3, a3);
      }, specularLighting: function(t3, e3, i3, a3) {
        return this.parent() && this.parent().specularLighting(t3, e3, i3, a3).in(this);
      }, tile: function() {
        return this.parent() && this.parent().tile().in(this);
      }, turbulence: function(t3, e3, i3, a3, s3) {
        return this.parent() && this.parent().turbulence(t3, e3, i3, a3, s3).in(this);
      } };
      SVG.extend(SVG.Effect, t2), SVG.extend(SVG.ParentEffect, t2), SVG.ChildEffect = SVG.invent({ create: function() {
        this.constructor.call(this);
      }, inherit: SVG.Element, extend: { in: function(t3) {
        this.attr("in", t3);
      } } });
      var e2 = { blend: function(t3, e3, i3) {
        this.attr({ in: t3, in2: e3, mode: i3 || "normal" });
      }, colorMatrix: function(t3, e3) {
        "matrix" == t3 && (e3 = s2(e3)), this.attr({ type: t3, values: void 0 === e3 ? null : e3 });
      }, convolveMatrix: function(t3) {
        t3 = s2(t3), this.attr({ order: Math.sqrt(t3.split(" ").length), kernelMatrix: t3 });
      }, composite: function(t3, e3, i3) {
        this.attr({ in: t3, in2: e3, operator: i3 });
      }, flood: function(t3, e3) {
        this.attr("flood-color", t3), null != e3 && this.attr("flood-opacity", e3);
      }, offset: function(t3, e3) {
        this.attr({ dx: t3, dy: e3 });
      }, image: function(t3) {
        this.attr("href", t3, SVG.xlink);
      }, displacementMap: function(t3, e3, i3, a3, s3) {
        this.attr({ in: t3, in2: e3, scale: i3, xChannelSelector: a3, yChannelSelector: s3 });
      }, gaussianBlur: function(t3, e3) {
        null != t3 || null != e3 ? this.attr("stdDeviation", function(t4) {
          if (!Array.isArray(t4))
            return t4;
          for (var e4 = 0, i3 = t4.length, a3 = []; e4 < i3; e4++)
            a3.push(t4[e4]);
          return a3.join(" ");
        }(Array.prototype.slice.call(arguments))) : this.attr("stdDeviation", "0 0");
      }, morphology: function(t3, e3) {
        this.attr({ operator: t3, radius: e3 });
      }, tile: function() {
      }, turbulence: function(t3, e3, i3, a3, s3) {
        this.attr({ numOctaves: e3, seed: i3, stitchTiles: a3, baseFrequency: t3, type: s3 });
      } }, i2 = { merge: function() {
        var t3;
        if (arguments[0] instanceof SVG.Set) {
          var e3 = this;
          arguments[0].each(function(t4) {
            this instanceof SVG.MergeNode ? e3.put(this) : (this instanceof SVG.Effect || this instanceof SVG.ParentEffect) && e3.put(new SVG.MergeNode(this));
          });
        } else {
          t3 = Array.isArray(arguments[0]) ? arguments[0] : arguments;
          for (var i3 = 0; i3 < t3.length; i3++)
            t3[i3] instanceof SVG.MergeNode ? this.put(t3[i3]) : this.put(new SVG.MergeNode(t3[i3]));
        }
      }, componentTransfer: function(t3) {
        if (this.rgb = new SVG.Set(), ["r", "g", "b", "a"].forEach((function(t4) {
          this[t4] = new SVG["Func" + t4.toUpperCase()]("identity"), this.rgb.add(this[t4]), this.node.appendChild(this[t4].node);
        }).bind(this)), t3)
          for (var e3 in t3.rgb && (["r", "g", "b"].forEach((function(e4) {
            this[e4].attr(t3.rgb);
          }).bind(this)), delete t3.rgb), t3)
            this[e3].attr(t3[e3]);
      }, diffuseLighting: function(t3, e3, i3) {
        this.attr({ surfaceScale: t3, diffuseConstant: e3, kernelUnitLength: i3 });
      }, specularLighting: function(t3, e3, i3, a3) {
        this.attr({ surfaceScale: t3, diffuseConstant: e3, specularExponent: i3, kernelUnitLength: a3 });
      } }, a2 = { distantLight: function(t3, e3) {
        this.attr({ azimuth: t3, elevation: e3 });
      }, pointLight: function(t3, e3, i3) {
        this.attr({ x: t3, y: e3, z: i3 });
      }, spotLight: function(t3, e3, i3, a3, s3, r3) {
        this.attr({ x: t3, y: e3, z: i3, pointsAtX: a3, pointsAtY: s3, pointsAtZ: r3 });
      }, mergeNode: function(t3) {
        this.attr("in", t3);
      } };
      function s2(t3) {
        return Array.isArray(t3) && (t3 = new SVG.Array(t3)), t3.toString().replace(/^\s+/, "").replace(/\s+$/, "").replace(/\s+/g, " ");
      }
      function r2() {
        var t3 = function() {
        };
        for (var e3 in "function" == typeof arguments[arguments.length - 1] && (t3 = arguments[arguments.length - 1], Array.prototype.splice.call(arguments, arguments.length - 1, 1)), arguments)
          for (var i3 in arguments[e3])
            t3(arguments[e3][i3], i3, arguments[e3]);
      }
      ["r", "g", "b", "a"].forEach(function(t3) {
        a2["Func" + t3.toUpperCase()] = function(t4) {
          switch (this.attr("type", t4), t4) {
            case "table":
              this.attr("tableValues", arguments[1]);
              break;
            case "linear":
              this.attr("slope", arguments[1]), this.attr("intercept", arguments[2]);
              break;
            case "gamma":
              this.attr("amplitude", arguments[1]), this.attr("exponent", arguments[2]), this.attr("offset", arguments[2]);
          }
        };
      }), r2(e2, function(t3, e3) {
        var i3 = e3.charAt(0).toUpperCase() + e3.slice(1);
        SVG[i3 + "Effect"] = SVG.invent({ create: function() {
          this.constructor.call(this, SVG.create("fe" + i3)), t3.apply(this, arguments), this.result(this.attr("id") + "Out");
        }, inherit: SVG.Effect, extend: {} });
      }), r2(i2, function(t3, e3) {
        var i3 = e3.charAt(0).toUpperCase() + e3.slice(1);
        SVG[i3 + "Effect"] = SVG.invent({ create: function() {
          this.constructor.call(this, SVG.create("fe" + i3)), t3.apply(this, arguments), this.result(this.attr("id") + "Out");
        }, inherit: SVG.ParentEffect, extend: {} });
      }), r2(a2, function(t3, e3) {
        var i3 = e3.charAt(0).toUpperCase() + e3.slice(1);
        SVG[i3] = SVG.invent({ create: function() {
          this.constructor.call(this, SVG.create("fe" + i3)), t3.apply(this, arguments);
        }, inherit: SVG.ChildEffect, extend: {} });
      }), SVG.extend(SVG.MergeEffect, { in: function(t3) {
        return t3 instanceof SVG.MergeNode ? this.add(t3, 0) : this.add(new SVG.MergeNode(t3), 0), this;
      } }), SVG.extend(SVG.CompositeEffect, SVG.BlendEffect, SVG.DisplacementMapEffect, { in2: function(t3) {
        return null == t3 ? this.parent() && this.parent().select('[result="' + this.attr("in2") + '"]').get(0) || this.attr("in2") : this.attr("in2", t3);
      } }), SVG.filter = { sepiatone: [0.343, 0.669, 0.119, 0, 0, 0.249, 0.626, 0.13, 0, 0, 0.172, 0.334, 0.111, 0, 0, 0, 0, 0, 1, 0] };
    }).call(void 0), function() {
      function t2(t3, s3, r2, o2, n2, l2, h2) {
        for (var c2 = t3.slice(s3, r2 || h2), d2 = o2.slice(n2, l2 || h2), g2 = 0, u2 = { pos: [0, 0], start: [0, 0] }, p2 = { pos: [0, 0], start: [0, 0] }; ; ) {
          if (c2[g2] = e2.call(u2, c2[g2]), d2[g2] = e2.call(p2, d2[g2]), c2[g2][0] != d2[g2][0] || "M" == c2[g2][0] || "A" == c2[g2][0] && (c2[g2][4] != d2[g2][4] || c2[g2][5] != d2[g2][5]) ? (Array.prototype.splice.apply(c2, [g2, 1].concat(a2.call(u2, c2[g2]))), Array.prototype.splice.apply(d2, [g2, 1].concat(a2.call(p2, d2[g2])))) : (c2[g2] = i2.call(u2, c2[g2]), d2[g2] = i2.call(p2, d2[g2])), ++g2 == c2.length && g2 == d2.length)
            break;
          g2 == c2.length && c2.push(["C", u2.pos[0], u2.pos[1], u2.pos[0], u2.pos[1], u2.pos[0], u2.pos[1]]), g2 == d2.length && d2.push(["C", p2.pos[0], p2.pos[1], p2.pos[0], p2.pos[1], p2.pos[0], p2.pos[1]]);
        }
        return { start: c2, dest: d2 };
      }
      function e2(t3) {
        switch (t3[0]) {
          case "z":
          case "Z":
            t3[0] = "L", t3[1] = this.start[0], t3[2] = this.start[1];
            break;
          case "H":
            t3[0] = "L", t3[2] = this.pos[1];
            break;
          case "V":
            t3[0] = "L", t3[2] = t3[1], t3[1] = this.pos[0];
            break;
          case "T":
            t3[0] = "Q", t3[3] = t3[1], t3[4] = t3[2], t3[1] = this.reflection[1], t3[2] = this.reflection[0];
            break;
          case "S":
            t3[0] = "C", t3[6] = t3[4], t3[5] = t3[3], t3[4] = t3[2], t3[3] = t3[1], t3[2] = this.reflection[1], t3[1] = this.reflection[0];
        }
        return t3;
      }
      function i2(t3) {
        var e3 = t3.length;
        return this.pos = [t3[e3 - 2], t3[e3 - 1]], -1 != "SCQT".indexOf(t3[0]) && (this.reflection = [2 * this.pos[0] - t3[e3 - 4], 2 * this.pos[1] - t3[e3 - 3]]), t3;
      }
      function a2(t3) {
        var e3 = [t3];
        switch (t3[0]) {
          case "M":
            return this.pos = this.start = [t3[1], t3[2]], e3;
          case "L":
            t3[5] = t3[3] = t3[1], t3[6] = t3[4] = t3[2], t3[1] = this.pos[0], t3[2] = this.pos[1];
            break;
          case "Q":
            t3[6] = t3[4], t3[5] = t3[3], t3[4] = 1 * t3[4] / 3 + 2 * t3[2] / 3, t3[3] = 1 * t3[3] / 3 + 2 * t3[1] / 3, t3[2] = 1 * this.pos[1] / 3 + 2 * t3[2] / 3, t3[1] = 1 * this.pos[0] / 3 + 2 * t3[1] / 3;
            break;
          case "A":
            e3 = function(t4, e4) {
              var i3, a3, s3, r2, o2, n2, l2, h2, c2, d2, g2, u2, p2, f2, x2, b2, v2, m2, y2, w2, k2, A3, S2, C2, L2, P2, I2 = Math.abs(e4[1]), T2 = Math.abs(e4[2]), M2 = e4[3] % 360, z2 = e4[4], X2 = e4[5], E2 = e4[6], Y2 = e4[7], F2 = new SVG.Point(t4), R2 = new SVG.Point(E2, Y2), H2 = [];
              if (0 === I2 || 0 === T2 || F2.x === R2.x && F2.y === R2.y)
                return [["C", F2.x, F2.y, R2.x, R2.y, R2.x, R2.y]];
              i3 = new SVG.Point((F2.x - R2.x) / 2, (F2.y - R2.y) / 2).transform(new SVG.Matrix().rotate(M2)), (a3 = i3.x * i3.x / (I2 * I2) + i3.y * i3.y / (T2 * T2)) > 1 && (I2 *= a3 = Math.sqrt(a3), T2 *= a3);
              s3 = new SVG.Matrix().rotate(M2).scale(1 / I2, 1 / T2).rotate(-M2), F2 = F2.transform(s3), R2 = R2.transform(s3), r2 = [R2.x - F2.x, R2.y - F2.y], n2 = r2[0] * r2[0] + r2[1] * r2[1], o2 = Math.sqrt(n2), r2[0] /= o2, r2[1] /= o2, l2 = n2 < 4 ? Math.sqrt(1 - n2 / 4) : 0, z2 === X2 && (l2 *= -1);
              h2 = new SVG.Point((R2.x + F2.x) / 2 + l2 * -r2[1], (R2.y + F2.y) / 2 + l2 * r2[0]), c2 = new SVG.Point(F2.x - h2.x, F2.y - h2.y), d2 = new SVG.Point(R2.x - h2.x, R2.y - h2.y), g2 = Math.acos(c2.x / Math.sqrt(c2.x * c2.x + c2.y * c2.y)), c2.y < 0 && (g2 *= -1);
              u2 = Math.acos(d2.x / Math.sqrt(d2.x * d2.x + d2.y * d2.y)), d2.y < 0 && (u2 *= -1);
              X2 && g2 > u2 && (u2 += 2 * Math.PI);
              !X2 && g2 < u2 && (u2 -= 2 * Math.PI);
              for (f2 = Math.ceil(2 * Math.abs(g2 - u2) / Math.PI), b2 = [], v2 = g2, p2 = (u2 - g2) / f2, x2 = 4 * Math.tan(p2 / 4) / 3, k2 = 0; k2 <= f2; k2++)
                y2 = Math.cos(v2), m2 = Math.sin(v2), w2 = new SVG.Point(h2.x + y2, h2.y + m2), b2[k2] = [new SVG.Point(w2.x + x2 * m2, w2.y - x2 * y2), w2, new SVG.Point(w2.x - x2 * m2, w2.y + x2 * y2)], v2 += p2;
              for (b2[0][0] = b2[0][1].clone(), b2[b2.length - 1][2] = b2[b2.length - 1][1].clone(), s3 = new SVG.Matrix().rotate(M2).scale(I2, T2).rotate(-M2), k2 = 0, A3 = b2.length; k2 < A3; k2++)
                b2[k2][0] = b2[k2][0].transform(s3), b2[k2][1] = b2[k2][1].transform(s3), b2[k2][2] = b2[k2][2].transform(s3);
              for (k2 = 1, A3 = b2.length; k2 < A3; k2++)
                S2 = (w2 = b2[k2 - 1][2]).x, C2 = w2.y, L2 = (w2 = b2[k2][0]).x, P2 = w2.y, E2 = (w2 = b2[k2][1]).x, Y2 = w2.y, H2.push(["C", S2, C2, L2, P2, E2, Y2]);
              return H2;
            }(this.pos, t3), t3 = e3[0];
        }
        return t3[0] = "C", this.pos = [t3[5], t3[6]], this.reflection = [2 * t3[5] - t3[3], 2 * t3[6] - t3[4]], e3;
      }
      function s2(t3, e3) {
        if (false === e3)
          return false;
        for (var i3 = e3, a3 = t3.length; i3 < a3; ++i3)
          if ("M" == t3[i3][0])
            return i3;
        return false;
      }
      SVG.extend(SVG.PathArray, { morph: function(e3) {
        for (var i3 = this.value, a3 = this.parse(e3), r2 = 0, o2 = 0, n2 = false, l2 = false; false !== r2 || false !== o2; ) {
          var h2;
          n2 = s2(i3, false !== r2 && r2 + 1), l2 = s2(a3, false !== o2 && o2 + 1), false === r2 && (r2 = 0 == (h2 = new SVG.PathArray(c2.start).bbox()).height || 0 == h2.width ? i3.push(i3[0]) - 1 : i3.push(["M", h2.x + h2.width / 2, h2.y + h2.height / 2]) - 1), false === o2 && (o2 = 0 == (h2 = new SVG.PathArray(c2.dest).bbox()).height || 0 == h2.width ? a3.push(a3[0]) - 1 : a3.push(["M", h2.x + h2.width / 2, h2.y + h2.height / 2]) - 1);
          var c2 = t2(i3, r2, n2, a3, o2, l2);
          i3 = i3.slice(0, r2).concat(c2.start, false === n2 ? [] : i3.slice(n2)), a3 = a3.slice(0, o2).concat(c2.dest, false === l2 ? [] : a3.slice(l2)), r2 = false !== n2 && r2 + c2.start.length, o2 = false !== l2 && o2 + c2.dest.length;
        }
        return this.value = i3, this.destination = new SVG.PathArray(), this.destination.value = a3, this;
      } });
    }(), /*! svg.draggable.js - v2.2.2 - 2019-01-08
    * https://github.com/svgdotjs/svg.draggable.js
    * Copyright (c) 2019 Wout Fierens; Licensed MIT */
    (function() {
      function t2(t3) {
        t3.remember("_draggable", this), this.el = t3;
      }
      t2.prototype.init = function(t3, e2) {
        var i2 = this;
        this.constraint = t3, this.value = e2, this.el.on("mousedown.drag", function(t4) {
          i2.start(t4);
        }), this.el.on("touchstart.drag", function(t4) {
          i2.start(t4);
        });
      }, t2.prototype.transformPoint = function(t3, e2) {
        var i2 = (t3 = t3 || window.event).changedTouches && t3.changedTouches[0] || t3;
        return this.p.x = i2.clientX - (e2 || 0), this.p.y = i2.clientY, this.p.matrixTransform(this.m);
      }, t2.prototype.getBBox = function() {
        var t3 = this.el.bbox();
        return this.el instanceof SVG.Nested && (t3 = this.el.rbox()), (this.el instanceof SVG.G || this.el instanceof SVG.Use || this.el instanceof SVG.Nested) && (t3.x = this.el.x(), t3.y = this.el.y()), t3;
      }, t2.prototype.start = function(t3) {
        if ("click" != t3.type && "mousedown" != t3.type && "mousemove" != t3.type || 1 == (t3.which || t3.buttons)) {
          var e2 = this;
          if (this.el.fire("beforedrag", { event: t3, handler: this }), !this.el.event().defaultPrevented) {
            t3.preventDefault(), t3.stopPropagation(), this.parent = this.parent || this.el.parent(SVG.Nested) || this.el.parent(SVG.Doc), this.p = this.parent.node.createSVGPoint(), this.m = this.el.node.getScreenCTM().inverse();
            var i2, a2 = this.getBBox();
            if (this.el instanceof SVG.Text)
              switch (i2 = this.el.node.getComputedTextLength(), this.el.attr("text-anchor")) {
                case "middle":
                  i2 /= 2;
                  break;
                case "start":
                  i2 = 0;
              }
            this.startPoints = { point: this.transformPoint(t3, i2), box: a2, transform: this.el.transform() }, SVG.on(window, "mousemove.drag", function(t4) {
              e2.drag(t4);
            }), SVG.on(window, "touchmove.drag", function(t4) {
              e2.drag(t4);
            }), SVG.on(window, "mouseup.drag", function(t4) {
              e2.end(t4);
            }), SVG.on(window, "touchend.drag", function(t4) {
              e2.end(t4);
            }), this.el.fire("dragstart", { event: t3, p: this.startPoints.point, m: this.m, handler: this });
          }
        }
      }, t2.prototype.drag = function(t3) {
        var e2 = this.getBBox(), i2 = this.transformPoint(t3), a2 = this.startPoints.box.x + i2.x - this.startPoints.point.x, s2 = this.startPoints.box.y + i2.y - this.startPoints.point.y, r2 = this.constraint, o2 = i2.x - this.startPoints.point.x, n2 = i2.y - this.startPoints.point.y;
        if (this.el.fire("dragmove", { event: t3, p: i2, m: this.m, handler: this }), this.el.event().defaultPrevented)
          return i2;
        if ("function" == typeof r2) {
          var l2 = r2.call(this.el, a2, s2, this.m);
          "boolean" == typeof l2 && (l2 = { x: l2, y: l2 }), true === l2.x ? this.el.x(a2) : false !== l2.x && this.el.x(l2.x), true === l2.y ? this.el.y(s2) : false !== l2.y && this.el.y(l2.y);
        } else
          "object" == typeof r2 && (null != r2.minX && a2 < r2.minX ? o2 = (a2 = r2.minX) - this.startPoints.box.x : null != r2.maxX && a2 > r2.maxX - e2.width && (o2 = (a2 = r2.maxX - e2.width) - this.startPoints.box.x), null != r2.minY && s2 < r2.minY ? n2 = (s2 = r2.minY) - this.startPoints.box.y : null != r2.maxY && s2 > r2.maxY - e2.height && (n2 = (s2 = r2.maxY - e2.height) - this.startPoints.box.y), null != r2.snapToGrid && (a2 -= a2 % r2.snapToGrid, s2 -= s2 % r2.snapToGrid, o2 -= o2 % r2.snapToGrid, n2 -= n2 % r2.snapToGrid), this.el instanceof SVG.G ? this.el.matrix(this.startPoints.transform).transform({ x: o2, y: n2 }, true) : this.el.move(a2, s2));
        return i2;
      }, t2.prototype.end = function(t3) {
        var e2 = this.drag(t3);
        this.el.fire("dragend", { event: t3, p: e2, m: this.m, handler: this }), SVG.off(window, "mousemove.drag"), SVG.off(window, "touchmove.drag"), SVG.off(window, "mouseup.drag"), SVG.off(window, "touchend.drag");
      }, SVG.extend(SVG.Element, { draggable: function(e2, i2) {
        "function" != typeof e2 && "object" != typeof e2 || (i2 = e2, e2 = true);
        var a2 = this.remember("_draggable") || new t2(this);
        return (e2 = void 0 === e2 || e2) ? a2.init(i2 || {}, e2) : (this.off("mousedown.drag"), this.off("touchstart.drag")), this;
      } });
    }).call(void 0), function() {
      function t2(t3) {
        this.el = t3, t3.remember("_selectHandler", this), this.pointSelection = { isSelected: false }, this.rectSelection = { isSelected: false }, this.pointsList = { lt: [0, 0], rt: ["width", 0], rb: ["width", "height"], lb: [0, "height"], t: ["width", 0], r: ["width", "height"], b: ["width", "height"], l: [0, "height"] }, this.pointCoord = function(t4, e2, i2) {
          var a2 = "string" != typeof t4 ? t4 : e2[t4];
          return i2 ? a2 / 2 : a2;
        }, this.pointCoords = function(t4, e2) {
          var i2 = this.pointsList[t4];
          return { x: this.pointCoord(i2[0], e2, "t" === t4 || "b" === t4), y: this.pointCoord(i2[1], e2, "r" === t4 || "l" === t4) };
        };
      }
      t2.prototype.init = function(t3, e2) {
        var i2 = this.el.bbox();
        this.options = {};
        var a2 = this.el.selectize.defaults.points;
        for (var s2 in this.el.selectize.defaults)
          this.options[s2] = this.el.selectize.defaults[s2], void 0 !== e2[s2] && (this.options[s2] = e2[s2]);
        var r2 = ["points", "pointsExclude"];
        for (var s2 in r2) {
          var o2 = this.options[r2[s2]];
          "string" == typeof o2 ? o2 = o2.length > 0 ? o2.split(/\s*,\s*/i) : [] : "boolean" == typeof o2 && "points" === r2[s2] && (o2 = o2 ? a2 : []), this.options[r2[s2]] = o2;
        }
        this.options.points = [a2, this.options.points].reduce(function(t4, e3) {
          return t4.filter(function(t5) {
            return e3.indexOf(t5) > -1;
          });
        }), this.options.points = [this.options.points, this.options.pointsExclude].reduce(function(t4, e3) {
          return t4.filter(function(t5) {
            return e3.indexOf(t5) < 0;
          });
        }), this.parent = this.el.parent(), this.nested = this.nested || this.parent.group(), this.nested.matrix(new SVG.Matrix(this.el).translate(i2.x, i2.y)), this.options.deepSelect && -1 !== ["line", "polyline", "polygon"].indexOf(this.el.type) ? this.selectPoints(t3) : this.selectRect(t3), this.observe(), this.cleanup();
      }, t2.prototype.selectPoints = function(t3) {
        return this.pointSelection.isSelected = t3, this.pointSelection.set || (this.pointSelection.set = this.parent.set(), this.drawPoints()), this;
      }, t2.prototype.getPointArray = function() {
        var t3 = this.el.bbox();
        return this.el.array().valueOf().map(function(e2) {
          return [e2[0] - t3.x, e2[1] - t3.y];
        });
      }, t2.prototype.drawPoints = function() {
        for (var t3 = this, e2 = this.getPointArray(), i2 = 0, a2 = e2.length; i2 < a2; ++i2) {
          var s2 = /* @__PURE__ */ function(e3) {
            return function(i3) {
              (i3 = i3 || window.event).preventDefault ? i3.preventDefault() : i3.returnValue = false, i3.stopPropagation();
              var a3 = i3.pageX || i3.touches[0].pageX, s3 = i3.pageY || i3.touches[0].pageY;
              t3.el.fire("point", { x: a3, y: s3, i: e3, event: i3 });
            };
          }(i2), r2 = this.drawPoint(e2[i2][0], e2[i2][1]).addClass(this.options.classPoints).addClass(this.options.classPoints + "_point").on("touchstart", s2).on("mousedown", s2);
          this.pointSelection.set.add(r2);
        }
      }, t2.prototype.drawPoint = function(t3, e2) {
        var i2 = this.options.pointType;
        switch (i2) {
          case "circle":
            return this.drawCircle(t3, e2);
          case "rect":
            return this.drawRect(t3, e2);
          default:
            if ("function" == typeof i2)
              return i2.call(this, t3, e2);
            throw new Error("Unknown " + i2 + " point type!");
        }
      }, t2.prototype.drawCircle = function(t3, e2) {
        return this.nested.circle(this.options.pointSize).center(t3, e2);
      }, t2.prototype.drawRect = function(t3, e2) {
        return this.nested.rect(this.options.pointSize, this.options.pointSize).center(t3, e2);
      }, t2.prototype.updatePointSelection = function() {
        var t3 = this.getPointArray();
        this.pointSelection.set.each(function(e2) {
          this.cx() === t3[e2][0] && this.cy() === t3[e2][1] || this.center(t3[e2][0], t3[e2][1]);
        });
      }, t2.prototype.updateRectSelection = function() {
        var t3 = this, e2 = this.el.bbox();
        if (this.rectSelection.set.get(0).attr({ width: e2.width, height: e2.height }), this.options.points.length && this.options.points.map(function(i3, a2) {
          var s2 = t3.pointCoords(i3, e2);
          t3.rectSelection.set.get(a2 + 1).center(s2.x, s2.y);
        }), this.options.rotationPoint) {
          var i2 = this.rectSelection.set.length();
          this.rectSelection.set.get(i2 - 1).center(e2.width / 2, 20);
        }
      }, t2.prototype.selectRect = function(t3) {
        var e2 = this, i2 = this.el.bbox();
        function a2(t4) {
          return function(i3) {
            (i3 = i3 || window.event).preventDefault ? i3.preventDefault() : i3.returnValue = false, i3.stopPropagation();
            var a3 = i3.pageX || i3.touches[0].pageX, s3 = i3.pageY || i3.touches[0].pageY;
            e2.el.fire(t4, { x: a3, y: s3, event: i3 });
          };
        }
        if (this.rectSelection.isSelected = t3, this.rectSelection.set = this.rectSelection.set || this.parent.set(), this.rectSelection.set.get(0) || this.rectSelection.set.add(this.nested.rect(i2.width, i2.height).addClass(this.options.classRect)), this.options.points.length && this.rectSelection.set.length() < 2) {
          this.options.points.map(function(t4, s3) {
            var r3 = e2.pointCoords(t4, i2), o2 = e2.drawPoint(r3.x, r3.y).attr("class", e2.options.classPoints + "_" + t4).on("mousedown", a2(t4)).on("touchstart", a2(t4));
            e2.rectSelection.set.add(o2);
          }), this.rectSelection.set.each(function() {
            this.addClass(e2.options.classPoints);
          });
        }
        if (this.options.rotationPoint && (this.options.points && !this.rectSelection.set.get(9) || !this.options.points && !this.rectSelection.set.get(1))) {
          var s2 = function(t4) {
            (t4 = t4 || window.event).preventDefault ? t4.preventDefault() : t4.returnValue = false, t4.stopPropagation();
            var i3 = t4.pageX || t4.touches[0].pageX, a3 = t4.pageY || t4.touches[0].pageY;
            e2.el.fire("rot", { x: i3, y: a3, event: t4 });
          }, r2 = this.drawPoint(i2.width / 2, 20).attr("class", this.options.classPoints + "_rot").on("touchstart", s2).on("mousedown", s2);
          this.rectSelection.set.add(r2);
        }
      }, t2.prototype.handler = function() {
        var t3 = this.el.bbox();
        this.nested.matrix(new SVG.Matrix(this.el).translate(t3.x, t3.y)), this.rectSelection.isSelected && this.updateRectSelection(), this.pointSelection.isSelected && this.updatePointSelection();
      }, t2.prototype.observe = function() {
        var t3 = this;
        if (MutationObserver)
          if (this.rectSelection.isSelected || this.pointSelection.isSelected)
            this.observerInst = this.observerInst || new MutationObserver(function() {
              t3.handler();
            }), this.observerInst.observe(this.el.node, { attributes: true });
          else
            try {
              this.observerInst.disconnect(), delete this.observerInst;
            } catch (t4) {
            }
        else
          this.el.off("DOMAttrModified.select"), (this.rectSelection.isSelected || this.pointSelection.isSelected) && this.el.on("DOMAttrModified.select", function() {
            t3.handler();
          });
      }, t2.prototype.cleanup = function() {
        !this.rectSelection.isSelected && this.rectSelection.set && (this.rectSelection.set.each(function() {
          this.remove();
        }), this.rectSelection.set.clear(), delete this.rectSelection.set), !this.pointSelection.isSelected && this.pointSelection.set && (this.pointSelection.set.each(function() {
          this.remove();
        }), this.pointSelection.set.clear(), delete this.pointSelection.set), this.pointSelection.isSelected || this.rectSelection.isSelected || (this.nested.remove(), delete this.nested);
      }, SVG.extend(SVG.Element, { selectize: function(e2, i2) {
        return "object" == typeof e2 && (i2 = e2, e2 = true), (this.remember("_selectHandler") || new t2(this)).init(void 0 === e2 || e2, i2 || {}), this;
      } }), SVG.Element.prototype.selectize.defaults = { points: ["lt", "rt", "rb", "lb", "t", "r", "b", "l"], pointsExclude: [], classRect: "svg_select_boundingRect", classPoints: "svg_select_points", pointSize: 7, rotationPoint: true, deepSelect: false, pointType: "circle" };
    }(), function() {
      (function() {
        function t2(t3) {
          t3.remember("_resizeHandler", this), this.el = t3, this.parameters = {}, this.lastUpdateCall = null, this.p = t3.doc().node.createSVGPoint();
        }
        t2.prototype.transformPoint = function(t3, e2, i2) {
          return this.p.x = t3 - (this.offset.x - window.pageXOffset), this.p.y = e2 - (this.offset.y - window.pageYOffset), this.p.matrixTransform(i2 || this.m);
        }, t2.prototype._extractPosition = function(t3) {
          return { x: null != t3.clientX ? t3.clientX : t3.touches[0].clientX, y: null != t3.clientY ? t3.clientY : t3.touches[0].clientY };
        }, t2.prototype.init = function(t3) {
          var e2 = this;
          if (this.stop(), "stop" !== t3) {
            for (var i2 in this.options = {}, this.el.resize.defaults)
              this.options[i2] = this.el.resize.defaults[i2], void 0 !== t3[i2] && (this.options[i2] = t3[i2]);
            this.el.on("lt.resize", function(t4) {
              e2.resize(t4 || window.event);
            }), this.el.on("rt.resize", function(t4) {
              e2.resize(t4 || window.event);
            }), this.el.on("rb.resize", function(t4) {
              e2.resize(t4 || window.event);
            }), this.el.on("lb.resize", function(t4) {
              e2.resize(t4 || window.event);
            }), this.el.on("t.resize", function(t4) {
              e2.resize(t4 || window.event);
            }), this.el.on("r.resize", function(t4) {
              e2.resize(t4 || window.event);
            }), this.el.on("b.resize", function(t4) {
              e2.resize(t4 || window.event);
            }), this.el.on("l.resize", function(t4) {
              e2.resize(t4 || window.event);
            }), this.el.on("rot.resize", function(t4) {
              e2.resize(t4 || window.event);
            }), this.el.on("point.resize", function(t4) {
              e2.resize(t4 || window.event);
            }), this.update();
          }
        }, t2.prototype.stop = function() {
          return this.el.off("lt.resize"), this.el.off("rt.resize"), this.el.off("rb.resize"), this.el.off("lb.resize"), this.el.off("t.resize"), this.el.off("r.resize"), this.el.off("b.resize"), this.el.off("l.resize"), this.el.off("rot.resize"), this.el.off("point.resize"), this;
        }, t2.prototype.resize = function(t3) {
          var e2 = this;
          this.m = this.el.node.getScreenCTM().inverse(), this.offset = { x: window.pageXOffset, y: window.pageYOffset };
          var i2 = this._extractPosition(t3.detail.event);
          if (this.parameters = { type: this.el.type, p: this.transformPoint(i2.x, i2.y), x: t3.detail.x, y: t3.detail.y, box: this.el.bbox(), rotation: this.el.transform().rotation }, "text" === this.el.type && (this.parameters.fontSize = this.el.attr()["font-size"]), void 0 !== t3.detail.i) {
            var a2 = this.el.array().valueOf();
            this.parameters.i = t3.detail.i, this.parameters.pointCoords = [a2[t3.detail.i][0], a2[t3.detail.i][1]];
          }
          switch (t3.type) {
            case "lt":
              this.calc = function(t4, e3) {
                var i3 = this.snapToGrid(t4, e3);
                if (this.parameters.box.width - i3[0] > 0 && this.parameters.box.height - i3[1] > 0) {
                  if ("text" === this.parameters.type)
                    return this.el.move(this.parameters.box.x + i3[0], this.parameters.box.y), void this.el.attr("font-size", this.parameters.fontSize - i3[0]);
                  i3 = this.checkAspectRatio(i3), this.el.move(this.parameters.box.x + i3[0], this.parameters.box.y + i3[1]).size(this.parameters.box.width - i3[0], this.parameters.box.height - i3[1]);
                }
              };
              break;
            case "rt":
              this.calc = function(t4, e3) {
                var i3 = this.snapToGrid(t4, e3, 2);
                if (this.parameters.box.width + i3[0] > 0 && this.parameters.box.height - i3[1] > 0) {
                  if ("text" === this.parameters.type)
                    return this.el.move(this.parameters.box.x - i3[0], this.parameters.box.y), void this.el.attr("font-size", this.parameters.fontSize + i3[0]);
                  i3 = this.checkAspectRatio(i3, true), this.el.move(this.parameters.box.x, this.parameters.box.y + i3[1]).size(this.parameters.box.width + i3[0], this.parameters.box.height - i3[1]);
                }
              };
              break;
            case "rb":
              this.calc = function(t4, e3) {
                var i3 = this.snapToGrid(t4, e3, 0);
                if (this.parameters.box.width + i3[0] > 0 && this.parameters.box.height + i3[1] > 0) {
                  if ("text" === this.parameters.type)
                    return this.el.move(this.parameters.box.x - i3[0], this.parameters.box.y), void this.el.attr("font-size", this.parameters.fontSize + i3[0]);
                  i3 = this.checkAspectRatio(i3), this.el.move(this.parameters.box.x, this.parameters.box.y).size(this.parameters.box.width + i3[0], this.parameters.box.height + i3[1]);
                }
              };
              break;
            case "lb":
              this.calc = function(t4, e3) {
                var i3 = this.snapToGrid(t4, e3, 1);
                if (this.parameters.box.width - i3[0] > 0 && this.parameters.box.height + i3[1] > 0) {
                  if ("text" === this.parameters.type)
                    return this.el.move(this.parameters.box.x + i3[0], this.parameters.box.y), void this.el.attr("font-size", this.parameters.fontSize - i3[0]);
                  i3 = this.checkAspectRatio(i3, true), this.el.move(this.parameters.box.x + i3[0], this.parameters.box.y).size(this.parameters.box.width - i3[0], this.parameters.box.height + i3[1]);
                }
              };
              break;
            case "t":
              this.calc = function(t4, e3) {
                var i3 = this.snapToGrid(t4, e3, 2);
                if (this.parameters.box.height - i3[1] > 0) {
                  if ("text" === this.parameters.type)
                    return;
                  this.el.move(this.parameters.box.x, this.parameters.box.y + i3[1]).height(this.parameters.box.height - i3[1]);
                }
              };
              break;
            case "r":
              this.calc = function(t4, e3) {
                var i3 = this.snapToGrid(t4, e3, 0);
                if (this.parameters.box.width + i3[0] > 0) {
                  if ("text" === this.parameters.type)
                    return;
                  this.el.move(this.parameters.box.x, this.parameters.box.y).width(this.parameters.box.width + i3[0]);
                }
              };
              break;
            case "b":
              this.calc = function(t4, e3) {
                var i3 = this.snapToGrid(t4, e3, 0);
                if (this.parameters.box.height + i3[1] > 0) {
                  if ("text" === this.parameters.type)
                    return;
                  this.el.move(this.parameters.box.x, this.parameters.box.y).height(this.parameters.box.height + i3[1]);
                }
              };
              break;
            case "l":
              this.calc = function(t4, e3) {
                var i3 = this.snapToGrid(t4, e3, 1);
                if (this.parameters.box.width - i3[0] > 0) {
                  if ("text" === this.parameters.type)
                    return;
                  this.el.move(this.parameters.box.x + i3[0], this.parameters.box.y).width(this.parameters.box.width - i3[0]);
                }
              };
              break;
            case "rot":
              this.calc = function(t4, e3) {
                var i3 = t4 + this.parameters.p.x, a3 = e3 + this.parameters.p.y, s2 = Math.atan2(this.parameters.p.y - this.parameters.box.y - this.parameters.box.height / 2, this.parameters.p.x - this.parameters.box.x - this.parameters.box.width / 2), r2 = Math.atan2(a3 - this.parameters.box.y - this.parameters.box.height / 2, i3 - this.parameters.box.x - this.parameters.box.width / 2), o2 = this.parameters.rotation + 180 * (r2 - s2) / Math.PI + this.options.snapToAngle / 2;
                this.el.center(this.parameters.box.cx, this.parameters.box.cy).rotate(o2 - o2 % this.options.snapToAngle, this.parameters.box.cx, this.parameters.box.cy);
              };
              break;
            case "point":
              this.calc = function(t4, e3) {
                var i3 = this.snapToGrid(t4, e3, this.parameters.pointCoords[0], this.parameters.pointCoords[1]), a3 = this.el.array().valueOf();
                a3[this.parameters.i][0] = this.parameters.pointCoords[0] + i3[0], a3[this.parameters.i][1] = this.parameters.pointCoords[1] + i3[1], this.el.plot(a3);
              };
          }
          this.el.fire("resizestart", { dx: this.parameters.x, dy: this.parameters.y, event: t3 }), SVG.on(window, "touchmove.resize", function(t4) {
            e2.update(t4 || window.event);
          }), SVG.on(window, "touchend.resize", function() {
            e2.done();
          }), SVG.on(window, "mousemove.resize", function(t4) {
            e2.update(t4 || window.event);
          }), SVG.on(window, "mouseup.resize", function() {
            e2.done();
          });
        }, t2.prototype.update = function(t3) {
          if (t3) {
            var e2 = this._extractPosition(t3), i2 = this.transformPoint(e2.x, e2.y), a2 = i2.x - this.parameters.p.x, s2 = i2.y - this.parameters.p.y;
            this.lastUpdateCall = [a2, s2], this.calc(a2, s2), this.el.fire("resizing", { dx: a2, dy: s2, event: t3 });
          } else
            this.lastUpdateCall && this.calc(this.lastUpdateCall[0], this.lastUpdateCall[1]);
        }, t2.prototype.done = function() {
          this.lastUpdateCall = null, SVG.off(window, "mousemove.resize"), SVG.off(window, "mouseup.resize"), SVG.off(window, "touchmove.resize"), SVG.off(window, "touchend.resize"), this.el.fire("resizedone");
        }, t2.prototype.snapToGrid = function(t3, e2, i2, a2) {
          var s2;
          return void 0 !== a2 ? s2 = [(i2 + t3) % this.options.snapToGrid, (a2 + e2) % this.options.snapToGrid] : (i2 = null == i2 ? 3 : i2, s2 = [(this.parameters.box.x + t3 + (1 & i2 ? 0 : this.parameters.box.width)) % this.options.snapToGrid, (this.parameters.box.y + e2 + (2 & i2 ? 0 : this.parameters.box.height)) % this.options.snapToGrid]), t3 < 0 && (s2[0] -= this.options.snapToGrid), e2 < 0 && (s2[1] -= this.options.snapToGrid), t3 -= Math.abs(s2[0]) < this.options.snapToGrid / 2 ? s2[0] : s2[0] - (t3 < 0 ? -this.options.snapToGrid : this.options.snapToGrid), e2 -= Math.abs(s2[1]) < this.options.snapToGrid / 2 ? s2[1] : s2[1] - (e2 < 0 ? -this.options.snapToGrid : this.options.snapToGrid), this.constraintToBox(t3, e2, i2, a2);
        }, t2.prototype.constraintToBox = function(t3, e2, i2, a2) {
          var s2, r2, o2 = this.options.constraint || {};
          return void 0 !== a2 ? (s2 = i2, r2 = a2) : (s2 = this.parameters.box.x + (1 & i2 ? 0 : this.parameters.box.width), r2 = this.parameters.box.y + (2 & i2 ? 0 : this.parameters.box.height)), void 0 !== o2.minX && s2 + t3 < o2.minX && (t3 = o2.minX - s2), void 0 !== o2.maxX && s2 + t3 > o2.maxX && (t3 = o2.maxX - s2), void 0 !== o2.minY && r2 + e2 < o2.minY && (e2 = o2.minY - r2), void 0 !== o2.maxY && r2 + e2 > o2.maxY && (e2 = o2.maxY - r2), [t3, e2];
        }, t2.prototype.checkAspectRatio = function(t3, e2) {
          if (!this.options.saveAspectRatio)
            return t3;
          var i2 = t3.slice(), a2 = this.parameters.box.width / this.parameters.box.height, s2 = this.parameters.box.width + t3[0], r2 = this.parameters.box.height - t3[1], o2 = s2 / r2;
          return o2 < a2 ? (i2[1] = s2 / a2 - this.parameters.box.height, e2 && (i2[1] = -i2[1])) : o2 > a2 && (i2[0] = this.parameters.box.width - r2 * a2, e2 && (i2[0] = -i2[0])), i2;
        }, SVG.extend(SVG.Element, { resize: function(e2) {
          return (this.remember("_resizeHandler") || new t2(this)).init(e2 || {}), this;
        } }), SVG.Element.prototype.resize.defaults = { snapToAngle: 0.1, snapToGrid: 1, constraint: {}, saveAspectRatio: false };
      }).call(this);
    }(), void 0 === window.Apex && (window.Apex = {});
    var Gt = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "initModules", value: function() {
        this.ctx.publicMethods = ["updateOptions", "updateSeries", "appendData", "appendSeries", "isSeriesHidden", "toggleSeries", "showSeries", "hideSeries", "setLocale", "resetSeries", "zoomX", "toggleDataPointSelection", "dataURI", "exportToCSV", "addXaxisAnnotation", "addYaxisAnnotation", "addPointAnnotation", "clearAnnotations", "removeAnnotation", "paper", "destroy"], this.ctx.eventList = ["click", "mousedown", "mousemove", "mouseleave", "touchstart", "touchmove", "touchleave", "mouseup", "touchend"], this.ctx.animations = new b(this.ctx), this.ctx.axes = new J(this.ctx), this.ctx.core = new Wt(this.ctx.el, this.ctx), this.ctx.config = new E({}), this.ctx.data = new W(this.ctx), this.ctx.grid = new j(this.ctx), this.ctx.graphics = new m(this.ctx), this.ctx.coreUtils = new y(this.ctx), this.ctx.crosshairs = new Q(this.ctx), this.ctx.events = new Z2(this.ctx), this.ctx.exports = new G(this.ctx), this.ctx.localization = new $(this.ctx), this.ctx.options = new L(), this.ctx.responsive = new K(this.ctx), this.ctx.series = new N(this.ctx), this.ctx.theme = new tt(this.ctx), this.ctx.formatters = new T(this.ctx), this.ctx.titleSubtitle = new et(this.ctx), this.ctx.legend = new lt(this.ctx), this.ctx.toolbar = new ht(this.ctx), this.ctx.tooltip = new bt(this.ctx), this.ctx.dimensions = new ot(this.ctx), this.ctx.updateHelpers = new Bt(this.ctx), this.ctx.zoomPanSelection = new ct(this.ctx), this.ctx.w.globals.tooltip = new bt(this.ctx);
      } }]), t2;
    }();
    var Vt = function() {
      function t2(e2) {
        a(this, t2), this.ctx = e2, this.w = e2.w;
      }
      return r(t2, [{ key: "clear", value: function(t3) {
        var e2 = t3.isUpdating;
        this.ctx.zoomPanSelection && this.ctx.zoomPanSelection.destroy(), this.ctx.toolbar && this.ctx.toolbar.destroy(), this.ctx.animations = null, this.ctx.axes = null, this.ctx.annotations = null, this.ctx.core = null, this.ctx.data = null, this.ctx.grid = null, this.ctx.series = null, this.ctx.responsive = null, this.ctx.theme = null, this.ctx.formatters = null, this.ctx.titleSubtitle = null, this.ctx.legend = null, this.ctx.dimensions = null, this.ctx.options = null, this.ctx.crosshairs = null, this.ctx.zoomPanSelection = null, this.ctx.updateHelpers = null, this.ctx.toolbar = null, this.ctx.localization = null, this.ctx.w.globals.tooltip = null, this.clearDomElements({ isUpdating: e2 });
      } }, { key: "killSVG", value: function(t3) {
        t3.each(function(t4, e2) {
          this.removeClass("*"), this.off(), this.stop();
        }, true), t3.ungroup(), t3.clear();
      } }, { key: "clearDomElements", value: function(t3) {
        var e2 = this, i2 = t3.isUpdating, a2 = this.w.globals.dom.Paper.node;
        a2.parentNode && a2.parentNode.parentNode && !i2 && (a2.parentNode.parentNode.style.minHeight = "unset");
        var s2 = this.w.globals.dom.baseEl;
        s2 && this.ctx.eventList.forEach(function(t4) {
          s2.removeEventListener(t4, e2.ctx.events.documentEvent);
        });
        var r2 = this.w.globals.dom;
        if (null !== this.ctx.el)
          for (; this.ctx.el.firstChild; )
            this.ctx.el.removeChild(this.ctx.el.firstChild);
        this.killSVG(r2.Paper), r2.Paper.remove(), r2.elWrap = null, r2.elGraphical = null, r2.elLegendWrap = null, r2.elLegendForeign = null, r2.baseEl = null, r2.elGridRect = null, r2.elGridRectMask = null, r2.elGridRectMarkerMask = null, r2.elForecastMask = null, r2.elNonForecastMask = null, r2.elDefs = null;
      } }]), t2;
    }();
    var jt = /* @__PURE__ */ new WeakMap();
    var _t = function() {
      function t2(e2, i2) {
        a(this, t2), this.opts = i2, this.ctx = this, this.w = new F(i2).init(), this.el = e2, this.w.globals.cuid = x.randomId(), this.w.globals.chartID = this.w.config.chart.id ? x.escapeString(this.w.config.chart.id) : this.w.globals.cuid, new Gt(this).initModules(), this.create = x.bind(this.create, this), this.windowResizeHandler = this._windowResizeHandler.bind(this), this.parentResizeHandler = this._parentResizeCallback.bind(this);
      }
      return r(t2, [{ key: "render", value: function() {
        var t3 = this;
        return new Promise(function(e2, i2) {
          if (null !== t3.el) {
            void 0 === Apex._chartInstances && (Apex._chartInstances = []), t3.w.config.chart.id && Apex._chartInstances.push({ id: t3.w.globals.chartID, group: t3.w.config.chart.group, chart: t3 }), t3.setLocale(t3.w.config.chart.defaultLocale);
            var a2 = t3.w.config.chart.events.beforeMount;
            if ("function" == typeof a2 && a2(t3, t3.w), t3.events.fireEvent("beforeMount", [t3, t3.w]), window.addEventListener("resize", t3.windowResizeHandler), function(t4, e3) {
              var i3 = false;
              if (t4.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {
                var a3 = t4.getBoundingClientRect();
                "none" !== t4.style.display && 0 !== a3.width || (i3 = true);
              }
              var s3 = new ResizeObserver(function(a4) {
                i3 && e3.call(t4, a4), i3 = true;
              });
              t4.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? Array.from(t4.children).forEach(function(t5) {
                return s3.observe(t5);
              }) : s3.observe(t4), jt.set(e3, s3);
            }(t3.el.parentNode, t3.parentResizeHandler), !t3.css) {
              var s2 = t3.el.getRootNode && t3.el.getRootNode(), r2 = x.is("ShadowRoot", s2), o2 = t3.el.ownerDocument, n2 = o2.getElementById("apexcharts-css");
              if (r2 || !n2) {
                var l2;
                t3.css = document.createElement("style"), t3.css.id = "apexcharts-css", t3.css.textContent = '@keyframes opaque {\n  0% {\n      opacity: 0\n  }\n\n  to {\n      opacity: 1\n  }\n}\n\n@keyframes resizeanim {\n  0%,to {\n      opacity: 0\n  }\n}\n\n.apexcharts-canvas {\n  position: relative;\n  user-select: none\n}\n\n.apexcharts-canvas ::-webkit-scrollbar {\n  -webkit-appearance: none;\n  width: 6px\n}\n\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n  border-radius: 4px;\n  background-color: rgba(0,0,0,.5);\n  box-shadow: 0 0 1px rgba(255,255,255,.5);\n  -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5)\n}\n\n.apexcharts-inner {\n  position: relative\n}\n\n.apexcharts-text tspan {\n  font-family: inherit\n}\n\n.legend-mouseover-inactive {\n  transition: .15s ease all;\n  opacity: .2\n}\n\n.apexcharts-legend-text {\n  padding-left: 15px;\n  margin-left: -15px;\n}\n\n.apexcharts-series-collapsed {\n  opacity: 0\n}\n\n.apexcharts-tooltip {\n  border-radius: 5px;\n  box-shadow: 2px 2px 6px -4px #999;\n  cursor: default;\n  font-size: 14px;\n  left: 62px;\n  opacity: 0;\n  pointer-events: none;\n  position: absolute;\n  top: 20px;\n  display: flex;\n  flex-direction: column;\n  overflow: hidden;\n  white-space: nowrap;\n  z-index: 12;\n  transition: .15s ease all\n}\n\n.apexcharts-tooltip.apexcharts-active {\n  opacity: 1;\n  transition: .15s ease all\n}\n\n.apexcharts-tooltip.apexcharts-theme-light {\n  border: 1px solid #e3e3e3;\n  background: rgba(255,255,255,.96)\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark {\n  color: #fff;\n  background: rgba(30,30,30,.8)\n}\n\n.apexcharts-tooltip * {\n  font-family: inherit\n}\n\n.apexcharts-tooltip-title {\n  padding: 6px;\n  font-size: 15px;\n  margin-bottom: 4px\n}\n\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n  background: #eceff1;\n  border-bottom: 1px solid #ddd\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\n  background: rgba(0,0,0,.7);\n  border-bottom: 1px solid #333\n}\n\n.apexcharts-tooltip-text-goals-value,.apexcharts-tooltip-text-y-value,.apexcharts-tooltip-text-z-value {\n  display: inline-block;\n  margin-left: 5px;\n  font-weight: 600\n}\n\n.apexcharts-tooltip-text-goals-label:empty,.apexcharts-tooltip-text-goals-value:empty,.apexcharts-tooltip-text-y-label:empty,.apexcharts-tooltip-text-y-value:empty,.apexcharts-tooltip-text-z-value:empty,.apexcharts-tooltip-title:empty {\n  display: none\n}\n\n.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {\n  padding: 6px 0 5px\n}\n\n.apexcharts-tooltip-goals-group,.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {\n  display: flex\n}\n\n.apexcharts-tooltip-text-goals-label:not(:empty),.apexcharts-tooltip-text-goals-value:not(:empty) {\n  margin-top: -6px\n}\n\n.apexcharts-tooltip-marker {\n  width: 12px;\n  height: 12px;\n  position: relative;\n  top: 0;\n  margin-right: 10px;\n  border-radius: 50%\n}\n\n.apexcharts-tooltip-series-group {\n  padding: 0 10px;\n  display: none;\n  text-align: left;\n  justify-content: left;\n  align-items: center\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\n  opacity: 1\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active,.apexcharts-tooltip-series-group:last-child {\n  padding-bottom: 4px\n}\n\n.apexcharts-tooltip-series-group-hidden {\n  opacity: 0;\n  height: 0;\n  line-height: 0;\n  padding: 0!important\n}\n\n.apexcharts-tooltip-y-group {\n  padding: 6px 0 5px\n}\n\n.apexcharts-custom-tooltip,.apexcharts-tooltip-box {\n  padding: 4px 8px\n}\n\n.apexcharts-tooltip-boxPlot {\n  display: flex;\n  flex-direction: column-reverse\n}\n\n.apexcharts-tooltip-box>div {\n  margin: 4px 0\n}\n\n.apexcharts-tooltip-box span.value {\n  font-weight: 700\n}\n\n.apexcharts-tooltip-rangebar {\n  padding: 5px 8px\n}\n\n.apexcharts-tooltip-rangebar .category {\n  font-weight: 600;\n  color: #777\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n  font-weight: 700;\n  display: block;\n  margin-bottom: 5px\n}\n\n.apexcharts-xaxistooltip,.apexcharts-yaxistooltip {\n  opacity: 0;\n  pointer-events: none;\n  color: #373d3f;\n  font-size: 13px;\n  text-align: center;\n  border-radius: 2px;\n  position: absolute;\n  z-index: 10;\n  background: #eceff1;\n  border: 1px solid #90a4ae\n}\n\n.apexcharts-xaxistooltip {\n  padding: 9px 10px;\n  transition: .15s ease all\n}\n\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\n  background: rgba(0,0,0,.7);\n  border: 1px solid rgba(0,0,0,.5);\n  color: #fff\n}\n\n.apexcharts-xaxistooltip:after,.apexcharts-xaxistooltip:before {\n  left: 50%;\n  border: solid transparent;\n  content: " ";\n  height: 0;\n  width: 0;\n  position: absolute;\n  pointer-events: none\n}\n\n.apexcharts-xaxistooltip:after {\n  border-color: transparent;\n  border-width: 6px;\n  margin-left: -6px\n}\n\n.apexcharts-xaxistooltip:before {\n  border-color: transparent;\n  border-width: 7px;\n  margin-left: -7px\n}\n\n.apexcharts-xaxistooltip-bottom:after,.apexcharts-xaxistooltip-bottom:before {\n  bottom: 100%\n}\n\n.apexcharts-xaxistooltip-top:after,.apexcharts-xaxistooltip-top:before {\n  top: 100%\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n  border-bottom-color: #eceff1\n}\n\n.apexcharts-xaxistooltip-bottom:before {\n  border-bottom-color: #90a4ae\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\n  border-bottom-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-xaxistooltip-top:after {\n  border-top-color: #eceff1\n}\n\n.apexcharts-xaxistooltip-top:before {\n  border-top-color: #90a4ae\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\n  border-top-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-xaxistooltip.apexcharts-active {\n  opacity: 1;\n  transition: .15s ease all\n}\n\n.apexcharts-yaxistooltip {\n  padding: 4px 10px\n}\n\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\n  background: rgba(0,0,0,.7);\n  border: 1px solid rgba(0,0,0,.5);\n  color: #fff\n}\n\n.apexcharts-yaxistooltip:after,.apexcharts-yaxistooltip:before {\n  top: 50%;\n  border: solid transparent;\n  content: " ";\n  height: 0;\n  width: 0;\n  position: absolute;\n  pointer-events: none\n}\n\n.apexcharts-yaxistooltip:after {\n  border-color: transparent;\n  border-width: 6px;\n  margin-top: -6px\n}\n\n.apexcharts-yaxistooltip:before {\n  border-color: transparent;\n  border-width: 7px;\n  margin-top: -7px\n}\n\n.apexcharts-yaxistooltip-left:after,.apexcharts-yaxistooltip-left:before {\n  left: 100%\n}\n\n.apexcharts-yaxistooltip-right:after,.apexcharts-yaxistooltip-right:before {\n  right: 100%\n}\n\n.apexcharts-yaxistooltip-left:after {\n  border-left-color: #eceff1\n}\n\n.apexcharts-yaxistooltip-left:before {\n  border-left-color: #90a4ae\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\n  border-left-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-yaxistooltip-right:after {\n  border-right-color: #eceff1\n}\n\n.apexcharts-yaxistooltip-right:before {\n  border-right-color: #90a4ae\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\n  border-right-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-yaxistooltip.apexcharts-active {\n  opacity: 1\n}\n\n.apexcharts-yaxistooltip-hidden {\n  display: none\n}\n\n.apexcharts-xcrosshairs,.apexcharts-ycrosshairs {\n  pointer-events: none;\n  opacity: 0;\n  transition: .15s ease all\n}\n\n.apexcharts-xcrosshairs.apexcharts-active,.apexcharts-ycrosshairs.apexcharts-active {\n  opacity: 1;\n  transition: .15s ease all\n}\n\n.apexcharts-ycrosshairs-hidden {\n  opacity: 0\n}\n\n.apexcharts-selection-rect {\n  cursor: move\n}\n\n.svg_select_boundingRect,.svg_select_points_rot {\n  pointer-events: none;\n  opacity: 0;\n  visibility: hidden\n}\n\n.apexcharts-selection-rect+g .svg_select_boundingRect,.apexcharts-selection-rect+g .svg_select_points_rot {\n  opacity: 0;\n  visibility: hidden\n}\n\n.apexcharts-selection-rect+g .svg_select_points_l,.apexcharts-selection-rect+g .svg_select_points_r {\n  cursor: ew-resize;\n  opacity: 1;\n  visibility: visible\n}\n\n.svg_select_points {\n  fill: #efefef;\n  stroke: #333;\n  rx: 2\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\n  cursor: crosshair\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\n  cursor: move\n}\n\n.apexcharts-menu-icon,.apexcharts-pan-icon,.apexcharts-reset-icon,.apexcharts-selection-icon,.apexcharts-toolbar-custom-icon,.apexcharts-zoom-icon,.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {\n  cursor: pointer;\n  width: 20px;\n  height: 20px;\n  line-height: 24px;\n  color: #6e8192;\n  text-align: center\n}\n\n.apexcharts-menu-icon svg,.apexcharts-reset-icon svg,.apexcharts-zoom-icon svg,.apexcharts-zoomin-icon svg,.apexcharts-zoomout-icon svg {\n  fill: #6e8192\n}\n\n.apexcharts-selection-icon svg {\n  fill: #444;\n  transform: scale(.76)\n}\n\n.apexcharts-theme-dark .apexcharts-menu-icon svg,.apexcharts-theme-dark .apexcharts-pan-icon svg,.apexcharts-theme-dark .apexcharts-reset-icon svg,.apexcharts-theme-dark .apexcharts-selection-icon svg,.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg,.apexcharts-theme-dark .apexcharts-zoom-icon svg,.apexcharts-theme-dark .apexcharts-zoomin-icon svg,.apexcharts-theme-dark .apexcharts-zoomout-icon svg {\n  fill: #f3f4f5\n}\n\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg {\n  fill: #008ffb\n}\n\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg,.apexcharts-theme-light .apexcharts-reset-icon:hover svg,.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg {\n  fill: #333\n}\n\n.apexcharts-menu-icon,.apexcharts-selection-icon {\n  position: relative\n}\n\n.apexcharts-reset-icon {\n  margin-left: 5px\n}\n\n.apexcharts-menu-icon,.apexcharts-reset-icon,.apexcharts-zoom-icon {\n  transform: scale(.85)\n}\n\n.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {\n  transform: scale(.7)\n}\n\n.apexcharts-zoomout-icon {\n  margin-right: 3px\n}\n\n.apexcharts-pan-icon {\n  transform: scale(.62);\n  position: relative;\n  left: 1px;\n  top: 0\n}\n\n.apexcharts-pan-icon svg {\n  fill: #fff;\n  stroke: #6e8192;\n  stroke-width: 2\n}\n\n.apexcharts-pan-icon.apexcharts-selected svg {\n  stroke: #008ffb\n}\n\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\n  stroke: #333\n}\n\n.apexcharts-toolbar {\n  position: absolute;\n  z-index: 11;\n  max-width: 176px;\n  text-align: right;\n  border-radius: 3px;\n  padding: 0 6px 2px;\n  display: flex;\n  justify-content: space-between;\n  align-items: center\n}\n\n.apexcharts-menu {\n  background: #fff;\n  position: absolute;\n  top: 100%;\n  border: 1px solid #ddd;\n  border-radius: 3px;\n  padding: 3px;\n  right: 10px;\n  opacity: 0;\n  min-width: 110px;\n  transition: .15s ease all;\n  pointer-events: none\n}\n\n.apexcharts-menu.apexcharts-menu-open {\n  opacity: 1;\n  pointer-events: all;\n  transition: .15s ease all\n}\n\n.apexcharts-menu-item {\n  padding: 6px 7px;\n  font-size: 12px;\n  cursor: pointer\n}\n\n.apexcharts-theme-light .apexcharts-menu-item:hover {\n  background: #eee\n}\n\n.apexcharts-theme-dark .apexcharts-menu {\n  background: rgba(0,0,0,.7);\n  color: #fff\n}\n\n@media screen and (min-width:768px) {\n  .apexcharts-canvas:hover .apexcharts-toolbar {\n      opacity: 1\n  }\n}\n\n.apexcharts-canvas .apexcharts-element-hidden,.apexcharts-datalabel.apexcharts-element-hidden,.apexcharts-hide .apexcharts-series-points {\n  opacity: 0\n}\n\n.apexcharts-hidden-element-shown {\n  opacity: 1;\n  transition: 0.25s ease all;\n}\n.apexcharts-datalabel,.apexcharts-datalabel-label,.apexcharts-datalabel-value,.apexcharts-datalabels,.apexcharts-pie-label {\n  cursor: default;\n  pointer-events: none\n}\n\n.apexcharts-pie-label-delay {\n  opacity: 0;\n  animation-name: opaque;\n  animation-duration: .3s;\n  animation-fill-mode: forwards;\n  animation-timing-function: ease\n}\n\n.apexcharts-radialbar-label {\n  cursor: pointer;\n}\n\n.apexcharts-annotation-rect,.apexcharts-area-series .apexcharts-area,.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-gridline,.apexcharts-line,.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-point-annotation-label,.apexcharts-radar-series path,.apexcharts-radar-series polygon,.apexcharts-toolbar svg,.apexcharts-tooltip .apexcharts-marker,.apexcharts-xaxis-annotation-label,.apexcharts-yaxis-annotation-label,.apexcharts-zoom-rect {\n  pointer-events: none\n}\n\n.apexcharts-marker {\n  transition: .15s ease all\n}\n\n.resize-triggers {\n  animation: 1ms resizeanim;\n  visibility: hidden;\n  opacity: 0;\n  height: 100%;\n  width: 100%;\n  overflow: hidden\n}\n\n.contract-trigger:before,.resize-triggers,.resize-triggers>div {\n  content: " ";\n  display: block;\n  position: absolute;\n  top: 0;\n  left: 0\n}\n\n.resize-triggers>div {\n  height: 100%;\n  width: 100%;\n  background: #eee;\n  overflow: auto\n}\n\n.contract-trigger:before {\n  overflow: hidden;\n  width: 200%;\n  height: 200%\n}\n\n.apexcharts-bar-goals-markers{\n  pointer-events: none\n}\n\n.apexcharts-bar-shadows{\n  pointer-events: none\n}\n\n.apexcharts-rangebar-goals-markers{\n  pointer-events: none\n}';
                var h2 = (null === (l2 = t3.opts.chart) || void 0 === l2 ? void 0 : l2.nonce) || t3.w.config.chart.nonce;
                h2 && t3.css.setAttribute("nonce", h2), r2 ? s2.prepend(t3.css) : o2.head.appendChild(t3.css);
              }
            }
            var c2 = t3.create(t3.w.config.series, {});
            if (!c2)
              return e2(t3);
            t3.mount(c2).then(function() {
              "function" == typeof t3.w.config.chart.events.mounted && t3.w.config.chart.events.mounted(t3, t3.w), t3.events.fireEvent("mounted", [t3, t3.w]), e2(c2);
            }).catch(function(t4) {
              i2(t4);
            });
          } else
            i2(new Error("Element not found"));
        });
      } }, { key: "create", value: function(t3, e2) {
        var i2 = this.w;
        new Gt(this).initModules();
        var a2 = this.w.globals;
        (a2.noData = false, a2.animationEnded = false, this.responsive.checkResponsiveConfig(e2), i2.config.xaxis.convertedCatToNumeric) && new X(i2.config).convertCatToNumericXaxis(i2.config, this.ctx);
        if (null === this.el)
          return a2.animationEnded = true, null;
        if (this.core.setupElements(), "treemap" === i2.config.chart.type && (i2.config.grid.show = false, i2.config.yaxis[0].show = false), 0 === a2.svgWidth)
          return a2.animationEnded = true, null;
        var s2 = y.checkComboSeries(t3);
        a2.comboCharts = s2.comboCharts, a2.comboBarCount = s2.comboBarCount;
        var r2 = t3.every(function(t4) {
          return t4.data && 0 === t4.data.length;
        });
        (0 === t3.length || r2) && this.series.handleNoData(), this.events.setupEventHandlers(), this.data.parseData(t3), this.theme.init(), new H(this).setGlobalMarkerSize(), this.formatters.setLabelFormatters(), this.titleSubtitle.draw(), a2.noData && a2.collapsedSeries.length !== a2.series.length && !i2.config.legend.showForSingleSeries || this.legend.init(), this.series.hasAllSeriesEqualX(), a2.axisCharts && (this.core.coreCalculations(), "category" !== i2.config.xaxis.type && this.formatters.setLabelFormatters(), this.ctx.toolbar.minX = i2.globals.minX, this.ctx.toolbar.maxX = i2.globals.maxX), this.formatters.heatmapLabelFormatters(), new y(this).getLargestMarkerSize(), this.dimensions.plotCoords();
        var o2 = this.core.xySettings();
        this.grid.createGridMask();
        var n2 = this.core.plotChartType(t3, o2), l2 = new O(this);
        return l2.bringForward(), i2.config.dataLabels.background.enabled && l2.dataLabelsBackground(), this.core.shiftGraphPosition(), { elGraph: n2, xyRatios: o2, dimensions: { plot: { left: i2.globals.translateX, top: i2.globals.translateY, width: i2.globals.gridWidth, height: i2.globals.gridHeight } } };
      } }, { key: "mount", value: function() {
        var t3 = this, e2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, i2 = this, a2 = i2.w;
        return new Promise(function(s2, r2) {
          if (null === i2.el)
            return r2(new Error("Not enough data to display or target element not found"));
          (null === e2 || a2.globals.allSeriesCollapsed) && i2.series.handleNoData(), i2.grid = new j(i2);
          var o2, n2, l2 = i2.grid.drawGrid();
          (i2.annotations = new P(i2), i2.annotations.drawImageAnnos(), i2.annotations.drawTextAnnos(), "back" === a2.config.grid.position) && (l2 && a2.globals.dom.elGraphical.add(l2.el), null != l2 && null !== (o2 = l2.elGridBorders) && void 0 !== o2 && o2.node && a2.globals.dom.elGraphical.add(l2.elGridBorders));
          if (Array.isArray(e2.elGraph))
            for (var h2 = 0; h2 < e2.elGraph.length; h2++)
              a2.globals.dom.elGraphical.add(e2.elGraph[h2]);
          else
            a2.globals.dom.elGraphical.add(e2.elGraph);
          "front" === a2.config.grid.position && (l2 && a2.globals.dom.elGraphical.add(l2.el), null != l2 && null !== (n2 = l2.elGridBorders) && void 0 !== n2 && n2.node && a2.globals.dom.elGraphical.add(l2.elGridBorders));
          "front" === a2.config.xaxis.crosshairs.position && i2.crosshairs.drawXCrosshairs(), "front" === a2.config.yaxis[0].crosshairs.position && i2.crosshairs.drawYCrosshairs(), "treemap" !== a2.config.chart.type && i2.axes.drawAxis(a2.config.chart.type, l2);
          var c2 = new V(t3.ctx, l2), d2 = new q(t3.ctx, l2);
          if (null !== l2 && (c2.xAxisLabelCorrections(l2.xAxisTickWidth), d2.setYAxisTextAlignments(), a2.config.yaxis.map(function(t4, e3) {
            -1 === a2.globals.ignoreYAxisIndexes.indexOf(e3) && d2.yAxisTitleRotate(e3, t4.opposite);
          })), i2.annotations.drawAxesAnnotations(), !a2.globals.noData) {
            if (a2.config.tooltip.enabled && !a2.globals.noData && i2.w.globals.tooltip.drawTooltip(e2.xyRatios), a2.globals.axisCharts && (a2.globals.isXNumeric || a2.config.xaxis.convertedCatToNumeric || a2.globals.isRangeBar))
              (a2.config.chart.zoom.enabled || a2.config.chart.selection && a2.config.chart.selection.enabled || a2.config.chart.pan && a2.config.chart.pan.enabled) && i2.zoomPanSelection.init({ xyRatios: e2.xyRatios });
            else {
              var g2 = a2.config.chart.toolbar.tools;
              ["zoom", "zoomin", "zoomout", "selection", "pan", "reset"].forEach(function(t4) {
                g2[t4] = false;
              });
            }
            a2.config.chart.toolbar.show && !a2.globals.allSeriesCollapsed && i2.toolbar.createToolbar();
          }
          a2.globals.memory.methodsToExec.length > 0 && a2.globals.memory.methodsToExec.forEach(function(t4) {
            t4.method(t4.params, false, t4.context);
          }), a2.globals.axisCharts || a2.globals.noData || i2.core.resizeNonAxisCharts(), s2(i2);
        });
      } }, { key: "destroy", value: function() {
        var t3, e2;
        window.removeEventListener("resize", this.windowResizeHandler), this.el.parentNode, t3 = this.parentResizeHandler, (e2 = jt.get(t3)) && (e2.disconnect(), jt.delete(t3));
        var i2 = this.w.config.chart.id;
        i2 && Apex._chartInstances.forEach(function(t4, e3) {
          t4.id === x.escapeString(i2) && Apex._chartInstances.splice(e3, 1);
        }), new Vt(this.ctx).clear({ isUpdating: false });
      } }, { key: "updateOptions", value: function(t3) {
        var e2 = this, i2 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], a2 = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], s2 = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3], r2 = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4], o2 = this.w;
        return o2.globals.selection = void 0, t3.series && (this.series.resetSeries(false, true, false), t3.series.length && t3.series[0].data && (t3.series = t3.series.map(function(t4, i3) {
          return e2.updateHelpers._extendSeries(t4, i3);
        })), this.updateHelpers.revertDefaultAxisMinMax()), t3.xaxis && (t3 = this.updateHelpers.forceXAxisUpdate(t3)), t3.yaxis && (t3 = this.updateHelpers.forceYAxisUpdate(t3)), o2.globals.collapsedSeriesIndices.length > 0 && this.series.clearPreviousPaths(), t3.theme && (t3 = this.theme.updateThemeOptions(t3)), this.updateHelpers._updateOptions(t3, i2, a2, s2, r2);
      } }, { key: "updateSeries", value: function() {
        var t3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], e2 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i2 = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
        return this.series.resetSeries(false), this.updateHelpers.revertDefaultAxisMinMax(), this.updateHelpers._updateSeries(t3, e2, i2);
      } }, { key: "appendSeries", value: function(t3) {
        var e2 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i2 = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], a2 = this.w.config.series.slice();
        return a2.push(t3), this.series.resetSeries(false), this.updateHelpers.revertDefaultAxisMinMax(), this.updateHelpers._updateSeries(a2, e2, i2);
      } }, { key: "appendData", value: function(t3) {
        var e2 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i2 = this;
        i2.w.globals.dataChanged = true, i2.series.getPreviousPaths();
        for (var a2 = i2.w.config.series.slice(), s2 = 0; s2 < a2.length; s2++)
          if (null !== t3[s2] && void 0 !== t3[s2])
            for (var r2 = 0; r2 < t3[s2].data.length; r2++)
              a2[s2].data.push(t3[s2].data[r2]);
        return i2.w.config.series = a2, e2 && (i2.w.globals.initialSeries = x.clone(i2.w.config.series)), this.update();
      } }, { key: "update", value: function(t3) {
        var e2 = this;
        return new Promise(function(i2, a2) {
          new Vt(e2.ctx).clear({ isUpdating: true });
          var s2 = e2.create(e2.w.config.series, t3);
          if (!s2)
            return i2(e2);
          e2.mount(s2).then(function() {
            "function" == typeof e2.w.config.chart.events.updated && e2.w.config.chart.events.updated(e2, e2.w), e2.events.fireEvent("updated", [e2, e2.w]), e2.w.globals.isDirty = true, i2(e2);
          }).catch(function(t4) {
            a2(t4);
          });
        });
      } }, { key: "getSyncedCharts", value: function() {
        var t3 = this.getGroupedCharts(), e2 = [this];
        return t3.length && (e2 = [], t3.forEach(function(t4) {
          e2.push(t4);
        })), e2;
      } }, { key: "getGroupedCharts", value: function() {
        var t3 = this;
        return Apex._chartInstances.filter(function(t4) {
          if (t4.group)
            return true;
        }).map(function(e2) {
          return t3.w.config.chart.group === e2.group ? e2.chart : t3;
        });
      } }, { key: "toggleSeries", value: function(t3) {
        return this.series.toggleSeries(t3);
      } }, { key: "highlightSeriesOnLegendHover", value: function(t3, e2) {
        return this.series.toggleSeriesOnHover(t3, e2);
      } }, { key: "showSeries", value: function(t3) {
        this.series.showSeries(t3);
      } }, { key: "hideSeries", value: function(t3) {
        this.series.hideSeries(t3);
      } }, { key: "isSeriesHidden", value: function(t3) {
        this.series.isSeriesHidden(t3);
      } }, { key: "resetSeries", value: function() {
        var t3 = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0], e2 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];
        this.series.resetSeries(t3, e2);
      } }, { key: "addEventListener", value: function(t3, e2) {
        this.events.addEventListener(t3, e2);
      } }, { key: "removeEventListener", value: function(t3, e2) {
        this.events.removeEventListener(t3, e2);
      } }, { key: "addXaxisAnnotation", value: function(t3) {
        var e2 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0, a2 = this;
        i2 && (a2 = i2), a2.annotations.addXaxisAnnotationExternal(t3, e2, a2);
      } }, { key: "addYaxisAnnotation", value: function(t3) {
        var e2 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0, a2 = this;
        i2 && (a2 = i2), a2.annotations.addYaxisAnnotationExternal(t3, e2, a2);
      } }, { key: "addPointAnnotation", value: function(t3) {
        var e2 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0, a2 = this;
        i2 && (a2 = i2), a2.annotations.addPointAnnotationExternal(t3, e2, a2);
      } }, { key: "clearAnnotations", value: function() {
        var t3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0, e2 = this;
        t3 && (e2 = t3), e2.annotations.clearAnnotations(e2);
      } }, { key: "removeAnnotation", value: function(t3) {
        var e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : void 0, i2 = this;
        e2 && (i2 = e2), i2.annotations.removeAnnotation(i2, t3);
      } }, { key: "getChartArea", value: function() {
        return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner");
      } }, { key: "getSeriesTotalXRange", value: function(t3, e2) {
        return this.coreUtils.getSeriesTotalsXRange(t3, e2);
      } }, { key: "getHighestValueInSeries", value: function() {
        var t3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;
        return new U(this.ctx).getMinYMaxY(t3).highestY;
      } }, { key: "getLowestValueInSeries", value: function() {
        var t3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;
        return new U(this.ctx).getMinYMaxY(t3).lowestY;
      } }, { key: "getSeriesTotal", value: function() {
        return this.w.globals.seriesTotals;
      } }, { key: "toggleDataPointSelection", value: function(t3, e2) {
        return this.updateHelpers.toggleDataPointSelection(t3, e2);
      } }, { key: "zoomX", value: function(t3, e2) {
        this.ctx.toolbar.zoomUpdateOptions(t3, e2);
      } }, { key: "setLocale", value: function(t3) {
        this.localization.setCurrentLocaleValues(t3);
      } }, { key: "dataURI", value: function(t3) {
        return new G(this.ctx).dataURI(t3);
      } }, { key: "exportToCSV", value: function() {
        var t3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
        return new G(this.ctx).exportToCSV(t3);
      } }, { key: "paper", value: function() {
        return this.w.globals.dom.Paper;
      } }, { key: "_parentResizeCallback", value: function() {
        this.w.globals.animationEnded && this.w.config.chart.redrawOnParentResize && this._windowResize();
      } }, { key: "_windowResize", value: function() {
        var t3 = this;
        clearTimeout(this.w.globals.resizeTimer), this.w.globals.resizeTimer = window.setTimeout(function() {
          t3.w.globals.resized = true, t3.w.globals.dataChanged = false, t3.ctx.update();
        }, 150);
      } }, { key: "_windowResizeHandler", value: function() {
        var t3 = this.w.config.chart.redrawOnWindowResize;
        "function" == typeof t3 && (t3 = t3()), t3 && this._windowResize();
      } }], [{ key: "getChartByID", value: function(t3) {
        var e2 = x.escapeString(t3);
        if (Apex._chartInstances) {
          var i2 = Apex._chartInstances.filter(function(t4) {
            return t4.id === e2;
          })[0];
          return i2 && i2.chart;
        }
      } }, { key: "initOnLoad", value: function() {
        for (var e2 = document.querySelectorAll("[data-apexcharts]"), i2 = 0; i2 < e2.length; i2++) {
          new t2(e2[i2], JSON.parse(e2[i2].getAttribute("data-options"))).render();
        }
      } }, { key: "exec", value: function(t3, e2) {
        var i2 = this.getChartByID(t3);
        if (i2) {
          i2.w.globals.isExecCalled = true;
          var a2 = null;
          if (-1 !== i2.publicMethods.indexOf(e2)) {
            for (var s2 = arguments.length, r2 = new Array(s2 > 2 ? s2 - 2 : 0), o2 = 2; o2 < s2; o2++)
              r2[o2 - 2] = arguments[o2];
            a2 = i2[e2].apply(i2, r2);
          }
          return a2;
        }
      } }, { key: "merge", value: function(t3, e2) {
        return x.extend(t3, e2);
      } }]), t2;
    }();
    module.exports = _t;
  }
});

// node_modules/powerbi-client/dist/powerbi.js
var require_powerbi = __commonJS({
  "node_modules/powerbi-client/dist/powerbi.js"(exports, module) {
    "use strict";
    (function webpackUniversalModuleDefinition(root, factory) {
      if (typeof exports === "object" && typeof module === "object")
        module.exports = factory();
      else if (typeof define === "function" && define.amd)
        define([], factory);
      else if (typeof exports === "object")
        exports["powerbi-client"] = factory();
      else
        root["powerbi-client"] = factory();
    })(exports, () => {
      return (
        /******/
        (() => {
          var __webpack_modules__ = {
            /***/
            "./node_modules/http-post-message/dist/httpPostMessage.js": (
              /*!****************************************************************!*\
                !*** ./node_modules/http-post-message/dist/httpPostMessage.js ***!
                \****************************************************************/
              /***/
              function(module2) {
                (function webpackUniversalModuleDefinition(root, factory) {
                  if (true)
                    module2.exports = factory();
                  else {
                  }
                })(this, function() {
                  return (
                    /******/
                    function(modules) {
                      var installedModules = {};
                      function __nested_webpack_require_626__(moduleId) {
                        if (installedModules[moduleId])
                          return installedModules[moduleId].exports;
                        var module3 = installedModules[moduleId] = {
                          /******/
                          exports: {},
                          /******/
                          id: moduleId,
                          /******/
                          loaded: false
                          /******/
                        };
                        modules[moduleId].call(module3.exports, module3, module3.exports, __nested_webpack_require_626__);
                        module3.loaded = true;
                        return module3.exports;
                      }
                      __nested_webpack_require_626__.m = modules;
                      __nested_webpack_require_626__.c = installedModules;
                      __nested_webpack_require_626__.p = "";
                      return __nested_webpack_require_626__(0);
                    }([
                      /* 0 */
                      /***/
                      function(module3, exports2) {
                        "use strict";
                        var HttpPostMessage = function() {
                          function HttpPostMessage2(windowPostMessageProxy, defaultHeaders, defaultTargetWindow) {
                            if (defaultHeaders === void 0) {
                              defaultHeaders = {};
                            }
                            this.defaultHeaders = defaultHeaders;
                            this.defaultTargetWindow = defaultTargetWindow;
                            this.windowPostMessageProxy = windowPostMessageProxy;
                          }
                          HttpPostMessage2.addTrackingProperties = function(message, trackingProperties) {
                            message.headers = message.headers || {};
                            if (trackingProperties && trackingProperties.id) {
                              message.headers.id = trackingProperties.id;
                            }
                            return message;
                          };
                          HttpPostMessage2.getTrackingProperties = function(message) {
                            return {
                              id: message.headers && message.headers.id
                            };
                          };
                          HttpPostMessage2.isErrorMessage = function(message) {
                            if (typeof (message && message.statusCode) !== "number") {
                              return false;
                            }
                            return !(200 <= message.statusCode && message.statusCode < 300);
                          };
                          HttpPostMessage2.prototype.get = function(url, headers, targetWindow) {
                            if (headers === void 0) {
                              headers = {};
                            }
                            if (targetWindow === void 0) {
                              targetWindow = this.defaultTargetWindow;
                            }
                            return this.send({
                              method: "GET",
                              url,
                              headers
                            }, targetWindow);
                          };
                          HttpPostMessage2.prototype.post = function(url, body, headers, targetWindow) {
                            if (headers === void 0) {
                              headers = {};
                            }
                            if (targetWindow === void 0) {
                              targetWindow = this.defaultTargetWindow;
                            }
                            return this.send({
                              method: "POST",
                              url,
                              headers,
                              body
                            }, targetWindow);
                          };
                          HttpPostMessage2.prototype.put = function(url, body, headers, targetWindow) {
                            if (headers === void 0) {
                              headers = {};
                            }
                            if (targetWindow === void 0) {
                              targetWindow = this.defaultTargetWindow;
                            }
                            return this.send({
                              method: "PUT",
                              url,
                              headers,
                              body
                            }, targetWindow);
                          };
                          HttpPostMessage2.prototype.patch = function(url, body, headers, targetWindow) {
                            if (headers === void 0) {
                              headers = {};
                            }
                            if (targetWindow === void 0) {
                              targetWindow = this.defaultTargetWindow;
                            }
                            return this.send({
                              method: "PATCH",
                              url,
                              headers,
                              body
                            }, targetWindow);
                          };
                          HttpPostMessage2.prototype.delete = function(url, body, headers, targetWindow) {
                            if (body === void 0) {
                              body = null;
                            }
                            if (headers === void 0) {
                              headers = {};
                            }
                            if (targetWindow === void 0) {
                              targetWindow = this.defaultTargetWindow;
                            }
                            return this.send({
                              method: "DELETE",
                              url,
                              headers,
                              body
                            }, targetWindow);
                          };
                          HttpPostMessage2.prototype.send = function(request, targetWindow) {
                            if (targetWindow === void 0) {
                              targetWindow = this.defaultTargetWindow;
                            }
                            request.headers = this.assign({}, this.defaultHeaders, request.headers);
                            if (!targetWindow) {
                              throw new Error("target window is not provided.  You must either provide the target window explicitly as argument to request, or specify default target window when constructing instance of this class.");
                            }
                            return this.windowPostMessageProxy.postMessage(targetWindow, request);
                          };
                          HttpPostMessage2.prototype.assign = function(target) {
                            var sources = [];
                            for (var _i = 1; _i < arguments.length; _i++) {
                              sources[_i - 1] = arguments[_i];
                            }
                            if (target === void 0 || target === null) {
                              throw new TypeError("Cannot convert undefined or null to object");
                            }
                            var output = Object(target);
                            sources.forEach(function(source) {
                              if (source !== void 0 && source !== null) {
                                for (var nextKey in source) {
                                  if (Object.prototype.hasOwnProperty.call(source, nextKey)) {
                                    output[nextKey] = source[nextKey];
                                  }
                                }
                              }
                            });
                            return output;
                          };
                          return HttpPostMessage2;
                        }();
                        exports2.HttpPostMessage = HttpPostMessage;
                      }
                      /******/
                    ])
                  );
                });
                ;
              }
            ),
            /***/
            "./node_modules/powerbi-models/dist/models.js": (
              /*!****************************************************!*\
                !*** ./node_modules/powerbi-models/dist/models.js ***!
                \****************************************************/
              /***/
              function(module2) {
                (function webpackUniversalModuleDefinition(root, factory) {
                  if (true)
                    module2.exports = factory();
                  else {
                  }
                })(this, () => {
                  return (
                    /******/
                    (() => {
                      var __webpack_modules__2 = [
                        /* 0 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_612__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.CommonErrorCodes = exports2.BookmarksPlayMode = exports2.ExportDataType = exports2.QnaMode = exports2.PageNavigationPosition = exports2.BrowserPrintAdjustmentsMode = exports2.AggregateFunction = exports2.DataCacheMode = exports2.CredentialType = exports2.isPercentOfGrandTotal = exports2.isColumnAggr = exports2.isHierarchyLevelAggr = exports2.isHierarchyLevel = exports2.isColumn = exports2.isMeasure = exports2.getFilterType = exports2.isBasicFilterWithKeys = exports2.isFilterKeyColumnsTarget = exports2.HierarchyIdentityFilter = exports2.HierarchyFilter = exports2.AdvancedFilter = exports2.TupleFilter = exports2.IdentityFilter = exports2.BasicFilterWithKeys = exports2.BasicFilter = exports2.RelativeTimeFilter = exports2.RelativeDateFilter = exports2.TopNFilter = exports2.IncludeExcludeFilter = exports2.NotSupportedFilter = exports2.Filter = exports2.RelativeDateOperators = exports2.RelativeDateFilterTimeUnit = exports2.FilterType = exports2.FiltersLevel = exports2.FiltersOperations = exports2.MenuLocation = exports2.ContrastMode = exports2.TokenType = exports2.ViewMode = exports2.Permissions = exports2.SectionVisibility = exports2.ReportAlignment = exports2.HyperlinkClickBehavior = exports2.LayoutType = exports2.VisualContainerDisplayMode = exports2.BackgroundType = exports2.DisplayOption = exports2.PageSizeType = exports2.TraceType = void 0;
                          exports2.validateExportDataRequest = exports2.validateQnaInterpretInputData = exports2.validateLoadQnaConfiguration = exports2.validateSaveAsParameters = exports2.validateUpdateFiltersRequest = exports2.validateFilter = exports2.validatePage = exports2.validateTileLoad = exports2.validateDashboardLoad = exports2.validateQuickCreate = exports2.validateCreateReport = exports2.validatePaginatedReportLoad = exports2.validateReportLoad = exports2.validateMenuGroupExtension = exports2.validateExtension = exports2.validateCustomPageSize = exports2.validateVisualizationsPane = exports2.validateSyncSlicersPane = exports2.validateSelectionPane = exports2.validatePageNavigationPane = exports2.validateFieldsPane = exports2.validateFiltersPane = exports2.validateBookmarksPane = exports2.validatePanes = exports2.validateSettings = exports2.validateCaptureBookmarkRequest = exports2.validateApplyBookmarkStateRequest = exports2.validateApplyBookmarkByNameRequest = exports2.validateAddBookmarkRequest = exports2.validatePlayBookmarkRequest = exports2.validateSlicerState = exports2.validateSlicer = exports2.validateVisualSelector = exports2.isIExtensionArray = exports2.isIExtensions = exports2.isGroupedMenuExtension = exports2.isFlatMenuExtension = exports2.isReportFiltersArray = exports2.isOnLoadFilters = exports2.VisualDataRoleKindPreference = exports2.VisualDataRoleKind = exports2.CommandDisplayOption = exports2.SlicerTargetSelector = exports2.VisualTypeSelector = exports2.VisualSelector = exports2.PageSelector = exports2.Selector = exports2.SortDirection = exports2.LegendPosition = exports2.TextAlignment = void 0;
                          exports2.validatePrintSettings = exports2.validateZoomLevel = exports2.validateCustomTheme = exports2.validateCommandsSettings = exports2.validateVisualSettings = exports2.validateVisualHeader = void 0;
                          var validator_1 = __nested_webpack_require_612__(1);
                          var TraceType;
                          (function(TraceType2) {
                            TraceType2[TraceType2["Information"] = 0] = "Information";
                            TraceType2[TraceType2["Verbose"] = 1] = "Verbose";
                            TraceType2[TraceType2["Warning"] = 2] = "Warning";
                            TraceType2[TraceType2["Error"] = 3] = "Error";
                            TraceType2[TraceType2["ExpectedError"] = 4] = "ExpectedError";
                            TraceType2[TraceType2["UnexpectedError"] = 5] = "UnexpectedError";
                            TraceType2[TraceType2["Fatal"] = 6] = "Fatal";
                          })(TraceType = exports2.TraceType || (exports2.TraceType = {}));
                          var PageSizeType;
                          (function(PageSizeType2) {
                            PageSizeType2[PageSizeType2["Widescreen"] = 0] = "Widescreen";
                            PageSizeType2[PageSizeType2["Standard"] = 1] = "Standard";
                            PageSizeType2[PageSizeType2["Cortana"] = 2] = "Cortana";
                            PageSizeType2[PageSizeType2["Letter"] = 3] = "Letter";
                            PageSizeType2[PageSizeType2["Custom"] = 4] = "Custom";
                            PageSizeType2[PageSizeType2["Mobile"] = 5] = "Mobile";
                          })(PageSizeType = exports2.PageSizeType || (exports2.PageSizeType = {}));
                          var DisplayOption;
                          (function(DisplayOption2) {
                            DisplayOption2[DisplayOption2["FitToPage"] = 0] = "FitToPage";
                            DisplayOption2[DisplayOption2["FitToWidth"] = 1] = "FitToWidth";
                            DisplayOption2[DisplayOption2["ActualSize"] = 2] = "ActualSize";
                          })(DisplayOption = exports2.DisplayOption || (exports2.DisplayOption = {}));
                          var BackgroundType;
                          (function(BackgroundType2) {
                            BackgroundType2[BackgroundType2["Default"] = 0] = "Default";
                            BackgroundType2[BackgroundType2["Transparent"] = 1] = "Transparent";
                          })(BackgroundType = exports2.BackgroundType || (exports2.BackgroundType = {}));
                          var VisualContainerDisplayMode;
                          (function(VisualContainerDisplayMode2) {
                            VisualContainerDisplayMode2[VisualContainerDisplayMode2["Visible"] = 0] = "Visible";
                            VisualContainerDisplayMode2[VisualContainerDisplayMode2["Hidden"] = 1] = "Hidden";
                          })(VisualContainerDisplayMode = exports2.VisualContainerDisplayMode || (exports2.VisualContainerDisplayMode = {}));
                          var LayoutType;
                          (function(LayoutType2) {
                            LayoutType2[LayoutType2["Master"] = 0] = "Master";
                            LayoutType2[LayoutType2["Custom"] = 1] = "Custom";
                            LayoutType2[LayoutType2["MobilePortrait"] = 2] = "MobilePortrait";
                            LayoutType2[LayoutType2["MobileLandscape"] = 3] = "MobileLandscape";
                          })(LayoutType = exports2.LayoutType || (exports2.LayoutType = {}));
                          var HyperlinkClickBehavior;
                          (function(HyperlinkClickBehavior2) {
                            HyperlinkClickBehavior2[HyperlinkClickBehavior2["Navigate"] = 0] = "Navigate";
                            HyperlinkClickBehavior2[HyperlinkClickBehavior2["NavigateAndRaiseEvent"] = 1] = "NavigateAndRaiseEvent";
                            HyperlinkClickBehavior2[HyperlinkClickBehavior2["RaiseEvent"] = 2] = "RaiseEvent";
                          })(HyperlinkClickBehavior = exports2.HyperlinkClickBehavior || (exports2.HyperlinkClickBehavior = {}));
                          var ReportAlignment;
                          (function(ReportAlignment2) {
                            ReportAlignment2[ReportAlignment2["Left"] = 0] = "Left";
                            ReportAlignment2[ReportAlignment2["Center"] = 1] = "Center";
                            ReportAlignment2[ReportAlignment2["Right"] = 2] = "Right";
                            ReportAlignment2[ReportAlignment2["None"] = 3] = "None";
                          })(ReportAlignment = exports2.ReportAlignment || (exports2.ReportAlignment = {}));
                          var SectionVisibility;
                          (function(SectionVisibility2) {
                            SectionVisibility2[SectionVisibility2["AlwaysVisible"] = 0] = "AlwaysVisible";
                            SectionVisibility2[SectionVisibility2["HiddenInViewMode"] = 1] = "HiddenInViewMode";
                          })(SectionVisibility = exports2.SectionVisibility || (exports2.SectionVisibility = {}));
                          var Permissions;
                          (function(Permissions2) {
                            Permissions2[Permissions2["Read"] = 0] = "Read";
                            Permissions2[Permissions2["ReadWrite"] = 1] = "ReadWrite";
                            Permissions2[Permissions2["Copy"] = 2] = "Copy";
                            Permissions2[Permissions2["Create"] = 4] = "Create";
                            Permissions2[Permissions2["All"] = 7] = "All";
                          })(Permissions = exports2.Permissions || (exports2.Permissions = {}));
                          var ViewMode;
                          (function(ViewMode2) {
                            ViewMode2[ViewMode2["View"] = 0] = "View";
                            ViewMode2[ViewMode2["Edit"] = 1] = "Edit";
                          })(ViewMode = exports2.ViewMode || (exports2.ViewMode = {}));
                          var TokenType;
                          (function(TokenType2) {
                            TokenType2[TokenType2["Aad"] = 0] = "Aad";
                            TokenType2[TokenType2["Embed"] = 1] = "Embed";
                          })(TokenType = exports2.TokenType || (exports2.TokenType = {}));
                          var ContrastMode;
                          (function(ContrastMode2) {
                            ContrastMode2[ContrastMode2["None"] = 0] = "None";
                            ContrastMode2[ContrastMode2["HighContrast1"] = 1] = "HighContrast1";
                            ContrastMode2[ContrastMode2["HighContrast2"] = 2] = "HighContrast2";
                            ContrastMode2[ContrastMode2["HighContrastBlack"] = 3] = "HighContrastBlack";
                            ContrastMode2[ContrastMode2["HighContrastWhite"] = 4] = "HighContrastWhite";
                          })(ContrastMode = exports2.ContrastMode || (exports2.ContrastMode = {}));
                          var MenuLocation;
                          (function(MenuLocation2) {
                            MenuLocation2[MenuLocation2["Bottom"] = 0] = "Bottom";
                            MenuLocation2[MenuLocation2["Top"] = 1] = "Top";
                          })(MenuLocation = exports2.MenuLocation || (exports2.MenuLocation = {}));
                          var FiltersOperations;
                          (function(FiltersOperations2) {
                            FiltersOperations2[FiltersOperations2["RemoveAll"] = 0] = "RemoveAll";
                            FiltersOperations2[FiltersOperations2["ReplaceAll"] = 1] = "ReplaceAll";
                            FiltersOperations2[FiltersOperations2["Add"] = 2] = "Add";
                            FiltersOperations2[FiltersOperations2["Replace"] = 3] = "Replace";
                          })(FiltersOperations = exports2.FiltersOperations || (exports2.FiltersOperations = {}));
                          var FiltersLevel;
                          (function(FiltersLevel2) {
                            FiltersLevel2[FiltersLevel2["Report"] = 0] = "Report";
                            FiltersLevel2[FiltersLevel2["Page"] = 1] = "Page";
                            FiltersLevel2[FiltersLevel2["Visual"] = 2] = "Visual";
                          })(FiltersLevel = exports2.FiltersLevel || (exports2.FiltersLevel = {}));
                          var FilterType;
                          (function(FilterType2) {
                            FilterType2[FilterType2["Advanced"] = 0] = "Advanced";
                            FilterType2[FilterType2["Basic"] = 1] = "Basic";
                            FilterType2[FilterType2["Unknown"] = 2] = "Unknown";
                            FilterType2[FilterType2["IncludeExclude"] = 3] = "IncludeExclude";
                            FilterType2[FilterType2["RelativeDate"] = 4] = "RelativeDate";
                            FilterType2[FilterType2["TopN"] = 5] = "TopN";
                            FilterType2[FilterType2["Tuple"] = 6] = "Tuple";
                            FilterType2[FilterType2["RelativeTime"] = 7] = "RelativeTime";
                            FilterType2[FilterType2["Identity"] = 8] = "Identity";
                            FilterType2[FilterType2["Hierarchy"] = 9] = "Hierarchy";
                            FilterType2[FilterType2["HierarchyIdentity"] = 10] = "HierarchyIdentity";
                          })(FilterType = exports2.FilterType || (exports2.FilterType = {}));
                          var RelativeDateFilterTimeUnit;
                          (function(RelativeDateFilterTimeUnit2) {
                            RelativeDateFilterTimeUnit2[RelativeDateFilterTimeUnit2["Days"] = 0] = "Days";
                            RelativeDateFilterTimeUnit2[RelativeDateFilterTimeUnit2["Weeks"] = 1] = "Weeks";
                            RelativeDateFilterTimeUnit2[RelativeDateFilterTimeUnit2["CalendarWeeks"] = 2] = "CalendarWeeks";
                            RelativeDateFilterTimeUnit2[RelativeDateFilterTimeUnit2["Months"] = 3] = "Months";
                            RelativeDateFilterTimeUnit2[RelativeDateFilterTimeUnit2["CalendarMonths"] = 4] = "CalendarMonths";
                            RelativeDateFilterTimeUnit2[RelativeDateFilterTimeUnit2["Years"] = 5] = "Years";
                            RelativeDateFilterTimeUnit2[RelativeDateFilterTimeUnit2["CalendarYears"] = 6] = "CalendarYears";
                            RelativeDateFilterTimeUnit2[RelativeDateFilterTimeUnit2["Minutes"] = 7] = "Minutes";
                            RelativeDateFilterTimeUnit2[RelativeDateFilterTimeUnit2["Hours"] = 8] = "Hours";
                          })(RelativeDateFilterTimeUnit = exports2.RelativeDateFilterTimeUnit || (exports2.RelativeDateFilterTimeUnit = {}));
                          var RelativeDateOperators;
                          (function(RelativeDateOperators2) {
                            RelativeDateOperators2[RelativeDateOperators2["InLast"] = 0] = "InLast";
                            RelativeDateOperators2[RelativeDateOperators2["InThis"] = 1] = "InThis";
                            RelativeDateOperators2[RelativeDateOperators2["InNext"] = 2] = "InNext";
                          })(RelativeDateOperators = exports2.RelativeDateOperators || (exports2.RelativeDateOperators = {}));
                          var Filter = (
                            /** @class */
                            function() {
                              function Filter2(target, filterType) {
                                this.target = target;
                                this.filterType = filterType;
                              }
                              Filter2.prototype.toJSON = function() {
                                var filter2 = {
                                  $schema: this.schemaUrl,
                                  target: this.target,
                                  filterType: this.filterType
                                };
                                if (this.displaySettings !== void 0) {
                                  filter2.displaySettings = this.displaySettings;
                                }
                                return filter2;
                              };
                              return Filter2;
                            }()
                          );
                          exports2.Filter = Filter;
                          var NotSupportedFilter = (
                            /** @class */
                            function(_super) {
                              __extends(NotSupportedFilter2, _super);
                              function NotSupportedFilter2(target, message, notSupportedTypeName) {
                                var _this = _super.call(this, target, FilterType.Unknown) || this;
                                _this.message = message;
                                _this.notSupportedTypeName = notSupportedTypeName;
                                _this.schemaUrl = NotSupportedFilter2.schemaUrl;
                                return _this;
                              }
                              NotSupportedFilter2.prototype.toJSON = function() {
                                var filter2 = _super.prototype.toJSON.call(this);
                                filter2.message = this.message;
                                filter2.notSupportedTypeName = this.notSupportedTypeName;
                                return filter2;
                              };
                              NotSupportedFilter2.schemaUrl = "http://powerbi.com/product/schema#notSupported";
                              return NotSupportedFilter2;
                            }(Filter)
                          );
                          exports2.NotSupportedFilter = NotSupportedFilter;
                          var IncludeExcludeFilter = (
                            /** @class */
                            function(_super) {
                              __extends(IncludeExcludeFilter2, _super);
                              function IncludeExcludeFilter2(target, isExclude, values) {
                                var _this = _super.call(this, target, FilterType.IncludeExclude) || this;
                                _this.target = target;
                                _this.values = values;
                                _this.isExclude = isExclude;
                                _this.schemaUrl = IncludeExcludeFilter2.schemaUrl;
                                return _this;
                              }
                              IncludeExcludeFilter2.prototype.toJSON = function() {
                                var filter2 = _super.prototype.toJSON.call(this);
                                filter2.isExclude = this.isExclude;
                                filter2.values = this.values;
                                return filter2;
                              };
                              IncludeExcludeFilter2.schemaUrl = "http://powerbi.com/product/schema#includeExclude";
                              return IncludeExcludeFilter2;
                            }(Filter)
                          );
                          exports2.IncludeExcludeFilter = IncludeExcludeFilter;
                          var TopNFilter = (
                            /** @class */
                            function(_super) {
                              __extends(TopNFilter2, _super);
                              function TopNFilter2(target, operator, itemCount, orderBy) {
                                var _this = _super.call(this, target, FilterType.TopN) || this;
                                _this.operator = operator;
                                _this.itemCount = itemCount;
                                _this.schemaUrl = TopNFilter2.schemaUrl;
                                _this.orderBy = orderBy;
                                return _this;
                              }
                              TopNFilter2.prototype.toJSON = function() {
                                var filter2 = _super.prototype.toJSON.call(this);
                                filter2.operator = this.operator;
                                filter2.itemCount = this.itemCount;
                                filter2.orderBy = this.orderBy;
                                return filter2;
                              };
                              TopNFilter2.schemaUrl = "http://powerbi.com/product/schema#topN";
                              return TopNFilter2;
                            }(Filter)
                          );
                          exports2.TopNFilter = TopNFilter;
                          var RelativeDateFilter = (
                            /** @class */
                            function(_super) {
                              __extends(RelativeDateFilter2, _super);
                              function RelativeDateFilter2(target, operator, timeUnitsCount, timeUnitType, includeToday) {
                                var _this = _super.call(this, target, FilterType.RelativeDate) || this;
                                _this.operator = operator;
                                _this.timeUnitsCount = timeUnitsCount;
                                _this.timeUnitType = timeUnitType;
                                _this.includeToday = includeToday;
                                _this.schemaUrl = RelativeDateFilter2.schemaUrl;
                                return _this;
                              }
                              RelativeDateFilter2.prototype.toJSON = function() {
                                var filter2 = _super.prototype.toJSON.call(this);
                                filter2.operator = this.operator;
                                filter2.timeUnitsCount = this.timeUnitsCount;
                                filter2.timeUnitType = this.timeUnitType;
                                filter2.includeToday = this.includeToday;
                                return filter2;
                              };
                              RelativeDateFilter2.schemaUrl = "http://powerbi.com/product/schema#relativeDate";
                              return RelativeDateFilter2;
                            }(Filter)
                          );
                          exports2.RelativeDateFilter = RelativeDateFilter;
                          var RelativeTimeFilter = (
                            /** @class */
                            function(_super) {
                              __extends(RelativeTimeFilter2, _super);
                              function RelativeTimeFilter2(target, operator, timeUnitsCount, timeUnitType) {
                                var _this = _super.call(this, target, FilterType.RelativeTime) || this;
                                _this.operator = operator;
                                _this.timeUnitsCount = timeUnitsCount;
                                _this.timeUnitType = timeUnitType;
                                _this.schemaUrl = RelativeTimeFilter2.schemaUrl;
                                return _this;
                              }
                              RelativeTimeFilter2.prototype.toJSON = function() {
                                var filter2 = _super.prototype.toJSON.call(this);
                                filter2.operator = this.operator;
                                filter2.timeUnitsCount = this.timeUnitsCount;
                                filter2.timeUnitType = this.timeUnitType;
                                return filter2;
                              };
                              RelativeTimeFilter2.schemaUrl = "http://powerbi.com/product/schema#relativeTime";
                              return RelativeTimeFilter2;
                            }(Filter)
                          );
                          exports2.RelativeTimeFilter = RelativeTimeFilter;
                          var BasicFilter = (
                            /** @class */
                            function(_super) {
                              __extends(BasicFilter2, _super);
                              function BasicFilter2(target, operator) {
                                var values = [];
                                for (var _i = 2; _i < arguments.length; _i++) {
                                  values[_i - 2] = arguments[_i];
                                }
                                var _this = _super.call(this, target, FilterType.Basic) || this;
                                _this.operator = operator;
                                _this.schemaUrl = BasicFilter2.schemaUrl;
                                if (values.length === 0 && operator !== "All") {
                                  throw new Error('values must be a non-empty array unless your operator is "All".');
                                }
                                if (Array.isArray(values[0])) {
                                  _this.values = values[0];
                                } else {
                                  _this.values = values;
                                }
                                return _this;
                              }
                              BasicFilter2.prototype.toJSON = function() {
                                var filter2 = _super.prototype.toJSON.call(this);
                                filter2.operator = this.operator;
                                filter2.values = this.values;
                                filter2.requireSingleSelection = !!this.requireSingleSelection;
                                return filter2;
                              };
                              BasicFilter2.schemaUrl = "http://powerbi.com/product/schema#basic";
                              return BasicFilter2;
                            }(Filter)
                          );
                          exports2.BasicFilter = BasicFilter;
                          var BasicFilterWithKeys = (
                            /** @class */
                            function(_super) {
                              __extends(BasicFilterWithKeys2, _super);
                              function BasicFilterWithKeys2(target, operator, values, keyValues) {
                                var _this = _super.call(this, target, operator, values) || this;
                                _this.keyValues = keyValues;
                                _this.target = target;
                                var numberOfKeys = target.keys ? target.keys.length : 0;
                                if (numberOfKeys > 0 && !keyValues) {
                                  throw new Error("You should pass the values to be filtered for each key. You passed: no values and ".concat(numberOfKeys, " keys"));
                                }
                                if (numberOfKeys === 0 && keyValues && keyValues.length > 0) {
                                  throw new Error("You passed key values but your target object doesn't contain the keys to be filtered");
                                }
                                for (var _i = 0, _a = _this.keyValues; _i < _a.length; _i++) {
                                  var keyValue = _a[_i];
                                  if (keyValue) {
                                    var lengthOfArray = keyValue.length;
                                    if (lengthOfArray !== numberOfKeys) {
                                      throw new Error("Each tuple of key values should contain a value for each of the keys. You passed: ".concat(lengthOfArray, " values and ").concat(numberOfKeys, " keys"));
                                    }
                                  }
                                }
                                return _this;
                              }
                              BasicFilterWithKeys2.prototype.toJSON = function() {
                                var filter2 = _super.prototype.toJSON.call(this);
                                filter2.keyValues = this.keyValues;
                                return filter2;
                              };
                              return BasicFilterWithKeys2;
                            }(BasicFilter)
                          );
                          exports2.BasicFilterWithKeys = BasicFilterWithKeys;
                          var IdentityFilter = (
                            /** @class */
                            function(_super) {
                              __extends(IdentityFilter2, _super);
                              function IdentityFilter2(target, operator) {
                                var _this = _super.call(this, target, FilterType.Identity) || this;
                                _this.operator = operator;
                                _this.schemaUrl = IdentityFilter2.schemaUrl;
                                return _this;
                              }
                              IdentityFilter2.prototype.toJSON = function() {
                                var filter2 = _super.prototype.toJSON.call(this);
                                filter2.operator = this.operator;
                                filter2.target = this.target;
                                return filter2;
                              };
                              IdentityFilter2.schemaUrl = "http://powerbi.com/product/schema#identity";
                              return IdentityFilter2;
                            }(Filter)
                          );
                          exports2.IdentityFilter = IdentityFilter;
                          var TupleFilter = (
                            /** @class */
                            function(_super) {
                              __extends(TupleFilter2, _super);
                              function TupleFilter2(target, operator, values) {
                                var _this = _super.call(this, target, FilterType.Tuple) || this;
                                _this.operator = operator;
                                _this.schemaUrl = TupleFilter2.schemaUrl;
                                _this.values = values;
                                return _this;
                              }
                              TupleFilter2.prototype.toJSON = function() {
                                var filter2 = _super.prototype.toJSON.call(this);
                                filter2.operator = this.operator;
                                filter2.values = this.values;
                                filter2.target = this.target;
                                return filter2;
                              };
                              TupleFilter2.schemaUrl = "http://powerbi.com/product/schema#tuple";
                              return TupleFilter2;
                            }(Filter)
                          );
                          exports2.TupleFilter = TupleFilter;
                          var AdvancedFilter = (
                            /** @class */
                            function(_super) {
                              __extends(AdvancedFilter2, _super);
                              function AdvancedFilter2(target, logicalOperator) {
                                var conditions = [];
                                for (var _i = 2; _i < arguments.length; _i++) {
                                  conditions[_i - 2] = arguments[_i];
                                }
                                var _this = _super.call(this, target, FilterType.Advanced) || this;
                                _this.schemaUrl = AdvancedFilter2.schemaUrl;
                                if (typeof logicalOperator !== "string" || logicalOperator.length === 0) {
                                  throw new Error("logicalOperator must be a valid operator, You passed: ".concat(logicalOperator));
                                }
                                _this.logicalOperator = logicalOperator;
                                var extractedConditions;
                                if (Array.isArray(conditions[0])) {
                                  extractedConditions = conditions[0];
                                } else {
                                  extractedConditions = conditions;
                                }
                                if (extractedConditions.length > 2) {
                                  throw new Error("AdvancedFilters may not have more than two conditions. You passed: ".concat(conditions.length));
                                }
                                if (extractedConditions.length === 1 && logicalOperator !== "And") {
                                  throw new Error('Logical Operator must be "And" when there is only one condition provided');
                                }
                                _this.conditions = extractedConditions;
                                return _this;
                              }
                              AdvancedFilter2.prototype.toJSON = function() {
                                var filter2 = _super.prototype.toJSON.call(this);
                                filter2.logicalOperator = this.logicalOperator;
                                filter2.conditions = this.conditions;
                                return filter2;
                              };
                              AdvancedFilter2.schemaUrl = "http://powerbi.com/product/schema#advanced";
                              return AdvancedFilter2;
                            }(Filter)
                          );
                          exports2.AdvancedFilter = AdvancedFilter;
                          var HierarchyFilter = (
                            /** @class */
                            function(_super) {
                              __extends(HierarchyFilter2, _super);
                              function HierarchyFilter2(target, hierarchyData) {
                                var _this = _super.call(this, target, FilterType.Hierarchy) || this;
                                _this.schemaUrl = HierarchyFilter2.schemaUrl;
                                _this.hierarchyData = hierarchyData;
                                return _this;
                              }
                              HierarchyFilter2.prototype.toJSON = function() {
                                var filter2 = _super.prototype.toJSON.call(this);
                                filter2.hierarchyData = this.hierarchyData;
                                filter2.target = this.target;
                                return filter2;
                              };
                              HierarchyFilter2.schemaUrl = "http://powerbi.com/product/schema#hierarchy";
                              return HierarchyFilter2;
                            }(Filter)
                          );
                          exports2.HierarchyFilter = HierarchyFilter;
                          var HierarchyIdentityFilter = (
                            /** @class */
                            function(_super) {
                              __extends(HierarchyIdentityFilter2, _super);
                              function HierarchyIdentityFilter2(target, hierarchyData) {
                                var _this = _super.call(this, target, FilterType.HierarchyIdentity) || this;
                                _this.schemaUrl = HierarchyIdentityFilter2.schemaUrl;
                                _this.hierarchyData = hierarchyData;
                                return _this;
                              }
                              HierarchyIdentityFilter2.prototype.toJSON = function() {
                                var filter2 = _super.prototype.toJSON.call(this);
                                filter2.hierarchyData = this.hierarchyData;
                                filter2.target = this.target;
                                return filter2;
                              };
                              HierarchyIdentityFilter2.schemaUrl = "http://powerbi.com/product/schema#hierarchyIdentity";
                              return HierarchyIdentityFilter2;
                            }(Filter)
                          );
                          exports2.HierarchyIdentityFilter = HierarchyIdentityFilter;
                          function isFilterKeyColumnsTarget(target) {
                            return isColumn(target) && !!target.keys;
                          }
                          exports2.isFilterKeyColumnsTarget = isFilterKeyColumnsTarget;
                          function isBasicFilterWithKeys(filter2) {
                            return getFilterType(filter2) === FilterType.Basic && !!filter2.keyValues;
                          }
                          exports2.isBasicFilterWithKeys = isBasicFilterWithKeys;
                          function getFilterType(filter2) {
                            if (filter2.filterType) {
                              return filter2.filterType;
                            }
                            var basicFilter = filter2;
                            var advancedFilter = filter2;
                            if (typeof basicFilter.operator === "string" && Array.isArray(basicFilter.values)) {
                              return FilterType.Basic;
                            } else if (typeof advancedFilter.logicalOperator === "string" && Array.isArray(advancedFilter.conditions)) {
                              return FilterType.Advanced;
                            } else {
                              return FilterType.Unknown;
                            }
                          }
                          exports2.getFilterType = getFilterType;
                          function isMeasure(arg) {
                            return arg.table !== void 0 && arg.measure !== void 0;
                          }
                          exports2.isMeasure = isMeasure;
                          function isColumn(arg) {
                            return !!(arg.table && arg.column && !arg.aggregationFunction);
                          }
                          exports2.isColumn = isColumn;
                          function isHierarchyLevel(arg) {
                            return !!(arg.table && arg.hierarchy && arg.hierarchyLevel && !arg.aggregationFunction);
                          }
                          exports2.isHierarchyLevel = isHierarchyLevel;
                          function isHierarchyLevelAggr(arg) {
                            return !!(arg.table && arg.hierarchy && arg.hierarchyLevel && arg.aggregationFunction);
                          }
                          exports2.isHierarchyLevelAggr = isHierarchyLevelAggr;
                          function isColumnAggr(arg) {
                            return !!(arg.table && arg.column && arg.aggregationFunction);
                          }
                          exports2.isColumnAggr = isColumnAggr;
                          function isPercentOfGrandTotal(arg) {
                            return !!arg.percentOfGrandTotal;
                          }
                          exports2.isPercentOfGrandTotal = isPercentOfGrandTotal;
                          var CredentialType;
                          (function(CredentialType2) {
                            CredentialType2[CredentialType2["NoConnection"] = 0] = "NoConnection";
                            CredentialType2[CredentialType2["OnBehalfOf"] = 1] = "OnBehalfOf";
                            CredentialType2[CredentialType2["Anonymous"] = 2] = "Anonymous";
                          })(CredentialType = exports2.CredentialType || (exports2.CredentialType = {}));
                          var DataCacheMode;
                          (function(DataCacheMode2) {
                            DataCacheMode2[DataCacheMode2["Import"] = 0] = "Import";
                            DataCacheMode2[DataCacheMode2["DirectQuery"] = 1] = "DirectQuery";
                          })(DataCacheMode = exports2.DataCacheMode || (exports2.DataCacheMode = {}));
                          var AggregateFunction;
                          (function(AggregateFunction2) {
                            AggregateFunction2[AggregateFunction2["Default"] = 1] = "Default";
                            AggregateFunction2[AggregateFunction2["None"] = 2] = "None";
                            AggregateFunction2[AggregateFunction2["Sum"] = 3] = "Sum";
                            AggregateFunction2[AggregateFunction2["Min"] = 4] = "Min";
                            AggregateFunction2[AggregateFunction2["Max"] = 5] = "Max";
                            AggregateFunction2[AggregateFunction2["Count"] = 6] = "Count";
                            AggregateFunction2[AggregateFunction2["Average"] = 7] = "Average";
                            AggregateFunction2[AggregateFunction2["DistinctCount"] = 8] = "DistinctCount";
                          })(AggregateFunction = exports2.AggregateFunction || (exports2.AggregateFunction = {}));
                          var BrowserPrintAdjustmentsMode;
                          (function(BrowserPrintAdjustmentsMode2) {
                            BrowserPrintAdjustmentsMode2[BrowserPrintAdjustmentsMode2["Default"] = 0] = "Default";
                            BrowserPrintAdjustmentsMode2[BrowserPrintAdjustmentsMode2["NoAdjustments"] = 1] = "NoAdjustments";
                          })(BrowserPrintAdjustmentsMode = exports2.BrowserPrintAdjustmentsMode || (exports2.BrowserPrintAdjustmentsMode = {}));
                          var PageNavigationPosition;
                          (function(PageNavigationPosition2) {
                            PageNavigationPosition2[PageNavigationPosition2["Bottom"] = 0] = "Bottom";
                            PageNavigationPosition2[PageNavigationPosition2["Left"] = 1] = "Left";
                          })(PageNavigationPosition = exports2.PageNavigationPosition || (exports2.PageNavigationPosition = {}));
                          var QnaMode;
                          (function(QnaMode2) {
                            QnaMode2[QnaMode2["Interactive"] = 0] = "Interactive";
                            QnaMode2[QnaMode2["ResultOnly"] = 1] = "ResultOnly";
                          })(QnaMode = exports2.QnaMode || (exports2.QnaMode = {}));
                          var ExportDataType;
                          (function(ExportDataType2) {
                            ExportDataType2[ExportDataType2["Summarized"] = 0] = "Summarized";
                            ExportDataType2[ExportDataType2["Underlying"] = 1] = "Underlying";
                          })(ExportDataType = exports2.ExportDataType || (exports2.ExportDataType = {}));
                          var BookmarksPlayMode;
                          (function(BookmarksPlayMode2) {
                            BookmarksPlayMode2[BookmarksPlayMode2["Off"] = 0] = "Off";
                            BookmarksPlayMode2[BookmarksPlayMode2["Presentation"] = 1] = "Presentation";
                          })(BookmarksPlayMode = exports2.BookmarksPlayMode || (exports2.BookmarksPlayMode = {}));
                          exports2.CommonErrorCodes = {
                            TokenExpired: "TokenExpired",
                            NotFound: "PowerBIEntityNotFound",
                            InvalidParameters: "Invalid parameters",
                            LoadReportFailed: "LoadReportFailed",
                            NotAuthorized: "PowerBINotAuthorizedException",
                            FailedToLoadModel: "ExplorationContainer_FailedToLoadModel_DefaultDetails"
                          };
                          exports2.TextAlignment = {
                            Left: "left",
                            Center: "center",
                            Right: "right"
                          };
                          exports2.LegendPosition = {
                            Top: "Top",
                            Bottom: "Bottom",
                            Right: "Right",
                            Left: "Left",
                            TopCenter: "TopCenter",
                            BottomCenter: "BottomCenter",
                            RightCenter: "RightCenter",
                            LeftCenter: "LeftCenter"
                          };
                          var SortDirection;
                          (function(SortDirection2) {
                            SortDirection2[SortDirection2["Ascending"] = 1] = "Ascending";
                            SortDirection2[SortDirection2["Descending"] = 2] = "Descending";
                          })(SortDirection = exports2.SortDirection || (exports2.SortDirection = {}));
                          var Selector = (
                            /** @class */
                            function() {
                              function Selector2(schema) {
                                this.$schema = schema;
                              }
                              Selector2.prototype.toJSON = function() {
                                return {
                                  $schema: this.$schema
                                };
                              };
                              return Selector2;
                            }()
                          );
                          exports2.Selector = Selector;
                          var PageSelector = (
                            /** @class */
                            function(_super) {
                              __extends(PageSelector2, _super);
                              function PageSelector2(pageName) {
                                var _this = _super.call(this, PageSelector2.schemaUrl) || this;
                                _this.pageName = pageName;
                                return _this;
                              }
                              PageSelector2.prototype.toJSON = function() {
                                var selector = _super.prototype.toJSON.call(this);
                                selector.pageName = this.pageName;
                                return selector;
                              };
                              PageSelector2.schemaUrl = "http://powerbi.com/product/schema#pageSelector";
                              return PageSelector2;
                            }(Selector)
                          );
                          exports2.PageSelector = PageSelector;
                          var VisualSelector = (
                            /** @class */
                            function(_super) {
                              __extends(VisualSelector2, _super);
                              function VisualSelector2(visualName) {
                                var _this = _super.call(this, VisualSelector2.schemaUrl) || this;
                                _this.visualName = visualName;
                                return _this;
                              }
                              VisualSelector2.prototype.toJSON = function() {
                                var selector = _super.prototype.toJSON.call(this);
                                selector.visualName = this.visualName;
                                return selector;
                              };
                              VisualSelector2.schemaUrl = "http://powerbi.com/product/schema#visualSelector";
                              return VisualSelector2;
                            }(Selector)
                          );
                          exports2.VisualSelector = VisualSelector;
                          var VisualTypeSelector = (
                            /** @class */
                            function(_super) {
                              __extends(VisualTypeSelector2, _super);
                              function VisualTypeSelector2(visualType) {
                                var _this = _super.call(this, VisualSelector.schemaUrl) || this;
                                _this.visualType = visualType;
                                return _this;
                              }
                              VisualTypeSelector2.prototype.toJSON = function() {
                                var selector = _super.prototype.toJSON.call(this);
                                selector.visualType = this.visualType;
                                return selector;
                              };
                              VisualTypeSelector2.schemaUrl = "http://powerbi.com/product/schema#visualTypeSelector";
                              return VisualTypeSelector2;
                            }(Selector)
                          );
                          exports2.VisualTypeSelector = VisualTypeSelector;
                          var SlicerTargetSelector = (
                            /** @class */
                            function(_super) {
                              __extends(SlicerTargetSelector2, _super);
                              function SlicerTargetSelector2(target) {
                                var _this = _super.call(this, VisualSelector.schemaUrl) || this;
                                _this.target = target;
                                return _this;
                              }
                              SlicerTargetSelector2.prototype.toJSON = function() {
                                var selector = _super.prototype.toJSON.call(this);
                                selector.target = this.target;
                                return selector;
                              };
                              SlicerTargetSelector2.schemaUrl = "http://powerbi.com/product/schema#slicerTargetSelector";
                              return SlicerTargetSelector2;
                            }(Selector)
                          );
                          exports2.SlicerTargetSelector = SlicerTargetSelector;
                          var CommandDisplayOption;
                          (function(CommandDisplayOption2) {
                            CommandDisplayOption2[CommandDisplayOption2["Enabled"] = 0] = "Enabled";
                            CommandDisplayOption2[CommandDisplayOption2["Disabled"] = 1] = "Disabled";
                            CommandDisplayOption2[CommandDisplayOption2["Hidden"] = 2] = "Hidden";
                          })(CommandDisplayOption = exports2.CommandDisplayOption || (exports2.CommandDisplayOption = {}));
                          var VisualDataRoleKind;
                          (function(VisualDataRoleKind2) {
                            VisualDataRoleKind2[VisualDataRoleKind2["Grouping"] = 0] = "Grouping";
                            VisualDataRoleKind2[VisualDataRoleKind2["Measure"] = 1] = "Measure";
                            VisualDataRoleKind2[VisualDataRoleKind2["GroupingOrMeasure"] = 2] = "GroupingOrMeasure";
                          })(VisualDataRoleKind = exports2.VisualDataRoleKind || (exports2.VisualDataRoleKind = {}));
                          var VisualDataRoleKindPreference;
                          (function(VisualDataRoleKindPreference2) {
                            VisualDataRoleKindPreference2[VisualDataRoleKindPreference2["Measure"] = 0] = "Measure";
                            VisualDataRoleKindPreference2[VisualDataRoleKindPreference2["Grouping"] = 1] = "Grouping";
                          })(VisualDataRoleKindPreference = exports2.VisualDataRoleKindPreference || (exports2.VisualDataRoleKindPreference = {}));
                          function isOnLoadFilters(filters) {
                            return filters && !isReportFiltersArray(filters);
                          }
                          exports2.isOnLoadFilters = isOnLoadFilters;
                          function isReportFiltersArray(filters) {
                            return Array.isArray(filters);
                          }
                          exports2.isReportFiltersArray = isReportFiltersArray;
                          function isFlatMenuExtension(menuExtension) {
                            return menuExtension && !isGroupedMenuExtension(menuExtension);
                          }
                          exports2.isFlatMenuExtension = isFlatMenuExtension;
                          function isGroupedMenuExtension(menuExtension) {
                            return menuExtension && !!menuExtension.groupName;
                          }
                          exports2.isGroupedMenuExtension = isGroupedMenuExtension;
                          function isIExtensions(extensions) {
                            return extensions && !isIExtensionArray(extensions);
                          }
                          exports2.isIExtensions = isIExtensions;
                          function isIExtensionArray(extensions) {
                            return Array.isArray(extensions);
                          }
                          exports2.isIExtensionArray = isIExtensionArray;
                          function normalizeError(error) {
                            var message = error.message;
                            if (!message) {
                              message = "".concat(error.path, " is invalid. Not meeting ").concat(error.keyword, " constraint");
                            }
                            return {
                              message
                            };
                          }
                          function validateVisualSelector(input) {
                            var errors = validator_1.Validators.visualSelectorValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateVisualSelector = validateVisualSelector;
                          function validateSlicer(input) {
                            var errors = validator_1.Validators.slicerValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateSlicer = validateSlicer;
                          function validateSlicerState(input) {
                            var errors = validator_1.Validators.slicerStateValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateSlicerState = validateSlicerState;
                          function validatePlayBookmarkRequest(input) {
                            var errors = validator_1.Validators.playBookmarkRequestValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validatePlayBookmarkRequest = validatePlayBookmarkRequest;
                          function validateAddBookmarkRequest(input) {
                            var errors = validator_1.Validators.addBookmarkRequestValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateAddBookmarkRequest = validateAddBookmarkRequest;
                          function validateApplyBookmarkByNameRequest(input) {
                            var errors = validator_1.Validators.applyBookmarkByNameRequestValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateApplyBookmarkByNameRequest = validateApplyBookmarkByNameRequest;
                          function validateApplyBookmarkStateRequest(input) {
                            var errors = validator_1.Validators.applyBookmarkStateRequestValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateApplyBookmarkStateRequest = validateApplyBookmarkStateRequest;
                          function validateCaptureBookmarkRequest(input) {
                            var errors = validator_1.Validators.captureBookmarkRequestValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateCaptureBookmarkRequest = validateCaptureBookmarkRequest;
                          function validateSettings(input) {
                            var errors = validator_1.Validators.settingsValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateSettings = validateSettings;
                          function validatePanes(input) {
                            var errors = validator_1.Validators.reportPanesValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validatePanes = validatePanes;
                          function validateBookmarksPane(input) {
                            var errors = validator_1.Validators.bookmarksPaneValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateBookmarksPane = validateBookmarksPane;
                          function validateFiltersPane(input) {
                            var errors = validator_1.Validators.filtersPaneValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateFiltersPane = validateFiltersPane;
                          function validateFieldsPane(input) {
                            var errors = validator_1.Validators.fieldsPaneValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateFieldsPane = validateFieldsPane;
                          function validatePageNavigationPane(input) {
                            var errors = validator_1.Validators.pageNavigationPaneValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validatePageNavigationPane = validatePageNavigationPane;
                          function validateSelectionPane(input) {
                            var errors = validator_1.Validators.selectionPaneValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateSelectionPane = validateSelectionPane;
                          function validateSyncSlicersPane(input) {
                            var errors = validator_1.Validators.syncSlicersPaneValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateSyncSlicersPane = validateSyncSlicersPane;
                          function validateVisualizationsPane(input) {
                            var errors = validator_1.Validators.visualizationsPaneValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateVisualizationsPane = validateVisualizationsPane;
                          function validateCustomPageSize(input) {
                            var errors = validator_1.Validators.customPageSizeValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateCustomPageSize = validateCustomPageSize;
                          function validateExtension(input) {
                            var errors = validator_1.Validators.extensionValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateExtension = validateExtension;
                          function validateMenuGroupExtension(input) {
                            var errors = validator_1.Validators.menuGroupExtensionValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateMenuGroupExtension = validateMenuGroupExtension;
                          function validateReportLoad(input) {
                            var errors = validator_1.Validators.reportLoadValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateReportLoad = validateReportLoad;
                          function validatePaginatedReportLoad(input) {
                            var errors = validator_1.Validators.paginatedReportLoadValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validatePaginatedReportLoad = validatePaginatedReportLoad;
                          function validateCreateReport(input) {
                            var errors = validator_1.Validators.reportCreateValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateCreateReport = validateCreateReport;
                          function validateQuickCreate(input) {
                            var errors = validator_1.Validators.quickCreateValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateQuickCreate = validateQuickCreate;
                          function validateDashboardLoad(input) {
                            var errors = validator_1.Validators.dashboardLoadValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateDashboardLoad = validateDashboardLoad;
                          function validateTileLoad(input) {
                            var errors = validator_1.Validators.tileLoadValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateTileLoad = validateTileLoad;
                          function validatePage(input) {
                            var errors = validator_1.Validators.pageValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validatePage = validatePage;
                          function validateFilter(input) {
                            var errors = validator_1.Validators.filterValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateFilter = validateFilter;
                          function validateUpdateFiltersRequest(input) {
                            var errors = validator_1.Validators.updateFiltersRequestValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateUpdateFiltersRequest = validateUpdateFiltersRequest;
                          function validateSaveAsParameters(input) {
                            var errors = validator_1.Validators.saveAsParametersValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateSaveAsParameters = validateSaveAsParameters;
                          function validateLoadQnaConfiguration(input) {
                            var errors = validator_1.Validators.loadQnaValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateLoadQnaConfiguration = validateLoadQnaConfiguration;
                          function validateQnaInterpretInputData(input) {
                            var errors = validator_1.Validators.qnaInterpretInputDataValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateQnaInterpretInputData = validateQnaInterpretInputData;
                          function validateExportDataRequest(input) {
                            var errors = validator_1.Validators.exportDataRequestValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateExportDataRequest = validateExportDataRequest;
                          function validateVisualHeader(input) {
                            var errors = validator_1.Validators.visualHeaderValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateVisualHeader = validateVisualHeader;
                          function validateVisualSettings(input) {
                            var errors = validator_1.Validators.visualSettingsValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateVisualSettings = validateVisualSettings;
                          function validateCommandsSettings(input) {
                            var errors = validator_1.Validators.commandsSettingsValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateCommandsSettings = validateCommandsSettings;
                          function validateCustomTheme(input) {
                            var errors = validator_1.Validators.customThemeValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateCustomTheme = validateCustomTheme;
                          function validateZoomLevel(input) {
                            var errors = validator_1.Validators.zoomLevelValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validateZoomLevel = validateZoomLevel;
                          function validatePrintSettings(input) {
                            var errors = validator_1.Validators.printSettingsValidator.validate(input);
                            return errors ? errors.map(normalizeError) : void 0;
                          }
                          exports2.validatePrintSettings = validatePrintSettings;
                        },
                        /* 1 */
                        /***/
                        (__unused_webpack_module, exports2, __nested_webpack_require_47160__) => {
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.Validators = void 0;
                          var barsValidator_1 = __nested_webpack_require_47160__(2);
                          var bookmarkValidator_1 = __nested_webpack_require_47160__(5);
                          var commandsSettingsValidator_1 = __nested_webpack_require_47160__(6);
                          var customThemeValidator_1 = __nested_webpack_require_47160__(7);
                          var dashboardLoadValidator_1 = __nested_webpack_require_47160__(8);
                          var datasetBindingValidator_1 = __nested_webpack_require_47160__(9);
                          var exportDataValidator_1 = __nested_webpack_require_47160__(10);
                          var extensionsValidator_1 = __nested_webpack_require_47160__(11);
                          var filtersValidator_1 = __nested_webpack_require_47160__(12);
                          var layoutValidator_1 = __nested_webpack_require_47160__(13);
                          var pageValidator_1 = __nested_webpack_require_47160__(14);
                          var panesValidator_1 = __nested_webpack_require_47160__(15);
                          var qnaValidator_1 = __nested_webpack_require_47160__(16);
                          var reportCreateValidator_1 = __nested_webpack_require_47160__(17);
                          var reportLoadValidator_1 = __nested_webpack_require_47160__(18);
                          var paginatedReportLoadValidator_1 = __nested_webpack_require_47160__(19);
                          var saveAsParametersValidator_1 = __nested_webpack_require_47160__(20);
                          var selectorsValidator_1 = __nested_webpack_require_47160__(21);
                          var settingsValidator_1 = __nested_webpack_require_47160__(22);
                          var slicersValidator_1 = __nested_webpack_require_47160__(23);
                          var tileLoadValidator_1 = __nested_webpack_require_47160__(24);
                          var visualSettingsValidator_1 = __nested_webpack_require_47160__(25);
                          var anyOfValidator_1 = __nested_webpack_require_47160__(26);
                          var fieldForbiddenValidator_1 = __nested_webpack_require_47160__(27);
                          var fieldRequiredValidator_1 = __nested_webpack_require_47160__(28);
                          var mapValidator_1 = __nested_webpack_require_47160__(29);
                          var typeValidator_1 = __nested_webpack_require_47160__(4);
                          var parameterPanelValidator_1 = __nested_webpack_require_47160__(30);
                          var datasetCreateConfigValidator_1 = __nested_webpack_require_47160__(31);
                          var quickCreateValidator_1 = __nested_webpack_require_47160__(32);
                          var printSettingsValidator_1 = __nested_webpack_require_47160__(33);
                          var paginatedReportDatasetBindingValidator_1 = __nested_webpack_require_47160__(34);
                          exports2.Validators = {
                            addBookmarkRequestValidator: new bookmarkValidator_1.AddBookmarkRequestValidator(),
                            advancedFilterTypeValidator: new typeValidator_1.EnumValidator([0]),
                            advancedFilterValidator: new filtersValidator_1.AdvancedFilterValidator(),
                            anyArrayValidator: new typeValidator_1.ArrayValidator([new anyOfValidator_1.AnyOfValidator([new typeValidator_1.StringValidator(), new typeValidator_1.NumberValidator(), new typeValidator_1.BooleanValidator()])]),
                            anyFilterValidator: new anyOfValidator_1.AnyOfValidator([new filtersValidator_1.BasicFilterValidator(), new filtersValidator_1.AdvancedFilterValidator(), new filtersValidator_1.IncludeExcludeFilterValidator(), new filtersValidator_1.NotSupportedFilterValidator(), new filtersValidator_1.RelativeDateFilterValidator(), new filtersValidator_1.TopNFilterValidator(), new filtersValidator_1.RelativeTimeFilterValidator(), new filtersValidator_1.HierarchyFilterValidator()]),
                            anyValueValidator: new anyOfValidator_1.AnyOfValidator([new typeValidator_1.StringValidator(), new typeValidator_1.NumberValidator(), new typeValidator_1.BooleanValidator()]),
                            actionBarValidator: new barsValidator_1.ActionBarValidator(),
                            statusBarValidator: new barsValidator_1.StatusBarValidator(),
                            applyBookmarkByNameRequestValidator: new bookmarkValidator_1.ApplyBookmarkByNameRequestValidator(),
                            applyBookmarkStateRequestValidator: new bookmarkValidator_1.ApplyBookmarkStateRequestValidator(),
                            applyBookmarkValidator: new anyOfValidator_1.AnyOfValidator([new bookmarkValidator_1.ApplyBookmarkByNameRequestValidator(), new bookmarkValidator_1.ApplyBookmarkStateRequestValidator()]),
                            backgroundValidator: new typeValidator_1.EnumValidator([0, 1]),
                            basicFilterTypeValidator: new typeValidator_1.EnumValidator([1]),
                            basicFilterValidator: new filtersValidator_1.BasicFilterValidator(),
                            booleanArrayValidator: new typeValidator_1.BooleanArrayValidator(),
                            booleanValidator: new typeValidator_1.BooleanValidator(),
                            bookmarksPaneValidator: new panesValidator_1.BookmarksPaneValidator(),
                            captureBookmarkOptionsValidator: new bookmarkValidator_1.CaptureBookmarkOptionsValidator(),
                            captureBookmarkRequestValidator: new bookmarkValidator_1.CaptureBookmarkRequestValidator(),
                            columnSchemaArrayValidator: new typeValidator_1.ArrayValidator([new datasetCreateConfigValidator_1.ColumnSchemaValidator()]),
                            commandDisplayOptionValidator: new typeValidator_1.EnumValidator([0, 1, 2]),
                            commandExtensionSelectorValidator: new anyOfValidator_1.AnyOfValidator([new selectorsValidator_1.VisualSelectorValidator(), new selectorsValidator_1.VisualTypeSelectorValidator()]),
                            commandExtensionArrayValidator: new typeValidator_1.ArrayValidator([new extensionsValidator_1.CommandExtensionValidator()]),
                            commandExtensionValidator: new extensionsValidator_1.CommandExtensionValidator(),
                            commandsSettingsArrayValidator: new typeValidator_1.ArrayValidator([new commandsSettingsValidator_1.CommandsSettingsValidator()]),
                            commandsSettingsValidator: new commandsSettingsValidator_1.CommandsSettingsValidator(),
                            conditionItemValidator: new filtersValidator_1.ConditionItemValidator(),
                            contrastModeValidator: new typeValidator_1.EnumValidator([0, 1, 2, 3, 4]),
                            credentialDetailsValidator: new mapValidator_1.MapValidator([new typeValidator_1.StringValidator()], [new typeValidator_1.StringValidator()]),
                            credentialsValidator: new datasetCreateConfigValidator_1.CredentialsValidator(),
                            credentialTypeValidator: new typeValidator_1.EnumValidator([0, 1, 2]),
                            customLayoutDisplayOptionValidator: new typeValidator_1.EnumValidator([0, 1, 2]),
                            customLayoutValidator: new layoutValidator_1.CustomLayoutValidator(),
                            customPageSizeValidator: new pageValidator_1.CustomPageSizeValidator(),
                            customThemeValidator: new customThemeValidator_1.CustomThemeValidator(),
                            dashboardLoadValidator: new dashboardLoadValidator_1.DashboardLoadValidator(),
                            dataCacheModeValidator: new typeValidator_1.EnumValidator([0, 1]),
                            datasetBindingValidator: new datasetBindingValidator_1.DatasetBindingValidator(),
                            datasetCreateConfigValidator: new datasetCreateConfigValidator_1.DatasetCreateConfigValidator(),
                            datasourceConnectionConfigValidator: new datasetCreateConfigValidator_1.DatasourceConnectionConfigValidator(),
                            displayStateModeValidator: new typeValidator_1.EnumValidator([0, 1]),
                            displayStateValidator: new layoutValidator_1.DisplayStateValidator(),
                            exportDataRequestValidator: new exportDataValidator_1.ExportDataRequestValidator(),
                            extensionArrayValidator: new typeValidator_1.ArrayValidator([new extensionsValidator_1.ExtensionValidator()]),
                            extensionsValidator: new anyOfValidator_1.AnyOfValidator([new typeValidator_1.ArrayValidator([new extensionsValidator_1.ExtensionValidator()]), new extensionsValidator_1.ExtensionsValidator()]),
                            extensionPointsValidator: new extensionsValidator_1.ExtensionPointsValidator(),
                            extensionValidator: new extensionsValidator_1.ExtensionValidator(),
                            fieldForbiddenValidator: new fieldForbiddenValidator_1.FieldForbiddenValidator(),
                            fieldRequiredValidator: new fieldRequiredValidator_1.FieldRequiredValidator(),
                            fieldsPaneValidator: new panesValidator_1.FieldsPaneValidator(),
                            filterColumnTargetValidator: new filtersValidator_1.FilterColumnTargetValidator(),
                            filterDisplaySettingsValidator: new filtersValidator_1.FilterDisplaySettingsValidator(),
                            filterConditionsValidator: new typeValidator_1.ArrayValidator([new filtersValidator_1.ConditionItemValidator()]),
                            filterHierarchyTargetValidator: new filtersValidator_1.FilterHierarchyTargetValidator(),
                            filterMeasureTargetValidator: new filtersValidator_1.FilterMeasureTargetValidator(),
                            filterTargetValidator: new anyOfValidator_1.AnyOfValidator([new filtersValidator_1.FilterColumnTargetValidator(), new filtersValidator_1.FilterHierarchyTargetValidator(), new filtersValidator_1.FilterMeasureTargetValidator(), new typeValidator_1.ArrayValidator([new anyOfValidator_1.AnyOfValidator([new filtersValidator_1.FilterColumnTargetValidator(), new filtersValidator_1.FilterHierarchyTargetValidator(), new filtersValidator_1.FilterMeasureTargetValidator(), new filtersValidator_1.FilterKeyColumnsTargetValidator(), new filtersValidator_1.FilterKeyHierarchyTargetValidator(), new typeValidator_1.ArrayValidator([new anyOfValidator_1.AnyOfValidator([new filtersValidator_1.FilterColumnTargetValidator(), new filtersValidator_1.FilterHierarchyTargetValidator(), new filtersValidator_1.FilterMeasureTargetValidator(), new filtersValidator_1.FilterKeyColumnsTargetValidator(), new filtersValidator_1.FilterKeyHierarchyTargetValidator()])])])])]),
                            filterValidator: new filtersValidator_1.FilterValidator(),
                            filterTypeValidator: new typeValidator_1.EnumValidator([0, 1, 2, 3, 4, 5, 6, 7, 9]),
                            filtersArrayValidator: new typeValidator_1.ArrayValidator([new filtersValidator_1.FilterValidator()]),
                            filtersOperationsUpdateValidator: new typeValidator_1.EnumValidator([1, 2, 3]),
                            filtersOperationsRemoveAllValidator: new typeValidator_1.EnumValidator([0]),
                            filtersPaneValidator: new panesValidator_1.FiltersPaneValidator(),
                            hyperlinkClickBehaviorValidator: new typeValidator_1.EnumValidator([0, 1, 2]),
                            includeExcludeFilterValidator: new filtersValidator_1.IncludeExcludeFilterValidator(),
                            includeExludeFilterTypeValidator: new typeValidator_1.EnumValidator([3]),
                            includeExcludeFilterValuesValidator: new typeValidator_1.ArrayValidator([new anyOfValidator_1.AnyOfValidator([new typeValidator_1.StringValidator(), new typeValidator_1.NumberValidator(), new typeValidator_1.BooleanValidator(), new typeValidator_1.ArrayValidator([new typeValidator_1.ArrayValidator([new filtersValidator_1.IncludeExcludePointValueValidator()])])])]),
                            hierarchyFilterTypeValidator: new typeValidator_1.EnumValidator([9]),
                            hierarchyFilterValuesValidator: new typeValidator_1.ArrayValidator([new filtersValidator_1.HierarchyFilterNodeValidator()]),
                            layoutTypeValidator: new typeValidator_1.EnumValidator([0, 1, 2, 3]),
                            loadQnaValidator: new qnaValidator_1.LoadQnaValidator(),
                            menuExtensionValidator: new anyOfValidator_1.AnyOfValidator([new extensionsValidator_1.FlatMenuExtensionValidator(), new extensionsValidator_1.GroupedMenuExtensionValidator()]),
                            menuGroupExtensionArrayValidator: new typeValidator_1.ArrayValidator([new extensionsValidator_1.MenuGroupExtensionValidator()]),
                            menuGroupExtensionValidator: new extensionsValidator_1.MenuGroupExtensionValidator(),
                            menuLocationValidator: new typeValidator_1.EnumValidator([0, 1]),
                            notSupportedFilterTypeValidator: new typeValidator_1.EnumValidator([2]),
                            notSupportedFilterValidator: new filtersValidator_1.NotSupportedFilterValidator(),
                            numberArrayValidator: new typeValidator_1.NumberArrayValidator(),
                            numberValidator: new typeValidator_1.NumberValidator(),
                            onLoadFiltersBaseValidator: new anyOfValidator_1.AnyOfValidator([new filtersValidator_1.OnLoadFiltersBaseValidator(), new filtersValidator_1.OnLoadFiltersBaseRemoveOperationValidator()]),
                            pageLayoutValidator: new mapValidator_1.MapValidator([new typeValidator_1.StringValidator()], [new layoutValidator_1.VisualLayoutValidator()]),
                            pageNavigationPaneValidator: new panesValidator_1.PageNavigationPaneValidator(),
                            pageNavigationPositionValidator: new typeValidator_1.EnumValidator([0, 1]),
                            pageSizeTypeValidator: new typeValidator_1.EnumValidator([0, 1, 2, 3, 4, 5]),
                            pageSizeValidator: new pageValidator_1.PageSizeValidator(),
                            pageValidator: new pageValidator_1.PageValidator(),
                            pageViewFieldValidator: new pageValidator_1.PageViewFieldValidator(),
                            pagesLayoutValidator: new mapValidator_1.MapValidator([new typeValidator_1.StringValidator()], [new layoutValidator_1.PageLayoutValidator()]),
                            paginatedReportCommandsValidator: new commandsSettingsValidator_1.PaginatedReportCommandsValidator(),
                            paginatedReportDatasetBindingArrayValidator: new typeValidator_1.ArrayValidator([new paginatedReportDatasetBindingValidator_1.PaginatedReportDatasetBindingValidator()]),
                            paginatedReportLoadValidator: new paginatedReportLoadValidator_1.PaginatedReportLoadValidator(),
                            paginatedReportsettingsValidator: new settingsValidator_1.PaginatedReportSettingsValidator(),
                            parameterValuesArrayValidator: new typeValidator_1.ArrayValidator([new paginatedReportLoadValidator_1.ReportParameterFieldsValidator()]),
                            parametersPanelValidator: new parameterPanelValidator_1.ParametersPanelValidator(),
                            permissionsValidator: new typeValidator_1.EnumValidator([0, 1, 2, 4, 7]),
                            playBookmarkRequestValidator: new bookmarkValidator_1.PlayBookmarkRequestValidator(),
                            printSettingsValidator: new printSettingsValidator_1.PrintSettingsValidator(),
                            qnaInterpretInputDataValidator: new qnaValidator_1.QnaInterpretInputDataValidator(),
                            qnaPanesValidator: new panesValidator_1.QnaPanesValidator(),
                            qnaSettingValidator: new qnaValidator_1.QnaSettingsValidator(),
                            quickCreateValidator: new quickCreateValidator_1.QuickCreateValidator(),
                            rawDataValidator: new typeValidator_1.ArrayValidator([new typeValidator_1.ArrayValidator([new typeValidator_1.StringValidator()])]),
                            relativeDateFilterOperatorValidator: new typeValidator_1.EnumValidator([0, 1, 2]),
                            relativeDateFilterTimeUnitTypeValidator: new typeValidator_1.EnumValidator([0, 1, 2, 3, 4, 5, 6]),
                            relativeDateFilterTypeValidator: new typeValidator_1.EnumValidator([4]),
                            relativeDateFilterValidator: new filtersValidator_1.RelativeDateFilterValidator(),
                            relativeDateTimeFilterTypeValidator: new typeValidator_1.EnumValidator([4, 7]),
                            relativeDateTimeFilterUnitTypeValidator: new typeValidator_1.EnumValidator([0, 1, 2, 3, 4, 5, 6, 7, 8]),
                            relativeTimeFilterTimeUnitTypeValidator: new typeValidator_1.EnumValidator([7, 8]),
                            relativeTimeFilterTypeValidator: new typeValidator_1.EnumValidator([7]),
                            relativeTimeFilterValidator: new filtersValidator_1.RelativeTimeFilterValidator(),
                            reportBarsValidator: new barsValidator_1.ReportBarsValidator(),
                            reportCreateValidator: new reportCreateValidator_1.ReportCreateValidator(),
                            reportLoadFiltersValidator: new anyOfValidator_1.AnyOfValidator([new typeValidator_1.ArrayValidator([new filtersValidator_1.FilterValidator()]), new filtersValidator_1.OnLoadFiltersValidator()]),
                            reportLoadValidator: new reportLoadValidator_1.ReportLoadValidator(),
                            reportPanesValidator: new panesValidator_1.ReportPanesValidator(),
                            saveAsParametersValidator: new saveAsParametersValidator_1.SaveAsParametersValidator(),
                            selectionPaneValidator: new panesValidator_1.SelectionPaneValidator(),
                            settingsValidator: new settingsValidator_1.SettingsValidator(),
                            singleCommandSettingsValidator: new commandsSettingsValidator_1.SingleCommandSettingsValidator(),
                            slicerSelectorValidator: new anyOfValidator_1.AnyOfValidator([new selectorsValidator_1.VisualSelectorValidator(), new selectorsValidator_1.SlicerTargetSelectorValidator()]),
                            slicerStateValidator: new slicersValidator_1.SlicerStateValidator(),
                            slicerTargetValidator: new anyOfValidator_1.AnyOfValidator([new filtersValidator_1.FilterColumnTargetValidator(), new filtersValidator_1.FilterHierarchyTargetValidator(), new filtersValidator_1.FilterMeasureTargetValidator(), new filtersValidator_1.FilterKeyColumnsTargetValidator(), new filtersValidator_1.FilterKeyHierarchyTargetValidator()]),
                            slicerValidator: new slicersValidator_1.SlicerValidator(),
                            stringArrayValidator: new typeValidator_1.StringArrayValidator(),
                            stringValidator: new typeValidator_1.StringValidator(),
                            syncSlicersPaneValidator: new panesValidator_1.SyncSlicersPaneValidator(),
                            tableDataArrayValidator: new typeValidator_1.ArrayValidator([new datasetCreateConfigValidator_1.TableDataValidator()]),
                            tableSchemaListValidator: new typeValidator_1.ArrayValidator([new datasetCreateConfigValidator_1.TableSchemaValidator()]),
                            tileLoadValidator: new tileLoadValidator_1.TileLoadValidator(),
                            tokenTypeValidator: new typeValidator_1.EnumValidator([0, 1]),
                            topNFilterTypeValidator: new typeValidator_1.EnumValidator([5]),
                            topNFilterValidator: new filtersValidator_1.TopNFilterValidator(),
                            updateFiltersRequestValidator: new anyOfValidator_1.AnyOfValidator([new filtersValidator_1.UpdateFiltersRequestValidator(), new filtersValidator_1.RemoveFiltersRequestValidator()]),
                            viewModeValidator: new typeValidator_1.EnumValidator([0, 1]),
                            visualCommandSelectorValidator: new anyOfValidator_1.AnyOfValidator([new selectorsValidator_1.VisualSelectorValidator(), new selectorsValidator_1.VisualTypeSelectorValidator()]),
                            visualHeaderSelectorValidator: new anyOfValidator_1.AnyOfValidator([new selectorsValidator_1.VisualSelectorValidator(), new selectorsValidator_1.VisualTypeSelectorValidator()]),
                            visualHeaderSettingsValidator: new visualSettingsValidator_1.VisualHeaderSettingsValidator(),
                            visualHeaderValidator: new visualSettingsValidator_1.VisualHeaderValidator(),
                            visualHeadersValidator: new typeValidator_1.ArrayValidator([new visualSettingsValidator_1.VisualHeaderValidator()]),
                            visualizationsPaneValidator: new panesValidator_1.VisualizationsPaneValidator(),
                            visualLayoutValidator: new layoutValidator_1.VisualLayoutValidator(),
                            visualSelectorValidator: new selectorsValidator_1.VisualSelectorValidator(),
                            visualSettingsValidator: new visualSettingsValidator_1.VisualSettingsValidator(),
                            visualTypeSelectorValidator: new selectorsValidator_1.VisualTypeSelectorValidator(),
                            zoomLevelValidator: new typeValidator_1.RangeValidator(0.25, 4)
                          };
                        },
                        /* 2 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_65027__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.StatusBarValidator = exports2.ActionBarValidator = exports2.ReportBarsValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_65027__(3);
                          var typeValidator_1 = __nested_webpack_require_65027__(4);
                          var validator_1 = __nested_webpack_require_65027__(1);
                          var ReportBarsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ReportBarsValidator2, _super);
                              function ReportBarsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ReportBarsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "actionBar",
                                    validators: [validator_1.Validators.actionBarValidator]
                                  },
                                  {
                                    field: "statusBar",
                                    validators: [validator_1.Validators.statusBarValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ReportBarsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ReportBarsValidator = ReportBarsValidator;
                          var ActionBarValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ActionBarValidator2, _super);
                              function ActionBarValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ActionBarValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "visible",
                                    validators: [validator_1.Validators.booleanValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ActionBarValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ActionBarValidator = ActionBarValidator;
                          var StatusBarValidator = (
                            /** @class */
                            function(_super) {
                              __extends(StatusBarValidator2, _super);
                              function StatusBarValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              StatusBarValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "visible",
                                    validators: [validator_1.Validators.booleanValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return StatusBarValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.StatusBarValidator = StatusBarValidator;
                        },
                        /* 3 */
                        /***/
                        (__unused_webpack_module, exports2) => {
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.MultipleFieldsValidator = void 0;
                          var MultipleFieldsValidator = (
                            /** @class */
                            function() {
                              function MultipleFieldsValidator2(fieldValidatorsPairs) {
                                this.fieldValidatorsPairs = fieldValidatorsPairs;
                              }
                              MultipleFieldsValidator2.prototype.validate = function(input, path, field) {
                                if (!this.fieldValidatorsPairs) {
                                  return null;
                                }
                                var fieldsPath = path ? path + "." + field : field;
                                for (var _i = 0, _a = this.fieldValidatorsPairs; _i < _a.length; _i++) {
                                  var fieldValidators = _a[_i];
                                  for (var _b = 0, _c = fieldValidators.validators; _b < _c.length; _b++) {
                                    var validator = _c[_b];
                                    var errors = validator.validate(input[fieldValidators.field], fieldsPath, fieldValidators.field);
                                    if (errors) {
                                      return errors;
                                    }
                                  }
                                }
                                return null;
                              };
                              return MultipleFieldsValidator2;
                            }()
                          );
                          exports2.MultipleFieldsValidator = MultipleFieldsValidator;
                        },
                        /* 4 */
                        /***/
                        function(__unused_webpack_module, exports2) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.RangeValidator = exports2.NumberArrayValidator = exports2.BooleanArrayValidator = exports2.StringArrayValidator = exports2.EnumValidator = exports2.SchemaValidator = exports2.ValueValidator = exports2.NumberValidator = exports2.BooleanValidator = exports2.StringValidator = exports2.TypeValidator = exports2.ArrayValidator = exports2.ObjectValidator = void 0;
                          var ObjectValidator = (
                            /** @class */
                            function() {
                              function ObjectValidator2() {
                              }
                              ObjectValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                if (typeof input !== "object" || Array.isArray(input)) {
                                  return [{
                                    message: field !== void 0 ? field + " must be an object" : "input must be an object",
                                    path,
                                    keyword: "type"
                                  }];
                                }
                                return null;
                              };
                              return ObjectValidator2;
                            }()
                          );
                          exports2.ObjectValidator = ObjectValidator;
                          var ArrayValidator = (
                            /** @class */
                            function() {
                              function ArrayValidator2(itemValidators) {
                                this.itemValidators = itemValidators;
                              }
                              ArrayValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                if (!Array.isArray(input)) {
                                  return [{
                                    message: field + " property is invalid",
                                    path: (path ? path + "." : "") + field,
                                    keyword: "type"
                                  }];
                                }
                                for (var i = 0; i < input.length; i++) {
                                  var fieldsPath = (path ? path + "." : "") + field + "." + i.toString();
                                  for (var _i = 0, _a = this.itemValidators; _i < _a.length; _i++) {
                                    var validator = _a[_i];
                                    var errors = validator.validate(input[i], fieldsPath, field);
                                    if (errors) {
                                      return [{
                                        message: field + " property is invalid",
                                        path: (path ? path + "." : "") + field,
                                        keyword: "type"
                                      }];
                                    }
                                  }
                                }
                                return null;
                              };
                              return ArrayValidator2;
                            }()
                          );
                          exports2.ArrayValidator = ArrayValidator;
                          var TypeValidator = (
                            /** @class */
                            function() {
                              function TypeValidator2(expectedType) {
                                this.expectedType = expectedType;
                              }
                              TypeValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                if (!(typeof input === this.expectedType)) {
                                  return [{
                                    message: field + " must be a " + this.expectedType,
                                    path: (path ? path + "." : "") + field,
                                    keyword: "type"
                                  }];
                                }
                                return null;
                              };
                              return TypeValidator2;
                            }()
                          );
                          exports2.TypeValidator = TypeValidator;
                          var StringValidator = (
                            /** @class */
                            function(_super) {
                              __extends(StringValidator2, _super);
                              function StringValidator2() {
                                return _super.call(this, "string") || this;
                              }
                              return StringValidator2;
                            }(TypeValidator)
                          );
                          exports2.StringValidator = StringValidator;
                          var BooleanValidator = (
                            /** @class */
                            function(_super) {
                              __extends(BooleanValidator2, _super);
                              function BooleanValidator2() {
                                return _super.call(this, "boolean") || this;
                              }
                              return BooleanValidator2;
                            }(TypeValidator)
                          );
                          exports2.BooleanValidator = BooleanValidator;
                          var NumberValidator = (
                            /** @class */
                            function(_super) {
                              __extends(NumberValidator2, _super);
                              function NumberValidator2() {
                                return _super.call(this, "number") || this;
                              }
                              return NumberValidator2;
                            }(TypeValidator)
                          );
                          exports2.NumberValidator = NumberValidator;
                          var ValueValidator = (
                            /** @class */
                            function() {
                              function ValueValidator2(possibleValues) {
                                this.possibleValues = possibleValues;
                              }
                              ValueValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                if (this.possibleValues.indexOf(input) < 0) {
                                  return [{
                                    message: field + " property is invalid",
                                    path: (path ? path + "." : "") + field,
                                    keyword: "invalid"
                                  }];
                                }
                                return null;
                              };
                              return ValueValidator2;
                            }()
                          );
                          exports2.ValueValidator = ValueValidator;
                          var SchemaValidator = (
                            /** @class */
                            function(_super) {
                              __extends(SchemaValidator2, _super);
                              function SchemaValidator2(schemaValue) {
                                var _this = _super.call(this, [schemaValue]) || this;
                                _this.schemaValue = schemaValue;
                                return _this;
                              }
                              SchemaValidator2.prototype.validate = function(input, path, field) {
                                return _super.prototype.validate.call(this, input, path, field);
                              };
                              return SchemaValidator2;
                            }(ValueValidator)
                          );
                          exports2.SchemaValidator = SchemaValidator;
                          var EnumValidator = (
                            /** @class */
                            function(_super) {
                              __extends(EnumValidator2, _super);
                              function EnumValidator2(possibleValues) {
                                var _this = _super.call(this) || this;
                                _this.possibleValues = possibleValues;
                                return _this;
                              }
                              EnumValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var valueValidator = new ValueValidator(this.possibleValues);
                                return valueValidator.validate(input, path, field);
                              };
                              return EnumValidator2;
                            }(NumberValidator)
                          );
                          exports2.EnumValidator = EnumValidator;
                          var StringArrayValidator = (
                            /** @class */
                            function(_super) {
                              __extends(StringArrayValidator2, _super);
                              function StringArrayValidator2() {
                                return _super.call(this, [new StringValidator()]) || this;
                              }
                              StringArrayValidator2.prototype.validate = function(input, path, field) {
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return [{
                                    message: field + " must be an array of strings",
                                    path: (path ? path + "." : "") + field,
                                    keyword: "type"
                                  }];
                                }
                                return null;
                              };
                              return StringArrayValidator2;
                            }(ArrayValidator)
                          );
                          exports2.StringArrayValidator = StringArrayValidator;
                          var BooleanArrayValidator = (
                            /** @class */
                            function(_super) {
                              __extends(BooleanArrayValidator2, _super);
                              function BooleanArrayValidator2() {
                                return _super.call(this, [new BooleanValidator()]) || this;
                              }
                              BooleanArrayValidator2.prototype.validate = function(input, path, field) {
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return [{
                                    message: field + " must be an array of booleans",
                                    path: (path ? path + "." : "") + field,
                                    keyword: "type"
                                  }];
                                }
                                return null;
                              };
                              return BooleanArrayValidator2;
                            }(ArrayValidator)
                          );
                          exports2.BooleanArrayValidator = BooleanArrayValidator;
                          var NumberArrayValidator = (
                            /** @class */
                            function(_super) {
                              __extends(NumberArrayValidator2, _super);
                              function NumberArrayValidator2() {
                                return _super.call(this, [new NumberValidator()]) || this;
                              }
                              NumberArrayValidator2.prototype.validate = function(input, path, field) {
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return [{
                                    message: field + " must be an array of numbers",
                                    path: (path ? path + "." : "") + field,
                                    keyword: "type"
                                  }];
                                }
                                return null;
                              };
                              return NumberArrayValidator2;
                            }(ArrayValidator)
                          );
                          exports2.NumberArrayValidator = NumberArrayValidator;
                          var RangeValidator = (
                            /** @class */
                            function(_super) {
                              __extends(RangeValidator2, _super);
                              function RangeValidator2(minValue, maxValue) {
                                var _this = _super.call(this) || this;
                                _this.minValue = minValue;
                                _this.maxValue = maxValue;
                                return _this;
                              }
                              RangeValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                if (input > this.maxValue || input < this.minValue) {
                                  return [{
                                    message: field + " must be a number between " + this.minValue.toString() + " and " + this.maxValue.toString(),
                                    path: (path ? path + "." : "") + field,
                                    keyword: "range"
                                  }];
                                }
                                return null;
                              };
                              return RangeValidator2;
                            }(NumberValidator)
                          );
                          exports2.RangeValidator = RangeValidator;
                        },
                        /* 5 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_80906__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.CaptureBookmarkRequestValidator = exports2.CaptureBookmarkOptionsValidator = exports2.ApplyBookmarkStateRequestValidator = exports2.ApplyBookmarkByNameRequestValidator = exports2.AddBookmarkRequestValidator = exports2.PlayBookmarkRequestValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_80906__(3);
                          var typeValidator_1 = __nested_webpack_require_80906__(4);
                          var validator_1 = __nested_webpack_require_80906__(1);
                          var PlayBookmarkRequestValidator = (
                            /** @class */
                            function(_super) {
                              __extends(PlayBookmarkRequestValidator2, _super);
                              function PlayBookmarkRequestValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              PlayBookmarkRequestValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "playMode",
                                    validators: [validator_1.Validators.fieldRequiredValidator, new typeValidator_1.EnumValidator([0, 1])]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return PlayBookmarkRequestValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.PlayBookmarkRequestValidator = PlayBookmarkRequestValidator;
                          var AddBookmarkRequestValidator = (
                            /** @class */
                            function(_super) {
                              __extends(AddBookmarkRequestValidator2, _super);
                              function AddBookmarkRequestValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              AddBookmarkRequestValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "state",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "displayName",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "apply",
                                    validators: [validator_1.Validators.booleanValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return AddBookmarkRequestValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.AddBookmarkRequestValidator = AddBookmarkRequestValidator;
                          var ApplyBookmarkByNameRequestValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ApplyBookmarkByNameRequestValidator2, _super);
                              function ApplyBookmarkByNameRequestValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ApplyBookmarkByNameRequestValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "name",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ApplyBookmarkByNameRequestValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ApplyBookmarkByNameRequestValidator = ApplyBookmarkByNameRequestValidator;
                          var ApplyBookmarkStateRequestValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ApplyBookmarkStateRequestValidator2, _super);
                              function ApplyBookmarkStateRequestValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ApplyBookmarkStateRequestValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "state",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ApplyBookmarkStateRequestValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ApplyBookmarkStateRequestValidator = ApplyBookmarkStateRequestValidator;
                          var CaptureBookmarkOptionsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(CaptureBookmarkOptionsValidator2, _super);
                              function CaptureBookmarkOptionsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              CaptureBookmarkOptionsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "personalizeVisuals",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "allPages",
                                    validators: [validator_1.Validators.booleanValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return CaptureBookmarkOptionsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.CaptureBookmarkOptionsValidator = CaptureBookmarkOptionsValidator;
                          var CaptureBookmarkRequestValidator = (
                            /** @class */
                            function(_super) {
                              __extends(CaptureBookmarkRequestValidator2, _super);
                              function CaptureBookmarkRequestValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              CaptureBookmarkRequestValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "options",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.captureBookmarkOptionsValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return CaptureBookmarkRequestValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.CaptureBookmarkRequestValidator = CaptureBookmarkRequestValidator;
                        },
                        /* 6 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_89382__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.PaginatedReportCommandsValidator = exports2.SingleCommandSettingsValidator = exports2.CommandsSettingsValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_89382__(3);
                          var typeValidator_1 = __nested_webpack_require_89382__(4);
                          var validator_1 = __nested_webpack_require_89382__(1);
                          var CommandsSettingsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(CommandsSettingsValidator2, _super);
                              function CommandsSettingsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              CommandsSettingsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "copy",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "drill",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "drillthrough",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "expandCollapse",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "exportData",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "includeExclude",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "removeVisual",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "search",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "seeData",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "sort",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "spotlight",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "insightsAnalysis",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "addComment",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "groupVisualContainers",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "summarize",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  },
                                  {
                                    field: "clearSelection",
                                    validators: [validator_1.Validators.singleCommandSettingsValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return CommandsSettingsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.CommandsSettingsValidator = CommandsSettingsValidator;
                          var SingleCommandSettingsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(SingleCommandSettingsValidator2, _super);
                              function SingleCommandSettingsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              SingleCommandSettingsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "displayOption",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.commandDisplayOptionValidator]
                                  },
                                  {
                                    field: "selector",
                                    validators: [validator_1.Validators.visualCommandSelectorValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return SingleCommandSettingsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.SingleCommandSettingsValidator = SingleCommandSettingsValidator;
                          var PaginatedReportCommandsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(PaginatedReportCommandsValidator2, _super);
                              function PaginatedReportCommandsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              PaginatedReportCommandsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "parameterPanel",
                                    validators: [validator_1.Validators.parametersPanelValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return PaginatedReportCommandsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.PaginatedReportCommandsValidator = PaginatedReportCommandsValidator;
                        },
                        /* 7 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_96415__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.CustomThemeValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_96415__(3);
                          var typeValidator_1 = __nested_webpack_require_96415__(4);
                          var CustomThemeValidator = (
                            /** @class */
                            function(_super) {
                              __extends(CustomThemeValidator2, _super);
                              function CustomThemeValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              CustomThemeValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "themeJson",
                                    validators: [new typeValidator_1.ObjectValidator()]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return CustomThemeValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.CustomThemeValidator = CustomThemeValidator;
                        },
                        /* 8 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_98569__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.DashboardLoadValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_98569__(3);
                          var typeValidator_1 = __nested_webpack_require_98569__(4);
                          var validator_1 = __nested_webpack_require_98569__(1);
                          var DashboardLoadValidator = (
                            /** @class */
                            function(_super) {
                              __extends(DashboardLoadValidator2, _super);
                              function DashboardLoadValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              DashboardLoadValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "accessToken",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "id",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "groupId",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "pageView",
                                    validators: [validator_1.Validators.pageViewFieldValidator]
                                  },
                                  {
                                    field: "tokenType",
                                    validators: [validator_1.Validators.tokenTypeValidator]
                                  },
                                  {
                                    field: "embedUrl",
                                    validators: [validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return DashboardLoadValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.DashboardLoadValidator = DashboardLoadValidator;
                        },
                        /* 9 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_101568__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.DatasetBindingValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_101568__(3);
                          var typeValidator_1 = __nested_webpack_require_101568__(4);
                          var validator_1 = __nested_webpack_require_101568__(1);
                          var DatasetBindingValidator = (
                            /** @class */
                            function(_super) {
                              __extends(DatasetBindingValidator2, _super);
                              function DatasetBindingValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              DatasetBindingValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                if (!input["datasetId"] && !input["paginatedReportBindings"]) {
                                  return [{
                                    message: "datasetBinding cannot be empty",
                                    path: (path ? path + "." : "") + field,
                                    keyword: "invalid"
                                  }];
                                }
                                var fields = [
                                  {
                                    field: "datasetId",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "paginatedReportBindings",
                                    validators: [validator_1.Validators.paginatedReportDatasetBindingArrayValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return DatasetBindingValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.DatasetBindingValidator = DatasetBindingValidator;
                        },
                        /* 10 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_104264__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.ExportDataRequestValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_104264__(3);
                          var typeValidator_1 = __nested_webpack_require_104264__(4);
                          var ExportDataRequestValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ExportDataRequestValidator2, _super);
                              function ExportDataRequestValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ExportDataRequestValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "rows",
                                    validators: [new typeValidator_1.NumberValidator()]
                                  },
                                  {
                                    field: "exportDataType",
                                    validators: [new typeValidator_1.EnumValidator([0, 1])]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ExportDataRequestValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ExportDataRequestValidator = ExportDataRequestValidator;
                        },
                        /* 11 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_106608__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.ExtensionsValidator = exports2.MenuGroupExtensionValidator = exports2.ExtensionValidator = exports2.CommandExtensionValidator = exports2.ExtensionItemValidator = exports2.ExtensionPointsValidator = exports2.GroupedMenuExtensionValidator = exports2.FlatMenuExtensionValidator = exports2.MenuExtensionBaseValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_106608__(3);
                          var typeValidator_1 = __nested_webpack_require_106608__(4);
                          var validator_1 = __nested_webpack_require_106608__(1);
                          var MenuExtensionBaseValidator = (
                            /** @class */
                            function(_super) {
                              __extends(MenuExtensionBaseValidator2, _super);
                              function MenuExtensionBaseValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              MenuExtensionBaseValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "title",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "icon",
                                    validators: [validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return MenuExtensionBaseValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.MenuExtensionBaseValidator = MenuExtensionBaseValidator;
                          var FlatMenuExtensionValidator = (
                            /** @class */
                            function(_super) {
                              __extends(FlatMenuExtensionValidator2, _super);
                              function FlatMenuExtensionValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              FlatMenuExtensionValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "menuLocation",
                                    validators: [validator_1.Validators.menuLocationValidator]
                                  },
                                  {
                                    field: "groupName",
                                    validators: [validator_1.Validators.fieldForbiddenValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return FlatMenuExtensionValidator2;
                            }(MenuExtensionBaseValidator)
                          );
                          exports2.FlatMenuExtensionValidator = FlatMenuExtensionValidator;
                          var GroupedMenuExtensionValidator = (
                            /** @class */
                            function(_super) {
                              __extends(GroupedMenuExtensionValidator2, _super);
                              function GroupedMenuExtensionValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              GroupedMenuExtensionValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "groupName",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "menuLocation",
                                    validators: [validator_1.Validators.fieldForbiddenValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return GroupedMenuExtensionValidator2;
                            }(MenuExtensionBaseValidator)
                          );
                          exports2.GroupedMenuExtensionValidator = GroupedMenuExtensionValidator;
                          var ExtensionPointsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ExtensionPointsValidator2, _super);
                              function ExtensionPointsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ExtensionPointsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "visualContextMenu",
                                    validators: [validator_1.Validators.menuExtensionValidator]
                                  },
                                  {
                                    field: "visualOptionsMenu",
                                    validators: [validator_1.Validators.menuExtensionValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ExtensionPointsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ExtensionPointsValidator = ExtensionPointsValidator;
                          var ExtensionItemValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ExtensionItemValidator2, _super);
                              function ExtensionItemValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ExtensionItemValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "name",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "extend",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.extensionPointsValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ExtensionItemValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ExtensionItemValidator = ExtensionItemValidator;
                          var CommandExtensionValidator = (
                            /** @class */
                            function(_super) {
                              __extends(CommandExtensionValidator2, _super);
                              function CommandExtensionValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              CommandExtensionValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "title",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "icon",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "selector",
                                    validators: [validator_1.Validators.commandExtensionSelectorValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return CommandExtensionValidator2;
                            }(ExtensionItemValidator)
                          );
                          exports2.CommandExtensionValidator = CommandExtensionValidator;
                          var ExtensionValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ExtensionValidator2, _super);
                              function ExtensionValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ExtensionValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "command",
                                    validators: [validator_1.Validators.commandExtensionValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ExtensionValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ExtensionValidator = ExtensionValidator;
                          var MenuGroupExtensionValidator = (
                            /** @class */
                            function(_super) {
                              __extends(MenuGroupExtensionValidator2, _super);
                              function MenuGroupExtensionValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              MenuGroupExtensionValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "name",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "title",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "menuLocation",
                                    validators: [validator_1.Validators.menuLocationValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return MenuGroupExtensionValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.MenuGroupExtensionValidator = MenuGroupExtensionValidator;
                          var ExtensionsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ExtensionsValidator2, _super);
                              function ExtensionsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ExtensionsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "commands",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.commandExtensionArrayValidator]
                                  },
                                  {
                                    field: "groups",
                                    validators: [validator_1.Validators.menuGroupExtensionArrayValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ExtensionsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ExtensionsValidator = ExtensionsValidator;
                        },
                        /* 12 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_119099__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.OnLoadFiltersValidator = exports2.OnLoadFiltersBaseRemoveOperationValidator = exports2.OnLoadFiltersBaseValidator = exports2.ConditionItemValidator = exports2.RemoveFiltersRequestValidator = exports2.UpdateFiltersRequestValidator = exports2.FilterValidator = exports2.IncludeExcludePointValueValidator = exports2.HierarchyFilterNodeValidator = exports2.HierarchyFilterValidator = exports2.IncludeExcludeFilterValidator = exports2.NotSupportedFilterValidator = exports2.TopNFilterValidator = exports2.RelativeTimeFilterValidator = exports2.RelativeDateFilterValidator = exports2.RelativeDateTimeFilterValidator = exports2.AdvancedFilterValidator = exports2.BasicFilterValidator = exports2.FilterValidatorBase = exports2.FilterDisplaySettingsValidator = exports2.FilterMeasureTargetValidator = exports2.FilterKeyHierarchyTargetValidator = exports2.FilterHierarchyTargetValidator = exports2.FilterKeyColumnsTargetValidator = exports2.FilterColumnTargetValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_119099__(3);
                          var typeValidator_1 = __nested_webpack_require_119099__(4);
                          var validator_1 = __nested_webpack_require_119099__(1);
                          var FilterColumnTargetValidator = (
                            /** @class */
                            function(_super) {
                              __extends(FilterColumnTargetValidator2, _super);
                              function FilterColumnTargetValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              FilterColumnTargetValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "table",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "column",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return FilterColumnTargetValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.FilterColumnTargetValidator = FilterColumnTargetValidator;
                          var FilterKeyColumnsTargetValidator = (
                            /** @class */
                            function(_super) {
                              __extends(FilterKeyColumnsTargetValidator2, _super);
                              function FilterKeyColumnsTargetValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              FilterKeyColumnsTargetValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "keys",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringArrayValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return FilterKeyColumnsTargetValidator2;
                            }(FilterColumnTargetValidator)
                          );
                          exports2.FilterKeyColumnsTargetValidator = FilterKeyColumnsTargetValidator;
                          var FilterHierarchyTargetValidator = (
                            /** @class */
                            function(_super) {
                              __extends(FilterHierarchyTargetValidator2, _super);
                              function FilterHierarchyTargetValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              FilterHierarchyTargetValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "table",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "hierarchy",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "hierarchyLevel",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return FilterHierarchyTargetValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.FilterHierarchyTargetValidator = FilterHierarchyTargetValidator;
                          var FilterKeyHierarchyTargetValidator = (
                            /** @class */
                            function(_super) {
                              __extends(FilterKeyHierarchyTargetValidator2, _super);
                              function FilterKeyHierarchyTargetValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              FilterKeyHierarchyTargetValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "keys",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringArrayValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return FilterKeyHierarchyTargetValidator2;
                            }(FilterHierarchyTargetValidator)
                          );
                          exports2.FilterKeyHierarchyTargetValidator = FilterKeyHierarchyTargetValidator;
                          var FilterMeasureTargetValidator = (
                            /** @class */
                            function(_super) {
                              __extends(FilterMeasureTargetValidator2, _super);
                              function FilterMeasureTargetValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              FilterMeasureTargetValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "table",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "measure",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return FilterMeasureTargetValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.FilterMeasureTargetValidator = FilterMeasureTargetValidator;
                          var FilterDisplaySettingsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(FilterDisplaySettingsValidator2, _super);
                              function FilterDisplaySettingsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              FilterDisplaySettingsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "isLockedInViewMode",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "isHiddenInViewMode",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "displayName",
                                    validators: [validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return FilterDisplaySettingsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.FilterDisplaySettingsValidator = FilterDisplaySettingsValidator;
                          var FilterValidatorBase = (
                            /** @class */
                            function(_super) {
                              __extends(FilterValidatorBase2, _super);
                              function FilterValidatorBase2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              FilterValidatorBase2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "target",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filterTargetValidator]
                                  },
                                  {
                                    field: "$schema",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "filterType",
                                    validators: [validator_1.Validators.filterTypeValidator]
                                  },
                                  {
                                    field: "displaySettings",
                                    validators: [validator_1.Validators.filterDisplaySettingsValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return FilterValidatorBase2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.FilterValidatorBase = FilterValidatorBase;
                          var BasicFilterValidator = (
                            /** @class */
                            function(_super) {
                              __extends(BasicFilterValidator2, _super);
                              function BasicFilterValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              BasicFilterValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "operator",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "values",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.anyArrayValidator]
                                  },
                                  {
                                    field: "filterType",
                                    validators: [validator_1.Validators.basicFilterTypeValidator]
                                  },
                                  {
                                    field: "requireSingleSelection",
                                    validators: [validator_1.Validators.booleanValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return BasicFilterValidator2;
                            }(FilterValidatorBase)
                          );
                          exports2.BasicFilterValidator = BasicFilterValidator;
                          var AdvancedFilterValidator = (
                            /** @class */
                            function(_super) {
                              __extends(AdvancedFilterValidator2, _super);
                              function AdvancedFilterValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              AdvancedFilterValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "logicalOperator",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "conditions",
                                    validators: [validator_1.Validators.filterConditionsValidator]
                                  },
                                  {
                                    field: "filterType",
                                    validators: [validator_1.Validators.advancedFilterTypeValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return AdvancedFilterValidator2;
                            }(FilterValidatorBase)
                          );
                          exports2.AdvancedFilterValidator = AdvancedFilterValidator;
                          var RelativeDateTimeFilterValidator = (
                            /** @class */
                            function(_super) {
                              __extends(RelativeDateTimeFilterValidator2, _super);
                              function RelativeDateTimeFilterValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              RelativeDateTimeFilterValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "operator",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.relativeDateFilterOperatorValidator]
                                  },
                                  {
                                    field: "timeUnitsCount",
                                    validators: [validator_1.Validators.numberValidator]
                                  },
                                  {
                                    field: "timeUnitType",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.relativeDateTimeFilterUnitTypeValidator]
                                  },
                                  {
                                    field: "filterType",
                                    validators: [validator_1.Validators.relativeDateTimeFilterTypeValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return RelativeDateTimeFilterValidator2;
                            }(FilterValidatorBase)
                          );
                          exports2.RelativeDateTimeFilterValidator = RelativeDateTimeFilterValidator;
                          var RelativeDateFilterValidator = (
                            /** @class */
                            function(_super) {
                              __extends(RelativeDateFilterValidator2, _super);
                              function RelativeDateFilterValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              RelativeDateFilterValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "includeToday",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "timeUnitType",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.relativeDateFilterTimeUnitTypeValidator]
                                  },
                                  {
                                    field: "filterType",
                                    validators: [validator_1.Validators.relativeDateFilterTypeValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return RelativeDateFilterValidator2;
                            }(RelativeDateTimeFilterValidator)
                          );
                          exports2.RelativeDateFilterValidator = RelativeDateFilterValidator;
                          var RelativeTimeFilterValidator = (
                            /** @class */
                            function(_super) {
                              __extends(RelativeTimeFilterValidator2, _super);
                              function RelativeTimeFilterValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              RelativeTimeFilterValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "timeUnitType",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.relativeTimeFilterTimeUnitTypeValidator]
                                  },
                                  {
                                    field: "filterType",
                                    validators: [validator_1.Validators.relativeTimeFilterTypeValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return RelativeTimeFilterValidator2;
                            }(RelativeDateTimeFilterValidator)
                          );
                          exports2.RelativeTimeFilterValidator = RelativeTimeFilterValidator;
                          var TopNFilterValidator = (
                            /** @class */
                            function(_super) {
                              __extends(TopNFilterValidator2, _super);
                              function TopNFilterValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              TopNFilterValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "operator",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "itemCount",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.numberValidator]
                                  },
                                  {
                                    field: "filterType",
                                    validators: [validator_1.Validators.topNFilterTypeValidator]
                                  },
                                  {
                                    field: "orderBy",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filterTargetValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return TopNFilterValidator2;
                            }(FilterValidatorBase)
                          );
                          exports2.TopNFilterValidator = TopNFilterValidator;
                          var NotSupportedFilterValidator = (
                            /** @class */
                            function(_super) {
                              __extends(NotSupportedFilterValidator2, _super);
                              function NotSupportedFilterValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              NotSupportedFilterValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "message",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "notSupportedTypeName",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "filterType",
                                    validators: [validator_1.Validators.notSupportedFilterTypeValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return NotSupportedFilterValidator2;
                            }(FilterValidatorBase)
                          );
                          exports2.NotSupportedFilterValidator = NotSupportedFilterValidator;
                          var IncludeExcludeFilterValidator = (
                            /** @class */
                            function(_super) {
                              __extends(IncludeExcludeFilterValidator2, _super);
                              function IncludeExcludeFilterValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              IncludeExcludeFilterValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "isExclude",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "values",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.includeExcludeFilterValuesValidator]
                                  },
                                  {
                                    field: "filterType",
                                    validators: [validator_1.Validators.includeExludeFilterTypeValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return IncludeExcludeFilterValidator2;
                            }(FilterValidatorBase)
                          );
                          exports2.IncludeExcludeFilterValidator = IncludeExcludeFilterValidator;
                          var HierarchyFilterValidator = (
                            /** @class */
                            function(_super) {
                              __extends(HierarchyFilterValidator2, _super);
                              function HierarchyFilterValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              HierarchyFilterValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "hierarchyData",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.hierarchyFilterValuesValidator]
                                  },
                                  {
                                    field: "filterType",
                                    validators: [validator_1.Validators.hierarchyFilterTypeValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return HierarchyFilterValidator2;
                            }(FilterValidatorBase)
                          );
                          exports2.HierarchyFilterValidator = HierarchyFilterValidator;
                          var HierarchyFilterNodeValidator = (
                            /** @class */
                            function(_super) {
                              __extends(HierarchyFilterNodeValidator2, _super);
                              function HierarchyFilterNodeValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              HierarchyFilterNodeValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "value",
                                    validators: [validator_1.Validators.anyValueValidator]
                                  },
                                  {
                                    field: "keyValues",
                                    validators: [validator_1.Validators.anyArrayValidator]
                                  },
                                  {
                                    field: "children",
                                    validators: [validator_1.Validators.hierarchyFilterValuesValidator]
                                  },
                                  {
                                    field: "operator",
                                    validators: [validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return HierarchyFilterNodeValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.HierarchyFilterNodeValidator = HierarchyFilterNodeValidator;
                          var IncludeExcludePointValueValidator = (
                            /** @class */
                            function(_super) {
                              __extends(IncludeExcludePointValueValidator2, _super);
                              function IncludeExcludePointValueValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              IncludeExcludePointValueValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "value",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.anyValueValidator]
                                  },
                                  {
                                    field: "keyValues",
                                    validators: [validator_1.Validators.anyArrayValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return IncludeExcludePointValueValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.IncludeExcludePointValueValidator = IncludeExcludePointValueValidator;
                          var FilterValidator = (
                            /** @class */
                            function(_super) {
                              __extends(FilterValidator2, _super);
                              function FilterValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              FilterValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                return validator_1.Validators.anyFilterValidator.validate(input, path, field);
                              };
                              return FilterValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.FilterValidator = FilterValidator;
                          var UpdateFiltersRequestValidator = (
                            /** @class */
                            function(_super) {
                              __extends(UpdateFiltersRequestValidator2, _super);
                              function UpdateFiltersRequestValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              UpdateFiltersRequestValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "filtersOperation",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filtersOperationsUpdateValidator]
                                  },
                                  {
                                    field: "filters",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filtersArrayValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return UpdateFiltersRequestValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.UpdateFiltersRequestValidator = UpdateFiltersRequestValidator;
                          var RemoveFiltersRequestValidator = (
                            /** @class */
                            function(_super) {
                              __extends(RemoveFiltersRequestValidator2, _super);
                              function RemoveFiltersRequestValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              RemoveFiltersRequestValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "filtersOperation",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filtersOperationsRemoveAllValidator]
                                  },
                                  {
                                    field: "filters",
                                    validators: [validator_1.Validators.fieldForbiddenValidator, validator_1.Validators.filtersArrayValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return RemoveFiltersRequestValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.RemoveFiltersRequestValidator = RemoveFiltersRequestValidator;
                          var ConditionItemValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ConditionItemValidator2, _super);
                              function ConditionItemValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ConditionItemValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "value",
                                    validators: [validator_1.Validators.anyValueValidator]
                                  },
                                  {
                                    field: "operator",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ConditionItemValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ConditionItemValidator = ConditionItemValidator;
                          var OnLoadFiltersBaseValidator = (
                            /** @class */
                            function(_super) {
                              __extends(OnLoadFiltersBaseValidator2, _super);
                              function OnLoadFiltersBaseValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              OnLoadFiltersBaseValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "operation",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filtersOperationsUpdateValidator]
                                  },
                                  {
                                    field: "filters",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filtersArrayValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return OnLoadFiltersBaseValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.OnLoadFiltersBaseValidator = OnLoadFiltersBaseValidator;
                          var OnLoadFiltersBaseRemoveOperationValidator = (
                            /** @class */
                            function(_super) {
                              __extends(OnLoadFiltersBaseRemoveOperationValidator2, _super);
                              function OnLoadFiltersBaseRemoveOperationValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              OnLoadFiltersBaseRemoveOperationValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "operation",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filtersOperationsRemoveAllValidator]
                                  },
                                  {
                                    field: "filters",
                                    validators: [validator_1.Validators.fieldForbiddenValidator, validator_1.Validators.filtersArrayValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return OnLoadFiltersBaseRemoveOperationValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.OnLoadFiltersBaseRemoveOperationValidator = OnLoadFiltersBaseRemoveOperationValidator;
                          var OnLoadFiltersValidator = (
                            /** @class */
                            function(_super) {
                              __extends(OnLoadFiltersValidator2, _super);
                              function OnLoadFiltersValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              OnLoadFiltersValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "allPages",
                                    validators: [validator_1.Validators.onLoadFiltersBaseValidator]
                                  },
                                  {
                                    field: "currentPage",
                                    validators: [validator_1.Validators.onLoadFiltersBaseValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return OnLoadFiltersValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.OnLoadFiltersValidator = OnLoadFiltersValidator;
                        },
                        /* 13 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_154405__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.PageLayoutValidator = exports2.DisplayStateValidator = exports2.VisualLayoutValidator = exports2.CustomLayoutValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_154405__(3);
                          var typeValidator_1 = __nested_webpack_require_154405__(4);
                          var validator_1 = __nested_webpack_require_154405__(1);
                          var CustomLayoutValidator = (
                            /** @class */
                            function(_super) {
                              __extends(CustomLayoutValidator2, _super);
                              function CustomLayoutValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              CustomLayoutValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "pageSize",
                                    validators: [validator_1.Validators.pageSizeValidator]
                                  },
                                  {
                                    field: "displayOption",
                                    validators: [validator_1.Validators.customLayoutDisplayOptionValidator]
                                  },
                                  {
                                    field: "pagesLayout",
                                    validators: [validator_1.Validators.pagesLayoutValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return CustomLayoutValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.CustomLayoutValidator = CustomLayoutValidator;
                          var VisualLayoutValidator = (
                            /** @class */
                            function(_super) {
                              __extends(VisualLayoutValidator2, _super);
                              function VisualLayoutValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              VisualLayoutValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "x",
                                    validators: [validator_1.Validators.numberValidator]
                                  },
                                  {
                                    field: "y",
                                    validators: [validator_1.Validators.numberValidator]
                                  },
                                  {
                                    field: "z",
                                    validators: [validator_1.Validators.numberValidator]
                                  },
                                  {
                                    field: "width",
                                    validators: [validator_1.Validators.numberValidator]
                                  },
                                  {
                                    field: "height",
                                    validators: [validator_1.Validators.numberValidator]
                                  },
                                  {
                                    field: "displayState",
                                    validators: [validator_1.Validators.displayStateValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return VisualLayoutValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.VisualLayoutValidator = VisualLayoutValidator;
                          var DisplayStateValidator = (
                            /** @class */
                            function(_super) {
                              __extends(DisplayStateValidator2, _super);
                              function DisplayStateValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              DisplayStateValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "mode",
                                    validators: [validator_1.Validators.displayStateModeValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return DisplayStateValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.DisplayStateValidator = DisplayStateValidator;
                          var PageLayoutValidator = (
                            /** @class */
                            function(_super) {
                              __extends(PageLayoutValidator2, _super);
                              function PageLayoutValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              PageLayoutValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "visualsLayout",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.pageLayoutValidator]
                                  },
                                  {
                                    field: "defaultLayout",
                                    validators: [validator_1.Validators.visualLayoutValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return PageLayoutValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.PageLayoutValidator = PageLayoutValidator;
                        },
                        /* 14 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_160884__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.PageViewFieldValidator = exports2.PageValidator = exports2.CustomPageSizeValidator = exports2.PageSizeValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_160884__(3);
                          var typeValidator_1 = __nested_webpack_require_160884__(4);
                          var validator_1 = __nested_webpack_require_160884__(1);
                          var PageSizeValidator = (
                            /** @class */
                            function(_super) {
                              __extends(PageSizeValidator2, _super);
                              function PageSizeValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              PageSizeValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "type",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.pageSizeTypeValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return PageSizeValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.PageSizeValidator = PageSizeValidator;
                          var CustomPageSizeValidator = (
                            /** @class */
                            function(_super) {
                              __extends(CustomPageSizeValidator2, _super);
                              function CustomPageSizeValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              CustomPageSizeValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "width",
                                    validators: [validator_1.Validators.numberValidator]
                                  },
                                  {
                                    field: "height",
                                    validators: [validator_1.Validators.numberValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return CustomPageSizeValidator2;
                            }(PageSizeValidator)
                          );
                          exports2.CustomPageSizeValidator = CustomPageSizeValidator;
                          var PageValidator = (
                            /** @class */
                            function(_super) {
                              __extends(PageValidator2, _super);
                              function PageValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              PageValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "name",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return PageValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.PageValidator = PageValidator;
                          var PageViewFieldValidator = (
                            /** @class */
                            function(_super) {
                              __extends(PageViewFieldValidator2, _super);
                              function PageViewFieldValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              PageViewFieldValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var possibleValues = ["actualSize", "fitToWidth", "oneColumn"];
                                if (possibleValues.indexOf(input) < 0) {
                                  return [{
                                    message: 'pageView must be a string with one of the following values: "actualSize", "fitToWidth", "oneColumn"'
                                  }];
                                }
                                return null;
                              };
                              return PageViewFieldValidator2;
                            }(typeValidator_1.StringValidator)
                          );
                          exports2.PageViewFieldValidator = PageViewFieldValidator;
                        },
                        /* 15 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_166324__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.VisualizationsPaneValidator = exports2.SyncSlicersPaneValidator = exports2.SelectionPaneValidator = exports2.PageNavigationPaneValidator = exports2.FiltersPaneValidator = exports2.FieldsPaneValidator = exports2.BookmarksPaneValidator = exports2.QnaPanesValidator = exports2.ReportPanesValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_166324__(3);
                          var typeValidator_1 = __nested_webpack_require_166324__(4);
                          var validator_1 = __nested_webpack_require_166324__(1);
                          var ReportPanesValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ReportPanesValidator2, _super);
                              function ReportPanesValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ReportPanesValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "bookmarks",
                                    validators: [validator_1.Validators.bookmarksPaneValidator]
                                  },
                                  {
                                    field: "fields",
                                    validators: [validator_1.Validators.fieldsPaneValidator]
                                  },
                                  {
                                    field: "filters",
                                    validators: [validator_1.Validators.filtersPaneValidator]
                                  },
                                  {
                                    field: "pageNavigation",
                                    validators: [validator_1.Validators.pageNavigationPaneValidator]
                                  },
                                  {
                                    field: "selection",
                                    validators: [validator_1.Validators.selectionPaneValidator]
                                  },
                                  {
                                    field: "syncSlicers",
                                    validators: [validator_1.Validators.syncSlicersPaneValidator]
                                  },
                                  {
                                    field: "visualizations",
                                    validators: [validator_1.Validators.visualizationsPaneValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ReportPanesValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ReportPanesValidator = ReportPanesValidator;
                          var QnaPanesValidator = (
                            /** @class */
                            function(_super) {
                              __extends(QnaPanesValidator2, _super);
                              function QnaPanesValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              QnaPanesValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "filters",
                                    validators: [validator_1.Validators.filtersPaneValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return QnaPanesValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.QnaPanesValidator = QnaPanesValidator;
                          var BookmarksPaneValidator = (
                            /** @class */
                            function(_super) {
                              __extends(BookmarksPaneValidator2, _super);
                              function BookmarksPaneValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              BookmarksPaneValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "visible",
                                    validators: [validator_1.Validators.booleanValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return BookmarksPaneValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.BookmarksPaneValidator = BookmarksPaneValidator;
                          var FieldsPaneValidator = (
                            /** @class */
                            function(_super) {
                              __extends(FieldsPaneValidator2, _super);
                              function FieldsPaneValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              FieldsPaneValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "expanded",
                                    validators: [validator_1.Validators.booleanValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return FieldsPaneValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.FieldsPaneValidator = FieldsPaneValidator;
                          var FiltersPaneValidator = (
                            /** @class */
                            function(_super) {
                              __extends(FiltersPaneValidator2, _super);
                              function FiltersPaneValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              FiltersPaneValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "visible",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "expanded",
                                    validators: [validator_1.Validators.booleanValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return FiltersPaneValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.FiltersPaneValidator = FiltersPaneValidator;
                          var PageNavigationPaneValidator = (
                            /** @class */
                            function(_super) {
                              __extends(PageNavigationPaneValidator2, _super);
                              function PageNavigationPaneValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              PageNavigationPaneValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "visible",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "position",
                                    validators: [validator_1.Validators.pageNavigationPositionValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return PageNavigationPaneValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.PageNavigationPaneValidator = PageNavigationPaneValidator;
                          var SelectionPaneValidator = (
                            /** @class */
                            function(_super) {
                              __extends(SelectionPaneValidator2, _super);
                              function SelectionPaneValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              SelectionPaneValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "visible",
                                    validators: [validator_1.Validators.booleanValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return SelectionPaneValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.SelectionPaneValidator = SelectionPaneValidator;
                          var SyncSlicersPaneValidator = (
                            /** @class */
                            function(_super) {
                              __extends(SyncSlicersPaneValidator2, _super);
                              function SyncSlicersPaneValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              SyncSlicersPaneValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "visible",
                                    validators: [validator_1.Validators.booleanValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return SyncSlicersPaneValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.SyncSlicersPaneValidator = SyncSlicersPaneValidator;
                          var VisualizationsPaneValidator = (
                            /** @class */
                            function(_super) {
                              __extends(VisualizationsPaneValidator2, _super);
                              function VisualizationsPaneValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              VisualizationsPaneValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "expanded",
                                    validators: [validator_1.Validators.booleanValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return VisualizationsPaneValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.VisualizationsPaneValidator = VisualizationsPaneValidator;
                        },
                        /* 16 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_178070__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.QnaInterpretInputDataValidator = exports2.QnaSettingsValidator = exports2.LoadQnaValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_178070__(3);
                          var typeValidator_1 = __nested_webpack_require_178070__(4);
                          var validator_1 = __nested_webpack_require_178070__(1);
                          var LoadQnaValidator = (
                            /** @class */
                            function(_super) {
                              __extends(LoadQnaValidator2, _super);
                              function LoadQnaValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              LoadQnaValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "accessToken",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "datasetIds",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringArrayValidator]
                                  },
                                  {
                                    field: "question",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "viewMode",
                                    validators: [validator_1.Validators.viewModeValidator]
                                  },
                                  {
                                    field: "settings",
                                    validators: [validator_1.Validators.qnaSettingValidator]
                                  },
                                  {
                                    field: "tokenType",
                                    validators: [validator_1.Validators.tokenTypeValidator]
                                  },
                                  {
                                    field: "groupId",
                                    validators: [validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return LoadQnaValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.LoadQnaValidator = LoadQnaValidator;
                          var QnaSettingsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(QnaSettingsValidator2, _super);
                              function QnaSettingsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              QnaSettingsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "filterPaneEnabled",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "hideErrors",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "panes",
                                    validators: [validator_1.Validators.qnaPanesValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return QnaSettingsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.QnaSettingsValidator = QnaSettingsValidator;
                          var QnaInterpretInputDataValidator = (
                            /** @class */
                            function(_super) {
                              __extends(QnaInterpretInputDataValidator2, _super);
                              function QnaInterpretInputDataValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              QnaInterpretInputDataValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "datasetIds",
                                    validators: [validator_1.Validators.stringArrayValidator]
                                  },
                                  {
                                    field: "question",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return QnaInterpretInputDataValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.QnaInterpretInputDataValidator = QnaInterpretInputDataValidator;
                        },
                        /* 17 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_183781__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.ReportCreateValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_183781__(3);
                          var typeValidator_1 = __nested_webpack_require_183781__(4);
                          var validator_1 = __nested_webpack_require_183781__(1);
                          var ReportCreateValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ReportCreateValidator2, _super);
                              function ReportCreateValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ReportCreateValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "accessToken",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "datasetId",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "groupId",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "tokenType",
                                    validators: [validator_1.Validators.tokenTypeValidator]
                                  },
                                  {
                                    field: "theme",
                                    validators: [validator_1.Validators.customThemeValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ReportCreateValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ReportCreateValidator = ReportCreateValidator;
                        },
                        /* 18 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_186639__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.ReportLoadValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_186639__(3);
                          var typeValidator_1 = __nested_webpack_require_186639__(4);
                          var validator_1 = __nested_webpack_require_186639__(1);
                          var ReportLoadValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ReportLoadValidator2, _super);
                              function ReportLoadValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ReportLoadValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "accessToken",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "id",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "groupId",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "settings",
                                    validators: [validator_1.Validators.settingsValidator]
                                  },
                                  {
                                    field: "pageName",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "filters",
                                    validators: [validator_1.Validators.reportLoadFiltersValidator]
                                  },
                                  {
                                    field: "permissions",
                                    validators: [validator_1.Validators.permissionsValidator]
                                  },
                                  {
                                    field: "viewMode",
                                    validators: [validator_1.Validators.viewModeValidator]
                                  },
                                  {
                                    field: "tokenType",
                                    validators: [validator_1.Validators.tokenTypeValidator]
                                  },
                                  {
                                    field: "bookmark",
                                    validators: [validator_1.Validators.applyBookmarkValidator]
                                  },
                                  {
                                    field: "theme",
                                    validators: [validator_1.Validators.customThemeValidator]
                                  },
                                  {
                                    field: "embedUrl",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "datasetBinding",
                                    validators: [validator_1.Validators.datasetBindingValidator]
                                  },
                                  {
                                    field: "contrastMode",
                                    validators: [validator_1.Validators.contrastModeValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ReportLoadValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ReportLoadValidator = ReportLoadValidator;
                        },
                        /* 19 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_190760__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.ReportParameterFieldsValidator = exports2.PaginatedReportLoadValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_190760__(3);
                          var typeValidator_1 = __nested_webpack_require_190760__(4);
                          var validator_1 = __nested_webpack_require_190760__(1);
                          var PaginatedReportLoadValidator = (
                            /** @class */
                            function(_super) {
                              __extends(PaginatedReportLoadValidator2, _super);
                              function PaginatedReportLoadValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              PaginatedReportLoadValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "accessToken",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "id",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "groupId",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "settings",
                                    validators: [validator_1.Validators.paginatedReportsettingsValidator]
                                  },
                                  {
                                    field: "tokenType",
                                    validators: [validator_1.Validators.tokenTypeValidator]
                                  },
                                  {
                                    field: "embedUrl",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "type",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "parameterValues",
                                    validators: [validator_1.Validators.parameterValuesArrayValidator]
                                  },
                                  {
                                    field: "datasetBindings",
                                    validators: [validator_1.Validators.paginatedReportDatasetBindingArrayValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return PaginatedReportLoadValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.PaginatedReportLoadValidator = PaginatedReportLoadValidator;
                          var ReportParameterFieldsValidator = (
                            /** @class */
                            function() {
                              function ReportParameterFieldsValidator2() {
                              }
                              ReportParameterFieldsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var fields = [
                                  {
                                    field: "name",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "value",
                                    validators: [validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ReportParameterFieldsValidator2;
                            }()
                          );
                          exports2.ReportParameterFieldsValidator = ReportParameterFieldsValidator;
                        },
                        /* 20 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_195256__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.SaveAsParametersValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_195256__(3);
                          var typeValidator_1 = __nested_webpack_require_195256__(4);
                          var validator_1 = __nested_webpack_require_195256__(1);
                          var SaveAsParametersValidator = (
                            /** @class */
                            function(_super) {
                              __extends(SaveAsParametersValidator2, _super);
                              function SaveAsParametersValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              SaveAsParametersValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "name",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return SaveAsParametersValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.SaveAsParametersValidator = SaveAsParametersValidator;
                        },
                        /* 21 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_197537__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.SlicerTargetSelectorValidator = exports2.VisualTypeSelectorValidator = exports2.VisualSelectorValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_197537__(3);
                          var typeValidator_1 = __nested_webpack_require_197537__(4);
                          var typeValidator_2 = __nested_webpack_require_197537__(4);
                          var validator_1 = __nested_webpack_require_197537__(1);
                          var VisualSelectorValidator = (
                            /** @class */
                            function(_super) {
                              __extends(VisualSelectorValidator2, _super);
                              function VisualSelectorValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              VisualSelectorValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    // Not required for this selector only - Backward compatibility
                                    field: "$schema",
                                    validators: [validator_1.Validators.stringValidator, new typeValidator_2.SchemaValidator("http://powerbi.com/product/schema#visualSelector")]
                                  },
                                  {
                                    field: "visualName",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return VisualSelectorValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.VisualSelectorValidator = VisualSelectorValidator;
                          var VisualTypeSelectorValidator = (
                            /** @class */
                            function(_super) {
                              __extends(VisualTypeSelectorValidator2, _super);
                              function VisualTypeSelectorValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              VisualTypeSelectorValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "$schema",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator, new typeValidator_2.SchemaValidator("http://powerbi.com/product/schema#visualTypeSelector")]
                                  },
                                  {
                                    field: "visualType",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return VisualTypeSelectorValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.VisualTypeSelectorValidator = VisualTypeSelectorValidator;
                          var SlicerTargetSelectorValidator = (
                            /** @class */
                            function(_super) {
                              __extends(SlicerTargetSelectorValidator2, _super);
                              function SlicerTargetSelectorValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              SlicerTargetSelectorValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "$schema",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator, new typeValidator_2.SchemaValidator("http://powerbi.com/product/schema#slicerTargetSelector")]
                                  },
                                  {
                                    field: "target",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.slicerTargetValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return SlicerTargetSelectorValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.SlicerTargetSelectorValidator = SlicerTargetSelectorValidator;
                        },
                        /* 22 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_202995__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.PaginatedReportSettingsValidator = exports2.SettingsValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_202995__(3);
                          var typeValidator_1 = __nested_webpack_require_202995__(4);
                          var validator_1 = __nested_webpack_require_202995__(1);
                          var SettingsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(SettingsValidator2, _super);
                              function SettingsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              SettingsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "filterPaneEnabled",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "navContentPaneEnabled",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "bookmarksPaneEnabled",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "useCustomSaveAsDialog",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "extensions",
                                    validators: [validator_1.Validators.extensionsValidator]
                                  },
                                  {
                                    field: "layoutType",
                                    validators: [validator_1.Validators.layoutTypeValidator]
                                  },
                                  {
                                    field: "customLayout",
                                    validators: [validator_1.Validators.customLayoutValidator]
                                  },
                                  {
                                    field: "background",
                                    validators: [validator_1.Validators.backgroundValidator]
                                  },
                                  {
                                    field: "visualSettings",
                                    validators: [validator_1.Validators.visualSettingsValidator]
                                  },
                                  {
                                    field: "hideErrors",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "commands",
                                    validators: [validator_1.Validators.commandsSettingsArrayValidator]
                                  },
                                  {
                                    field: "hyperlinkClickBehavior",
                                    validators: [validator_1.Validators.hyperlinkClickBehaviorValidator]
                                  },
                                  {
                                    field: "bars",
                                    validators: [validator_1.Validators.reportBarsValidator]
                                  },
                                  {
                                    field: "panes",
                                    validators: [validator_1.Validators.reportPanesValidator]
                                  },
                                  {
                                    field: "personalBookmarksEnabled",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "persistentFiltersEnabled",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "visualRenderedEvents",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "authoringHintsEnabled",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "printSettings",
                                    validators: [validator_1.Validators.printSettingsValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return SettingsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.SettingsValidator = SettingsValidator;
                          var PaginatedReportSettingsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(PaginatedReportSettingsValidator2, _super);
                              function PaginatedReportSettingsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              PaginatedReportSettingsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "commands",
                                    validators: [validator_1.Validators.paginatedReportCommandsValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return PaginatedReportSettingsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.PaginatedReportSettingsValidator = PaginatedReportSettingsValidator;
                        },
                        /* 23 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_208991__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.SlicerStateValidator = exports2.SlicerValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_208991__(3);
                          var typeValidator_1 = __nested_webpack_require_208991__(4);
                          var validator_1 = __nested_webpack_require_208991__(1);
                          var SlicerValidator = (
                            /** @class */
                            function(_super) {
                              __extends(SlicerValidator2, _super);
                              function SlicerValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              SlicerValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "selector",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.slicerSelectorValidator]
                                  },
                                  {
                                    field: "state",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.slicerStateValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return SlicerValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.SlicerValidator = SlicerValidator;
                          var SlicerStateValidator = (
                            /** @class */
                            function(_super) {
                              __extends(SlicerStateValidator2, _super);
                              function SlicerStateValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              SlicerStateValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "filters",
                                    validators: [validator_1.Validators.filtersArrayValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return SlicerStateValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.SlicerStateValidator = SlicerStateValidator;
                        },
                        /* 24 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_212421__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.TileLoadValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_212421__(3);
                          var typeValidator_1 = __nested_webpack_require_212421__(4);
                          var validator_1 = __nested_webpack_require_212421__(1);
                          var TileLoadValidator = (
                            /** @class */
                            function(_super) {
                              __extends(TileLoadValidator2, _super);
                              function TileLoadValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              TileLoadValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "accessToken",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "id",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "dashboardId",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "groupId",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "pageView",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "tokenType",
                                    validators: [validator_1.Validators.tokenTypeValidator]
                                  },
                                  {
                                    field: "width",
                                    validators: [validator_1.Validators.numberValidator]
                                  },
                                  {
                                    field: "height",
                                    validators: [validator_1.Validators.numberValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return TileLoadValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.TileLoadValidator = TileLoadValidator;
                        },
                        /* 25 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_215693__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.VisualHeaderValidator = exports2.VisualHeaderSettingsValidator = exports2.VisualSettingsValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_215693__(3);
                          var typeValidator_1 = __nested_webpack_require_215693__(4);
                          var validator_1 = __nested_webpack_require_215693__(1);
                          var VisualSettingsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(VisualSettingsValidator2, _super);
                              function VisualSettingsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              VisualSettingsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "visualHeaders",
                                    validators: [validator_1.Validators.visualHeadersValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return VisualSettingsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.VisualSettingsValidator = VisualSettingsValidator;
                          var VisualHeaderSettingsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(VisualHeaderSettingsValidator2, _super);
                              function VisualHeaderSettingsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              VisualHeaderSettingsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "visible",
                                    validators: [validator_1.Validators.booleanValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return VisualHeaderSettingsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.VisualHeaderSettingsValidator = VisualHeaderSettingsValidator;
                          var VisualHeaderValidator = (
                            /** @class */
                            function(_super) {
                              __extends(VisualHeaderValidator2, _super);
                              function VisualHeaderValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              VisualHeaderValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "settings",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.visualHeaderSettingsValidator]
                                  },
                                  {
                                    field: "selector",
                                    validators: [validator_1.Validators.visualHeaderSelectorValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return VisualHeaderValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.VisualHeaderValidator = VisualHeaderValidator;
                        },
                        /* 26 */
                        /***/
                        (__unused_webpack_module, exports2) => {
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.AnyOfValidator = void 0;
                          var AnyOfValidator = (
                            /** @class */
                            function() {
                              function AnyOfValidator2(validators) {
                                this.validators = validators;
                              }
                              AnyOfValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var valid = false;
                                for (var _i = 0, _a = this.validators; _i < _a.length; _i++) {
                                  var validator = _a[_i];
                                  var errors = validator.validate(input, path, field);
                                  if (!errors) {
                                    valid = true;
                                    break;
                                  }
                                }
                                if (!valid) {
                                  return [{
                                    message: field + " property is invalid",
                                    path: (path ? path + "." : "") + field,
                                    keyword: "invalid"
                                  }];
                                }
                                return null;
                              };
                              return AnyOfValidator2;
                            }()
                          );
                          exports2.AnyOfValidator = AnyOfValidator;
                        },
                        /* 27 */
                        /***/
                        (__unused_webpack_module, exports2) => {
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.FieldForbiddenValidator = void 0;
                          var FieldForbiddenValidator = (
                            /** @class */
                            function() {
                              function FieldForbiddenValidator2() {
                              }
                              FieldForbiddenValidator2.prototype.validate = function(input, path, field) {
                                if (input !== void 0) {
                                  return [{
                                    message: field + " is forbidden",
                                    path: (path ? path + "." : "") + field,
                                    keyword: "forbidden"
                                  }];
                                }
                                return null;
                              };
                              return FieldForbiddenValidator2;
                            }()
                          );
                          exports2.FieldForbiddenValidator = FieldForbiddenValidator;
                        },
                        /* 28 */
                        /***/
                        (__unused_webpack_module, exports2) => {
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.FieldRequiredValidator = void 0;
                          var FieldRequiredValidator = (
                            /** @class */
                            function() {
                              function FieldRequiredValidator2() {
                              }
                              FieldRequiredValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return [{
                                    message: field + " is required",
                                    path: (path ? path + "." : "") + field,
                                    keyword: "required"
                                  }];
                                }
                                return null;
                              };
                              return FieldRequiredValidator2;
                            }()
                          );
                          exports2.FieldRequiredValidator = FieldRequiredValidator;
                        },
                        /* 29 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_223102__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.MapValidator = void 0;
                          var typeValidator_1 = __nested_webpack_require_223102__(4);
                          var MapValidator = (
                            /** @class */
                            function(_super) {
                              __extends(MapValidator2, _super);
                              function MapValidator2(keyValidators, valueValidators) {
                                var _this = _super.call(this) || this;
                                _this.keyValidators = keyValidators;
                                _this.valueValidators = valueValidators;
                                return _this;
                              }
                              MapValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                for (var key in input) {
                                  if (input.hasOwnProperty(key)) {
                                    var fieldsPath = (path ? path + "." : "") + field + "." + key;
                                    for (var _i = 0, _a = this.keyValidators; _i < _a.length; _i++) {
                                      var keyValidator = _a[_i];
                                      errors = keyValidator.validate(key, fieldsPath, field);
                                      if (errors) {
                                        return errors;
                                      }
                                    }
                                    for (var _b = 0, _c = this.valueValidators; _b < _c.length; _b++) {
                                      var valueValidator = _c[_b];
                                      errors = valueValidator.validate(input[key], fieldsPath, field);
                                      if (errors) {
                                        return errors;
                                      }
                                    }
                                  }
                                }
                                return null;
                              };
                              return MapValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.MapValidator = MapValidator;
                        },
                        /* 30 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_225786__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.ParametersPanelValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_225786__(3);
                          var typeValidator_1 = __nested_webpack_require_225786__(4);
                          var validator_1 = __nested_webpack_require_225786__(1);
                          var ParametersPanelValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ParametersPanelValidator2, _super);
                              function ParametersPanelValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ParametersPanelValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "expanded",
                                    validators: [validator_1.Validators.booleanValidator]
                                  },
                                  {
                                    field: "enabled",
                                    validators: [validator_1.Validators.booleanValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ParametersPanelValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ParametersPanelValidator = ParametersPanelValidator;
                        },
                        /* 31 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_228154__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.TableDataValidator = exports2.TableSchemaValidator = exports2.ColumnSchemaValidator = exports2.CredentialsValidator = exports2.DatasourceConnectionConfigValidator = exports2.DatasetCreateConfigValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_228154__(3);
                          var typeValidator_1 = __nested_webpack_require_228154__(4);
                          var validator_1 = __nested_webpack_require_228154__(1);
                          var DatasetCreateConfigValidator = (
                            /** @class */
                            function(_super) {
                              __extends(DatasetCreateConfigValidator2, _super);
                              function DatasetCreateConfigValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              DatasetCreateConfigValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "locale",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "mashupDocument",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "datasourceConnectionConfig",
                                    validators: [validator_1.Validators.datasourceConnectionConfigValidator]
                                  },
                                  {
                                    field: "tableSchemaList",
                                    validators: [validator_1.Validators.tableSchemaListValidator]
                                  },
                                  {
                                    field: "data",
                                    validators: [validator_1.Validators.tableDataArrayValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                errors = multipleFieldsValidator.validate(input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                if (input["datasourceConnectionConfig"] && input["mashupDocument"] == null) {
                                  return [{
                                    message: "mashupDocument cannot be empty when datasourceConnectionConfig is presented"
                                  }];
                                }
                                if (input["data"] && input["tableSchemaList"] == null) {
                                  return [{
                                    message: "tableSchemaList cannot be empty when data is provided"
                                  }];
                                }
                                if (input["data"] == null && input["mashupDocument"] == null) {
                                  return [{
                                    message: "At least one of data or mashupDocument must be provided"
                                  }];
                                }
                              };
                              return DatasetCreateConfigValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.DatasetCreateConfigValidator = DatasetCreateConfigValidator;
                          var DatasourceConnectionConfigValidator = (
                            /** @class */
                            function(_super) {
                              __extends(DatasourceConnectionConfigValidator2, _super);
                              function DatasourceConnectionConfigValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              DatasourceConnectionConfigValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "dataCacheMode",
                                    validators: [validator_1.Validators.dataCacheModeValidator]
                                  },
                                  {
                                    field: "credentials",
                                    validators: [validator_1.Validators.credentialsValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return DatasourceConnectionConfigValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.DatasourceConnectionConfigValidator = DatasourceConnectionConfigValidator;
                          var CredentialsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(CredentialsValidator2, _super);
                              function CredentialsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              CredentialsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "credentialType",
                                    validators: [validator_1.Validators.credentialTypeValidator]
                                  },
                                  {
                                    field: "credentialDetails",
                                    validators: [validator_1.Validators.credentialDetailsValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return CredentialsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.CredentialsValidator = CredentialsValidator;
                          var ColumnSchemaValidator = (
                            /** @class */
                            function(_super) {
                              __extends(ColumnSchemaValidator2, _super);
                              function ColumnSchemaValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              ColumnSchemaValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "name",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "displayName",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "dataType",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return ColumnSchemaValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.ColumnSchemaValidator = ColumnSchemaValidator;
                          var TableSchemaValidator = (
                            /** @class */
                            function(_super) {
                              __extends(TableSchemaValidator2, _super);
                              function TableSchemaValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              TableSchemaValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "name",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "columns",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.columnSchemaArrayValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return TableSchemaValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.TableSchemaValidator = TableSchemaValidator;
                          var TableDataValidator = (
                            /** @class */
                            function(_super) {
                              __extends(TableDataValidator2, _super);
                              function TableDataValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              TableDataValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "name",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "rows",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.rawDataValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return TableDataValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.TableDataValidator = TableDataValidator;
                        },
                        /* 32 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_238209__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.QuickCreateValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_238209__(3);
                          var typeValidator_1 = __nested_webpack_require_238209__(4);
                          var validator_1 = __nested_webpack_require_238209__(1);
                          var QuickCreateValidator = (
                            /** @class */
                            function(_super) {
                              __extends(QuickCreateValidator2, _super);
                              function QuickCreateValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              QuickCreateValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "accessToken",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "groupId",
                                    validators: [validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "tokenType",
                                    validators: [validator_1.Validators.tokenTypeValidator]
                                  },
                                  {
                                    field: "theme",
                                    validators: [validator_1.Validators.customThemeValidator]
                                  },
                                  {
                                    field: "datasetCreateConfig",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.datasetCreateConfigValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return QuickCreateValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.QuickCreateValidator = QuickCreateValidator;
                        },
                        /* 33 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_241082__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.PrintSettingsValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_241082__(3);
                          var typeValidator_1 = __nested_webpack_require_241082__(4);
                          var PrintSettingsValidator = (
                            /** @class */
                            function(_super) {
                              __extends(PrintSettingsValidator2, _super);
                              function PrintSettingsValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              PrintSettingsValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "browserPrintAdjustmentsMode",
                                    validators: [new typeValidator_1.EnumValidator([0, 1])]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return PrintSettingsValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.PrintSettingsValidator = PrintSettingsValidator;
                        },
                        /* 34 */
                        /***/
                        function(__unused_webpack_module, exports2, __nested_webpack_require_243275__) {
                          var __extends = this && this.__extends || /* @__PURE__ */ function() {
                            var extendStatics = function(d, b) {
                              extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                                d2.__proto__ = b2;
                              } || function(d2, b2) {
                                for (var p in b2)
                                  if (Object.prototype.hasOwnProperty.call(b2, p))
                                    d2[p] = b2[p];
                              };
                              return extendStatics(d, b);
                            };
                            return function(d, b) {
                              if (typeof b !== "function" && b !== null)
                                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                              extendStatics(d, b);
                              function __() {
                                this.constructor = d;
                              }
                              d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                            };
                          }();
                          Object.defineProperty(exports2, "__esModule", { value: true });
                          exports2.PaginatedReportDatasetBindingValidator = void 0;
                          var multipleFieldsValidator_1 = __nested_webpack_require_243275__(3);
                          var typeValidator_1 = __nested_webpack_require_243275__(4);
                          var validator_1 = __nested_webpack_require_243275__(1);
                          var PaginatedReportDatasetBindingValidator = (
                            /** @class */
                            function(_super) {
                              __extends(PaginatedReportDatasetBindingValidator2, _super);
                              function PaginatedReportDatasetBindingValidator2() {
                                return _super !== null && _super.apply(this, arguments) || this;
                              }
                              PaginatedReportDatasetBindingValidator2.prototype.validate = function(input, path, field) {
                                if (input == null) {
                                  return null;
                                }
                                var errors = _super.prototype.validate.call(this, input, path, field);
                                if (errors) {
                                  return errors;
                                }
                                var fields = [
                                  {
                                    field: "sourceDatasetId",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  },
                                  {
                                    field: "targetDatasetId",
                                    validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]
                                  }
                                ];
                                var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);
                                return multipleFieldsValidator.validate(input, path, field);
                              };
                              return PaginatedReportDatasetBindingValidator2;
                            }(typeValidator_1.ObjectValidator)
                          );
                          exports2.PaginatedReportDatasetBindingValidator = PaginatedReportDatasetBindingValidator;
                        }
                        /******/
                      ];
                      var __webpack_module_cache__2 = {};
                      function __nested_webpack_require_246021__(moduleId) {
                        var cachedModule = __webpack_module_cache__2[moduleId];
                        if (cachedModule !== void 0) {
                          return cachedModule.exports;
                        }
                        var module3 = __webpack_module_cache__2[moduleId] = {
                          /******/
                          // no module.id needed
                          /******/
                          // no module.loaded needed
                          /******/
                          exports: {}
                          /******/
                        };
                        __webpack_modules__2[moduleId].call(module3.exports, module3, module3.exports, __nested_webpack_require_246021__);
                        return module3.exports;
                      }
                      var __nested_webpack_exports__ = __nested_webpack_require_246021__(0);
                      return __nested_webpack_exports__;
                    })()
                  );
                });
              }
            ),
            /***/
            "./node_modules/powerbi-router/dist/router.js": (
              /*!****************************************************!*\
                !*** ./node_modules/powerbi-router/dist/router.js ***!
                \****************************************************/
              /***/
              function(module2) {
                (function webpackUniversalModuleDefinition(root, factory) {
                  if (true)
                    module2.exports = factory();
                  else {
                  }
                })(this, function() {
                  return (
                    /******/
                    function(modules) {
                      var installedModules = {};
                      function __nested_webpack_require_617__(moduleId) {
                        if (installedModules[moduleId])
                          return installedModules[moduleId].exports;
                        var module3 = installedModules[moduleId] = {
                          /******/
                          exports: {},
                          /******/
                          id: moduleId,
                          /******/
                          loaded: false
                          /******/
                        };
                        modules[moduleId].call(module3.exports, module3, module3.exports, __nested_webpack_require_617__);
                        module3.loaded = true;
                        return module3.exports;
                      }
                      __nested_webpack_require_617__.m = modules;
                      __nested_webpack_require_617__.c = installedModules;
                      __nested_webpack_require_617__.p = "";
                      return __nested_webpack_require_617__(0);
                    }([
                      /* 0 */
                      /***/
                      function(module3, exports2, __nested_webpack_require_1897__) {
                        "use strict";
                        var RouteRecognizer = __nested_webpack_require_1897__(1);
                        var Router2 = function() {
                          function Router3(handlers) {
                            this.handlers = handlers;
                            this.getRouteRecognizer = new RouteRecognizer();
                            this.patchRouteRecognizer = new RouteRecognizer();
                            this.postRouteRecognizer = new RouteRecognizer();
                            this.putRouteRecognizer = new RouteRecognizer();
                            this.deleteRouteRecognizer = new RouteRecognizer();
                          }
                          Router3.prototype.get = function(url, handler) {
                            this.registerHandler(this.getRouteRecognizer, "GET", url, handler);
                            return this;
                          };
                          Router3.prototype.patch = function(url, handler) {
                            this.registerHandler(this.patchRouteRecognizer, "PATCH", url, handler);
                            return this;
                          };
                          Router3.prototype.post = function(url, handler) {
                            this.registerHandler(this.postRouteRecognizer, "POST", url, handler);
                            return this;
                          };
                          Router3.prototype.put = function(url, handler) {
                            this.registerHandler(this.putRouteRecognizer, "PUT", url, handler);
                            return this;
                          };
                          Router3.prototype.delete = function(url, handler) {
                            this.registerHandler(this.deleteRouteRecognizer, "DELETE", url, handler);
                            return this;
                          };
                          Router3.prototype.registerHandler = function(routeRecognizer, method, url, handler) {
                            var routeRecognizerHandler = function(request) {
                              var response = new Response();
                              return Promise.resolve(handler(request, response)).then(function(x) {
                                return response;
                              });
                            };
                            routeRecognizer.add([
                              { path: url, handler: routeRecognizerHandler }
                            ]);
                            var internalHandler = {
                              test: function(request) {
                                if (request.method !== method) {
                                  return false;
                                }
                                var matchingRoutes = routeRecognizer.recognize(request.url);
                                if (matchingRoutes === void 0) {
                                  return false;
                                }
                                var route = matchingRoutes[0];
                                request.params = route.params;
                                request.queryParams = matchingRoutes.queryParams;
                                request.handler = route.handler;
                                return true;
                              },
                              handle: function(request) {
                                return request.handler(request);
                              }
                            };
                            this.handlers.addHandler(internalHandler);
                          };
                          return Router3;
                        }();
                        exports2.Router = Router2;
                        var Response = function() {
                          function Response2() {
                            this.statusCode = 200;
                            this.headers = {};
                            this.body = null;
                          }
                          Response2.prototype.send = function(statusCode, body) {
                            this.statusCode = statusCode;
                            this.body = body;
                          };
                          return Response2;
                        }();
                        exports2.Response = Response;
                      },
                      /* 1 */
                      /***/
                      function(module3, exports2, __nested_webpack_require_6218__) {
                        var __WEBPACK_AMD_DEFINE_RESULT__;
                        (function(module4) {
                          (function() {
                            "use strict";
                            function $$route$recognizer$dsl$$Target(path, matcher, delegate) {
                              this.path = path;
                              this.matcher = matcher;
                              this.delegate = delegate;
                            }
                            $$route$recognizer$dsl$$Target.prototype = {
                              to: function(target, callback) {
                                var delegate = this.delegate;
                                if (delegate && delegate.willAddRoute) {
                                  target = delegate.willAddRoute(this.matcher.target, target);
                                }
                                this.matcher.add(this.path, target);
                                if (callback) {
                                  if (callback.length === 0) {
                                    throw new Error("You must have an argument in the function passed to `to`");
                                  }
                                  this.matcher.addChild(this.path, target, callback, this.delegate);
                                }
                                return this;
                              }
                            };
                            function $$route$recognizer$dsl$$Matcher(target) {
                              this.routes = {};
                              this.children = {};
                              this.target = target;
                            }
                            $$route$recognizer$dsl$$Matcher.prototype = {
                              add: function(path, handler) {
                                this.routes[path] = handler;
                              },
                              addChild: function(path, target, callback, delegate) {
                                var matcher = new $$route$recognizer$dsl$$Matcher(target);
                                this.children[path] = matcher;
                                var match = $$route$recognizer$dsl$$generateMatch(path, matcher, delegate);
                                if (delegate && delegate.contextEntered) {
                                  delegate.contextEntered(target, match);
                                }
                                callback(match);
                              }
                            };
                            function $$route$recognizer$dsl$$generateMatch(startingPath, matcher, delegate) {
                              return function(path, nestedCallback) {
                                var fullPath = startingPath + path;
                                if (nestedCallback) {
                                  nestedCallback($$route$recognizer$dsl$$generateMatch(fullPath, matcher, delegate));
                                } else {
                                  return new $$route$recognizer$dsl$$Target(startingPath + path, matcher, delegate);
                                }
                              };
                            }
                            function $$route$recognizer$dsl$$addRoute(routeArray, path, handler) {
                              var len = 0;
                              for (var i = 0; i < routeArray.length; i++) {
                                len += routeArray[i].path.length;
                              }
                              path = path.substr(len);
                              var route = { path, handler };
                              routeArray.push(route);
                            }
                            function $$route$recognizer$dsl$$eachRoute(baseRoute, matcher, callback, binding) {
                              var routes3 = matcher.routes;
                              for (var path in routes3) {
                                if (routes3.hasOwnProperty(path)) {
                                  var routeArray = baseRoute.slice();
                                  $$route$recognizer$dsl$$addRoute(routeArray, path, routes3[path]);
                                  if (matcher.children[path]) {
                                    $$route$recognizer$dsl$$eachRoute(routeArray, matcher.children[path], callback, binding);
                                  } else {
                                    callback.call(binding, routeArray);
                                  }
                                }
                              }
                            }
                            var $$route$recognizer$dsl$$default = function(callback, addRouteCallback) {
                              var matcher = new $$route$recognizer$dsl$$Matcher();
                              callback($$route$recognizer$dsl$$generateMatch("", matcher, this.delegate));
                              $$route$recognizer$dsl$$eachRoute([], matcher, function(route) {
                                if (addRouteCallback) {
                                  addRouteCallback(this, route);
                                } else {
                                  this.add(route);
                                }
                              }, this);
                            };
                            var $$route$recognizer$$specials = [
                              "/",
                              ".",
                              "*",
                              "+",
                              "?",
                              "|",
                              "(",
                              ")",
                              "[",
                              "]",
                              "{",
                              "}",
                              "\\"
                            ];
                            var $$route$recognizer$$escapeRegex = new RegExp("(\\" + $$route$recognizer$$specials.join("|\\") + ")", "g");
                            function $$route$recognizer$$isArray(test) {
                              return Object.prototype.toString.call(test) === "[object Array]";
                            }
                            function $$route$recognizer$$StaticSegment(string) {
                              this.string = string;
                            }
                            $$route$recognizer$$StaticSegment.prototype = {
                              eachChar: function(currentState) {
                                var string = this.string, ch;
                                for (var i = 0; i < string.length; i++) {
                                  ch = string.charAt(i);
                                  currentState = currentState.put({ invalidChars: void 0, repeat: false, validChars: ch });
                                }
                                return currentState;
                              },
                              regex: function() {
                                return this.string.replace($$route$recognizer$$escapeRegex, "\\$1");
                              },
                              generate: function() {
                                return this.string;
                              }
                            };
                            function $$route$recognizer$$DynamicSegment(name) {
                              this.name = name;
                            }
                            $$route$recognizer$$DynamicSegment.prototype = {
                              eachChar: function(currentState) {
                                return currentState.put({ invalidChars: "/", repeat: true, validChars: void 0 });
                              },
                              regex: function() {
                                return "([^/]+)";
                              },
                              generate: function(params) {
                                return params[this.name];
                              }
                            };
                            function $$route$recognizer$$StarSegment(name) {
                              this.name = name;
                            }
                            $$route$recognizer$$StarSegment.prototype = {
                              eachChar: function(currentState) {
                                return currentState.put({ invalidChars: "", repeat: true, validChars: void 0 });
                              },
                              regex: function() {
                                return "(.+)";
                              },
                              generate: function(params) {
                                return params[this.name];
                              }
                            };
                            function $$route$recognizer$$EpsilonSegment() {
                            }
                            $$route$recognizer$$EpsilonSegment.prototype = {
                              eachChar: function(currentState) {
                                return currentState;
                              },
                              regex: function() {
                                return "";
                              },
                              generate: function() {
                                return "";
                              }
                            };
                            function $$route$recognizer$$parse(route, names, specificity) {
                              if (route.charAt(0) === "/") {
                                route = route.substr(1);
                              }
                              var segments = route.split("/");
                              var results = new Array(segments.length);
                              specificity.val = "";
                              for (var i = 0; i < segments.length; i++) {
                                var segment = segments[i], match;
                                if (match = segment.match(/^:([^\/]+)$/)) {
                                  results[i] = new $$route$recognizer$$DynamicSegment(match[1]);
                                  names.push(match[1]);
                                  specificity.val += "3";
                                } else if (match = segment.match(/^\*([^\/]+)$/)) {
                                  results[i] = new $$route$recognizer$$StarSegment(match[1]);
                                  specificity.val += "1";
                                  names.push(match[1]);
                                } else if (segment === "") {
                                  results[i] = new $$route$recognizer$$EpsilonSegment();
                                  specificity.val += "2";
                                } else {
                                  results[i] = new $$route$recognizer$$StaticSegment(segment);
                                  specificity.val += "4";
                                }
                              }
                              specificity.val = +specificity.val;
                              return results;
                            }
                            function $$route$recognizer$$State(charSpec) {
                              this.charSpec = charSpec;
                              this.nextStates = [];
                              this.charSpecs = {};
                              this.regex = void 0;
                              this.handlers = void 0;
                              this.specificity = void 0;
                            }
                            $$route$recognizer$$State.prototype = {
                              get: function(charSpec) {
                                if (this.charSpecs[charSpec.validChars]) {
                                  return this.charSpecs[charSpec.validChars];
                                }
                                var nextStates = this.nextStates;
                                for (var i = 0; i < nextStates.length; i++) {
                                  var child = nextStates[i];
                                  var isEqual = child.charSpec.validChars === charSpec.validChars;
                                  isEqual = isEqual && child.charSpec.invalidChars === charSpec.invalidChars;
                                  if (isEqual) {
                                    this.charSpecs[charSpec.validChars] = child;
                                    return child;
                                  }
                                }
                              },
                              put: function(charSpec) {
                                var state;
                                if (state = this.get(charSpec)) {
                                  return state;
                                }
                                state = new $$route$recognizer$$State(charSpec);
                                this.nextStates.push(state);
                                if (charSpec.repeat) {
                                  state.nextStates.push(state);
                                }
                                return state;
                              },
                              // Find a list of child states matching the next character
                              match: function(ch) {
                                var nextStates = this.nextStates, child, charSpec, chars;
                                var returned = [];
                                for (var i = 0; i < nextStates.length; i++) {
                                  child = nextStates[i];
                                  charSpec = child.charSpec;
                                  if (typeof (chars = charSpec.validChars) !== "undefined") {
                                    if (chars.indexOf(ch) !== -1) {
                                      returned.push(child);
                                    }
                                  } else if (typeof (chars = charSpec.invalidChars) !== "undefined") {
                                    if (chars.indexOf(ch) === -1) {
                                      returned.push(child);
                                    }
                                  }
                                }
                                return returned;
                              }
                            };
                            function $$route$recognizer$$sortSolutions(states) {
                              return states.sort(function(a, b) {
                                return b.specificity.val - a.specificity.val;
                              });
                            }
                            function $$route$recognizer$$recognizeChar(states, ch) {
                              var nextStates = [];
                              for (var i = 0, l = states.length; i < l; i++) {
                                var state = states[i];
                                nextStates = nextStates.concat(state.match(ch));
                              }
                              return nextStates;
                            }
                            var $$route$recognizer$$oCreate = Object.create || function(proto) {
                              function F() {
                              }
                              F.prototype = proto;
                              return new F();
                            };
                            function $$route$recognizer$$RecognizeResults(queryParams) {
                              this.queryParams = queryParams || {};
                            }
                            $$route$recognizer$$RecognizeResults.prototype = $$route$recognizer$$oCreate({
                              splice: Array.prototype.splice,
                              slice: Array.prototype.slice,
                              push: Array.prototype.push,
                              length: 0,
                              queryParams: null
                            });
                            function $$route$recognizer$$findHandler(state, path, queryParams) {
                              var handlers = state.handlers, regex = state.regex;
                              var captures = path.match(regex), currentCapture = 1;
                              var result = new $$route$recognizer$$RecognizeResults(queryParams);
                              result.length = handlers.length;
                              for (var i = 0; i < handlers.length; i++) {
                                var handler = handlers[i], names = handler.names, params = {};
                                for (var j = 0; j < names.length; j++) {
                                  params[names[j]] = captures[currentCapture++];
                                }
                                result[i] = { handler: handler.handler, params, isDynamic: !!names.length };
                              }
                              return result;
                            }
                            function $$route$recognizer$$decodeQueryParamPart(part) {
                              part = part.replace(/\+/gm, "%20");
                              var result;
                              try {
                                result = decodeURIComponent(part);
                              } catch (error) {
                                result = "";
                              }
                              return result;
                            }
                            var $$route$recognizer$$RouteRecognizer = function() {
                              this.rootState = new $$route$recognizer$$State();
                              this.names = {};
                            };
                            $$route$recognizer$$RouteRecognizer.prototype = {
                              add: function(routes3, options) {
                                var currentState = this.rootState, regex = "^", specificity = {}, handlers = new Array(routes3.length), allSegments = [], name;
                                var isEmpty = true;
                                for (var i = 0; i < routes3.length; i++) {
                                  var route = routes3[i], names = [];
                                  var segments = $$route$recognizer$$parse(route.path, names, specificity);
                                  allSegments = allSegments.concat(segments);
                                  for (var j = 0; j < segments.length; j++) {
                                    var segment = segments[j];
                                    if (segment instanceof $$route$recognizer$$EpsilonSegment) {
                                      continue;
                                    }
                                    isEmpty = false;
                                    currentState = currentState.put({ invalidChars: void 0, repeat: false, validChars: "/" });
                                    regex += "/";
                                    currentState = segment.eachChar(currentState);
                                    regex += segment.regex();
                                  }
                                  var handler = { handler: route.handler, names };
                                  handlers[i] = handler;
                                }
                                if (isEmpty) {
                                  currentState = currentState.put({ invalidChars: void 0, repeat: false, validChars: "/" });
                                  regex += "/";
                                }
                                currentState.handlers = handlers;
                                currentState.regex = new RegExp(regex + "$");
                                currentState.specificity = specificity;
                                if (name = options && options.as) {
                                  this.names[name] = {
                                    segments: allSegments,
                                    handlers
                                  };
                                }
                              },
                              handlersFor: function(name) {
                                var route = this.names[name];
                                if (!route) {
                                  throw new Error("There is no route named " + name);
                                }
                                var result = new Array(route.handlers.length);
                                for (var i = 0; i < route.handlers.length; i++) {
                                  result[i] = route.handlers[i];
                                }
                                return result;
                              },
                              hasRoute: function(name) {
                                return !!this.names[name];
                              },
                              generate: function(name, params) {
                                var route = this.names[name], output = "";
                                if (!route) {
                                  throw new Error("There is no route named " + name);
                                }
                                var segments = route.segments;
                                for (var i = 0; i < segments.length; i++) {
                                  var segment = segments[i];
                                  if (segment instanceof $$route$recognizer$$EpsilonSegment) {
                                    continue;
                                  }
                                  output += "/";
                                  output += segment.generate(params);
                                }
                                if (output.charAt(0) !== "/") {
                                  output = "/" + output;
                                }
                                if (params && params.queryParams) {
                                  output += this.generateQueryString(params.queryParams, route.handlers);
                                }
                                return output;
                              },
                              generateQueryString: function(params, handlers) {
                                var pairs = [];
                                var keys = [];
                                for (var key in params) {
                                  if (params.hasOwnProperty(key)) {
                                    keys.push(key);
                                  }
                                }
                                keys.sort();
                                for (var i = 0; i < keys.length; i++) {
                                  key = keys[i];
                                  var value = params[key];
                                  if (value == null) {
                                    continue;
                                  }
                                  var pair = encodeURIComponent(key);
                                  if ($$route$recognizer$$isArray(value)) {
                                    for (var j = 0; j < value.length; j++) {
                                      var arrayPair = key + "[]=" + encodeURIComponent(value[j]);
                                      pairs.push(arrayPair);
                                    }
                                  } else {
                                    pair += "=" + encodeURIComponent(value);
                                    pairs.push(pair);
                                  }
                                }
                                if (pairs.length === 0) {
                                  return "";
                                }
                                return "?" + pairs.join("&");
                              },
                              parseQueryString: function(queryString) {
                                var pairs = queryString.split("&"), queryParams = {};
                                for (var i = 0; i < pairs.length; i++) {
                                  var pair = pairs[i].split("="), key = $$route$recognizer$$decodeQueryParamPart(pair[0]), keyLength = key.length, isArray = false, value;
                                  if (pair.length === 1) {
                                    value = "true";
                                  } else {
                                    if (keyLength > 2 && key.slice(keyLength - 2) === "[]") {
                                      isArray = true;
                                      key = key.slice(0, keyLength - 2);
                                      if (!queryParams[key]) {
                                        queryParams[key] = [];
                                      }
                                    }
                                    value = pair[1] ? $$route$recognizer$$decodeQueryParamPart(pair[1]) : "";
                                  }
                                  if (isArray) {
                                    queryParams[key].push(value);
                                  } else {
                                    queryParams[key] = value;
                                  }
                                }
                                return queryParams;
                              },
                              recognize: function(path) {
                                var states = [this.rootState], pathLen, i, l, queryStart, queryParams = {}, isSlashDropped = false;
                                queryStart = path.indexOf("?");
                                if (queryStart !== -1) {
                                  var queryString = path.substr(queryStart + 1, path.length);
                                  path = path.substr(0, queryStart);
                                  queryParams = this.parseQueryString(queryString);
                                }
                                path = decodeURI(path);
                                if (path.charAt(0) !== "/") {
                                  path = "/" + path;
                                }
                                pathLen = path.length;
                                if (pathLen > 1 && path.charAt(pathLen - 1) === "/") {
                                  path = path.substr(0, pathLen - 1);
                                  isSlashDropped = true;
                                }
                                for (i = 0; i < path.length; i++) {
                                  states = $$route$recognizer$$recognizeChar(states, path.charAt(i));
                                  if (!states.length) {
                                    break;
                                  }
                                }
                                var solutions = [];
                                for (i = 0; i < states.length; i++) {
                                  if (states[i].handlers) {
                                    solutions.push(states[i]);
                                  }
                                }
                                states = $$route$recognizer$$sortSolutions(solutions);
                                var state = solutions[0];
                                if (state && state.handlers) {
                                  if (isSlashDropped && state.regex.source.slice(-5) === "(.+)$") {
                                    path = path + "/";
                                  }
                                  return $$route$recognizer$$findHandler(state, path, queryParams);
                                }
                              }
                            };
                            $$route$recognizer$$RouteRecognizer.prototype.map = $$route$recognizer$dsl$$default;
                            $$route$recognizer$$RouteRecognizer.VERSION = "0.1.11";
                            var $$route$recognizer$$default = $$route$recognizer$$RouteRecognizer;
                            if (__nested_webpack_require_6218__(3)["amd"]) {
                              !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {
                                return $$route$recognizer$$default;
                              }).call(exports2, __nested_webpack_require_6218__, exports2, module4), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module4.exports = __WEBPACK_AMD_DEFINE_RESULT__));
                            } else if (typeof module4 !== "undefined" && module4["exports"]) {
                              module4["exports"] = $$route$recognizer$$default;
                            } else if (typeof this !== "undefined") {
                              this["RouteRecognizer"] = $$route$recognizer$$default;
                            }
                          }).call(this);
                        }).call(exports2, __nested_webpack_require_6218__(2)(module3));
                      },
                      /* 2 */
                      /***/
                      function(module3, exports2) {
                        module3.exports = function(module4) {
                          if (!module4.webpackPolyfill) {
                            module4.deprecate = function() {
                            };
                            module4.paths = [];
                            module4.children = [];
                            module4.webpackPolyfill = 1;
                          }
                          return module4;
                        };
                      },
                      /* 3 */
                      /***/
                      function(module3, exports2) {
                        module3.exports = function() {
                          throw new Error("define cannot be used indirect");
                        };
                      }
                      /******/
                    ])
                  );
                });
                ;
              }
            ),
            /***/
            "./src/FilterBuilders/advancedFilterBuilder.ts": (
              /*!*****************************************************!*\
                !*** ./src/FilterBuilders/advancedFilterBuilder.ts ***!
                \*****************************************************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __extends = this && this.__extends || /* @__PURE__ */ function() {
                  var extendStatics = function(d, b) {
                    extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                      d2.__proto__ = b2;
                    } || function(d2, b2) {
                      for (var p in b2)
                        if (Object.prototype.hasOwnProperty.call(b2, p))
                          d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                  };
                  return function(d, b) {
                    if (typeof b !== "function" && b !== null)
                      throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                      this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                  };
                }();
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.AdvancedFilterBuilder = void 0;
                var powerbi_models_1 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var filterBuilder_1 = __webpack_require__2(
                  /*! ./filterBuilder */
                  "./src/FilterBuilders/filterBuilder.ts"
                );
                var AdvancedFilterBuilder = (
                  /** @class */
                  function(_super) {
                    __extends(AdvancedFilterBuilder2, _super);
                    function AdvancedFilterBuilder2() {
                      var _this = _super !== null && _super.apply(this, arguments) || this;
                      _this.conditions = [];
                      return _this;
                    }
                    AdvancedFilterBuilder2.prototype.and = function() {
                      this.logicalOperator = "And";
                      return this;
                    };
                    AdvancedFilterBuilder2.prototype.or = function() {
                      this.logicalOperator = "Or";
                      return this;
                    };
                    AdvancedFilterBuilder2.prototype.addCondition = function(operator, value) {
                      var condition = {
                        operator,
                        value
                      };
                      this.conditions.push(condition);
                      return this;
                    };
                    AdvancedFilterBuilder2.prototype.build = function() {
                      var advancedFilter = new powerbi_models_1.AdvancedFilter(this.target, this.logicalOperator, this.conditions);
                      return advancedFilter;
                    };
                    return AdvancedFilterBuilder2;
                  }(filterBuilder_1.FilterBuilder)
                );
                exports2.AdvancedFilterBuilder = AdvancedFilterBuilder;
              }
            ),
            /***/
            "./src/FilterBuilders/basicFilterBuilder.ts": (
              /*!**************************************************!*\
                !*** ./src/FilterBuilders/basicFilterBuilder.ts ***!
                \**************************************************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __extends = this && this.__extends || /* @__PURE__ */ function() {
                  var extendStatics = function(d, b) {
                    extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                      d2.__proto__ = b2;
                    } || function(d2, b2) {
                      for (var p in b2)
                        if (Object.prototype.hasOwnProperty.call(b2, p))
                          d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                  };
                  return function(d, b) {
                    if (typeof b !== "function" && b !== null)
                      throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                      this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                  };
                }();
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.BasicFilterBuilder = void 0;
                var powerbi_models_1 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var filterBuilder_1 = __webpack_require__2(
                  /*! ./filterBuilder */
                  "./src/FilterBuilders/filterBuilder.ts"
                );
                var BasicFilterBuilder = (
                  /** @class */
                  function(_super) {
                    __extends(BasicFilterBuilder2, _super);
                    function BasicFilterBuilder2() {
                      var _this = _super !== null && _super.apply(this, arguments) || this;
                      _this.isRequireSingleSelection = false;
                      return _this;
                    }
                    BasicFilterBuilder2.prototype.in = function(values) {
                      this.operator = "In";
                      this.values = values;
                      return this;
                    };
                    BasicFilterBuilder2.prototype.notIn = function(values) {
                      this.operator = "NotIn";
                      this.values = values;
                      return this;
                    };
                    BasicFilterBuilder2.prototype.all = function() {
                      this.operator = "All";
                      this.values = [];
                      return this;
                    };
                    BasicFilterBuilder2.prototype.requireSingleSelection = function(isRequireSingleSelection) {
                      if (isRequireSingleSelection === void 0) {
                        isRequireSingleSelection = false;
                      }
                      this.isRequireSingleSelection = isRequireSingleSelection;
                      return this;
                    };
                    BasicFilterBuilder2.prototype.build = function() {
                      var basicFilter = new powerbi_models_1.BasicFilter(this.target, this.operator, this.values);
                      basicFilter.requireSingleSelection = this.isRequireSingleSelection;
                      return basicFilter;
                    };
                    return BasicFilterBuilder2;
                  }(filterBuilder_1.FilterBuilder)
                );
                exports2.BasicFilterBuilder = BasicFilterBuilder;
              }
            ),
            /***/
            "./src/FilterBuilders/filterBuilder.ts": (
              /*!*********************************************!*\
                !*** ./src/FilterBuilders/filterBuilder.ts ***!
                \*********************************************/
              /***/
              (__unused_webpack_module, exports2) => {
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.FilterBuilder = void 0;
                var FilterBuilder = (
                  /** @class */
                  function() {
                    function FilterBuilder2() {
                    }
                    FilterBuilder2.prototype.withTargetObject = function(target) {
                      this.target = target;
                      return this;
                    };
                    FilterBuilder2.prototype.withColumnTarget = function(tableName, columnName) {
                      this.target = { table: tableName, column: columnName };
                      return this;
                    };
                    FilterBuilder2.prototype.withMeasureTarget = function(tableName, measure) {
                      this.target = { table: tableName, measure };
                      return this;
                    };
                    FilterBuilder2.prototype.withHierarchyLevelTarget = function(tableName, hierarchy, hierarchyLevel) {
                      this.target = { table: tableName, hierarchy, hierarchyLevel };
                      return this;
                    };
                    FilterBuilder2.prototype.withColumnAggregation = function(tableName, columnName, aggregationFunction) {
                      this.target = { table: tableName, column: columnName, aggregationFunction };
                      return this;
                    };
                    FilterBuilder2.prototype.withHierarchyLevelAggregationTarget = function(tableName, hierarchy, hierarchyLevel, aggregationFunction) {
                      this.target = { table: tableName, hierarchy, hierarchyLevel, aggregationFunction };
                      return this;
                    };
                    return FilterBuilder2;
                  }()
                );
                exports2.FilterBuilder = FilterBuilder;
              }
            ),
            /***/
            "./src/FilterBuilders/index.ts": (
              /*!*************************************!*\
                !*** ./src/FilterBuilders/index.ts ***!
                \*************************************/
              /***/
              (__unused_webpack_module, exports2, __webpack_require__2) => {
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.RelativeTimeFilterBuilder = exports2.RelativeDateFilterBuilder = exports2.TopNFilterBuilder = exports2.AdvancedFilterBuilder = exports2.BasicFilterBuilder = void 0;
                var basicFilterBuilder_1 = __webpack_require__2(
                  /*! ./basicFilterBuilder */
                  "./src/FilterBuilders/basicFilterBuilder.ts"
                );
                Object.defineProperty(exports2, "BasicFilterBuilder", { enumerable: true, get: function() {
                  return basicFilterBuilder_1.BasicFilterBuilder;
                } });
                var advancedFilterBuilder_1 = __webpack_require__2(
                  /*! ./advancedFilterBuilder */
                  "./src/FilterBuilders/advancedFilterBuilder.ts"
                );
                Object.defineProperty(exports2, "AdvancedFilterBuilder", { enumerable: true, get: function() {
                  return advancedFilterBuilder_1.AdvancedFilterBuilder;
                } });
                var topNFilterBuilder_1 = __webpack_require__2(
                  /*! ./topNFilterBuilder */
                  "./src/FilterBuilders/topNFilterBuilder.ts"
                );
                Object.defineProperty(exports2, "TopNFilterBuilder", { enumerable: true, get: function() {
                  return topNFilterBuilder_1.TopNFilterBuilder;
                } });
                var relativeDateFilterBuilder_1 = __webpack_require__2(
                  /*! ./relativeDateFilterBuilder */
                  "./src/FilterBuilders/relativeDateFilterBuilder.ts"
                );
                Object.defineProperty(exports2, "RelativeDateFilterBuilder", { enumerable: true, get: function() {
                  return relativeDateFilterBuilder_1.RelativeDateFilterBuilder;
                } });
                var relativeTimeFilterBuilder_1 = __webpack_require__2(
                  /*! ./relativeTimeFilterBuilder */
                  "./src/FilterBuilders/relativeTimeFilterBuilder.ts"
                );
                Object.defineProperty(exports2, "RelativeTimeFilterBuilder", { enumerable: true, get: function() {
                  return relativeTimeFilterBuilder_1.RelativeTimeFilterBuilder;
                } });
              }
            ),
            /***/
            "./src/FilterBuilders/relativeDateFilterBuilder.ts": (
              /*!*********************************************************!*\
                !*** ./src/FilterBuilders/relativeDateFilterBuilder.ts ***!
                \*********************************************************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __extends = this && this.__extends || /* @__PURE__ */ function() {
                  var extendStatics = function(d, b) {
                    extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                      d2.__proto__ = b2;
                    } || function(d2, b2) {
                      for (var p in b2)
                        if (Object.prototype.hasOwnProperty.call(b2, p))
                          d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                  };
                  return function(d, b) {
                    if (typeof b !== "function" && b !== null)
                      throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                      this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                  };
                }();
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.RelativeDateFilterBuilder = void 0;
                var powerbi_models_1 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var filterBuilder_1 = __webpack_require__2(
                  /*! ./filterBuilder */
                  "./src/FilterBuilders/filterBuilder.ts"
                );
                var RelativeDateFilterBuilder = (
                  /** @class */
                  function(_super) {
                    __extends(RelativeDateFilterBuilder2, _super);
                    function RelativeDateFilterBuilder2() {
                      var _this = _super !== null && _super.apply(this, arguments) || this;
                      _this.isTodayIncluded = true;
                      return _this;
                    }
                    RelativeDateFilterBuilder2.prototype.inLast = function(timeUnitsCount, timeUnitType) {
                      this.operator = powerbi_models_1.RelativeDateOperators.InLast;
                      this.timeUnitsCount = timeUnitsCount;
                      this.timeUnitType = timeUnitType;
                      return this;
                    };
                    RelativeDateFilterBuilder2.prototype.inThis = function(timeUnitsCount, timeUnitType) {
                      this.operator = powerbi_models_1.RelativeDateOperators.InThis;
                      this.timeUnitsCount = timeUnitsCount;
                      this.timeUnitType = timeUnitType;
                      return this;
                    };
                    RelativeDateFilterBuilder2.prototype.inNext = function(timeUnitsCount, timeUnitType) {
                      this.operator = powerbi_models_1.RelativeDateOperators.InNext;
                      this.timeUnitsCount = timeUnitsCount;
                      this.timeUnitType = timeUnitType;
                      return this;
                    };
                    RelativeDateFilterBuilder2.prototype.includeToday = function(includeToday) {
                      this.isTodayIncluded = includeToday;
                      return this;
                    };
                    RelativeDateFilterBuilder2.prototype.build = function() {
                      var relativeDateFilter = new powerbi_models_1.RelativeDateFilter(this.target, this.operator, this.timeUnitsCount, this.timeUnitType, this.isTodayIncluded);
                      return relativeDateFilter;
                    };
                    return RelativeDateFilterBuilder2;
                  }(filterBuilder_1.FilterBuilder)
                );
                exports2.RelativeDateFilterBuilder = RelativeDateFilterBuilder;
              }
            ),
            /***/
            "./src/FilterBuilders/relativeTimeFilterBuilder.ts": (
              /*!*********************************************************!*\
                !*** ./src/FilterBuilders/relativeTimeFilterBuilder.ts ***!
                \*********************************************************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __extends = this && this.__extends || /* @__PURE__ */ function() {
                  var extendStatics = function(d, b) {
                    extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                      d2.__proto__ = b2;
                    } || function(d2, b2) {
                      for (var p in b2)
                        if (Object.prototype.hasOwnProperty.call(b2, p))
                          d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                  };
                  return function(d, b) {
                    if (typeof b !== "function" && b !== null)
                      throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                      this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                  };
                }();
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.RelativeTimeFilterBuilder = void 0;
                var powerbi_models_1 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var filterBuilder_1 = __webpack_require__2(
                  /*! ./filterBuilder */
                  "./src/FilterBuilders/filterBuilder.ts"
                );
                var RelativeTimeFilterBuilder = (
                  /** @class */
                  function(_super) {
                    __extends(RelativeTimeFilterBuilder2, _super);
                    function RelativeTimeFilterBuilder2() {
                      return _super !== null && _super.apply(this, arguments) || this;
                    }
                    RelativeTimeFilterBuilder2.prototype.inLast = function(timeUnitsCount, timeUnitType) {
                      this.operator = powerbi_models_1.RelativeDateOperators.InLast;
                      this.timeUnitsCount = timeUnitsCount;
                      this.timeUnitType = timeUnitType;
                      return this;
                    };
                    RelativeTimeFilterBuilder2.prototype.inThis = function(timeUnitsCount, timeUnitType) {
                      this.operator = powerbi_models_1.RelativeDateOperators.InThis;
                      this.timeUnitsCount = timeUnitsCount;
                      this.timeUnitType = timeUnitType;
                      return this;
                    };
                    RelativeTimeFilterBuilder2.prototype.inNext = function(timeUnitsCount, timeUnitType) {
                      this.operator = powerbi_models_1.RelativeDateOperators.InNext;
                      this.timeUnitsCount = timeUnitsCount;
                      this.timeUnitType = timeUnitType;
                      return this;
                    };
                    RelativeTimeFilterBuilder2.prototype.build = function() {
                      var relativeTimeFilter = new powerbi_models_1.RelativeTimeFilter(this.target, this.operator, this.timeUnitsCount, this.timeUnitType);
                      return relativeTimeFilter;
                    };
                    return RelativeTimeFilterBuilder2;
                  }(filterBuilder_1.FilterBuilder)
                );
                exports2.RelativeTimeFilterBuilder = RelativeTimeFilterBuilder;
              }
            ),
            /***/
            "./src/FilterBuilders/topNFilterBuilder.ts": (
              /*!*************************************************!*\
                !*** ./src/FilterBuilders/topNFilterBuilder.ts ***!
                \*************************************************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __extends = this && this.__extends || /* @__PURE__ */ function() {
                  var extendStatics = function(d, b) {
                    extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                      d2.__proto__ = b2;
                    } || function(d2, b2) {
                      for (var p in b2)
                        if (Object.prototype.hasOwnProperty.call(b2, p))
                          d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                  };
                  return function(d, b) {
                    if (typeof b !== "function" && b !== null)
                      throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                      this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                  };
                }();
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.TopNFilterBuilder = void 0;
                var powerbi_models_1 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var filterBuilder_1 = __webpack_require__2(
                  /*! ./filterBuilder */
                  "./src/FilterBuilders/filterBuilder.ts"
                );
                var TopNFilterBuilder = (
                  /** @class */
                  function(_super) {
                    __extends(TopNFilterBuilder2, _super);
                    function TopNFilterBuilder2() {
                      return _super !== null && _super.apply(this, arguments) || this;
                    }
                    TopNFilterBuilder2.prototype.top = function(itemCount) {
                      this.operator = "Top";
                      this.itemCount = itemCount;
                      return this;
                    };
                    TopNFilterBuilder2.prototype.bottom = function(itemCount) {
                      this.operator = "Bottom";
                      this.itemCount = itemCount;
                      return this;
                    };
                    TopNFilterBuilder2.prototype.orderByTarget = function(target) {
                      this.orderByTargetValue = target;
                      return this;
                    };
                    TopNFilterBuilder2.prototype.build = function() {
                      var topNFilter = new powerbi_models_1.TopNFilter(this.target, this.operator, this.itemCount, this.orderByTargetValue);
                      return topNFilter;
                    };
                    return TopNFilterBuilder2;
                  }(filterBuilder_1.FilterBuilder)
                );
                exports2.TopNFilterBuilder = TopNFilterBuilder;
              }
            ),
            /***/
            "./src/bookmarksManager.ts": (
              /*!*********************************!*\
                !*** ./src/bookmarksManager.ts ***!
                \*********************************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
                  function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                      resolve(value);
                    });
                  }
                  return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                      try {
                        step(generator.next(value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function rejected(value) {
                      try {
                        step(generator["throw"](value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function step(result) {
                      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                  });
                };
                var __generator = this && this.__generator || function(thisArg, body) {
                  var _ = { label: 0, sent: function() {
                    if (t[0] & 1)
                      throw t[1];
                    return t[1];
                  }, trys: [], ops: [] }, f, y, t, g;
                  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                  }), g;
                  function verb(n) {
                    return function(v) {
                      return step([n, v]);
                    };
                  }
                  function step(op) {
                    if (f)
                      throw new TypeError("Generator is already executing.");
                    while (_)
                      try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
                          return t;
                        if (y = 0, t)
                          op = [op[0] & 2, t.value];
                        switch (op[0]) {
                          case 0:
                          case 1:
                            t = op;
                            break;
                          case 4:
                            _.label++;
                            return { value: op[1], done: false };
                          case 5:
                            _.label++;
                            y = op[1];
                            op = [0];
                            continue;
                          case 7:
                            op = _.ops.pop();
                            _.trys.pop();
                            continue;
                          default:
                            if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                              _ = 0;
                              continue;
                            }
                            if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                              _.label = op[1];
                              break;
                            }
                            if (op[0] === 6 && _.label < t[1]) {
                              _.label = t[1];
                              t = op;
                              break;
                            }
                            if (t && _.label < t[2]) {
                              _.label = t[2];
                              _.ops.push(op);
                              break;
                            }
                            if (t[2])
                              _.ops.pop();
                            _.trys.pop();
                            continue;
                        }
                        op = body.call(thisArg, _);
                      } catch (e) {
                        op = [6, e];
                        y = 0;
                      } finally {
                        f = t = 0;
                      }
                    if (op[0] & 5)
                      throw op[1];
                    return { value: op[0] ? op[1] : void 0, done: true };
                  }
                };
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.BookmarksManager = void 0;
                var util_1 = __webpack_require__2(
                  /*! ./util */
                  "./src/util.ts"
                );
                var errors_1 = __webpack_require__2(
                  /*! ./errors */
                  "./src/errors.ts"
                );
                var BookmarksManager = (
                  /** @class */
                  function() {
                    function BookmarksManager2(service2, config, iframe) {
                      this.service = service2;
                      this.config = config;
                      this.iframe = iframe;
                    }
                    BookmarksManager2.prototype.getBookmarks = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_1;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.get("/report/bookmarks", { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              response_1 = _a.sent();
                              throw response_1.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    BookmarksManager2.prototype.apply = function(bookmarkName) {
                      return __awaiter(this, void 0, void 0, function() {
                        var request, response_2;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              request = {
                                name: bookmarkName
                              };
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post("/report/bookmarks/applyByName", request, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              return [2, _a.sent()];
                            case 3:
                              response_2 = _a.sent();
                              throw response_2.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    BookmarksManager2.prototype.play = function(playMode) {
                      return __awaiter(this, void 0, void 0, function() {
                        var playBookmarkRequest, response_3;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              playBookmarkRequest = {
                                playMode
                              };
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post("/report/bookmarks/play", playBookmarkRequest, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              return [2, _a.sent()];
                            case 3:
                              response_3 = _a.sent();
                              throw response_3.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    BookmarksManager2.prototype.capture = function(options) {
                      return __awaiter(this, void 0, void 0, function() {
                        var request, response, response_4;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              request = {
                                options: options || {}
                              };
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post("/report/bookmarks/capture", request, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              response_4 = _a.sent();
                              throw response_4.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    BookmarksManager2.prototype.applyState = function(state) {
                      return __awaiter(this, void 0, void 0, function() {
                        var request, response_5;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              request = {
                                state
                              };
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post("/report/bookmarks/applyState", request, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              return [2, _a.sent()];
                            case 3:
                              response_5 = _a.sent();
                              throw response_5.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    return BookmarksManager2;
                  }()
                );
                exports2.BookmarksManager = BookmarksManager;
              }
            ),
            /***/
            "./src/config.ts": (
              /*!***********************!*\
                !*** ./src/config.ts ***!
                \***********************/
              /***/
              (__unused_webpack_module, exports2) => {
                Object.defineProperty(exports2, "__esModule", { value: true });
                var config = {
                  version: "2.23.1",
                  type: "js"
                };
                exports2["default"] = config;
              }
            ),
            /***/
            "./src/create.ts": (
              /*!***********************!*\
                !*** ./src/create.ts ***!
                \***********************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __extends = this && this.__extends || /* @__PURE__ */ function() {
                  var extendStatics = function(d, b) {
                    extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                      d2.__proto__ = b2;
                    } || function(d2, b2) {
                      for (var p in b2)
                        if (Object.prototype.hasOwnProperty.call(b2, p))
                          d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                  };
                  return function(d, b) {
                    if (typeof b !== "function" && b !== null)
                      throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                      this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                  };
                }();
                var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
                  function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                      resolve(value);
                    });
                  }
                  return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                      try {
                        step(generator.next(value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function rejected(value) {
                      try {
                        step(generator["throw"](value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function step(result) {
                      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                  });
                };
                var __generator = this && this.__generator || function(thisArg, body) {
                  var _ = { label: 0, sent: function() {
                    if (t[0] & 1)
                      throw t[1];
                    return t[1];
                  }, trys: [], ops: [] }, f, y, t, g;
                  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                  }), g;
                  function verb(n) {
                    return function(v) {
                      return step([n, v]);
                    };
                  }
                  function step(op) {
                    if (f)
                      throw new TypeError("Generator is already executing.");
                    while (_)
                      try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
                          return t;
                        if (y = 0, t)
                          op = [op[0] & 2, t.value];
                        switch (op[0]) {
                          case 0:
                          case 1:
                            t = op;
                            break;
                          case 4:
                            _.label++;
                            return { value: op[1], done: false };
                          case 5:
                            _.label++;
                            y = op[1];
                            op = [0];
                            continue;
                          case 7:
                            op = _.ops.pop();
                            _.trys.pop();
                            continue;
                          default:
                            if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                              _ = 0;
                              continue;
                            }
                            if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                              _.label = op[1];
                              break;
                            }
                            if (op[0] === 6 && _.label < t[1]) {
                              _.label = t[1];
                              t = op;
                              break;
                            }
                            if (t && _.label < t[2]) {
                              _.label = t[2];
                              _.ops.push(op);
                              break;
                            }
                            if (t[2])
                              _.ops.pop();
                            _.trys.pop();
                            continue;
                        }
                        op = body.call(thisArg, _);
                      } catch (e) {
                        op = [6, e];
                        y = 0;
                      } finally {
                        f = t = 0;
                      }
                    if (op[0] & 5)
                      throw op[1];
                    return { value: op[0] ? op[1] : void 0, done: true };
                  }
                };
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.Create = void 0;
                var powerbi_models_1 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var embed_1 = __webpack_require__2(
                  /*! ./embed */
                  "./src/embed.ts"
                );
                var utils = __webpack_require__2(
                  /*! ./util */
                  "./src/util.ts"
                );
                var Create = (
                  /** @class */
                  function(_super) {
                    __extends(Create2, _super);
                    function Create2(service2, element, config, phasedRender, isBootstrap) {
                      return _super.call(
                        this,
                        service2,
                        element,
                        config,
                        /* iframe */
                        void 0,
                        phasedRender,
                        isBootstrap
                      ) || this;
                    }
                    Create2.prototype.getId = function() {
                      var datasetId = this.createConfig && this.createConfig.datasetId ? this.createConfig.datasetId : Create2.findIdFromEmbedUrl(this.config.embedUrl);
                      if (typeof datasetId !== "string" || datasetId.length === 0) {
                        throw new Error("Dataset id is required, but it was not found. You must provide an id either as part of embed configuration.");
                      }
                      return datasetId;
                    };
                    Create2.prototype.validate = function(config) {
                      return (0, powerbi_models_1.validateCreateReport)(config);
                    };
                    Create2.prototype.configChanged = function(isBootstrap) {
                      if (isBootstrap) {
                        return;
                      }
                      var config = this.config;
                      this.createConfig = {
                        accessToken: config.accessToken,
                        datasetId: config.datasetId || this.getId(),
                        groupId: config.groupId,
                        settings: config.settings,
                        tokenType: config.tokenType,
                        theme: config.theme
                      };
                    };
                    Create2.prototype.getDefaultEmbedUrlEndpoint = function() {
                      return "reportEmbed";
                    };
                    Create2.prototype.isSaved = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              return [4, utils.isSavedInternal(this.service.hpm, this.config.uniqueId, this.iframe.contentWindow)];
                            case 1:
                              return [2, _a.sent()];
                          }
                        });
                      });
                    };
                    Create2.findIdFromEmbedUrl = function(url) {
                      var datasetIdRegEx = /datasetId="?([^&]+)"?/;
                      var datasetIdMatch = url.match(datasetIdRegEx);
                      var datasetId;
                      if (datasetIdMatch) {
                        datasetId = datasetIdMatch[1];
                      }
                      return datasetId;
                    };
                    Create2.prototype.create = function() {
                      var _a;
                      return __awaiter(this, void 0, void 0, function() {
                        var errors, headers, response, response_1;
                        return __generator(this, function(_b) {
                          switch (_b.label) {
                            case 0:
                              errors = (0, powerbi_models_1.validateCreateReport)(this.createConfig);
                              if (errors) {
                                throw errors;
                              }
                              _b.label = 1;
                            case 1:
                              _b.trys.push([1, 3, , 4]);
                              headers = {
                                uid: this.config.uniqueId,
                                sdkSessionId: this.service.getSdkSessionId()
                              };
                              if (!!((_a = this.eventHooks) === null || _a === void 0 ? void 0 : _a.accessTokenProvider)) {
                                headers.tokenProviderSupplied = true;
                              }
                              return [4, this.service.hpm.post("/report/create", this.createConfig, headers, this.iframe.contentWindow)];
                            case 2:
                              response = _b.sent();
                              return [2, response.body];
                            case 3:
                              response_1 = _b.sent();
                              throw response_1.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    return Create2;
                  }(embed_1.Embed)
                );
                exports2.Create = Create;
              }
            ),
            /***/
            "./src/dashboard.ts": (
              /*!**************************!*\
                !*** ./src/dashboard.ts ***!
                \**************************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __extends = this && this.__extends || /* @__PURE__ */ function() {
                  var extendStatics = function(d, b) {
                    extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                      d2.__proto__ = b2;
                    } || function(d2, b2) {
                      for (var p in b2)
                        if (Object.prototype.hasOwnProperty.call(b2, p))
                          d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                  };
                  return function(d, b) {
                    if (typeof b !== "function" && b !== null)
                      throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                      this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                  };
                }();
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.Dashboard = void 0;
                var powerbi_models_1 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var embed_1 = __webpack_require__2(
                  /*! ./embed */
                  "./src/embed.ts"
                );
                var Dashboard = (
                  /** @class */
                  function(_super) {
                    __extends(Dashboard2, _super);
                    function Dashboard2(service2, element, config, phasedRender, isBootstrap) {
                      var _this = _super.call(
                        this,
                        service2,
                        element,
                        config,
                        /* iframe */
                        void 0,
                        phasedRender,
                        isBootstrap
                      ) || this;
                      _this.loadPath = "/dashboard/load";
                      _this.phasedLoadPath = "/dashboard/prepare";
                      Array.prototype.push.apply(_this.allowedEvents, Dashboard2.allowedEvents);
                      return _this;
                    }
                    Dashboard2.findIdFromEmbedUrl = function(url) {
                      var dashboardIdRegEx = /dashboardId="?([^&]+)"?/;
                      var dashboardIdMatch = url.match(dashboardIdRegEx);
                      var dashboardId;
                      if (dashboardIdMatch) {
                        dashboardId = dashboardIdMatch[1];
                      }
                      return dashboardId;
                    };
                    Dashboard2.prototype.getId = function() {
                      var config = this.config;
                      var dashboardId = config.id || this.element.getAttribute(Dashboard2.dashboardIdAttribute) || Dashboard2.findIdFromEmbedUrl(config.embedUrl);
                      if (typeof dashboardId !== "string" || dashboardId.length === 0) {
                        throw new Error("Dashboard id is required, but it was not found. You must provide an id either as part of embed configuration or as attribute '".concat(Dashboard2.dashboardIdAttribute, "'."));
                      }
                      return dashboardId;
                    };
                    Dashboard2.prototype.validate = function(baseConfig) {
                      var config = baseConfig;
                      var error = (0, powerbi_models_1.validateDashboardLoad)(config);
                      return error ? error : this.validatePageView(config.pageView);
                    };
                    Dashboard2.prototype.configChanged = function(isBootstrap) {
                      if (isBootstrap) {
                        return;
                      }
                      this.config.id = this.getId();
                    };
                    Dashboard2.prototype.getDefaultEmbedUrlEndpoint = function() {
                      return "dashboardEmbed";
                    };
                    Dashboard2.prototype.validatePageView = function(pageView) {
                      if (pageView && pageView !== "fitToWidth" && pageView !== "oneColumn" && pageView !== "actualSize") {
                        return [{ message: "pageView must be one of the followings: fitToWidth, oneColumn, actualSize" }];
                      }
                    };
                    Dashboard2.allowedEvents = ["tileClicked", "error"];
                    Dashboard2.dashboardIdAttribute = "powerbi-dashboard-id";
                    Dashboard2.typeAttribute = "powerbi-type";
                    Dashboard2.type = "Dashboard";
                    return Dashboard2;
                  }(embed_1.Embed)
                );
                exports2.Dashboard = Dashboard;
              }
            ),
            /***/
            "./src/embed.ts": (
              /*!**********************!*\
                !*** ./src/embed.ts ***!
                \**********************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
                  function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                      resolve(value);
                    });
                  }
                  return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                      try {
                        step(generator.next(value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function rejected(value) {
                      try {
                        step(generator["throw"](value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function step(result) {
                      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                  });
                };
                var __generator = this && this.__generator || function(thisArg, body) {
                  var _ = { label: 0, sent: function() {
                    if (t[0] & 1)
                      throw t[1];
                    return t[1];
                  }, trys: [], ops: [] }, f, y, t, g;
                  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                  }), g;
                  function verb(n) {
                    return function(v) {
                      return step([n, v]);
                    };
                  }
                  function step(op) {
                    if (f)
                      throw new TypeError("Generator is already executing.");
                    while (_)
                      try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
                          return t;
                        if (y = 0, t)
                          op = [op[0] & 2, t.value];
                        switch (op[0]) {
                          case 0:
                          case 1:
                            t = op;
                            break;
                          case 4:
                            _.label++;
                            return { value: op[1], done: false };
                          case 5:
                            _.label++;
                            y = op[1];
                            op = [0];
                            continue;
                          case 7:
                            op = _.ops.pop();
                            _.trys.pop();
                            continue;
                          default:
                            if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                              _ = 0;
                              continue;
                            }
                            if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                              _.label = op[1];
                              break;
                            }
                            if (op[0] === 6 && _.label < t[1]) {
                              _.label = t[1];
                              t = op;
                              break;
                            }
                            if (t && _.label < t[2]) {
                              _.label = t[2];
                              _.ops.push(op);
                              break;
                            }
                            if (t[2])
                              _.ops.pop();
                            _.trys.pop();
                            continue;
                        }
                        op = body.call(thisArg, _);
                      } catch (e) {
                        op = [6, e];
                        y = 0;
                      } finally {
                        f = t = 0;
                      }
                    if (op[0] & 5)
                      throw op[1];
                    return { value: op[0] ? op[1] : void 0, done: true };
                  }
                };
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.Embed = void 0;
                var models2 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var sdkConfig = __webpack_require__2(
                  /*! ./config */
                  "./src/config.ts"
                );
                var errors_1 = __webpack_require__2(
                  /*! ./errors */
                  "./src/errors.ts"
                );
                var util_1 = __webpack_require__2(
                  /*! ./util */
                  "./src/util.ts"
                );
                var Embed = (
                  /** @class */
                  function() {
                    function Embed2(service2, element, config, iframe, phasedRender, isBootstrap) {
                      this.allowedEvents = [];
                      if ((0, util_1.autoAuthInEmbedUrl)(config.embedUrl)) {
                        throw new Error(errors_1.EmbedUrlNotSupported);
                      }
                      Array.prototype.push.apply(this.allowedEvents, Embed2.allowedEvents);
                      this.eventHandlers = [];
                      this.service = service2;
                      this.element = element;
                      this.iframe = iframe;
                      this.iframeLoaded = false;
                      this.embedtype = config.type.toLowerCase();
                      this.commands = [];
                      this.groups = [];
                      this.populateConfig(config, isBootstrap);
                      if ((0, util_1.isCreate)(this.embedtype)) {
                        this.setIframe(false, phasedRender, isBootstrap);
                      } else {
                        this.setIframe(true, phasedRender, isBootstrap);
                      }
                    }
                    Embed2.prototype.create = function() {
                      throw new Error("no create support");
                    };
                    Embed2.prototype.save = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_1;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.service.hpm.post("/report/save", null, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 1:
                              response = _a.sent();
                              return [2, response.body];
                            case 2:
                              response_1 = _a.sent();
                              throw response_1.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Embed2.prototype.saveAs = function(saveAsParameters) {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_2;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.service.hpm.post("/report/saveAs", saveAsParameters, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 1:
                              response = _a.sent();
                              return [2, response.body];
                            case 2:
                              response_2 = _a.sent();
                              throw response_2.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Embed2.prototype.getCorrelationId = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_3;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.service.hpm.get("/getCorrelationId", { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 1:
                              response = _a.sent();
                              return [2, response.body];
                            case 2:
                              response_3 = _a.sent();
                              throw response_3.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Embed2.prototype.load = function(phasedRender) {
                      var _a;
                      return __awaiter(this, void 0, void 0, function() {
                        var path, headers, timeNow, response, response_4;
                        return __generator(this, function(_b) {
                          switch (_b.label) {
                            case 0:
                              if (!this.config.accessToken) {
                                console.debug("Power BI SDK iframe is loaded but powerbi.embed is not called yet.");
                                return [
                                  2
                                  /*return*/
                                ];
                              }
                              if (!this.iframeLoaded) {
                                console.debug("Power BI SDK is trying to post /report/load before iframe is ready.");
                                return [
                                  2
                                  /*return*/
                                ];
                              }
                              path = phasedRender && this.config.type === "report" ? this.phasedLoadPath : this.loadPath;
                              headers = {
                                uid: this.config.uniqueId,
                                sdkSessionId: this.service.getSdkSessionId(),
                                bootstrapped: this.config.bootstrapped,
                                sdkVersion: sdkConfig.default.version
                              };
                              if (!!((_a = this.eventHooks) === null || _a === void 0 ? void 0 : _a.accessTokenProvider)) {
                                headers.tokenProviderSupplied = true;
                              }
                              timeNow = /* @__PURE__ */ new Date();
                              if (this.lastLoadRequest && (0, util_1.getTimeDiffInMilliseconds)(this.lastLoadRequest, timeNow) < 100) {
                                console.debug("Power BI SDK sent more than two /report/load requests in the last 100ms interval.");
                                return [
                                  2
                                  /*return*/
                                ];
                              }
                              this.lastLoadRequest = timeNow;
                              _b.label = 1;
                            case 1:
                              _b.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post(path, this.config, headers, this.iframe.contentWindow)];
                            case 2:
                              response = _b.sent();
                              return [2, response.body];
                            case 3:
                              response_4 = _b.sent();
                              throw response_4.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Embed2.prototype.off = function(eventName, handler) {
                      var _this = this;
                      var fakeEvent = { name: eventName, type: null, id: null, value: null };
                      if (handler) {
                        (0, util_1.remove)(function(eventHandler) {
                          return eventHandler.test(fakeEvent) && eventHandler.handle === handler;
                        }, this.eventHandlers);
                        this.element.removeEventListener(eventName, handler);
                      } else {
                        var eventHandlersToRemove = this.eventHandlers.filter(function(eventHandler) {
                          return eventHandler.test(fakeEvent);
                        });
                        eventHandlersToRemove.forEach(function(eventHandlerToRemove) {
                          (0, util_1.remove)(function(eventHandler) {
                            return eventHandler === eventHandlerToRemove;
                          }, _this.eventHandlers);
                          _this.element.removeEventListener(eventName, eventHandlerToRemove.handle);
                        });
                      }
                    };
                    Embed2.prototype.on = function(eventName, handler) {
                      if (this.allowedEvents.indexOf(eventName) === -1) {
                        throw new Error("eventName must be one of ".concat(this.allowedEvents, ". You passed: ").concat(eventName));
                      }
                      this.eventHandlers.push({
                        test: function(event) {
                          return event.name === eventName;
                        },
                        handle: handler
                      });
                      this.element.addEventListener(eventName, handler);
                    };
                    Embed2.prototype.reload = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              return [4, this.load()];
                            case 1:
                              return [2, _a.sent()];
                          }
                        });
                      });
                    };
                    Embed2.prototype.setAccessToken = function(accessToken) {
                      return __awaiter(this, void 0, void 0, function() {
                        var embedType, response, response_5;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if (!accessToken) {
                                throw new Error("Access token cannot be empty");
                              }
                              embedType = this.config.type;
                              embedType = embedType === "create" || embedType === "visual" || embedType === "qna" || embedType === "quickCreate" ? "report" : embedType;
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post("/" + embedType + "/token", accessToken, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              this.config.accessToken = accessToken;
                              this.element.setAttribute(Embed2.accessTokenAttribute, accessToken);
                              this.service.accessToken = accessToken;
                              return [2, response.body];
                            case 3:
                              response_5 = _a.sent();
                              throw response_5.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Embed2.prototype.getAccessToken = function(globalAccessToken) {
                      var accessToken = this.config.accessToken || this.element.getAttribute(Embed2.accessTokenAttribute) || globalAccessToken;
                      if (!accessToken) {
                        throw new Error("No access token was found for element. You must specify an access token directly on the element using attribute '".concat(Embed2.accessTokenAttribute, "' or specify a global token at: powerbi.accessToken."));
                      }
                      return accessToken;
                    };
                    Embed2.prototype.populateConfig = function(config, isBootstrap) {
                      var _this = this;
                      var _a, _b, _c, _d, _e, _f, _g, _h, _j;
                      if (this.bootstrapConfig) {
                        this.config = (0, util_1.assign)({}, this.bootstrapConfig, config);
                        this.bootstrapConfig = null;
                      } else {
                        this.config = (0, util_1.assign)({}, config);
                      }
                      this.config.embedUrl = this.getEmbedUrl(isBootstrap);
                      this.config.groupId = this.getGroupId();
                      this.addLocaleToEmbedUrl(config);
                      this.config.uniqueId = this.getUniqueId();
                      var extensions = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.extensions;
                      this.commands = (_c = extensions === null || extensions === void 0 ? void 0 : extensions.commands) !== null && _c !== void 0 ? _c : [];
                      this.groups = (_d = extensions === null || extensions === void 0 ? void 0 : extensions.groups) !== null && _d !== void 0 ? _d : [];
                      this.initialLayoutType = (_g = (_f = (_e = this.config) === null || _e === void 0 ? void 0 : _e.settings) === null || _f === void 0 ? void 0 : _f.layoutType) !== null && _g !== void 0 ? _g : models2.LayoutType.Master;
                      var extensionsArray = (_j = (_h = this.config) === null || _h === void 0 ? void 0 : _h.settings) === null || _j === void 0 ? void 0 : _j.extensions;
                      if (Array.isArray(extensionsArray)) {
                        this.commands = [];
                        extensionsArray.map(function(extension) {
                          if (extension === null || extension === void 0 ? void 0 : extension.command) {
                            _this.commands.push(extension.command);
                          }
                        });
                      }
                      if (isBootstrap) {
                        this.bootstrapConfig = this.config;
                        this.bootstrapConfig.bootstrapped = true;
                      } else {
                        this.config.accessToken = this.getAccessToken(this.service.accessToken);
                      }
                      this.eventHooks = this.config.eventHooks;
                      this.validateEventHooks(this.eventHooks);
                      delete this.config.eventHooks;
                      this.configChanged(isBootstrap);
                    };
                    Embed2.prototype.validateEventHooks = function(eventHooks) {
                      if (!eventHooks) {
                        return;
                      }
                      for (var key in eventHooks) {
                        if (eventHooks.hasOwnProperty(key) && typeof eventHooks[key] !== "function") {
                          throw new Error(key + " must be a function");
                        }
                      }
                      var applicationContextProvider = eventHooks.applicationContextProvider;
                      if (!!applicationContextProvider) {
                        if (this.embedtype.toLowerCase() !== "report") {
                          throw new Error("applicationContextProvider is only supported in report embed");
                        }
                        this.config.embedUrl = (0, util_1.addParamToUrl)(this.config.embedUrl, "registerQueryCallback", "true");
                      }
                      var accessTokenProvider = eventHooks.accessTokenProvider;
                      if (!!accessTokenProvider) {
                        if (["create", "quickcreate", "report"].indexOf(this.embedtype.toLowerCase()) === -1 || this.config.tokenType !== models2.TokenType.Aad) {
                          throw new Error("accessTokenProvider is only supported in report SaaS embed");
                        }
                      }
                    };
                    Embed2.prototype.addLocaleToEmbedUrl = function(config) {
                      if (!config.settings) {
                        return;
                      }
                      var localeSettings = config.settings.localeSettings;
                      if (localeSettings && localeSettings.language) {
                        this.config.embedUrl = (0, util_1.addParamToUrl)(this.config.embedUrl, "language", localeSettings.language);
                      }
                      if (localeSettings && localeSettings.formatLocale) {
                        this.config.embedUrl = (0, util_1.addParamToUrl)(this.config.embedUrl, "formatLocale", localeSettings.formatLocale);
                      }
                    };
                    Embed2.prototype.getEmbedUrl = function(isBootstrap) {
                      var embedUrl = this.config.embedUrl || this.element.getAttribute(Embed2.embedUrlAttribute);
                      if (isBootstrap && !embedUrl) {
                        embedUrl = this.getDefaultEmbedUrl(this.config.hostname);
                      }
                      if (typeof embedUrl !== "string" || embedUrl.length === 0) {
                        throw new Error("Embed Url is required, but it was not found. You must provide an embed url either as part of embed configuration or as attribute '".concat(Embed2.embedUrlAttribute, "'."));
                      }
                      return embedUrl;
                    };
                    Embed2.prototype.getDefaultEmbedUrl = function(hostname) {
                      if (!hostname) {
                        hostname = Embed2.defaultEmbedHostName;
                      }
                      var endpoint = this.getDefaultEmbedUrlEndpoint();
                      hostname = hostname.toLowerCase().trim();
                      if (hostname.indexOf("https://") === 0) {
                        return "".concat(hostname, "/").concat(endpoint);
                      }
                      return "https://".concat(hostname, "/").concat(endpoint);
                    };
                    Embed2.prototype.getUniqueId = function() {
                      return this.config.uniqueId || this.element.getAttribute(Embed2.nameAttribute) || (0, util_1.createRandomString)();
                    };
                    Embed2.prototype.getGroupId = function() {
                      return this.config.groupId || Embed2.findGroupIdFromEmbedUrl(this.config.embedUrl);
                    };
                    Embed2.prototype.fullscreen = function() {
                      var requestFullScreen = this.iframe.requestFullscreen || this.iframe.msRequestFullscreen || this.iframe.mozRequestFullScreen || this.iframe.webkitRequestFullscreen;
                      requestFullScreen.call(this.iframe);
                    };
                    Embed2.prototype.exitFullscreen = function() {
                      if (!this.isFullscreen(this.iframe)) {
                        return;
                      }
                      var exitFullscreen = document.exitFullscreen || document.mozCancelFullScreen || document.webkitExitFullscreen || document.msExitFullscreen;
                      exitFullscreen.call(document);
                    };
                    Embed2.prototype.isFullscreen = function(iframe) {
                      var options = ["fullscreenElement", "webkitFullscreenElement", "mozFullscreenScreenElement", "msFullscreenElement"];
                      return options.some(function(option) {
                        return document[option] === iframe;
                      });
                    };
                    Embed2.prototype.setIframe = function(isLoad, phasedRender, isBootstrap) {
                      var _this = this;
                      if (!this.iframe) {
                        var iframeContent = document.createElement("iframe");
                        var embedUrl = this.config.uniqueId ? (0, util_1.addParamToUrl)(this.config.embedUrl, "uid", this.config.uniqueId) : this.config.embedUrl;
                        if (!(0, util_1.validateEmbedUrl)(embedUrl)) {
                          throw new Error(errors_1.invalidEmbedUrlErrorMessage);
                        }
                        iframeContent.style.width = "100%";
                        iframeContent.style.height = "100%";
                        iframeContent.setAttribute("src", embedUrl);
                        iframeContent.setAttribute("scrolling", "no");
                        iframeContent.setAttribute("allowfullscreen", "true");
                        var node = this.element;
                        while (node.firstChild) {
                          node.removeChild(node.firstChild);
                        }
                        node.appendChild(iframeContent);
                        this.iframe = node.firstChild;
                      }
                      if (isLoad) {
                        if (!isBootstrap) {
                          var errors = this.validate(this.config);
                          if (errors) {
                            throw errors;
                          }
                        }
                        this.iframe.addEventListener("load", function() {
                          _this.iframeLoaded = true;
                          _this.load(phasedRender);
                        }, false);
                        if (this.service.getNumberOfComponents() <= Embed2.maxFrontLoadTimes) {
                          this.frontLoadHandler = function() {
                            _this.frontLoadSendConfig(_this.config);
                          };
                          this.element.addEventListener("ready", this.frontLoadHandler, false);
                        }
                      } else {
                        this.iframe.addEventListener("load", function() {
                          return _this.create();
                        }, false);
                      }
                    };
                    Embed2.prototype.setComponentTitle = function(title) {
                      if (!this.iframe) {
                        return;
                      }
                      if (title == null) {
                        this.iframe.removeAttribute("title");
                      } else {
                        this.iframe.setAttribute("title", title);
                      }
                    };
                    Embed2.prototype.setComponentTabIndex = function(tabIndex) {
                      if (!this.element) {
                        return;
                      }
                      this.element.setAttribute("tabindex", tabIndex == null ? "0" : tabIndex.toString());
                    };
                    Embed2.prototype.removeComponentTabIndex = function(_tabIndex) {
                      if (!this.element) {
                        return;
                      }
                      this.element.removeAttribute("tabindex");
                    };
                    Embed2.findGroupIdFromEmbedUrl = function(url) {
                      var groupIdRegEx = /groupId="?([^&]+)"?/;
                      var groupIdMatch = url.match(groupIdRegEx);
                      var groupId;
                      if (groupIdMatch) {
                        groupId = groupIdMatch[1];
                      }
                      return groupId;
                    };
                    Embed2.prototype.frontLoadSendConfig = function(config) {
                      return __awaiter(this, void 0, void 0, function() {
                        var errors, response, response_6;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if (!config.accessToken) {
                                return [
                                  2
                                  /*return*/
                                ];
                              }
                              errors = this.validate(config);
                              if (errors) {
                                throw errors;
                              }
                              if (this.iframe.contentWindow == null) {
                                return [
                                  2
                                  /*return*/
                                ];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post("/frontload/config", config, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              response_6 = _a.sent();
                              throw response_6.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Embed2.allowedEvents = ["loaded", "saved", "rendered", "saveAsTriggered", "error", "dataSelected", "buttonClicked", "info"];
                    Embed2.accessTokenAttribute = "powerbi-access-token";
                    Embed2.embedUrlAttribute = "powerbi-embed-url";
                    Embed2.nameAttribute = "powerbi-name";
                    Embed2.typeAttribute = "powerbi-type";
                    Embed2.defaultEmbedHostName = "https://app.powerbi.com";
                    Embed2.maxFrontLoadTimes = 2;
                    return Embed2;
                  }()
                );
                exports2.Embed = Embed;
              }
            ),
            /***/
            "./src/errors.ts": (
              /*!***********************!*\
                !*** ./src/errors.ts ***!
                \***********************/
              /***/
              (__unused_webpack_module, exports2) => {
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.invalidEmbedUrlErrorMessage = exports2.EmbedUrlNotSupported = exports2.APINotSupportedForRDLError = void 0;
                exports2.APINotSupportedForRDLError = "This API is currently not supported for RDL reports";
                exports2.EmbedUrlNotSupported = "Embed URL is invalid for this scenario. Please use Power BI REST APIs to get the valid URL";
                exports2.invalidEmbedUrlErrorMessage = "Invalid embed URL detected. Either URL hostname or protocol are invalid. Please use Power BI REST APIs to get the valid URL";
              }
            ),
            /***/
            "./src/factories.ts": (
              /*!**************************!*\
                !*** ./src/factories.ts ***!
                \**************************/
              /***/
              (__unused_webpack_module, exports2, __webpack_require__2) => {
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.routerFactory = exports2.wpmpFactory = exports2.hpmFactory = void 0;
                var window_post_message_proxy_1 = __webpack_require__2(
                  /*! window-post-message-proxy */
                  "./node_modules/window-post-message-proxy/dist/windowPostMessageProxy.js"
                );
                var http_post_message_1 = __webpack_require__2(
                  /*! http-post-message */
                  "./node_modules/http-post-message/dist/httpPostMessage.js"
                );
                var powerbi_router_1 = __webpack_require__2(
                  /*! powerbi-router */
                  "./node_modules/powerbi-router/dist/router.js"
                );
                var config_1 = __webpack_require__2(
                  /*! ./config */
                  "./src/config.ts"
                );
                var hpmFactory = function(wpmp, defaultTargetWindow, sdkVersion, sdkType, sdkWrapperVersion) {
                  if (sdkVersion === void 0) {
                    sdkVersion = config_1.default.version;
                  }
                  if (sdkType === void 0) {
                    sdkType = config_1.default.type;
                  }
                  return new http_post_message_1.HttpPostMessage(wpmp, {
                    "x-sdk-type": sdkType,
                    "x-sdk-version": sdkVersion,
                    "x-sdk-wrapper-version": sdkWrapperVersion
                  }, defaultTargetWindow);
                };
                exports2.hpmFactory = hpmFactory;
                var wpmpFactory = function(name, logMessages, eventSourceOverrideWindow) {
                  return new window_post_message_proxy_1.WindowPostMessageProxy({
                    processTrackingProperties: {
                      addTrackingProperties: http_post_message_1.HttpPostMessage.addTrackingProperties,
                      getTrackingProperties: http_post_message_1.HttpPostMessage.getTrackingProperties
                    },
                    isErrorMessage: http_post_message_1.HttpPostMessage.isErrorMessage,
                    suppressWarnings: true,
                    name,
                    logMessages,
                    eventSourceOverrideWindow
                  });
                };
                exports2.wpmpFactory = wpmpFactory;
                var routerFactory = function(wpmp) {
                  return new powerbi_router_1.Router(wpmp);
                };
                exports2.routerFactory = routerFactory;
              }
            ),
            /***/
            "./src/page.ts": (
              /*!*********************!*\
                !*** ./src/page.ts ***!
                \*********************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
                  function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                      resolve(value);
                    });
                  }
                  return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                      try {
                        step(generator.next(value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function rejected(value) {
                      try {
                        step(generator["throw"](value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function step(result) {
                      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                  });
                };
                var __generator = this && this.__generator || function(thisArg, body) {
                  var _ = { label: 0, sent: function() {
                    if (t[0] & 1)
                      throw t[1];
                    return t[1];
                  }, trys: [], ops: [] }, f, y, t, g;
                  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                  }), g;
                  function verb(n) {
                    return function(v) {
                      return step([n, v]);
                    };
                  }
                  function step(op) {
                    if (f)
                      throw new TypeError("Generator is already executing.");
                    while (_)
                      try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
                          return t;
                        if (y = 0, t)
                          op = [op[0] & 2, t.value];
                        switch (op[0]) {
                          case 0:
                          case 1:
                            t = op;
                            break;
                          case 4:
                            _.label++;
                            return { value: op[1], done: false };
                          case 5:
                            _.label++;
                            y = op[1];
                            op = [0];
                            continue;
                          case 7:
                            op = _.ops.pop();
                            _.trys.pop();
                            continue;
                          default:
                            if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                              _ = 0;
                              continue;
                            }
                            if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                              _.label = op[1];
                              break;
                            }
                            if (op[0] === 6 && _.label < t[1]) {
                              _.label = t[1];
                              t = op;
                              break;
                            }
                            if (t && _.label < t[2]) {
                              _.label = t[2];
                              _.ops.push(op);
                              break;
                            }
                            if (t[2])
                              _.ops.pop();
                            _.trys.pop();
                            continue;
                        }
                        op = body.call(thisArg, _);
                      } catch (e) {
                        op = [6, e];
                        y = 0;
                      } finally {
                        f = t = 0;
                      }
                    if (op[0] & 5)
                      throw op[1];
                    return { value: op[0] ? op[1] : void 0, done: true };
                  }
                };
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.Page = void 0;
                var powerbi_models_1 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var visualDescriptor_1 = __webpack_require__2(
                  /*! ./visualDescriptor */
                  "./src/visualDescriptor.ts"
                );
                var util_1 = __webpack_require__2(
                  /*! ./util */
                  "./src/util.ts"
                );
                var errors_1 = __webpack_require__2(
                  /*! ./errors */
                  "./src/errors.ts"
                );
                var Page = (
                  /** @class */
                  function() {
                    function Page2(report, name, displayName, isActivePage, visibility, defaultSize, defaultDisplayOption, mobileSize, background, wallpaper) {
                      this.report = report;
                      this.name = name;
                      this.displayName = displayName;
                      this.isActive = isActivePage;
                      this.visibility = visibility;
                      this.defaultSize = defaultSize;
                      this.mobileSize = mobileSize;
                      this.defaultDisplayOption = defaultDisplayOption;
                      this.background = background;
                      this.wallpaper = wallpaper;
                    }
                    Page2.prototype.getSmartNarrativeInsights = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_1;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.report.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.report.service.hpm.get("/report/pages/".concat(this.name, "/smartNarrativeInsights"), { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              response_1 = _a.sent();
                              throw response_1.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Page2.prototype.getFilters = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_2;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.report.service.hpm.get("/report/pages/".concat(this.name, "/filters"), { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow)];
                            case 1:
                              response = _a.sent();
                              return [2, response.body];
                            case 2:
                              response_2 = _a.sent();
                              throw response_2.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Page2.prototype.updateFilters = function(operation, filters) {
                      return __awaiter(this, void 0, void 0, function() {
                        var updateFiltersRequest, response_3;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              updateFiltersRequest = {
                                filtersOperation: operation,
                                filters
                              };
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.report.service.hpm.post("/report/pages/".concat(this.name, "/filters"), updateFiltersRequest, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow)];
                            case 2:
                              return [2, _a.sent()];
                            case 3:
                              response_3 = _a.sent();
                              throw response_3.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Page2.prototype.removeFilters = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              return [4, this.updateFilters(powerbi_models_1.FiltersOperations.RemoveAll)];
                            case 1:
                              return [2, _a.sent()];
                          }
                        });
                      });
                    };
                    Page2.prototype.setFilters = function(filters) {
                      return __awaiter(this, void 0, void 0, function() {
                        var response_4;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.report.service.hpm.put("/report/pages/".concat(this.name, "/filters"), filters, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow)];
                            case 1:
                              return [2, _a.sent()];
                            case 2:
                              response_4 = _a.sent();
                              throw response_4.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Page2.prototype.delete = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_5;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.report.service.hpm.delete("/report/pages/".concat(this.name), {}, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow)];
                            case 1:
                              response = _a.sent();
                              return [2, response.body];
                            case 2:
                              response_5 = _a.sent();
                              throw response_5.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Page2.prototype.setActive = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var page, response_6;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              page = {
                                name: this.name,
                                displayName: null,
                                isActive: true
                              };
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.report.service.hpm.put("/report/pages/active", page, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow)];
                            case 2:
                              return [2, _a.sent()];
                            case 3:
                              response_6 = _a.sent();
                              throw response_6.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Page2.prototype.setDisplayName = function(displayName) {
                      return __awaiter(this, void 0, void 0, function() {
                        var page, response_7;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              page = {
                                name: this.name,
                                displayName
                              };
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.report.service.hpm.put("/report/pages/".concat(this.name, "/name"), page, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow)];
                            case 2:
                              return [2, _a.sent()];
                            case 3:
                              response_7 = _a.sent();
                              throw response_7.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Page2.prototype.getVisuals = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_8;
                        var _this = this;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.report.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.report.service.hpm.get("/report/pages/".concat(this.name, "/visuals"), { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body.map(function(visual) {
                                return new visualDescriptor_1.VisualDescriptor(_this, visual.name, visual.title, visual.type, visual.layout);
                              })];
                            case 3:
                              response_8 = _a.sent();
                              throw response_8.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Page2.prototype.getVisualByName = function(visualName) {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, visual, response_9;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.report.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.report.service.hpm.get("/report/pages/".concat(this.name, "/visuals"), { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              visual = response.body.find(function(v) {
                                return v.name === visualName;
                              });
                              if (!visual) {
                                return [2, Promise.reject(powerbi_models_1.CommonErrorCodes.NotFound)];
                              }
                              return [2, new visualDescriptor_1.VisualDescriptor(this, visual.name, visual.title, visual.type, visual.layout)];
                            case 3:
                              response_9 = _a.sent();
                              throw response_9.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Page2.prototype.setVisualDisplayState = function(visualName, displayState) {
                      return __awaiter(this, void 0, void 0, function() {
                        var pageName, report;
                        return __generator(this, function(_a) {
                          pageName = this.name;
                          report = this.report;
                          return [2, report.setVisualDisplayState(pageName, visualName, displayState)];
                        });
                      });
                    };
                    Page2.prototype.moveVisual = function(visualName, x, y, z) {
                      return __awaiter(this, void 0, void 0, function() {
                        var pageName, report;
                        return __generator(this, function(_a) {
                          pageName = this.name;
                          report = this.report;
                          return [2, report.moveVisual(pageName, visualName, x, y, z)];
                        });
                      });
                    };
                    Page2.prototype.resizeVisual = function(visualName, width, height) {
                      return __awaiter(this, void 0, void 0, function() {
                        var pageName, report;
                        return __generator(this, function(_a) {
                          pageName = this.name;
                          report = this.report;
                          return [2, report.resizeVisual(pageName, visualName, width, height)];
                        });
                      });
                    };
                    Page2.prototype.resizePage = function(pageSizeType, width, height) {
                      return __awaiter(this, void 0, void 0, function() {
                        var report;
                        return __generator(this, function(_a) {
                          if (!this.isActive) {
                            return [2, Promise.reject("Cannot resize the page. Only the active page can be resized")];
                          }
                          report = this.report;
                          return [2, report.resizeActivePage(pageSizeType, width, height)];
                        });
                      });
                    };
                    Page2.prototype.getSlicers = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_10;
                        var _this = this;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.report.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.report.service.hpm.get("/report/pages/".concat(this.name, "/visuals"), { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body.filter(function(visual) {
                                return visual.type === "slicer";
                              }).map(function(visual) {
                                return new visualDescriptor_1.VisualDescriptor(_this, visual.name, visual.title, visual.type, visual.layout);
                              })];
                            case 3:
                              response_10 = _a.sent();
                              throw response_10.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Page2.prototype.hasLayout = function(layoutType) {
                      return __awaiter(this, void 0, void 0, function() {
                        var layoutTypeEnum, response, response_11;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.report.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              layoutTypeEnum = powerbi_models_1.LayoutType[layoutType];
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.report.service.hpm.get("/report/pages/".concat(this.name, "/layoutTypes/").concat(layoutTypeEnum), { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              response_11 = _a.sent();
                              throw response_11.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    return Page2;
                  }()
                );
                exports2.Page = Page;
              }
            ),
            /***/
            "./src/qna.ts": (
              /*!********************!*\
                !*** ./src/qna.ts ***!
                \********************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __extends = this && this.__extends || /* @__PURE__ */ function() {
                  var extendStatics = function(d, b) {
                    extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                      d2.__proto__ = b2;
                    } || function(d2, b2) {
                      for (var p in b2)
                        if (Object.prototype.hasOwnProperty.call(b2, p))
                          d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                  };
                  return function(d, b) {
                    if (typeof b !== "function" && b !== null)
                      throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                      this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                  };
                }();
                var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
                  function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                      resolve(value);
                    });
                  }
                  return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                      try {
                        step(generator.next(value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function rejected(value) {
                      try {
                        step(generator["throw"](value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function step(result) {
                      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                  });
                };
                var __generator = this && this.__generator || function(thisArg, body) {
                  var _ = { label: 0, sent: function() {
                    if (t[0] & 1)
                      throw t[1];
                    return t[1];
                  }, trys: [], ops: [] }, f, y, t, g;
                  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                  }), g;
                  function verb(n) {
                    return function(v) {
                      return step([n, v]);
                    };
                  }
                  function step(op) {
                    if (f)
                      throw new TypeError("Generator is already executing.");
                    while (_)
                      try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
                          return t;
                        if (y = 0, t)
                          op = [op[0] & 2, t.value];
                        switch (op[0]) {
                          case 0:
                          case 1:
                            t = op;
                            break;
                          case 4:
                            _.label++;
                            return { value: op[1], done: false };
                          case 5:
                            _.label++;
                            y = op[1];
                            op = [0];
                            continue;
                          case 7:
                            op = _.ops.pop();
                            _.trys.pop();
                            continue;
                          default:
                            if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                              _ = 0;
                              continue;
                            }
                            if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                              _.label = op[1];
                              break;
                            }
                            if (op[0] === 6 && _.label < t[1]) {
                              _.label = t[1];
                              t = op;
                              break;
                            }
                            if (t && _.label < t[2]) {
                              _.label = t[2];
                              _.ops.push(op);
                              break;
                            }
                            if (t[2])
                              _.ops.pop();
                            _.trys.pop();
                            continue;
                        }
                        op = body.call(thisArg, _);
                      } catch (e) {
                        op = [6, e];
                        y = 0;
                      } finally {
                        f = t = 0;
                      }
                    if (op[0] & 5)
                      throw op[1];
                    return { value: op[0] ? op[1] : void 0, done: true };
                  }
                };
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.Qna = void 0;
                var powerbi_models_1 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var embed_1 = __webpack_require__2(
                  /*! ./embed */
                  "./src/embed.ts"
                );
                var Qna = (
                  /** @class */
                  function(_super) {
                    __extends(Qna2, _super);
                    function Qna2(service2, element, config, phasedRender, isBootstrap) {
                      var _this = _super.call(
                        this,
                        service2,
                        element,
                        config,
                        /* iframe */
                        void 0,
                        phasedRender,
                        isBootstrap
                      ) || this;
                      _this.loadPath = "/qna/load";
                      _this.phasedLoadPath = "/qna/prepare";
                      Array.prototype.push.apply(_this.allowedEvents, Qna2.allowedEvents);
                      return _this;
                    }
                    Qna2.prototype.getId = function() {
                      return null;
                    };
                    Qna2.prototype.setQuestion = function(question) {
                      return __awaiter(this, void 0, void 0, function() {
                        var qnaData, response_1;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              qnaData = {
                                question
                              };
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post("/qna/interpret", qnaData, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              return [2, _a.sent()];
                            case 3:
                              response_1 = _a.sent();
                              throw response_1.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Qna2.prototype.configChanged = function(_isBootstrap) {
                    };
                    Qna2.prototype.getDefaultEmbedUrlEndpoint = function() {
                      return "qnaEmbed";
                    };
                    Qna2.prototype.validate = function(config) {
                      return (0, powerbi_models_1.validateLoadQnaConfiguration)(config);
                    };
                    Qna2.type = "Qna";
                    Qna2.allowedEvents = ["loaded", "visualRendered"];
                    return Qna2;
                  }(embed_1.Embed)
                );
                exports2.Qna = Qna;
              }
            ),
            /***/
            "./src/quickCreate.ts": (
              /*!****************************!*\
                !*** ./src/quickCreate.ts ***!
                \****************************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __extends = this && this.__extends || /* @__PURE__ */ function() {
                  var extendStatics = function(d, b) {
                    extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                      d2.__proto__ = b2;
                    } || function(d2, b2) {
                      for (var p in b2)
                        if (Object.prototype.hasOwnProperty.call(b2, p))
                          d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                  };
                  return function(d, b) {
                    if (typeof b !== "function" && b !== null)
                      throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                      this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                  };
                }();
                var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
                  function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                      resolve(value);
                    });
                  }
                  return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                      try {
                        step(generator.next(value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function rejected(value) {
                      try {
                        step(generator["throw"](value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function step(result) {
                      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                  });
                };
                var __generator = this && this.__generator || function(thisArg, body) {
                  var _ = { label: 0, sent: function() {
                    if (t[0] & 1)
                      throw t[1];
                    return t[1];
                  }, trys: [], ops: [] }, f, y, t, g;
                  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                  }), g;
                  function verb(n) {
                    return function(v) {
                      return step([n, v]);
                    };
                  }
                  function step(op) {
                    if (f)
                      throw new TypeError("Generator is already executing.");
                    while (_)
                      try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
                          return t;
                        if (y = 0, t)
                          op = [op[0] & 2, t.value];
                        switch (op[0]) {
                          case 0:
                          case 1:
                            t = op;
                            break;
                          case 4:
                            _.label++;
                            return { value: op[1], done: false };
                          case 5:
                            _.label++;
                            y = op[1];
                            op = [0];
                            continue;
                          case 7:
                            op = _.ops.pop();
                            _.trys.pop();
                            continue;
                          default:
                            if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                              _ = 0;
                              continue;
                            }
                            if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                              _.label = op[1];
                              break;
                            }
                            if (op[0] === 6 && _.label < t[1]) {
                              _.label = t[1];
                              t = op;
                              break;
                            }
                            if (t && _.label < t[2]) {
                              _.label = t[2];
                              _.ops.push(op);
                              break;
                            }
                            if (t[2])
                              _.ops.pop();
                            _.trys.pop();
                            continue;
                        }
                        op = body.call(thisArg, _);
                      } catch (e) {
                        op = [6, e];
                        y = 0;
                      } finally {
                        f = t = 0;
                      }
                    if (op[0] & 5)
                      throw op[1];
                    return { value: op[0] ? op[1] : void 0, done: true };
                  }
                };
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.QuickCreate = void 0;
                var powerbi_models_1 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var embed_1 = __webpack_require__2(
                  /*! ./embed */
                  "./src/embed.ts"
                );
                var QuickCreate = (
                  /** @class */
                  function(_super) {
                    __extends(QuickCreate2, _super);
                    function QuickCreate2(service2, element, config, phasedRender, isBootstrap) {
                      var _this = _super.call(
                        this,
                        service2,
                        element,
                        config,
                        /* iframe */
                        void 0,
                        phasedRender,
                        isBootstrap
                      ) || this;
                      service2.router.post("/reports/".concat(_this.config.uniqueId, "/eventHooks/:eventName"), function(req, _res) {
                        return __awaiter(_this, void 0, void 0, function() {
                          var _a;
                          var _b;
                          return __generator(this, function(_c) {
                            switch (_c.label) {
                              case 0:
                                _a = req.params.eventName;
                                switch (_a) {
                                  case "newAccessToken":
                                    return [3, 1];
                                }
                                return [3, 3];
                              case 1:
                                req.body = req.body || {};
                                req.body.report = this;
                                return [4, service2.invokeSDKHook((_b = this.eventHooks) === null || _b === void 0 ? void 0 : _b.accessTokenProvider, req, _res)];
                              case 2:
                                _c.sent();
                                return [3, 4];
                              case 3:
                                return [3, 4];
                              case 4:
                                return [
                                  2
                                  /*return*/
                                ];
                            }
                          });
                        });
                      });
                      return _this;
                    }
                    QuickCreate2.prototype.getId = function() {
                      return null;
                    };
                    QuickCreate2.prototype.validate = function(config) {
                      return (0, powerbi_models_1.validateQuickCreate)(config);
                    };
                    QuickCreate2.prototype.configChanged = function(isBootstrap) {
                      if (isBootstrap) {
                        return;
                      }
                      this.createConfig = this.config;
                    };
                    QuickCreate2.prototype.getDefaultEmbedUrlEndpoint = function() {
                      return "quickCreate";
                    };
                    QuickCreate2.prototype.create = function() {
                      var _a;
                      return __awaiter(this, void 0, void 0, function() {
                        var errors, headers, response, response_1;
                        return __generator(this, function(_b) {
                          switch (_b.label) {
                            case 0:
                              errors = (0, powerbi_models_1.validateQuickCreate)(this.createConfig);
                              if (errors) {
                                throw errors;
                              }
                              _b.label = 1;
                            case 1:
                              _b.trys.push([1, 3, , 4]);
                              headers = {
                                uid: this.config.uniqueId,
                                sdkSessionId: this.service.getSdkSessionId()
                              };
                              if (!!((_a = this.eventHooks) === null || _a === void 0 ? void 0 : _a.accessTokenProvider)) {
                                headers.tokenProviderSupplied = true;
                              }
                              return [4, this.service.hpm.post("/quickcreate", this.createConfig, headers, this.iframe.contentWindow)];
                            case 2:
                              response = _b.sent();
                              return [2, response.body];
                            case 3:
                              response_1 = _b.sent();
                              throw response_1.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    return QuickCreate2;
                  }(embed_1.Embed)
                );
                exports2.QuickCreate = QuickCreate;
              }
            ),
            /***/
            "./src/report.ts": (
              /*!***********************!*\
                !*** ./src/report.ts ***!
                \***********************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __extends = this && this.__extends || /* @__PURE__ */ function() {
                  var extendStatics = function(d, b) {
                    extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                      d2.__proto__ = b2;
                    } || function(d2, b2) {
                      for (var p in b2)
                        if (Object.prototype.hasOwnProperty.call(b2, p))
                          d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                  };
                  return function(d, b) {
                    if (typeof b !== "function" && b !== null)
                      throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                      this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                  };
                }();
                var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
                  function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                      resolve(value);
                    });
                  }
                  return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                      try {
                        step(generator.next(value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function rejected(value) {
                      try {
                        step(generator["throw"](value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function step(result) {
                      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                  });
                };
                var __generator = this && this.__generator || function(thisArg, body) {
                  var _ = { label: 0, sent: function() {
                    if (t[0] & 1)
                      throw t[1];
                    return t[1];
                  }, trys: [], ops: [] }, f, y, t, g;
                  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                  }), g;
                  function verb(n) {
                    return function(v) {
                      return step([n, v]);
                    };
                  }
                  function step(op) {
                    if (f)
                      throw new TypeError("Generator is already executing.");
                    while (_)
                      try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
                          return t;
                        if (y = 0, t)
                          op = [op[0] & 2, t.value];
                        switch (op[0]) {
                          case 0:
                          case 1:
                            t = op;
                            break;
                          case 4:
                            _.label++;
                            return { value: op[1], done: false };
                          case 5:
                            _.label++;
                            y = op[1];
                            op = [0];
                            continue;
                          case 7:
                            op = _.ops.pop();
                            _.trys.pop();
                            continue;
                          default:
                            if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                              _ = 0;
                              continue;
                            }
                            if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                              _.label = op[1];
                              break;
                            }
                            if (op[0] === 6 && _.label < t[1]) {
                              _.label = t[1];
                              t = op;
                              break;
                            }
                            if (t && _.label < t[2]) {
                              _.label = t[2];
                              _.ops.push(op);
                              break;
                            }
                            if (t[2])
                              _.ops.pop();
                            _.trys.pop();
                            continue;
                        }
                        op = body.call(thisArg, _);
                      } catch (e) {
                        op = [6, e];
                        y = 0;
                      } finally {
                        f = t = 0;
                      }
                    if (op[0] & 5)
                      throw op[1];
                    return { value: op[0] ? op[1] : void 0, done: true };
                  }
                };
                var __spreadArray = this && this.__spreadArray || function(to, from, pack) {
                  if (pack || arguments.length === 2)
                    for (var i = 0, l = from.length, ar; i < l; i++) {
                      if (ar || !(i in from)) {
                        if (!ar)
                          ar = Array.prototype.slice.call(from, 0, i);
                        ar[i] = from[i];
                      }
                    }
                  return to.concat(ar || Array.prototype.slice.call(from));
                };
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.Report = void 0;
                var powerbi_models_1 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var embed_1 = __webpack_require__2(
                  /*! ./embed */
                  "./src/embed.ts"
                );
                var util_1 = __webpack_require__2(
                  /*! ./util */
                  "./src/util.ts"
                );
                var errors_1 = __webpack_require__2(
                  /*! ./errors */
                  "./src/errors.ts"
                );
                var page_1 = __webpack_require__2(
                  /*! ./page */
                  "./src/page.ts"
                );
                var bookmarksManager_1 = __webpack_require__2(
                  /*! ./bookmarksManager */
                  "./src/bookmarksManager.ts"
                );
                var Report = (
                  /** @class */
                  function(_super) {
                    __extends(Report2, _super);
                    function Report2(service2, element, baseConfig, phasedRender, isBootstrap, iframe) {
                      var _this = this;
                      var config = baseConfig;
                      _this = _super.call(this, service2, element, config, iframe, phasedRender, isBootstrap) || this;
                      _this.loadPath = "/report/load";
                      _this.phasedLoadPath = "/report/prepare";
                      Array.prototype.push.apply(_this.allowedEvents, Report2.allowedEvents);
                      _this.bookmarksManager = new bookmarksManager_1.BookmarksManager(service2, config, _this.iframe);
                      service2.router.post("/reports/".concat(_this.config.uniqueId, "/eventHooks/:eventName"), function(req, _res) {
                        return __awaiter(_this, void 0, void 0, function() {
                          var _a;
                          var _b, _c;
                          return __generator(this, function(_d) {
                            switch (_d.label) {
                              case 0:
                                _a = req.params.eventName;
                                switch (_a) {
                                  case "preQuery":
                                    return [3, 1];
                                  case "newAccessToken":
                                    return [3, 3];
                                }
                                return [3, 5];
                              case 1:
                                req.body = req.body || {};
                                req.body.report = this;
                                return [4, service2.invokeSDKHook((_b = this.eventHooks) === null || _b === void 0 ? void 0 : _b.applicationContextProvider, req, _res)];
                              case 2:
                                _d.sent();
                                return [3, 6];
                              case 3:
                                req.body = req.body || {};
                                req.body.report = this;
                                return [4, service2.invokeSDKHook((_c = this.eventHooks) === null || _c === void 0 ? void 0 : _c.accessTokenProvider, req, _res)];
                              case 4:
                                _d.sent();
                                return [3, 6];
                              case 5:
                                return [3, 6];
                              case 6:
                                return [
                                  2
                                  /*return*/
                                ];
                            }
                          });
                        });
                      });
                      return _this;
                    }
                    Report2.findIdFromEmbedUrl = function(url) {
                      var reportIdRegEx = /reportId="?([^&]+)"?/;
                      var reportIdMatch = url.match(reportIdRegEx);
                      var reportId;
                      if (reportIdMatch) {
                        reportId = reportIdMatch[1];
                      }
                      return reportId;
                    };
                    Report2.prototype.render = function(config) {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_1;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.service.hpm.post("/report/render", config, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 1:
                              response = _a.sent();
                              return [2, response.body];
                            case 2:
                              response_1 = _a.sent();
                              throw response_1.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.addPage = function(displayName) {
                      return __awaiter(this, void 0, void 0, function() {
                        var request, response, page, response_2;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              request = {
                                displayName
                              };
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post("/report/addPage", request, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              page = response.body;
                              return [2, new page_1.Page(this, page.name, page.displayName, page.isActive, page.visibility, page.defaultSize, page.defaultDisplayOption)];
                            case 3:
                              response_2 = _a.sent();
                              throw response_2.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.deletePage = function(pageName) {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_3;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.service.hpm.delete("/report/pages/".concat(pageName), {}, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 1:
                              response = _a.sent();
                              return [2, response.body];
                            case 2:
                              response_3 = _a.sent();
                              throw response_3.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.renamePage = function(pageName, displayName) {
                      return __awaiter(this, void 0, void 0, function() {
                        var page, response, response_4;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              page = {
                                name: pageName,
                                displayName
                              };
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.put("/report/pages/".concat(pageName, "/name"), page, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              response_4 = _a.sent();
                              throw response_4.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.getFilters = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_5;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.get("/report/filters", { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              response_5 = _a.sent();
                              throw response_5.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.updateFilters = function(operation, filters) {
                      return __awaiter(this, void 0, void 0, function() {
                        var updateFiltersRequest, response_6;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              updateFiltersRequest = {
                                filtersOperation: operation,
                                filters
                              };
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post("/report/filters", updateFiltersRequest, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              return [2, _a.sent()];
                            case 3:
                              response_6 = _a.sent();
                              throw response_6.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.removeFilters = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        return __generator(this, function(_a) {
                          if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                            return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                          }
                          return [2, this.updateFilters(powerbi_models_1.FiltersOperations.RemoveAll)];
                        });
                      });
                    };
                    Report2.prototype.setFilters = function(filters) {
                      return __awaiter(this, void 0, void 0, function() {
                        var response_7;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.put("/report/filters", filters, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              return [2, _a.sent()];
                            case 3:
                              response_7 = _a.sent();
                              throw response_7.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.getId = function() {
                      var config = this.config;
                      var reportId = config.id || this.element.getAttribute(Report2.reportIdAttribute) || Report2.findIdFromEmbedUrl(config.embedUrl);
                      if (typeof reportId !== "string" || reportId.length === 0) {
                        throw new Error("Report id is required, but it was not found. You must provide an id either as part of embed configuration or as attribute '".concat(Report2.reportIdAttribute, "'."));
                      }
                      return reportId;
                    };
                    Report2.prototype.getPages = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_8;
                        var _this = this;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.get("/report/pages", { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body.map(function(page) {
                                return new page_1.Page(_this, page.name, page.displayName, page.isActive, page.visibility, page.defaultSize, page.defaultDisplayOption, page.mobileSize, page.background, page.wallpaper);
                              })];
                            case 3:
                              response_8 = _a.sent();
                              throw response_8.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.getPageByName = function(pageName) {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, page, response_9;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.get("/report/pages", { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              page = response.body.find(function(p) {
                                return p.name === pageName;
                              });
                              if (!page) {
                                return [2, Promise.reject(powerbi_models_1.CommonErrorCodes.NotFound)];
                              }
                              return [2, new page_1.Page(this, page.name, page.displayName, page.isActive, page.visibility, page.defaultSize, page.defaultDisplayOption, page.mobileSize, page.background, page.wallpaper)];
                            case 3:
                              response_9 = _a.sent();
                              throw response_9.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.getActivePage = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, activePage, response_10;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.get("/report/pages", { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              activePage = response.body.find(function(page) {
                                return page.isActive;
                              });
                              return [2, new page_1.Page(this, activePage.name, activePage.displayName, activePage.isActive, activePage.visibility, activePage.defaultSize, activePage.defaultDisplayOption, activePage.mobileSize, activePage.background, activePage.wallpaper)];
                            case 3:
                              response_10 = _a.sent();
                              throw response_10.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.page = function(name, displayName, isActive, visibility) {
                      return new page_1.Page(this, name, displayName, isActive, visibility);
                    };
                    Report2.prototype.print = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_11;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post("/report/print", null, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              response_11 = _a.sent();
                              throw response_11.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.setPage = function(pageName) {
                      return __awaiter(this, void 0, void 0, function() {
                        var page, response_12;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              page = {
                                name: pageName,
                                displayName: null,
                                isActive: true
                              };
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.put("/report/pages/active", page, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              return [2, _a.sent()];
                            case 3:
                              response_12 = _a.sent();
                              throw response_12.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.updateSettings = function(settings) {
                      var _a, _b;
                      return __awaiter(this, void 0, void 0, function() {
                        var response, extension, extensionsArray, response_13;
                        var _this = this;
                        return __generator(this, function(_c) {
                          switch (_c.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl) && settings.customLayout != null) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _c.label = 1;
                            case 1:
                              _c.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.patch("/report/settings", settings, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _c.sent();
                              extension = settings === null || settings === void 0 ? void 0 : settings.extensions;
                              this.commands = (_a = extension === null || extension === void 0 ? void 0 : extension.commands) !== null && _a !== void 0 ? _a : this.commands;
                              this.groups = (_b = extension === null || extension === void 0 ? void 0 : extension.groups) !== null && _b !== void 0 ? _b : this.groups;
                              extensionsArray = settings === null || settings === void 0 ? void 0 : settings.extensions;
                              if (Array.isArray(extensionsArray)) {
                                this.commands = [];
                                extensionsArray.map(function(extensionElement) {
                                  if (extensionElement === null || extensionElement === void 0 ? void 0 : extensionElement.command) {
                                    _this.commands.push(extensionElement.command);
                                  }
                                });
                              }
                              return [2, response];
                            case 3:
                              response_13 = _c.sent();
                              throw response_13.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.validate = function(config) {
                      if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                        return (0, powerbi_models_1.validatePaginatedReportLoad)(config);
                      }
                      return (0, powerbi_models_1.validateReportLoad)(config);
                    };
                    Report2.prototype.configChanged = function(isBootstrap) {
                      var config = this.config;
                      if (this.isMobileSettings(config.settings)) {
                        config.embedUrl = (0, util_1.addParamToUrl)(config.embedUrl, "isMobile", "true");
                      }
                      var filterPaneEnabledAttribute = this.element.getAttribute(Report2.filterPaneEnabledAttribute);
                      var navContentPaneEnabledAttribute = this.element.getAttribute(Report2.navContentPaneEnabledAttribute);
                      var elementAttrSettings = {
                        filterPaneEnabled: filterPaneEnabledAttribute == null ? void 0 : filterPaneEnabledAttribute !== "false",
                        navContentPaneEnabled: navContentPaneEnabledAttribute == null ? void 0 : navContentPaneEnabledAttribute !== "false"
                      };
                      this.config.settings = (0, util_1.assign)({}, elementAttrSettings, config.settings);
                      if (isBootstrap) {
                        return;
                      }
                      config.id = this.getId();
                    };
                    Report2.prototype.getDefaultEmbedUrlEndpoint = function() {
                      return "reportEmbed";
                    };
                    Report2.prototype.switchMode = function(viewMode) {
                      return __awaiter(this, void 0, void 0, function() {
                        var newMode, url, response, response_14;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if (typeof viewMode === "string") {
                                newMode = viewMode;
                              } else {
                                newMode = this.viewModeToString(viewMode);
                              }
                              url = "/report/switchMode/" + newMode;
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post(url, null, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              response_14 = _a.sent();
                              throw response_14.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.refresh = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_15;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post("/report/refresh", null, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              response_15 = _a.sent();
                              throw response_15.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.isSaved = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              return [4, (0, util_1.isSavedInternal)(this.service.hpm, this.config.uniqueId, this.iframe.contentWindow)];
                            case 1:
                              return [2, _a.sent()];
                          }
                        });
                      });
                    };
                    Report2.prototype.applyTheme = function(theme) {
                      return __awaiter(this, void 0, void 0, function() {
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              return [4, this.applyThemeInternal(theme)];
                            case 1:
                              return [2, _a.sent()];
                          }
                        });
                      });
                    };
                    Report2.prototype.resetTheme = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              return [4, this.applyThemeInternal({})];
                            case 1:
                              return [2, _a.sent()];
                          }
                        });
                      });
                    };
                    Report2.prototype.getTheme = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_16;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.get("/report/theme", { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              response_16 = _a.sent();
                              throw response_16.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.resetPersistentFilters = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response_17;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.service.hpm.delete("/report/userState", null, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 1:
                              return [2, _a.sent()];
                            case 2:
                              response_17 = _a.sent();
                              throw response_17.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.savePersistentFilters = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response_18;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.service.hpm.post("/report/userState", null, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 1:
                              return [2, _a.sent()];
                            case 2:
                              response_18 = _a.sent();
                              throw response_18.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.arePersistentFiltersApplied = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_19;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.service.hpm.get("/report/isUserStateApplied", { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 1:
                              response = _a.sent();
                              return [2, response.body];
                            case 2:
                              response_19 = _a.sent();
                              throw response_19.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.removeContextMenuCommand = function(commandName, contextMenuTitle) {
                      return __awaiter(this, void 0, void 0, function() {
                        var commandCopy, indexOfCommand, newSetting;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              commandCopy = JSON.parse(JSON.stringify(this.commands));
                              indexOfCommand = this.findCommandMenuIndex("visualContextMenu", commandCopy, commandName, contextMenuTitle);
                              if (indexOfCommand === -1) {
                                throw powerbi_models_1.CommonErrorCodes.NotFound;
                              }
                              delete commandCopy[indexOfCommand].extend.visualContextMenu;
                              newSetting = {
                                extensions: {
                                  commands: commandCopy,
                                  groups: this.groups
                                }
                              };
                              return [4, this.updateSettings(newSetting)];
                            case 1:
                              return [2, _a.sent()];
                          }
                        });
                      });
                    };
                    Report2.prototype.addContextMenuCommand = function(commandName, commandTitle, contextMenuTitle, menuLocation, visualName, visualType, groupName) {
                      if (contextMenuTitle === void 0) {
                        contextMenuTitle = commandTitle;
                      }
                      if (menuLocation === void 0) {
                        menuLocation = powerbi_models_1.MenuLocation.Bottom;
                      }
                      if (visualName === void 0) {
                        visualName = void 0;
                      }
                      if (groupName === void 0) {
                        groupName = void 0;
                      }
                      return __awaiter(this, void 0, void 0, function() {
                        var newCommands, newSetting;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              newCommands = this.createMenuCommand("visualContextMenu", commandName, commandTitle, contextMenuTitle, menuLocation, visualName, visualType, groupName);
                              newSetting = {
                                extensions: {
                                  commands: newCommands,
                                  groups: this.groups
                                }
                              };
                              return [4, this.updateSettings(newSetting)];
                            case 1:
                              return [2, _a.sent()];
                          }
                        });
                      });
                    };
                    Report2.prototype.removeOptionsMenuCommand = function(commandName, optionsMenuTitle) {
                      return __awaiter(this, void 0, void 0, function() {
                        var commandCopy, indexOfCommand, newSetting;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              commandCopy = JSON.parse(JSON.stringify(this.commands));
                              indexOfCommand = this.findCommandMenuIndex("visualOptionsMenu", commandCopy, commandName, optionsMenuTitle);
                              if (indexOfCommand === -1) {
                                throw powerbi_models_1.CommonErrorCodes.NotFound;
                              }
                              delete commandCopy[indexOfCommand].extend.visualOptionsMenu;
                              delete commandCopy[indexOfCommand].icon;
                              newSetting = {
                                extensions: {
                                  commands: commandCopy,
                                  groups: this.groups
                                }
                              };
                              return [4, this.updateSettings(newSetting)];
                            case 1:
                              return [2, _a.sent()];
                          }
                        });
                      });
                    };
                    Report2.prototype.addOptionsMenuCommand = function(commandName, commandTitle, optionsMenuTitle, menuLocation, visualName, visualType, groupName, commandIcon) {
                      if (optionsMenuTitle === void 0) {
                        optionsMenuTitle = commandTitle;
                      }
                      if (menuLocation === void 0) {
                        menuLocation = powerbi_models_1.MenuLocation.Bottom;
                      }
                      if (visualName === void 0) {
                        visualName = void 0;
                      }
                      if (visualType === void 0) {
                        visualType = void 0;
                      }
                      if (groupName === void 0) {
                        groupName = void 0;
                      }
                      if (commandIcon === void 0) {
                        commandIcon = void 0;
                      }
                      return __awaiter(this, void 0, void 0, function() {
                        var newCommands, newSetting;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              newCommands = this.createMenuCommand("visualOptionsMenu", commandName, commandTitle, optionsMenuTitle, menuLocation, visualName, visualType, groupName, commandIcon);
                              newSetting = {
                                extensions: {
                                  commands: newCommands,
                                  groups: this.groups
                                }
                              };
                              return [4, this.updateSettings(newSetting)];
                            case 1:
                              return [2, _a.sent()];
                          }
                        });
                      });
                    };
                    Report2.prototype.setVisualDisplayState = function(pageName, visualName, displayState) {
                      return __awaiter(this, void 0, void 0, function() {
                        var visualLayout, newSettings;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              return [4, this.validateVisual(pageName, visualName)];
                            case 1:
                              _a.sent();
                              visualLayout = {
                                displayState: {
                                  mode: displayState
                                }
                              };
                              newSettings = this.buildLayoutSettingsObject(pageName, visualName, visualLayout);
                              return [2, this.updateSettings(newSettings)];
                          }
                        });
                      });
                    };
                    Report2.prototype.resizeVisual = function(pageName, visualName, width, height) {
                      return __awaiter(this, void 0, void 0, function() {
                        var visualLayout, newSettings;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              return [4, this.validateVisual(pageName, visualName)];
                            case 1:
                              _a.sent();
                              visualLayout = {
                                width,
                                height
                              };
                              newSettings = this.buildLayoutSettingsObject(pageName, visualName, visualLayout);
                              return [2, this.updateSettings(newSettings)];
                          }
                        });
                      });
                    };
                    Report2.prototype.resizeActivePage = function(pageSizeType, width, height) {
                      return __awaiter(this, void 0, void 0, function() {
                        var pageSize, newSettings;
                        return __generator(this, function(_a) {
                          pageSize = {
                            type: pageSizeType,
                            width,
                            height
                          };
                          newSettings = {
                            layoutType: powerbi_models_1.LayoutType.Custom,
                            customLayout: {
                              pageSize
                            }
                          };
                          return [2, this.updateSettings(newSettings)];
                        });
                      });
                    };
                    Report2.prototype.moveVisual = function(pageName, visualName, x, y, z) {
                      return __awaiter(this, void 0, void 0, function() {
                        var visualLayout, newSettings;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              return [4, this.validateVisual(pageName, visualName)];
                            case 1:
                              _a.sent();
                              visualLayout = {
                                x,
                                y,
                                z
                              };
                              newSettings = this.buildLayoutSettingsObject(pageName, visualName, visualLayout);
                              return [2, this.updateSettings(newSettings)];
                          }
                        });
                      });
                    };
                    Report2.prototype.switchLayout = function(layoutType) {
                      return __awaiter(this, void 0, void 0, function() {
                        var isInitialMobileSettings, isPassedMobileSettings, newSetting, response;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              isInitialMobileSettings = this.isMobileSettings({ layoutType: this.initialLayoutType });
                              isPassedMobileSettings = this.isMobileSettings({ layoutType });
                              if (isInitialMobileSettings !== isPassedMobileSettings) {
                                throw "Switching between mobile and desktop layouts is not supported. Please reset the embed container and re-embed with required layout.";
                              }
                              newSetting = {
                                layoutType
                              };
                              return [4, this.updateSettings(newSetting)];
                            case 1:
                              response = _a.sent();
                              this.initialLayoutType = layoutType;
                              return [2, response];
                          }
                        });
                      });
                    };
                    Report2.prototype.createMenuCommand = function(type, commandName, commandTitle, menuTitle, menuLocation, visualName, visualType, groupName, icon) {
                      var newCommandObj = {
                        name: commandName,
                        title: commandTitle,
                        extend: {}
                      };
                      newCommandObj.extend[type] = {
                        title: menuTitle,
                        menuLocation
                      };
                      if (type === "visualOptionsMenu") {
                        newCommandObj.icon = icon;
                      }
                      if (groupName) {
                        var extend = newCommandObj.extend[type];
                        delete extend.menuLocation;
                        var groupExtend = newCommandObj.extend[type];
                        groupExtend.groupName = groupName;
                      }
                      if (visualName) {
                        newCommandObj.selector = {
                          $schema: "http://powerbi.com/product/schema#visualSelector",
                          visualName
                        };
                      }
                      if (visualType) {
                        newCommandObj.selector = {
                          $schema: "http://powerbi.com/product/schema#visualTypeSelector",
                          visualType
                        };
                      }
                      return __spreadArray(__spreadArray([], this.commands, true), [newCommandObj], false);
                    };
                    Report2.prototype.findCommandMenuIndex = function(type, commands, commandName, menuTitle) {
                      var indexOfCommand = -1;
                      commands.some(function(activeMenuCommand, index) {
                        return activeMenuCommand.name === commandName && activeMenuCommand.extend[type] && activeMenuCommand.extend[type].title === menuTitle ? (indexOfCommand = index, true) : false;
                      });
                      return indexOfCommand;
                    };
                    Report2.prototype.buildLayoutSettingsObject = function(pageName, visualName, visualLayout) {
                      var newSettings = {
                        layoutType: powerbi_models_1.LayoutType.Custom,
                        customLayout: {
                          pagesLayout: {}
                        }
                      };
                      newSettings.customLayout.pagesLayout[pageName] = {
                        visualsLayout: {}
                      };
                      newSettings.customLayout.pagesLayout[pageName].visualsLayout[visualName] = visualLayout;
                      return newSettings;
                    };
                    Report2.prototype.validateVisual = function(pageName, visualName) {
                      return __awaiter(this, void 0, void 0, function() {
                        var page;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              return [4, this.getPageByName(pageName)];
                            case 1:
                              page = _a.sent();
                              return [4, page.getVisualByName(visualName)];
                            case 2:
                              return [2, _a.sent()];
                          }
                        });
                      });
                    };
                    Report2.prototype.applyThemeInternal = function(theme) {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_20;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.service.hpm.put("/report/theme", theme, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 1:
                              response = _a.sent();
                              return [2, response.body];
                            case 2:
                              response_20 = _a.sent();
                              throw response_20.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.viewModeToString = function(viewMode) {
                      var mode;
                      switch (viewMode) {
                        case powerbi_models_1.ViewMode.Edit:
                          mode = "edit";
                          break;
                        case powerbi_models_1.ViewMode.View:
                          mode = "view";
                          break;
                      }
                      return mode;
                    };
                    Report2.prototype.isMobileSettings = function(settings) {
                      return settings && (settings.layoutType === powerbi_models_1.LayoutType.MobileLandscape || settings.layoutType === powerbi_models_1.LayoutType.MobilePortrait);
                    };
                    Report2.prototype.getZoom = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_21;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.service.hpm.get("/report/zoom", { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 1:
                              response = _a.sent();
                              return [2, response.body];
                            case 2:
                              response_21 = _a.sent();
                              throw response_21.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.setZoom = function(zoomLevel) {
                      return __awaiter(this, void 0, void 0, function() {
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              return [4, this.updateSettings({ zoomLevel })];
                            case 1:
                              _a.sent();
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.closeAllOverlays = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, error_1;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post("/report/closeAllOverlays", null, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              error_1 = _a.sent();
                              return [2, Promise.reject(error_1)];
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.prototype.clearSelectedVisuals = function(clearPopOutState) {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, error_2;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              clearPopOutState = clearPopOutState === true;
                              if ((0, util_1.isRDLEmbed)(this.config.embedUrl)) {
                                return [2, Promise.reject(errors_1.APINotSupportedForRDLError)];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post("/report/clearSelectedVisuals/".concat(clearPopOutState.toString()), null, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              error_2 = _a.sent();
                              return [2, Promise.reject(error_2)];
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Report2.allowedEvents = ["filtersApplied", "pageChanged", "commandTriggered", "swipeStart", "swipeEnd", "bookmarkApplied", "dataHyperlinkClicked", "visualRendered", "visualClicked", "selectionChanged", "renderingStarted", "blur"];
                    Report2.reportIdAttribute = "powerbi-report-id";
                    Report2.filterPaneEnabledAttribute = "powerbi-settings-filter-pane-enabled";
                    Report2.navContentPaneEnabledAttribute = "powerbi-settings-nav-content-pane-enabled";
                    Report2.typeAttribute = "powerbi-type";
                    Report2.type = "Report";
                    return Report2;
                  }(embed_1.Embed)
                );
                exports2.Report = Report;
              }
            ),
            /***/
            "./src/service.ts": (
              /*!************************!*\
                !*** ./src/service.ts ***!
                \************************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __assign = this && this.__assign || function() {
                  __assign = Object.assign || function(t) {
                    for (var s, i = 1, n = arguments.length; i < n; i++) {
                      s = arguments[i];
                      for (var p in s)
                        if (Object.prototype.hasOwnProperty.call(s, p))
                          t[p] = s[p];
                    }
                    return t;
                  };
                  return __assign.apply(this, arguments);
                };
                var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
                  function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                      resolve(value);
                    });
                  }
                  return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                      try {
                        step(generator.next(value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function rejected(value) {
                      try {
                        step(generator["throw"](value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function step(result) {
                      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                  });
                };
                var __generator = this && this.__generator || function(thisArg, body) {
                  var _ = { label: 0, sent: function() {
                    if (t[0] & 1)
                      throw t[1];
                    return t[1];
                  }, trys: [], ops: [] }, f, y, t, g;
                  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                  }), g;
                  function verb(n) {
                    return function(v) {
                      return step([n, v]);
                    };
                  }
                  function step(op) {
                    if (f)
                      throw new TypeError("Generator is already executing.");
                    while (_)
                      try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
                          return t;
                        if (y = 0, t)
                          op = [op[0] & 2, t.value];
                        switch (op[0]) {
                          case 0:
                          case 1:
                            t = op;
                            break;
                          case 4:
                            _.label++;
                            return { value: op[1], done: false };
                          case 5:
                            _.label++;
                            y = op[1];
                            op = [0];
                            continue;
                          case 7:
                            op = _.ops.pop();
                            _.trys.pop();
                            continue;
                          default:
                            if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                              _ = 0;
                              continue;
                            }
                            if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                              _.label = op[1];
                              break;
                            }
                            if (op[0] === 6 && _.label < t[1]) {
                              _.label = t[1];
                              t = op;
                              break;
                            }
                            if (t && _.label < t[2]) {
                              _.label = t[2];
                              _.ops.push(op);
                              break;
                            }
                            if (t[2])
                              _.ops.pop();
                            _.trys.pop();
                            continue;
                        }
                        op = body.call(thisArg, _);
                      } catch (e) {
                        op = [6, e];
                        y = 0;
                      } finally {
                        f = t = 0;
                      }
                    if (op[0] & 5)
                      throw op[1];
                    return { value: op[0] ? op[1] : void 0, done: true };
                  }
                };
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.Service = void 0;
                var embed_1 = __webpack_require__2(
                  /*! ./embed */
                  "./src/embed.ts"
                );
                var report_1 = __webpack_require__2(
                  /*! ./report */
                  "./src/report.ts"
                );
                var create_1 = __webpack_require__2(
                  /*! ./create */
                  "./src/create.ts"
                );
                var dashboard_1 = __webpack_require__2(
                  /*! ./dashboard */
                  "./src/dashboard.ts"
                );
                var tile_1 = __webpack_require__2(
                  /*! ./tile */
                  "./src/tile.ts"
                );
                var page_1 = __webpack_require__2(
                  /*! ./page */
                  "./src/page.ts"
                );
                var qna_1 = __webpack_require__2(
                  /*! ./qna */
                  "./src/qna.ts"
                );
                var visual_1 = __webpack_require__2(
                  /*! ./visual */
                  "./src/visual.ts"
                );
                var utils = __webpack_require__2(
                  /*! ./util */
                  "./src/util.ts"
                );
                var quickCreate_1 = __webpack_require__2(
                  /*! ./quickCreate */
                  "./src/quickCreate.ts"
                );
                var sdkConfig = __webpack_require__2(
                  /*! ./config */
                  "./src/config.ts"
                );
                var errors_1 = __webpack_require__2(
                  /*! ./errors */
                  "./src/errors.ts"
                );
                var Service = (
                  /** @class */
                  function() {
                    function Service2(hpmFactory, wpmpFactory, routerFactory, config) {
                      if (config === void 0) {
                        config = {};
                      }
                      var _this = this;
                      this.registeredComponents = {};
                      this.wpmp = wpmpFactory(config.wpmpName, config.logMessages);
                      this.hpm = hpmFactory(this.wpmp, null, config.version, config.type, config.sdkWrapperVersion);
                      this.router = routerFactory(this.wpmp);
                      this.uniqueSessionId = utils.generateUUID();
                      this.router.post("/reports/:uniqueId/events/:eventName", function(req, _res) {
                        var event = {
                          type: "report",
                          id: req.params.uniqueId,
                          name: req.params.eventName,
                          value: req.body
                        };
                        _this.handleEvent(event);
                      });
                      this.router.post("/reports/:uniqueId/pages/:pageName/events/:eventName", function(req, _res) {
                        var event = {
                          type: "report",
                          id: req.params.uniqueId,
                          name: req.params.eventName,
                          value: req.body
                        };
                        _this.handleEvent(event);
                      });
                      this.router.post("/reports/:uniqueId/pages/:pageName/visuals/:visualName/events/:eventName", function(req, _res) {
                        var event = {
                          type: "report",
                          id: req.params.uniqueId,
                          name: req.params.eventName,
                          value: req.body
                        };
                        _this.handleEvent(event);
                      });
                      this.router.post("/dashboards/:uniqueId/events/:eventName", function(req, _res) {
                        var event = {
                          type: "dashboard",
                          id: req.params.uniqueId,
                          name: req.params.eventName,
                          value: req.body
                        };
                        _this.handleEvent(event);
                      });
                      this.router.post("/tile/:uniqueId/events/:eventName", function(req, _res) {
                        var event = {
                          type: "tile",
                          id: req.params.uniqueId,
                          name: req.params.eventName,
                          value: req.body
                        };
                        _this.handleEvent(event);
                      });
                      this.router.post("/qna/:uniqueId/events/:eventName", function(req, _res) {
                        var event = {
                          type: "qna",
                          id: req.params.uniqueId,
                          name: req.params.eventName,
                          value: req.body
                        };
                        _this.handleEvent(event);
                      });
                      this.router.post("/ready/:uniqueId", function(req, _res) {
                        var event = {
                          type: "report",
                          id: req.params.uniqueId,
                          name: "ready",
                          value: req.body
                        };
                        _this.handleEvent(event);
                      });
                      this.embeds = [];
                      this.config = utils.assign({}, Service2.defaultConfig, config);
                      if (this.config.autoEmbedOnContentLoaded) {
                        this.enableAutoEmbed();
                      }
                    }
                    Service2.prototype.createReport = function(element, config) {
                      config.type = "create";
                      var powerBiElement = element;
                      var component = new create_1.Create(this, powerBiElement, config);
                      powerBiElement.powerBiEmbed = component;
                      this.addOrOverwriteEmbed(component, element);
                      return component;
                    };
                    Service2.prototype.quickCreate = function(element, config) {
                      config.type = "quickCreate";
                      var powerBiElement = element;
                      var component = new quickCreate_1.QuickCreate(this, powerBiElement, config);
                      powerBiElement.powerBiEmbed = component;
                      this.addOrOverwriteEmbed(component, element);
                      return component;
                    };
                    Service2.prototype.init = function(container, config) {
                      var _this = this;
                      if (config === void 0) {
                        config = void 0;
                      }
                      container = container && container instanceof HTMLElement ? container : document.body;
                      var elements = Array.prototype.slice.call(container.querySelectorAll("[".concat(embed_1.Embed.embedUrlAttribute, "]")));
                      return elements.map(function(element) {
                        return _this.embed(element, config);
                      });
                    };
                    Service2.prototype.embed = function(element, config) {
                      if (config === void 0) {
                        config = {};
                      }
                      return this.embedInternal(element, config);
                    };
                    Service2.prototype.load = function(element, config) {
                      if (config === void 0) {
                        config = {};
                      }
                      return this.embedInternal(
                        element,
                        config,
                        /* phasedRender */
                        true,
                        /* isBootstrap */
                        false
                      );
                    };
                    Service2.prototype.bootstrap = function(element, config) {
                      return this.embedInternal(
                        element,
                        config,
                        /* phasedRender */
                        false,
                        /* isBootstrap */
                        true
                      );
                    };
                    Service2.prototype.embedInternal = function(element, config, phasedRender, isBootstrap) {
                      if (config === void 0) {
                        config = {};
                      }
                      var component;
                      var powerBiElement = element;
                      if (powerBiElement.powerBiEmbed) {
                        if (isBootstrap) {
                          throw new Error("Attempted to bootstrap element ".concat(element.outerHTML, ", but the element is already a powerbi element."));
                        }
                        component = this.embedExisting(powerBiElement, config, phasedRender);
                      } else {
                        component = this.embedNew(powerBiElement, config, phasedRender, isBootstrap);
                      }
                      return component;
                    };
                    Service2.prototype.getNumberOfComponents = function() {
                      if (!this.embeds) {
                        return 0;
                      }
                      return this.embeds.length;
                    };
                    Service2.prototype.getSdkSessionId = function() {
                      return this.uniqueSessionId;
                    };
                    Service2.prototype.getSDKVersion = function() {
                      return sdkConfig.default.version;
                    };
                    Service2.prototype.embedNew = function(element, config, phasedRender, isBootstrap) {
                      var componentType = config.type || element.getAttribute(embed_1.Embed.typeAttribute);
                      if (!componentType) {
                        var scrubbedConfig = __assign(__assign({}, config), { accessToken: "" });
                        throw new Error("Attempted to embed using config ".concat(JSON.stringify(scrubbedConfig), " on element ").concat(element.outerHTML, ", but could not determine what type of component to embed. You must specify a type in the configuration or as an attribute such as '").concat(embed_1.Embed.typeAttribute, '="').concat(report_1.Report.type.toLowerCase(), `"'.`));
                      }
                      config.type = componentType;
                      var component = this.createEmbedComponent(componentType, element, config, phasedRender, isBootstrap);
                      element.powerBiEmbed = component;
                      this.addOrOverwriteEmbed(component, element);
                      return component;
                    };
                    Service2.prototype.createEmbedComponent = function(componentType, element, config, phasedRender, isBootstrap) {
                      var Component2 = utils.find(function(embedComponent) {
                        return componentType === embedComponent.type.toLowerCase();
                      }, Service2.components);
                      if (Component2) {
                        return new Component2(this, element, config, phasedRender, isBootstrap);
                      }
                      var registeredComponent = utils.find(function(registeredComponentType) {
                        return componentType.toLowerCase() === registeredComponentType.toLowerCase();
                      }, Object.keys(this.registeredComponents));
                      if (!registeredComponent) {
                        throw new Error("Attempted to embed component of type: ".concat(componentType, " but did not find any matching component.  Please verify the type you specified is intended."));
                      }
                      return this.registeredComponents[registeredComponent](this, element, config, phasedRender, isBootstrap);
                    };
                    Service2.prototype.embedExisting = function(element, config, phasedRender) {
                      var component = utils.find(function(x) {
                        return x.element === element;
                      }, this.embeds);
                      if (!component) {
                        var scrubbedConfig = __assign(__assign({}, config), { accessToken: "" });
                        throw new Error("Attempted to embed using config ".concat(JSON.stringify(scrubbedConfig), " on element ").concat(element.outerHTML, " which already has embedded component associated, but could not find the existing component in the list of active components. This could indicate the embeds list is out of sync with the DOM, or the component is referencing the incorrect HTML element."));
                      }
                      if (config.type && config.type.toLowerCase() === "qna") {
                        return this.embedNew(element, config);
                      }
                      if (typeof config.type === "string" && config.type !== component.config.type) {
                        if (config.type === "report" && utils.isCreate(component.config.type)) {
                          var report = new report_1.Report(
                            this,
                            element,
                            config,
                            /* phasedRender */
                            false,
                            /* isBootstrap */
                            false,
                            element.powerBiEmbed.iframe
                          );
                          component.populateConfig(
                            config,
                            /* isBootstrap */
                            false
                          );
                          report.load();
                          element.powerBiEmbed = report;
                          this.addOrOverwriteEmbed(component, element);
                          return report;
                        }
                        var scrubbedConfig = __assign(__assign({}, config), { accessToken: "" });
                        throw new Error("Embedding on an existing element with a different type than the previous embed object is not supported.  Attempted to embed using config ".concat(JSON.stringify(scrubbedConfig), " on element ").concat(element.outerHTML, ", but the existing element contains an embed of type: ").concat(this.config.type, " which does not match the new type: ").concat(config.type));
                      }
                      component.populateConfig(
                        config,
                        /* isBootstrap */
                        false
                      );
                      component.load(phasedRender);
                      return component;
                    };
                    Service2.prototype.enableAutoEmbed = function() {
                      var _this = this;
                      window.addEventListener("DOMContentLoaded", function(_event) {
                        return _this.init(document.body);
                      }, false);
                    };
                    Service2.prototype.get = function(element) {
                      var powerBiElement = element;
                      if (!powerBiElement.powerBiEmbed) {
                        throw new Error("You attempted to get an instance of powerbi component associated with element: ".concat(element.outerHTML, " but there was no associated instance."));
                      }
                      return powerBiElement.powerBiEmbed;
                    };
                    Service2.prototype.find = function(uniqueId) {
                      return utils.find(function(x) {
                        return x.config.uniqueId === uniqueId;
                      }, this.embeds);
                    };
                    Service2.prototype.addOrOverwriteEmbed = function(component, element) {
                      this.embeds = this.embeds.filter(function(embed) {
                        return embed.element !== element;
                      });
                      this.embeds.push(component);
                    };
                    Service2.prototype.reset = function(element) {
                      var powerBiElement = element;
                      if (!powerBiElement.powerBiEmbed) {
                        return;
                      }
                      var embedElement = powerBiElement.powerBiEmbed;
                      if (embedElement.frontLoadHandler) {
                        embedElement.element.removeEventListener("ready", embedElement.frontLoadHandler, false);
                      }
                      embedElement.allowedEvents.forEach(function(eventName) {
                        embedElement.off(eventName);
                      });
                      utils.remove(function(x) {
                        return x === powerBiElement.powerBiEmbed;
                      }, this.embeds);
                      delete powerBiElement.powerBiEmbed;
                      var iframe = element.querySelector("iframe");
                      if (iframe) {
                        if (iframe.remove !== void 0) {
                          iframe.remove();
                        } else {
                          iframe.parentElement.removeChild(iframe);
                        }
                      }
                    };
                    Service2.prototype.handleTileEvents = function(event) {
                      if (event.type === "tile") {
                        this.handleEvent(event);
                      }
                    };
                    Service2.prototype.invokeSDKHook = function(hook, req, res) {
                      return __awaiter(this, void 0, void 0, function() {
                        var result, error_1;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              if (!hook) {
                                res.send(404, null);
                                return [
                                  2
                                  /*return*/
                                ];
                              }
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, hook(req.body)];
                            case 2:
                              result = _a.sent();
                              res.send(200, result);
                              return [3, 4];
                            case 3:
                              error_1 = _a.sent();
                              res.send(400, null);
                              console.error(error_1);
                              return [3, 4];
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Service2.prototype.handleEvent = function(event) {
                      var embed = utils.find(function(embed2) {
                        return embed2.config.uniqueId === event.id;
                      }, this.embeds);
                      if (embed) {
                        var value = event.value;
                        if (event.name === "pageChanged") {
                          var pageKey = "newPage";
                          var page = value[pageKey];
                          if (!page) {
                            throw new Error("Page model not found at 'event.value.".concat(pageKey, "'."));
                          }
                          value[pageKey] = new page_1.Page(
                            embed,
                            page.name,
                            page.displayName,
                            true
                            /* isActive */
                          );
                        }
                        utils.raiseCustomEvent(embed.element, event.name, value);
                      }
                    };
                    Service2.prototype.preload = function(config, element) {
                      if (!utils.validateEmbedUrl(config.embedUrl)) {
                        throw new Error(errors_1.invalidEmbedUrlErrorMessage);
                      }
                      var iframeContent = document.createElement("iframe");
                      iframeContent.setAttribute("style", "display:none;");
                      iframeContent.setAttribute("src", config.embedUrl);
                      iframeContent.setAttribute("scrolling", "no");
                      iframeContent.setAttribute("allowfullscreen", "false");
                      var node = element;
                      if (!node) {
                        node = document.getElementsByTagName("body")[0];
                      }
                      node.appendChild(iframeContent);
                      iframeContent.onload = function() {
                        utils.raiseCustomEvent(iframeContent, "preloaded", {});
                      };
                      return iframeContent;
                    };
                    Service2.prototype.setSdkInfo = function(type, version) {
                      this.hpm.defaultHeaders["x-sdk-type"] = type;
                      this.hpm.defaultHeaders["x-sdk-wrapper-version"] = version;
                    };
                    Service2.prototype.register = function(componentType, embedComponentFactory, routerEventUrls) {
                      var _this = this;
                      if (utils.find(function(embedComponent) {
                        return componentType.toLowerCase() === embedComponent.type.toLowerCase();
                      }, Service2.components)) {
                        throw new Error("The component name is reserved. Cannot register a component with this name.");
                      }
                      if (utils.find(function(registeredComponentType) {
                        return componentType.toLowerCase() === registeredComponentType.toLowerCase();
                      }, Object.keys(this.registeredComponents))) {
                        throw new Error("A component with this type is already registered.");
                      }
                      this.registeredComponents[componentType] = embedComponentFactory;
                      routerEventUrls.forEach(function(url) {
                        if (!url.includes(":uniqueId") || !url.includes(":eventName")) {
                          throw new Error("Invalid router event URL");
                        }
                        _this.router.post(url, function(req, _res) {
                          var event = {
                            type: componentType,
                            id: req.params.uniqueId,
                            name: req.params.eventName,
                            value: req.body
                          };
                          _this.handleEvent(event);
                        });
                      });
                    };
                    Service2.components = [
                      tile_1.Tile,
                      report_1.Report,
                      dashboard_1.Dashboard,
                      qna_1.Qna,
                      visual_1.Visual
                    ];
                    Service2.defaultConfig = {
                      autoEmbedOnContentLoaded: false,
                      onError: function() {
                        var args = [];
                        for (var _i = 0; _i < arguments.length; _i++) {
                          args[_i] = arguments[_i];
                        }
                        return console.log(args[0], args.slice(1));
                      }
                    };
                    return Service2;
                  }()
                );
                exports2.Service = Service;
              }
            ),
            /***/
            "./src/tile.ts": (
              /*!*********************!*\
                !*** ./src/tile.ts ***!
                \*********************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __extends = this && this.__extends || /* @__PURE__ */ function() {
                  var extendStatics = function(d, b) {
                    extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                      d2.__proto__ = b2;
                    } || function(d2, b2) {
                      for (var p in b2)
                        if (Object.prototype.hasOwnProperty.call(b2, p))
                          d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                  };
                  return function(d, b) {
                    if (typeof b !== "function" && b !== null)
                      throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                      this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                  };
                }();
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.Tile = void 0;
                var powerbi_models_1 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var embed_1 = __webpack_require__2(
                  /*! ./embed */
                  "./src/embed.ts"
                );
                var Tile = (
                  /** @class */
                  function(_super) {
                    __extends(Tile2, _super);
                    function Tile2(service2, element, baseConfig, phasedRender, isBootstrap) {
                      var _this = this;
                      var config = baseConfig;
                      _this = _super.call(
                        this,
                        service2,
                        element,
                        config,
                        /* iframe */
                        void 0,
                        phasedRender,
                        isBootstrap
                      ) || this;
                      _this.loadPath = "/tile/load";
                      Array.prototype.push.apply(_this.allowedEvents, Tile2.allowedEvents);
                      return _this;
                    }
                    Tile2.prototype.getId = function() {
                      var config = this.config;
                      var tileId = config.id || Tile2.findIdFromEmbedUrl(this.config.embedUrl);
                      if (typeof tileId !== "string" || tileId.length === 0) {
                        throw new Error("Tile id is required, but it was not found. You must provide an id either as part of embed configuration.");
                      }
                      return tileId;
                    };
                    Tile2.prototype.validate = function(config) {
                      var embedConfig = config;
                      return (0, powerbi_models_1.validateTileLoad)(embedConfig);
                    };
                    Tile2.prototype.configChanged = function(isBootstrap) {
                      if (isBootstrap) {
                        return;
                      }
                      this.config.id = this.getId();
                    };
                    Tile2.prototype.getDefaultEmbedUrlEndpoint = function() {
                      return "tileEmbed";
                    };
                    Tile2.findIdFromEmbedUrl = function(url) {
                      var tileIdRegEx = /tileId="?([^&]+)"?/;
                      var tileIdMatch = url.match(tileIdRegEx);
                      var tileId;
                      if (tileIdMatch) {
                        tileId = tileIdMatch[1];
                      }
                      return tileId;
                    };
                    Tile2.type = "Tile";
                    Tile2.allowedEvents = ["tileClicked", "tileLoaded"];
                    return Tile2;
                  }(embed_1.Embed)
                );
                exports2.Tile = Tile;
              }
            ),
            /***/
            "./src/util.ts": (
              /*!*********************!*\
                !*** ./src/util.ts ***!
                \*********************/
              /***/
              function(__unused_webpack_module, exports2) {
                var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
                  function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                      resolve(value);
                    });
                  }
                  return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                      try {
                        step(generator.next(value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function rejected(value) {
                      try {
                        step(generator["throw"](value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function step(result) {
                      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                  });
                };
                var __generator = this && this.__generator || function(thisArg, body) {
                  var _ = { label: 0, sent: function() {
                    if (t[0] & 1)
                      throw t[1];
                    return t[1];
                  }, trys: [], ops: [] }, f, y, t, g;
                  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                  }), g;
                  function verb(n) {
                    return function(v) {
                      return step([n, v]);
                    };
                  }
                  function step(op) {
                    if (f)
                      throw new TypeError("Generator is already executing.");
                    while (_)
                      try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
                          return t;
                        if (y = 0, t)
                          op = [op[0] & 2, t.value];
                        switch (op[0]) {
                          case 0:
                          case 1:
                            t = op;
                            break;
                          case 4:
                            _.label++;
                            return { value: op[1], done: false };
                          case 5:
                            _.label++;
                            y = op[1];
                            op = [0];
                            continue;
                          case 7:
                            op = _.ops.pop();
                            _.trys.pop();
                            continue;
                          default:
                            if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                              _ = 0;
                              continue;
                            }
                            if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                              _.label = op[1];
                              break;
                            }
                            if (op[0] === 6 && _.label < t[1]) {
                              _.label = t[1];
                              t = op;
                              break;
                            }
                            if (t && _.label < t[2]) {
                              _.label = t[2];
                              _.ops.push(op);
                              break;
                            }
                            if (t[2])
                              _.ops.pop();
                            _.trys.pop();
                            continue;
                        }
                        op = body.call(thisArg, _);
                      } catch (e) {
                        op = [6, e];
                        y = 0;
                      } finally {
                        f = t = 0;
                      }
                    if (op[0] & 5)
                      throw op[1];
                    return { value: op[0] ? op[1] : void 0, done: true };
                  }
                };
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.validateEmbedUrl = exports2.isCreate = exports2.getTimeDiffInMilliseconds = exports2.getRandomValue = exports2.autoAuthInEmbedUrl = exports2.isRDLEmbed = exports2.isSavedInternal = exports2.addParamToUrl = exports2.generateUUID = exports2.createRandomString = exports2.assign = exports2.remove = exports2.find = exports2.findIndex = exports2.raiseCustomEvent = void 0;
                var allowedPowerBiHostsRegex = new RegExp(/(.+\.powerbi\.com$)|(.+\.fabric\.microsoft\.com$)|(.+\.analysis\.windows-int\.net$)|(.+\.analysis-df\.windows\.net$)/);
                var allowedPowerBiHostsSovRegex = new RegExp(/^app\.powerbi\.cn$|^app(\.mil\.|\.high\.|\.)powerbigov\.us$|^app\.powerbi\.eaglex\.ic\.gov$|^app\.powerbi\.microsoft\.scloud$/);
                var expectedEmbedUrlProtocol = "https:";
                function raiseCustomEvent(element, eventName, eventData) {
                  var customEvent;
                  if (typeof CustomEvent === "function") {
                    customEvent = new CustomEvent(eventName, {
                      detail: eventData,
                      bubbles: true,
                      cancelable: true
                    });
                  } else {
                    customEvent = document.createEvent("CustomEvent");
                    customEvent.initCustomEvent(eventName, true, true, eventData);
                  }
                  element.dispatchEvent(customEvent);
                }
                exports2.raiseCustomEvent = raiseCustomEvent;
                function findIndex(predicate, xs) {
                  if (!Array.isArray(xs)) {
                    throw new Error("You attempted to call find with second parameter that was not an array. You passed: ".concat(xs));
                  }
                  var index;
                  xs.some(function(x, i) {
                    if (predicate(x)) {
                      index = i;
                      return true;
                    }
                  });
                  return index;
                }
                exports2.findIndex = findIndex;
                function find(predicate, xs) {
                  var index = findIndex(predicate, xs);
                  return xs[index];
                }
                exports2.find = find;
                function remove(predicate, xs) {
                  var index = findIndex(predicate, xs);
                  xs.splice(index, 1);
                }
                exports2.remove = remove;
                function assign() {
                  var args = [];
                  for (var _i = 0; _i < arguments.length; _i++) {
                    args[_i] = arguments[_i];
                  }
                  var target = args[0];
                  "use strict";
                  if (target === void 0 || target === null) {
                    throw new TypeError("Cannot convert undefined or null to object");
                  }
                  var output = Object(target);
                  for (var index = 1; index < arguments.length; index++) {
                    var source = arguments[index];
                    if (source !== void 0 && source !== null) {
                      for (var nextKey in source) {
                        if (source.hasOwnProperty(nextKey)) {
                          output[nextKey] = source[nextKey];
                        }
                      }
                    }
                  }
                  return output;
                }
                exports2.assign = assign;
                function createRandomString() {
                  return getRandomValue().toString(36).substring(1);
                }
                exports2.createRandomString = createRandomString;
                function generateUUID() {
                  var d = (/* @__PURE__ */ new Date()).getTime();
                  if (typeof performance !== "undefined" && typeof performance.now === "function") {
                    d += performance.now();
                  }
                  return "xxxxxxxxxxxxxxxxxxxx".replace(/[xy]/g, function(_c) {
                    var r = getRandomValue() % 16;
                    d >>= 4;
                    return r.toString(16);
                  });
                }
                exports2.generateUUID = generateUUID;
                function addParamToUrl(url, paramName, value) {
                  var parameterPrefix = url.indexOf("?") > 0 ? "&" : "?";
                  url += parameterPrefix + paramName + "=" + value;
                  return url;
                }
                exports2.addParamToUrl = addParamToUrl;
                function isSavedInternal(hpm, uid, contentWindow) {
                  return __awaiter(this, void 0, void 0, function() {
                    var response, response_1;
                    return __generator(this, function(_a) {
                      switch (_a.label) {
                        case 0:
                          _a.trys.push([0, 2, , 3]);
                          return [4, hpm.get("/report/hasUnsavedChanges", { uid }, contentWindow)];
                        case 1:
                          response = _a.sent();
                          return [2, !response.body];
                        case 2:
                          response_1 = _a.sent();
                          throw response_1.body;
                        case 3:
                          return [
                            2
                            /*return*/
                          ];
                      }
                    });
                  });
                }
                exports2.isSavedInternal = isSavedInternal;
                function isRDLEmbed(embedUrl) {
                  return embedUrl && embedUrl.toLowerCase().indexOf("/rdlembed?") >= 0;
                }
                exports2.isRDLEmbed = isRDLEmbed;
                function autoAuthInEmbedUrl(embedUrl) {
                  return embedUrl && decodeURIComponent(embedUrl).toLowerCase().indexOf("autoauth=true") >= 0;
                }
                exports2.autoAuthInEmbedUrl = autoAuthInEmbedUrl;
                function getRandomValue() {
                  var cryptoObj = window.crypto || window.msCrypto;
                  var randomValueArray = new Uint32Array(1);
                  cryptoObj.getRandomValues(randomValueArray);
                  return randomValueArray[0];
                }
                exports2.getRandomValue = getRandomValue;
                function getTimeDiffInMilliseconds(start, end) {
                  return Math.abs(start.getTime() - end.getTime());
                }
                exports2.getTimeDiffInMilliseconds = getTimeDiffInMilliseconds;
                function isCreate(embedType) {
                  return embedType === "create" || embedType === "quickcreate";
                }
                exports2.isCreate = isCreate;
                function validateEmbedUrl(embedUrl) {
                  if (embedUrl) {
                    var url = void 0;
                    try {
                      url = new URL(embedUrl.toLowerCase());
                    } catch (e) {
                      return false;
                    }
                    return url.protocol === expectedEmbedUrlProtocol && (allowedPowerBiHostsRegex.test(url.hostname) || allowedPowerBiHostsSovRegex.test(url.hostname));
                  }
                }
                exports2.validateEmbedUrl = validateEmbedUrl;
              }
            ),
            /***/
            "./src/visual.ts": (
              /*!***********************!*\
                !*** ./src/visual.ts ***!
                \***********************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __extends = this && this.__extends || /* @__PURE__ */ function() {
                  var extendStatics = function(d, b) {
                    extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
                      d2.__proto__ = b2;
                    } || function(d2, b2) {
                      for (var p in b2)
                        if (Object.prototype.hasOwnProperty.call(b2, p))
                          d2[p] = b2[p];
                    };
                    return extendStatics(d, b);
                  };
                  return function(d, b) {
                    if (typeof b !== "function" && b !== null)
                      throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                      this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                  };
                }();
                var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
                  function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                      resolve(value);
                    });
                  }
                  return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                      try {
                        step(generator.next(value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function rejected(value) {
                      try {
                        step(generator["throw"](value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function step(result) {
                      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                  });
                };
                var __generator = this && this.__generator || function(thisArg, body) {
                  var _ = { label: 0, sent: function() {
                    if (t[0] & 1)
                      throw t[1];
                    return t[1];
                  }, trys: [], ops: [] }, f, y, t, g;
                  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                  }), g;
                  function verb(n) {
                    return function(v) {
                      return step([n, v]);
                    };
                  }
                  function step(op) {
                    if (f)
                      throw new TypeError("Generator is already executing.");
                    while (_)
                      try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
                          return t;
                        if (y = 0, t)
                          op = [op[0] & 2, t.value];
                        switch (op[0]) {
                          case 0:
                          case 1:
                            t = op;
                            break;
                          case 4:
                            _.label++;
                            return { value: op[1], done: false };
                          case 5:
                            _.label++;
                            y = op[1];
                            op = [0];
                            continue;
                          case 7:
                            op = _.ops.pop();
                            _.trys.pop();
                            continue;
                          default:
                            if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                              _ = 0;
                              continue;
                            }
                            if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                              _.label = op[1];
                              break;
                            }
                            if (op[0] === 6 && _.label < t[1]) {
                              _.label = t[1];
                              t = op;
                              break;
                            }
                            if (t && _.label < t[2]) {
                              _.label = t[2];
                              _.ops.push(op);
                              break;
                            }
                            if (t[2])
                              _.ops.pop();
                            _.trys.pop();
                            continue;
                        }
                        op = body.call(thisArg, _);
                      } catch (e) {
                        op = [6, e];
                        y = 0;
                      } finally {
                        f = t = 0;
                      }
                    if (op[0] & 5)
                      throw op[1];
                    return { value: op[0] ? op[1] : void 0, done: true };
                  }
                };
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.Visual = void 0;
                var powerbi_models_1 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var report_1 = __webpack_require__2(
                  /*! ./report */
                  "./src/report.ts"
                );
                var visualDescriptor_1 = __webpack_require__2(
                  /*! ./visualDescriptor */
                  "./src/visualDescriptor.ts"
                );
                var Visual = (
                  /** @class */
                  function(_super) {
                    __extends(Visual2, _super);
                    function Visual2(service2, element, baseConfig, phasedRender, isBootstrap, iframe) {
                      return _super.call(this, service2, element, baseConfig, phasedRender, isBootstrap, iframe) || this;
                    }
                    Visual2.prototype.load = function(phasedRender) {
                      var config = this.config;
                      if (!config.accessToken) {
                        return;
                      }
                      if (typeof config.pageName !== "string" || config.pageName.length === 0) {
                        throw new Error("Page name is required when embedding a visual.");
                      }
                      if (typeof config.visualName !== "string" || config.visualName.length === 0) {
                        throw new Error("Visual name is required, but it was not found. You must provide a visual name as part of embed configuration.");
                      }
                      var width = config.width ? config.width : this.iframe.offsetWidth;
                      var height = config.height ? config.height : this.iframe.offsetHeight;
                      var pageSize = {
                        type: powerbi_models_1.PageSizeType.Custom,
                        width,
                        height
                      };
                      var pagesLayout = {};
                      pagesLayout[config.pageName] = {
                        defaultLayout: {
                          displayState: {
                            mode: powerbi_models_1.VisualContainerDisplayMode.Hidden
                          }
                        },
                        visualsLayout: {}
                      };
                      pagesLayout[config.pageName].visualsLayout[config.visualName] = {
                        displayState: {
                          mode: powerbi_models_1.VisualContainerDisplayMode.Visible
                        },
                        x: 1,
                        y: 1,
                        z: 1,
                        width: pageSize.width,
                        height: pageSize.height
                      };
                      config.settings = config.settings || {};
                      config.settings.filterPaneEnabled = false;
                      config.settings.navContentPaneEnabled = false;
                      config.settings.layoutType = powerbi_models_1.LayoutType.Custom;
                      config.settings.customLayout = {
                        displayOption: powerbi_models_1.DisplayOption.FitToPage,
                        pageSize,
                        pagesLayout
                      };
                      this.config = config;
                      return _super.prototype.load.call(this, phasedRender);
                    };
                    Visual2.prototype.getPages = function() {
                      throw Visual2.GetPagesNotSupportedError;
                    };
                    Visual2.prototype.setPage = function(_pageName) {
                      throw Visual2.SetPageNotSupportedError;
                    };
                    Visual2.prototype.render = function(_config) {
                      return __awaiter(this, void 0, void 0, function() {
                        return __generator(this, function(_a) {
                          throw Visual2.RenderNotSupportedError;
                        });
                      });
                    };
                    Visual2.prototype.getVisualDescriptor = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var config, response, embeddedVisuals, visualNotFoundError, embeddedVisual, currentPage, response_1;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              config = this.config;
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.get("/report/pages/".concat(config.pageName, "/visuals"), { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              embeddedVisuals = response.body.filter(function(pageVisual) {
                                return pageVisual.name === config.visualName;
                              });
                              if (embeddedVisuals.length === 0) {
                                visualNotFoundError = {
                                  message: "visualNotFound",
                                  detailedMessage: "Visual not found"
                                };
                                throw visualNotFoundError;
                              }
                              embeddedVisual = embeddedVisuals[0];
                              currentPage = this.page(config.pageName);
                              return [2, new visualDescriptor_1.VisualDescriptor(currentPage, embeddedVisual.name, embeddedVisual.title, embeddedVisual.type, embeddedVisual.layout)];
                            case 3:
                              response_1 = _a.sent();
                              throw response_1.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Visual2.prototype.getFilters = function(filtersLevel) {
                      return __awaiter(this, void 0, void 0, function() {
                        var url, response, response_2;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              url = this.getFiltersLevelUrl(filtersLevel);
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.get(url, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              response_2 = _a.sent();
                              throw response_2.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Visual2.prototype.updateFilters = function(operation, filters, filtersLevel) {
                      return __awaiter(this, void 0, void 0, function() {
                        var updateFiltersRequest, url, response_3;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              updateFiltersRequest = {
                                filtersOperation: operation,
                                filters
                              };
                              url = this.getFiltersLevelUrl(filtersLevel);
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.post(url, updateFiltersRequest, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              return [2, _a.sent()];
                            case 3:
                              response_3 = _a.sent();
                              throw response_3.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Visual2.prototype.setFilters = function(filters, filtersLevel) {
                      return __awaiter(this, void 0, void 0, function() {
                        var url, response_4;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              url = this.getFiltersLevelUrl(filtersLevel);
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.service.hpm.put(url, filters, { uid: this.config.uniqueId }, this.iframe.contentWindow)];
                            case 2:
                              return [2, _a.sent()];
                            case 3:
                              response_4 = _a.sent();
                              throw response_4.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    Visual2.prototype.removeFilters = function(filtersLevel) {
                      return __awaiter(this, void 0, void 0, function() {
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              return [4, this.updateFilters(powerbi_models_1.FiltersOperations.RemoveAll, void 0, filtersLevel)];
                            case 1:
                              return [2, _a.sent()];
                          }
                        });
                      });
                    };
                    Visual2.prototype.getFiltersLevelUrl = function(filtersLevel) {
                      var config = this.config;
                      switch (filtersLevel) {
                        case powerbi_models_1.FiltersLevel.Report:
                          return "/report/filters";
                        case powerbi_models_1.FiltersLevel.Page:
                          return "/report/pages/".concat(config.pageName, "/filters");
                        default:
                          return "/report/pages/".concat(config.pageName, "/visuals/").concat(config.visualName, "/filters");
                      }
                    };
                    Visual2.type = "visual";
                    Visual2.GetPagesNotSupportedError = "Get pages is not supported while embedding a visual.";
                    Visual2.SetPageNotSupportedError = "Set page is not supported while embedding a visual.";
                    Visual2.RenderNotSupportedError = "render is not supported while embedding a visual.";
                    return Visual2;
                  }(report_1.Report)
                );
                exports2.Visual = Visual;
              }
            ),
            /***/
            "./src/visualDescriptor.ts": (
              /*!*********************************!*\
                !*** ./src/visualDescriptor.ts ***!
                \*********************************/
              /***/
              function(__unused_webpack_module, exports2, __webpack_require__2) {
                var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
                  function adopt(value) {
                    return value instanceof P ? value : new P(function(resolve) {
                      resolve(value);
                    });
                  }
                  return new (P || (P = Promise))(function(resolve, reject) {
                    function fulfilled(value) {
                      try {
                        step(generator.next(value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function rejected(value) {
                      try {
                        step(generator["throw"](value));
                      } catch (e) {
                        reject(e);
                      }
                    }
                    function step(result) {
                      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                    }
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
                  });
                };
                var __generator = this && this.__generator || function(thisArg, body) {
                  var _ = { label: 0, sent: function() {
                    if (t[0] & 1)
                      throw t[1];
                    return t[1];
                  }, trys: [], ops: [] }, f, y, t, g;
                  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
                    return this;
                  }), g;
                  function verb(n) {
                    return function(v) {
                      return step([n, v]);
                    };
                  }
                  function step(op) {
                    if (f)
                      throw new TypeError("Generator is already executing.");
                    while (_)
                      try {
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
                          return t;
                        if (y = 0, t)
                          op = [op[0] & 2, t.value];
                        switch (op[0]) {
                          case 0:
                          case 1:
                            t = op;
                            break;
                          case 4:
                            _.label++;
                            return { value: op[1], done: false };
                          case 5:
                            _.label++;
                            y = op[1];
                            op = [0];
                            continue;
                          case 7:
                            op = _.ops.pop();
                            _.trys.pop();
                            continue;
                          default:
                            if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                              _ = 0;
                              continue;
                            }
                            if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                              _.label = op[1];
                              break;
                            }
                            if (op[0] === 6 && _.label < t[1]) {
                              _.label = t[1];
                              t = op;
                              break;
                            }
                            if (t && _.label < t[2]) {
                              _.label = t[2];
                              _.ops.push(op);
                              break;
                            }
                            if (t[2])
                              _.ops.pop();
                            _.trys.pop();
                            continue;
                        }
                        op = body.call(thisArg, _);
                      } catch (e) {
                        op = [6, e];
                        y = 0;
                      } finally {
                        f = t = 0;
                      }
                    if (op[0] & 5)
                      throw op[1];
                    return { value: op[0] ? op[1] : void 0, done: true };
                  }
                };
                Object.defineProperty(exports2, "__esModule", { value: true });
                exports2.VisualDescriptor = void 0;
                var powerbi_models_1 = __webpack_require__2(
                  /*! powerbi-models */
                  "./node_modules/powerbi-models/dist/models.js"
                );
                var VisualDescriptor = (
                  /** @class */
                  function() {
                    function VisualDescriptor2(page, name, title, type, layout) {
                      this.name = name;
                      this.title = title;
                      this.type = type;
                      this.layout = layout;
                      this.page = page;
                    }
                    VisualDescriptor2.prototype.getFilters = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_1;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.page.report.service.hpm.get("/report/pages/".concat(this.page.name, "/visuals/").concat(this.name, "/filters"), { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow)];
                            case 1:
                              response = _a.sent();
                              return [2, response.body];
                            case 2:
                              response_1 = _a.sent();
                              throw response_1.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    VisualDescriptor2.prototype.updateFilters = function(operation, filters) {
                      return __awaiter(this, void 0, void 0, function() {
                        var updateFiltersRequest, response_2;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              updateFiltersRequest = {
                                filtersOperation: operation,
                                filters
                              };
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.page.report.service.hpm.post("/report/pages/".concat(this.page.name, "/visuals/").concat(this.name, "/filters"), updateFiltersRequest, { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow)];
                            case 2:
                              return [2, _a.sent()];
                            case 3:
                              response_2 = _a.sent();
                              throw response_2.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    VisualDescriptor2.prototype.removeFilters = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              return [4, this.updateFilters(powerbi_models_1.FiltersOperations.RemoveAll)];
                            case 1:
                              return [2, _a.sent()];
                          }
                        });
                      });
                    };
                    VisualDescriptor2.prototype.setFilters = function(filters) {
                      return __awaiter(this, void 0, void 0, function() {
                        var response_3;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.page.report.service.hpm.put("/report/pages/".concat(this.page.name, "/visuals/").concat(this.name, "/filters"), filters, { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow)];
                            case 1:
                              return [2, _a.sent()];
                            case 2:
                              response_3 = _a.sent();
                              throw response_3.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    VisualDescriptor2.prototype.exportData = function(exportDataType, rows) {
                      return __awaiter(this, void 0, void 0, function() {
                        var exportDataRequestBody, response, response_4;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              exportDataRequestBody = {
                                rows,
                                exportDataType
                              };
                              _a.label = 1;
                            case 1:
                              _a.trys.push([1, 3, , 4]);
                              return [4, this.page.report.service.hpm.post("/report/pages/".concat(this.page.name, "/visuals/").concat(this.name, "/exportData"), exportDataRequestBody, { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow)];
                            case 2:
                              response = _a.sent();
                              return [2, response.body];
                            case 3:
                              response_4 = _a.sent();
                              throw response_4.body;
                            case 4:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    VisualDescriptor2.prototype.setSlicerState = function(state) {
                      return __awaiter(this, void 0, void 0, function() {
                        var response_5;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.page.report.service.hpm.put("/report/pages/".concat(this.page.name, "/visuals/").concat(this.name, "/slicer"), state, { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow)];
                            case 1:
                              return [2, _a.sent()];
                            case 2:
                              response_5 = _a.sent();
                              throw response_5.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    VisualDescriptor2.prototype.getSlicerState = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_6;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.page.report.service.hpm.get("/report/pages/".concat(this.page.name, "/visuals/").concat(this.name, "/slicer"), { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow)];
                            case 1:
                              response = _a.sent();
                              return [2, response.body];
                            case 2:
                              response_6 = _a.sent();
                              throw response_6.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    VisualDescriptor2.prototype.clone = function(request) {
                      if (request === void 0) {
                        request = {};
                      }
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_7;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.page.report.service.hpm.post("/report/pages/".concat(this.page.name, "/visuals/").concat(this.name, "/clone"), request, { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow)];
                            case 1:
                              response = _a.sent();
                              return [2, response.body];
                            case 2:
                              response_7 = _a.sent();
                              throw response_7.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    VisualDescriptor2.prototype.sortBy = function(request) {
                      return __awaiter(this, void 0, void 0, function() {
                        var response_8;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.page.report.service.hpm.put("/report/pages/".concat(this.page.name, "/visuals/").concat(this.name, "/sortBy"), request, { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow)];
                            case 1:
                              return [2, _a.sent()];
                            case 2:
                              response_8 = _a.sent();
                              throw response_8.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    VisualDescriptor2.prototype.moveVisual = function(x, y, z) {
                      return __awaiter(this, void 0, void 0, function() {
                        var pageName, visualName, report;
                        return __generator(this, function(_a) {
                          pageName = this.page.name;
                          visualName = this.name;
                          report = this.page.report;
                          return [2, report.moveVisual(pageName, visualName, x, y, z)];
                        });
                      });
                    };
                    VisualDescriptor2.prototype.setVisualDisplayState = function(displayState) {
                      return __awaiter(this, void 0, void 0, function() {
                        var pageName, visualName, report;
                        return __generator(this, function(_a) {
                          pageName = this.page.name;
                          visualName = this.name;
                          report = this.page.report;
                          return [2, report.setVisualDisplayState(pageName, visualName, displayState)];
                        });
                      });
                    };
                    VisualDescriptor2.prototype.resizeVisual = function(width, height) {
                      return __awaiter(this, void 0, void 0, function() {
                        var pageName, visualName, report;
                        return __generator(this, function(_a) {
                          pageName = this.page.name;
                          visualName = this.name;
                          report = this.page.report;
                          return [2, report.resizeVisual(pageName, visualName, width, height)];
                        });
                      });
                    };
                    VisualDescriptor2.prototype.getSmartNarrativeInsights = function() {
                      return __awaiter(this, void 0, void 0, function() {
                        var response, response_9;
                        return __generator(this, function(_a) {
                          switch (_a.label) {
                            case 0:
                              _a.trys.push([0, 2, , 3]);
                              return [4, this.page.report.service.hpm.get("/report/pages/".concat(this.page.name, "/visuals/").concat(this.name, "/smartNarrativeInsights"), { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow)];
                            case 1:
                              response = _a.sent();
                              return [2, response.body];
                            case 2:
                              response_9 = _a.sent();
                              throw response_9.body;
                            case 3:
                              return [
                                2
                                /*return*/
                              ];
                          }
                        });
                      });
                    };
                    return VisualDescriptor2;
                  }()
                );
                exports2.VisualDescriptor = VisualDescriptor;
              }
            ),
            /***/
            "./node_modules/window-post-message-proxy/dist/windowPostMessageProxy.js": (
              /*!*******************************************************************************!*\
                !*** ./node_modules/window-post-message-proxy/dist/windowPostMessageProxy.js ***!
                \*******************************************************************************/
              /***/
              (module2) => {
                !function(e, r) {
                  true ? module2.exports = r() : 0;
                }(self, () => (() => {
                  "use strict";
                  var e = {};
                  return (() => {
                    var r = e;
                    Object.defineProperty(r, "__esModule", { value: true }), r.WindowPostMessageProxy = void 0;
                    var s = function() {
                      function e2(r2) {
                        void 0 === r2 && (r2 = { processTrackingProperties: { addTrackingProperties: e2.defaultAddTrackingProperties, getTrackingProperties: e2.defaultGetTrackingProperties }, isErrorMessage: e2.defaultIsErrorMessage, receiveWindow: window, name: e2.createRandomString() });
                        var s2 = this;
                        this.pendingRequestPromises = {}, this.addTrackingProperties = r2.processTrackingProperties && r2.processTrackingProperties.addTrackingProperties || e2.defaultAddTrackingProperties, this.getTrackingProperties = r2.processTrackingProperties && r2.processTrackingProperties.getTrackingProperties || e2.defaultGetTrackingProperties, this.isErrorMessage = r2.isErrorMessage || e2.defaultIsErrorMessage, this.receiveWindow = r2.receiveWindow || window, this.name = r2.name || e2.createRandomString(), this.logMessages = r2.logMessages || false, this.eventSourceOverrideWindow = r2.eventSourceOverrideWindow, this.suppressWarnings = r2.suppressWarnings || false, this.logMessages && console.log("new WindowPostMessageProxy created with name: ".concat(this.name, " receiving on window: ").concat(this.receiveWindow.document.title)), this.handlers = [], this.windowMessageHandler = function(e3) {
                          return s2.onMessageReceived(e3);
                        }, this.start();
                      }
                      return e2.defaultAddTrackingProperties = function(r2, s2) {
                        return r2[e2.messagePropertyName] = s2, r2;
                      }, e2.defaultGetTrackingProperties = function(r2) {
                        return r2[e2.messagePropertyName];
                      }, e2.defaultIsErrorMessage = function(e3) {
                        return !!e3.error;
                      }, e2.createDeferred = function() {
                        var e3 = { resolve: null, reject: null, promise: null }, r2 = new Promise(function(r3, s2) {
                          e3.resolve = r3, e3.reject = s2;
                        });
                        return e3.promise = r2, e3;
                      }, e2.createRandomString = function() {
                        var e3 = window.crypto || window.msCrypto, r2 = new Uint32Array(1);
                        return e3.getRandomValues(r2), r2[0].toString(36).substring(1);
                      }, e2.prototype.addHandler = function(e3) {
                        this.handlers.push(e3);
                      }, e2.prototype.removeHandler = function(e3) {
                        var r2 = this.handlers.indexOf(e3);
                        if (-1 === r2)
                          throw new Error("You attempted to remove a handler but no matching handler was found.");
                        this.handlers.splice(r2, 1);
                      }, e2.prototype.start = function() {
                        this.receiveWindow.addEventListener("message", this.windowMessageHandler);
                      }, e2.prototype.stop = function() {
                        this.receiveWindow.removeEventListener("message", this.windowMessageHandler);
                      }, e2.prototype.postMessage = function(r2, s2) {
                        var n = { id: e2.createRandomString() };
                        this.addTrackingProperties(s2, n), this.logMessages && (console.log("".concat(this.name, " Posting message:")), console.log(JSON.stringify(s2, null, "  "))), r2.postMessage(s2, "*");
                        var o = e2.createDeferred();
                        return this.pendingRequestPromises[n.id] = o, o.promise;
                      }, e2.prototype.sendResponse = function(e3, r2, s2) {
                        this.addTrackingProperties(r2, s2), this.logMessages && (console.log("".concat(this.name, " Sending response:")), console.log(JSON.stringify(r2, null, "  "))), e3.postMessage(r2, "*");
                      }, e2.prototype.onMessageReceived = function(e3) {
                        var r2 = this;
                        this.logMessages && (console.log("".concat(this.name, " Received message:")), console.log("type: ".concat(e3.type)), console.log(JSON.stringify(e3.data, null, "  ")));
                        var s2 = this.eventSourceOverrideWindow || e3.source;
                        if (s2) {
                          var n = e3.data;
                          if ("object" == typeof n) {
                            var o, t;
                            try {
                              o = this.getTrackingProperties(n);
                            } catch (e4) {
                              this.suppressWarnings || console.warn("Proxy(".concat(this.name, "): Error occurred when attempting to get tracking properties from incoming message:"), JSON.stringify(n, null, "  "), "Error: ", e4);
                            }
                            if (o && (t = this.pendingRequestPromises[o.id]), t) {
                              var i = true;
                              try {
                                i = this.isErrorMessage(n);
                              } catch (e4) {
                                console.warn("Proxy(".concat(this.name, ") Error occurred when trying to determine if message is consider an error response. Message: "), JSON.stringify(n, null, ""), "Error: ", e4);
                              }
                              i ? t.reject(n) : t.resolve(n), delete this.pendingRequestPromises[o.id];
                            } else
                              this.handlers.some(function(e4) {
                                var t2 = false;
                                try {
                                  t2 = e4.test(n);
                                } catch (e5) {
                                  r2.suppressWarnings || console.warn("Proxy(".concat(r2.name, "): Error occurred when handler was testing incoming message:"), JSON.stringify(n, null, "  "), "Error: ", e5);
                                }
                                if (t2) {
                                  var i2 = void 0;
                                  try {
                                    i2 = Promise.resolve(e4.handle(n));
                                  } catch (e5) {
                                    r2.suppressWarnings || console.warn("Proxy(".concat(r2.name, "): Error occurred when handler was processing incoming message:"), JSON.stringify(n, null, "  "), "Error: ", e5), i2 = Promise.resolve();
                                  }
                                  return i2.then(function(e5) {
                                    if (!e5) {
                                      var t3 = "Handler for message: ".concat(JSON.stringify(n, null, "  "), " did not return a response message. The default response message will be returned instead.");
                                      r2.suppressWarnings || console.warn("Proxy(".concat(r2.name, "): ").concat(t3)), e5 = { warning: t3 };
                                    }
                                    r2.sendResponse(s2, e5, o);
                                  }), true;
                                }
                              }) || this.suppressWarnings || console.warn("Proxy(".concat(this.name, ") did not handle message. Handlers: ").concat(this.handlers.length, "  Message: ").concat(JSON.stringify(n, null, ""), "."));
                          } else
                            this.suppressWarnings || console.warn("Proxy(".concat(this.name, "): Received message that was not an object. Discarding message"));
                        }
                      }, e2.messagePropertyName = "windowPostMessageProxy", e2;
                    }();
                    r.WindowPostMessageProxy = s;
                  })(), e;
                })());
              }
            )
            /******/
          };
          var __webpack_module_cache__ = {};
          function __webpack_require__(moduleId) {
            var cachedModule = __webpack_module_cache__[moduleId];
            if (cachedModule !== void 0) {
              return cachedModule.exports;
            }
            var module2 = __webpack_module_cache__[moduleId] = {
              /******/
              // no module.id needed
              /******/
              // no module.loaded needed
              /******/
              exports: {}
              /******/
            };
            __webpack_modules__[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__);
            return module2.exports;
          }
          var __webpack_exports__ = {};
          (() => {
            var exports2 = __webpack_exports__;
            Object.defineProperty(exports2, "__esModule", { value: true });
            exports2.RelativeTimeFilterBuilder = exports2.RelativeDateFilterBuilder = exports2.TopNFilterBuilder = exports2.AdvancedFilterBuilder = exports2.BasicFilterBuilder = exports2.Create = exports2.QuickCreate = exports2.VisualDescriptor = exports2.Visual = exports2.Qna = exports2.Page = exports2.Embed = exports2.Tile = exports2.Dashboard = exports2.Report = exports2.models = exports2.factories = exports2.service = void 0;
            var models2 = __webpack_require__(
              /*! powerbi-models */
              "./node_modules/powerbi-models/dist/models.js"
            );
            exports2.models = models2;
            var service2 = __webpack_require__(
              /*! ./service */
              "./src/service.ts"
            );
            exports2.service = service2;
            var factories2 = __webpack_require__(
              /*! ./factories */
              "./src/factories.ts"
            );
            exports2.factories = factories2;
            var report_1 = __webpack_require__(
              /*! ./report */
              "./src/report.ts"
            );
            Object.defineProperty(exports2, "Report", { enumerable: true, get: function() {
              return report_1.Report;
            } });
            var dashboard_1 = __webpack_require__(
              /*! ./dashboard */
              "./src/dashboard.ts"
            );
            Object.defineProperty(exports2, "Dashboard", { enumerable: true, get: function() {
              return dashboard_1.Dashboard;
            } });
            var tile_1 = __webpack_require__(
              /*! ./tile */
              "./src/tile.ts"
            );
            Object.defineProperty(exports2, "Tile", { enumerable: true, get: function() {
              return tile_1.Tile;
            } });
            var embed_1 = __webpack_require__(
              /*! ./embed */
              "./src/embed.ts"
            );
            Object.defineProperty(exports2, "Embed", { enumerable: true, get: function() {
              return embed_1.Embed;
            } });
            var page_1 = __webpack_require__(
              /*! ./page */
              "./src/page.ts"
            );
            Object.defineProperty(exports2, "Page", { enumerable: true, get: function() {
              return page_1.Page;
            } });
            var qna_1 = __webpack_require__(
              /*! ./qna */
              "./src/qna.ts"
            );
            Object.defineProperty(exports2, "Qna", { enumerable: true, get: function() {
              return qna_1.Qna;
            } });
            var visual_1 = __webpack_require__(
              /*! ./visual */
              "./src/visual.ts"
            );
            Object.defineProperty(exports2, "Visual", { enumerable: true, get: function() {
              return visual_1.Visual;
            } });
            var visualDescriptor_1 = __webpack_require__(
              /*! ./visualDescriptor */
              "./src/visualDescriptor.ts"
            );
            Object.defineProperty(exports2, "VisualDescriptor", { enumerable: true, get: function() {
              return visualDescriptor_1.VisualDescriptor;
            } });
            var quickCreate_1 = __webpack_require__(
              /*! ./quickCreate */
              "./src/quickCreate.ts"
            );
            Object.defineProperty(exports2, "QuickCreate", { enumerable: true, get: function() {
              return quickCreate_1.QuickCreate;
            } });
            var create_1 = __webpack_require__(
              /*! ./create */
              "./src/create.ts"
            );
            Object.defineProperty(exports2, "Create", { enumerable: true, get: function() {
              return create_1.Create;
            } });
            var FilterBuilders_1 = __webpack_require__(
              /*! ./FilterBuilders */
              "./src/FilterBuilders/index.ts"
            );
            Object.defineProperty(exports2, "BasicFilterBuilder", { enumerable: true, get: function() {
              return FilterBuilders_1.BasicFilterBuilder;
            } });
            Object.defineProperty(exports2, "AdvancedFilterBuilder", { enumerable: true, get: function() {
              return FilterBuilders_1.AdvancedFilterBuilder;
            } });
            Object.defineProperty(exports2, "TopNFilterBuilder", { enumerable: true, get: function() {
              return FilterBuilders_1.TopNFilterBuilder;
            } });
            Object.defineProperty(exports2, "RelativeDateFilterBuilder", { enumerable: true, get: function() {
              return FilterBuilders_1.RelativeDateFilterBuilder;
            } });
            Object.defineProperty(exports2, "RelativeTimeFilterBuilder", { enumerable: true, get: function() {
              return FilterBuilders_1.RelativeTimeFilterBuilder;
            } });
            var powerbi = new service2.Service(factories2.hpmFactory, factories2.wpmpFactory, factories2.routerFactory);
            if (window.powerbi && window.powerBISDKGlobalServiceInstanceName) {
              window[window.powerBISDKGlobalServiceInstanceName] = powerbi;
            } else {
              window.powerbi = powerbi;
            }
          })();
          return __webpack_exports__;
        })()
      );
    });
  }
});

// src/app/app.routes.ts
var routes = [
  //   { path: '**', redirectTo: '/not-found', pathMatch: 'full' }
];

// node_modules/@angular/animations/fesm2022/browser.mjs
var LINE_START = "\n - ";
function invalidTimingValue(exp) {
  return new RuntimeError(3e3, ngDevMode && `The provided timing value "${exp}" is invalid.`);
}
function negativeStepValue() {
  return new RuntimeError(3100, ngDevMode && "Duration values below 0 are not allowed for this animation step.");
}
function negativeDelayValue() {
  return new RuntimeError(3101, ngDevMode && "Delay values below 0 are not allowed for this animation step.");
}
function invalidStyleParams(varName) {
  return new RuntimeError(3001, ngDevMode && `Unable to resolve the local animation param ${varName} in the given list of values`);
}
function invalidParamValue(varName) {
  return new RuntimeError(3003, ngDevMode && `Please provide a value for the animation param ${varName}`);
}
function invalidNodeType(nodeType) {
  return new RuntimeError(3004, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);
}
function invalidCssUnitValue(userProvidedProperty, value) {
  return new RuntimeError(3005, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);
}
function invalidTrigger() {
  return new RuntimeError(3006, ngDevMode && "animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))");
}
function invalidDefinition() {
  return new RuntimeError(3007, ngDevMode && "only state() and transition() definitions can sit inside of a trigger()");
}
function invalidState(metadataName, missingSubs) {
  return new RuntimeError(3008, ngDevMode && `state("${metadataName}", ...) must define default values for all the following style substitutions: ${missingSubs.join(", ")}`);
}
function invalidStyleValue(value) {
  return new RuntimeError(3002, ngDevMode && `The provided style string value ${value} is not allowed.`);
}
function invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {
  return new RuntimeError(3010, 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"`);
}
function invalidKeyframes() {
  return new RuntimeError(3011, ngDevMode && `keyframes() must be placed inside of a call to animate()`);
}
function invalidOffset() {
  return new RuntimeError(3012, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);
}
function keyframeOffsetsOutOfOrder() {
  return new RuntimeError(3200, ngDevMode && `Please ensure that all keyframe offsets are in order`);
}
function keyframesMissingOffsets() {
  return new RuntimeError(3202, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);
}
function invalidStagger() {
  return new RuntimeError(3013, ngDevMode && `stagger() can only be used inside of query()`);
}
function invalidQuery(selector) {
  return new RuntimeError(3014, ngDevMode && `\`query("${selector}")\` returned zero elements. (Use \`query("${selector}", { optional: true })\` if you wish to allow this.)`);
}
function invalidExpression(expr) {
  return new RuntimeError(3015, ngDevMode && `The provided transition expression "${expr}" is not supported`);
}
function invalidTransitionAlias(alias) {
  return new RuntimeError(3016, ngDevMode && `The transition alias value "${alias}" is not supported`);
}
function triggerBuildFailed(name, errors) {
  return new RuntimeError(3404, ngDevMode && `The animation trigger "${name}" has failed to build due to the following errors:
 - ${errors.map((err) => err.message).join("\n - ")}`);
}
function animationFailed(errors) {
  return new RuntimeError(3502, ngDevMode && `Unable to animate due to the following errors:${LINE_START}${errors.map((err) => err.message).join(LINE_START)}`);
}
function registerFailed(errors) {
  return new RuntimeError(3503, ngDevMode && `Unable to build the animation due to the following errors: ${errors.map((err) => err.message).join("\n")}`);
}
function missingOrDestroyedAnimation() {
  return new RuntimeError(3300, ngDevMode && "The requested animation doesn't exist or has already been destroyed");
}
function createAnimationFailed(errors) {
  return new RuntimeError(3504, ngDevMode && `Unable to create the animation due to the following errors:${errors.map((err) => err.message).join("\n")}`);
}
function missingPlayer(id) {
  return new RuntimeError(3301, ngDevMode && `Unable to find the timeline player referenced by ${id}`);
}
function missingTrigger(phase, name) {
  return new RuntimeError(3302, ngDevMode && `Unable to listen on the animation trigger event "${phase}" because the animation trigger "${name}" doesn't exist!`);
}
function missingEvent(name) {
  return new RuntimeError(3303, ngDevMode && `Unable to listen on the animation trigger "${name}" because the provided event is undefined!`);
}
function unsupportedTriggerEvent(phase, name) {
  return new RuntimeError(3400, ngDevMode && `The provided animation trigger event "${phase}" for the animation trigger "${name}" is not supported!`);
}
function unregisteredTrigger(name) {
  return new RuntimeError(3401, ngDevMode && `The provided animation trigger "${name}" has not been registered!`);
}
function triggerTransitionsFailed(errors) {
  return new RuntimeError(3402, ngDevMode && `Unable to process animations due to the following failed trigger transitions
 ${errors.map((err) => err.message).join("\n")}`);
}
function transitionFailed(name, errors) {
  return new RuntimeError(3505, ngDevMode && `@${name} has failed due to:
 ${errors.map((err) => err.message).join("\n- ")}`);
}
var 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"]);
function optimizeGroupPlayer(players) {
  switch (players.length) {
    case 0:
      return new NoopAnimationPlayer();
    case 1:
      return players[0];
    default:
      return new AnimationGroupPlayer(players);
  }
}
function normalizeKeyframes$1(normalizer, keyframes, preStyles = /* @__PURE__ */ new Map(), postStyles = /* @__PURE__ */ new Map()) {
  const errors = [];
  const normalizedKeyframes = [];
  let previousOffset = -1;
  let previousKeyframe = null;
  keyframes.forEach((kf) => {
    const offset = kf.get("offset");
    const isSameOffset = offset == previousOffset;
    const normalizedKeyframe = isSameOffset && previousKeyframe || /* @__PURE__ */ new Map();
    kf.forEach((val, prop) => {
      let normalizedProp = prop;
      let normalizedValue = val;
      if (prop !== "offset") {
        normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);
        switch (normalizedValue) {
          case \u0275PRE_STYLE:
            normalizedValue = preStyles.get(prop);
            break;
          case AUTO_STYLE:
            normalizedValue = postStyles.get(prop);
            break;
          default:
            normalizedValue = normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);
            break;
        }
      }
      normalizedKeyframe.set(normalizedProp, normalizedValue);
    });
    if (!isSameOffset) {
      normalizedKeyframes.push(normalizedKeyframe);
    }
    previousKeyframe = normalizedKeyframe;
    previousOffset = offset;
  });
  if (errors.length) {
    throw animationFailed(errors);
  }
  return normalizedKeyframes;
}
function listenOnPlayer(player, eventName, event, callback) {
  switch (eventName) {
    case "start":
      player.onStart(() => callback(event && copyAnimationEvent(event, "start", player)));
      break;
    case "done":
      player.onDone(() => callback(event && copyAnimationEvent(event, "done", player)));
      break;
    case "destroy":
      player.onDestroy(() => callback(event && copyAnimationEvent(event, "destroy", player)));
      break;
  }
}
function copyAnimationEvent(e, phaseName, player) {
  const totalTime = player.totalTime;
  const disabled = player.disabled ? true : false;
  const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == void 0 ? e.totalTime : totalTime, disabled);
  const data = e["_data"];
  if (data != null) {
    event["_data"] = data;
  }
  return event;
}
function makeAnimationEvent(element, triggerName, fromState, toState, phaseName = "", totalTime = 0, disabled) {
  return {
    element,
    triggerName,
    fromState,
    toState,
    phaseName,
    totalTime,
    disabled: !!disabled
  };
}
function getOrSetDefaultValue(map2, key, defaultValue) {
  let value = map2.get(key);
  if (!value) {
    map2.set(key, value = defaultValue);
  }
  return value;
}
function parseTimelineCommand(command) {
  const separatorPos = command.indexOf(":");
  const id = command.substring(1, separatorPos);
  const action = command.slice(separatorPos + 1);
  return [id, action];
}
var documentElement = /* @__PURE__ */ (() => typeof document === "undefined" ? null : document.documentElement)();
function getParentElement(element) {
  const parent = element.parentNode || element.host || null;
  if (parent === documentElement) {
    return null;
  }
  return parent;
}
function containsVendorPrefix(prop) {
  return prop.substring(1, 6) == "ebkit";
}
var _CACHED_BODY = null;
var _IS_WEBKIT = false;
function validateStyleProperty(prop) {
  if (!_CACHED_BODY) {
    _CACHED_BODY = getBodyNode() || {};
    _IS_WEBKIT = _CACHED_BODY.style ? "WebkitAppearance" in _CACHED_BODY.style : false;
  }
  let result = true;
  if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {
    result = prop in _CACHED_BODY.style;
    if (!result && _IS_WEBKIT) {
      const camelProp = "Webkit" + prop.charAt(0).toUpperCase() + prop.slice(1);
      result = camelProp in _CACHED_BODY.style;
    }
  }
  return result;
}
function validateWebAnimatableStyleProperty(prop) {
  return ANIMATABLE_PROP_SET.has(prop);
}
function getBodyNode() {
  if (typeof document != "undefined") {
    return document.body;
  }
  return null;
}
function containsElement(elm1, elm2) {
  while (elm2) {
    if (elm2 === elm1) {
      return true;
    }
    elm2 = getParentElement(elm2);
  }
  return false;
}
function invokeQuery(element, selector, multi) {
  if (multi) {
    return Array.from(element.querySelectorAll(selector));
  }
  const elem = element.querySelector(selector);
  return elem ? [elem] : [];
}
var _NoopAnimationDriver = class _NoopAnimationDriver {
  /**
   * @returns Whether `prop` is a valid CSS property
   */
  validateStyleProperty(prop) {
    return validateStyleProperty(prop);
  }
  /**
   * @deprecated unused
   */
  matchesElement(_element, _selector) {
    return false;
  }
  /**
   *
   * @returns Whether elm1 contains elm2.
   */
  containsElement(elm1, elm2) {
    return containsElement(elm1, elm2);
  }
  /**
   * @returns Rhe parent of the given element or `null` if the element is the `document`
   */
  getParentElement(element) {
    return getParentElement(element);
  }
  /**
   * @returns The result of the query selector on the element. The array will contain up to 1 item
   *     if `multi` is  `false`.
   */
  query(element, selector, multi) {
    return invokeQuery(element, selector, multi);
  }
  /**
   * @returns The `defaultValue` or empty string
   */
  computeStyle(element, prop, defaultValue) {
    return defaultValue || "";
  }
  /**
   * @returns An `NoopAnimationPlayer`
   */
  animate(element, keyframes, duration, delay2, easing, previousPlayers = [], scrubberAccessRequested) {
    return new NoopAnimationPlayer(duration, delay2);
  }
};
_NoopAnimationDriver.\u0275fac = function NoopAnimationDriver_Factory(t) {
  return new (t || _NoopAnimationDriver)();
};
_NoopAnimationDriver.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _NoopAnimationDriver,
  factory: _NoopAnimationDriver.\u0275fac
});
var NoopAnimationDriver = _NoopAnimationDriver;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NoopAnimationDriver, [{
    type: Injectable
  }], null, null);
})();
var _AnimationDriver = class _AnimationDriver {
};
_AnimationDriver.NOOP = new NoopAnimationDriver();
var AnimationDriver = _AnimationDriver;
var AnimationStyleNormalizer = class {
};
var ONE_SECOND = 1e3;
var SUBSTITUTION_EXPR_START = "{{";
var SUBSTITUTION_EXPR_END = "}}";
var ENTER_CLASSNAME = "ng-enter";
var LEAVE_CLASSNAME = "ng-leave";
var NG_TRIGGER_CLASSNAME = "ng-trigger";
var NG_TRIGGER_SELECTOR = ".ng-trigger";
var NG_ANIMATING_CLASSNAME = "ng-animating";
var NG_ANIMATING_SELECTOR = ".ng-animating";
function resolveTimingValue(value) {
  if (typeof value == "number")
    return value;
  const matches = value.match(/^(-?[\.\d]+)(m?s)/);
  if (!matches || matches.length < 2)
    return 0;
  return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);
}
function _convertTimeValueToMS(value, unit) {
  switch (unit) {
    case "s":
      return value * ONE_SECOND;
    default:
      return value;
  }
}
function resolveTiming(timings, errors, allowNegativeValues) {
  return timings.hasOwnProperty("duration") ? timings : parseTimeExpression(timings, errors, allowNegativeValues);
}
function parseTimeExpression(exp, errors, allowNegativeValues) {
  const regex = /^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i;
  let duration;
  let delay2 = 0;
  let easing = "";
  if (typeof exp === "string") {
    const matches = exp.match(regex);
    if (matches === null) {
      errors.push(invalidTimingValue(exp));
      return {
        duration: 0,
        delay: 0,
        easing: ""
      };
    }
    duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);
    const delayMatch = matches[3];
    if (delayMatch != null) {
      delay2 = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);
    }
    const easingVal = matches[5];
    if (easingVal) {
      easing = easingVal;
    }
  } else {
    duration = exp;
  }
  if (!allowNegativeValues) {
    let containsErrors = false;
    let startIndex = errors.length;
    if (duration < 0) {
      errors.push(negativeStepValue());
      containsErrors = true;
    }
    if (delay2 < 0) {
      errors.push(negativeDelayValue());
      containsErrors = true;
    }
    if (containsErrors) {
      errors.splice(startIndex, 0, invalidTimingValue(exp));
    }
  }
  return {
    duration,
    delay: delay2,
    easing
  };
}
function normalizeKeyframes(keyframes) {
  if (!keyframes.length) {
    return [];
  }
  if (keyframes[0] instanceof Map) {
    return keyframes;
  }
  return keyframes.map((kf) => new Map(Object.entries(kf)));
}
function setStyles(element, styles, formerStyles) {
  styles.forEach((val, prop) => {
    const camelProp = dashCaseToCamelCase(prop);
    if (formerStyles && !formerStyles.has(prop)) {
      formerStyles.set(prop, element.style[camelProp]);
    }
    element.style[camelProp] = val;
  });
}
function eraseStyles(element, styles) {
  styles.forEach((_, prop) => {
    const camelProp = dashCaseToCamelCase(prop);
    element.style[camelProp] = "";
  });
}
function normalizeAnimationEntry(steps) {
  if (Array.isArray(steps)) {
    if (steps.length == 1)
      return steps[0];
    return sequence(steps);
  }
  return steps;
}
function validateStyleParams(value, options, errors) {
  const params = options.params || {};
  const matches = extractStyleParams(value);
  if (matches.length) {
    matches.forEach((varName) => {
      if (!params.hasOwnProperty(varName)) {
        errors.push(invalidStyleParams(varName));
      }
    });
  }
}
var PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\s*(.+?)\\s*${SUBSTITUTION_EXPR_END}`, "g");
function extractStyleParams(value) {
  let params = [];
  if (typeof value === "string") {
    let match;
    while (match = PARAM_REGEX.exec(value)) {
      params.push(match[1]);
    }
    PARAM_REGEX.lastIndex = 0;
  }
  return params;
}
function interpolateParams(value, params, errors) {
  const original = `${value}`;
  const str = original.replace(PARAM_REGEX, (_, varName) => {
    let localVal = params[varName];
    if (localVal == null) {
      errors.push(invalidParamValue(varName));
      localVal = "";
    }
    return localVal.toString();
  });
  return str == original ? value : str;
}
var DASH_CASE_REGEXP = /-+([a-z0-9])/g;
function dashCaseToCamelCase(input) {
  return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());
}
function camelCaseToDashCase(input) {
  return input.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
}
function allowPreviousPlayerStylesMerge(duration, delay2) {
  return duration === 0 || delay2 === 0;
}
function balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {
  if (previousStyles.size && keyframes.length) {
    let startingKeyframe = keyframes[0];
    let missingStyleProps = [];
    previousStyles.forEach((val, prop) => {
      if (!startingKeyframe.has(prop)) {
        missingStyleProps.push(prop);
      }
      startingKeyframe.set(prop, val);
    });
    if (missingStyleProps.length) {
      for (let i = 1; i < keyframes.length; i++) {
        let kf = keyframes[i];
        missingStyleProps.forEach((prop) => kf.set(prop, computeStyle(element, prop)));
      }
    }
  }
  return keyframes;
}
function visitDslNode(visitor, node, context) {
  switch (node.type) {
    case AnimationMetadataType.Trigger:
      return visitor.visitTrigger(node, context);
    case AnimationMetadataType.State:
      return visitor.visitState(node, context);
    case AnimationMetadataType.Transition:
      return visitor.visitTransition(node, context);
    case AnimationMetadataType.Sequence:
      return visitor.visitSequence(node, context);
    case AnimationMetadataType.Group:
      return visitor.visitGroup(node, context);
    case AnimationMetadataType.Animate:
      return visitor.visitAnimate(node, context);
    case AnimationMetadataType.Keyframes:
      return visitor.visitKeyframes(node, context);
    case AnimationMetadataType.Style:
      return visitor.visitStyle(node, context);
    case AnimationMetadataType.Reference:
      return visitor.visitReference(node, context);
    case AnimationMetadataType.AnimateChild:
      return visitor.visitAnimateChild(node, context);
    case AnimationMetadataType.AnimateRef:
      return visitor.visitAnimateRef(node, context);
    case AnimationMetadataType.Query:
      return visitor.visitQuery(node, context);
    case AnimationMetadataType.Stagger:
      return visitor.visitStagger(node, context);
    default:
      throw invalidNodeType(node.type);
  }
}
function computeStyle(element, prop) {
  return window.getComputedStyle(element)[prop];
}
var 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"]);
var WebAnimationsStyleNormalizer = class extends AnimationStyleNormalizer {
  normalizePropertyName(propertyName, errors) {
    return dashCaseToCamelCase(propertyName);
  }
  normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {
    let unit = "";
    const strVal = value.toString().trim();
    if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== "0") {
      if (typeof value === "number") {
        unit = "px";
      } else {
        const valAndSuffixMatch = value.match(/^[+-]?[\d\.]+([a-z]*)$/);
        if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {
          errors.push(invalidCssUnitValue(userProvidedProperty, value));
        }
      }
    }
    return strVal + unit;
  }
};
function createListOfWarnings(warnings) {
  const LINE_START2 = "\n - ";
  return `${LINE_START2}${warnings.filter(Boolean).map((warning) => warning).join(LINE_START2)}`;
}
function warnTriggerBuild(name, warnings) {
  (typeof ngDevMode === "undefined" || ngDevMode) && console.warn(`The animation trigger "${name}" has built with the following warnings:${createListOfWarnings(warnings)}`);
}
function warnRegister(warnings) {
  (typeof ngDevMode === "undefined" || ngDevMode) && console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);
}
function pushUnrecognizedPropertiesWarning(warnings, props) {
  if (props.length) {
    warnings.push(`The following provided properties are not recognized: ${props.join(", ")}`);
  }
}
var ANY_STATE = "*";
function parseTransitionExpr(transitionValue, errors) {
  const expressions = [];
  if (typeof transitionValue == "string") {
    transitionValue.split(/\s*,\s*/).forEach((str) => parseInnerTransitionStr(str, expressions, errors));
  } else {
    expressions.push(transitionValue);
  }
  return expressions;
}
function parseInnerTransitionStr(eventStr, expressions, errors) {
  if (eventStr[0] == ":") {
    const result = parseAnimationAlias(eventStr, errors);
    if (typeof result == "function") {
      expressions.push(result);
      return;
    }
    eventStr = result;
  }
  const match = eventStr.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);
  if (match == null || match.length < 4) {
    errors.push(invalidExpression(eventStr));
    return expressions;
  }
  const fromState = match[1];
  const separator = match[2];
  const toState = match[3];
  expressions.push(makeLambdaFromStates(fromState, toState));
  const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;
  if (separator[0] == "<" && !isFullAnyStateExpr) {
    expressions.push(makeLambdaFromStates(toState, fromState));
  }
  return;
}
function parseAnimationAlias(alias, errors) {
  switch (alias) {
    case ":enter":
      return "void => *";
    case ":leave":
      return "* => void";
    case ":increment":
      return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);
    case ":decrement":
      return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);
    default:
      errors.push(invalidTransitionAlias(alias));
      return "* => *";
  }
}
var TRUE_BOOLEAN_VALUES = /* @__PURE__ */ new Set(["true", "1"]);
var FALSE_BOOLEAN_VALUES = /* @__PURE__ */ new Set(["false", "0"]);
function makeLambdaFromStates(lhs, rhs) {
  const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);
  const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);
  return (fromState, toState) => {
    let lhsMatch = lhs == ANY_STATE || lhs == fromState;
    let rhsMatch = rhs == ANY_STATE || rhs == toState;
    if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === "boolean") {
      lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);
    }
    if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === "boolean") {
      rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);
    }
    return lhsMatch && rhsMatch;
  };
}
var SELF_TOKEN = ":self";
var SELF_TOKEN_REGEX = new RegExp(`s*${SELF_TOKEN}s*,?`, "g");
function buildAnimationAst(driver, metadata, errors, warnings) {
  return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);
}
var ROOT_SELECTOR = "";
var AnimationAstBuilderVisitor = class {
  constructor(_driver) {
    this._driver = _driver;
  }
  build(metadata, errors, warnings) {
    const context = new AnimationAstBuilderContext(errors);
    this._resetContextStyleTimingState(context);
    const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);
    if (typeof ngDevMode === "undefined" || ngDevMode) {
      if (context.unsupportedCSSPropertiesFound.size) {
        pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);
      }
    }
    return ast;
  }
  _resetContextStyleTimingState(context) {
    context.currentQuerySelector = ROOT_SELECTOR;
    context.collectedStyles = /* @__PURE__ */ new Map();
    context.collectedStyles.set(ROOT_SELECTOR, /* @__PURE__ */ new Map());
    context.currentTime = 0;
  }
  visitTrigger(metadata, context) {
    let queryCount = context.queryCount = 0;
    let depCount = context.depCount = 0;
    const states = [];
    const transitions = [];
    if (metadata.name.charAt(0) == "@") {
      context.errors.push(invalidTrigger());
    }
    metadata.definitions.forEach((def) => {
      this._resetContextStyleTimingState(context);
      if (def.type == AnimationMetadataType.State) {
        const stateDef = def;
        const name = stateDef.name;
        name.toString().split(/\s*,\s*/).forEach((n) => {
          stateDef.name = n;
          states.push(this.visitState(stateDef, context));
        });
        stateDef.name = name;
      } else if (def.type == AnimationMetadataType.Transition) {
        const transition2 = this.visitTransition(def, context);
        queryCount += transition2.queryCount;
        depCount += transition2.depCount;
        transitions.push(transition2);
      } else {
        context.errors.push(invalidDefinition());
      }
    });
    return {
      type: AnimationMetadataType.Trigger,
      name: metadata.name,
      states,
      transitions,
      queryCount,
      depCount,
      options: null
    };
  }
  visitState(metadata, context) {
    const styleAst = this.visitStyle(metadata.styles, context);
    const astParams = metadata.options && metadata.options.params || null;
    if (styleAst.containsDynamicStyles) {
      const missingSubs = /* @__PURE__ */ new Set();
      const params = astParams || {};
      styleAst.styles.forEach((style2) => {
        if (style2 instanceof Map) {
          style2.forEach((value) => {
            extractStyleParams(value).forEach((sub) => {
              if (!params.hasOwnProperty(sub)) {
                missingSubs.add(sub);
              }
            });
          });
        }
      });
      if (missingSubs.size) {
        context.errors.push(invalidState(metadata.name, [...missingSubs.values()]));
      }
    }
    return {
      type: AnimationMetadataType.State,
      name: metadata.name,
      style: styleAst,
      options: astParams ? {
        params: astParams
      } : null
    };
  }
  visitTransition(metadata, context) {
    context.queryCount = 0;
    context.depCount = 0;
    const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);
    const matchers = parseTransitionExpr(metadata.expr, context.errors);
    return {
      type: AnimationMetadataType.Transition,
      matchers,
      animation,
      queryCount: context.queryCount,
      depCount: context.depCount,
      options: normalizeAnimationOptions(metadata.options)
    };
  }
  visitSequence(metadata, context) {
    return {
      type: AnimationMetadataType.Sequence,
      steps: metadata.steps.map((s) => visitDslNode(this, s, context)),
      options: normalizeAnimationOptions(metadata.options)
    };
  }
  visitGroup(metadata, context) {
    const currentTime = context.currentTime;
    let furthestTime = 0;
    const steps = metadata.steps.map((step) => {
      context.currentTime = currentTime;
      const innerAst = visitDslNode(this, step, context);
      furthestTime = Math.max(furthestTime, context.currentTime);
      return innerAst;
    });
    context.currentTime = furthestTime;
    return {
      type: AnimationMetadataType.Group,
      steps,
      options: normalizeAnimationOptions(metadata.options)
    };
  }
  visitAnimate(metadata, context) {
    const timingAst = constructTimingAst(metadata.timings, context.errors);
    context.currentAnimateTimings = timingAst;
    let styleAst;
    let styleMetadata = metadata.styles ? metadata.styles : style({});
    if (styleMetadata.type == AnimationMetadataType.Keyframes) {
      styleAst = this.visitKeyframes(styleMetadata, context);
    } else {
      let styleMetadata2 = metadata.styles;
      let isEmpty = false;
      if (!styleMetadata2) {
        isEmpty = true;
        const newStyleData = {};
        if (timingAst.easing) {
          newStyleData["easing"] = timingAst.easing;
        }
        styleMetadata2 = style(newStyleData);
      }
      context.currentTime += timingAst.duration + timingAst.delay;
      const _styleAst = this.visitStyle(styleMetadata2, context);
      _styleAst.isEmptyStep = isEmpty;
      styleAst = _styleAst;
    }
    context.currentAnimateTimings = null;
    return {
      type: AnimationMetadataType.Animate,
      timings: timingAst,
      style: styleAst,
      options: null
    };
  }
  visitStyle(metadata, context) {
    const ast = this._makeStyleAst(metadata, context);
    this._validateStyleAst(ast, context);
    return ast;
  }
  _makeStyleAst(metadata, context) {
    const styles = [];
    const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];
    for (let styleTuple of metadataStyles) {
      if (typeof styleTuple === "string") {
        if (styleTuple === AUTO_STYLE) {
          styles.push(styleTuple);
        } else {
          context.errors.push(invalidStyleValue(styleTuple));
        }
      } else {
        styles.push(new Map(Object.entries(styleTuple)));
      }
    }
    let containsDynamicStyles = false;
    let collectedEasing = null;
    styles.forEach((styleData) => {
      if (styleData instanceof Map) {
        if (styleData.has("easing")) {
          collectedEasing = styleData.get("easing");
          styleData.delete("easing");
        }
        if (!containsDynamicStyles) {
          for (let value of styleData.values()) {
            if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {
              containsDynamicStyles = true;
              break;
            }
          }
        }
      }
    });
    return {
      type: AnimationMetadataType.Style,
      styles,
      easing: collectedEasing,
      offset: metadata.offset,
      containsDynamicStyles,
      options: null
    };
  }
  _validateStyleAst(ast, context) {
    const timings = context.currentAnimateTimings;
    let endTime = context.currentTime;
    let startTime = context.currentTime;
    if (timings && startTime > 0) {
      startTime -= timings.duration + timings.delay;
    }
    ast.styles.forEach((tuple) => {
      if (typeof tuple === "string")
        return;
      tuple.forEach((value, prop) => {
        if (typeof ngDevMode === "undefined" || ngDevMode) {
          if (!this._driver.validateStyleProperty(prop)) {
            tuple.delete(prop);
            context.unsupportedCSSPropertiesFound.add(prop);
            return;
          }
        }
        const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);
        const collectedEntry = collectedStyles.get(prop);
        let updateCollectedStyle = true;
        if (collectedEntry) {
          if (startTime != endTime && startTime >= collectedEntry.startTime && endTime <= collectedEntry.endTime) {
            context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));
            updateCollectedStyle = false;
          }
          startTime = collectedEntry.startTime;
        }
        if (updateCollectedStyle) {
          collectedStyles.set(prop, {
            startTime,
            endTime
          });
        }
        if (context.options) {
          validateStyleParams(value, context.options, context.errors);
        }
      });
    });
  }
  visitKeyframes(metadata, context) {
    const ast = {
      type: AnimationMetadataType.Keyframes,
      styles: [],
      options: null
    };
    if (!context.currentAnimateTimings) {
      context.errors.push(invalidKeyframes());
      return ast;
    }
    const MAX_KEYFRAME_OFFSET = 1;
    let totalKeyframesWithOffsets = 0;
    const offsets = [];
    let offsetsOutOfOrder = false;
    let keyframesOutOfRange = false;
    let previousOffset = 0;
    const keyframes = metadata.steps.map((styles) => {
      const style2 = this._makeStyleAst(styles, context);
      let offsetVal = style2.offset != null ? style2.offset : consumeOffset(style2.styles);
      let offset = 0;
      if (offsetVal != null) {
        totalKeyframesWithOffsets++;
        offset = style2.offset = offsetVal;
      }
      keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;
      offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;
      previousOffset = offset;
      offsets.push(offset);
      return style2;
    });
    if (keyframesOutOfRange) {
      context.errors.push(invalidOffset());
    }
    if (offsetsOutOfOrder) {
      context.errors.push(keyframeOffsetsOutOfOrder());
    }
    const length = metadata.steps.length;
    let generatedOffset = 0;
    if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {
      context.errors.push(keyframesMissingOffsets());
    } else if (totalKeyframesWithOffsets == 0) {
      generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);
    }
    const limit = length - 1;
    const currentTime = context.currentTime;
    const currentAnimateTimings = context.currentAnimateTimings;
    const animateDuration = currentAnimateTimings.duration;
    keyframes.forEach((kf, i) => {
      const offset = generatedOffset > 0 ? i == limit ? 1 : generatedOffset * i : offsets[i];
      const durationUpToThisFrame = offset * animateDuration;
      context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;
      currentAnimateTimings.duration = durationUpToThisFrame;
      this._validateStyleAst(kf, context);
      kf.offset = offset;
      ast.styles.push(kf);
    });
    return ast;
  }
  visitReference(metadata, context) {
    return {
      type: AnimationMetadataType.Reference,
      animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),
      options: normalizeAnimationOptions(metadata.options)
    };
  }
  visitAnimateChild(metadata, context) {
    context.depCount++;
    return {
      type: AnimationMetadataType.AnimateChild,
      options: normalizeAnimationOptions(metadata.options)
    };
  }
  visitAnimateRef(metadata, context) {
    return {
      type: AnimationMetadataType.AnimateRef,
      animation: this.visitReference(metadata.animation, context),
      options: normalizeAnimationOptions(metadata.options)
    };
  }
  visitQuery(metadata, context) {
    const parentSelector = context.currentQuerySelector;
    const options = metadata.options || {};
    context.queryCount++;
    context.currentQuery = metadata;
    const [selector, includeSelf] = normalizeSelector(metadata.selector);
    context.currentQuerySelector = parentSelector.length ? parentSelector + " " + selector : selector;
    getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, /* @__PURE__ */ new Map());
    const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);
    context.currentQuery = null;
    context.currentQuerySelector = parentSelector;
    return {
      type: AnimationMetadataType.Query,
      selector,
      limit: options.limit || 0,
      optional: !!options.optional,
      includeSelf,
      animation,
      originalSelector: metadata.selector,
      options: normalizeAnimationOptions(metadata.options)
    };
  }
  visitStagger(metadata, context) {
    if (!context.currentQuery) {
      context.errors.push(invalidStagger());
    }
    const timings = metadata.timings === "full" ? {
      duration: 0,
      delay: 0,
      easing: "full"
    } : resolveTiming(metadata.timings, context.errors, true);
    return {
      type: AnimationMetadataType.Stagger,
      animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),
      timings,
      options: null
    };
  }
};
function normalizeSelector(selector) {
  const hasAmpersand = selector.split(/\s*,\s*/).find((token) => token == SELF_TOKEN) ? true : false;
  if (hasAmpersand) {
    selector = selector.replace(SELF_TOKEN_REGEX, "");
  }
  selector = selector.replace(/@\*/g, NG_TRIGGER_SELECTOR).replace(/@\w+/g, (match) => NG_TRIGGER_SELECTOR + "-" + match.slice(1)).replace(/:animating/g, NG_ANIMATING_SELECTOR);
  return [selector, hasAmpersand];
}
function normalizeParams(obj) {
  return obj ? __spreadValues({}, obj) : null;
}
var AnimationAstBuilderContext = class {
  constructor(errors) {
    this.errors = errors;
    this.queryCount = 0;
    this.depCount = 0;
    this.currentTransition = null;
    this.currentQuery = null;
    this.currentQuerySelector = null;
    this.currentAnimateTimings = null;
    this.currentTime = 0;
    this.collectedStyles = /* @__PURE__ */ new Map();
    this.options = null;
    this.unsupportedCSSPropertiesFound = /* @__PURE__ */ new Set();
  }
};
function consumeOffset(styles) {
  if (typeof styles == "string")
    return null;
  let offset = null;
  if (Array.isArray(styles)) {
    styles.forEach((styleTuple) => {
      if (styleTuple instanceof Map && styleTuple.has("offset")) {
        const obj = styleTuple;
        offset = parseFloat(obj.get("offset"));
        obj.delete("offset");
      }
    });
  } else if (styles instanceof Map && styles.has("offset")) {
    const obj = styles;
    offset = parseFloat(obj.get("offset"));
    obj.delete("offset");
  }
  return offset;
}
function constructTimingAst(value, errors) {
  if (value.hasOwnProperty("duration")) {
    return value;
  }
  if (typeof value == "number") {
    const duration = resolveTiming(value, errors).duration;
    return makeTimingAst(duration, 0, "");
  }
  const strValue = value;
  const isDynamic = strValue.split(/\s+/).some((v) => v.charAt(0) == "{" && v.charAt(1) == "{");
  if (isDynamic) {
    const ast = makeTimingAst(0, 0, "");
    ast.dynamic = true;
    ast.strValue = strValue;
    return ast;
  }
  const timings = resolveTiming(strValue, errors);
  return makeTimingAst(timings.duration, timings.delay, timings.easing);
}
function normalizeAnimationOptions(options) {
  if (options) {
    options = __spreadValues({}, options);
    if (options["params"]) {
      options["params"] = normalizeParams(options["params"]);
    }
  } else {
    options = {};
  }
  return options;
}
function makeTimingAst(duration, delay2, easing) {
  return {
    duration,
    delay: delay2,
    easing
  };
}
function createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay2, easing = null, subTimeline = false) {
  return {
    type: 1,
    element,
    keyframes,
    preStyleProps,
    postStyleProps,
    duration,
    delay: delay2,
    totalTime: duration + delay2,
    easing,
    subTimeline
  };
}
var ElementInstructionMap = class {
  constructor() {
    this._map = /* @__PURE__ */ new Map();
  }
  get(element) {
    return this._map.get(element) || [];
  }
  append(element, instructions) {
    let existingInstructions = this._map.get(element);
    if (!existingInstructions) {
      this._map.set(element, existingInstructions = []);
    }
    existingInstructions.push(...instructions);
  }
  has(element) {
    return this._map.has(element);
  }
  clear() {
    this._map.clear();
  }
};
var ONE_FRAME_IN_MILLISECONDS = 1;
var ENTER_TOKEN = ":enter";
var ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, "g");
var LEAVE_TOKEN = ":leave";
var LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, "g");
function buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = /* @__PURE__ */ new Map(), finalStyles = /* @__PURE__ */ new Map(), options, subInstructions, errors = []) {
  return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);
}
var AnimationTimelineBuilderVisitor = class {
  buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {
    subInstructions = subInstructions || new ElementInstructionMap();
    const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);
    context.options = options;
    const delay2 = options.delay ? resolveTimingValue(options.delay) : 0;
    context.currentTimeline.delayNextStep(delay2);
    context.currentTimeline.setStyles([startingStyles], null, context.errors, options);
    visitDslNode(this, ast, context);
    const timelines = context.timelines.filter((timeline) => timeline.containsAnimation());
    if (timelines.length && finalStyles.size) {
      let lastRootTimeline;
      for (let i = timelines.length - 1; i >= 0; i--) {
        const timeline = timelines[i];
        if (timeline.element === rootElement) {
          lastRootTimeline = timeline;
          break;
        }
      }
      if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {
        lastRootTimeline.setStyles([finalStyles], null, context.errors, options);
      }
    }
    return timelines.length ? timelines.map((timeline) => timeline.buildKeyframes()) : [createTimelineInstruction(rootElement, [], [], [], 0, delay2, "", false)];
  }
  visitTrigger(ast, context) {
  }
  visitState(ast, context) {
  }
  visitTransition(ast, context) {
  }
  visitAnimateChild(ast, context) {
    const elementInstructions = context.subInstructions.get(context.element);
    if (elementInstructions) {
      const innerContext = context.createSubContext(ast.options);
      const startTime = context.currentTimeline.currentTime;
      const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);
      if (startTime != endTime) {
        context.transformIntoNewTimeline(endTime);
      }
    }
    context.previousNode = ast;
  }
  visitAnimateRef(ast, context) {
    const innerContext = context.createSubContext(ast.options);
    innerContext.transformIntoNewTimeline();
    this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);
    this.visitReference(ast.animation, innerContext);
    context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);
    context.previousNode = ast;
  }
  _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {
    for (const animationRefOptions of animationsRefsOptions) {
      const animationDelay = animationRefOptions?.delay;
      if (animationDelay) {
        const animationDelayValue = typeof animationDelay === "number" ? animationDelay : resolveTimingValue(interpolateParams(animationDelay, animationRefOptions?.params ?? {}, context.errors));
        innerContext.delayNextStep(animationDelayValue);
      }
    }
  }
  _visitSubInstructions(instructions, context, options) {
    const startTime = context.currentTimeline.currentTime;
    let furthestTime = startTime;
    const duration = options.duration != null ? resolveTimingValue(options.duration) : null;
    const delay2 = options.delay != null ? resolveTimingValue(options.delay) : null;
    if (duration !== 0) {
      instructions.forEach((instruction) => {
        const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay2);
        furthestTime = Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);
      });
    }
    return furthestTime;
  }
  visitReference(ast, context) {
    context.updateOptions(ast.options, true);
    visitDslNode(this, ast.animation, context);
    context.previousNode = ast;
  }
  visitSequence(ast, context) {
    const subContextCount = context.subContextCount;
    let ctx = context;
    const options = ast.options;
    if (options && (options.params || options.delay)) {
      ctx = context.createSubContext(options);
      ctx.transformIntoNewTimeline();
      if (options.delay != null) {
        if (ctx.previousNode.type == AnimationMetadataType.Style) {
          ctx.currentTimeline.snapshotCurrentStyles();
          ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
        }
        const delay2 = resolveTimingValue(options.delay);
        ctx.delayNextStep(delay2);
      }
    }
    if (ast.steps.length) {
      ast.steps.forEach((s) => visitDslNode(this, s, ctx));
      ctx.currentTimeline.applyStylesToKeyframe();
      if (ctx.subContextCount > subContextCount) {
        ctx.transformIntoNewTimeline();
      }
    }
    context.previousNode = ast;
  }
  visitGroup(ast, context) {
    const innerTimelines = [];
    let furthestTime = context.currentTimeline.currentTime;
    const delay2 = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;
    ast.steps.forEach((s) => {
      const innerContext = context.createSubContext(ast.options);
      if (delay2) {
        innerContext.delayNextStep(delay2);
      }
      visitDslNode(this, s, innerContext);
      furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);
      innerTimelines.push(innerContext.currentTimeline);
    });
    innerTimelines.forEach((timeline) => context.currentTimeline.mergeTimelineCollectedStyles(timeline));
    context.transformIntoNewTimeline(furthestTime);
    context.previousNode = ast;
  }
  _visitTiming(ast, context) {
    if (ast.dynamic) {
      const strValue = ast.strValue;
      const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;
      return resolveTiming(timingValue, context.errors);
    } else {
      return {
        duration: ast.duration,
        delay: ast.delay,
        easing: ast.easing
      };
    }
  }
  visitAnimate(ast, context) {
    const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);
    const timeline = context.currentTimeline;
    if (timings.delay) {
      context.incrementTime(timings.delay);
      timeline.snapshotCurrentStyles();
    }
    const style2 = ast.style;
    if (style2.type == AnimationMetadataType.Keyframes) {
      this.visitKeyframes(style2, context);
    } else {
      context.incrementTime(timings.duration);
      this.visitStyle(style2, context);
      timeline.applyStylesToKeyframe();
    }
    context.currentAnimateTimings = null;
    context.previousNode = ast;
  }
  visitStyle(ast, context) {
    const timeline = context.currentTimeline;
    const timings = context.currentAnimateTimings;
    if (!timings && timeline.hasCurrentStyleProperties()) {
      timeline.forwardFrame();
    }
    const easing = timings && timings.easing || ast.easing;
    if (ast.isEmptyStep) {
      timeline.applyEmptyStep(easing);
    } else {
      timeline.setStyles(ast.styles, easing, context.errors, context.options);
    }
    context.previousNode = ast;
  }
  visitKeyframes(ast, context) {
    const currentAnimateTimings = context.currentAnimateTimings;
    const startTime = context.currentTimeline.duration;
    const duration = currentAnimateTimings.duration;
    const innerContext = context.createSubContext();
    const innerTimeline = innerContext.currentTimeline;
    innerTimeline.easing = currentAnimateTimings.easing;
    ast.styles.forEach((step) => {
      const offset = step.offset || 0;
      innerTimeline.forwardTime(offset * duration);
      innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);
      innerTimeline.applyStylesToKeyframe();
    });
    context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);
    context.transformIntoNewTimeline(startTime + duration);
    context.previousNode = ast;
  }
  visitQuery(ast, context) {
    const startTime = context.currentTimeline.currentTime;
    const options = ast.options || {};
    const delay2 = options.delay ? resolveTimingValue(options.delay) : 0;
    if (delay2 && (context.previousNode.type === AnimationMetadataType.Style || startTime == 0 && context.currentTimeline.hasCurrentStyleProperties())) {
      context.currentTimeline.snapshotCurrentStyles();
      context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
    }
    let furthestTime = startTime;
    const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);
    context.currentQueryTotal = elms.length;
    let sameElementTimeline = null;
    elms.forEach((element, i) => {
      context.currentQueryIndex = i;
      const innerContext = context.createSubContext(ast.options, element);
      if (delay2) {
        innerContext.delayNextStep(delay2);
      }
      if (element === context.element) {
        sameElementTimeline = innerContext.currentTimeline;
      }
      visitDslNode(this, ast.animation, innerContext);
      innerContext.currentTimeline.applyStylesToKeyframe();
      const endTime = innerContext.currentTimeline.currentTime;
      furthestTime = Math.max(furthestTime, endTime);
    });
    context.currentQueryIndex = 0;
    context.currentQueryTotal = 0;
    context.transformIntoNewTimeline(furthestTime);
    if (sameElementTimeline) {
      context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);
      context.currentTimeline.snapshotCurrentStyles();
    }
    context.previousNode = ast;
  }
  visitStagger(ast, context) {
    const parentContext = context.parentContext;
    const tl = context.currentTimeline;
    const timings = ast.timings;
    const duration = Math.abs(timings.duration);
    const maxTime = duration * (context.currentQueryTotal - 1);
    let delay2 = duration * context.currentQueryIndex;
    let staggerTransformer = timings.duration < 0 ? "reverse" : timings.easing;
    switch (staggerTransformer) {
      case "reverse":
        delay2 = maxTime - delay2;
        break;
      case "full":
        delay2 = parentContext.currentStaggerTime;
        break;
    }
    const timeline = context.currentTimeline;
    if (delay2) {
      timeline.delayNextStep(delay2);
    }
    const startingTime = timeline.currentTime;
    visitDslNode(this, ast.animation, context);
    context.previousNode = ast;
    parentContext.currentStaggerTime = tl.currentTime - startingTime + (tl.startTime - parentContext.currentTimeline.startTime);
  }
};
var DEFAULT_NOOP_PREVIOUS_NODE = {};
var AnimationTimelineContext = class _AnimationTimelineContext {
  constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {
    this._driver = _driver;
    this.element = element;
    this.subInstructions = subInstructions;
    this._enterClassName = _enterClassName;
    this._leaveClassName = _leaveClassName;
    this.errors = errors;
    this.timelines = timelines;
    this.parentContext = null;
    this.currentAnimateTimings = null;
    this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
    this.subContextCount = 0;
    this.options = {};
    this.currentQueryIndex = 0;
    this.currentQueryTotal = 0;
    this.currentStaggerTime = 0;
    this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);
    timelines.push(this.currentTimeline);
  }
  get params() {
    return this.options.params;
  }
  updateOptions(options, skipIfExists) {
    if (!options)
      return;
    const newOptions = options;
    let optionsToUpdate = this.options;
    if (newOptions.duration != null) {
      optionsToUpdate.duration = resolveTimingValue(newOptions.duration);
    }
    if (newOptions.delay != null) {
      optionsToUpdate.delay = resolveTimingValue(newOptions.delay);
    }
    const newParams = newOptions.params;
    if (newParams) {
      let paramsToUpdate = optionsToUpdate.params;
      if (!paramsToUpdate) {
        paramsToUpdate = this.options.params = {};
      }
      Object.keys(newParams).forEach((name) => {
        if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {
          paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);
        }
      });
    }
  }
  _copyOptions() {
    const options = {};
    if (this.options) {
      const oldParams = this.options.params;
      if (oldParams) {
        const params = options["params"] = {};
        Object.keys(oldParams).forEach((name) => {
          params[name] = oldParams[name];
        });
      }
    }
    return options;
  }
  createSubContext(options = null, element, newTime) {
    const target = element || this.element;
    const context = new _AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));
    context.previousNode = this.previousNode;
    context.currentAnimateTimings = this.currentAnimateTimings;
    context.options = this._copyOptions();
    context.updateOptions(options);
    context.currentQueryIndex = this.currentQueryIndex;
    context.currentQueryTotal = this.currentQueryTotal;
    context.parentContext = this;
    this.subContextCount++;
    return context;
  }
  transformIntoNewTimeline(newTime) {
    this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
    this.currentTimeline = this.currentTimeline.fork(this.element, newTime);
    this.timelines.push(this.currentTimeline);
    return this.currentTimeline;
  }
  appendInstructionToTimeline(instruction, duration, delay2) {
    const updatedTimings = {
      duration: duration != null ? duration : instruction.duration,
      delay: this.currentTimeline.currentTime + (delay2 != null ? delay2 : 0) + instruction.delay,
      easing: ""
    };
    const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);
    this.timelines.push(builder);
    return updatedTimings;
  }
  incrementTime(time) {
    this.currentTimeline.forwardTime(this.currentTimeline.duration + time);
  }
  delayNextStep(delay2) {
    if (delay2 > 0) {
      this.currentTimeline.delayNextStep(delay2);
    }
  }
  invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {
    let results = [];
    if (includeSelf) {
      results.push(this.element);
    }
    if (selector.length > 0) {
      selector = selector.replace(ENTER_TOKEN_REGEX, "." + this._enterClassName);
      selector = selector.replace(LEAVE_TOKEN_REGEX, "." + this._leaveClassName);
      const multi = limit != 1;
      let elements = this._driver.query(this.element, selector, multi);
      if (limit !== 0) {
        elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) : elements.slice(0, limit);
      }
      results.push(...elements);
    }
    if (!optional && results.length == 0) {
      errors.push(invalidQuery(originalSelector));
    }
    return results;
  }
};
var TimelineBuilder = class _TimelineBuilder {
  constructor(_driver, element, startTime, _elementTimelineStylesLookup) {
    this._driver = _driver;
    this.element = element;
    this.startTime = startTime;
    this._elementTimelineStylesLookup = _elementTimelineStylesLookup;
    this.duration = 0;
    this.easing = null;
    this._previousKeyframe = /* @__PURE__ */ new Map();
    this._currentKeyframe = /* @__PURE__ */ new Map();
    this._keyframes = /* @__PURE__ */ new Map();
    this._styleSummary = /* @__PURE__ */ new Map();
    this._localTimelineStyles = /* @__PURE__ */ new Map();
    this._pendingStyles = /* @__PURE__ */ new Map();
    this._backFill = /* @__PURE__ */ new Map();
    this._currentEmptyStepKeyframe = null;
    if (!this._elementTimelineStylesLookup) {
      this._elementTimelineStylesLookup = /* @__PURE__ */ new Map();
    }
    this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);
    if (!this._globalTimelineStyles) {
      this._globalTimelineStyles = this._localTimelineStyles;
      this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);
    }
    this._loadKeyframe();
  }
  containsAnimation() {
    switch (this._keyframes.size) {
      case 0:
        return false;
      case 1:
        return this.hasCurrentStyleProperties();
      default:
        return true;
    }
  }
  hasCurrentStyleProperties() {
    return this._currentKeyframe.size > 0;
  }
  get currentTime() {
    return this.startTime + this.duration;
  }
  delayNextStep(delay2) {
    const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;
    if (this.duration || hasPreStyleStep) {
      this.forwardTime(this.currentTime + delay2);
      if (hasPreStyleStep) {
        this.snapshotCurrentStyles();
      }
    } else {
      this.startTime += delay2;
    }
  }
  fork(element, currentTime) {
    this.applyStylesToKeyframe();
    return new _TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);
  }
  _loadKeyframe() {
    if (this._currentKeyframe) {
      this._previousKeyframe = this._currentKeyframe;
    }
    this._currentKeyframe = this._keyframes.get(this.duration);
    if (!this._currentKeyframe) {
      this._currentKeyframe = /* @__PURE__ */ new Map();
      this._keyframes.set(this.duration, this._currentKeyframe);
    }
  }
  forwardFrame() {
    this.duration += ONE_FRAME_IN_MILLISECONDS;
    this._loadKeyframe();
  }
  forwardTime(time) {
    this.applyStylesToKeyframe();
    this.duration = time;
    this._loadKeyframe();
  }
  _updateStyle(prop, value) {
    this._localTimelineStyles.set(prop, value);
    this._globalTimelineStyles.set(prop, value);
    this._styleSummary.set(prop, {
      time: this.currentTime,
      value
    });
  }
  allowOnlyTimelineStyles() {
    return this._currentEmptyStepKeyframe !== this._currentKeyframe;
  }
  applyEmptyStep(easing) {
    if (easing) {
      this._previousKeyframe.set("easing", easing);
    }
    for (let [prop, value] of this._globalTimelineStyles) {
      this._backFill.set(prop, value || AUTO_STYLE);
      this._currentKeyframe.set(prop, AUTO_STYLE);
    }
    this._currentEmptyStepKeyframe = this._currentKeyframe;
  }
  setStyles(input, easing, errors, options) {
    if (easing) {
      this._previousKeyframe.set("easing", easing);
    }
    const params = options && options.params || {};
    const styles = flattenStyles(input, this._globalTimelineStyles);
    for (let [prop, value] of styles) {
      const val = interpolateParams(value, params, errors);
      this._pendingStyles.set(prop, val);
      if (!this._localTimelineStyles.has(prop)) {
        this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);
      }
      this._updateStyle(prop, val);
    }
  }
  applyStylesToKeyframe() {
    if (this._pendingStyles.size == 0)
      return;
    this._pendingStyles.forEach((val, prop) => {
      this._currentKeyframe.set(prop, val);
    });
    this._pendingStyles.clear();
    this._localTimelineStyles.forEach((val, prop) => {
      if (!this._currentKeyframe.has(prop)) {
        this._currentKeyframe.set(prop, val);
      }
    });
  }
  snapshotCurrentStyles() {
    for (let [prop, val] of this._localTimelineStyles) {
      this._pendingStyles.set(prop, val);
      this._updateStyle(prop, val);
    }
  }
  getFinalKeyframe() {
    return this._keyframes.get(this.duration);
  }
  get properties() {
    const properties = [];
    for (let prop in this._currentKeyframe) {
      properties.push(prop);
    }
    return properties;
  }
  mergeTimelineCollectedStyles(timeline) {
    timeline._styleSummary.forEach((details1, prop) => {
      const details0 = this._styleSummary.get(prop);
      if (!details0 || details1.time > details0.time) {
        this._updateStyle(prop, details1.value);
      }
    });
  }
  buildKeyframes() {
    this.applyStylesToKeyframe();
    const preStyleProps = /* @__PURE__ */ new Set();
    const postStyleProps = /* @__PURE__ */ new Set();
    const isEmpty = this._keyframes.size === 1 && this.duration === 0;
    let finalKeyframes = [];
    this._keyframes.forEach((keyframe, time) => {
      const finalKeyframe = new Map([...this._backFill, ...keyframe]);
      finalKeyframe.forEach((value, prop) => {
        if (value === \u0275PRE_STYLE) {
          preStyleProps.add(prop);
        } else if (value === AUTO_STYLE) {
          postStyleProps.add(prop);
        }
      });
      if (!isEmpty) {
        finalKeyframe.set("offset", time / this.duration);
      }
      finalKeyframes.push(finalKeyframe);
    });
    const preProps = [...preStyleProps.values()];
    const postProps = [...postStyleProps.values()];
    if (isEmpty) {
      const kf0 = finalKeyframes[0];
      const kf1 = new Map(kf0);
      kf0.set("offset", 0);
      kf1.set("offset", 1);
      finalKeyframes = [kf0, kf1];
    }
    return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);
  }
};
var SubTimelineBuilder = class extends TimelineBuilder {
  constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {
    super(driver, element, timings.delay);
    this.keyframes = keyframes;
    this.preStyleProps = preStyleProps;
    this.postStyleProps = postStyleProps;
    this._stretchStartingKeyframe = _stretchStartingKeyframe;
    this.timings = {
      duration: timings.duration,
      delay: timings.delay,
      easing: timings.easing
    };
  }
  containsAnimation() {
    return this.keyframes.length > 1;
  }
  buildKeyframes() {
    let keyframes = this.keyframes;
    let {
      delay: delay2,
      duration,
      easing
    } = this.timings;
    if (this._stretchStartingKeyframe && delay2) {
      const newKeyframes = [];
      const totalTime = duration + delay2;
      const startingGap = delay2 / totalTime;
      const newFirstKeyframe = new Map(keyframes[0]);
      newFirstKeyframe.set("offset", 0);
      newKeyframes.push(newFirstKeyframe);
      const oldFirstKeyframe = new Map(keyframes[0]);
      oldFirstKeyframe.set("offset", roundOffset(startingGap));
      newKeyframes.push(oldFirstKeyframe);
      const limit = keyframes.length - 1;
      for (let i = 1; i <= limit; i++) {
        let kf = new Map(keyframes[i]);
        const oldOffset = kf.get("offset");
        const timeAtKeyframe = delay2 + oldOffset * duration;
        kf.set("offset", roundOffset(timeAtKeyframe / totalTime));
        newKeyframes.push(kf);
      }
      duration = totalTime;
      delay2 = 0;
      easing = "";
      keyframes = newKeyframes;
    }
    return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay2, easing, true);
  }
};
function roundOffset(offset, decimalPoints = 3) {
  const mult = Math.pow(10, decimalPoints - 1);
  return Math.round(offset * mult) / mult;
}
function flattenStyles(input, allStyles) {
  const styles = /* @__PURE__ */ new Map();
  let allProperties;
  input.forEach((token) => {
    if (token === "*") {
      allProperties ??= allStyles.keys();
      for (let prop of allProperties) {
        styles.set(prop, AUTO_STYLE);
      }
    } else {
      for (let [prop, val] of token) {
        styles.set(prop, val);
      }
    }
  });
  return styles;
}
function createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {
  return {
    type: 0,
    element,
    triggerName,
    isRemovalTransition,
    fromState,
    fromStyles,
    toState,
    toStyles,
    timelines,
    queriedElements,
    preStyleProps,
    postStyleProps,
    totalTime,
    errors
  };
}
var EMPTY_OBJECT = {};
var AnimationTransitionFactory = class {
  constructor(_triggerName, ast, _stateStyles) {
    this._triggerName = _triggerName;
    this.ast = ast;
    this._stateStyles = _stateStyles;
  }
  match(currentState, nextState, element, params) {
    return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);
  }
  buildStyles(stateName, params, errors) {
    let styler = this._stateStyles.get("*");
    if (stateName !== void 0) {
      styler = this._stateStyles.get(stateName?.toString()) || styler;
    }
    return styler ? styler.buildStyles(params, errors) : /* @__PURE__ */ new Map();
  }
  build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {
    const errors = [];
    const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;
    const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;
    const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);
    const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;
    const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);
    const queriedElements = /* @__PURE__ */ new Set();
    const preStyleMap = /* @__PURE__ */ new Map();
    const postStyleMap = /* @__PURE__ */ new Map();
    const isRemoval = nextState === "void";
    const animationOptions = {
      params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),
      delay: this.ast.options?.delay
    };
    const timelines = skipAstBuild ? [] : buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);
    let totalTime = 0;
    timelines.forEach((tl) => {
      totalTime = Math.max(tl.duration + tl.delay, totalTime);
    });
    if (errors.length) {
      return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);
    }
    timelines.forEach((tl) => {
      const elm = tl.element;
      const preProps = getOrSetDefaultValue(preStyleMap, elm, /* @__PURE__ */ new Set());
      tl.preStyleProps.forEach((prop) => preProps.add(prop));
      const postProps = getOrSetDefaultValue(postStyleMap, elm, /* @__PURE__ */ new Set());
      tl.postStyleProps.forEach((prop) => postProps.add(prop));
      if (elm !== element) {
        queriedElements.add(elm);
      }
    });
    if (typeof ngDevMode === "undefined" || ngDevMode) {
      checkNonAnimatableInTimelines(timelines, this._triggerName, driver);
    }
    return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, [...queriedElements.values()], preStyleMap, postStyleMap, totalTime);
  }
};
function checkNonAnimatableInTimelines(timelines, triggerName, driver) {
  if (!driver.validateAnimatableStyleProperty) {
    return;
  }
  const allowedNonAnimatableProps = /* @__PURE__ */ new Set([
    // 'easing' is a utility/synthetic prop we use to represent
    // easing functions, it represents a property of the animation
    // which is not animatable but different values can be used
    // in different steps
    "easing"
  ]);
  const invalidNonAnimatableProps = /* @__PURE__ */ new Set();
  timelines.forEach(({
    keyframes
  }) => {
    const nonAnimatablePropsInitialValues = /* @__PURE__ */ new Map();
    keyframes.forEach((keyframe) => {
      const entriesToCheck = Array.from(keyframe.entries()).filter(([prop]) => !allowedNonAnimatableProps.has(prop));
      for (const [prop, value] of entriesToCheck) {
        if (!driver.validateAnimatableStyleProperty(prop)) {
          if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {
            const propInitialValue = nonAnimatablePropsInitialValues.get(prop);
            if (propInitialValue !== value) {
              invalidNonAnimatableProps.add(prop);
            }
          } else {
            nonAnimatablePropsInitialValues.set(prop, value);
          }
        }
      }
    });
  });
  if (invalidNonAnimatableProps.size > 0) {
    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)");
  }
}
function oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {
  return matchFns.some((fn) => fn(currentState, nextState, element, params));
}
function applyParamDefaults(userParams, defaults) {
  const result = __spreadValues({}, defaults);
  Object.entries(userParams).forEach(([key, value]) => {
    if (value != null) {
      result[key] = value;
    }
  });
  return result;
}
var AnimationStateStyles = class {
  constructor(styles, defaultParams, normalizer) {
    this.styles = styles;
    this.defaultParams = defaultParams;
    this.normalizer = normalizer;
  }
  buildStyles(params, errors) {
    const finalStyles = /* @__PURE__ */ new Map();
    const combinedParams = applyParamDefaults(params, this.defaultParams);
    this.styles.styles.forEach((value) => {
      if (typeof value !== "string") {
        value.forEach((val, prop) => {
          if (val) {
            val = interpolateParams(val, combinedParams, errors);
          }
          const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);
          val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);
          finalStyles.set(prop, val);
        });
      }
    });
    return finalStyles;
  }
};
function buildTrigger(name, ast, normalizer) {
  return new AnimationTrigger(name, ast, normalizer);
}
var AnimationTrigger = class {
  constructor(name, ast, _normalizer) {
    this.name = name;
    this.ast = ast;
    this._normalizer = _normalizer;
    this.transitionFactories = [];
    this.states = /* @__PURE__ */ new Map();
    ast.states.forEach((ast2) => {
      const defaultParams = ast2.options && ast2.options.params || {};
      this.states.set(ast2.name, new AnimationStateStyles(ast2.style, defaultParams, _normalizer));
    });
    balanceProperties(this.states, "true", "1");
    balanceProperties(this.states, "false", "0");
    ast.transitions.forEach((ast2) => {
      this.transitionFactories.push(new AnimationTransitionFactory(name, ast2, this.states));
    });
    this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);
  }
  get containsQueries() {
    return this.ast.queryCount > 0;
  }
  matchTransition(currentState, nextState, element, params) {
    const entry = this.transitionFactories.find((f) => f.match(currentState, nextState, element, params));
    return entry || null;
  }
  matchStyles(currentState, params, errors) {
    return this.fallbackTransition.buildStyles(currentState, params, errors);
  }
};
function createFallbackTransition(triggerName, states, normalizer) {
  const matchers = [(fromState, toState) => true];
  const animation = {
    type: AnimationMetadataType.Sequence,
    steps: [],
    options: null
  };
  const transition2 = {
    type: AnimationMetadataType.Transition,
    animation,
    matchers,
    options: null,
    queryCount: 0,
    depCount: 0
  };
  return new AnimationTransitionFactory(triggerName, transition2, states);
}
function balanceProperties(stateMap, key1, key2) {
  if (stateMap.has(key1)) {
    if (!stateMap.has(key2)) {
      stateMap.set(key2, stateMap.get(key1));
    }
  } else if (stateMap.has(key2)) {
    stateMap.set(key1, stateMap.get(key2));
  }
}
var EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();
var TimelineAnimationEngine = class {
  constructor(bodyNode, _driver, _normalizer) {
    this.bodyNode = bodyNode;
    this._driver = _driver;
    this._normalizer = _normalizer;
    this._animations = /* @__PURE__ */ new Map();
    this._playersById = /* @__PURE__ */ new Map();
    this.players = [];
  }
  register(id, metadata) {
    const errors = [];
    const warnings = [];
    const ast = buildAnimationAst(this._driver, metadata, errors, warnings);
    if (errors.length) {
      throw registerFailed(errors);
    } else {
      if (warnings.length) {
        warnRegister(warnings);
      }
      this._animations.set(id, ast);
    }
  }
  _buildPlayer(i, preStyles, postStyles) {
    const element = i.element;
    const keyframes = normalizeKeyframes$1(this._normalizer, i.keyframes, preStyles, postStyles);
    return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);
  }
  create(id, element, options = {}) {
    const errors = [];
    const ast = this._animations.get(id);
    let instructions;
    const autoStylesMap = /* @__PURE__ */ new Map();
    if (ast) {
      instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, /* @__PURE__ */ new Map(), /* @__PURE__ */ new Map(), options, EMPTY_INSTRUCTION_MAP, errors);
      instructions.forEach((inst) => {
        const styles = getOrSetDefaultValue(autoStylesMap, inst.element, /* @__PURE__ */ new Map());
        inst.postStyleProps.forEach((prop) => styles.set(prop, null));
      });
    } else {
      errors.push(missingOrDestroyedAnimation());
      instructions = [];
    }
    if (errors.length) {
      throw createAnimationFailed(errors);
    }
    autoStylesMap.forEach((styles, element2) => {
      styles.forEach((_, prop) => {
        styles.set(prop, this._driver.computeStyle(element2, prop, AUTO_STYLE));
      });
    });
    const players = instructions.map((i) => {
      const styles = autoStylesMap.get(i.element);
      return this._buildPlayer(i, /* @__PURE__ */ new Map(), styles);
    });
    const player = optimizeGroupPlayer(players);
    this._playersById.set(id, player);
    player.onDestroy(() => this.destroy(id));
    this.players.push(player);
    return player;
  }
  destroy(id) {
    const player = this._getPlayer(id);
    player.destroy();
    this._playersById.delete(id);
    const index = this.players.indexOf(player);
    if (index >= 0) {
      this.players.splice(index, 1);
    }
  }
  _getPlayer(id) {
    const player = this._playersById.get(id);
    if (!player) {
      throw missingPlayer(id);
    }
    return player;
  }
  listen(id, element, eventName, callback) {
    const baseEvent = makeAnimationEvent(element, "", "", "");
    listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);
    return () => {
    };
  }
  command(id, element, command, args) {
    if (command == "register") {
      this.register(id, args[0]);
      return;
    }
    if (command == "create") {
      const options = args[0] || {};
      this.create(id, element, options);
      return;
    }
    const player = this._getPlayer(id);
    switch (command) {
      case "play":
        player.play();
        break;
      case "pause":
        player.pause();
        break;
      case "reset":
        player.reset();
        break;
      case "restart":
        player.restart();
        break;
      case "finish":
        player.finish();
        break;
      case "init":
        player.init();
        break;
      case "setPosition":
        player.setPosition(parseFloat(args[0]));
        break;
      case "destroy":
        this.destroy(id);
        break;
    }
  }
};
var QUEUED_CLASSNAME = "ng-animate-queued";
var QUEUED_SELECTOR = ".ng-animate-queued";
var DISABLED_CLASSNAME = "ng-animate-disabled";
var DISABLED_SELECTOR = ".ng-animate-disabled";
var STAR_CLASSNAME = "ng-star-inserted";
var STAR_SELECTOR = ".ng-star-inserted";
var EMPTY_PLAYER_ARRAY = [];
var NULL_REMOVAL_STATE = {
  namespaceId: "",
  setForRemoval: false,
  setForMove: false,
  hasAnimation: false,
  removedBeforeQueried: false
};
var NULL_REMOVED_QUERIED_STATE = {
  namespaceId: "",
  setForMove: false,
  setForRemoval: false,
  hasAnimation: false,
  removedBeforeQueried: true
};
var REMOVAL_FLAG = "__ng_removed";
var StateValue = class {
  get params() {
    return this.options.params;
  }
  constructor(input, namespaceId = "") {
    this.namespaceId = namespaceId;
    const isObj = input && input.hasOwnProperty("value");
    const value = isObj ? input["value"] : input;
    this.value = normalizeTriggerValue(value);
    if (isObj) {
      const _a = input, {
        value: value2
      } = _a, options = __objRest(_a, [
        "value"
      ]);
      this.options = options;
    } else {
      this.options = {};
    }
    if (!this.options.params) {
      this.options.params = {};
    }
  }
  absorbOptions(options) {
    const newParams = options.params;
    if (newParams) {
      const oldParams = this.options.params;
      Object.keys(newParams).forEach((prop) => {
        if (oldParams[prop] == null) {
          oldParams[prop] = newParams[prop];
        }
      });
    }
  }
};
var VOID_VALUE = "void";
var DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);
var AnimationTransitionNamespace = class {
  constructor(id, hostElement, _engine) {
    this.id = id;
    this.hostElement = hostElement;
    this._engine = _engine;
    this.players = [];
    this._triggers = /* @__PURE__ */ new Map();
    this._queue = [];
    this._elementListeners = /* @__PURE__ */ new Map();
    this._hostClassName = "ng-tns-" + id;
    addClass(hostElement, this._hostClassName);
  }
  listen(element, name, phase, callback) {
    if (!this._triggers.has(name)) {
      throw missingTrigger(phase, name);
    }
    if (phase == null || phase.length == 0) {
      throw missingEvent(name);
    }
    if (!isTriggerEventValid(phase)) {
      throw unsupportedTriggerEvent(phase, name);
    }
    const listeners = getOrSetDefaultValue(this._elementListeners, element, []);
    const data = {
      name,
      phase,
      callback
    };
    listeners.push(data);
    const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, /* @__PURE__ */ new Map());
    if (!triggersWithStates.has(name)) {
      addClass(element, NG_TRIGGER_CLASSNAME);
      addClass(element, NG_TRIGGER_CLASSNAME + "-" + name);
      triggersWithStates.set(name, DEFAULT_STATE_VALUE);
    }
    return () => {
      this._engine.afterFlush(() => {
        const index = listeners.indexOf(data);
        if (index >= 0) {
          listeners.splice(index, 1);
        }
        if (!this._triggers.has(name)) {
          triggersWithStates.delete(name);
        }
      });
    };
  }
  register(name, ast) {
    if (this._triggers.has(name)) {
      return false;
    } else {
      this._triggers.set(name, ast);
      return true;
    }
  }
  _getTrigger(name) {
    const trigger2 = this._triggers.get(name);
    if (!trigger2) {
      throw unregisteredTrigger(name);
    }
    return trigger2;
  }
  trigger(element, triggerName, value, defaultToFallback = true) {
    const trigger2 = this._getTrigger(triggerName);
    const player = new TransitionAnimationPlayer(this.id, triggerName, element);
    let triggersWithStates = this._engine.statesByElement.get(element);
    if (!triggersWithStates) {
      addClass(element, NG_TRIGGER_CLASSNAME);
      addClass(element, NG_TRIGGER_CLASSNAME + "-" + triggerName);
      this._engine.statesByElement.set(element, triggersWithStates = /* @__PURE__ */ new Map());
    }
    let fromState = triggersWithStates.get(triggerName);
    const toState = new StateValue(value, this.id);
    const isObj = value && value.hasOwnProperty("value");
    if (!isObj && fromState) {
      toState.absorbOptions(fromState.options);
    }
    triggersWithStates.set(triggerName, toState);
    if (!fromState) {
      fromState = DEFAULT_STATE_VALUE;
    }
    const isRemoval = toState.value === VOID_VALUE;
    if (!isRemoval && fromState.value === toState.value) {
      if (!objEquals(fromState.params, toState.params)) {
        const errors = [];
        const fromStyles = trigger2.matchStyles(fromState.value, fromState.params, errors);
        const toStyles = trigger2.matchStyles(toState.value, toState.params, errors);
        if (errors.length) {
          this._engine.reportError(errors);
        } else {
          this._engine.afterFlush(() => {
            eraseStyles(element, fromStyles);
            setStyles(element, toStyles);
          });
        }
      }
      return;
    }
    const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);
    playersOnElement.forEach((player2) => {
      if (player2.namespaceId == this.id && player2.triggerName == triggerName && player2.queued) {
        player2.destroy();
      }
    });
    let transition2 = trigger2.matchTransition(fromState.value, toState.value, element, toState.params);
    let isFallbackTransition = false;
    if (!transition2) {
      if (!defaultToFallback)
        return;
      transition2 = trigger2.fallbackTransition;
      isFallbackTransition = true;
    }
    this._engine.totalQueuedPlayers++;
    this._queue.push({
      element,
      triggerName,
      transition: transition2,
      fromState,
      toState,
      player,
      isFallbackTransition
    });
    if (!isFallbackTransition) {
      addClass(element, QUEUED_CLASSNAME);
      player.onStart(() => {
        removeClass(element, QUEUED_CLASSNAME);
      });
    }
    player.onDone(() => {
      let index = this.players.indexOf(player);
      if (index >= 0) {
        this.players.splice(index, 1);
      }
      const players = this._engine.playersByElement.get(element);
      if (players) {
        let index2 = players.indexOf(player);
        if (index2 >= 0) {
          players.splice(index2, 1);
        }
      }
    });
    this.players.push(player);
    playersOnElement.push(player);
    return player;
  }
  deregister(name) {
    this._triggers.delete(name);
    this._engine.statesByElement.forEach((stateMap) => stateMap.delete(name));
    this._elementListeners.forEach((listeners, element) => {
      this._elementListeners.set(element, listeners.filter((entry) => {
        return entry.name != name;
      }));
    });
  }
  clearElementCache(element) {
    this._engine.statesByElement.delete(element);
    this._elementListeners.delete(element);
    const elementPlayers = this._engine.playersByElement.get(element);
    if (elementPlayers) {
      elementPlayers.forEach((player) => player.destroy());
      this._engine.playersByElement.delete(element);
    }
  }
  _signalRemovalForInnerTriggers(rootElement, context) {
    const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);
    elements.forEach((elm) => {
      if (elm[REMOVAL_FLAG])
        return;
      const namespaces = this._engine.fetchNamespacesByElement(elm);
      if (namespaces.size) {
        namespaces.forEach((ns) => ns.triggerLeaveAnimation(elm, context, false, true));
      } else {
        this.clearElementCache(elm);
      }
    });
    this._engine.afterFlushAnimationsDone(() => elements.forEach((elm) => this.clearElementCache(elm)));
  }
  triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {
    const triggerStates = this._engine.statesByElement.get(element);
    const previousTriggersValues = /* @__PURE__ */ new Map();
    if (triggerStates) {
      const players = [];
      triggerStates.forEach((state, triggerName) => {
        previousTriggersValues.set(triggerName, state.value);
        if (this._triggers.has(triggerName)) {
          const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);
          if (player) {
            players.push(player);
          }
        }
      });
      if (players.length) {
        this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);
        if (destroyAfterComplete) {
          optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));
        }
        return true;
      }
    }
    return false;
  }
  prepareLeaveAnimationListeners(element) {
    const listeners = this._elementListeners.get(element);
    const elementStates = this._engine.statesByElement.get(element);
    if (listeners && elementStates) {
      const visitedTriggers = /* @__PURE__ */ new Set();
      listeners.forEach((listener) => {
        const triggerName = listener.name;
        if (visitedTriggers.has(triggerName))
          return;
        visitedTriggers.add(triggerName);
        const trigger2 = this._triggers.get(triggerName);
        const transition2 = trigger2.fallbackTransition;
        const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;
        const toState = new StateValue(VOID_VALUE);
        const player = new TransitionAnimationPlayer(this.id, triggerName, element);
        this._engine.totalQueuedPlayers++;
        this._queue.push({
          element,
          triggerName,
          transition: transition2,
          fromState,
          toState,
          player,
          isFallbackTransition: true
        });
      });
    }
  }
  removeNode(element, context) {
    const engine = this._engine;
    if (element.childElementCount) {
      this._signalRemovalForInnerTriggers(element, context);
    }
    if (this.triggerLeaveAnimation(element, context, true))
      return;
    let containsPotentialParentTransition = false;
    if (engine.totalAnimations) {
      const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];
      if (currentPlayers && currentPlayers.length) {
        containsPotentialParentTransition = true;
      } else {
        let parent = element;
        while (parent = parent.parentNode) {
          const triggers = engine.statesByElement.get(parent);
          if (triggers) {
            containsPotentialParentTransition = true;
            break;
          }
        }
      }
    }
    this.prepareLeaveAnimationListeners(element);
    if (containsPotentialParentTransition) {
      engine.markElementAsRemoved(this.id, element, false, context);
    } else {
      const removalFlag = element[REMOVAL_FLAG];
      if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {
        engine.afterFlush(() => this.clearElementCache(element));
        engine.destroyInnerAnimations(element);
        engine._onRemovalComplete(element, context);
      }
    }
  }
  insertNode(element, parent) {
    addClass(element, this._hostClassName);
  }
  drainQueuedTransitions(microtaskId) {
    const instructions = [];
    this._queue.forEach((entry) => {
      const player = entry.player;
      if (player.destroyed)
        return;
      const element = entry.element;
      const listeners = this._elementListeners.get(element);
      if (listeners) {
        listeners.forEach((listener) => {
          if (listener.name == entry.triggerName) {
            const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);
            baseEvent["_data"] = microtaskId;
            listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);
          }
        });
      }
      if (player.markedForDestroy) {
        this._engine.afterFlush(() => {
          player.destroy();
        });
      } else {
        instructions.push(entry);
      }
    });
    this._queue = [];
    return instructions.sort((a, b) => {
      const d0 = a.transition.ast.depCount;
      const d1 = b.transition.ast.depCount;
      if (d0 == 0 || d1 == 0) {
        return d0 - d1;
      }
      return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;
    });
  }
  destroy(context) {
    this.players.forEach((p) => p.destroy());
    this._signalRemovalForInnerTriggers(this.hostElement, context);
  }
};
var TransitionAnimationEngine = class {
  /** @internal */
  _onRemovalComplete(element, context) {
    this.onRemovalComplete(element, context);
  }
  constructor(bodyNode, driver, _normalizer, scheduler) {
    this.bodyNode = bodyNode;
    this.driver = driver;
    this._normalizer = _normalizer;
    this.scheduler = scheduler;
    this.players = [];
    this.newHostElements = /* @__PURE__ */ new Map();
    this.playersByElement = /* @__PURE__ */ new Map();
    this.playersByQueriedElement = /* @__PURE__ */ new Map();
    this.statesByElement = /* @__PURE__ */ new Map();
    this.disabledNodes = /* @__PURE__ */ new Set();
    this.totalAnimations = 0;
    this.totalQueuedPlayers = 0;
    this._namespaceLookup = {};
    this._namespaceList = [];
    this._flushFns = [];
    this._whenQuietFns = [];
    this.namespacesByHostElement = /* @__PURE__ */ new Map();
    this.collectedEnterElements = [];
    this.collectedLeaveElements = [];
    this.onRemovalComplete = (element, context) => {
    };
  }
  get queuedPlayers() {
    const players = [];
    this._namespaceList.forEach((ns) => {
      ns.players.forEach((player) => {
        if (player.queued) {
          players.push(player);
        }
      });
    });
    return players;
  }
  createNamespace(namespaceId, hostElement) {
    const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);
    if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {
      this._balanceNamespaceList(ns, hostElement);
    } else {
      this.newHostElements.set(hostElement, ns);
      this.collectEnterElement(hostElement);
    }
    return this._namespaceLookup[namespaceId] = ns;
  }
  _balanceNamespaceList(ns, hostElement) {
    const namespaceList = this._namespaceList;
    const namespacesByHostElement = this.namespacesByHostElement;
    const limit = namespaceList.length - 1;
    if (limit >= 0) {
      let found = false;
      let ancestor = this.driver.getParentElement(hostElement);
      while (ancestor) {
        const ancestorNs = namespacesByHostElement.get(ancestor);
        if (ancestorNs) {
          const index = namespaceList.indexOf(ancestorNs);
          namespaceList.splice(index + 1, 0, ns);
          found = true;
          break;
        }
        ancestor = this.driver.getParentElement(ancestor);
      }
      if (!found) {
        namespaceList.unshift(ns);
      }
    } else {
      namespaceList.push(ns);
    }
    namespacesByHostElement.set(hostElement, ns);
    return ns;
  }
  register(namespaceId, hostElement) {
    let ns = this._namespaceLookup[namespaceId];
    if (!ns) {
      ns = this.createNamespace(namespaceId, hostElement);
    }
    return ns;
  }
  registerTrigger(namespaceId, name, trigger2) {
    let ns = this._namespaceLookup[namespaceId];
    if (ns && ns.register(name, trigger2)) {
      this.totalAnimations++;
    }
  }
  destroy(namespaceId, context) {
    if (!namespaceId)
      return;
    this.afterFlush(() => {
    });
    this.afterFlushAnimationsDone(() => {
      const ns = this._fetchNamespace(namespaceId);
      this.namespacesByHostElement.delete(ns.hostElement);
      const index = this._namespaceList.indexOf(ns);
      if (index >= 0) {
        this._namespaceList.splice(index, 1);
      }
      ns.destroy(context);
      delete this._namespaceLookup[namespaceId];
    });
  }
  _fetchNamespace(id) {
    return this._namespaceLookup[id];
  }
  fetchNamespacesByElement(element) {
    const namespaces = /* @__PURE__ */ new Set();
    const elementStates = this.statesByElement.get(element);
    if (elementStates) {
      for (let stateValue of elementStates.values()) {
        if (stateValue.namespaceId) {
          const ns = this._fetchNamespace(stateValue.namespaceId);
          if (ns) {
            namespaces.add(ns);
          }
        }
      }
    }
    return namespaces;
  }
  trigger(namespaceId, element, name, value) {
    if (isElementNode(element)) {
      const ns = this._fetchNamespace(namespaceId);
      if (ns) {
        ns.trigger(element, name, value);
        return true;
      }
    }
    return false;
  }
  insertNode(namespaceId, element, parent, insertBefore) {
    if (!isElementNode(element))
      return;
    const details = element[REMOVAL_FLAG];
    if (details && details.setForRemoval) {
      details.setForRemoval = false;
      details.setForMove = true;
      const index = this.collectedLeaveElements.indexOf(element);
      if (index >= 0) {
        this.collectedLeaveElements.splice(index, 1);
      }
    }
    if (namespaceId) {
      const ns = this._fetchNamespace(namespaceId);
      if (ns) {
        ns.insertNode(element, parent);
      }
    }
    if (insertBefore) {
      this.collectEnterElement(element);
    }
  }
  collectEnterElement(element) {
    this.collectedEnterElements.push(element);
  }
  markElementAsDisabled(element, value) {
    if (value) {
      if (!this.disabledNodes.has(element)) {
        this.disabledNodes.add(element);
        addClass(element, DISABLED_CLASSNAME);
      }
    } else if (this.disabledNodes.has(element)) {
      this.disabledNodes.delete(element);
      removeClass(element, DISABLED_CLASSNAME);
    }
  }
  removeNode(namespaceId, element, context) {
    if (isElementNode(element)) {
      this.scheduler?.notify();
      const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;
      if (ns) {
        ns.removeNode(element, context);
      } else {
        this.markElementAsRemoved(namespaceId, element, false, context);
      }
      const hostNS = this.namespacesByHostElement.get(element);
      if (hostNS && hostNS.id !== namespaceId) {
        hostNS.removeNode(element, context);
      }
    } else {
      this._onRemovalComplete(element, context);
    }
  }
  markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {
    this.collectedLeaveElements.push(element);
    element[REMOVAL_FLAG] = {
      namespaceId,
      setForRemoval: context,
      hasAnimation,
      removedBeforeQueried: false,
      previousTriggersValues
    };
  }
  listen(namespaceId, element, name, phase, callback) {
    if (isElementNode(element)) {
      return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);
    }
    return () => {
    };
  }
  _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {
    return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);
  }
  destroyInnerAnimations(containerElement) {
    let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);
    elements.forEach((element) => this.destroyActiveAnimationsForElement(element));
    if (this.playersByQueriedElement.size == 0)
      return;
    elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);
    elements.forEach((element) => this.finishActiveQueriedAnimationOnElement(element));
  }
  destroyActiveAnimationsForElement(element) {
    const players = this.playersByElement.get(element);
    if (players) {
      players.forEach((player) => {
        if (player.queued) {
          player.markedForDestroy = true;
        } else {
          player.destroy();
        }
      });
    }
  }
  finishActiveQueriedAnimationOnElement(element) {
    const players = this.playersByQueriedElement.get(element);
    if (players) {
      players.forEach((player) => player.finish());
    }
  }
  whenRenderingDone() {
    return new Promise((resolve) => {
      if (this.players.length) {
        return optimizeGroupPlayer(this.players).onDone(() => resolve());
      } else {
        resolve();
      }
    });
  }
  processLeaveNode(element) {
    const details = element[REMOVAL_FLAG];
    if (details && details.setForRemoval) {
      element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;
      if (details.namespaceId) {
        this.destroyInnerAnimations(element);
        const ns = this._fetchNamespace(details.namespaceId);
        if (ns) {
          ns.clearElementCache(element);
        }
      }
      this._onRemovalComplete(element, details.setForRemoval);
    }
    if (element.classList?.contains(DISABLED_CLASSNAME)) {
      this.markElementAsDisabled(element, false);
    }
    this.driver.query(element, DISABLED_SELECTOR, true).forEach((node) => {
      this.markElementAsDisabled(node, false);
    });
  }
  flush(microtaskId = -1) {
    let players = [];
    if (this.newHostElements.size) {
      this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));
      this.newHostElements.clear();
    }
    if (this.totalAnimations && this.collectedEnterElements.length) {
      for (let i = 0; i < this.collectedEnterElements.length; i++) {
        const elm = this.collectedEnterElements[i];
        addClass(elm, STAR_CLASSNAME);
      }
    }
    if (this._namespaceList.length && (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {
      const cleanupFns = [];
      try {
        players = this._flushAnimations(cleanupFns, microtaskId);
      } finally {
        for (let i = 0; i < cleanupFns.length; i++) {
          cleanupFns[i]();
        }
      }
    } else {
      for (let i = 0; i < this.collectedLeaveElements.length; i++) {
        const element = this.collectedLeaveElements[i];
        this.processLeaveNode(element);
      }
    }
    this.totalQueuedPlayers = 0;
    this.collectedEnterElements.length = 0;
    this.collectedLeaveElements.length = 0;
    this._flushFns.forEach((fn) => fn());
    this._flushFns = [];
    if (this._whenQuietFns.length) {
      const quietFns = this._whenQuietFns;
      this._whenQuietFns = [];
      if (players.length) {
        optimizeGroupPlayer(players).onDone(() => {
          quietFns.forEach((fn) => fn());
        });
      } else {
        quietFns.forEach((fn) => fn());
      }
    }
  }
  reportError(errors) {
    throw triggerTransitionsFailed(errors);
  }
  _flushAnimations(cleanupFns, microtaskId) {
    const subTimelines = new ElementInstructionMap();
    const skippedPlayers = [];
    const skippedPlayersMap = /* @__PURE__ */ new Map();
    const queuedInstructions = [];
    const queriedElements = /* @__PURE__ */ new Map();
    const allPreStyleElements = /* @__PURE__ */ new Map();
    const allPostStyleElements = /* @__PURE__ */ new Map();
    const disabledElementsSet = /* @__PURE__ */ new Set();
    this.disabledNodes.forEach((node) => {
      disabledElementsSet.add(node);
      const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);
      for (let i2 = 0; i2 < nodesThatAreDisabled.length; i2++) {
        disabledElementsSet.add(nodesThatAreDisabled[i2]);
      }
    });
    const bodyNode = this.bodyNode;
    const allTriggerElements = Array.from(this.statesByElement.keys());
    const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);
    const enterNodeMapIds = /* @__PURE__ */ new Map();
    let i = 0;
    enterNodeMap.forEach((nodes, root) => {
      const className = ENTER_CLASSNAME + i++;
      enterNodeMapIds.set(root, className);
      nodes.forEach((node) => addClass(node, className));
    });
    const allLeaveNodes = [];
    const mergedLeaveNodes = /* @__PURE__ */ new Set();
    const leaveNodesWithoutAnimations = /* @__PURE__ */ new Set();
    for (let i2 = 0; i2 < this.collectedLeaveElements.length; i2++) {
      const element = this.collectedLeaveElements[i2];
      const details = element[REMOVAL_FLAG];
      if (details && details.setForRemoval) {
        allLeaveNodes.push(element);
        mergedLeaveNodes.add(element);
        if (details.hasAnimation) {
          this.driver.query(element, STAR_SELECTOR, true).forEach((elm) => mergedLeaveNodes.add(elm));
        } else {
          leaveNodesWithoutAnimations.add(element);
        }
      }
    }
    const leaveNodeMapIds = /* @__PURE__ */ new Map();
    const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));
    leaveNodeMap.forEach((nodes, root) => {
      const className = LEAVE_CLASSNAME + i++;
      leaveNodeMapIds.set(root, className);
      nodes.forEach((node) => addClass(node, className));
    });
    cleanupFns.push(() => {
      enterNodeMap.forEach((nodes, root) => {
        const className = enterNodeMapIds.get(root);
        nodes.forEach((node) => removeClass(node, className));
      });
      leaveNodeMap.forEach((nodes, root) => {
        const className = leaveNodeMapIds.get(root);
        nodes.forEach((node) => removeClass(node, className));
      });
      allLeaveNodes.forEach((element) => {
        this.processLeaveNode(element);
      });
    });
    const allPlayers = [];
    const erroneousTransitions = [];
    for (let i2 = this._namespaceList.length - 1; i2 >= 0; i2--) {
      const ns = this._namespaceList[i2];
      ns.drainQueuedTransitions(microtaskId).forEach((entry) => {
        const player = entry.player;
        const element = entry.element;
        allPlayers.push(player);
        if (this.collectedEnterElements.length) {
          const details = element[REMOVAL_FLAG];
          if (details && details.setForMove) {
            if (details.previousTriggersValues && details.previousTriggersValues.has(entry.triggerName)) {
              const previousValue = details.previousTriggersValues.get(entry.triggerName);
              const triggersWithStates = this.statesByElement.get(entry.element);
              if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {
                const state = triggersWithStates.get(entry.triggerName);
                state.value = previousValue;
                triggersWithStates.set(entry.triggerName, state);
              }
            }
            player.destroy();
            return;
          }
        }
        const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);
        const leaveClassName = leaveNodeMapIds.get(element);
        const enterClassName = enterNodeMapIds.get(element);
        const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);
        if (instruction.errors && instruction.errors.length) {
          erroneousTransitions.push(instruction);
          return;
        }
        if (nodeIsOrphaned) {
          player.onStart(() => eraseStyles(element, instruction.fromStyles));
          player.onDestroy(() => setStyles(element, instruction.toStyles));
          skippedPlayers.push(player);
          return;
        }
        if (entry.isFallbackTransition) {
          player.onStart(() => eraseStyles(element, instruction.fromStyles));
          player.onDestroy(() => setStyles(element, instruction.toStyles));
          skippedPlayers.push(player);
          return;
        }
        const timelines = [];
        instruction.timelines.forEach((tl) => {
          tl.stretchStartingKeyframe = true;
          if (!this.disabledNodes.has(tl.element)) {
            timelines.push(tl);
          }
        });
        instruction.timelines = timelines;
        subTimelines.append(element, instruction.timelines);
        const tuple = {
          instruction,
          player,
          element
        };
        queuedInstructions.push(tuple);
        instruction.queriedElements.forEach((element2) => getOrSetDefaultValue(queriedElements, element2, []).push(player));
        instruction.preStyleProps.forEach((stringMap, element2) => {
          if (stringMap.size) {
            let setVal = allPreStyleElements.get(element2);
            if (!setVal) {
              allPreStyleElements.set(element2, setVal = /* @__PURE__ */ new Set());
            }
            stringMap.forEach((_, prop) => setVal.add(prop));
          }
        });
        instruction.postStyleProps.forEach((stringMap, element2) => {
          let setVal = allPostStyleElements.get(element2);
          if (!setVal) {
            allPostStyleElements.set(element2, setVal = /* @__PURE__ */ new Set());
          }
          stringMap.forEach((_, prop) => setVal.add(prop));
        });
      });
    }
    if (erroneousTransitions.length) {
      const errors = [];
      erroneousTransitions.forEach((instruction) => {
        errors.push(transitionFailed(instruction.triggerName, instruction.errors));
      });
      allPlayers.forEach((player) => player.destroy());
      this.reportError(errors);
    }
    const allPreviousPlayersMap = /* @__PURE__ */ new Map();
    const animationElementMap = /* @__PURE__ */ new Map();
    queuedInstructions.forEach((entry) => {
      const element = entry.element;
      if (subTimelines.has(element)) {
        animationElementMap.set(element, element);
        this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);
      }
    });
    skippedPlayers.forEach((player) => {
      const element = player.element;
      const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);
      previousPlayers.forEach((prevPlayer) => {
        getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);
        prevPlayer.destroy();
      });
    });
    const replaceNodes = allLeaveNodes.filter((node) => {
      return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);
    });
    const postStylesMap = /* @__PURE__ */ new Map();
    const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);
    allLeaveQueriedNodes.forEach((node) => {
      if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {
        replaceNodes.push(node);
      }
    });
    const preStylesMap = /* @__PURE__ */ new Map();
    enterNodeMap.forEach((nodes, root) => {
      cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, \u0275PRE_STYLE);
    });
    replaceNodes.forEach((node) => {
      const post = postStylesMap.get(node);
      const pre = preStylesMap.get(node);
      postStylesMap.set(node, new Map([...post?.entries() ?? [], ...pre?.entries() ?? []]));
    });
    const rootPlayers = [];
    const subPlayers = [];
    const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};
    queuedInstructions.forEach((entry) => {
      const {
        element,
        player,
        instruction
      } = entry;
      if (subTimelines.has(element)) {
        if (disabledElementsSet.has(element)) {
          player.onDestroy(() => setStyles(element, instruction.toStyles));
          player.disabled = true;
          player.overrideTotalTime(instruction.totalTime);
          skippedPlayers.push(player);
          return;
        }
        let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;
        if (animationElementMap.size > 1) {
          let elm = element;
          const parentsToAdd = [];
          while (elm = elm.parentNode) {
            const detectedParent = animationElementMap.get(elm);
            if (detectedParent) {
              parentWithAnimation = detectedParent;
              break;
            }
            parentsToAdd.push(elm);
          }
          parentsToAdd.forEach((parent) => animationElementMap.set(parent, parentWithAnimation));
        }
        const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);
        player.setRealPlayer(innerPlayer);
        if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {
          rootPlayers.push(player);
        } else {
          const parentPlayers = this.playersByElement.get(parentWithAnimation);
          if (parentPlayers && parentPlayers.length) {
            player.parentPlayer = optimizeGroupPlayer(parentPlayers);
          }
          skippedPlayers.push(player);
        }
      } else {
        eraseStyles(element, instruction.fromStyles);
        player.onDestroy(() => setStyles(element, instruction.toStyles));
        subPlayers.push(player);
        if (disabledElementsSet.has(element)) {
          skippedPlayers.push(player);
        }
      }
    });
    subPlayers.forEach((player) => {
      const playersForElement = skippedPlayersMap.get(player.element);
      if (playersForElement && playersForElement.length) {
        const innerPlayer = optimizeGroupPlayer(playersForElement);
        player.setRealPlayer(innerPlayer);
      }
    });
    skippedPlayers.forEach((player) => {
      if (player.parentPlayer) {
        player.syncPlayerEvents(player.parentPlayer);
      } else {
        player.destroy();
      }
    });
    for (let i2 = 0; i2 < allLeaveNodes.length; i2++) {
      const element = allLeaveNodes[i2];
      const details = element[REMOVAL_FLAG];
      removeClass(element, LEAVE_CLASSNAME);
      if (details && details.hasAnimation)
        continue;
      let players = [];
      if (queriedElements.size) {
        let queriedPlayerResults = queriedElements.get(element);
        if (queriedPlayerResults && queriedPlayerResults.length) {
          players.push(...queriedPlayerResults);
        }
        let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);
        for (let j = 0; j < queriedInnerElements.length; j++) {
          let queriedPlayers = queriedElements.get(queriedInnerElements[j]);
          if (queriedPlayers && queriedPlayers.length) {
            players.push(...queriedPlayers);
          }
        }
      }
      const activePlayers = players.filter((p) => !p.destroyed);
      if (activePlayers.length) {
        removeNodesAfterAnimationDone(this, element, activePlayers);
      } else {
        this.processLeaveNode(element);
      }
    }
    allLeaveNodes.length = 0;
    rootPlayers.forEach((player) => {
      this.players.push(player);
      player.onDone(() => {
        player.destroy();
        const index = this.players.indexOf(player);
        this.players.splice(index, 1);
      });
      player.play();
    });
    return rootPlayers;
  }
  afterFlush(callback) {
    this._flushFns.push(callback);
  }
  afterFlushAnimationsDone(callback) {
    this._whenQuietFns.push(callback);
  }
  _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {
    let players = [];
    if (isQueriedElement) {
      const queriedElementPlayers = this.playersByQueriedElement.get(element);
      if (queriedElementPlayers) {
        players = queriedElementPlayers;
      }
    } else {
      const elementPlayers = this.playersByElement.get(element);
      if (elementPlayers) {
        const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;
        elementPlayers.forEach((player) => {
          if (player.queued)
            return;
          if (!isRemovalAnimation && player.triggerName != triggerName)
            return;
          players.push(player);
        });
      }
    }
    if (namespaceId || triggerName) {
      players = players.filter((player) => {
        if (namespaceId && namespaceId != player.namespaceId)
          return false;
        if (triggerName && triggerName != player.triggerName)
          return false;
        return true;
      });
    }
    return players;
  }
  _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {
    const triggerName = instruction.triggerName;
    const rootElement = instruction.element;
    const targetNameSpaceId = instruction.isRemovalTransition ? void 0 : namespaceId;
    const targetTriggerName = instruction.isRemovalTransition ? void 0 : triggerName;
    for (const timelineInstruction of instruction.timelines) {
      const element = timelineInstruction.element;
      const isQueriedElement = element !== rootElement;
      const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);
      const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);
      previousPlayers.forEach((player) => {
        const realPlayer = player.getRealPlayer();
        if (realPlayer.beforeDestroy) {
          realPlayer.beforeDestroy();
        }
        player.destroy();
        players.push(player);
      });
    }
    eraseStyles(rootElement, instruction.fromStyles);
  }
  _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {
    const triggerName = instruction.triggerName;
    const rootElement = instruction.element;
    const allQueriedPlayers = [];
    const allConsumedElements = /* @__PURE__ */ new Set();
    const allSubElements = /* @__PURE__ */ new Set();
    const allNewPlayers = instruction.timelines.map((timelineInstruction) => {
      const element = timelineInstruction.element;
      allConsumedElements.add(element);
      const details = element[REMOVAL_FLAG];
      if (details && details.removedBeforeQueried)
        return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);
      const isQueriedElement = element !== rootElement;
      const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY).map((p) => p.getRealPlayer())).filter((p) => {
        const pp = p;
        return pp.element ? pp.element === element : false;
      });
      const preStyles = preStylesMap.get(element);
      const postStyles = postStylesMap.get(element);
      const keyframes = normalizeKeyframes$1(this._normalizer, timelineInstruction.keyframes, preStyles, postStyles);
      const player2 = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);
      if (timelineInstruction.subTimeline && skippedPlayersMap) {
        allSubElements.add(element);
      }
      if (isQueriedElement) {
        const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);
        wrappedPlayer.setRealPlayer(player2);
        allQueriedPlayers.push(wrappedPlayer);
      }
      return player2;
    });
    allQueriedPlayers.forEach((player2) => {
      getOrSetDefaultValue(this.playersByQueriedElement, player2.element, []).push(player2);
      player2.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player2.element, player2));
    });
    allConsumedElements.forEach((element) => addClass(element, NG_ANIMATING_CLASSNAME));
    const player = optimizeGroupPlayer(allNewPlayers);
    player.onDestroy(() => {
      allConsumedElements.forEach((element) => removeClass(element, NG_ANIMATING_CLASSNAME));
      setStyles(rootElement, instruction.toStyles);
    });
    allSubElements.forEach((element) => {
      getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);
    });
    return player;
  }
  _buildPlayer(instruction, keyframes, previousPlayers) {
    if (keyframes.length > 0) {
      return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);
    }
    return new NoopAnimationPlayer(instruction.duration, instruction.delay);
  }
};
var TransitionAnimationPlayer = class {
  constructor(namespaceId, triggerName, element) {
    this.namespaceId = namespaceId;
    this.triggerName = triggerName;
    this.element = element;
    this._player = new NoopAnimationPlayer();
    this._containsRealPlayer = false;
    this._queuedCallbacks = /* @__PURE__ */ new Map();
    this.destroyed = false;
    this.parentPlayer = null;
    this.markedForDestroy = false;
    this.disabled = false;
    this.queued = true;
    this.totalTime = 0;
  }
  setRealPlayer(player) {
    if (this._containsRealPlayer)
      return;
    this._player = player;
    this._queuedCallbacks.forEach((callbacks, phase) => {
      callbacks.forEach((callback) => listenOnPlayer(player, phase, void 0, callback));
    });
    this._queuedCallbacks.clear();
    this._containsRealPlayer = true;
    this.overrideTotalTime(player.totalTime);
    this.queued = false;
  }
  getRealPlayer() {
    return this._player;
  }
  overrideTotalTime(totalTime) {
    this.totalTime = totalTime;
  }
  syncPlayerEvents(player) {
    const p = this._player;
    if (p.triggerCallback) {
      player.onStart(() => p.triggerCallback("start"));
    }
    player.onDone(() => this.finish());
    player.onDestroy(() => this.destroy());
  }
  _queueEvent(name, callback) {
    getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);
  }
  onDone(fn) {
    if (this.queued) {
      this._queueEvent("done", fn);
    }
    this._player.onDone(fn);
  }
  onStart(fn) {
    if (this.queued) {
      this._queueEvent("start", fn);
    }
    this._player.onStart(fn);
  }
  onDestroy(fn) {
    if (this.queued) {
      this._queueEvent("destroy", fn);
    }
    this._player.onDestroy(fn);
  }
  init() {
    this._player.init();
  }
  hasStarted() {
    return this.queued ? false : this._player.hasStarted();
  }
  play() {
    !this.queued && this._player.play();
  }
  pause() {
    !this.queued && this._player.pause();
  }
  restart() {
    !this.queued && this._player.restart();
  }
  finish() {
    this._player.finish();
  }
  destroy() {
    this.destroyed = true;
    this._player.destroy();
  }
  reset() {
    !this.queued && this._player.reset();
  }
  setPosition(p) {
    if (!this.queued) {
      this._player.setPosition(p);
    }
  }
  getPosition() {
    return this.queued ? 0 : this._player.getPosition();
  }
  /** @internal */
  triggerCallback(phaseName) {
    const p = this._player;
    if (p.triggerCallback) {
      p.triggerCallback(phaseName);
    }
  }
};
function deleteOrUnsetInMap(map2, key, value) {
  let currentValues = map2.get(key);
  if (currentValues) {
    if (currentValues.length) {
      const index = currentValues.indexOf(value);
      currentValues.splice(index, 1);
    }
    if (currentValues.length == 0) {
      map2.delete(key);
    }
  }
  return currentValues;
}
function normalizeTriggerValue(value) {
  return value != null ? value : null;
}
function isElementNode(node) {
  return node && node["nodeType"] === 1;
}
function isTriggerEventValid(eventName) {
  return eventName == "start" || eventName == "done";
}
function cloakElement(element, value) {
  const oldValue = element.style.display;
  element.style.display = value != null ? value : "none";
  return oldValue;
}
function cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {
  const cloakVals = [];
  elements.forEach((element) => cloakVals.push(cloakElement(element)));
  const failedElements = [];
  elementPropsMap.forEach((props, element) => {
    const styles = /* @__PURE__ */ new Map();
    props.forEach((prop) => {
      const value = driver.computeStyle(element, prop, defaultStyle);
      styles.set(prop, value);
      if (!value || value.length == 0) {
        element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;
        failedElements.push(element);
      }
    });
    valuesMap.set(element, styles);
  });
  let i = 0;
  elements.forEach((element) => cloakElement(element, cloakVals[i++]));
  return failedElements;
}
function buildRootMap(roots, nodes) {
  const rootMap = /* @__PURE__ */ new Map();
  roots.forEach((root) => rootMap.set(root, []));
  if (nodes.length == 0)
    return rootMap;
  const NULL_NODE = 1;
  const nodeSet = new Set(nodes);
  const localRootMap = /* @__PURE__ */ new Map();
  function getRoot(node) {
    if (!node)
      return NULL_NODE;
    let root = localRootMap.get(node);
    if (root)
      return root;
    const parent = node.parentNode;
    if (rootMap.has(parent)) {
      root = parent;
    } else if (nodeSet.has(parent)) {
      root = NULL_NODE;
    } else {
      root = getRoot(parent);
    }
    localRootMap.set(node, root);
    return root;
  }
  nodes.forEach((node) => {
    const root = getRoot(node);
    if (root !== NULL_NODE) {
      rootMap.get(root).push(node);
    }
  });
  return rootMap;
}
function addClass(element, className) {
  element.classList?.add(className);
}
function removeClass(element, className) {
  element.classList?.remove(className);
}
function removeNodesAfterAnimationDone(engine, element, players) {
  optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));
}
function flattenGroupPlayers(players) {
  const finalPlayers = [];
  _flattenGroupPlayersRecur(players, finalPlayers);
  return finalPlayers;
}
function _flattenGroupPlayersRecur(players, finalPlayers) {
  for (let i = 0; i < players.length; i++) {
    const player = players[i];
    if (player instanceof AnimationGroupPlayer) {
      _flattenGroupPlayersRecur(player.players, finalPlayers);
    } else {
      finalPlayers.push(player);
    }
  }
}
function objEquals(a, b) {
  const k1 = Object.keys(a);
  const k2 = Object.keys(b);
  if (k1.length != k2.length)
    return false;
  for (let i = 0; i < k1.length; i++) {
    const prop = k1[i];
    if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])
      return false;
  }
  return true;
}
function replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {
  const postEntry = allPostStyleElements.get(element);
  if (!postEntry)
    return false;
  let preEntry = allPreStyleElements.get(element);
  if (preEntry) {
    postEntry.forEach((data) => preEntry.add(data));
  } else {
    allPreStyleElements.set(element, postEntry);
  }
  allPostStyleElements.delete(element);
  return true;
}
var AnimationEngine = class {
  constructor(doc, _driver, _normalizer, scheduler) {
    this._driver = _driver;
    this._normalizer = _normalizer;
    this._triggerCache = {};
    this.onRemovalComplete = (element, context) => {
    };
    this._transitionEngine = new TransitionAnimationEngine(doc.body, _driver, _normalizer, scheduler);
    this._timelineEngine = new TimelineAnimationEngine(doc.body, _driver, _normalizer);
    this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);
  }
  registerTrigger(componentId, namespaceId, hostElement, name, metadata) {
    const cacheKey = componentId + "-" + name;
    let trigger2 = this._triggerCache[cacheKey];
    if (!trigger2) {
      const errors = [];
      const warnings = [];
      const ast = buildAnimationAst(this._driver, metadata, errors, warnings);
      if (errors.length) {
        throw triggerBuildFailed(name, errors);
      }
      if (warnings.length) {
        warnTriggerBuild(name, warnings);
      }
      trigger2 = buildTrigger(name, ast, this._normalizer);
      this._triggerCache[cacheKey] = trigger2;
    }
    this._transitionEngine.registerTrigger(namespaceId, name, trigger2);
  }
  register(namespaceId, hostElement) {
    this._transitionEngine.register(namespaceId, hostElement);
  }
  destroy(namespaceId, context) {
    this._transitionEngine.destroy(namespaceId, context);
  }
  onInsert(namespaceId, element, parent, insertBefore) {
    this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);
  }
  onRemove(namespaceId, element, context) {
    this._transitionEngine.removeNode(namespaceId, element, context);
  }
  disableAnimations(element, disable) {
    this._transitionEngine.markElementAsDisabled(element, disable);
  }
  process(namespaceId, element, property, value) {
    if (property.charAt(0) == "@") {
      const [id, action] = parseTimelineCommand(property);
      const args = value;
      this._timelineEngine.command(id, element, action, args);
    } else {
      this._transitionEngine.trigger(namespaceId, element, property, value);
    }
  }
  listen(namespaceId, element, eventName, eventPhase, callback) {
    if (eventName.charAt(0) == "@") {
      const [id, action] = parseTimelineCommand(eventName);
      return this._timelineEngine.listen(id, element, action, callback);
    }
    return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);
  }
  flush(microtaskId = -1) {
    this._transitionEngine.flush(microtaskId);
  }
  get players() {
    return [...this._transitionEngine.players, ...this._timelineEngine.players];
  }
  whenRenderingDone() {
    return this._transitionEngine.whenRenderingDone();
  }
  afterFlushAnimationsDone(cb) {
    this._transitionEngine.afterFlushAnimationsDone(cb);
  }
};
function packageNonAnimatableStyles(element, styles) {
  let startStyles = null;
  let endStyles = null;
  if (Array.isArray(styles) && styles.length) {
    startStyles = filterNonAnimatableStyles(styles[0]);
    if (styles.length > 1) {
      endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);
    }
  } else if (styles instanceof Map) {
    startStyles = filterNonAnimatableStyles(styles);
  }
  return startStyles || endStyles ? new SpecialCasedStyles(element, startStyles, endStyles) : null;
}
var _SpecialCasedStyles = class _SpecialCasedStyles {
  constructor(_element, _startStyles, _endStyles) {
    this._element = _element;
    this._startStyles = _startStyles;
    this._endStyles = _endStyles;
    this._state = 0;
    let initialStyles = _SpecialCasedStyles.initialStylesByElement.get(_element);
    if (!initialStyles) {
      _SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = /* @__PURE__ */ new Map());
    }
    this._initialStyles = initialStyles;
  }
  start() {
    if (this._state < 1) {
      if (this._startStyles) {
        setStyles(this._element, this._startStyles, this._initialStyles);
      }
      this._state = 1;
    }
  }
  finish() {
    this.start();
    if (this._state < 2) {
      setStyles(this._element, this._initialStyles);
      if (this._endStyles) {
        setStyles(this._element, this._endStyles);
        this._endStyles = null;
      }
      this._state = 1;
    }
  }
  destroy() {
    this.finish();
    if (this._state < 3) {
      _SpecialCasedStyles.initialStylesByElement.delete(this._element);
      if (this._startStyles) {
        eraseStyles(this._element, this._startStyles);
        this._endStyles = null;
      }
      if (this._endStyles) {
        eraseStyles(this._element, this._endStyles);
        this._endStyles = null;
      }
      setStyles(this._element, this._initialStyles);
      this._state = 3;
    }
  }
};
_SpecialCasedStyles.initialStylesByElement = /* @__PURE__ */ new WeakMap();
var SpecialCasedStyles = _SpecialCasedStyles;
function filterNonAnimatableStyles(styles) {
  let result = null;
  styles.forEach((val, prop) => {
    if (isNonAnimatableStyle(prop)) {
      result = result || /* @__PURE__ */ new Map();
      result.set(prop, val);
    }
  });
  return result;
}
function isNonAnimatableStyle(prop) {
  return prop === "display" || prop === "position";
}
var WebAnimationsPlayer = class {
  constructor(element, keyframes, options, _specialStyles) {
    this.element = element;
    this.keyframes = keyframes;
    this.options = options;
    this._specialStyles = _specialStyles;
    this._onDoneFns = [];
    this._onStartFns = [];
    this._onDestroyFns = [];
    this._initialized = false;
    this._finished = false;
    this._started = false;
    this._destroyed = false;
    this._originalOnDoneFns = [];
    this._originalOnStartFns = [];
    this.time = 0;
    this.parentPlayer = null;
    this.currentSnapshot = /* @__PURE__ */ new Map();
    this._duration = options["duration"];
    this._delay = options["delay"] || 0;
    this.time = this._duration + this._delay;
  }
  _onFinish() {
    if (!this._finished) {
      this._finished = true;
      this._onDoneFns.forEach((fn) => fn());
      this._onDoneFns = [];
    }
  }
  init() {
    this._buildPlayer();
    this._preparePlayerBeforeStart();
  }
  _buildPlayer() {
    if (this._initialized)
      return;
    this._initialized = true;
    const keyframes = this.keyframes;
    this.domPlayer = this._triggerWebAnimation(this.element, keyframes, this.options);
    this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : /* @__PURE__ */ new Map();
    const onFinish = () => this._onFinish();
    this.domPlayer.addEventListener("finish", onFinish);
    this.onDestroy(() => {
      this.domPlayer.removeEventListener("finish", onFinish);
    });
  }
  _preparePlayerBeforeStart() {
    if (this._delay) {
      this._resetDomPlayerState();
    } else {
      this.domPlayer.pause();
    }
  }
  _convertKeyframesToObject(keyframes) {
    const kfs = [];
    keyframes.forEach((frame) => {
      kfs.push(Object.fromEntries(frame));
    });
    return kfs;
  }
  /** @internal */
  _triggerWebAnimation(element, keyframes, options) {
    return element.animate(this._convertKeyframesToObject(keyframes), options);
  }
  onStart(fn) {
    this._originalOnStartFns.push(fn);
    this._onStartFns.push(fn);
  }
  onDone(fn) {
    this._originalOnDoneFns.push(fn);
    this._onDoneFns.push(fn);
  }
  onDestroy(fn) {
    this._onDestroyFns.push(fn);
  }
  play() {
    this._buildPlayer();
    if (!this.hasStarted()) {
      this._onStartFns.forEach((fn) => fn());
      this._onStartFns = [];
      this._started = true;
      if (this._specialStyles) {
        this._specialStyles.start();
      }
    }
    this.domPlayer.play();
  }
  pause() {
    this.init();
    this.domPlayer.pause();
  }
  finish() {
    this.init();
    if (this._specialStyles) {
      this._specialStyles.finish();
    }
    this._onFinish();
    this.domPlayer.finish();
  }
  reset() {
    this._resetDomPlayerState();
    this._destroyed = false;
    this._finished = false;
    this._started = false;
    this._onStartFns = this._originalOnStartFns;
    this._onDoneFns = this._originalOnDoneFns;
  }
  _resetDomPlayerState() {
    if (this.domPlayer) {
      this.domPlayer.cancel();
    }
  }
  restart() {
    this.reset();
    this.play();
  }
  hasStarted() {
    return this._started;
  }
  destroy() {
    if (!this._destroyed) {
      this._destroyed = true;
      this._resetDomPlayerState();
      this._onFinish();
      if (this._specialStyles) {
        this._specialStyles.destroy();
      }
      this._onDestroyFns.forEach((fn) => fn());
      this._onDestroyFns = [];
    }
  }
  setPosition(p) {
    if (this.domPlayer === void 0) {
      this.init();
    }
    this.domPlayer.currentTime = p * this.time;
  }
  getPosition() {
    return +(this.domPlayer.currentTime ?? 0) / this.time;
  }
  get totalTime() {
    return this._delay + this._duration;
  }
  beforeDestroy() {
    const styles = /* @__PURE__ */ new Map();
    if (this.hasStarted()) {
      const finalKeyframe = this._finalKeyframe;
      finalKeyframe.forEach((val, prop) => {
        if (prop !== "offset") {
          styles.set(prop, this._finished ? val : computeStyle(this.element, prop));
        }
      });
    }
    this.currentSnapshot = styles;
  }
  /** @internal */
  triggerCallback(phaseName) {
    const methods = phaseName === "start" ? this._onStartFns : this._onDoneFns;
    methods.forEach((fn) => fn());
    methods.length = 0;
  }
};
var WebAnimationsDriver = class {
  validateStyleProperty(prop) {
    if (typeof ngDevMode === "undefined" || ngDevMode) {
      return validateStyleProperty(prop);
    }
    return true;
  }
  validateAnimatableStyleProperty(prop) {
    if (typeof ngDevMode === "undefined" || ngDevMode) {
      const cssProp = camelCaseToDashCase(prop);
      return validateWebAnimatableStyleProperty(cssProp);
    }
    return true;
  }
  matchesElement(_element, _selector) {
    return false;
  }
  containsElement(elm1, elm2) {
    return containsElement(elm1, elm2);
  }
  getParentElement(element) {
    return getParentElement(element);
  }
  query(element, selector, multi) {
    return invokeQuery(element, selector, multi);
  }
  computeStyle(element, prop, defaultValue) {
    return computeStyle(element, prop);
  }
  animate(element, keyframes, duration, delay2, easing, previousPlayers = []) {
    const fill = delay2 == 0 ? "both" : "forwards";
    const playerOptions = {
      duration,
      delay: delay2,
      fill
    };
    if (easing) {
      playerOptions["easing"] = easing;
    }
    const previousStyles = /* @__PURE__ */ new Map();
    const previousWebAnimationPlayers = previousPlayers.filter((player) => player instanceof WebAnimationsPlayer);
    if (allowPreviousPlayerStylesMerge(duration, delay2)) {
      previousWebAnimationPlayers.forEach((player) => {
        player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));
      });
    }
    let _keyframes = normalizeKeyframes(keyframes).map((styles) => new Map(styles));
    _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);
    const specialStyles = packageNonAnimatableStyles(element, _keyframes);
    return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);
  }
};
var ANIMATION_PREFIX = "@";
var DISABLE_ANIMATIONS_FLAG = "@.disabled";
var BaseAnimationRenderer = class {
  constructor(namespaceId, delegate, engine, _onDestroy) {
    this.namespaceId = namespaceId;
    this.delegate = delegate;
    this.engine = engine;
    this._onDestroy = _onDestroy;
    this.\u0275type = 0;
  }
  get data() {
    return this.delegate.data;
  }
  destroyNode(node) {
    this.delegate.destroyNode?.(node);
  }
  destroy() {
    this.engine.destroy(this.namespaceId, this.delegate);
    this.engine.afterFlushAnimationsDone(() => {
      queueMicrotask(() => {
        this.delegate.destroy();
      });
    });
    this._onDestroy?.();
  }
  createElement(name, namespace) {
    return this.delegate.createElement(name, namespace);
  }
  createComment(value) {
    return this.delegate.createComment(value);
  }
  createText(value) {
    return this.delegate.createText(value);
  }
  appendChild(parent, newChild) {
    this.delegate.appendChild(parent, newChild);
    this.engine.onInsert(this.namespaceId, newChild, parent, false);
  }
  insertBefore(parent, newChild, refChild, isMove = true) {
    this.delegate.insertBefore(parent, newChild, refChild);
    this.engine.onInsert(this.namespaceId, newChild, parent, isMove);
  }
  removeChild(parent, oldChild, isHostElement) {
    this.engine.onRemove(this.namespaceId, oldChild, this.delegate);
  }
  selectRootElement(selectorOrNode, preserveContent) {
    return this.delegate.selectRootElement(selectorOrNode, preserveContent);
  }
  parentNode(node) {
    return this.delegate.parentNode(node);
  }
  nextSibling(node) {
    return this.delegate.nextSibling(node);
  }
  setAttribute(el, name, value, namespace) {
    this.delegate.setAttribute(el, name, value, namespace);
  }
  removeAttribute(el, name, namespace) {
    this.delegate.removeAttribute(el, name, namespace);
  }
  addClass(el, name) {
    this.delegate.addClass(el, name);
  }
  removeClass(el, name) {
    this.delegate.removeClass(el, name);
  }
  setStyle(el, style2, value, flags) {
    this.delegate.setStyle(el, style2, value, flags);
  }
  removeStyle(el, style2, flags) {
    this.delegate.removeStyle(el, style2, flags);
  }
  setProperty(el, name, value) {
    if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {
      this.disableAnimations(el, !!value);
    } else {
      this.delegate.setProperty(el, name, value);
    }
  }
  setValue(node, value) {
    this.delegate.setValue(node, value);
  }
  listen(target, eventName, callback) {
    return this.delegate.listen(target, eventName, callback);
  }
  disableAnimations(element, value) {
    this.engine.disableAnimations(element, value);
  }
};
var AnimationRenderer = class extends BaseAnimationRenderer {
  constructor(factory, namespaceId, delegate, engine, onDestroy) {
    super(namespaceId, delegate, engine, onDestroy);
    this.factory = factory;
    this.namespaceId = namespaceId;
  }
  setProperty(el, name, value) {
    if (name.charAt(0) == ANIMATION_PREFIX) {
      if (name.charAt(1) == "." && name == DISABLE_ANIMATIONS_FLAG) {
        value = value === void 0 ? true : !!value;
        this.disableAnimations(el, value);
      } else {
        this.engine.process(this.namespaceId, el, name.slice(1), value);
      }
    } else {
      this.delegate.setProperty(el, name, value);
    }
  }
  listen(target, eventName, callback) {
    if (eventName.charAt(0) == ANIMATION_PREFIX) {
      const element = resolveElementFromTarget(target);
      let name = eventName.slice(1);
      let phase = "";
      if (name.charAt(0) != ANIMATION_PREFIX) {
        [name, phase] = parseTriggerCallbackName(name);
      }
      return this.engine.listen(this.namespaceId, element, name, phase, (event) => {
        const countId = event["_data"] || -1;
        this.factory.scheduleListenerCallback(countId, callback, event);
      });
    }
    return this.delegate.listen(target, eventName, callback);
  }
};
function resolveElementFromTarget(target) {
  switch (target) {
    case "body":
      return document.body;
    case "document":
      return document;
    case "window":
      return window;
    default:
      return target;
  }
}
function parseTriggerCallbackName(triggerName) {
  const dotIndex = triggerName.indexOf(".");
  const trigger2 = triggerName.substring(0, dotIndex);
  const phase = triggerName.slice(dotIndex + 1);
  return [trigger2, phase];
}
var AnimationRendererFactory = class {
  constructor(delegate, engine, _zone) {
    this.delegate = delegate;
    this.engine = engine;
    this._zone = _zone;
    this._currentId = 0;
    this._microtaskId = 1;
    this._animationCallbacksBuffer = [];
    this._rendererCache = /* @__PURE__ */ new Map();
    this._cdRecurDepth = 0;
    engine.onRemovalComplete = (element, delegate2) => {
      const parentNode = delegate2?.parentNode(element);
      if (parentNode) {
        delegate2.removeChild(parentNode, element);
      }
    };
  }
  createRenderer(hostElement, type) {
    const EMPTY_NAMESPACE_ID = "";
    const delegate = this.delegate.createRenderer(hostElement, type);
    if (!hostElement || !type?.data?.["animation"]) {
      const cache = this._rendererCache;
      let renderer = cache.get(delegate);
      if (!renderer) {
        const onRendererDestroy = () => cache.delete(delegate);
        renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine, onRendererDestroy);
        cache.set(delegate, renderer);
      }
      return renderer;
    }
    const componentId = type.id;
    const namespaceId = type.id + "-" + this._currentId;
    this._currentId++;
    this.engine.register(namespaceId, hostElement);
    const registerTrigger = (trigger2) => {
      if (Array.isArray(trigger2)) {
        trigger2.forEach(registerTrigger);
      } else {
        this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger2.name, trigger2);
      }
    };
    const animationTriggers = type.data["animation"];
    animationTriggers.forEach(registerTrigger);
    return new AnimationRenderer(this, namespaceId, delegate, this.engine);
  }
  begin() {
    this._cdRecurDepth++;
    if (this.delegate.begin) {
      this.delegate.begin();
    }
  }
  _scheduleCountTask() {
    queueMicrotask(() => {
      this._microtaskId++;
    });
  }
  /** @internal */
  scheduleListenerCallback(count, fn, data) {
    if (count >= 0 && count < this._microtaskId) {
      this._zone.run(() => fn(data));
      return;
    }
    const animationCallbacksBuffer = this._animationCallbacksBuffer;
    if (animationCallbacksBuffer.length == 0) {
      queueMicrotask(() => {
        this._zone.run(() => {
          animationCallbacksBuffer.forEach((tuple) => {
            const [fn2, data2] = tuple;
            fn2(data2);
          });
          this._animationCallbacksBuffer = [];
        });
      });
    }
    animationCallbacksBuffer.push([fn, data]);
  }
  end() {
    this._cdRecurDepth--;
    if (this._cdRecurDepth == 0) {
      this._zone.runOutsideAngular(() => {
        this._scheduleCountTask();
        this.engine.flush(this._microtaskId);
      });
    }
    if (this.delegate.end) {
      this.delegate.end();
    }
  }
  whenRenderingDone() {
    return this.engine.whenRenderingDone();
  }
};

// node_modules/@angular/platform-browser/fesm2022/animations.mjs
var _InjectableAnimationEngine = class _InjectableAnimationEngine extends AnimationEngine {
  // The `ApplicationRef` is injected here explicitly to force the dependency ordering.
  // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they
  // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.
  constructor(doc, driver, normalizer) {
    super(doc, driver, normalizer, inject(ChangeDetectionScheduler, {
      optional: true
    }));
  }
  ngOnDestroy() {
    this.flush();
  }
};
_InjectableAnimationEngine.\u0275fac = function InjectableAnimationEngine_Factory(t) {
  return new (t || _InjectableAnimationEngine)(\u0275\u0275inject(DOCUMENT), \u0275\u0275inject(AnimationDriver), \u0275\u0275inject(AnimationStyleNormalizer));
};
_InjectableAnimationEngine.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _InjectableAnimationEngine,
  factory: _InjectableAnimationEngine.\u0275fac
});
var InjectableAnimationEngine = _InjectableAnimationEngine;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(InjectableAnimationEngine, [{
    type: Injectable
  }], () => [{
    type: Document,
    decorators: [{
      type: Inject,
      args: [DOCUMENT]
    }]
  }, {
    type: AnimationDriver
  }, {
    type: AnimationStyleNormalizer
  }], null);
})();
function instantiateDefaultStyleNormalizer() {
  return new WebAnimationsStyleNormalizer();
}
function instantiateRendererFactory(renderer, engine, zone) {
  return new AnimationRendererFactory(renderer, engine, zone);
}
var SHARED_ANIMATION_PROVIDERS = [{
  provide: AnimationStyleNormalizer,
  useFactory: instantiateDefaultStyleNormalizer
}, {
  provide: AnimationEngine,
  useClass: InjectableAnimationEngine
}, {
  provide: RendererFactory2,
  useFactory: instantiateRendererFactory,
  deps: [DomRendererFactory2, AnimationEngine, NgZone]
}];
var BROWSER_ANIMATIONS_PROVIDERS = [{
  provide: AnimationDriver,
  useFactory: () => new WebAnimationsDriver()
}, {
  provide: ANIMATION_MODULE_TYPE,
  useValue: "BrowserAnimations"
}, ...SHARED_ANIMATION_PROVIDERS];
var BROWSER_NOOP_ANIMATIONS_PROVIDERS = [{
  provide: AnimationDriver,
  useClass: NoopAnimationDriver
}, {
  provide: ANIMATION_MODULE_TYPE,
  useValue: "NoopAnimations"
}, ...SHARED_ANIMATION_PROVIDERS];
var _BrowserAnimationsModule = class _BrowserAnimationsModule {
  /**
   * Configures the module based on the specified object.
   *
   * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.
   * @see {@link BrowserAnimationsModuleConfig}
   *
   * @usageNotes
   * When registering the `BrowserAnimationsModule`, you can use the `withConfig`
   * function as follows:
   * ```
   * @NgModule({
   *   imports: [BrowserAnimationsModule.withConfig(config)]
   * })
   * class MyNgModule {}
   * ```
   */
  static withConfig(config) {
    return {
      ngModule: _BrowserAnimationsModule,
      providers: config.disableAnimations ? BROWSER_NOOP_ANIMATIONS_PROVIDERS : BROWSER_ANIMATIONS_PROVIDERS
    };
  }
};
_BrowserAnimationsModule.\u0275fac = function BrowserAnimationsModule_Factory(t) {
  return new (t || _BrowserAnimationsModule)();
};
_BrowserAnimationsModule.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({
  type: _BrowserAnimationsModule
});
_BrowserAnimationsModule.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({
  providers: BROWSER_ANIMATIONS_PROVIDERS,
  imports: [BrowserModule]
});
var BrowserAnimationsModule = _BrowserAnimationsModule;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(BrowserAnimationsModule, [{
    type: NgModule,
    args: [{
      exports: [BrowserModule],
      providers: BROWSER_ANIMATIONS_PROVIDERS
    }]
  }], null, null);
})();
function provideAnimations() {
  performanceMarkFeature("NgEagerAnimations");
  return [...BROWSER_ANIMATIONS_PROVIDERS];
}
var _NoopAnimationsModule = class _NoopAnimationsModule {
};
_NoopAnimationsModule.\u0275fac = function NoopAnimationsModule_Factory(t) {
  return new (t || _NoopAnimationsModule)();
};
_NoopAnimationsModule.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({
  type: _NoopAnimationsModule
});
_NoopAnimationsModule.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({
  providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,
  imports: [BrowserModule]
});
var NoopAnimationsModule = _NoopAnimationsModule;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NoopAnimationsModule, [{
    type: NgModule,
    args: [{
      exports: [BrowserModule],
      providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS
    }]
  }], null, null);
})();

// src/app/app.config.ts
var appConfig = {
  providers: [
    provideHighlightOptions({
      lineNumbersLoader: () => import("./chunk-OY2UJULL.js"),
      coreLibraryLoader: () => import("./chunk-VB3SUARZ.js"),
      languages: {
        json: () => import("./chunk-7MAX7ILO.js"),
        typescript: () => import("./chunk-B5QNPPOO.js"),
        css: () => import("./chunk-RTLSK2UK.js"),
        xml: () => import("./chunk-QN3DBGAS.js")
      },
      themePath: "assets/styles/androidstudio.css"
    }),
    provideRouter(routes),
    provideAnimations(),
    importProvidersFrom(BrowserModule, BrowserAnimationsModule, CommonModule, FormsModule, ReactiveFormsModule, HttpClientModule, MenuModule, ToastrModule.forRoot(), MonacoEditorModule.forRoot(), QuillModule.forRoot(), NgMultiSelectDropDownModule.forRoot(), NgScrollbarModule.withConfig({
      visibility: "hover",
      appearance: "standard"
    })),
    Title,
    { provide: LocationStrategy, useClass: HashLocationStrategy },
    DatePipe
  ]
};

// src/app/layouts/sidebar.ts
var _c0 = (a0) => ({ "dark text-white-dark": a0 });
var _c1 = (a0) => ({ "hidden": a0 });
var _c2 = () => ({ exact: true });
var _c3 = (a0) => ({ active: a0 });
var _c4 = (a0) => ({ "rtl:rotate-90 -rotate-90": a0 });
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_container_2_li_12_a_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 40);
    \u0275\u0275pipe(1, "translate");
    \u0275\u0275text(2);
    \u0275\u0275pipe(3, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const subSubChild_r6 = \u0275\u0275nextContext().$implicit;
    const ctx_r2 = \u0275\u0275nextContext(10);
    \u0275\u0275propertyInterpolate("title", \u0275\u0275pipeBind1(1, 3, subSubChild_r6.name));
    \u0275\u0275attribute("href", ctx_r2.getHref(subSubChild_r6.target), \u0275\u0275sanitizeUrl);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(3, 5, subSubChild_r6.name), " ");
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_container_2_li_12_ng_template_2_Template(rf, ctx) {
  if (rf & 1) {
    const _r7 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "a", 41);
    \u0275\u0275pipe(1, "translate");
    \u0275\u0275listener("click", function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_container_2_li_12_ng_template_2_Template_a_click_0_listener() {
      \u0275\u0275restoreView(_r7);
      const ctx_r2 = \u0275\u0275nextContext(11);
      return \u0275\u0275resetView(ctx_r2.toggleMobileMenu());
    });
    \u0275\u0275text(2);
    \u0275\u0275pipe(3, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const subSubChild_r6 = \u0275\u0275nextContext().$implicit;
    \u0275\u0275propertyInterpolate("title", \u0275\u0275pipeBind1(1, 4, subSubChild_r6.name));
    \u0275\u0275property("routerLink", subSubChild_r6.target)("routerLinkActiveOptions", \u0275\u0275pureFunction0(8, _c2));
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(3, 6, subSubChild_r6.name), " ");
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_container_2_li_12_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "li");
    \u0275\u0275template(1, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_container_2_li_12_a_1_Template, 4, 7, "a", 39)(2, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_container_2_li_12_ng_template_2_Template, 4, 9, "ng-template", null, 3, \u0275\u0275templateRefExtractor);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const subSubChild_r6 = ctx.$implicit;
    const internalSubSubChildLink_r8 = \u0275\u0275reference(3);
    const ctx_r2 = \u0275\u0275nextContext(10);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", subSubChild_r6.link_type === ctx_r2.COMMON_CONFIG.MENU_LINK_TYPE.EXTERNAL)("ngIfElse", internalSubSubChildLink_r8);
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_container_2_Template(rf, ctx) {
  if (rf & 1) {
    const _r4 = \u0275\u0275getCurrentView();
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275elementStart(1, "button", 33);
    \u0275\u0275listener("click", function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_container_2_Template_button_click_1_listener() {
      \u0275\u0275restoreView(_r4);
      const subChild_r5 = \u0275\u0275nextContext(2).$implicit;
      const ctx_r2 = \u0275\u0275nextContext(7);
      return \u0275\u0275resetView(ctx_r2.toggleAccordion(subChild_r5.name));
    });
    \u0275\u0275elementStart(2, "div", 19);
    \u0275\u0275element(3, "i", 34);
    \u0275\u0275elementStart(4, "span", 35);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275text(6);
    \u0275\u0275pipe(7, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(8, "div", 6);
    \u0275\u0275element(9, "i", 36);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(10, "div", 37)(11, "ul", 38);
    \u0275\u0275template(12, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_container_2_li_12_Template, 4, 2, "li", 26);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const subChild_r5 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r2 = \u0275\u0275nextContext(7);
    \u0275\u0275advance();
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(11, _c3, ctx_r2.activeDropdown.includes(subChild_r5.name)));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", subChild_r5.menu_img);
    \u0275\u0275advance();
    \u0275\u0275propertyInterpolate("title", \u0275\u0275pipeBind1(5, 7, subChild_r5.name));
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(7, 9, subChild_r5.name), " ");
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(13, _c4, !ctx_r2.activeDropdown.includes(subChild_r5.name)));
    \u0275\u0275advance(2);
    \u0275\u0275property("@slideDownUp", !ctx_r2.activeDropdown.includes(subChild_r5.name));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngForOf", subChild_r5.children);
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_template_3_a_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 40);
    \u0275\u0275pipe(1, "translate");
    \u0275\u0275text(2);
    \u0275\u0275pipe(3, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const subChild_r5 = \u0275\u0275nextContext(3).$implicit;
    const ctx_r2 = \u0275\u0275nextContext(7);
    \u0275\u0275propertyInterpolate("title", \u0275\u0275pipeBind1(1, 3, subChild_r5.name));
    \u0275\u0275attribute("href", ctx_r2.getHref(subChild_r5.target), \u0275\u0275sanitizeUrl);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(3, 5, subChild_r5.name), " ");
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_template_3_ng_template_1_Template(rf, ctx) {
  if (rf & 1) {
    const _r9 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "a", 41);
    \u0275\u0275pipe(1, "translate");
    \u0275\u0275listener("click", function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_template_3_ng_template_1_Template_a_click_0_listener() {
      \u0275\u0275restoreView(_r9);
      const ctx_r2 = \u0275\u0275nextContext(10);
      return \u0275\u0275resetView(ctx_r2.toggleMobileMenu());
    });
    \u0275\u0275text(2);
    \u0275\u0275pipe(3, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const subChild_r5 = \u0275\u0275nextContext(3).$implicit;
    \u0275\u0275propertyInterpolate("title", \u0275\u0275pipeBind1(1, 4, subChild_r5.name));
    \u0275\u0275property("routerLink", subChild_r5.target)("routerLinkActiveOptions", \u0275\u0275pureFunction0(8, _c2));
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(3, 6, subChild_r5.name), " ");
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_template_3_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_template_3_a_0_Template, 4, 7, "a", 39)(1, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_template_3_ng_template_1_Template, 4, 9, "ng-template", null, 4, \u0275\u0275templateRefExtractor);
  }
  if (rf & 2) {
    const internalSubChildLink_r10 = \u0275\u0275reference(2);
    const subChild_r5 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r2 = \u0275\u0275nextContext(7);
    \u0275\u0275property("ngIf", subChild_r5.link_type === ctx_r2.COMMON_CONFIG.MENU_LINK_TYPE.EXTERNAL)("ngIfElse", internalSubChildLink_r10);
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275elementStart(1, "li");
    \u0275\u0275template(2, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_container_2_Template, 13, 15, "ng-container", 28)(3, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_ng_template_3_Template, 3, 2, "ng-template", null, 2, \u0275\u0275templateRefExtractor);
    \u0275\u0275elementEnd();
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const noSubSubChildren_r11 = \u0275\u0275reference(4);
    const subChild_r5 = \u0275\u0275nextContext().$implicit;
    const ctx_r2 = \u0275\u0275nextContext(7);
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", (subChild_r5.children == null ? null : subChild_r5.children.length) && ctx_r2.hasVisibleChildren(subChild_r5))("ngIfElse", noSubSubChildren_r11);
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_ng_container_1_Template, 5, 2, "ng-container", 27);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const subChild_r5 = ctx.$implicit;
    const ctx_r2 = \u0275\u0275nextContext(7);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", subChild_r5.link_type !== ctx_r2.COMMON_CONFIG.MENU_LINK_TYPE.ACTION);
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_Template(rf, ctx) {
  if (rf & 1) {
    const _r1 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "li", 32)(1, "button", 33);
    \u0275\u0275listener("click", function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_Template_button_click_1_listener() {
      \u0275\u0275restoreView(_r1);
      const child_r2 = \u0275\u0275nextContext(2).$implicit;
      const ctx_r2 = \u0275\u0275nextContext(4);
      return \u0275\u0275resetView(ctx_r2.toggleAccordion(child_r2.name));
    });
    \u0275\u0275elementStart(2, "div", 19);
    \u0275\u0275element(3, "i", 34);
    \u0275\u0275elementStart(4, "span", 35);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275text(6);
    \u0275\u0275pipe(7, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(8, "div", 6);
    \u0275\u0275element(9, "i", 36);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(10, "div", 37)(11, "ul", 38);
    \u0275\u0275template(12, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_ng_container_12_Template, 2, 1, "ng-container", 26);
    \u0275\u0275elementEnd()()();
  }
  if (rf & 2) {
    const child_r2 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r2 = \u0275\u0275nextContext(4);
    \u0275\u0275advance();
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(11, _c3, ctx_r2.activeDropdown.includes(child_r2.name)));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", child_r2.menu_img);
    \u0275\u0275advance();
    \u0275\u0275propertyInterpolate("title", \u0275\u0275pipeBind1(5, 7, child_r2.name));
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(7, 9, child_r2.name), " ");
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(13, _c4, !ctx_r2.activeDropdown.includes(child_r2.name)));
    \u0275\u0275advance(2);
    \u0275\u0275property("@slideDownUp", !ctx_r2.activeDropdown.includes(child_r2.name));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngForOf", child_r2.children);
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_ng_template_2_a_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 43);
    \u0275\u0275pipe(1, "translate");
    \u0275\u0275elementStart(2, "div", 19);
    \u0275\u0275element(3, "i", 34);
    \u0275\u0275elementStart(4, "span", 35);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275text(6);
    \u0275\u0275pipe(7, "translate");
    \u0275\u0275elementEnd()()();
  }
  if (rf & 2) {
    const child_r2 = \u0275\u0275nextContext(3).$implicit;
    const ctx_r2 = \u0275\u0275nextContext(4);
    \u0275\u0275propertyInterpolate("title", \u0275\u0275pipeBind1(1, 5, child_r2.name));
    \u0275\u0275attribute("href", ctx_r2.getHref(child_r2.target), \u0275\u0275sanitizeUrl);
    \u0275\u0275advance(3);
    \u0275\u0275property("ngClass", child_r2.menu_img);
    \u0275\u0275advance();
    \u0275\u0275propertyInterpolate("title", \u0275\u0275pipeBind1(5, 7, child_r2.name));
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(7, 9, child_r2.name), " ");
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_ng_template_2_ng_template_2_Template(rf, ctx) {
  if (rf & 1) {
    const _r12 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "a", 44);
    \u0275\u0275pipe(1, "translate");
    \u0275\u0275listener("click", function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_ng_template_2_ng_template_2_Template_a_click_0_listener() {
      \u0275\u0275restoreView(_r12);
      const ctx_r2 = \u0275\u0275nextContext(7);
      return \u0275\u0275resetView(ctx_r2.toggleMobileMenu());
    });
    \u0275\u0275elementStart(2, "div", 19);
    \u0275\u0275element(3, "i", 34);
    \u0275\u0275elementStart(4, "span", 35);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275text(6);
    \u0275\u0275pipe(7, "translate");
    \u0275\u0275elementEnd()()();
  }
  if (rf & 2) {
    const child_r2 = \u0275\u0275nextContext(3).$implicit;
    \u0275\u0275propertyInterpolate("title", \u0275\u0275pipeBind1(1, 6, child_r2.name));
    \u0275\u0275property("routerLink", child_r2.target)("routerLinkActiveOptions", \u0275\u0275pureFunction0(12, _c2));
    \u0275\u0275advance(3);
    \u0275\u0275property("ngClass", child_r2.menu_img);
    \u0275\u0275advance();
    \u0275\u0275propertyInterpolate("title", \u0275\u0275pipeBind1(5, 8, child_r2.name));
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(7, 10, child_r2.name), " ");
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_ng_template_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "li", 17);
    \u0275\u0275template(1, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_ng_template_2_a_1_Template, 8, 11, "a", 42)(2, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_ng_template_2_ng_template_2_Template, 8, 13, "ng-template", null, 5, \u0275\u0275templateRefExtractor);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const internalChildLink_r13 = \u0275\u0275reference(3);
    const child_r2 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r2 = \u0275\u0275nextContext(4);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", child_r2.link_type === ctx_r2.COMMON_CONFIG.MENU_LINK_TYPE.EXTERNAL)("ngIfElse", internalChildLink_r13);
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_li_1_Template, 13, 15, "li", 31)(2, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_ng_template_2_Template, 4, 2, "ng-template", null, 1, \u0275\u0275templateRefExtractor);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const noSubChildren_r14 = \u0275\u0275reference(3);
    const child_r2 = \u0275\u0275nextContext().$implicit;
    const ctx_r2 = \u0275\u0275nextContext(4);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", (child_r2.children == null ? null : child_r2.children.length) && ctx_r2.hasVisibleChildren(child_r2))("ngIfElse", noSubChildren_r14);
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_ng_container_1_Template, 4, 2, "ng-container", 27);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const child_r2 = ctx.$implicit;
    const ctx_r2 = \u0275\u0275nextContext(4);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", child_r2.link_type !== ctx_r2.COMMON_CONFIG.MENU_LINK_TYPE.ACTION);
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275elementStart(1, "h2", 29);
    \u0275\u0275element(2, "i", 30);
    \u0275\u0275elementStart(3, "span");
    \u0275\u0275text(4);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(6, "ul");
    \u0275\u0275template(7, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_ng_container_7_Template, 2, 1, "ng-container", 26);
    \u0275\u0275elementEnd();
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const item_r15 = \u0275\u0275nextContext(2).$implicit;
    \u0275\u0275advance(4);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(5, 2, item_r15.name));
    \u0275\u0275advance(3);
    \u0275\u0275property("ngForOf", item_r15.children);
  }
}
function SidebarComponent_ng_container_23_ng_container_1_ng_template_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "h2", 29);
    \u0275\u0275element(1, "i", 30);
    \u0275\u0275elementStart(2, "span")(3, "a", 45);
    \u0275\u0275pipe(4, "translate");
    \u0275\u0275text(5);
    \u0275\u0275pipe(6, "translate");
    \u0275\u0275elementEnd()()();
  }
  if (rf & 2) {
    const item_r15 = \u0275\u0275nextContext(2).$implicit;
    \u0275\u0275advance(3);
    \u0275\u0275propertyInterpolate("title", \u0275\u0275pipeBind1(4, 4, item_r15.name));
    \u0275\u0275property("routerLink", item_r15.target)("routerLinkActiveOptions", \u0275\u0275pureFunction0(8, _c2));
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(6, 6, item_r15.name), " ");
  }
}
function SidebarComponent_ng_container_23_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, SidebarComponent_ng_container_23_ng_container_1_ng_container_1_Template, 8, 4, "ng-container", 28)(2, SidebarComponent_ng_container_23_ng_container_1_ng_template_2_Template, 7, 9, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const noChildren_r16 = \u0275\u0275reference(3);
    const item_r15 = \u0275\u0275nextContext().$implicit;
    const ctx_r2 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", (item_r15.children == null ? null : item_r15.children.length) && ctx_r2.hasVisibleChildren(item_r15))("ngIfElse", noChildren_r16);
  }
}
function SidebarComponent_ng_container_23_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, SidebarComponent_ng_container_23_ng_container_1_Template, 4, 2, "ng-container", 27);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const item_r15 = ctx.$implicit;
    const ctx_r2 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", item_r15.link_type !== ctx_r2.COMMON_CONFIG.MENU_LINK_TYPE.ACTION);
  }
}
var _SidebarComponent = class _SidebarComponent {
  constructor(translate, storeData, router, localstore, menuLoadService) {
    this.translate = translate;
    this.storeData = storeData;
    this.router = router;
    this.localstore = localstore;
    this.menuLoadService = menuLoadService;
    this.menuItems = [];
    this.active = false;
    this.activeDropdown = [];
    this.parentDropdown = "";
    this.COMMON_CONFIG = commonConfig;
    this.apiUrl = environment.apiUrl;
    this.showssmenu = true;
    this.initStore();
  }
  initStore() {
    return __async(this, null, function* () {
      this.storeData.select((d) => d.index).subscribe((d) => {
        this.store = d;
        if (this.store.menu == "horizontal") {
          this.showssmenu = true;
        } else {
          if (this.store.menu == "vertical" && this.store.sidebar) {
            this.showssmenu = true;
          } else {
            this.showssmenu = false;
          }
        }
      });
    });
  }
  ngOnInit() {
    this.config = JSON.parse(this.localstore.getData("config"));
    const userData = this.localstore.getData("user_data");
    if (userData) {
      const parsedData = JSON.parse(userData);
      this.user_info = parsedData;
      this.userId = parsedData.main?.id;
      this.companyId = parsedData.main?.company_id;
    }
    this.setActiveDropdown();
    this.loadMenuFromStorage();
  }
  getTranslatedValues(key, label) {
    return this.translate.get(key).pipe(map((translations) => {
      return translations.includes(".") ? label : translations;
    }));
  }
  loadMenuFromStorage() {
    return this.menuLoadService.fetchMenuData(this.companyId).pipe(map((menuList) => {
      if (menuList && menuList.length > 0) {
        this.menuItems = menuList;
        this.filterMenuItems();
      } else {
        console.warn("No menu list found after fetching.");
      }
    }), catchError((error) => {
      console.error("Error fetching menu data:", error);
      return of([]);
    })).toPromise();
  }
  filterMenuItems() {
    const viewPermissions = Object.entries(this.user_info.permissions).filter(([key, value]) => key.startsWith("view_") && value === true).map(([key, value]) => key.replace("view_", ""));
    this.menuItems = this.filterMenu(this.menuItems, viewPermissions);
  }
  filterMenu(menuItems, viewPermissions) {
    return menuItems.filter((item) => {
      const permissionKey = item.entity_name;
      const hasPermission = viewPermissions.includes(permissionKey);
      if (item.children && item.children.length) {
        item.children = this.filterMenu(item.children, viewPermissions);
      }
      if (item.parent_id == null) {
        return true;
      }
      return hasPermission || item.children && item.children.length > 0;
    });
  }
  setActiveDropdown() {
    const selector = document.querySelector('.sidebar ul a[routerLink="' + window.location.pathname + '"]');
    if (selector) {
      selector.classList.add("active");
      const ul = selector.closest("ul.sub-menu");
      if (ul) {
        let ele = ul.closest("li.menu").querySelectorAll(".nav-link") || [];
        if (ele.length) {
          ele = ele[0];
          setTimeout(() => {
            ele.click();
          });
        }
      }
    }
  }
  hasVisibleChildren(item) {
    if (item.children && item.children.length) {
      return item.children.some((child) => child.link_type !== this.COMMON_CONFIG.MENU_LINK_TYPE.ACTION);
    }
    return false;
  }
  getHref(target) {
    if (target && typeof target === "string" && target.startsWith("http")) {
      return target;
    }
    return target ? "http://" + target : "";
  }
  toggleMobileMenu() {
    if (window.innerWidth < 1024) {
      this.storeData.dispatch({ type: "toggleSidebar" });
    }
  }
  isActive(route) {
    const options = { paths: "exact", queryParams: "exact", fragment: "ignored", matrixParams: "ignored" };
    return this.router.isActive(route, options);
  }
  toggleAccordion(name, parent) {
    if (this.activeDropdown.includes(name)) {
      this.activeDropdown = this.activeDropdown.filter((d) => d !== name);
    } else {
      this.activeDropdown.push(name);
    }
  }
};
_SidebarComponent.\u0275fac = function SidebarComponent_Factory(t) {
  return new (t || _SidebarComponent)(\u0275\u0275directiveInject(TranslateService), \u0275\u0275directiveInject(Store), \u0275\u0275directiveInject(Router), \u0275\u0275directiveInject(LocalStorageService), \u0275\u0275directiveInject(MenuLoadService));
};
_SidebarComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _SidebarComponent, selectors: [["sidebar"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 24, vars: 15, consts: [["noChildren", ""], ["noSubChildren", ""], ["noSubSubChildren", ""], ["internalSubSubChildLink", ""], ["internalSubChildLink", ""], ["internalChildLink", ""], [3, "ngClass"], [1, "sidebar", "fixed", "bottom-0", "top-0", "z-50", "h-full", "min-h-screen", "w-[260px]", "shadow-[5px_0_25px_0_rgba(94,92,154,0.1)]", "transition-all", "duration-300"], [1, "h-full", "bg-white", "dark:bg-[#0e1726]"], [1, "flex", "items-center", "justify-between", "px-4", "py-3", 3, "ngClass"], ["routerLink", "/", 1, "main-logo", "flex", "shrink-0", "items-center"], ["alt", "", "appDynamicFontSize", "headerlogo", 1, "ml-[5px]", "flex-none", 3, "src", "alt"], ["appDynamicFontSize", "heading", 1, "truncate-text", "hidden", "align-middle", "text-lg", "font-semibold", "dark:text-white-light", "lg:inline", "ltr:ml-1.5", "rtl:mr-1.5", 2, "max-width", "15ch"], ["href", "javascript:;", 1, "collapse-icon", "flex", "h-8", "w-8", "items-center", "rounded-full", "transition", "duration-300", "hover:bg-gray-500/10", "hover:text-primary", "dark:text-white-light", "dark:hover:bg-dark-light/10", "rtl:rotate-180", 3, "click"], [1, "fa-solid", "fa-angles-right"], ["appearance", "compact", 1, "relative", "!h-[calc(100vh-80px)]"], [1, "relative", "space-y-0.5", "p-4", "py-0", "font-semibold"], [1, "nav-item"], ["routerLink", "/", "routerLinkActive", "active", 1, "group", 3, "click", "routerLinkActiveOptions"], [1, "flex", "items-center"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", "ng-reflect-ng-class", "h-6 w-6", 1, "ng-star-inserted", "h-6", "w-6"], ["opacity", "0.5", "d", "M13 15.4C13 13.3258 13 12.2887 13.659 11.6444C14.318 11 15.3787 11 17.5 11C19.6213 11 20.682 11 21.341 11.6444C22 12.2887 22 13.3258 22 15.4V17.6C22 19.6742 22 20.7113 21.341 21.3556C20.682 22 19.6213 22 17.5 22C15.3787 22 14.318 22 13.659 21.3556C13 20.7113 13 19.6742 13 17.6V15.4Z", "fill", "currentColor"], ["d", "M2 8.6C2 10.6742 2 11.7113 2.65901 12.3556C3.31802 13 4.37868 13 6.5 13C8.62132 13 9.68198 13 10.341 12.3556C11 11.7113 11 10.6742 11 8.6V6.4C11 4.32582 11 3.28873 10.341 2.64437C9.68198 2 8.62132 2 6.5 2C4.37868 2 3.31802 2 2.65901 2.64437C2 3.28873 2 4.32582 2 6.4V8.6Z", "fill", "currentColor"], ["d", "M13 5.5C13 4.4128 13 3.8692 13.1713 3.44041C13.3996 2.86867 13.8376 2.41443 14.389 2.17761C14.8024 2 15.3266 2 16.375 2H18.625C19.6734 2 20.1976 2 20.611 2.17761C21.1624 2.41443 21.6004 2.86867 21.8287 3.44041C22 3.8692 22 4.4128 22 5.5C22 6.5872 22 7.1308 21.8287 7.55959C21.6004 8.13133 21.1624 8.58557 20.611 8.82239C20.1976 9 19.6734 9 18.625 9H16.375C15.3266 9 14.8024 9 14.389 8.82239C13.8376 8.58557 13.3996 8.13133 13.1713 7.55959C13 7.1308 13 6.5872 13 5.5Z", "fill", "currentColor"], ["opacity", "0.5", "d", "M2 18.5C2 19.5872 2 20.1308 2.17127 20.5596C2.39963 21.1313 2.83765 21.5856 3.38896 21.8224C3.80245 22 4.32663 22 5.375 22H7.625C8.67337 22 9.19755 22 9.61104 21.8224C10.1624 21.5856 10.6004 21.1313 10.8287 20.5596C11 20.1308 11 19.5872 11 18.5C11 17.4128 11 16.8692 10.8287 16.4404C10.6004 15.8687 10.1624 15.4144 9.61104 15.1776C9.19755 15 8.67337 15 7.625 15H5.375C4.32663 15 3.80245 15 3.38896 15.1776C2.83765 15.4144 2.39963 15.8687 2.17127 16.4404C2 16.8692 2 17.4128 2 18.5Z", "fill", "currentColor"], [1, "text-black", "dark:text-[#506690]", "dark:group-hover:text-white-dark", "ltr:pl-3", "rtl:pr-3"], [4, "ngFor", "ngForOf"], [4, "ngIf"], [4, "ngIf", "ngIfElse"], [1, "-mx-4", "mb-1", "flex", "items-center", "bg-white-light/30", "px-7", "py-3", "font-extrabold", "uppercase", "dark:bg-dark", "dark:bg-opacity-[0.08]"], [1, "fa-solid", "fa-minus", "xl-2", "hidden", "flex-none"], ["class", "accordion menu nav-item", 4, "ngIf", "ngIfElse"], [1, "accordion", "menu", "nav-item"], ["type", "button", 1, "nav-link", "group", "w-full", 3, "click", "ngClass"], ["aria-hidden", "true", 1, "fas", 3, "ngClass"], [1, "text-black", "dark:text-[#506690]", "dark:group-hover:text-white-dark", "ltr:pl-3", "rtl:pr-3", 3, "title"], [1, "fa-solid", "fa-angle-down"], [1, "accordion-content"], [1, "sub-menu", "text-gray-500"], ["target", "_blank", 3, "title", 4, "ngIf", "ngIfElse"], ["target", "_blank", 3, "title"], ["routerLinkActive", "active", 3, "click", "title", "routerLink", "routerLinkActiveOptions"], ["target", "_blank", "class", "group", 3, "title", 4, "ngIf", "ngIfElse"], ["target", "_blank", 1, "group", 3, "title"], ["routerLinkActive", "active", 1, "group", 3, "click", "title", "routerLink", "routerLinkActiveOptions"], ["routerLinkActive", "active", 3, "title", "routerLink", "routerLinkActiveOptions"]], template: function SidebarComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 6)(1, "nav", 7)(2, "div", 8)(3, "div", 9)(4, "a", 10);
    \u0275\u0275element(5, "img", 11);
    \u0275\u0275elementStart(6, "span", 12);
    \u0275\u0275text(7);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(8, "a", 13);
    \u0275\u0275listener("click", function SidebarComponent_Template_a_click_8_listener() {
      return ctx.storeData.dispatch({ type: "toggleSidebar" });
    });
    \u0275\u0275element(9, "i", 14);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(10, "ng-scrollbar", 15)(11, "ul", 16)(12, "li", 17)(13, "a", 18);
    \u0275\u0275listener("click", function SidebarComponent_Template_a_click_13_listener() {
      return ctx.toggleMobileMenu();
    });
    \u0275\u0275elementStart(14, "div", 19);
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(15, "svg", 20);
    \u0275\u0275element(16, "path", 21)(17, "path", 22)(18, "path", 23)(19, "path", 24);
    \u0275\u0275elementEnd();
    \u0275\u0275namespaceHTML();
    \u0275\u0275elementStart(20, "span", 25);
    \u0275\u0275text(21);
    \u0275\u0275pipe(22, "translate");
    \u0275\u0275elementEnd()()()();
    \u0275\u0275template(23, SidebarComponent_ng_container_23_Template, 2, 1, "ng-container", 26);
    \u0275\u0275elementEnd()()()()();
  }
  if (rf & 2) {
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(10, _c0, ctx.store.semidark));
    \u0275\u0275advance(3);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(12, _c1, ctx.showssmenu));
    \u0275\u0275advance(2);
    \u0275\u0275property("src", ctx.apiUrl + "/" + (ctx.config == null ? null : ctx.config.logo), \u0275\u0275sanitizeUrl)("alt", ctx.config == null ? null : ctx.config.company_name);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(ctx.config == null ? null : ctx.config.company_name);
    \u0275\u0275advance(6);
    \u0275\u0275property("routerLinkActiveOptions", \u0275\u0275pureFunction0(14, _c2));
    \u0275\u0275advance(8);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(22, 8, "dashboard"));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngForOf", ctx.menuItems);
  }
}, dependencies: [CommonSharedModule, NgClass, NgForOf, NgIf, NgScrollbar, RouterLink, RouterLinkActive, DynamicFontSizeDirective, TranslatePipe], encapsulation: 2, data: { animation: [slideDownUp] } });
var SidebarComponent = _SidebarComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(SidebarComponent, { className: "SidebarComponent", filePath: "src\\app\\layouts\\sidebar.ts", lineNumber: 41 });
})();

// src/app/layouts/theme-customizer.ts
var _c02 = (a0) => ({ "!block": a0 });
var _c12 = (a0) => ({ "ltr:!right-0 rtl:!left-0": a0 });
var _c22 = (a0) => [a0];
var _ThemeCustomizerComponent = class _ThemeCustomizerComponent {
  constructor(storeData, router, localStore) {
    this.storeData = storeData;
    this.router = router;
    this.localStore = localStore;
    this.showCustomizer = false;
    this.versionInfo = null;
    this.initStore();
    this.versionInfo = JSON.parse(this.localStore.getData("version_info"));
  }
  initStore() {
    return __async(this, null, function* () {
      this.storeData.select((d) => d.index).subscribe((d) => {
        this.store = d;
      });
    });
  }
  reloadRoute() {
    window.location.reload();
    this.showCustomizer = true;
  }
};
_ThemeCustomizerComponent.\u0275fac = function ThemeCustomizerComponent_Factory(t) {
  return new (t || _ThemeCustomizerComponent)(\u0275\u0275directiveInject(Store), \u0275\u0275directiveInject(Router), \u0275\u0275directiveInject(LocalStorageService));
};
_ThemeCustomizerComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _ThemeCustomizerComponent, selectors: [["setting"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 140, vars: 46, consts: [[1, "fixed", "inset-0", "z-[51]", "hidden", "bg-[black]/60", "px-4", "transition-[display]", 3, "click", "ngClass"], [1, "fixed", "bottom-0", "top-0", "z-[51]", "w-full", "max-w-[400px]", "bg-white", "p-4", "shadow-[5px_0_25px_0_rgba(94,92,154,0.1)]", "transition-[right]", "duration-300", "dark:bg-[#0e1726]", "ltr:-right-[400px]", "rtl:-left-[400px]", 3, "ngClass"], ["href", "javascript:;", 1, "absolute", "bottom-0", "top-0", "my-auto", "flex", "h-10", "w-12", "cursor-pointer", "items-center", "justify-center", "bg-primary", "text-white", "ltr:-left-12", "ltr:rounded-bl-full", "ltr:rounded-tl-full", "rtl:-right-12", "rtl:rounded-br-full", "rtl:rounded-tr-full", 3, "click"], [1, "fa-solid", "fa-gear", "animate-[spin_3s_linear_infinite]", "text-xl"], [1, "flex", "h-full", "flex-col"], [1, "flex-grow", "overflow-x-hidden", "ltr:-mr-3", "ltr:pr-3", "rtl:-ml-3", "rtl:pl-3"], [1, "relative", "pb-5", "text-center"], ["href", "javascript:;", 1, "absolute", "top-0", "opacity-30", "hover:opacity-100", "dark:text-white", "ltr:right-0", "rtl:left-0", 3, "click"], [1, "fa-solid", "fa-xmark", "text-xl"], [1, "mb-1", "dark:text-white"], [1, "text-white-dark"], [1, "mb-3", "rounded-md", "border", "border-dashed", "border-[#e0e6ed]", "p-3", "dark:border-[#1b2e4b]"], [1, "mb-1", "text-base", "leading-none", "dark:text-white"], [1, "text-xs", "text-white-dark"], [1, "mt-3", "grid", "grid-cols-3", "gap-2"], ["type", "button", 1, "btn", 3, "click", "ngClass"], [1, "fas", "fa-sun", "shrink-0", "ltr:mr-2", "rtl:ml-2"], [1, "far", "fa-moon", "shrink-0", "ltr:mr-2", "rtl:ml-2"], [1, "fas", "fa-laptop", "shrink-0", "ltr:mr-2", "rtl:ml-2"], [1, "mt-5", "text-primary"], [1, "mb-0", "inline-flex"], ["type", "checkbox", 1, "form-checkbox", 3, "ngModelChange", "ngModel"], [1, "mt-3", "flex", "gap-2"], ["type", "button", 1, "btn", "flex-auto", 3, "click", "ngClass"], [1, "mt-3", "flex", "items-center", "gap-3", "text-primary"], ["type", "radio", "value", "navbar-sticky", 1, "form-radio", 3, "change", "checked"], ["type", "radio", "value", "navbar-floating", 1, "form-radio", 3, "change", "checked"], ["type", "radio", "value", "navbar-static", 1, "form-radio", 3, "change", "checked"], ["type", "radio", "value", "small", 1, "form-radio", 3, "change", "checked"], ["type", "radio", "value", "medium", 1, "form-radio", 3, "change", "checked"], ["type", "radio", "value", "large", 1, "form-radio", 3, "change", "checked"], [1, "mt-3"], [1, "form-select", "border-primary", "text-primary", 3, "ngModelChange", "ngModel"], ["value", ""], ["value", "animate__fadeIn"], ["value", "animate__fadeInDown"], ["value", "animate__fadeInUp"], ["value", "animate__fadeInLeft"], ["value", "animate__fadeInRight"], ["value", "animate__slideInDown"], ["value", "animate__slideInLeft"], ["value", "animate__slideInRight"], ["value", "animate__zoomIn"], [1, "border-t", "border-dashed", "border-[#e0e6ed]", "pt-3", "dark:border-[#1b2e4b]"], [1, "rounded-md", "border", "border-dashed", "border-[#4a98f2]", "bg-slate-50", "p-3", "dark:border-[#1b2e4b]", "dark:bg-[#0e1726]"], [1, "flex", "flex-col", "gap-2"], [1, "flex", "flex-row", "gap-5", "align-middle", "text-primary"], [1, "mb-1", "p-2", "text-base", "leading-none", "text-black", "dark:text-white"], [1, "rounded-md", "border", "border-dashed", "border-[#4a98f2]", "p-2", "dark:border-[#1b2e4b]"]], template: function ThemeCustomizerComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div")(1, "div", 0);
    \u0275\u0275listener("click", function ThemeCustomizerComponent_Template_div_click_1_listener() {
      return ctx.showCustomizer = false;
    });
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(2, "nav", 1)(3, "a", 2);
    \u0275\u0275listener("click", function ThemeCustomizerComponent_Template_a_click_3_listener() {
      return ctx.showCustomizer = !ctx.showCustomizer;
    });
    \u0275\u0275element(4, "i", 3);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(5, "div", 4)(6, "ng-scrollbar", 5)(7, "div")(8, "div", 6)(9, "a", 7);
    \u0275\u0275listener("click", function ThemeCustomizerComponent_Template_a_click_9_listener() {
      return ctx.showCustomizer = false;
    });
    \u0275\u0275element(10, "i", 8);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(11, "h4", 9);
    \u0275\u0275text(12, "TEMPLATE CUSTOMIZER");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(13, "p", 10);
    \u0275\u0275text(14, "Set preferences that will be cookied for your live preview demonstration.");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(15, "div", 11)(16, "h5", 12);
    \u0275\u0275text(17, "Color Scheme");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(18, "p", 13);
    \u0275\u0275text(19, "Overall light or dark presentation.");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(20, "div", 14)(21, "button", 15);
    \u0275\u0275listener("click", function ThemeCustomizerComponent_Template_button_click_21_listener() {
      return ctx.storeData.dispatch({ type: "toggleTheme", payload: "light" });
    });
    \u0275\u0275element(22, "i", 16);
    \u0275\u0275text(23, " Light ");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(24, "button", 15);
    \u0275\u0275listener("click", function ThemeCustomizerComponent_Template_button_click_24_listener() {
      return ctx.storeData.dispatch({ type: "toggleTheme", payload: "dark" });
    });
    \u0275\u0275element(25, "i", 17);
    \u0275\u0275text(26, " Dark ");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(27, "button", 15);
    \u0275\u0275listener("click", function ThemeCustomizerComponent_Template_button_click_27_listener() {
      return ctx.storeData.dispatch({ type: "toggleTheme", payload: "system" });
    });
    \u0275\u0275element(28, "i", 18);
    \u0275\u0275text(29, " System ");
    \u0275\u0275elementEnd()()();
    \u0275\u0275elementStart(30, "div", 11)(31, "h5", 12);
    \u0275\u0275text(32, "Navigation Position");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(33, "p", 13);
    \u0275\u0275text(34, "Select the primary navigation paradigm for your app.");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(35, "div", 14)(36, "button", 15);
    \u0275\u0275listener("click", function ThemeCustomizerComponent_Template_button_click_36_listener() {
      return ctx.storeData.dispatch({ type: "toggleMenu", payload: "horizontal" });
    });
    \u0275\u0275text(37, " Horizontal ");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(38, "button", 15);
    \u0275\u0275listener("click", function ThemeCustomizerComponent_Template_button_click_38_listener() {
      return ctx.storeData.dispatch({ type: "toggleMenu", payload: "vertical" });
    });
    \u0275\u0275text(39, " Vertical ");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(40, "button", 15);
    \u0275\u0275listener("click", function ThemeCustomizerComponent_Template_button_click_40_listener() {
      return ctx.storeData.dispatch({ type: "toggleMenu", payload: "collapsible-vertical" });
    });
    \u0275\u0275text(41, " Collapsible ");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(42, "div", 19)(43, "label", 20)(44, "input", 21);
    \u0275\u0275listener("ngModelChange", function ThemeCustomizerComponent_Template_input_ngModelChange_44_listener() {
      return ctx.storeData.dispatch({ type: "toggleSemidark", payload: !ctx.store.semidark });
    });
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(45, "span");
    \u0275\u0275text(46, "Semi Dark (Sidebar & Header)");
    \u0275\u0275elementEnd()()()();
    \u0275\u0275elementStart(47, "div", 11)(48, "h5", 12);
    \u0275\u0275text(49, "Layout Style");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(50, "p", 13);
    \u0275\u0275text(51, "Select the primary layout style for your app.");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(52, "div", 22)(53, "button", 23);
    \u0275\u0275listener("click", function ThemeCustomizerComponent_Template_button_click_53_listener() {
      return ctx.storeData.dispatch({ type: "toggleLayout", payload: "boxed-layout" });
    });
    \u0275\u0275text(54, " Box ");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(55, "button", 23);
    \u0275\u0275listener("click", function ThemeCustomizerComponent_Template_button_click_55_listener() {
      return ctx.storeData.dispatch({ type: "toggleLayout", payload: "full" });
    });
    \u0275\u0275text(56, " Full ");
    \u0275\u0275elementEnd()()();
    \u0275\u0275elementStart(57, "div", 11)(58, "h5", 12);
    \u0275\u0275text(59, "Direction");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(60, "p", 13);
    \u0275\u0275text(61, "Select the direction for your app.");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(62, "div", 22)(63, "button", 23);
    \u0275\u0275listener("click", function ThemeCustomizerComponent_Template_button_click_63_listener() {
      ctx.storeData.dispatch({ type: "toggleRTL", payload: "ltr" });
      return ctx.reloadRoute();
    });
    \u0275\u0275text(64, " LTR ");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(65, "button", 23);
    \u0275\u0275listener("click", function ThemeCustomizerComponent_Template_button_click_65_listener() {
      ctx.storeData.dispatch({ type: "toggleRTL", payload: "rtl" });
      return ctx.reloadRoute();
    });
    \u0275\u0275text(66, " RTL ");
    \u0275\u0275elementEnd()()();
    \u0275\u0275elementStart(67, "div", 11)(68, "h5", 12);
    \u0275\u0275text(69, "Navbar Type");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(70, "p", 13);
    \u0275\u0275text(71, "Sticky or Floating.");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(72, "div", 24)(73, "label", 20)(74, "input", 25);
    \u0275\u0275listener("change", function ThemeCustomizerComponent_Template_input_change_74_listener() {
      return ctx.storeData.dispatch({ type: "toggleNavbar", payload: "navbar-sticky" });
    });
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(75, "span");
    \u0275\u0275text(76, "Sticky");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(77, "label", 20)(78, "input", 26);
    \u0275\u0275listener("change", function ThemeCustomizerComponent_Template_input_change_78_listener() {
      return ctx.storeData.dispatch({ type: "toggleNavbar", payload: "navbar-floating" });
    });
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(79, "span");
    \u0275\u0275text(80, "Floating");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(81, "label", 20)(82, "input", 27);
    \u0275\u0275listener("change", function ThemeCustomizerComponent_Template_input_change_82_listener() {
      return ctx.storeData.dispatch({ type: "toggleNavbar", payload: "navbar-static" });
    });
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(83, "span");
    \u0275\u0275text(84, "Static");
    \u0275\u0275elementEnd()()()();
    \u0275\u0275elementStart(85, "div", 11)(86, "h5", 12);
    \u0275\u0275text(87, "Font Size");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(88, "p", 13);
    \u0275\u0275text(89, "Select the font size.");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(90, "div", 24)(91, "label", 20)(92, "input", 28);
    \u0275\u0275listener("change", function ThemeCustomizerComponent_Template_input_change_92_listener() {
      return ctx.storeData.dispatch({ type: "toggleFontSize", payload: "small" });
    });
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(93, "span");
    \u0275\u0275text(94, "Small");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(95, "label", 20)(96, "input", 29);
    \u0275\u0275listener("change", function ThemeCustomizerComponent_Template_input_change_96_listener() {
      return ctx.storeData.dispatch({ type: "toggleFontSize", payload: "medium" });
    });
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(97, "span");
    \u0275\u0275text(98, "Medium");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(99, "label", 20)(100, "input", 30);
    \u0275\u0275listener("change", function ThemeCustomizerComponent_Template_input_change_100_listener() {
      return ctx.storeData.dispatch({ type: "toggleFontSize", payload: "large" });
    });
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(101, "span");
    \u0275\u0275text(102, "Large");
    \u0275\u0275elementEnd()()()();
    \u0275\u0275elementStart(103, "div", 11)(104, "h5", 12);
    \u0275\u0275text(105, "Router Transition");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(106, "p", 13);
    \u0275\u0275text(107, "Animation of main content.");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(108, "div", 31)(109, "select", 32);
    \u0275\u0275listener("ngModelChange", function ThemeCustomizerComponent_Template_select_ngModelChange_109_listener($event) {
      return ctx.storeData.dispatch({ type: "toggleAnimation", payload: $event });
    });
    \u0275\u0275elementStart(110, "option", 33);
    \u0275\u0275text(111, "None");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(112, "option", 34);
    \u0275\u0275text(113, "Fade");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(114, "option", 35);
    \u0275\u0275text(115, "Fade Down");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(116, "option", 36);
    \u0275\u0275text(117, "Fade Up");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(118, "option", 37);
    \u0275\u0275text(119, "Fade Left");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(120, "option", 38);
    \u0275\u0275text(121, "Fade Right");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(122, "option", 39);
    \u0275\u0275text(123, "Slide Down");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(124, "option", 40);
    \u0275\u0275text(125, "Slide Left");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(126, "option", 41);
    \u0275\u0275text(127, "Slide Right");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(128, "option", 42);
    \u0275\u0275text(129, "Zoom In");
    \u0275\u0275elementEnd()()()()()();
    \u0275\u0275elementStart(130, "div", 43)(131, "div", 44)(132, "div", 45)(133, "div", 46)(134, "h5", 47);
    \u0275\u0275text(135, "Version :");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(136, "div", 48);
    \u0275\u0275text(137);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(138, "div", 48);
    \u0275\u0275text(139);
    \u0275\u0275elementEnd()()()()()()()();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(22, _c02, ctx.showCustomizer));
    \u0275\u0275advance();
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(24, _c12, ctx.showCustomizer));
    \u0275\u0275advance(19);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(26, _c22, ctx.store.theme === "light" ? "btn-primary" : "btn-outline-primary"));
    \u0275\u0275advance(3);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(28, _c22, ctx.store.theme === "dark" ? "btn-primary" : "btn-outline-primary"));
    \u0275\u0275advance(3);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(30, _c22, ctx.store.theme === "system" ? "btn-primary" : "btn-outline-primary"));
    \u0275\u0275advance(9);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(32, _c22, ctx.store.menu === "horizontal" ? "btn-primary" : "btn-outline-primary"));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(34, _c22, ctx.store.menu === "vertical" ? "btn-primary" : "btn-outline-primary"));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(36, _c22, ctx.store.menu === "collapsible-vertical" ? "btn-primary" : "btn-outline-primary"));
    \u0275\u0275advance(4);
    \u0275\u0275property("ngModel", ctx.store.semidark);
    \u0275\u0275advance(9);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(38, _c22, ctx.store.layout === "boxed-layout" ? "btn-primary" : "btn-outline-primary"));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(40, _c22, ctx.store.layout === "full" ? "btn-primary" : "btn-outline-primary"));
    \u0275\u0275advance(8);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(42, _c22, ctx.store.rtlClass === "ltr" ? "btn-primary" : "btn-outline-primary"));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(44, _c22, ctx.store.rtlClass === "rtl" ? "btn-primary" : "btn-outline-primary"));
    \u0275\u0275advance(9);
    \u0275\u0275property("checked", ctx.store.navbar === "navbar-sticky");
    \u0275\u0275advance(4);
    \u0275\u0275property("checked", ctx.store.navbar === "navbar-floating");
    \u0275\u0275advance(4);
    \u0275\u0275property("checked", ctx.store.navbar === "navbar-static");
    \u0275\u0275advance(10);
    \u0275\u0275property("checked", ctx.store.fontsize === "small");
    \u0275\u0275advance(4);
    \u0275\u0275property("checked", ctx.store.fontsize === "medium");
    \u0275\u0275advance(4);
    \u0275\u0275property("checked", ctx.store.fontsize === "large");
    \u0275\u0275advance(9);
    \u0275\u0275property("ngModel", ctx.store.animation);
    \u0275\u0275advance(28);
    \u0275\u0275textInterpolate1("(APP) V", ctx.versionInfo.app, "");
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1("(LCP) V", ctx.versionInfo.lcp, "");
  }
}, dependencies: [CommonSharedModule, NgClass, NgScrollbar, NgSelectOption, \u0275NgSelectMultipleOption, CheckboxControlValueAccessor, SelectControlValueAccessor, NgControlStatus, NgModel], encapsulation: 2 });
var ThemeCustomizerComponent = _ThemeCustomizerComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(ThemeCustomizerComponent, { className: "ThemeCustomizerComponent", filePath: "src\\app\\layouts\\theme-customizer.ts", lineNumber: 14 });
})();

// src/app/layouts/menu-item-component.ts
var _c03 = (a0) => [a0];
function MenuItemComponent_icon_menu_dashboard_3_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "icon-menu-dashboard", 7);
  }
}
function MenuItemComponent_div_7_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 8);
    \u0275\u0275element(1, "i", 9);
    \u0275\u0275elementEnd();
  }
}
function MenuItemComponent_ul_8_app_menu_item_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "app-menu-item", 12);
  }
  if (rf & 2) {
    const child_r1 = ctx.$implicit;
    \u0275\u0275property("item", child_r1);
  }
}
function MenuItemComponent_ul_8_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "ul", 10);
    \u0275\u0275template(1, MenuItemComponent_ul_8_app_menu_item_1_Template, 1, 1, "app-menu-item", 11);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", ctx_r1.item.children);
  }
}
var _MenuItemComponent = class _MenuItemComponent {
  constructor(router) {
    this.router = router;
  }
  ngOnInit() {
    this.setActiveDropdown();
    this.router.events.subscribe((event) => {
      if (event instanceof NavigationEnd) {
        this.setActiveDropdown();
      }
    });
  }
  isActive(route) {
    const options = { paths: "exact", queryParams: "exact", fragment: "ignored", matrixParams: "ignored" };
    return this.router.isActive(route, options);
  }
  setActiveDropdown() {
    const selector = document.querySelector('ul.horizontal-menu a[routerLink="' + window.location.pathname + '"]');
    if (selector) {
      selector.classList.add("active");
      const all = document.querySelectorAll("ul.horizontal-menu .nav-link.active");
      for (let i = 0; i < all.length; i++) {
        all[0]?.classList.remove("active");
      }
      const ul = selector.closest("ul.sub-menu");
      if (ul) {
        let ele = ul.closest("li.menu").querySelectorAll(".nav-link");
        if (ele) {
          ele = ele[0];
          setTimeout(() => {
            ele?.classList.add("active");
          });
        }
      }
    }
  }
};
_MenuItemComponent.\u0275fac = function MenuItemComponent_Factory(t) {
  return new (t || _MenuItemComponent)(\u0275\u0275directiveInject(Router));
};
_MenuItemComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _MenuItemComponent, selectors: [["app-menu-item"]], inputs: { item: "item" }, standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 9, vars: 10, consts: [[1, "menu", "nav-item", "relative"], [1, "nav-link", 3, "routerLink", "routerLinkActive"], [1, "flex", "items-center"], ["class", "shrink-0", 4, "ngIf"], [1, "px-2"], ["class", "right_arrow", 4, "ngIf"], ["class", "sub-menu", 4, "ngIf"], [1, "shrink-0"], [1, "right_arrow"], [1, "fa-solid", "fa-angle-down"], [1, "sub-menu"], [3, "item", 4, "ngFor", "ngForOf"], [3, "item"]], template: function MenuItemComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "li", 0)(1, "a", 1)(2, "div", 2);
    \u0275\u0275template(3, MenuItemComponent_icon_menu_dashboard_3_Template, 1, 0, "icon-menu-dashboard", 3);
    \u0275\u0275elementStart(4, "span", 4);
    \u0275\u0275text(5);
    \u0275\u0275pipe(6, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275template(7, MenuItemComponent_div_7_Template, 2, 0, "div", 5);
    \u0275\u0275elementEnd();
    \u0275\u0275template(8, MenuItemComponent_ul_8_Template, 2, 1, "ul", 6);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275property("routerLink", ctx.item.target ? \u0275\u0275pureFunction1(8, _c03, ctx.item.target) : null)("routerLinkActive", ctx.item.target ? "active" : "");
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx.item.name.toLowerCase() === "dashboard");
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(6, 6, ctx.item.name));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx.item.children && ctx.item.children.length);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx.item.children && ctx.item.children.length);
  }
}, dependencies: [_MenuItemComponent, CommonSharedModule, NgForOf, NgIf, RouterLink, RouterLinkActive, TranslatePipe, IconMenuDashboardComponent], encapsulation: 2 });
var MenuItemComponent = _MenuItemComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(MenuItemComponent, { className: "MenuItemComponent", filePath: "src\\app\\layouts\\menu-item-component.ts", lineNumber: 39 });
})();

// src/app/theme.config.ts
var $themeConfig = {
  locale: "en",
  // en, da, de, el, es, fr, hu, it, ja, pl, pt, ru, sv, tr, zh
  theme: "light",
  // light, dark, system
  menu: "vertical",
  // vertical, collapsible-vertical, horizontal
  layout: "full",
  // full, boxed-layout
  rtlClass: "ltr",
  // rtl, ltr
  animation: "",
  // animate__fadeIn, animate__fadeInDown, animate__fadeInUp, animate__fadeInLeft, animate__fadeInRight, animate__slideInDown, animate__slideInLeft, animate__slideInRight, animate__zoomIn
  navbar: "navbar-sticky",
  // navbar-sticky, navbar-floating, navbar-static
  semidark: false,
  fontsize: "small"
};

// src/app/@lcp-framework/service/common/app.service.ts
var _AppService = class _AppService {
  constructor(translate, store, languageService) {
    this.translate = translate;
    this.store = store;
    this.languageService = languageService;
    this.initStoreData();
  }
  initStoreData() {
    this.store.select((d) => d.index).subscribe((d) => {
      this.storeData = d;
    });
    let val = localStorage.getItem("theme");
    val = val || $themeConfig.theme;
    this.store.dispatch({ type: "toggleTheme", payload: val });
    val = localStorage.getItem("menu");
    val = val || $themeConfig.menu;
    this.store.dispatch({ type: "toggleMenu", payload: val });
    val = localStorage.getItem("layout");
    val = val || $themeConfig.layout;
    this.store.dispatch({ type: "toggleLayout", payload: val });
    val = localStorage.getItem("i18n_locale");
    val = val || $themeConfig.locale;
    const list = this.storeData.languageList;
    const item = list.find((item2) => item2.code === val);
    if (item) {
      this.toggleLanguage(item);
    }
    val = localStorage.getItem("rtlClass");
    val = val || $themeConfig.rtlClass;
    this.store.dispatch({ type: "toggleRTL", payload: val });
    val = localStorage.getItem("animation");
    val = val || $themeConfig.animation;
    this.store.dispatch({ type: "toggleAnimation", payload: val });
    val = localStorage.getItem("navbar");
    val = val || $themeConfig.navbar;
    this.store.dispatch({ type: "toggleNavbar", payload: val });
    val = localStorage.getItem("fontsize");
    val = val || $themeConfig.fontsize;
    this.store.dispatch({ type: "toggleFontSize", payload: val });
    val = localStorage.getItem("semidark");
    val = val === "true" ? true : $themeConfig.semidark;
    this.store.dispatch({ type: "toggleSemidark", payload: val });
    const languageCode = this.languageService.getSavedLanguageCode();
    if (this.languageService.checkReloadFlag()) {
      console.log("Reloaded");
    } else {
      console.log("Initial Load");
    }
    const languageId = this.languageService.getLanguageId(languageCode);
    this.languageService.fetchLanguageData(1, languageId);
  }
  toggleLanguage(item) {
    let lang = null;
    lang = "en";
    if (item) {
      lang = item;
    } else {
      let code = this.translate.currentLang || null;
      if (!code) {
        code = localStorage.getItem("i18n_locale");
      }
      item = this.storeData.languageList.find((d) => d.code === code);
      if (item) {
        lang = item;
      }
    }
    if (!lang) {
      lang = this.storeData.languageList.find((d) => d.code === "en");
    }
    this.translate.use(lang.code);
    this.store.dispatch({ type: "toggleLocale", payload: lang.code });
    return lang;
  }
  changeAnimation(type = "add") {
    if (this.storeData.animation) {
      const ele = document.querySelector(".animation");
      if (type === "add") {
        ele?.classList.add("animate__animated");
        ele?.classList.add(this.storeData.animation);
      } else {
        ele?.classList.remove("animate__animated");
        ele?.classList.remove(this.storeData.animation);
      }
    }
  }
};
_AppService.\u0275fac = function AppService_Factory(t) {
  return new (t || _AppService)(\u0275\u0275inject(TranslateService), \u0275\u0275inject(Store), \u0275\u0275inject(LanguageService));
};
_AppService.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _AppService, factory: _AppService.\u0275fac });
var AppService = _AppService;

// src/app/@lcp-framework/service/common/idle.service.ts
var import_sweetalert2 = __toESM(require_sweetalert2_all());

// node_modules/bn-ng-idle/fesm2020/bn-ng-idle.mjs
var BnNgIdleService = class {
  constructor() {
    this.expired$ = new Subject();
  }
  startWatching(timeOutSeconds) {
    this.idle$ = merge(fromEvent(document, "mousemove"), fromEvent(document, "click"), fromEvent(document, "mousedown"), fromEvent(document, "keypress"), fromEvent(document, "DOMMouseScroll"), fromEvent(document, "mousewheel"), fromEvent(document, "touchmove"), fromEvent(document, "MSPointerMove"), fromEvent(window, "mousemove"), fromEvent(window, "resize"));
    this.timeOutMilliSeconds = timeOutSeconds * 1e3;
    this.idleSubscription = this.idle$.subscribe((res) => {
      this.resetTimer();
    });
    this.startTimer();
    return this.expired$;
  }
  startTimer() {
    this.timer$ = timer(this.timeOutMilliSeconds, this.timeOutMilliSeconds).subscribe((res) => {
      this.expired$.next(true);
    });
  }
  resetTimer(timeOutSeconds) {
    this.timer$.unsubscribe();
    if (timeOutSeconds) {
      this.timeOutMilliSeconds = timeOutSeconds * 1e3;
    }
    this.startTimer();
  }
  stopTimer() {
    this.timer$.unsubscribe();
    this.idleSubscription.unsubscribe();
  }
};
BnNgIdleService.\u0275fac = function BnNgIdleService_Factory(t) {
  return new (t || BnNgIdleService)();
};
BnNgIdleService.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: BnNgIdleService,
  factory: BnNgIdleService.\u0275fac,
  providedIn: "root"
});
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(BnNgIdleService, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], function() {
    return [];
  }, null);
})();
var BnNgIdleModule = class {
};
BnNgIdleModule.\u0275fac = function BnNgIdleModule_Factory(t) {
  return new (t || BnNgIdleModule)();
};
BnNgIdleModule.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({
  type: BnNgIdleModule
});
BnNgIdleModule.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({
  providers: [BnNgIdleService],
  imports: [[]]
});
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(BnNgIdleModule, [{
    type: NgModule,
    args: [{
      imports: [],
      declarations: [],
      providers: [BnNgIdleService],
      exports: []
    }]
  }], null, null);
})();

// src/app/@lcp-framework/service/common/idle.service.ts
var _IdleService = class _IdleService {
  constructor(bnIdle, router, localstore, translate) {
    this.bnIdle = bnIdle;
    this.router = router;
    this.localstore = localstore;
    this.translate = translate;
    this.config = null;
    this.timeout = 48e4;
    this.config = JSON.parse(this.localstore.getData("config") || "{}");
  }
  startIdleWatcher() {
    if (this.config?.enable_idle_timeout === true || this.config?.enable_idle_timeout === "true") {
      this.timeout = Number(this.config?.idle_timeout_in_minutes || "8") * 60;
      const observer = this.bnIdle.startWatching(this.timeout);
      console.log("Observer:", observer);
      observer.subscribe((isTimedOut) => {
        console.log("isTimedOut", isTimedOut);
        if (isTimedOut) {
          console.log("User is idle for 5 minutes, logging out...");
          this.stopIdleTimer();
          this.localstore.logout();
          import_sweetalert2.default.fire({
            icon: "warning",
            title: "Warning!",
            text: `${this.config?.idle_timeout_in_minutes} minute${Number(this.config?.idle_timeout_in_minutes) <= 1 ? "" : "s"} ${this.translate.instant("you_have_been_idle")}`,
            showCancelButton: false,
            padding: "2em"
          }).then((result) => __async(this, null, function* () {
            if (result.value) {
              this.router.navigate(["/login"]);
            }
          }));
        }
      });
    }
  }
  stopIdleTimer() {
    try {
      console.log("Attempting to stop idle timer...");
      console.log("BnNgIdleService Instance:", this.bnIdle);
      if (this.config?.enable_idle_timeout === true || this.config?.enable_idle_timeout === "true") {
        if (!this.bnIdle) {
          console.error("BnNgIdleService is undefined!");
          return;
        }
        if (typeof this.bnIdle.stopTimer === "function") {
          this.bnIdle.stopTimer();
          console.log("Idle timer stopped successfully.");
        } else {
          console.warn("BnNgIdleService.stopTimer() is undefined.");
        }
        if (this.bnIdle["idleSubscription"] && !this.bnIdle["idleSubscription"].closed) {
          this.bnIdle["idleSubscription"].unsubscribe();
          console.log("Idle subscription manually unsubscribed.");
        } else {
          console.warn("No active idle subscription to unsubscribe.");
        }
      } else {
        console.warn("Idle timeout is disabled.");
      }
    } catch (error) {
      console.error("Error while stopping the idle timer:", error);
    }
  }
};
_IdleService.\u0275fac = function IdleService_Factory(t) {
  return new (t || _IdleService)(\u0275\u0275inject(BnNgIdleService), \u0275\u0275inject(Router), \u0275\u0275inject(LocalStorageService), \u0275\u0275inject(TranslateService));
};
_IdleService.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _IdleService, factory: _IdleService.\u0275fac, providedIn: "root" });
var IdleService = _IdleService;

// src/app/layouts/header.ts
var _c04 = (a0) => ({ "dark text-white-dark": a0 });
var _c13 = () => ({ paths: "exact", queryParams: "exact", fragment: "ignored", matrixParams: "ignored" });
var _c23 = () => ({ exact: true });
var _c32 = (a0) => ({ "bg-primary/10 text-primary": a0 });
var _c42 = (a0) => [a0];
function HeaderComponent_a_14_Template(rf, ctx) {
  if (rf & 1) {
    const _r1 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "a", 37);
    \u0275\u0275listener("click", function HeaderComponent_a_14_Template_a_click_0_listener() {
      \u0275\u0275restoreView(_r1);
      const ctx_r1 = \u0275\u0275nextContext();
      return \u0275\u0275resetView(ctx_r1.storeData.dispatch({ type: "toggleTheme", payload: "dark" }));
    });
    \u0275\u0275element(1, "i", 38);
    \u0275\u0275elementEnd();
  }
}
function HeaderComponent_a_15_Template(rf, ctx) {
  if (rf & 1) {
    const _r3 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "a", 37);
    \u0275\u0275listener("click", function HeaderComponent_a_15_Template_a_click_0_listener() {
      \u0275\u0275restoreView(_r3);
      const ctx_r1 = \u0275\u0275nextContext();
      return \u0275\u0275resetView(ctx_r1.storeData.dispatch({ type: "toggleTheme", payload: "system" }));
    });
    \u0275\u0275element(1, "i", 39);
    \u0275\u0275elementEnd();
  }
}
function HeaderComponent_a_16_Template(rf, ctx) {
  if (rf & 1) {
    const _r4 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "a", 37);
    \u0275\u0275listener("click", function HeaderComponent_a_16_Template_a_click_0_listener() {
      \u0275\u0275restoreView(_r4);
      const ctx_r1 = \u0275\u0275nextContext();
      return \u0275\u0275resetView(ctx_r1.storeData.dispatch({ type: "toggleTheme", payload: "light" }));
    });
    \u0275\u0275element(1, "i", 40);
    \u0275\u0275elementEnd();
  }
}
function HeaderComponent_ul_21_li_1_button_1_Template(rf, ctx) {
  if (rf & 1) {
    const _r5 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "button", 43);
    \u0275\u0275listener("click", function HeaderComponent_ul_21_li_1_button_1_Template_button_click_0_listener() {
      \u0275\u0275restoreView(_r5);
      const item_r6 = \u0275\u0275nextContext().$implicit;
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.changeLanguage(item_r6));
    });
    \u0275\u0275element(1, "img", 44);
    \u0275\u0275elementStart(2, "span", 45);
    \u0275\u0275text(3);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const item_r6 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(3, _c32, ctx_r1.translate.currentLang === item_r6.code));
    \u0275\u0275advance();
    \u0275\u0275property("src", "assets/images/flags/" + item_r6.code.toUpperCase() + ".svg", \u0275\u0275sanitizeUrl);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(item_r6.name);
  }
}
function HeaderComponent_ul_21_li_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "li");
    \u0275\u0275template(1, HeaderComponent_ul_21_li_1_button_1_Template, 4, 5, "button", 42);
    \u0275\u0275elementEnd();
  }
}
function HeaderComponent_ul_21_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "ul", 41);
    \u0275\u0275template(1, HeaderComponent_ul_21_li_1_Template, 2, 0, "li", 36);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275property("@toggleAnimation", void 0);
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", ctx_r1.store.languageList);
  }
}
function HeaderComponent_ul_26_a_11_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 57);
    \u0275\u0275element(1, "i", 58);
    \u0275\u0275text(2);
    \u0275\u0275pipe(3, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1("\xA0 ", \u0275\u0275pipeBind1(3, 1, "profile"), " ");
  }
}
function HeaderComponent_ul_26_a_13_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 59);
    \u0275\u0275element(1, "i", 60);
    \u0275\u0275text(2);
    \u0275\u0275pipe(3, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1("\xA0 ", \u0275\u0275pipeBind1(3, 1, "change_password"), " ");
  }
}
function HeaderComponent_ul_26_a_15_Template(rf, ctx) {
  if (rf & 1) {
    const _r7 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "a", 61);
    \u0275\u0275listener("click", function HeaderComponent_ul_26_a_15_Template_a_click_0_listener() {
      \u0275\u0275restoreView(_r7);
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.logout());
    });
    \u0275\u0275element(1, "i", 62);
    \u0275\u0275text(2);
    \u0275\u0275pipe(3, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1("\xA0 ", \u0275\u0275pipeBind1(3, 1, "sign_out"), " ");
  }
}
function HeaderComponent_ul_26_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "ul", 46)(1, "li")(2, "div", 47)(3, "div", 48);
    \u0275\u0275element(4, "img", 49);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(5, "div", 50)(6, "h4", 51);
    \u0275\u0275text(7);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(8, "a", 52);
    \u0275\u0275text(9);
    \u0275\u0275elementEnd()()()();
    \u0275\u0275elementStart(10, "li");
    \u0275\u0275template(11, HeaderComponent_ul_26_a_11_Template, 4, 3, "a", 53);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(12, "li");
    \u0275\u0275template(13, HeaderComponent_ul_26_a_13_Template, 4, 3, "a", 54);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(14, "li", 55);
    \u0275\u0275template(15, HeaderComponent_ul_26_a_15_Template, 4, 3, "a", 56);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275property("@toggleAnimation", void 0);
    \u0275\u0275advance(4);
    \u0275\u0275property("src", ctx_r1.getProfileInfo().profile_pic, \u0275\u0275sanitizeUrl);
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(ctx_r1.getProfileInfo().name);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", ctx_r1.getProfileInfo().email, " ");
  }
}
function HeaderComponent_ng_container_39_li_1_a_1_div_6_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 69);
    \u0275\u0275element(1, "i", 70);
    \u0275\u0275elementEnd();
  }
}
function HeaderComponent_ng_container_39_li_1_a_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 66)(1, "div", 29);
    \u0275\u0275element(2, "i", 67);
    \u0275\u0275elementStart(3, "span", 35);
    \u0275\u0275text(4);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275template(6, HeaderComponent_ng_container_39_li_1_a_1_div_6_Template, 2, 0, "div", 68);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const item_r8 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275classProp("active", item_r8.isActive);
    \u0275\u0275attribute("href", item_r8.target || "javascript:void(0);", \u0275\u0275sanitizeUrl)("target", item_r8.target ? "_blank" : null);
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", item_r8.menu_img);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(5, 7, item_r8.name));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx_r1.hasVisibleChildren(item_r8));
  }
}
function HeaderComponent_ng_container_39_li_1_ng_template_2_div_6_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 69);
    \u0275\u0275element(1, "i", 70);
    \u0275\u0275elementEnd();
  }
}
function HeaderComponent_ng_container_39_li_1_ng_template_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 71)(1, "div", 29);
    \u0275\u0275element(2, "i", 67);
    \u0275\u0275elementStart(3, "span", 35);
    \u0275\u0275text(4);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275template(6, HeaderComponent_ng_container_39_li_1_ng_template_2_div_6_Template, 2, 0, "div", 68);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const item_r8 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275classProp("active", item_r8.isActive);
    \u0275\u0275property("routerLink", item_r8.target ? \u0275\u0275pureFunction1(8, _c42, item_r8.target) : null);
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", item_r8.menu_img);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(5, 6, item_r8.name), " ");
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx_r1.hasVisibleChildren(item_r8));
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_a_1_div_6_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 69);
    \u0275\u0275element(1, "i", 70);
    \u0275\u0275elementEnd();
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_a_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 66)(1, "div", 29);
    \u0275\u0275element(2, "i", 67);
    \u0275\u0275elementStart(3, "span", 35);
    \u0275\u0275text(4);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275template(6, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_a_1_div_6_Template, 2, 0, "div", 68);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const child_r9 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r1 = \u0275\u0275nextContext(4);
    \u0275\u0275attribute("href", child_r9.target || "javascript:void(0);", \u0275\u0275sanitizeUrl)("target", child_r9.target ? "_blank" : null);
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", child_r9.menu_img);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(5, 5, child_r9.name), " ");
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx_r1.hasVisibleChildren(child_r9));
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ng_template_2_div_6_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 69);
    \u0275\u0275element(1, "i", 70);
    \u0275\u0275elementEnd();
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ng_template_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 76)(1, "div", 29);
    \u0275\u0275element(2, "i", 67);
    \u0275\u0275elementStart(3, "span", 35);
    \u0275\u0275text(4);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275template(6, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ng_template_2_div_6_Template, 2, 0, "div", 68);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const child_r9 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r1 = \u0275\u0275nextContext(4);
    \u0275\u0275property("routerLink", child_r9.target ? \u0275\u0275pureFunction1(7, _c42, child_r9.target) : null)("routerLinkActiveOptions", \u0275\u0275pureFunction0(9, _c23));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", child_r9.menu_img);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(5, 5, child_r9.name), " ");
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx_r1.hasVisibleChildren(child_r9));
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_a_1_div_6_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 69);
    \u0275\u0275element(1, "i", 70);
    \u0275\u0275elementEnd();
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_a_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 66)(1, "div", 29);
    \u0275\u0275element(2, "i", 67);
    \u0275\u0275elementStart(3, "span", 35);
    \u0275\u0275text(4);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275template(6, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_a_1_div_6_Template, 2, 0, "div", 68);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const childin_r10 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r1 = \u0275\u0275nextContext(7);
    \u0275\u0275attribute("href", childin_r10.target || "javascript:void(0);", \u0275\u0275sanitizeUrl)("target", childin_r10.target ? "_blank" : null);
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", childin_r10.menu_img);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(5, 5, childin_r10.name), " ");
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx_r1.hasVisibleChildren(childin_r10));
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ng_template_2_div_6_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 69);
    \u0275\u0275element(1, "i", 70);
    \u0275\u0275elementEnd();
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ng_template_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 76)(1, "div", 29);
    \u0275\u0275element(2, "i", 67);
    \u0275\u0275elementStart(3, "span", 35);
    \u0275\u0275text(4);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275template(6, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ng_template_2_div_6_Template, 2, 0, "div", 68);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const childin_r10 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r1 = \u0275\u0275nextContext(7);
    \u0275\u0275property("routerLink", childin_r10.target ? \u0275\u0275pureFunction1(7, _c42, childin_r10.target) : null)("routerLinkActiveOptions", \u0275\u0275pureFunction0(9, _c23));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", childin_r10.menu_img);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(5, 5, childin_r10.name), " ");
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx_r1.hasVisibleChildren(childin_r10));
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_a_1_div_6_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 69);
    \u0275\u0275element(1, "i", 70);
    \u0275\u0275elementEnd();
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_a_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 66)(1, "div", 29);
    \u0275\u0275element(2, "i", 67);
    \u0275\u0275elementStart(3, "span", 35);
    \u0275\u0275text(4);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275template(6, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_a_1_div_6_Template, 2, 0, "div", 68);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const childin3_r11 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r1 = \u0275\u0275nextContext(10);
    \u0275\u0275attribute("href", childin3_r11.target || "javascript:void(0);", \u0275\u0275sanitizeUrl)("target", childin3_r11.target ? "_blank" : null);
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", childin3_r11.menu_img);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(5, 5, childin3_r11.name), " ");
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx_r1.hasVisibleChildren(childin3_r11));
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ng_template_2_div_6_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 69);
    \u0275\u0275element(1, "i", 70);
    \u0275\u0275elementEnd();
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ng_template_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 76)(1, "div", 29);
    \u0275\u0275element(2, "i", 67);
    \u0275\u0275elementStart(3, "span", 35);
    \u0275\u0275text(4);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275template(6, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ng_template_2_div_6_Template, 2, 0, "div", 68);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const childin3_r11 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r1 = \u0275\u0275nextContext(10);
    \u0275\u0275property("routerLink", childin3_r11.target ? \u0275\u0275pureFunction1(7, _c42, childin3_r11.target) : null)("routerLinkActiveOptions", \u0275\u0275pureFunction0(9, _c23));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", childin3_r11.menu_img);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(5, 5, childin3_r11.name), " ");
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx_r1.hasVisibleChildren(childin3_r11));
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "li", 27);
    \u0275\u0275template(1, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_a_1_Template, 7, 7, "a", 74)(2, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ng_template_2_Template, 7, 10, "ng-template", null, 3, \u0275\u0275templateRefExtractor);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const internalChildin3Link_r12 = \u0275\u0275reference(3);
    const childin3_r11 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext(10);
    \u0275\u0275classProp("active", childin3_r11.isActive);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", childin3_r11.link_type === ctx_r1.COMMON_CONFIG.MENU_LINK_TYPE.EXTERNAL)("ngIfElse", internalChildin3Link_r12);
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_Template, 4, 4, "li", 73);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const childin3_r11 = ctx.$implicit;
    const ctx_r1 = \u0275\u0275nextContext(10);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", childin3_r11.link_type !== ctx_r1.COMMON_CONFIG.MENU_LINK_TYPE.ACTION);
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ul_4_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "ul", 77);
    \u0275\u0275template(1, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_Template, 2, 1, "ng-container", 36);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const childin_r10 = \u0275\u0275nextContext(2).$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", childin_r10.children);
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "li", 27);
    \u0275\u0275template(1, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_a_1_Template, 7, 7, "a", 74)(2, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ng_template_2_Template, 7, 10, "ng-template", null, 2, \u0275\u0275templateRefExtractor)(4, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_ul_4_Template, 2, 1, "ul", 75);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const internalChildinLink_r13 = \u0275\u0275reference(3);
    const childin_r10 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext(7);
    \u0275\u0275classProp("active", childin_r10.isActive);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", childin_r10.link_type === ctx_r1.COMMON_CONFIG.MENU_LINK_TYPE.EXTERNAL)("ngIfElse", internalChildinLink_r13);
    \u0275\u0275advance(3);
    \u0275\u0275property("ngIf", ctx_r1.hasVisibleChildren(childin_r10));
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_li_1_Template, 5, 5, "li", 73);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const childin_r10 = ctx.$implicit;
    const ctx_r1 = \u0275\u0275nextContext(7);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", childin_r10.link_type !== ctx_r1.COMMON_CONFIG.MENU_LINK_TYPE.ACTION);
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "ul", 77);
    \u0275\u0275template(1, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_ng_container_1_Template, 2, 1, "ng-container", 36);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const child_r9 = \u0275\u0275nextContext(2).$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", child_r9.children);
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "li", 27);
    \u0275\u0275template(1, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_a_1_Template, 7, 7, "a", 74)(2, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ng_template_2_Template, 7, 10, "ng-template", null, 1, \u0275\u0275templateRefExtractor)(4, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_ul_4_Template, 2, 1, "ul", 75);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const internalChildLink_r14 = \u0275\u0275reference(3);
    const child_r9 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext(4);
    \u0275\u0275classProp("active", child_r9.isActive);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", child_r9.link_type === ctx_r1.COMMON_CONFIG.MENU_LINK_TYPE.EXTERNAL)("ngIfElse", internalChildLink_r14);
    \u0275\u0275advance(3);
    \u0275\u0275property("ngIf", ctx_r1.hasVisibleChildren(child_r9));
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_li_1_Template, 5, 5, "li", 73);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const child_r9 = ctx.$implicit;
    const ctx_r1 = \u0275\u0275nextContext(4);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", child_r9.link_type !== ctx_r1.COMMON_CONFIG.MENU_LINK_TYPE.ACTION);
  }
}
function HeaderComponent_ng_container_39_li_1_ul_4_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "ul", 72);
    \u0275\u0275template(1, HeaderComponent_ng_container_39_li_1_ul_4_ng_container_1_Template, 2, 1, "ng-container", 36);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const item_r8 = \u0275\u0275nextContext(2).$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", item_r8.children);
  }
}
function HeaderComponent_ng_container_39_li_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "li", 27);
    \u0275\u0275template(1, HeaderComponent_ng_container_39_li_1_a_1_Template, 7, 9, "a", 64)(2, HeaderComponent_ng_container_39_li_1_ng_template_2_Template, 7, 10, "ng-template", null, 0, \u0275\u0275templateRefExtractor)(4, HeaderComponent_ng_container_39_li_1_ul_4_Template, 2, 1, "ul", 65);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const internalLink_r15 = \u0275\u0275reference(3);
    const item_r8 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", item_r8.link_type === ctx_r1.COMMON_CONFIG.MENU_LINK_TYPE.EXTERNAL)("ngIfElse", internalLink_r15);
    \u0275\u0275advance(3);
    \u0275\u0275property("ngIf", ctx_r1.hasVisibleChildren(item_r8));
  }
}
function HeaderComponent_ng_container_39_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, HeaderComponent_ng_container_39_li_1_Template, 5, 3, "li", 63);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const item_r8 = ctx.$implicit;
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", item_r8.link_type !== ctx_r1.COMMON_CONFIG.MENU_LINK_TYPE.ACTION);
  }
}
var _HeaderComponent = class _HeaderComponent {
  constructor(translate, storeData, router, appSetting, sanitizer, authService, localstore, languageService, menuLoadService, idleService) {
    this.translate = translate;
    this.storeData = storeData;
    this.router = router;
    this.appSetting = appSetting;
    this.sanitizer = sanitizer;
    this.authService = authService;
    this.localstore = localstore;
    this.languageService = languageService;
    this.menuLoadService = menuLoadService;
    this.idleService = idleService;
    this.adList = [];
    this.COMMON_CONFIG = commonConfig;
    this.menu_types = [];
    this.menuItems = [];
    this.search = false;
    this.notifications = [
      {
        id: 1,
        profile: '<i class="fas fa-circle-user"></i>',
        message: '<strong class="text-sm mr-1">John Doe</strong>invite you to <strong>Prototyping</strong>',
        time: "45 min ago"
      },
      {
        id: 2,
        profile: '<i class="fas fa-circle-user"></i>',
        message: '<strong class="text-sm mr-1">Adam Nolan</strong>mentioned you to <strong>UX Basics</strong>',
        time: "9h Ago"
      },
      {
        id: 3,
        profile: '<i class="fas fa-circle-user"></i>',
        message: '<strong class="text-sm mr-1">Anna Morgan</strong>Upload a file',
        time: "9h Ago"
      }
    ];
    this.messages = [
      {
        id: 1,
        image: this.sanitizer.bypassSecurityTrustHtml(`<span class="grid place-content-center w-9 h-9 rounded-full bg-success-light dark:bg-success text-success dark:text-success-light"><svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg></span>`),
        title: "Congratulations!",
        message: "Your OS has been updated.",
        time: "1hr"
      },
      {
        id: 2,
        image: this.sanitizer.bypassSecurityTrustHtml(`<span class="grid place-content-center w-9 h-9 rounded-full bg-info-light dark:bg-info text-info dark:text-info-light"><svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg></span>`),
        title: "Did you know?",
        message: "You can switch between artboards.",
        time: "2hr"
      },
      {
        id: 3,
        image: this.sanitizer.bypassSecurityTrustHtml(`<span class="grid place-content-center w-9 h-9 rounded-full bg-danger-light dark:bg-danger text-danger dark:text-danger-light"> <svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></span>`),
        title: "Something went wrong!",
        message: "Send Reposrt",
        time: "2days"
      },
      {
        id: 4,
        image: this.sanitizer.bypassSecurityTrustHtml(`<span class="grid place-content-center w-9 h-9 rounded-full bg-warning-light dark:bg-warning text-warning dark:text-warning-light"><svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">    <circle cx="12" cy="12" r="10"></circle>    <line x1="12" y1="8" x2="12" y2="12"></line>    <line x1="12" y1="16" x2="12.01" y2="16"></line></svg></span>`),
        title: "Warning",
        message: "Your password strength is low.",
        time: "5days"
      }
    ];
    this.apiUrl = environment.apiUrl;
    this.initStore();
  }
  initStore() {
    return __async(this, null, function* () {
      this.storeData.select((d) => d.index).subscribe((d) => {
        this.store = d;
      });
    });
  }
  ngOnInit() {
    this.user_info = JSON.parse(this.localstore.getData("user_data"));
    this.config = JSON.parse(this.localstore.getData("config"));
    if (this.user_info) {
      this.userId = this.user_info.main?.id;
      this.companyId = this.user_info.main?.company_id;
    }
    const languageCode = this.languageService.getSavedLanguageCode();
    if (this.languageService.checkReloadFlag()) {
      console.log("Reloaded");
    } else {
      console.log("Initial Load");
    }
    const languageId = this.languageService.getLanguageId(languageCode);
    this.languageService.fetchLanguageData(this.companyId, languageId);
    this.router.events.subscribe((event) => {
      if (event instanceof NavigationEnd) {
        this.updateActiveClasses();
      }
    });
    this.loadMenuFromStorage();
    this.updateActiveClasses();
  }
  loadMenuFromStorage() {
    return this.menuLoadService.fetchMenuData(this.companyId).pipe(map((menuList) => {
      if (menuList && menuList.length > 0) {
        this.menuItems = menuList;
        this.filterMenuItems();
      } else {
        console.warn("No menu list found after fetching.");
      }
    }), catchError((error) => {
      console.error("Error fetching menu data:", error);
      return of([]);
    })).toPromise();
  }
  filterMenuItems() {
    const viewPermissions = Object.entries(this.user_info.permissions).filter(([key, value]) => key.startsWith("view_") && value === true).map(([key, value]) => key.replace("view_", ""));
    this.menuItems = this.filterMenu(this.menuItems, viewPermissions);
  }
  filterMenu(menuItems, viewPermissions) {
    return menuItems.filter((item) => {
      const permissionKey = item.entity_name;
      const hasPermission = viewPermissions.includes(permissionKey);
      if (item.children && item.children.length) {
        item.children = this.filterMenu(item.children, viewPermissions);
      }
      if (item.parent_id == null) {
        return true;
      }
      return hasPermission || item.children && item.children.length > 0;
    });
  }
  updateActiveClasses() {
    this.resetActiveClasses(this.menuItems);
    this.menuItems.forEach((item) => {
      if (item.target)
        item.isActive = this.isRouteActive(item.target);
      if (item.children) {
        item.children.forEach((child) => {
          if (child.target)
            child.isActive = this.isRouteActive(child.target);
          if (child.children) {
            child.children.forEach((grandChild) => {
              if (grandChild.target)
                grandChild.isActive = this.isRouteActive(grandChild.target);
              if (grandChild.children) {
                grandChild.children.forEach((greatGrandChild) => {
                  if (greatGrandChild.target)
                    greatGrandChild.isActive = this.isRouteActive(greatGrandChild.target);
                  if (greatGrandChild.isActive)
                    grandChild.isActive = true;
                });
              }
              if (grandChild.isActive)
                child.isActive = true;
            });
          }
          if (child.isActive)
            item.isActive = true;
        });
      }
    });
  }
  resetActiveClasses(items) {
    items.forEach((item) => {
      item.isActive = false;
      if (item.children) {
        this.resetActiveClasses(item.children);
      }
    });
  }
  isRouteActive(route) {
    const urlTree = this.router.createUrlTree([route]);
    return this.router.isActive(urlTree, {
      paths: "subset",
      queryParams: "subset",
      fragment: "ignored",
      matrixParams: "ignored"
    });
  }
  // setActiveDropdown() {
  //   const selector = document.querySelector('ul.horizontal-menu a[routerLink="' + window.location.pathname + '"]');
  //   if (selector) {
  //     selector.classList.add('active');
  //     const all: any = document.querySelectorAll('ul.horizontal-menu .nav-link.active');
  //     for (let i = 0; i < all.length; i++) {
  //       all[0]?.classList.remove('active');
  //     }
  //     const ul: any = selector.closest('ul.sub-menu');
  //     if (ul) {
  //       let ele: any = ul.closest('li.menu').querySelectorAll('.nav-link');
  //       if (ele) {
  //         ele = ele[0];
  //         setTimeout(() => {
  //           ele?.classList.add('active');
  //         });
  //       }
  //     }
  //   }
  // }
  removeNotification(value) {
    this.notifications = this.notifications.filter((d) => d.id !== value);
  }
  removeMessage(value) {
    this.messages = this.messages.filter((d) => d.id !== value);
  }
  getProfileInfo() {
    let profile_pic = this.user_info.main.profile_pic;
    profile_pic = profile_pic && profile_pic !== "null" ? environment.apiUrl + "/" + profile_pic : "assets/images/user.png";
    const first_name = this.user_info.main.first_name || "First Name";
    const last_name = this.user_info.main.last_name || "Last Name";
    const name = `${first_name} ${last_name}`;
    const email = this.user_info.main.email || "email@example.com";
    return { profile_pic, name, email };
  }
  changeLanguage(item) {
    this.translate.use(item.code);
    this.appSetting.toggleLanguage(item);
    if (this.store.locale?.toLowerCase() === "ae") {
      this.storeData.dispatch({ type: "toggleRTL", payload: "rtl" });
      this.languageService.serviceChangeLanguage(this.companyId, item.code.toLowerCase());
    } else {
      this.storeData.dispatch({ type: "toggleRTL", payload: "ltr" });
      this.languageService.serviceChangeLanguage(this.companyId, item.code.toLowerCase());
    }
  }
  hasVisibleChildren(item) {
    return item.children && item.children.some((child) => child.link_type !== 2);
  }
  logout() {
    try {
      this.authService.logout().subscribe({
        next: (response) => {
          if (response) {
            this.idleService.stopIdleTimer();
            this.localstore.logout();
            localStorage.setItem("logout", Date.now().toString());
            this.router.navigate(["/login"]);
          }
        },
        error: (error) => {
          console.error("Logout failed", error);
        }
      });
    } catch (error) {
      console.log("Logout Error: ", error);
    }
  }
};
_HeaderComponent.\u0275fac = function HeaderComponent_Factory(t) {
  return new (t || _HeaderComponent)(\u0275\u0275directiveInject(TranslateService), \u0275\u0275directiveInject(Store), \u0275\u0275directiveInject(Router), \u0275\u0275directiveInject(AppService), \u0275\u0275directiveInject(DomSanitizer), \u0275\u0275directiveInject(AuthService), \u0275\u0275directiveInject(LocalStorageService), \u0275\u0275directiveInject(LanguageService), \u0275\u0275directiveInject(MenuLoadService), \u0275\u0275directiveInject(IdleService));
};
_HeaderComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _HeaderComponent, selectors: [["header"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 40, vars: 20, consts: [["internalLink", ""], ["internalChildLink", ""], ["internalChildinLink", ""], ["internalChildin3Link", ""], [1, "z-40", "shadow-sm", 3, "ngClass"], [1, "relative", "flex", "w-full", "items-center", "bg-white", "px-5", "py-2.5", "dark:bg-[#0e1726]"], [1, "horizontal-logo", "flex", "items-center", "justify-between", "lg:hidden", "ltr:mr-2", "rtl:ml-2"], ["routerLink", "/", 1, "main-logo", "flex", "shrink-0", "items-center"], ["appDynamicFontSize", "headerlogo", 1, "inline", "w-8", "ltr:-ml-1", "rtl:-mr-1", 3, "src", "alt"], ["appDynamicFontSize", "heading", 1, "hidden", "align-middle", "font-semibold", "transition-all", "duration-300", "dark:text-white-light", "md:inline", "ltr:ml-1.5", "rtl:mr-1.5"], ["href", "javascript:;", 1, "collapse-icon", "flex", "flex-none", "rounded-full", "bg-white-light/40", "p-2", "hover:bg-white-light/90", "hover:text-primary", "dark:bg-dark/40", "dark:text-[#d0d2d6]", "dark:hover:bg-dark/60", "dark:hover:text-primary", "lg:hidden", "ltr:ml-2", "rtl:mr-2", 3, "click"], [1, "fas", "fa-bars", "fa-xl"], [1, "flex", "items-center", "space-x-1.5", "dark:text-[#d0d2d6]", "sm:flex-1", "lg:space-x-2", "ltr:ml-auto", "ltr:sm:ml-0", "rtl:mr-auto", "rtl:space-x-reverse", "sm:rtl:mr-0"], [1, "sm:ltr:mr-auto", "sm:rtl:ml-auto"], ["type", "button", 1, "search_btn", "rounded-full", "bg-white-light/40", "p-4", "hover:bg-white-light/90", "dark:bg-dark/40", "dark:hover:bg-dark/60", "sm:hidden", 3, "click"], [1, "fa-solid", "fa-magnifying-glass", "mx-auto", "dark:text-[#d0d2d6]"], ["href", "javascript:;", "class", "flex items-center rounded-full bg-white-light/40 p-2 hover:bg-white-light/90 hover:text-primary dark:bg-dark/40 dark:hover:bg-dark/60", 3, "click", 4, "ngIf"], [1, "dropdown", "shrink-0"], ["hlMenu", ""], ["type", "button", "hlMenuButton", "", 1, "block", "rounded-full", "bg-white-light/40", "p-2", "hover:bg-white-light/90", "hover:text-primary", "dark:bg-dark/40", "dark:hover:bg-dark/60"], ["alt", "flag", 1, "h-5", "w-5", "rounded-full", "object-cover", 3, "src"], ["class", "top-11 grid w-[280px] grid-cols-2 gap-2 !px-2 font-semibold text-dark dark:text-white-dark dark:text-white-light/90 ltr:-right-14 sm:ltr:-right-2 rtl:-left-14 sm:rtl:-left-2", 4, "hlMenuItems"], ["hlMenu", "", 1, "!block"], ["type", "button", "hlMenuButton", "", 1, "group", "relative", "block"], ["alt", "", 1, "h-8", "w-8", "rounded-full", "object-cover", "saturate-50", "group-hover:saturate-100", 3, "src"], ["class", "top-11 w-[230px] !py-0 font-semibold text-dark dark:text-white-dark dark:text-white-light/90 ltr:right-0 rtl:left-0", 4, "hlMenuItems"], [1, "horizontal-menu", "hidden", "border-t", "border-[#ebedf2]", "bg-white", "px-6", "py-1.5", "font-semibold", "text-black", "dark:border-[#191e3a]", "dark:bg-[#0e1726]", "dark:text-white-dark", "lg:space-x-1.5", "xl:space-x-8", "rtl:space-x-reverse"], [1, "menu", "nav-item", "relative"], ["routerLink", "/", "routerLinkActive", "active", 1, "nav-link", 3, "routerLinkActiveOptions"], [1, "flex", "items-center"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", "ng-reflect-ng-class", "h-6 w-6", 1, "ng-star-inserted", "h-6", "w-6"], ["opacity", "0.5", "d", "M13 15.4C13 13.3258 13 12.2887 13.659 11.6444C14.318 11 15.3787 11 17.5 11C19.6213 11 20.682 11 21.341 11.6444C22 12.2887 22 13.3258 22 15.4V17.6C22 19.6742 22 20.7113 21.341 21.3556C20.682 22 19.6213 22 17.5 22C15.3787 22 14.318 22 13.659 21.3556C13 20.7113 13 19.6742 13 17.6V15.4Z", "fill", "currentColor"], ["d", "M2 8.6C2 10.6742 2 11.7113 2.65901 12.3556C3.31802 13 4.37868 13 6.5 13C8.62132 13 9.68198 13 10.341 12.3556C11 11.7113 11 10.6742 11 8.6V6.4C11 4.32582 11 3.28873 10.341 2.64437C9.68198 2 8.62132 2 6.5 2C4.37868 2 3.31802 2 2.65901 2.64437C2 3.28873 2 4.32582 2 6.4V8.6Z", "fill", "currentColor"], ["d", "M13 5.5C13 4.4128 13 3.8692 13.1713 3.44041C13.3996 2.86867 13.8376 2.41443 14.389 2.17761C14.8024 2 15.3266 2 16.375 2H18.625C19.6734 2 20.1976 2 20.611 2.17761C21.1624 2.41443 21.6004 2.86867 21.8287 3.44041C22 3.8692 22 4.4128 22 5.5C22 6.5872 22 7.1308 21.8287 7.55959C21.6004 8.13133 21.1624 8.58557 20.611 8.82239C20.1976 9 19.6734 9 18.625 9H16.375C15.3266 9 14.8024 9 14.389 8.82239C13.8376 8.58557 13.3996 8.13133 13.1713 7.55959C13 7.1308 13 6.5872 13 5.5Z", "fill", "currentColor"], ["opacity", "0.5", "d", "M2 18.5C2 19.5872 2 20.1308 2.17127 20.5596C2.39963 21.1313 2.83765 21.5856 3.38896 21.8224C3.80245 22 4.32663 22 5.375 22H7.625C8.67337 22 9.19755 22 9.61104 21.8224C10.1624 21.5856 10.6004 21.1313 10.8287 20.5596C11 20.1308 11 19.5872 11 18.5C11 17.4128 11 16.8692 10.8287 16.4404C10.6004 15.8687 10.1624 15.4144 9.61104 15.1776C9.19755 15 8.67337 15 7.625 15H5.375C4.32663 15 3.80245 15 3.38896 15.1776C2.83765 15.4144 2.39963 15.8687 2.17127 16.4404C2 16.8692 2 17.4128 2 18.5Z", "fill", "currentColor"], [1, "px-2"], [4, "ngFor", "ngForOf"], ["href", "javascript:;", 1, "flex", "items-center", "rounded-full", "bg-white-light/40", "p-2", "hover:bg-white-light/90", "hover:text-primary", "dark:bg-dark/40", "dark:hover:bg-dark/60", 3, "click"], [1, "far", "fa-sun", "ng-tns-c946920775-62", "h-5", "w-5", "text-center", "text-sm"], [1, "far", "fa-moon", "ng-tns-c946920775-62", "h-5", "w-5", "text-center", "text-sm"], [1, "fas", "fa-laptop", "ng-tns-c946920775-62", "h-5", "w-5", "text-center", "text-sm"], [1, "top-11", "grid", "w-[280px]", "grid-cols-2", "gap-2", "!px-2", "font-semibold", "text-dark", "dark:text-white-dark", "dark:text-white-light/90", "ltr:-right-14", "sm:ltr:-right-2", "rtl:-left-14", "sm:rtl:-left-2"], ["type", "button", "class", "w-full hover:text-primary", 3, "ngClass", "click", 4, "hlMenuItem"], ["type", "button", 1, "w-full", "hover:text-primary", 3, "click", "ngClass"], ["alt", "", 1, "h-5", "w-5", "rounded-full", "object-cover", 3, "src"], [1, "ltr:ml-3", "rtl:mr-3"], [1, "top-11", "w-[230px]", "!py-0", "font-semibold", "text-dark", "dark:text-white-dark", "dark:text-white-light/90", "ltr:right-0", "rtl:left-0"], [1, "flex", "items-center", "px-4", "py-4"], [1, "flex-none"], ["alt", "Profile Picture", 1, "h-10", "w-10", "rounded-md", "object-cover", 3, "src"], [1, "truncate", "ltr:pl-4", "rtl:pr-4"], [1, "text-base"], ["href", "javascript:;", 1, "text-black/60", "hover:text-primary", "dark:text-dark-light/60", "dark:hover:text-white"], ["routerLink", "/profile", "class", "dark:hover:text-white", 4, "hlMenuItem"], ["routerLink", "/change-password", "class", "dark:hover:text-white", 4, "hlMenuItem"], [1, "border-t", "border-white-light", "dark:border-white-light/10"], ["href", "javascript:void(0);", "class", "!py-3 text-danger", 3, "click", 4, "hlMenuItem"], ["routerLink", "/profile", 1, "dark:hover:text-white"], [1, "fa-solid", "fa-user-tie", "text-base"], ["routerLink", "/change-password", 1, "dark:hover:text-white"], [1, "fa-solid", "fa-unlock-keyhole", "text-base"], ["href", "javascript:void(0);", 1, "!py-3", "text-danger", 3, "click"], [1, "fa-solid", "fa-right-from-bracket", "text-base"], ["class", "menu nav-item relative", 4, "ngIf"], ["class", "nav-link", 3, "active", 4, "ngIf", "ngIfElse"], ["class", "sub-menu custom-min-width", 4, "ngIf"], [1, "nav-link"], ["aria-hidden", "true", 1, "fas", 3, "ngClass"], ["class", "right_arrow", 4, "ngIf"], [1, "right_arrow"], [1, "fa-solid", "fa-angle-down"], [1, "nav-link", 3, "routerLink"], [1, "sub-menu", "custom-min-width"], ["class", "menu nav-item relative", 3, "active", 4, "ngIf"], ["class", "nav-link", 4, "ngIf", "ngIfElse"], ["class", "sub-menu custom-min-width absolute top-0 z-[10] hidden min-w-[180px] rounded bg-white p-0 py-2 text-dark shadow dark:bg-[#1b2e4b] dark:text-white-dark ltr:left-[95%] rtl:right-[95%]", 4, "ngIf"], ["routerLinkActive", "active", 1, "nav-link", 3, "routerLink", "routerLinkActiveOptions"], [1, "sub-menu", "custom-min-width", "absolute", "top-0", "z-[10]", "hidden", "min-w-[180px]", "rounded", "bg-white", "p-0", "py-2", "text-dark", "shadow", "dark:bg-[#1b2e4b]", "dark:text-white-dark", "ltr:left-[95%]", "rtl:right-[95%]"]], template: function HeaderComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 4)(1, "div", 5)(2, "div", 6)(3, "a", 7);
    \u0275\u0275element(4, "img", 8);
    \u0275\u0275elementStart(5, "span", 9);
    \u0275\u0275text(6);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(7, "a", 10);
    \u0275\u0275listener("click", function HeaderComponent_Template_a_click_7_listener() {
      return ctx.storeData.dispatch({ type: "toggleSidebar" });
    });
    \u0275\u0275element(8, "i", 11);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(9, "div", 12)(10, "div", 13)(11, "button", 14);
    \u0275\u0275listener("click", function HeaderComponent_Template_button_click_11_listener() {
      return ctx.search = !ctx.search;
    });
    \u0275\u0275element(12, "i", 15);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(13, "div");
    \u0275\u0275template(14, HeaderComponent_a_14_Template, 2, 0, "a", 16)(15, HeaderComponent_a_15_Template, 2, 0, "a", 16)(16, HeaderComponent_a_16_Template, 2, 0, "a", 16);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(17, "div", 17)(18, "div", 18)(19, "button", 19);
    \u0275\u0275element(20, "img", 20);
    \u0275\u0275elementEnd();
    \u0275\u0275template(21, HeaderComponent_ul_21_Template, 2, 2, "ul", 21);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(22, "div", 17)(23, "div", 22)(24, "button", 23);
    \u0275\u0275element(25, "img", 24);
    \u0275\u0275elementEnd();
    \u0275\u0275template(26, HeaderComponent_ul_26_Template, 16, 4, "ul", 25);
    \u0275\u0275elementEnd()()()();
    \u0275\u0275elementStart(27, "ul", 26)(28, "li", 27)(29, "a", 28)(30, "div", 29);
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(31, "svg", 30);
    \u0275\u0275element(32, "path", 31)(33, "path", 32)(34, "path", 33)(35, "path", 34);
    \u0275\u0275elementEnd();
    \u0275\u0275namespaceHTML();
    \u0275\u0275elementStart(36, "span", 35);
    \u0275\u0275text(37);
    \u0275\u0275pipe(38, "translate");
    \u0275\u0275elementEnd()()()();
    \u0275\u0275template(39, HeaderComponent_ng_container_39_Template, 2, 1, "ng-container", 36);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(16, _c04, ctx.store.semidark && ctx.store.menu === "horizontal"));
    \u0275\u0275advance(4);
    \u0275\u0275property("src", ctx.apiUrl + "/" + (ctx.config == null ? null : ctx.config.logo), \u0275\u0275sanitizeUrl)("alt", ctx.config == null ? null : ctx.config.company_name);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", ctx.config == null ? null : ctx.config.company_name, " ");
    \u0275\u0275advance(8);
    \u0275\u0275property("ngIf", ctx.store.theme === "light");
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx.store.theme === "dark");
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx.store.theme === "system");
    \u0275\u0275advance(4);
    \u0275\u0275property("src", "assets/images/flags/" + ctx.store.locale.toUpperCase() + ".svg", \u0275\u0275sanitizeUrl);
    \u0275\u0275advance(5);
    \u0275\u0275property("src", ctx.getProfileInfo().profile_pic, \u0275\u0275sanitizeUrl);
    \u0275\u0275advance(3);
    \u0275\u0275classProp("active", ctx.router.isActive("/", \u0275\u0275pureFunction0(18, _c13)));
    \u0275\u0275advance();
    \u0275\u0275property("routerLinkActiveOptions", \u0275\u0275pureFunction0(19, _c23));
    \u0275\u0275advance(8);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(38, 14, "dashboard"));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngForOf", ctx.menuItems);
  }
}, dependencies: [CommonSharedModule, NgClass, NgForOf, NgIf, RouterLink, RouterLinkActive, MenuDirective, MenuButtonDirective, MenuItemsPanelDirective, MenuItemDirective, DynamicFontSizeDirective, TranslatePipe], styles: ["\n\n.custom-min-width[_ngcontent-%COMP%] {\n  min-width: 400px !important;\n}\n@media (min-width: 640px) {\n  .custom-min-width[_ngcontent-%COMP%] {\n    min-width: 210px !important;\n  }\n}\n@media (min-width: 768px) {\n  .custom-min-width[_ngcontent-%COMP%] {\n    min-width: 240px !important;\n  }\n}\n@media (min-width: 1024px) {\n  .custom-min-width[_ngcontent-%COMP%] {\n    min-width: 460px !important;\n  }\n}\n@media (min-width: 1280px) {\n  .custom-min-width[_ngcontent-%COMP%] {\n    min-width: 240px !important;\n  }\n}\n@media (min-width: 1536px) {\n  .custom-min-width[_ngcontent-%COMP%] {\n    min-width: 250px !important;\n  }\n}\n.carousel-container[_ngcontent-%COMP%] {\n  position: relative;\n  overflow: hidden;\n}\n.carousel-container[_ngcontent-%COMP%]   img[_ngcontent-%COMP%], .carousel-container[_ngcontent-%COMP%]   video[_ngcontent-%COMP%] {\n  transition: transform 0.5s ease-in-out;\n}\n/*# sourceMappingURL=common.css.map */"], data: { animation: [
  trigger("toggleAnimation", [
    transition(":enter", [style({ opacity: 0, transform: "scale(0.95)" }), animate("100ms ease-out", style({ opacity: 1, transform: "scale(1)" }))]),
    transition(":leave", [animate("75ms", style({ opacity: 0, transform: "scale(0.95)" }))])
  ])
] } });
var HeaderComponent = _HeaderComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(HeaderComponent, { className: "HeaderComponent", filePath: "src\\app\\layouts\\header.ts", lineNumber: 55 });
})();

// src/app/layouts/footer.ts
var _FooterComponent = class _FooterComponent {
  constructor() {
    this.currYear = (/* @__PURE__ */ new Date()).getFullYear();
  }
  ngOnInit() {
  }
};
_FooterComponent.\u0275fac = function FooterComponent_Factory(t) {
  return new (t || _FooterComponent)();
};
_FooterComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _FooterComponent, selectors: [["footer"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 2, vars: 1, consts: [[1, "mt-auto", "p-6", "pt-0", "text-center", "dark:text-white-dark", "ltr:sm:text-left", "rtl:sm:text-right"]], template: function FooterComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 0);
    \u0275\u0275text(1);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1("\xA9 ", ctx.currYear, ". LCP All rights reserved.");
  }
}, dependencies: [CommonModule], encapsulation: 2 });
var FooterComponent = _FooterComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(FooterComponent, { className: "FooterComponent", filePath: "src\\app\\layouts\\footer.ts", lineNumber: 11 });
})();

// src/app/layouts/app-layout.ts
var _c05 = (a0, a1, a2, a3) => [a0, a1, a2, a3];
var _c14 = (a0) => ({ hidden: a0 });
var _c24 = (a0) => [a0];
function AppLayout_div_3_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 8);
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(1, "svg", 9)(2, "path", 10);
    \u0275\u0275element(3, "animatetransform", 11);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(4, "path", 12);
    \u0275\u0275element(5, "animatetransform", 13);
    \u0275\u0275elementEnd()()();
  }
}
function AppLayout_div_4_Template(rf, ctx) {
  if (rf & 1) {
    const _r1 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 14)(1, "button", 15);
    \u0275\u0275listener("click", function AppLayout_div_4_Template_button_click_1_listener() {
      \u0275\u0275restoreView(_r1);
      const ctx_r1 = \u0275\u0275nextContext();
      return \u0275\u0275resetView(ctx_r1.goToTop());
    });
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(2, "svg", 16);
    \u0275\u0275element(3, "path", 17)(4, "path", 18);
    \u0275\u0275elementEnd()()();
  }
}
var _AppLayout = class _AppLayout {
  constructor(renderer, translate, storeData, service2, router, localstore) {
    this.renderer = renderer;
    this.translate = translate;
    this.storeData = storeData;
    this.service = service2;
    this.router = router;
    this.localstore = localstore;
    this.showTopButton = false;
    this.apiUrl = environment.apiUrl;
    this.headerClass = "";
    this.initStore();
  }
  ngOnInit() {
    const resn = JSON.parse(this.localstore.getData("config"));
    this.changeFavicon(this.apiUrl + "/" + resn.favicon);
    this.initAnimation();
    this.toggleLoader();
    window.addEventListener("scroll", () => {
      if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50) {
        this.showTopButton = true;
      } else {
        this.showTopButton = false;
      }
    });
  }
  ngOnDestroy() {
    window.removeEventListener("scroll", () => {
    });
  }
  initAnimation() {
    this.service.changeAnimation();
    this.router.events.subscribe((event) => {
      if (event instanceof NavigationEnd) {
        this.service.changeAnimation();
      }
    });
    const ele = document.querySelector(".animation");
    ele.addEventListener("animationend", () => {
      this.service.changeAnimation("remove");
    });
  }
  changeFavicon(url) {
    const favicon = this.renderer.selectRootElement("#common-favicon", true);
    this.renderer.setAttribute(favicon, "href", url);
  }
  toggleLoader() {
    this.storeData.dispatch({ type: "toggleMainLoader", payload: true });
    setTimeout(() => {
      this.storeData.dispatch({ type: "toggleMainLoader", payload: false });
    }, 500);
  }
  initStore() {
    return __async(this, null, function* () {
      this.storeData.select((d) => d.index).subscribe((d) => {
        this.store = d;
      });
    });
  }
  goToTop() {
    document.body.scrollTop = 0;
    document.documentElement.scrollTop = 0;
  }
};
_AppLayout.\u0275fac = function AppLayout_Factory(t) {
  return new (t || _AppLayout)(\u0275\u0275directiveInject(Renderer2), \u0275\u0275directiveInject(TranslateService), \u0275\u0275directiveInject(Store), \u0275\u0275directiveInject(AppService), \u0275\u0275directiveInject(Router), \u0275\u0275directiveInject(LocalStorageService));
};
_AppLayout.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _AppLayout, selectors: [["app-root"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 12, vars: 14, consts: [["appDynamicFontSize", "body", 1, "main-section", "relative", "font-nunito", "font-normal", "antialiased", 3, "ngClass"], [1, "relative"], [1, "fixed", "inset-0", "z-50", "bg-[black]/60", "lg:hidden", 3, "click", "ngClass"], ["class", "screen_loader animate__animated fixed inset-0 z-[60] grid place-content-center bg-[#fafafa] dark:bg-[#060818]", 4, "ngIf"], ["class", "fixed bottom-6 z-50 ltr:right-6 rtl:left-6", 4, "ngIf"], [1, "main-container", "min-h-screen", "text-black", "dark:text-white-dark", 3, "ngClass"], [1, "main-content", "flex", "min-h-screen", "flex-col"], [1, "animation", "p-6"], [1, "screen_loader", "animate__animated", "fixed", "inset-0", "z-[60]", "grid", "place-content-center", "bg-[#fafafa]", "dark:bg-[#060818]"], ["width", "64", "height", "64", "viewBox", "0 0 135 135", "xmlns", "http://www.w3.org/2000/svg", "fill", "#4361ee"], ["d", "M67.447 58c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zm9.448 9.447c0 5.523 4.477 10 10 10 5.522 0 10-4.477 10-10s-4.478-10-10-10c-5.523 0-10 4.477-10 10zm-9.448 9.448c-5.523 0-10 4.477-10 10 0 5.522 4.477 10 10 10s10-4.478 10-10c0-5.523-4.477-10-10-10zM58 67.447c0-5.523-4.477-10-10-10s-10 4.477-10 10 4.477 10 10 10 10-4.477 10-10z"], ["attributeName", "transform", "type", "rotate", "from", "0 67 67", "to", "-360 67 67", "dur", "2.5s", "repeatCount", "indefinite"], ["d", "M28.19 40.31c6.627 0 12-5.374 12-12 0-6.628-5.373-12-12-12-6.628 0-12 5.372-12 12 0 6.626 5.372 12 12 12zm30.72-19.825c4.686 4.687 12.284 4.687 16.97 0 4.686-4.686 4.686-12.284 0-16.97-4.686-4.687-12.284-4.687-16.97 0-4.687 4.686-4.687 12.284 0 16.97zm35.74 7.705c0 6.627 5.37 12 12 12 6.626 0 12-5.373 12-12 0-6.628-5.374-12-12-12-6.63 0-12 5.372-12 12zm19.822 30.72c-4.686 4.686-4.686 12.284 0 16.97 4.687 4.686 12.285 4.686 16.97 0 4.687-4.686 4.687-12.284 0-16.97-4.685-4.687-12.283-4.687-16.97 0zm-7.704 35.74c-6.627 0-12 5.37-12 12 0 6.626 5.373 12 12 12s12-5.374 12-12c0-6.63-5.373-12-12-12zm-30.72 19.822c-4.686-4.686-12.284-4.686-16.97 0-4.686 4.687-4.686 12.285 0 16.97 4.686 4.687 12.284 4.687 16.97 0 4.687-4.685 4.687-12.283 0-16.97zm-35.74-7.704c0-6.627-5.372-12-12-12-6.626 0-12 5.373-12 12s5.374 12 12 12c6.628 0 12-5.373 12-12zm-19.823-30.72c4.687-4.686 4.687-12.284 0-16.97-4.686-4.686-12.284-4.686-16.97 0-4.687 4.686-4.687 12.284 0 16.97 4.686 4.687 12.284 4.687 16.97 0z"], ["attributeName", "transform", "type", "rotate", "from", "0 67 67", "to", "360 67 67", "dur", "8s", "repeatCount", "indefinite"], [1, "fixed", "bottom-6", "z-50", "ltr:right-6", "rtl:left-6"], ["type", "button", 1, "btn", "btn-outline-primary", "animate-pulse", "rounded-full", "bg-[#fafafa]", "p-2", "dark:bg-[#060818]", "dark:hover:bg-primary", 3, "click"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "h-4", "w-4"], ["opacity", "0.5", "fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M12 20.75C12.4142 20.75 12.75 20.4142 12.75 20L12.75 10.75L11.25 10.75L11.25 20C11.25 20.4142 11.5858 20.75 12 20.75Z", "fill", "currentColor"], ["d", "M6.00002 10.75C5.69667 10.75 5.4232 10.5673 5.30711 10.287C5.19103 10.0068 5.25519 9.68417 5.46969 9.46967L11.4697 3.46967C11.6103 3.32902 11.8011 3.25 12 3.25C12.1989 3.25 12.3897 3.32902 12.5304 3.46967L18.5304 9.46967C18.7449 9.68417 18.809 10.0068 18.6929 10.287C18.5768 10.5673 18.3034 10.75 18 10.75L6.00002 10.75Z", "fill", "currentColor"]], template: function AppLayout_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
    \u0275\u0275listener("click", function AppLayout_Template_div_click_2_listener() {
      return ctx.storeData.dispatch({ type: "toggleSidebar" });
    });
    \u0275\u0275elementEnd();
    \u0275\u0275template(3, AppLayout_div_3_Template, 6, 0, "div", 3)(4, AppLayout_div_4_Template, 5, 0, "div", 4);
    \u0275\u0275element(5, "setting");
    \u0275\u0275elementStart(6, "div", 5);
    \u0275\u0275element(7, "sidebar");
    \u0275\u0275elementStart(8, "div", 6);
    \u0275\u0275element(9, "header");
    \u0275\u0275elementStart(10, "div", 7);
    \u0275\u0275element(11, "router-outlet");
    \u0275\u0275elementEnd()()()()();
  }
  if (rf & 2) {
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction4(5, _c05, ctx.store.sidebar ? "toggle-sidebar" : "", ctx.store.menu, ctx.store.layout, ctx.store.rtlClass));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(10, _c14, !ctx.store.sidebar));
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx.store.isShowMainLoader);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx.showTopButton);
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(12, _c24, ctx.store.navbar));
  }
}, dependencies: [CommonSharedModule, NgClass, NgIf, RouterOutlet, DynamicFontSizeDirective, RouterModule, SidebarComponent, ThemeCustomizerComponent, HeaderComponent, TranslateModule], encapsulation: 2 });
var AppLayout = _AppLayout;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(AppLayout, { className: "AppLayout", filePath: "src\\app\\layouts\\app-layout.ts", lineNumber: 21 });
})();

// src/app/@lcp-framework/components/copyright/copyright.component.ts
var _CopyrightComponent = class _CopyrightComponent {
  constructor(translate) {
    this.translate = translate;
    this.currYear = (/* @__PURE__ */ new Date()).getFullYear();
  }
};
_CopyrightComponent.\u0275fac = function CopyrightComponent_Factory(t) {
  return new (t || _CopyrightComponent)(\u0275\u0275directiveInject(TranslateService));
};
_CopyrightComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _CopyrightComponent, selectors: [["app-copyright"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 3, vars: 4, template: function CopyrightComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "p");
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate2(" \xA9 ", ctx.currYear, ".", \u0275\u0275pipeBind1(2, 2, "copyrights"), "\n");
  }
}, dependencies: [CommonSharedModule, TranslatePipe] });
var CopyrightComponent = _CopyrightComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(CopyrightComponent, { className: "CopyrightComponent", filePath: "src\\app\\@lcp-framework\\components\\copyright\\copyright.component.ts", lineNumber: 13 });
})();

// src/app/layouts/auth-layout.ts
var _c06 = (a0, a1, a2, a3) => [a0, a1, a2, a3];
var _c15 = (a0) => ({ "background-image": a0 });
var _c25 = (a0, a1) => ({ "bg-primary": a0, "bg-white dark:bg-black": a1 });
var _c33 = (a0) => ({ "bg-primary/10 text-primary": a0 });
function AuthLayout_div_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 27);
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(1, "svg", 28)(2, "path", 29);
    \u0275\u0275element(3, "animateTransform", 30);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(4, "path", 31);
    \u0275\u0275element(5, "animateTransform", 32);
    \u0275\u0275elementEnd()()();
  }
}
function AuthLayout_div_3_Template(rf, ctx) {
  if (rf & 1) {
    const _r1 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 33)(1, "button", 34);
    \u0275\u0275listener("click", function AuthLayout_div_3_Template_button_click_1_listener() {
      \u0275\u0275restoreView(_r1);
      const ctx_r1 = \u0275\u0275nextContext();
      return \u0275\u0275resetView(ctx_r1.goToTop());
    });
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(2, "svg", 35);
    \u0275\u0275element(3, "path", 36)(4, "path", 37);
    \u0275\u0275elementEnd()()();
  }
}
function AuthLayout_img_6_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "img", 38);
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275property("src", ctx_r1.apiUrl + "/" + ctx_r1.authentication_background_1, \u0275\u0275sanitizeUrl);
  }
}
function AuthLayout_img_7_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "img", 39);
  }
}
function AuthLayout_div_12_div_8_a_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 52);
    \u0275\u0275element(1, "img", 53);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(3);
    \u0275\u0275property("href", ctx_r1.mediaItems[ctx_r1.activeIndex].clickable_link, \u0275\u0275sanitizeUrl);
    \u0275\u0275advance();
    \u0275\u0275property("src", ctx_r1.mediaItems[ctx_r1.activeIndex].image_url, \u0275\u0275sanitizeUrl);
  }
}
function AuthLayout_div_12_div_8_div_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div");
    \u0275\u0275element(1, "img", 53);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(3);
    \u0275\u0275advance();
    \u0275\u0275property("src", ctx_r1.mediaItems[ctx_r1.activeIndex].image_url, \u0275\u0275sanitizeUrl);
  }
}
function AuthLayout_div_12_div_8_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 49);
    \u0275\u0275template(1, AuthLayout_div_12_div_8_a_1_Template, 2, 2, "a", 50)(2, AuthLayout_div_12_div_8_div_2_Template, 2, 1, "div", 51);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r1.mediaItems[ctx_r1.activeIndex].clickable_link);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !ctx_r1.mediaItems[ctx_r1.activeIndex].clickable_link);
  }
}
function AuthLayout_div_12_div_9_a_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "a", 52);
    \u0275\u0275element(1, "video", 54);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(3);
    \u0275\u0275property("href", ctx_r1.mediaItems[ctx_r1.activeIndex].clickable_link, \u0275\u0275sanitizeUrl);
    \u0275\u0275advance();
    \u0275\u0275property("src", ctx_r1.mediaItems[ctx_r1.activeIndex].video_url, \u0275\u0275sanitizeUrl);
  }
}
function AuthLayout_div_12_div_9_div_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div");
    \u0275\u0275element(1, "video", 54);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(3);
    \u0275\u0275advance();
    \u0275\u0275property("src", ctx_r1.mediaItems[ctx_r1.activeIndex].video_url, \u0275\u0275sanitizeUrl);
  }
}
function AuthLayout_div_12_div_9_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 49);
    \u0275\u0275template(1, AuthLayout_div_12_div_9_a_1_Template, 2, 2, "a", 50)(2, AuthLayout_div_12_div_9_div_2_Template, 2, 1, "div", 51);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r1.mediaItems[ctx_r1.activeIndex].clickable_link);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !ctx_r1.mediaItems[ctx_r1.activeIndex].clickable_link);
  }
}
function AuthLayout_div_12_span_11_Template(rf, ctx) {
  if (rf & 1) {
    const _r3 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "span", 55);
    \u0275\u0275listener("click", function AuthLayout_div_12_span_11_Template_span_click_0_listener() {
      const i_r4 = \u0275\u0275restoreView(_r3).index;
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.activeIndex = i_r4);
    });
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const i_r4 = ctx.index;
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction2(1, _c25, i_r4 === ctx_r1.activeIndex, i_r4 !== ctx_r1.activeIndex));
  }
}
function AuthLayout_div_12_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 40)(1, "div", 41)(2, "h1", 42);
    \u0275\u0275text(3);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(4, "p", 43);
    \u0275\u0275text(5);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(6, "div", 44)(7, "div", 45);
    \u0275\u0275template(8, AuthLayout_div_12_div_8_Template, 3, 2, "div", 46)(9, AuthLayout_div_12_div_9_Template, 3, 2, "div", 46);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(10, "div", 47);
    \u0275\u0275template(11, AuthLayout_div_12_span_11_Template, 1, 4, "span", 48);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(ctx_r1.mediaItems[ctx_r1.activeIndex].name);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(ctx_r1.mediaItems[ctx_r1.activeIndex].description);
    \u0275\u0275advance(3);
    \u0275\u0275property("ngIf", !ctx_r1.mediaItems[ctx_r1.activeIndex].video_url);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r1.mediaItems[ctx_r1.activeIndex].video_url);
    \u0275\u0275advance(2);
    \u0275\u0275property("ngForOf", ctx_r1.mediaItems);
  }
}
function AuthLayout_div_13_span_11_Template(rf, ctx) {
  if (rf & 1) {
    const _r5 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "span", 55);
    \u0275\u0275listener("click", function AuthLayout_div_13_span_11_Template_span_click_0_listener() {
      const i_r6 = \u0275\u0275restoreView(_r5).index;
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.activeIndex = i_r6);
    });
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const i_r6 = ctx.index;
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction2(1, _c25, i_r6 === ctx_r1.activeIndex, i_r6 !== ctx_r1.activeIndex));
  }
}
function AuthLayout_div_13_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 40)(1, "div", 41)(2, "h1", 42);
    \u0275\u0275text(3, "LCP");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(4, "p", 43);
    \u0275\u0275text(5, "Low code platform");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(6, "div", 44)(7, "div", 45)(8, "div", 49);
    \u0275\u0275element(9, "img", 53);
    \u0275\u0275elementEnd()()();
    \u0275\u0275elementStart(10, "div", 47);
    \u0275\u0275template(11, AuthLayout_div_13_span_11_Template, 1, 4, "span", 48);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275advance(9);
    \u0275\u0275property("src", ctx_r1.apiUrl + "/" + ctx_r1.authentication_banner, \u0275\u0275sanitizeUrl);
    \u0275\u0275advance(2);
    \u0275\u0275property("ngForOf", ctx_r1.mediaItems);
  }
}
function AuthLayout_ul_30_li_1_button_1_Template(rf, ctx) {
  if (rf & 1) {
    const _r7 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "button", 59);
    \u0275\u0275listener("click", function AuthLayout_ul_30_li_1_button_1_Template_button_click_0_listener() {
      \u0275\u0275restoreView(_r7);
      const item_r8 = \u0275\u0275nextContext().$implicit;
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.changeLanguage(item_r8));
    });
    \u0275\u0275element(1, "img", 60);
    \u0275\u0275elementStart(2, "span", 61);
    \u0275\u0275text(3);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const item_r8 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(3, _c33, ctx_r1.translate.currentLang === item_r8.code));
    \u0275\u0275advance();
    \u0275\u0275property("src", "assets/images/flags/" + item_r8.code.toUpperCase() + ".svg", \u0275\u0275sanitizeUrl);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(item_r8.name);
  }
}
function AuthLayout_ul_30_li_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "li");
    \u0275\u0275template(1, AuthLayout_ul_30_li_1_button_1_Template, 4, 5, "button", 58);
    \u0275\u0275elementEnd();
  }
}
function AuthLayout_ul_30_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "ul", 56);
    \u0275\u0275template(1, AuthLayout_ul_30_li_1_Template, 2, 0, "li", 57);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275property("@toggleAnimation", void 0);
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", ctx_r1.store.languageList);
  }
}
var _AuthLayout = class _AuthLayout {
  constructor(renderer, toastr, commonService, languageService, appSetting, storeData, service2, translate, localstore, gridApiService) {
    this.renderer = renderer;
    this.toastr = toastr;
    this.commonService = commonService;
    this.languageService = languageService;
    this.appSetting = appSetting;
    this.storeData = storeData;
    this.service = service2;
    this.translate = translate;
    this.localstore = localstore;
    this.gridApiService = gridApiService;
    this.currYear = (/* @__PURE__ */ new Date()).getFullYear();
    this.companyId = 1;
    this.loading = false;
    this.showTopButton = false;
    this.apiUrl = environment.apiUrl;
    this.mediaItems = [];
    this.activeIndex = 0;
    this.headerClass = "";
    this.initStore();
  }
  // Auto-slide function
  startAutoSlide() {
    this.slideInterval = setInterval(() => {
      this.nextItem();
    }, 12e11);
  }
  // Move to the next item
  nextItem() {
    this.activeIndex = (this.activeIndex + 1) % this.mediaItems.length;
  }
  // Move to the previous item
  prevItem() {
    this.activeIndex = (this.activeIndex - 1 + this.mediaItems.length) % this.mediaItems.length;
  }
  ngOnInit() {
    const languageCode = this.languageService.getSavedLanguageCode();
    if (this.languageService.checkReloadFlag()) {
      console.log("Reloaded");
    } else {
      console.log("Initial Load");
    }
    const languageId = this.languageService.getLanguageId(languageCode);
    this.languageService.fetchLanguageData(this.companyId, languageId);
    this.toggleLoader();
    window.addEventListener("scroll", () => {
      if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50) {
        this.showTopButton = true;
      } else {
        this.showTopButton = false;
      }
    });
    console.log("coming");
    let userId = void 0;
    try {
      const userDataRaw = this.localstore.getData("user_data");
      if (userDataRaw) {
        let userDataObj = {};
        try {
          userDataObj = JSON.parse(userDataRaw);
        } catch (e) {
          const decrypted = this.localstore.getDataDecrypted("user_data");
          userDataObj = JSON.parse(decrypted);
        }
        if (userDataObj && userDataObj.main && userDataObj.main.id) {
          userId = userDataObj.main.id;
        }
      }
    } catch (e) {
      userId = void 0;
    }
    this.getconfig(userId);
    this.loadDataCarousel();
  }
  changeFavicon(url) {
    const favicon = this.renderer.selectRootElement("#common-favicon", true);
    this.renderer.setAttribute(favicon, "href", url);
  }
  loadDataCarousel() {
    const params = {
      company_id: 1,
      print_query: true,
      primary_table: "carousel_templates",
      start_index: 0,
      limit_range: 1,
      sort_columns: [["carousel_templates.id", "desc"]],
      search_all: [
        {
          column_name: "carousel_templates.slug",
          value: "authentication_layout",
          operator: "="
        }
      ],
      select_columns: [
        ["carousel_templates.*"],
        [
          "CASE WHEN COUNT(carousel_template_line_items.id) = 0 THEN null ELSE COALESCE(Json_agg(DISTINCT jsonb_build_object('name', carousel_template_line_items.name, 'description', carousel_template_line_items.description, 'image_url', carousel_template_line_items.image_url, 'video_url', carousel_template_line_items.video_url, 'clickable_link', carousel_template_line_items.clickable_link, 'order_no', carousel_template_line_items.order_no))) END",
          "items"
        ]
      ],
      includes: [
        {
          table_name: "carousel_template_line_items",
          join_type: "LEFT",
          join_condition: `carousel_templates.id = carousel_template_line_items.carousel_template_id`
        }
      ],
      group_by: ["carousel_templates.id"]
    };
    this.gridApiService.getAllUnAuthList(params).subscribe((response) => {
      if (response.status && response.code === 200) {
        const entity = response.data.records[0];
        this.mediaItems = entity.items;
        this.mediaItems.sort((a, b) => a.order - b.order);
        console.log(this.mediaItems);
      }
    }, (error) => {
      this.toastr.error("Error loading carousel template data", "Error");
    });
    this.startAutoSlide();
  }
  getconfig(userId) {
    console.log(userId);
    const params = { categories: { "0": "ac1", "1": "ac2" } };
    if (userId !== void 0 && userId !== null) {
      params.user_id = userId;
      params.categories = { "0": "ac16", "1": "ac17" };
    }
    const procedureParams = { proc_name: "get_configurations_values_v1", params };
    this.commonService.unAuthProcedureCall(procedureParams).subscribe({
      next: (response) => {
        if (response.code === 200 && response.status && response.data) {
          const res = response.data?.[0]?.result?.data || {};
          if (Object.keys(res).length > 0) {
            if (res.favicon) {
              this.changeFavicon(this.apiUrl + "/" + res.favicon);
            }
            this.logo = res.logo;
            this.authentication_banner = res.authentication_banner;
            this.authentication_background_1 = res.authentication_background_1;
            this.authentication_background_2 = res.authentication_background_2;
            this.company = res.company_name;
            this.copyrightContent = res.footer_content;
            this.localstore.storeData("config", JSON.stringify(res));
          }
        } else {
          const key = "error";
          const errorMessage = this.translate.instant(key);
          this.toastr.error(errorMessage, "Error");
          console.log(response.message);
        }
      },
      error: (error) => {
        console.error("Error fetching data:", error);
      },
      complete: () => {
      }
    });
  }
  changeLanguage(item) {
    this.translate.use(item.code);
    this.appSetting.toggleLanguage(item);
    if (this.store.locale?.toLowerCase() === "ae") {
      this.storeData.dispatch({ type: "toggleRTL", payload: "rtl" });
      this.languageService.serviceChangeLanguage(this.companyId, item.code.toLowerCase());
    } else {
      this.storeData.dispatch({ type: "toggleRTL", payload: "ltr" });
      this.languageService.serviceChangeLanguage(this.companyId, item.code.toLowerCase());
    }
  }
  toggleLoader() {
    this.storeData.dispatch({ type: "toggleMainLoader", payload: true });
    setTimeout(() => {
      this.storeData.dispatch({ type: "toggleMainLoader", payload: false });
    }, 500);
  }
  ngOnDestroy() {
    if (this.slideInterval) {
      clearInterval(this.slideInterval);
    }
    window.removeEventListener("scroll", () => {
    });
  }
  initStore() {
    return __async(this, null, function* () {
      this.storeData.select((d) => d.index).subscribe((d) => {
        this.store = d;
      });
    });
  }
  goToTop() {
    document.body.scrollTop = 0;
    document.documentElement.scrollTop = 0;
  }
};
_AuthLayout.\u0275fac = function AuthLayout_Factory(t) {
  return new (t || _AuthLayout)(\u0275\u0275directiveInject(Renderer2), \u0275\u0275directiveInject(ToastrService), \u0275\u0275directiveInject(MenuMapService), \u0275\u0275directiveInject(LanguageService), \u0275\u0275directiveInject(AppService), \u0275\u0275directiveInject(Store), \u0275\u0275directiveInject(AppService), \u0275\u0275directiveInject(TranslateService), \u0275\u0275directiveInject(LocalStorageService), \u0275\u0275directiveInject(GridApiService));
};
_AuthLayout.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _AuthLayout, selectors: [["app-root"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 35, vars: 21, consts: [[1, "main-section", "relative", "font-nunito", "text-sm", "font-normal", "antialiased", 3, "ngClass"], ["class", "screen_loader animate__animated fixed inset-0 z-[60] grid place-content-center bg-[#fafafa] dark:bg-[#060818]", 4, "ngIf"], [1, "text-black", "dark:text-white-dark"], ["class", "fixed bottom-6 z-50 ltr:right-6 rtl:left-6", 4, "ngIf"], [1, "absolute", "inset-0"], ["alt", "image", "class", "h-full w-full object-cover", 3, "src", 4, "ngIf"], ["src", "assets/images/auth/bg-gradient.png", "alt", "image", "class", "h-full w-full object-cover", 4, "ngIf"], [1, "relative", "flex", "min-h-screen", "items-center", "justify-center", "bg-cover", "bg-center", "bg-no-repeat", "px-4", "py-4", "dark:bg-[#060818]", 3, "ngStyle"], [1, "relative", "flex", "w-full", "max-w-[1502px]", "flex-col", "justify-between", "overflow-hidden", "rounded-md", "bg-white/60", "backdrop-blur-lg", "dark:bg-black/50", "lg:min-h-[658px]", "lg:flex-row", "lg:gap-10", "xl:gap-0"], [1, "relative", "hidden", "w-full", "items-center", "justify-center", "bg-[linear-gradient(225deg,rgba(244,210,222)_0%,rgba(200,209,252)_100%)]", "p-5", "lg:inline-flex", "lg:max-w-[835px]", "ltr:xl:skew-x-[0deg]", "rtl:xl:skew-x-[-0deg]"], [1, "ltr:xl:-skew-x-[0deg]", "rtl:xl:skew-x-[0deg]"], ["class", "relative mx-auto w-full max-w-[835px]", 4, "ngIf"], [1, "relative", "flex", "w-full", "flex-col", "items-center", "justify-center", "gap-6", "px-4", "pb-16", "pt-6", "sm:px-6", "lg:max-w-[667px]"], [1, "flex", "w-full", "max-w-[440px]", "items-center", "gap-2", "lg:absolute", "lg:start-20", "lg:top-6", "lg:max-w-full"], ["routerLink", "/", 1, "flex", "items-center", "gap-2"], ["alt", "Logo", 1, "max-h-14", 3, "src"], [1, "text-2xl", "font-bold", "text-primary"], [1, "flex", "w-full", "max-w-[440px]", "items-center", "gap-2", "lg:absolute", "lg:end-6", "lg:top-6", "lg:max-w-full"], [1, "dropdown", "ms-auto", "w-max"], ["hlMenu", ""], ["type", "button", "hlMenuButton", "", 1, "flex", "items-center", "gap-2.5", "rounded-lg", "border", "border-white-dark/30", "bg-white", "px-2", "py-1.5", "text-white-dark", "hover:border-primary", "hover:text-primary", "dark:bg-black"], ["alt", "image", 1, "h-5", "w-5", "rounded-full", "object-cover", 3, "src"], [1, "text-base", "font-bold", "uppercase"], [1, "shrink-0"], ["class", "top-11 grid w-[280px] grid-cols-2 gap-2 !px-2 font-semibold text-dark dark:text-white-dark dark:text-white-light/90 ltr:-right-14 sm:ltr:-right-2 rtl:-left-14 sm:rtl:-left-2", 4, "hlMenuItems"], [1, "w-full", "max-w-[440px]"], [1, "absolute", "bottom-6", "w-full", "text-center", "dark:text-white"], [1, "screen_loader", "animate__animated", "fixed", "inset-0", "z-[60]", "grid", "place-content-center", "bg-[#fafafa]", "dark:bg-[#060818]"], ["width", "64", "height", "64", "viewBox", "0 0 135 135", "xmlns", "http://www.w3.org/2000/svg", "fill", "#4361ee"], ["d", "M67.447 58c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zm9.448 9.447c0 5.523 4.477 10 10 10 5.522 0 10-4.477 10-10s-4.478-10-10-10c-5.523 0-10 4.477-10 10zm-9.448 9.448c-5.523 0-10 4.477-10 10 0 5.522 4.477 10 10 10s10-4.478 10-10c0-5.523-4.477-10-10-10zM58 67.447c0-5.523-4.477-10-10-10s-10 4.477-10 10 4.477 10 10 10 10-4.477 10-10z"], ["attributeName", "transform", "type", "rotate", "from", "0 67 67", "to", "-360 67 67", "dur", "2.5s", "repeatCount", "indefinite"], ["d", "M28.19 40.31c6.627 0 12-5.374 12-12 0-6.628-5.373-12-12-12-6.628 0-12 5.372-12 12 0 6.626 5.372 12 12 12zm30.72-19.825c4.686 4.687 12.284 4.687 16.97 0 4.686-4.686 4.686-12.284 0-16.97-4.686-4.687-12.284-4.687-16.97 0-4.687 4.686-4.687 12.284 0 16.97zm35.74 7.705c0 6.627 5.37 12 12 12 6.626 0 12-5.373 12-12 0-6.628-5.374-12-12-12-6.63 0-12 5.372-12 12zm19.822 30.72c-4.686 4.686-4.686 12.284 0 16.97 4.687 4.686 12.285 4.686 16.97 0 4.687-4.686 4.687-12.284 0-16.97-4.685-4.687-12.283-4.687-16.97 0zm-7.704 35.74c-6.627 0-12 5.37-12 12 0 6.626 5.373 12 12 12s12-5.374 12-12c0-6.63-5.373-12-12-12zm-30.72 19.822c-4.686-4.686-12.284-4.686-16.97 0-4.686 4.687-4.686 12.285 0 16.97 4.686 4.687 12.284 4.687 16.97 0 4.687-4.685 4.687-12.283 0-16.97zm-35.74-7.704c0-6.627-5.372-12-12-12-6.626 0-12 5.373-12 12s5.374 12 12 12c6.628 0 12-5.373 12-12zm-19.823-30.72c4.687-4.686 4.687-12.284 0-16.97-4.686-4.686-12.284-4.686-16.97 0-4.687 4.686-4.687 12.284 0 16.97 4.686 4.687 12.284 4.687 16.97 0z"], ["attributeName", "transform", "type", "rotate", "from", "0 67 67", "to", "360 67 67", "dur", "8s", "repeatCount", "indefinite"], [1, "fixed", "bottom-6", "z-50", "ltr:right-6", "rtl:left-6"], ["type", "button", 1, "btn", "btn-outline-primary", "animate-pulse", "rounded-full", "bg-[#fafafa]", "p-2", "dark:bg-[#060818]", "dark:hover:bg-primary", 3, "click"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "h-4", "w-4"], ["opacity", "0.5", "fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M12 20.75C12.4142 20.75 12.75 20.4142 12.75 20L12.75 10.75L11.25 10.75L11.25 20C11.25 20.4142 11.5858 20.75 12 20.75Z", "fill", "currentColor"], ["d", "M6.00002 10.75C5.69667 10.75 5.4232 10.5673 5.30711 10.287C5.19103 10.0068 5.25519 9.68417 5.46969 9.46967L11.4697 3.46967C11.6103 3.32902 11.8011 3.25 12 3.25C12.1989 3.25 12.3897 3.32902 12.5304 3.46967L18.5304 9.46967C18.7449 9.68417 18.809 10.0068 18.6929 10.287C18.5768 10.5673 18.3034 10.75 18 10.75L6.00002 10.75Z", "fill", "currentColor"], ["alt", "image", 1, "h-full", "w-full", "object-cover", 3, "src"], ["src", "assets/images/auth/bg-gradient.png", "alt", "image", 1, "h-full", "w-full", "object-cover"], [1, "relative", "mx-auto", "w-full", "max-w-[835px]"], [1, "mb-6", "text-center"], [1, "mb-2", "text-3xl", "font-bold"], [1, "text-lg", "opacity-80"], [1, "carousel-container"], [1, "relative"], ["class", "w-full", 4, "ngIf"], [1, "absolute", "bottom-4", "left-1/2", "flex", "-translate-x-1/2", "transform", "gap-2", 2, "margin", "-11px"], ["class", "h-2.5 w-2.5 cursor-pointer rounded-full", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "w-full"], ["target", "_blank", 3, "href", 4, "ngIf"], [4, "ngIf"], ["target", "_blank", 3, "href"], ["alt", "Carousel Image", 1, "h-[422px]", "w-full", "rounded-xl", "object-scale-down", 2, "border-radius", "12px", 3, "src"], ["preload", "auto", "muted", "", "autoplay", "", "playsinline", "", "controls", "", 1, "h-[422px]", "w-full", "rounded-xl", "object-scale-down", 2, "height", "100%", "border-radius", "12px", 3, "src"], [1, "h-2.5", "w-2.5", "cursor-pointer", "rounded-full", 3, "click", "ngClass"], [1, "top-11", "grid", "w-[280px]", "grid-cols-2", "gap-2", "!px-2", "font-semibold", "text-dark", "dark:text-white-dark", "dark:text-white-light/90", "ltr:-right-14", "sm:ltr:-right-2", "rtl:-left-14", "sm:rtl:-left-2"], [4, "ngFor", "ngForOf"], ["type", "button", "class", "w-full hover:text-primary", 3, "ngClass", "click", 4, "hlMenuItem"], ["type", "button", 1, "w-full", "hover:text-primary", 3, "click", "ngClass"], ["alt", "", 1, "h-5", "w-5", "rounded-full", "object-cover", 3, "src"], [1, "ltr:ml-3", "rtl:mr-3"]], template: function AuthLayout_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 0);
    \u0275\u0275template(1, AuthLayout_div_1_Template, 6, 0, "div", 1);
    \u0275\u0275elementStart(2, "div", 2);
    \u0275\u0275template(3, AuthLayout_div_3_Template, 5, 0, "div", 3);
    \u0275\u0275elementStart(4, "div")(5, "div", 4);
    \u0275\u0275template(6, AuthLayout_img_6_Template, 1, 1, "img", 5)(7, AuthLayout_img_7_Template, 1, 0, "img", 6);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(8, "div", 7)(9, "div", 8)(10, "div", 9)(11, "div", 10);
    \u0275\u0275template(12, AuthLayout_div_12_Template, 12, 5, "div", 11)(13, AuthLayout_div_13_Template, 12, 2, "div", 11);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(14, "div", 12)(15, "div", 13)(16, "a", 14);
    \u0275\u0275element(17, "img", 15);
    \u0275\u0275elementStart(18, "span", 16);
    \u0275\u0275text(19);
    \u0275\u0275elementEnd()()();
    \u0275\u0275elementStart(20, "div", 17)(21, "div", 18)(22, "div", 19)(23, "button", 20)(24, "div");
    \u0275\u0275element(25, "img", 21);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(26, "div", 22);
    \u0275\u0275text(27);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(28, "span", 23);
    \u0275\u0275element(29, "icon-caret-down");
    \u0275\u0275elementEnd()();
    \u0275\u0275template(30, AuthLayout_ul_30_Template, 2, 2, "ul", 24);
    \u0275\u0275elementEnd()()();
    \u0275\u0275elementStart(31, "div", 25);
    \u0275\u0275element(32, "router-outlet");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(33, "p", 26);
    \u0275\u0275text(34);
    \u0275\u0275elementEnd()()()()()()();
  }
  if (rf & 2) {
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction4(14, _c06, ctx.store.sidebar ? "toggle-sidebar" : "", ctx.store.menu, ctx.store.layout, ctx.store.rtlClass));
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx.store.isShowMainLoader);
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx.showTopButton);
    \u0275\u0275advance(3);
    \u0275\u0275property("ngIf", ctx.authentication_background_1);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !ctx.authentication_background_1);
    \u0275\u0275advance();
    \u0275\u0275property("ngStyle", \u0275\u0275pureFunction1(19, _c15, "url(" + (ctx.authentication_background_2 ? ctx.apiUrl + "/" + ctx.authentication_background_2 : "/assets/images/auth/map.png") + ")"));
    \u0275\u0275advance(4);
    \u0275\u0275property("ngIf", ctx.mediaItems == null ? null : ctx.mediaItems.length);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", (ctx.mediaItems == null ? null : ctx.mediaItems.length) == 0);
    \u0275\u0275advance(4);
    \u0275\u0275property("src", ctx.apiUrl + "/" + ctx.logo, \u0275\u0275sanitizeUrl);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(ctx.company);
    \u0275\u0275advance(6);
    \u0275\u0275property("src", "assets/images/flags/" + ctx.store.locale.toUpperCase() + ".svg", \u0275\u0275sanitizeUrl);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(ctx.store.locale);
    \u0275\u0275advance(7);
    \u0275\u0275textInterpolate2("\xA9 ", ctx.currYear, ".", ctx.copyrightContent, "");
  }
}, dependencies: [CommonSharedModule, NgClass, NgForOf, NgIf, NgStyle, RouterOutlet, RouterLink, MenuDirective, MenuButtonDirective, MenuItemsPanelDirective, MenuItemDirective, RouterModule, IconCaretDownComponent], encapsulation: 2, data: { animation: [
  trigger("toggleAnimation", [
    transition(":enter", [style({ opacity: 0, transform: "scale(0.95)" }), animate("100ms ease-out", style({ opacity: 1, transform: "scale(1)" }))]),
    transition(":leave", [animate("75ms", style({ opacity: 0, transform: "scale(0.95)" }))])
  ])
] } });
var AuthLayout = _AuthLayout;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(AuthLayout, { className: "AuthLayout", filePath: "src\\app\\layouts\\auth-layout.ts", lineNumber: 31 });
})();

// src/app/@lcp-framework/shared/icon/icon-instagram.ts
var _c07 = ["template"];
function IconInstagramComponent_ng_template_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(0, "svg", 1);
    \u0275\u0275element(1, "path", 2)(2, "path", 3)(3, "path", 4);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275property("ngClass", ctx_r0.class);
  }
}
var _IconInstagramComponent = class _IconInstagramComponent {
  constructor(viewContainerRef) {
    this.viewContainerRef = viewContainerRef;
    this.class = "";
  }
  ngOnInit() {
    this.viewContainerRef.createEmbeddedView(this.template);
    this.viewContainerRef.element.nativeElement.remove();
  }
};
_IconInstagramComponent.\u0275fac = function IconInstagramComponent_Factory(t) {
  return new (t || _IconInstagramComponent)(\u0275\u0275directiveInject(ViewContainerRef));
};
_IconInstagramComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _IconInstagramComponent, selectors: [["icon-instagram"]], viewQuery: function IconInstagramComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c07, 7);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.template = _t.first);
  }
}, inputs: { class: "class" }, standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 2, vars: 0, consts: [["template", ""], ["width", "16", "height", "16", "viewBox", "0 0 16 16", "fill", "none", 3, "ngClass"], ["d", "M8 2.05C9.925 2.05 10.1875 2.05 10.975 2.05C11.675 2.05 12.025 2.225 12.2875 2.3125C12.6375 2.4875 12.9 2.575 13.1625 2.8375C13.425 3.1 13.6 3.3625 13.6875 3.7125C13.775 3.975 13.8625 4.325 13.95 5.025C13.95 5.8125 13.95 5.9875 13.95 8C13.95 10.0125 13.95 10.1875 13.95 10.975C13.95 11.675 13.775 12.025 13.6875 12.2875C13.5125 12.6375 13.425 12.9 13.1625 13.1625C12.9 13.425 12.6375 13.6 12.2875 13.6875C12.025 13.775 11.675 13.8625 10.975 13.95C10.1875 13.95 10.0125 13.95 8 13.95C5.9875 13.95 5.8125 13.95 5.025 13.95C4.325 13.95 3.975 13.775 3.7125 13.6875C3.3625 13.5125 3.1 13.425 2.8375 13.1625C2.575 12.9 2.4 12.6375 2.3125 12.2875C2.225 12.025 2.1375 11.675 2.05 10.975C2.05 10.1875 2.05 10.0125 2.05 8C2.05 5.9875 2.05 5.8125 2.05 5.025C2.05 4.325 2.225 3.975 2.3125 3.7125C2.4875 3.3625 2.575 3.1 2.8375 2.8375C3.1 2.575 3.3625 2.4 3.7125 2.3125C3.975 2.225 4.325 2.1375 5.025 2.05C5.8125 2.05 6.075 2.05 8 2.05ZM8 0.737503C5.9875 0.737503 5.8125 0.737503 5.025 0.737503C4.2375 0.737503 3.7125 0.912504 3.275 1.0875C2.8375 1.2625 2.4 1.525 1.9625 1.9625C1.525 2.4 1.35 2.75 1.0875 3.275C0.912504 3.7125 0.825003 4.2375 0.737503 5.025C0.737503 5.8125 0.737503 6.075 0.737503 8C0.737503 10.0125 0.737503 10.1875 0.737503 10.975C0.737503 11.7625 0.912504 12.2875 1.0875 12.725C1.2625 13.1625 1.525 13.6 1.9625 14.0375C2.4 14.475 2.75 14.65 3.275 14.9125C3.7125 15.0875 4.2375 15.175 5.025 15.2625C5.8125 15.2625 6.075 15.2625 8 15.2625C9.925 15.2625 10.1875 15.2625 10.975 15.2625C11.7625 15.2625 12.2875 15.0875 12.725 14.9125C13.1625 14.7375 13.6 14.475 14.0375 14.0375C14.475 13.6 14.65 13.25 14.9125 12.725C15.0875 12.2875 15.175 11.7625 15.2625 10.975C15.2625 10.1875 15.2625 9.925 15.2625 8C15.2625 6.075 15.2625 5.8125 15.2625 5.025C15.2625 4.2375 15.0875 3.7125 14.9125 3.275C14.7375 2.8375 14.475 2.4 14.0375 1.9625C13.6 1.525 13.25 1.35 12.725 1.0875C12.2875 0.912504 11.7625 0.825003 10.975 0.737503C10.1875 0.737503 10.0125 0.737503 8 0.737503Z", "fill", "currentColor"], ["d", "M8 4.2375C5.9 4.2375 4.2375 5.9 4.2375 8C4.2375 10.1 5.9 11.7625 8 11.7625C10.1 11.7625 11.7625 10.1 11.7625 8C11.7625 5.9 10.1 4.2375 8 4.2375ZM8 10.45C6.6875 10.45 5.55 9.4 5.55 8C5.55 6.6875 6.6 5.55 8 5.55C9.3125 5.55 10.45 6.6 10.45 8C10.45 9.3125 9.3125 10.45 8 10.45Z", "fill", "currentColor"], ["d", "M11.85 5.025C12.3333 5.025 12.725 4.63325 12.725 4.15C12.725 3.66675 12.3333 3.275 11.85 3.275C11.3668 3.275 10.975 3.66675 10.975 4.15C10.975 4.63325 11.3668 5.025 11.85 5.025Z", "fill", "currentColor"]], template: function IconInstagramComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, IconInstagramComponent_ng_template_0_Template, 4, 1, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
  }
}, dependencies: [CommonModule, NgClass], encapsulation: 2 });
var IconInstagramComponent = _IconInstagramComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(IconInstagramComponent, { className: "IconInstagramComponent", filePath: "src\\app\\@lcp-framework\\shared\\icon\\icon-instagram.ts", lineNumber: 27 });
})();

// src/app/@lcp-framework/shared/icon/icon-facebook-circle.ts
var _c08 = ["template"];
function IconFacebookCircleComponent_ng_template_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(0, "svg", 1);
    \u0275\u0275element(1, "path", 2);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275property("ngClass", ctx_r0.class);
  }
}
var _IconFacebookCircleComponent = class _IconFacebookCircleComponent {
  constructor(viewContainerRef) {
    this.viewContainerRef = viewContainerRef;
    this.class = "";
  }
  ngOnInit() {
    this.viewContainerRef.createEmbeddedView(this.template);
    this.viewContainerRef.element.nativeElement.remove();
  }
};
_IconFacebookCircleComponent.\u0275fac = function IconFacebookCircleComponent_Factory(t) {
  return new (t || _IconFacebookCircleComponent)(\u0275\u0275directiveInject(ViewContainerRef));
};
_IconFacebookCircleComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _IconFacebookCircleComponent, selectors: [["icon-facebook-circle"]], viewQuery: function IconFacebookCircleComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c08, 7);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.template = _t.first);
  }
}, inputs: { class: "class" }, standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 2, vars: 0, consts: [["template", ""], ["width", "14", "height", "14", "viewBox", "0 0 14 14", "fill", "none", 3, "ngClass"], ["d", "M14 7C14 3.15 10.85 0 7 0C3.15 0 0 3.15 0 7C0 10.5 2.5375 13.3875 5.8625 13.9125V9.0125H4.1125V7H5.8625V5.425C5.8625 3.675 6.9125 2.7125 8.4875 2.7125C9.275 2.7125 10.0625 2.8875 10.0625 2.8875V4.6375H9.1875C8.3125 4.6375 8.05 5.1625 8.05 5.6875V7H9.975L9.625 9.0125H7.9625V14C11.4625 13.475 14 10.5 14 7Z", "fill", "currentColor"]], template: function IconFacebookCircleComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, IconFacebookCircleComponent_ng_template_0_Template, 2, 1, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
  }
}, dependencies: [CommonModule, NgClass], encapsulation: 2 });
var IconFacebookCircleComponent = _IconFacebookCircleComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(IconFacebookCircleComponent, { className: "IconFacebookCircleComponent", filePath: "src\\app\\@lcp-framework\\shared\\icon\\icon-facebook-circle.ts", lineNumber: 19 });
})();

// src/app/@lcp-framework/shared/icon/icon-twitter.ts
var _c09 = ["template"];
function IconTwitterComponent_ng_template_0__svg_svg_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(0, "svg", 3);
    \u0275\u0275element(1, "path", 4);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext(2);
    \u0275\u0275property("ngClass", ctx_r0.class);
  }
}
function IconTwitterComponent_ng_template_0__svg_svg_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(0, "svg", 5);
    \u0275\u0275element(1, "path", 6);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext(2);
    \u0275\u0275property("ngClass", ctx_r0.class);
  }
}
function IconTwitterComponent_ng_template_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, IconTwitterComponent_ng_template_0__svg_svg_0_Template, 2, 1, "svg", 1)(1, IconTwitterComponent_ng_template_0__svg_svg_1_Template, 2, 1, "svg", 2);
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275property("ngIf", ctx_r0.fill);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !ctx_r0.fill);
  }
}
var _IconTwitterComponent = class _IconTwitterComponent {
  constructor(viewContainerRef) {
    this.viewContainerRef = viewContainerRef;
    this.fill = false;
    this.class = "";
  }
  ngOnInit() {
    this.viewContainerRef.createEmbeddedView(this.template);
    this.viewContainerRef.element.nativeElement.remove();
  }
};
_IconTwitterComponent.\u0275fac = function IconTwitterComponent_Factory(t) {
  return new (t || _IconTwitterComponent)(\u0275\u0275directiveInject(ViewContainerRef));
};
_IconTwitterComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _IconTwitterComponent, selectors: [["icon-twitter"]], viewQuery: function IconTwitterComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c09, 7);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.template = _t.first);
  }
}, inputs: { fill: "fill", class: "class" }, standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 2, vars: 0, consts: [["template", ""], ["width", "14", "height", "12", "viewBox", "0 0 14 12", "fill", "none", 3, "ngClass", 4, "ngIf"], ["xmlns", "http://www.w3.org/2000/svg", "width", "16", "height", "16", "viewBox", "0 0 24 24", "fill", "none", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linecap", "round", "stroke-linejoin", "round", 3, "ngClass", 4, "ngIf"], ["width", "14", "height", "12", "viewBox", "0 0 14 12", "fill", "none", 3, "ngClass"], ["d", "M14 1.625C13.475 1.8875 12.95 1.975 12.3375 2.0625C12.95 1.7125 13.3875 1.1875 13.5625 0.4875C13.0375 0.8375 12.425 1.0125 11.725 1.1875C11.2 0.6625 10.4125 0.3125 9.625 0.3125C7.7875 0.3125 6.3875 2.0625 6.825 3.8125C4.4625 3.725 2.3625 2.5875 0.875 0.8375C0.0875 2.15 0.525 3.8125 1.75 4.6875C1.3125 4.6875 0.875 4.5125 0.4375 4.3375C0.4375 5.65 1.4 6.875 2.7125 7.225C2.275 7.3125 1.8375 7.4 1.4 7.3125C1.75 8.45 2.8 9.325 4.1125 9.325C3.0625 10.1125 1.4875 10.55 0 10.375C1.3125 11.1625 2.8 11.6875 4.375 11.6875C9.7125 11.6875 12.6875 7.225 12.5125 3.1125C13.125 2.7625 13.65 2.2375 14 1.625Z", "fill", "currentColor"], ["xmlns", "http://www.w3.org/2000/svg", "width", "16", "height", "16", "viewBox", "0 0 24 24", "fill", "none", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linecap", "round", "stroke-linejoin", "round", 3, "ngClass"], ["d", "M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"]], template: function IconTwitterComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, IconTwitterComponent_ng_template_0_Template, 2, 2, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
  }
}, dependencies: [CommonModule, NgClass, NgIf], encapsulation: 2 });
var IconTwitterComponent = _IconTwitterComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(IconTwitterComponent, { className: "IconTwitterComponent", filePath: "src\\app\\@lcp-framework\\shared\\icon\\icon-twitter.ts", lineNumber: 37 });
})();

// src/app/@lcp-framework/shared/icon/icon-google.ts
var _c010 = ["template"];
function IconGoogleComponent_ng_template_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(0, "svg", 1);
    \u0275\u0275element(1, "path", 2)(2, "path", 3)(3, "path", 4)(4, "path", 5);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275property("ngClass", ctx_r0.class);
  }
}
var _IconGoogleComponent = class _IconGoogleComponent {
  constructor(viewContainerRef) {
    this.viewContainerRef = viewContainerRef;
    this.class = "";
  }
  ngOnInit() {
    this.viewContainerRef.createEmbeddedView(this.template);
    this.viewContainerRef.element.nativeElement.remove();
  }
};
_IconGoogleComponent.\u0275fac = function IconGoogleComponent_Factory(t) {
  return new (t || _IconGoogleComponent)(\u0275\u0275directiveInject(ViewContainerRef));
};
_IconGoogleComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _IconGoogleComponent, selectors: [["icon-google"]], viewQuery: function IconGoogleComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c010, 7);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.template = _t.first);
  }
}, inputs: { class: "class" }, standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 2, vars: 0, consts: [["template", ""], ["width", "14", "height", "14", "viewBox", "0 0 14 14", "fill", "none", 3, "ngClass"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M13.8512 7.15912C13.8512 6.66275 13.8066 6.18548 13.7239 5.72729H7.13116V8.43503H10.8984C10.7362 9.31003 10.243 10.0514 9.50162 10.5478V12.3041H11.7639C13.0875 11.0855 13.8512 9.29094 13.8512 7.15912Z", "fill", "currentColor"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M7.13089 14C9.0209 14 10.6054 13.3731 11.7636 12.3041L9.50135 10.5477C8.87454 10.9677 8.07272 11.2159 7.13089 11.2159C5.30771 11.2159 3.76452 9.9845 3.21407 8.32996H0.875427V10.1436C2.02725 12.4313 4.39453 14 7.13089 14Z", "fill", "currentColor"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M3.21435 8.32997C3.07435 7.90997 2.99481 7.46133 2.99481 6.99997C2.99481 6.5386 3.07435 6.08996 3.21435 5.66996V3.85632H0.875712C0.40162 4.80133 0.131165 5.87042 0.131165 6.99997C0.131165 8.12951 0.40162 9.19861 0.875712 10.1436L3.21435 8.32997Z", "fill", "currentColor"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M7.13089 2.7841C8.15862 2.7841 9.08135 3.13728 9.80681 3.83092L11.8145 1.82319C10.6023 0.693638 9.01772 0 7.13089 0C4.39453 0 2.02725 1.56864 0.875427 3.85637L3.21407 5.67001C3.76452 4.01546 5.30771 2.7841 7.13089 2.7841Z", "fill", "currentColor"]], template: function IconGoogleComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, IconGoogleComponent_ng_template_0_Template, 5, 1, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
  }
}, dependencies: [CommonModule, NgClass], encapsulation: 2 });
var IconGoogleComponent = _IconGoogleComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(IconGoogleComponent, { className: "IconGoogleComponent", filePath: "src\\app\\@lcp-framework\\shared\\icon\\icon-google.ts", lineNumber: 39 });
})();

// src/app/@lcp-framework/pages/login/login.component.ts
var _c011 = (a0, a1) => ({ "text-dark": a0, "text-light": a1 });
function CoverLoginComponent_div_14_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 20);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "form_email_valid_msg"), " ");
  }
}
function CoverLoginComponent_div_15_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 20);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "form_email_req_msg"), " ");
  }
}
function CoverLoginComponent_div_16_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 20);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(2, 1, "form_email_valid_msg"));
  }
}
function CoverLoginComponent_div_28_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 20);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(2, 1, "form_email_req_pwd"));
  }
}
var _CoverLoginComponent = class _CoverLoginComponent {
  constructor(formBuilder, http, translate, storeData, router, appSetting, toastr, authService, localstore, routeUpdateService, languageService, route, menuLoadService, timezoneService, commonService) {
    this.formBuilder = formBuilder;
    this.http = http;
    this.translate = translate;
    this.storeData = storeData;
    this.router = router;
    this.appSetting = appSetting;
    this.toastr = toastr;
    this.authService = authService;
    this.localstore = localstore;
    this.routeUpdateService = routeUpdateService;
    this.languageService = languageService;
    this.route = route;
    this.menuLoadService = menuLoadService;
    this.timezoneService = timezoneService;
    this.commonService = commonService;
    this.companyId = 1;
    this.email = "";
    this.password = "";
    this.subscribe = false;
    this.loading = false;
    this.isSubmitted = false;
    this.passwordVisible = false;
    this.iconClicked = false;
    this.title_key = "login";
    this.initStore();
    this.loginForm = this.formBuilder.group({
      email: ["", [Validators.required, Validators.pattern(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/)]],
      password: ["", [Validators.required]],
      subscribe: [false]
    });
    const commonRememberMe = JSON.parse(this.localstore.getData("rememberme"));
    const rememberMe = commonRememberMe ? commonRememberMe.rememberMe === "true" : false;
    if (rememberMe) {
      this.loginForm.patchValue({
        email: commonRememberMe.savedEmail || "",
        password: commonRememberMe.savedPassword || "",
        subscribe: true
      });
    }
  }
  ngOnInit() {
    this.loginForm.controls["email"].statusChanges.subscribe((status) => {
      if (this.isSubmitted) {
        this.loginForm.controls["email"].markAsTouched();
      }
    });
    this.loginForm.controls["password"].statusChanges.subscribe((status) => {
      if (this.isSubmitted) {
        this.loginForm.controls["password"].markAsTouched();
      }
    });
    this.focusListener = () => this.checkIfLoggedIn();
    window.addEventListener("focus", this.focusListener);
  }
  ngOnDestroy() {
    document.documentElement.classList.remove("login-page");
    window.removeEventListener("focus", this.focusListener);
  }
  get formControls() {
    return this.loginForm.controls;
  }
  initStore() {
    return __async(this, null, function* () {
      this.storeData.select((d) => d.index).subscribe((d) => {
        this.store = d;
      });
    });
  }
  changeLanguage(item) {
    this.translate.use(item.code);
    this.appSetting.toggleLanguage(item);
    if (this.store.locale?.toLowerCase() === "ae") {
      this.storeData.dispatch({ type: "toggleRTL", payload: "rtl" });
      this.languageService.serviceChangeLanguage(this.companyId, item.code.toLowerCase());
    } else {
      this.storeData.dispatch({ type: "toggleRTL", payload: "ltr" });
      this.languageService.serviceChangeLanguage(this.companyId, item.code.toLowerCase());
    }
  }
  get emailControl() {
    return this.loginForm.get("email");
  }
  get passwordControl() {
    return this.loginForm.get("password");
  }
  togglePasswordVisibility() {
    this.passwordVisible = !this.passwordVisible;
  }
  toggleIcon() {
    this.iconClicked = !this.iconClicked;
  }
  onLoginSuccess(companyId) {
    this.menuLoadService.fetchMenuData(companyId).subscribe({
      next: (menuList) => {
        if (menuList.length > 0) {
          console.log("Menu loaded, proceed with login");
          this.routeUpdateService.addDynamicRoutes();
        } else {
          console.error("Failed to load menu, login halted");
        }
      },
      error: (error) => {
        console.error("Error fetching menu data during login:", error);
      }
    });
  }
  setConfig(companyId, userID) {
    this.menuLoadService.fetchConfigData(companyId, userID).subscribe({
      next: (res) => {
        console.log(res);
        this.timezoneService.reloadConfig();
      },
      error: (error) => {
        console.error("Error fetching menu data during login:", error);
      }
    });
  }
  checkIfLoggedIn() {
    const userData = this.localstore.getData("user_data");
    if (userData) {
      this.router.navigate(["/dashboard"]);
    }
  }
  onSubmit() {
    this.isSubmitted = true;
    if (this.loginForm.controls["email"].hasError("pattern")) {
      const key = "form_email_valid_msg";
      const errorMessage = this.translate.instant(key);
      this.toastr.error(errorMessage, "Error");
      return;
    }
    if (this.loginForm.invalid) {
      const key = "Both_fields_are_required_and_valid";
      const errorMessage = this.translate.instant(key);
      this.toastr.error(errorMessage, "Error");
      this.loginForm.markAllAsTouched();
      return;
    }
    this.loading = true;
    const loginData = this.loginForm.value;
    this.authService.login(loginData).subscribe({
      next: (response) => __async(this, null, function* () {
        if (response.status) {
          const userID = response.data.id;
          const permissionsObj = response.data.permissions.reduce((acc, perm) => {
            acc[perm.slug] = perm.accessible;
            return acc;
          }, {});
          const conf = localStorage.getItem("config");
          const enc_config = JSON.parse(conf);
          this.localstore.storeData("version_info", JSON.stringify(response.data.version_info));
          if (enc_config != null && enc_config.encrypt_local_storage == "true") {
            this.localstore.storeDataEncrypted("user_data", JSON.stringify({
              main: response.data,
              permissions: permissionsObj,
              user_id: userID
            }));
          } else {
            this.localstore.storeData("user_data", JSON.stringify({
              main: response.data,
              permissions: permissionsObj,
              user_id: userID
            }));
          }
          this.routeUpdateService.setPermissionsList(permissionsObj);
          if (this.loginForm.value.subscribe) {
            this.localstore.storeData("rememberme", JSON.stringify({ savedEmail: this.loginForm.value.email, savedPassword: this.loginForm.value.password, rememberMe: "true" }));
          } else {
            this.localstore.removeData("rememberme");
          }
          this.setConfig(this.companyId, userID);
          console.log(userID);
          this.getconfig(userID);
          this.onLoginSuccess(this.companyId);
          forkJoin([
            this.menuLoadService.fetchMenuData(this.companyId)
          ]).subscribe({
            next: ([configData]) => {
              localStorage.setItem("login", Date.now().toString());
              this.router.navigate(["/dashboard"]);
              window.location.reload();
            },
            error: (error) => {
              console.error("Error during login:", error);
              this.toastr.error("Login failed due to an internal error.");
            }
          });
        } else {
          if (response.code == 405 || response.code == 421) {
            const key = "incorrect_username_or_password";
            const errorMessage = this.translate.instant(key);
            this.toastr.error(errorMessage, "Error");
          } else {
            const key = "login_failed";
            const errorMessage = this.translate.instant(key);
            this.toastr.error(errorMessage, "Error");
          }
        }
      }),
      error: (error) => {
        const key = "error";
        let errorMessage = this.translate.instant(key);
        if (error.code === 429) {
          errorMessage = error.message;
        }
        this.toastr.error(errorMessage, "Error");
        this.loading = false;
        console.error(error);
      },
      complete: () => {
        this.loading = false;
        console.log("Login request completed");
      }
    });
  }
  // Copy of getconfig from AuthLayout
  getconfig(userId) {
    console.log(userId);
    const params = { categories: { "0": "ac1", "1": "ac2" } };
    if (userId !== void 0 && userId !== null) {
      params.user_id = userId;
      params.categories = { "0": "ac16", "1": "ac17" };
    }
    const procedureParams = { proc_name: "get_configurations_values_v1", params };
    this.commonService.unAuthProcedureCall(procedureParams).subscribe({
      next: (response) => {
        if (response.code === 200 && response.status && response.data) {
          const res = response.data?.[0]?.result?.data || {};
          console.log(res);
          if (Object.keys(res).length > 0) {
            console.log(res);
            this.localstore.storeData("config", JSON.stringify(res));
          }
        } else {
          const key = "error";
          const errorMessage = this.translate.instant(key);
          this.toastr.error(errorMessage, "Error");
          console.log(response.message);
        }
      },
      error: (error) => {
        console.error("Error fetching data:", error);
      },
      complete: () => {
      }
    });
  }
};
_CoverLoginComponent.\u0275fac = function CoverLoginComponent_Factory(t) {
  return new (t || _CoverLoginComponent)(\u0275\u0275directiveInject(FormBuilder), \u0275\u0275directiveInject(HttpClient), \u0275\u0275directiveInject(TranslateService), \u0275\u0275directiveInject(Store), \u0275\u0275directiveInject(Router), \u0275\u0275directiveInject(AppService), \u0275\u0275directiveInject(ToastrService), \u0275\u0275directiveInject(AuthService), \u0275\u0275directiveInject(LocalStorageService), \u0275\u0275directiveInject(RouteUpdateService), \u0275\u0275directiveInject(LanguageService), \u0275\u0275directiveInject(ActivatedRoute), \u0275\u0275directiveInject(MenuLoadService), \u0275\u0275directiveInject(TimezoneService), \u0275\u0275directiveInject(MenuMapService));
};
_CoverLoginComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _CoverLoginComponent, selectors: [["ng-component"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 41, vars: 38, consts: [[1, "mb-10"], [1, "text-3xl", "uppercase", "!leading-snug", "md:text-4xl"], ["autocomplete", "off", 1, "space-y-5", "dark:text-white", 3, "ngSubmit", "formGroup"], ["for", "Email"], [1, "relative", "text-white-dark"], ["formControlName", "email", "id", "Email", "type", "email", 1, "form-input", "ps-10", "placeholder:text-white-dark", 3, "placeholder"], [1, "absolute", "start-4", "top-1/2", "-translate-y-1/2"], [1, "fa-solid", "fa-envelope"], ["class", "text-danger", 4, "ngIf"], ["for", "Password"], ["autocomplete", "new-password", "formControlName", "password", "id", "Password", 1, "form-input", "ps-10", "placeholder:text-white-dark", 3, "type", "placeholder"], [1, "fa-solid", "fa-unlock-keyhole"], [1, "absolute", "end-4", "top-1/2", "-translate-y-1/2", "cursor-pointer", 3, "click", "ngClass"], [1, "fa-regular", "fa-eye"], [1, "flex", "items-center", "justify-between"], [1, "flex", "cursor-pointer", "items-center"], ["formControlName", "subscribe", "type", "checkbox", 1, "form-checkbox", "bg-white", "dark:bg-black"], [1, "text-white-dark"], ["routerLink", "/forget-password", 1, "text-white-dark", "hover:text-blue-500"], ["type", "submit", 1, "btn", "btn-gradient", "!mt-6", "w-full", "border-0", "uppercase", "shadow-[0_10px_20px_-10px_rgba(67,97,238,0.44)]"], [1, "text-danger"]], template: function CoverLoginComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 0)(1, "h1", 1);
    \u0275\u0275text(2);
    \u0275\u0275pipe(3, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(4, "form", 2);
    \u0275\u0275listener("ngSubmit", function CoverLoginComponent_Template_form_ngSubmit_4_listener() {
      return ctx.onSubmit();
    });
    \u0275\u0275elementStart(5, "div")(6, "label", 3);
    \u0275\u0275text(7);
    \u0275\u0275pipe(8, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(9, "div", 4);
    \u0275\u0275element(10, "input", 5);
    \u0275\u0275pipe(11, "translate");
    \u0275\u0275elementStart(12, "span", 6);
    \u0275\u0275element(13, "i", 7);
    \u0275\u0275elementEnd()();
    \u0275\u0275template(14, CoverLoginComponent_div_14_Template, 3, 3, "div", 8)(15, CoverLoginComponent_div_15_Template, 3, 3, "div", 8)(16, CoverLoginComponent_div_16_Template, 3, 3, "div", 8);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(17, "div")(18, "label", 9);
    \u0275\u0275text(19);
    \u0275\u0275pipe(20, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(21, "div", 4);
    \u0275\u0275element(22, "input", 10);
    \u0275\u0275pipe(23, "translate");
    \u0275\u0275elementStart(24, "span", 6);
    \u0275\u0275element(25, "i", 11);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(26, "span", 12);
    \u0275\u0275listener("click", function CoverLoginComponent_Template_span_click_26_listener() {
      ctx.togglePasswordVisibility();
      return ctx.toggleIcon();
    });
    \u0275\u0275element(27, "i", 13);
    \u0275\u0275elementEnd()();
    \u0275\u0275template(28, CoverLoginComponent_div_28_Template, 3, 3, "div", 8);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(29, "div", 14)(30, "label", 15);
    \u0275\u0275element(31, "input", 16);
    \u0275\u0275elementStart(32, "span", 17);
    \u0275\u0275text(33);
    \u0275\u0275pipe(34, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(35, "a", 18);
    \u0275\u0275text(36);
    \u0275\u0275pipe(37, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(38, "button", 19);
    \u0275\u0275text(39);
    \u0275\u0275pipe(40, "translate");
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(3, 19, ctx.title_key));
    \u0275\u0275advance(2);
    \u0275\u0275property("formGroup", ctx.loginForm);
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(8, 21, "form_label_email"));
    \u0275\u0275advance(3);
    \u0275\u0275classProp("is-invalid", ctx.isSubmitted && ctx.loginForm.controls["email"].invalid);
    \u0275\u0275propertyInterpolate("placeholder", \u0275\u0275pipeBind1(11, 23, "form_label_email_placeholder"));
    \u0275\u0275advance(4);
    \u0275\u0275property("ngIf", ctx.isSubmitted && ctx.loginForm.controls["email"].hasError("pattern"));
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx.isSubmitted && ctx.loginForm.controls["email"].hasError("required"));
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx.isSubmitted && ctx.loginForm.controls["email"].hasError("email"));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(20, 25, "form_label_password"));
    \u0275\u0275advance(3);
    \u0275\u0275classProp("is-invalid", ctx.isSubmitted && ctx.loginForm.controls["password"].invalid);
    \u0275\u0275propertyInterpolate("placeholder", \u0275\u0275pipeBind1(23, 27, "form_label_password_placeholder"));
    \u0275\u0275property("type", ctx.passwordVisible ? "text" : "password");
    \u0275\u0275advance(4);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction2(35, _c011, ctx.iconClicked, !ctx.iconClicked));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx.isSubmitted && (ctx.passwordControl == null ? null : ctx.passwordControl.invalid));
    \u0275\u0275advance(5);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(34, 29, "form_remember_me"));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(37, 31, "forget_pwd"), " ");
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(40, 33, "submit"), " ");
  }
}, dependencies: [CommonSharedModule, NgClass, NgIf, \u0275NgNoValidate, DefaultValueAccessor, CheckboxControlValueAccessor, NgControlStatus, NgControlStatusGroup, RouterLink, TranslatePipe, ReactiveFormsModule, FormGroupDirective, FormControlName], data: { animation: [
  trigger("toggleAnimation", [
    transition(":enter", [style({ opacity: 0, transform: "scale(0.95)" }), animate("100ms ease-out", style({ opacity: 1, transform: "scale(1)" }))]),
    transition(":leave", [animate("75ms", style({ opacity: 0, transform: "scale(0.95)" }))])
  ])
] } });
var CoverLoginComponent = _CoverLoginComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(CoverLoginComponent, { className: "CoverLoginComponent", filePath: "src\\app\\@lcp-framework\\pages\\login\\login.component.ts", lineNumber: 103 });
})();

// src/app/@lcp-framework/guards/auth.guard.ts
var authGuard = () => {
  const router = inject(Router);
  const localStorageService = inject(LocalStorageService);
  const token = localStorageService.getData("user_data") && JSON.parse(localStorageService.getData("user_data")).main.token;
  return token ? true : router.createUrlTree(["/login"]);
};

// src/app/@lcp-framework/shared/icon/icon-home.ts
var _c012 = ["template"];
function IconHomeComponent_ng_template_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(0, "svg", 1);
    \u0275\u0275element(1, "path", 2)(2, "path", 3);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275property("ngClass", ctx_r0.class);
  }
}
var _IconHomeComponent = class _IconHomeComponent {
  constructor(viewContainerRef) {
    this.viewContainerRef = viewContainerRef;
    this.class = "";
  }
  ngOnInit() {
    this.viewContainerRef.createEmbeddedView(this.template);
    this.viewContainerRef.element.nativeElement.remove();
  }
};
_IconHomeComponent.\u0275fac = function IconHomeComponent_Factory(t) {
  return new (t || _IconHomeComponent)(\u0275\u0275directiveInject(ViewContainerRef));
};
_IconHomeComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _IconHomeComponent, selectors: [["icon-home"]], viewQuery: function IconHomeComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c012, 7);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.template = _t.first);
  }
}, inputs: { class: "class" }, standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 2, vars: 0, consts: [["template", ""], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 3, "ngClass"], ["opacity", "0.5", "d", "M2 12.2039C2 9.91549 2 8.77128 2.5192 7.82274C3.0384 6.87421 3.98695 6.28551 5.88403 5.10813L7.88403 3.86687C9.88939 2.62229 10.8921 2 12 2C13.1079 2 14.1106 2.62229 16.116 3.86687L18.116 5.10812C20.0131 6.28551 20.9616 6.87421 21.4808 7.82274C22 8.77128 22 9.91549 22 12.2039V13.725C22 17.6258 22 19.5763 20.8284 20.7881C19.6569 22 17.7712 22 14 22H10C6.22876 22 4.34315 22 3.17157 20.7881C2 19.5763 2 17.6258 2 13.725V12.2039Z", "stroke", "currentColor", "stroke-width", "1.5"], ["d", "M12 15L12 18", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linecap", "round"]], template: function IconHomeComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, IconHomeComponent_ng_template_0_Template, 3, 1, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
  }
}, dependencies: [CommonModule, NgClass], encapsulation: 2 });
var IconHomeComponent = _IconHomeComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(IconHomeComponent, { className: "IconHomeComponent", filePath: "src\\app\\@lcp-framework\\shared\\icon\\icon-home.ts", lineNumber: 22 });
})();

// src/app/@lcp-framework/shared/icon/icon-dollar-sign-circle.ts
var _c013 = ["template"];
function IconDollarSignCircleComponent_ng_template_0__svg_svg_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(0, "svg", 3);
    \u0275\u0275element(1, "circle", 4)(2, "path", 5)(3, "path", 6);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext(2);
    \u0275\u0275property("ngClass", ctx_r0.class);
  }
}
function IconDollarSignCircleComponent_ng_template_0__svg_svg_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(0, "svg", 7);
    \u0275\u0275element(1, "path", 8)(2, "path", 9);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext(2);
    \u0275\u0275property("ngClass", ctx_r0.class);
  }
}
function IconDollarSignCircleComponent_ng_template_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, IconDollarSignCircleComponent_ng_template_0__svg_svg_0_Template, 4, 1, "svg", 1)(1, IconDollarSignCircleComponent_ng_template_0__svg_svg_1_Template, 3, 1, "svg", 2);
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275property("ngIf", !ctx_r0.fill);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r0.fill);
  }
}
var _IconDollarSignCircleComponent = class _IconDollarSignCircleComponent {
  constructor(viewContainerRef) {
    this.viewContainerRef = viewContainerRef;
    this.fill = false;
    this.class = "";
  }
  ngOnInit() {
    this.viewContainerRef.createEmbeddedView(this.template);
    this.viewContainerRef.element.nativeElement.remove();
  }
};
_IconDollarSignCircleComponent.\u0275fac = function IconDollarSignCircleComponent_Factory(t) {
  return new (t || _IconDollarSignCircleComponent)(\u0275\u0275directiveInject(ViewContainerRef));
};
_IconDollarSignCircleComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _IconDollarSignCircleComponent, selectors: [["icon-dollar-sign-circle"]], viewQuery: function IconDollarSignCircleComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c013, 7);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.template = _t.first);
  }
}, inputs: { fill: "fill", class: "class" }, standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 2, vars: 0, consts: [["template", ""], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 3, "ngClass", 4, "ngIf"], ["width", "32", "height", "32", "viewBox", "0 0 32 32", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 3, "ngClass", 4, "ngIf"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 3, "ngClass"], ["opacity", "0.5", "cx", "12", "cy", "12", "r", "10", "stroke", "currentColor", "stroke-width", "1.5"], ["d", "M12 6V18", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linecap", "round"], ["d", "M15 9.5C15 8.11929 13.6569 7 12 7C10.3431 7 9 8.11929 9 9.5C9 10.8807 10.3431 12 12 12C13.6569 12 15 13.1193 15 14.5C15 15.8807 13.6569 17 12 17C10.3431 17 9 15.8807 9 14.5", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linecap", "round"], ["width", "32", "height", "32", "viewBox", "0 0 32 32", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 3, "ngClass"], ["opacity", "0.5", "fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M29.3332 15.9998C29.3332 23.3636 23.3636 29.3332 15.9998 29.3332C8.63604 29.3332 2.6665 23.3636 2.6665 15.9998C2.6665 8.63604 8.63604 2.6665 15.9998 2.6665C23.3636 2.6665 29.3332 8.63604 29.3332 15.9998Z", "fill", "currentColor"], ["d", "M17 8C17 7.44772 16.5523 7 16 7C15.4477 7 15 7.44772 15 8V8.42231C12.8261 8.81156 11 10.4448 11 12.6667C11 15.2229 13.417 17 16 17C17.8353 17 19 18.2076 19 19.3333C19 20.459 17.8353 21.6667 16 21.6667C14.1647 21.6667 13 20.459 13 19.3333C13 18.781 12.5523 18.3333 12 18.3333C11.4477 18.3333 11 18.781 11 19.3333C11 21.5552 12.8261 23.1884 15 23.5777V24C15 24.5523 15.4477 25 16 25C16.5523 25 17 24.5523 17 24V23.5777C19.1739 23.1884 21 21.5552 21 19.3333C21 16.7771 18.583 15 16 15C14.1647 15 13 13.7924 13 12.6667C13 11.541 14.1647 10.3333 16 10.3333C17.8353 10.3333 19 11.541 19 12.6667C19 13.219 19.4477 13.6667 20 13.6667C20.5523 13.6667 21 13.219 21 12.6667C21 10.4448 19.1739 8.81156 17 8.42231V8Z", "fill", "currentColor"]], template: function IconDollarSignCircleComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, IconDollarSignCircleComponent_ng_template_0_Template, 2, 2, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
  }
}, dependencies: [CommonModule, NgClass, NgIf], encapsulation: 2 });
var IconDollarSignCircleComponent = _IconDollarSignCircleComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(IconDollarSignCircleComponent, { className: "IconDollarSignCircleComponent", filePath: "src\\app\\@lcp-framework\\shared\\icon\\icon-dollar-sign-circle.ts", lineNumber: 37 });
})();

// src/app/@lcp-framework/shared/icon/icon-phone.ts
var _c014 = ["template"];
function IconPhoneComponent_ng_template_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(0, "svg", 1);
    \u0275\u0275element(1, "path", 2)(2, "path", 3)(3, "path", 4);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275property("ngClass", ctx_r0.class);
  }
}
var _IconPhoneComponent = class _IconPhoneComponent {
  constructor(viewContainerRef) {
    this.viewContainerRef = viewContainerRef;
    this.class = "";
  }
  ngOnInit() {
    this.viewContainerRef.createEmbeddedView(this.template);
    this.viewContainerRef.element.nativeElement.remove();
  }
};
_IconPhoneComponent.\u0275fac = function IconPhoneComponent_Factory(t) {
  return new (t || _IconPhoneComponent)(\u0275\u0275directiveInject(ViewContainerRef));
};
_IconPhoneComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _IconPhoneComponent, selectors: [["icon-phone"]], viewQuery: function IconPhoneComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c014, 7);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.template = _t.first);
  }
}, inputs: { class: "class" }, standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 2, vars: 0, consts: [["template", ""], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 3, "ngClass"], ["d", "M16.1007 13.359L16.5562 12.9062C17.1858 12.2801 18.1672 12.1515 18.9728 12.5894L20.8833 13.628C22.1102 14.2949 22.3806 15.9295 21.4217 16.883L20.0011 18.2954C19.6399 18.6546 19.1917 18.9171 18.6763 18.9651M4.00289 5.74561C3.96765 5.12559 4.25823 4.56668 4.69185 4.13552L6.26145 2.57483C7.13596 1.70529 8.61028 1.83992 9.37326 2.85908L10.6342 4.54348C11.2507 5.36691 11.1841 6.49484 10.4775 7.19738L10.1907 7.48257", "stroke", "currentColor", "stroke-width", "1.5"], ["opacity", "0.5", "d", "M18.6763 18.9651C17.0469 19.117 13.0622 18.9492 8.8154 14.7266C4.81076 10.7447 4.09308 7.33182 4.00293 5.74561", "stroke", "currentColor", "stroke-width", "1.5"], ["opacity", "0.5", "d", "M16.1007 13.3589C16.1007 13.3589 15.0181 14.4353 12.0631 11.4971C9.10807 8.55886 10.1907 7.48242 10.1907 7.48242", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linecap", "round"]], template: function IconPhoneComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, IconPhoneComponent_ng_template_0_Template, 4, 1, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
  }
}, dependencies: [CommonModule, NgClass], encapsulation: 2 });
var IconPhoneComponent = _IconPhoneComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(IconPhoneComponent, { className: "IconPhoneComponent", filePath: "src\\app\\@lcp-framework\\shared\\icon\\icon-phone.ts", lineNumber: 33 });
})();

// src/app/@lcp-framework/shared/icon/icon-linkedin.ts
var _c015 = ["template"];
function IconLinkedinComponent_ng_template_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(0, "svg", 1);
    \u0275\u0275element(1, "path", 2)(2, "rect", 3)(3, "circle", 4);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275property("ngClass", ctx_r0.class);
  }
}
var _IconLinkedinComponent = class _IconLinkedinComponent {
  constructor(viewContainerRef) {
    this.viewContainerRef = viewContainerRef;
    this.class = "";
  }
  ngOnInit() {
    this.viewContainerRef.createEmbeddedView(this.template);
    this.viewContainerRef.element.nativeElement.remove();
  }
};
_IconLinkedinComponent.\u0275fac = function IconLinkedinComponent_Factory(t) {
  return new (t || _IconLinkedinComponent)(\u0275\u0275directiveInject(ViewContainerRef));
};
_IconLinkedinComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _IconLinkedinComponent, selectors: [["icon-linkedin"]], viewQuery: function IconLinkedinComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c015, 7);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.template = _t.first);
  }
}, inputs: { class: "class" }, standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 2, vars: 0, consts: [["template", ""], ["xmlns", "http://www.w3.org/2000/svg", "width", "16", "height", "16", "viewBox", "0 0 24 24", "fill", "none", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linecap", "round", "stroke-linejoin", "round", 3, "ngClass"], ["d", "M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"], ["x", "2", "y", "9", "width", "4", "height", "12"], ["cx", "4", "cy", "4", "r", "2"]], template: function IconLinkedinComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, IconLinkedinComponent_ng_template_0_Template, 4, 1, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
  }
}, dependencies: [CommonModule, NgClass], encapsulation: 2 });
var IconLinkedinComponent = _IconLinkedinComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(IconLinkedinComponent, { className: "IconLinkedinComponent", filePath: "src\\app\\@lcp-framework\\shared\\icon\\icon-linkedin.ts", lineNumber: 29 });
})();

// src/app/@lcp-framework/shared/icon/icon-facebook.ts
var _c016 = ["template"];
function IconFacebookComponent_ng_template_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(0, "svg", 1);
    \u0275\u0275element(1, "path", 2);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275property("ngClass", ctx_r0.class);
  }
}
var _IconFacebookComponent = class _IconFacebookComponent {
  constructor(viewContainerRef) {
    this.viewContainerRef = viewContainerRef;
    this.class = "";
  }
  ngOnInit() {
    this.viewContainerRef.createEmbeddedView(this.template);
    this.viewContainerRef.element.nativeElement.remove();
  }
};
_IconFacebookComponent.\u0275fac = function IconFacebookComponent_Factory(t) {
  return new (t || _IconFacebookComponent)(\u0275\u0275directiveInject(ViewContainerRef));
};
_IconFacebookComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _IconFacebookComponent, selectors: [["icon-facebook"]], viewQuery: function IconFacebookComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c016, 7);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.template = _t.first);
  }
}, inputs: { class: "class" }, standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 2, vars: 0, consts: [["template", ""], ["xmlns", "http://www.w3.org/2000/svg", "width", "16", "height", "16", "viewBox", "0 0 24 24", "fill", "none", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linecap", "round", "stroke-linejoin", "round", 3, "ngClass"], ["d", "M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"]], template: function IconFacebookComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, IconFacebookComponent_ng_template_0_Template, 2, 1, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
  }
}, dependencies: [CommonModule, NgClass], encapsulation: 2 });
var IconFacebookComponent = _IconFacebookComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(IconFacebookComponent, { className: "IconFacebookComponent", filePath: "src\\app\\@lcp-framework\\shared\\icon\\icon-facebook.ts", lineNumber: 27 });
})();

// src/app/@lcp-framework/shared/icon/icon-github.ts
var _c017 = ["template"];
function IconGithubComponent_ng_template_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(0, "svg", 1);
    \u0275\u0275element(1, "path", 2);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275property("ngClass", ctx_r0.class);
  }
}
var _IconGithubComponent = class _IconGithubComponent {
  constructor(viewContainerRef) {
    this.viewContainerRef = viewContainerRef;
    this.class = "";
  }
  ngOnInit() {
    this.viewContainerRef.createEmbeddedView(this.template);
    this.viewContainerRef.element.nativeElement.remove();
  }
};
_IconGithubComponent.\u0275fac = function IconGithubComponent_Factory(t) {
  return new (t || _IconGithubComponent)(\u0275\u0275directiveInject(ViewContainerRef));
};
_IconGithubComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _IconGithubComponent, selectors: [["icon-github"]], viewQuery: function IconGithubComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c017, 7);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.template = _t.first);
  }
}, inputs: { class: "class" }, standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 2, vars: 0, consts: [["template", ""], ["xmlns", "http://www.w3.org/2000/svg", "width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linecap", "round", "stroke-linejoin", "round", 3, "ngClass"], ["d", "M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"]], template: function IconGithubComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, IconGithubComponent_ng_template_0_Template, 2, 1, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
  }
}, dependencies: [CommonModule, NgClass], encapsulation: 2 });
var IconGithubComponent = _IconGithubComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(IconGithubComponent, { className: "IconGithubComponent", filePath: "src\\app\\@lcp-framework\\shared\\icon\\icon-github.ts", lineNumber: 29 });
})();

// src/app/@lcp-framework/shared/icon/icon-lock-dots-in-refresh.ts
var _c018 = ["template"];
function IconLockDotsInRefreshComponent_ng_template_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(0, "svg", 1);
    \u0275\u0275element(1, "path", 2)(2, "path", 3);
    \u0275\u0275elementStart(3, "g", 4);
    \u0275\u0275element(4, "path", 5)(5, "path", 6);
    \u0275\u0275elementStart(6, "g", 7);
    \u0275\u0275element(7, "path", 8)(8, "path", 9)(9, "path", 10);
    \u0275\u0275elementEnd()()();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275property("ngClass", ctx_r0.class);
  }
}
var _IconLockDotsInRefreshComponent = class _IconLockDotsInRefreshComponent {
  constructor(viewContainerRef) {
    this.viewContainerRef = viewContainerRef;
    this.class = "";
  }
  ngOnInit() {
    this.viewContainerRef.createEmbeddedView(this.template);
    this.viewContainerRef.element.nativeElement.remove();
  }
};
_IconLockDotsInRefreshComponent.\u0275fac = function IconLockDotsInRefreshComponent_Factory(t) {
  return new (t || _IconLockDotsInRefreshComponent)(\u0275\u0275directiveInject(ViewContainerRef));
};
_IconLockDotsInRefreshComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _IconLockDotsInRefreshComponent, selectors: [["icon-lock-dots-in-refresh"]], viewQuery: function IconLockDotsInRefreshComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c018, 7);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.template = _t.first);
  }
}, inputs: { class: "class" }, standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 2, vars: 0, consts: [["template", ""], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 3, "ngClass"], ["d", "M12.0789 3V2.25V3ZM3.67981 11.3333H2.92981H3.67981ZM3.67981 13L3.15157 13.5324C3.44398 13.8225 3.91565 13.8225 4.20805 13.5324L3.67981 13ZM5.88787 11.8657C6.18191 11.574 6.18377 11.0991 5.89203 10.8051C5.60029 10.511 5.12542 10.5092 4.83138 10.8009L5.88787 11.8657ZM2.52824 10.8009C2.2342 10.5092 1.75933 10.511 1.46759 10.8051C1.17585 11.0991 1.17772 11.574 1.47176 11.8657L2.52824 10.8009ZM18.6156 7.39279C18.8325 7.74565 19.2944 7.85585 19.6473 7.63892C20.0001 7.42199 20.1103 6.96007 19.8934 6.60721L18.6156 7.39279ZM12.0789 2.25C7.03155 2.25 2.92981 6.3112 2.92981 11.3333H4.42981C4.42981 7.15072 7.84884 3.75 12.0789 3.75V2.25ZM2.92981 11.3333L2.92981 13H4.42981L4.42981 11.3333H2.92981ZM4.20805 13.5324L5.88787 11.8657L4.83138 10.8009L3.15157 12.4676L4.20805 13.5324ZM4.20805 12.4676L2.52824 10.8009L1.47176 11.8657L3.15157 13.5324L4.20805 12.4676ZM19.8934 6.60721C18.287 3.99427 15.3873 2.25 12.0789 2.25V3.75C14.8484 3.75 17.2727 5.20845 18.6156 7.39279L19.8934 6.60721Z", "fill", "currentColor"], ["opacity", "0.5", "d", "M11.8825 21V21.75V21ZM20.3137 12.6667H21.0637H20.3137ZM20.3137 11L20.8409 10.4666C20.5487 10.1778 20.0786 10.1778 19.7864 10.4666L20.3137 11ZM18.1002 12.1333C17.8056 12.4244 17.8028 12.8993 18.094 13.1939C18.3852 13.4885 18.86 13.4913 19.1546 13.2001L18.1002 12.1333ZM21.4727 13.2001C21.7673 13.4913 22.2421 13.4885 22.5333 13.1939C22.8245 12.8993 22.8217 12.4244 22.5271 12.1332L21.4727 13.2001ZM5.31769 16.6061C5.10016 16.2536 4.63806 16.1442 4.28557 16.3618C3.93307 16.5793 3.82366 17.0414 4.0412 17.3939L5.31769 16.6061ZM11.8825 21.75C16.9448 21.75 21.0637 17.6915 21.0637 12.6667H19.5637C19.5637 16.8466 16.133 20.25 11.8825 20.25V21.75ZM21.0637 12.6667V11H19.5637V12.6667H21.0637ZM19.7864 10.4666L18.1002 12.1333L19.1546 13.2001L20.8409 11.5334L19.7864 10.4666ZM19.7864 11.5334L21.4727 13.2001L22.5271 12.1332L20.8409 10.4666L19.7864 11.5334ZM4.0412 17.3939C5.65381 20.007 8.56379 21.75 11.8825 21.75V20.25C9.09999 20.25 6.6656 18.7903 5.31769 16.6061L4.0412 17.3939Z", "fill", "currentColor"], ["transform", "scale(0.5) translate(12, 12)"], ["d", "M2 16C2 13.1716 2 11.7574 2.87868 10.8787C3.75736 10 5.17157 10 8 10H16C18.8284 10 20.2426 10 21.1213 10.8787C22 11.7574 22 13.1716 22 16C22 18.8284 22 20.2426 21.1213 21.1213C20.2426 22 18.8284 22 16 22H8C5.17157 22 3.75736 22 2.87868 21.1213C2 20.2426 2 18.8284 2 16Z", "stroke", "currentColor", "stroke-width", "1.5"], ["opacity", "0.5", "d", "M6 10V8C6 4.68629 8.68629 2 12 2C15.3137 2 18 4.68629 18 8V10", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linecap", "round"], ["opacity", "0.5"], ["d", "M9 16C9 16.5523 8.55228 17 8 17C7.44772 17 7 16.5523 7 16C7 15.4477 7.44772 15 8 15C8.55228 15 9 15.4477 9 16Z", "fill", "currentColor"], ["d", "M13 16C13 16.5523 12.5523 17 12 17C11.4477 17 11 16.5523 11 16C11 15.4477 11.4477 15 12 15C12.5523 15 13 15.4477 13 16Z", "fill", "currentColor"], ["d", "M17 16C17 16.5523 16.5523 17 16 17C15.4477 17 15 16.5523 15 16C15 15.4477 15.4477 15 16 15C16.5523 15 17 15.4477 17 16Z", "fill", "currentColor"]], template: function IconLockDotsInRefreshComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, IconLockDotsInRefreshComponent_ng_template_0_Template, 10, 1, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
  }
}, dependencies: [CommonModule, NgClass], encapsulation: 2 });
var IconLockDotsInRefreshComponent = _IconLockDotsInRefreshComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(IconLockDotsInRefreshComponent, { className: "IconLockDotsInRefreshComponent", filePath: "src\\app\\@lcp-framework\\shared\\icon\\icon-lock-dots-in-refresh.ts", lineNumber: 51 });
})();

// src/app/@lcp-framework/service/common/country-timezone.service.ts
var _CountryTimezoneService = class _CountryTimezoneService {
  constructor() {
    this.countryTimezones = {
      US: "+05:30",
      // Replace with actual data
      CA: "+06:00"
      // Add more country codes and their corresponding timezones
    };
  }
  getCountryTimezones() {
    return this.countryTimezones;
  }
  getTimezoneByCountryCode(countryCode) {
    return this.countryTimezones[countryCode] || "";
  }
};
_CountryTimezoneService.\u0275fac = function CountryTimezoneService_Factory(t) {
  return new (t || _CountryTimezoneService)();
};
_CountryTimezoneService.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _CountryTimezoneService, factory: _CountryTimezoneService.\u0275fac, providedIn: "root" });
var CountryTimezoneService = _CountryTimezoneService;

// src/app/@lcp-framework/pages/profile/profile.component.ts
function ProfileComponent_div_20_div_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 36);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "profile_form_first_name_req_msg"), " ");
  }
}
function ProfileComponent_div_20_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div");
    \u0275\u0275template(1, ProfileComponent_div_20_div_1_Template, 3, 3, "div", 35);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    let tmp_1_0;
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", (tmp_1_0 = ctx_r0.profileForm.get("first_name")) == null ? null : tmp_1_0.errors == null ? null : tmp_1_0.errors["required"]);
  }
}
function ProfileComponent_div_26_div_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 36);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "profile_form_last_name_req_msg"), " ");
  }
}
function ProfileComponent_div_26_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div");
    \u0275\u0275template(1, ProfileComponent_div_26_div_1_Template, 3, 3, "div", 35);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    let tmp_1_0;
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", (tmp_1_0 = ctx_r0.profileForm.get("last_name")) == null ? null : tmp_1_0.errors == null ? null : tmp_1_0.errors["required"]);
  }
}
function ProfileComponent_div_32_div_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 36);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(2, 1, "profile_form_dob_req_msg"));
  }
}
function ProfileComponent_div_32_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div");
    \u0275\u0275template(1, ProfileComponent_div_32_div_1_Template, 3, 3, "div", 35);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    let tmp_1_0;
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", (tmp_1_0 = ctx_r0.profileForm.get("dob")) == null ? null : tmp_1_0.errors == null ? null : tmp_1_0.errors["required"]);
  }
}
function ProfileComponent_option_41_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "option", 37);
    \u0275\u0275text(1);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const code_r2 = ctx.$implicit;
    \u0275\u0275property("value", code_r2);
    \u0275\u0275advance();
    \u0275\u0275textInterpolate(code_r2);
  }
}
function ProfileComponent_div_42_div_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 36);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "profile_form_country_code_req_msg"), " ");
  }
}
function ProfileComponent_div_42_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div");
    \u0275\u0275template(1, ProfileComponent_div_42_div_1_Template, 3, 3, "div", 35);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    let tmp_1_0;
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", (tmp_1_0 = ctx_r0.profileForm.get("country_code")) == null ? null : tmp_1_0.errors == null ? null : tmp_1_0.errors["required"]);
  }
}
function ProfileComponent_div_48_div_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 36);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(2, 1, "profile_form_phnum_req_msg"));
  }
}
function ProfileComponent_div_48_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div");
    \u0275\u0275template(1, ProfileComponent_div_48_div_1_Template, 3, 3, "div", 35);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    let tmp_1_0;
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", (tmp_1_0 = ctx_r0.profileForm.get("phone_number")) == null ? null : tmp_1_0.errors == null ? null : tmp_1_0.errors["required"]);
  }
}
function ProfileComponent_div_66_div_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 36);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(2, 1, "profile_form_gender_req_msg"));
  }
}
function ProfileComponent_div_66_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div");
    \u0275\u0275template(1, ProfileComponent_div_66_div_1_Template, 3, 3, "div", 35);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    let tmp_1_0;
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", (tmp_1_0 = ctx_r0.profileForm.get("gender")) == null ? null : tmp_1_0.errors == null ? null : tmp_1_0.errors["required"]);
  }
}
function ProfileComponent_div_72_div_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 36);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "profile_form_timezone_req_msg"), " ");
  }
}
function ProfileComponent_div_72_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div");
    \u0275\u0275template(1, ProfileComponent_div_72_div_1_Template, 3, 3, "div", 35);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    let tmp_1_0;
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", (tmp_1_0 = ctx_r0.profileForm.get("user_time_zone")) == null ? null : tmp_1_0.errors == null ? null : tmp_1_0.errors["required"]);
  }
}
function ProfileComponent_div_78_div_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 36);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(2, 1, "profile_form_address_req_msg"));
  }
}
function ProfileComponent_div_78_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div");
    \u0275\u0275template(1, ProfileComponent_div_78_div_1_Template, 3, 3, "div", 35);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    let tmp_1_0;
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", (tmp_1_0 = ctx_r0.profileForm.get("address")) == null ? null : tmp_1_0.errors == null ? null : tmp_1_0.errors["required"]);
  }
}
var _ProfileComponent = class _ProfileComponent {
  constructor(apiService, formBuilder, countryTimezoneService, datepipe, toastr, translate) {
    this.apiService = apiService;
    this.formBuilder = formBuilder;
    this.countryTimezoneService = countryTimezoneService;
    this.datepipe = datepipe;
    this.toastr = toastr;
    this.translate = translate;
    this.apiUrl = environment.apiUrl;
    this.countryCodes = [];
    this.timezones = {};
    this.profilePicture = null;
    this.profileForm = this.formBuilder.group({
      first_name: ["", Validators.required],
      last_name: ["", Validators.required],
      dob: ["", Validators.required],
      country_code: ["", Validators.required],
      phone_number: ["", Validators.required],
      gender: ["", Validators.required],
      user_time_zone: ["", Validators.required],
      address: ["", Validators.required]
    });
  }
  ngOnInit() {
    this.fetchUserProfile();
    this.fetchCountryTimezones();
  }
  fetchCountryTimezones() {
    this.timezones = this.countryTimezoneService.getCountryTimezones();
    this.countryCodes = Object.keys(this.timezones);
  }
  fetchUserProfile() {
    this.apiService.getUserProfile().subscribe((response) => {
      if (response.code === 200 && response.status) {
        const userData = response.data;
        this.profile_pic = userData.profile_pic;
        localStorage.setItem("profile_pic", this.profile_pic);
        this.profileForm.patchValue({
          first_name: userData.first_name,
          last_name: userData.last_name,
          dob: this.datepipe.transform(userData.dob, "yyyy-MM-dd"),
          country_code: userData.country_code,
          phone_number: userData.phone_number,
          gender: userData.gender,
          user_time_zone: userData.user_time_zone,
          address: userData.address
        });
      } else {
        const key = response.message;
        const errorMessage = this.translate.instant(key);
        this.toastr.error(errorMessage, "Error");
      }
    }, (error) => {
      const key = "error";
      const errorMessage = this.translate.instant(key);
      this.toastr.error(errorMessage, "Error");
    });
  }
  updateProfile() {
    if (this.profileForm.valid) {
      const formData = this.profileForm.value;
      this.apiService.updateUserProfile(formData).subscribe((response) => {
        const key = "record_updated_successfully";
        const successMessage = this.translate.instant(key);
        this.toastr.success(successMessage);
        this.fetchUserProfile();
      }, (error) => {
        const key = "error";
        const errorMessage = this.translate.instant(key);
        this.toastr.error(errorMessage, "Error");
      });
    } else {
      this.profileForm.markAllAsTouched();
    }
  }
  onCountryCodeChange() {
    const countryCode = this.profileForm.get("country_code")?.value;
    const timezone = this.countryTimezoneService.getTimezoneByCountryCode(countryCode);
    this.profileForm.get("user_time_zone")?.setValue(timezone);
  }
  onProfilePictureSelected(event) {
    const inputElement = event.target;
    if (inputElement.files && inputElement.files.length > 0) {
      this.profilePicture = inputElement.files[0];
    }
  }
  uploadProfilePicture() {
    if (this.profilePicture) {
      this.apiService.uploadProfilePicture(this.profilePicture).subscribe((response) => {
        const key = "record_inserted_successfully";
        const successMessage = this.translate.instant(key);
        this.toastr.success(successMessage);
        this.fetchUserProfile();
      }, (error) => {
        const key = "error";
        const errorMessage = this.translate.instant(key);
        this.toastr.error(errorMessage, "Error");
      });
    }
  }
};
_ProfileComponent.\u0275fac = function ProfileComponent_Factory(t) {
  return new (t || _ProfileComponent)(\u0275\u0275directiveInject(ProfileApiService), \u0275\u0275directiveInject(FormBuilder), \u0275\u0275directiveInject(CountryTimezoneService), \u0275\u0275directiveInject(DatePipe), \u0275\u0275directiveInject(ToastrService), \u0275\u0275directiveInject(TranslateService));
};
_ProfileComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _ProfileComponent, selectors: [["ng-component"]], standalone: true, features: [\u0275\u0275ProvidersFeature([DatePipe]), \u0275\u0275StandaloneFeature], decls: 83, vars: 60, consts: [[1, "pt-0"], [1, "mb-5", "flex", "items-center", "justify-between"], ["appDynamicFontSize", "subtitle", 1, "font-semibold", "dark:text-white-light"], [1, "mb-5", "rounded-md", "border", "border-[#ebedf2]", "bg-white", "p-4", "dark:border-[#191e3a]", "dark:bg-[#0e1726]", 3, "formGroup"], [1, "flex", "flex-col", "sm:flex-row"], [1, "mb-5", "w-full", "sm:w-2/12", "ltr:sm:mr-4", "rtl:sm:ml-4"], ["alt", "", 1, "mx-auto", "h-20", "w-20", "rounded-full", "object-cover", "md:h-32", "md:w-32", 3, "src"], ["type", "file", "accept", "image/*", 1, "mt-2", 3, "change"], ["type", "button", "appDynamicFontSize", "body", 1, "btn", "btn-primary", "mt-2", 3, "click"], [1, "grid", "flex-1", "grid-cols-1", "gap-5", "sm:grid-cols-2"], ["for", "first_name", 1, "form-label"], ["type", "text", "id", "first_name", "formControlName", "first_name", 1, "form-input"], [4, "ngIf"], ["for", "last_name", 1, "form-label"], ["type", "text", "id", "last_name", "formControlName", "last_name", 1, "form-input"], ["for", "dob", 1, "form-label"], ["type", "date", "id", "dob", "formControlName", "dob", 1, "form-input"], ["for", "country_code", 1, "form-label"], ["id", "country_code", "formControlName", "country_code", 1, "form-input", 3, "change"], ["value", "", "disabled", ""], [3, "value", 4, "ngFor", "ngForOf"], ["for", "phone_number", 1, "form-label"], ["type", "text", "id", "phone_number", "formControlName", "phone_number", 1, "form-input"], ["for", "gender", 1, "form-label"], ["id", "gender", "formControlName", "gender", 1, "form-select"], ["value", ""], ["value", "male"], ["value", "female"], ["value", "other"], ["for", "user_time_zone", 1, "form-label"], ["type", "text", "id", "user_time_zone", "formControlName", "user_time_zone", 1, "form-input", 3, "readonly"], ["for", "address", 1, "form-label"], ["id", "address", "rows", "3", "formControlName", "address", 1, "form-input"], [1, "mt-3", "sm:col-span-2"], ["type", "button", "appDynamicFontSize", "body", 1, "btn", "btn-primary", 3, "click"], ["class", "text-red-500", 4, "ngIf"], [1, "text-red-500"], [3, "value"]], template: function ProfileComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 0)(1, "div", 1)(2, "h5", 2);
    \u0275\u0275text(3);
    \u0275\u0275pipe(4, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(5, "div")(6, "form", 3)(7, "div", 4)(8, "div", 5);
    \u0275\u0275element(9, "img", 6);
    \u0275\u0275elementStart(10, "input", 7);
    \u0275\u0275listener("change", function ProfileComponent_Template_input_change_10_listener($event) {
      return ctx.onProfilePictureSelected($event);
    });
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(11, "button", 8);
    \u0275\u0275listener("click", function ProfileComponent_Template_button_click_11_listener() {
      return ctx.uploadProfilePicture();
    });
    \u0275\u0275text(12);
    \u0275\u0275pipe(13, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(14, "div", 9)(15, "div")(16, "label", 10);
    \u0275\u0275text(17);
    \u0275\u0275pipe(18, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275element(19, "input", 11);
    \u0275\u0275template(20, ProfileComponent_div_20_Template, 2, 1, "div", 12);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(21, "div")(22, "label", 13);
    \u0275\u0275text(23);
    \u0275\u0275pipe(24, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275element(25, "input", 14);
    \u0275\u0275template(26, ProfileComponent_div_26_Template, 2, 1, "div", 12);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(27, "div")(28, "label", 15);
    \u0275\u0275text(29);
    \u0275\u0275pipe(30, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275element(31, "input", 16);
    \u0275\u0275template(32, ProfileComponent_div_32_Template, 2, 1, "div", 12);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(33, "div")(34, "label", 17);
    \u0275\u0275text(35);
    \u0275\u0275pipe(36, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(37, "select", 18);
    \u0275\u0275listener("change", function ProfileComponent_Template_select_change_37_listener() {
      return ctx.onCountryCodeChange();
    });
    \u0275\u0275elementStart(38, "option", 19);
    \u0275\u0275text(39);
    \u0275\u0275pipe(40, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275template(41, ProfileComponent_option_41_Template, 2, 2, "option", 20);
    \u0275\u0275elementEnd();
    \u0275\u0275template(42, ProfileComponent_div_42_Template, 2, 1, "div", 12);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(43, "div")(44, "label", 21);
    \u0275\u0275text(45);
    \u0275\u0275pipe(46, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275element(47, "input", 22);
    \u0275\u0275template(48, ProfileComponent_div_48_Template, 2, 1, "div", 12);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(49, "div")(50, "label", 23);
    \u0275\u0275text(51);
    \u0275\u0275pipe(52, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(53, "select", 24)(54, "option", 25);
    \u0275\u0275text(55);
    \u0275\u0275pipe(56, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(57, "option", 26);
    \u0275\u0275text(58);
    \u0275\u0275pipe(59, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(60, "option", 27);
    \u0275\u0275text(61);
    \u0275\u0275pipe(62, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(63, "option", 28);
    \u0275\u0275text(64);
    \u0275\u0275pipe(65, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275template(66, ProfileComponent_div_66_Template, 2, 1, "div", 12);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(67, "div")(68, "label", 29);
    \u0275\u0275text(69);
    \u0275\u0275pipe(70, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275element(71, "input", 30);
    \u0275\u0275template(72, ProfileComponent_div_72_Template, 2, 1, "div", 12);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(73, "div")(74, "label", 31);
    \u0275\u0275text(75);
    \u0275\u0275pipe(76, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275element(77, "textarea", 32);
    \u0275\u0275template(78, ProfileComponent_div_78_Template, 2, 1, "div", 12);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(79, "div", 33)(80, "button", 34);
    \u0275\u0275listener("click", function ProfileComponent_Template_button_click_80_listener() {
      return ctx.updateProfile();
    });
    \u0275\u0275text(81);
    \u0275\u0275pipe(82, "translate");
    \u0275\u0275elementEnd()()()()()()();
  }
  if (rf & 2) {
    let tmp_5_0;
    let tmp_7_0;
    let tmp_9_0;
    let tmp_13_0;
    let tmp_15_0;
    let tmp_21_0;
    let tmp_24_0;
    let tmp_26_0;
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(4, 28, "title_profile"));
    \u0275\u0275advance(3);
    \u0275\u0275property("formGroup", ctx.profileForm);
    \u0275\u0275advance(3);
    \u0275\u0275property("src", ctx.profile_pic ? ctx.apiUrl + "/" + ctx.profile_pic : "assets/images/user.png", \u0275\u0275sanitizeUrl);
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(13, 30, "profile_form_pic_upload"), " ");
    \u0275\u0275advance(5);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(18, 32, "profile_form_first_name"));
    \u0275\u0275advance(3);
    \u0275\u0275property("ngIf", ((tmp_5_0 = ctx.profileForm.get("first_name")) == null ? null : tmp_5_0.invalid) && (((tmp_5_0 = ctx.profileForm.get("first_name")) == null ? null : tmp_5_0.dirty) || ((tmp_5_0 = ctx.profileForm.get("first_name")) == null ? null : tmp_5_0.touched)));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(24, 34, "profile_form_last_name"));
    \u0275\u0275advance(3);
    \u0275\u0275property("ngIf", ((tmp_7_0 = ctx.profileForm.get("last_name")) == null ? null : tmp_7_0.invalid) && (((tmp_7_0 = ctx.profileForm.get("last_name")) == null ? null : tmp_7_0.dirty) || ((tmp_7_0 = ctx.profileForm.get("last_name")) == null ? null : tmp_7_0.touched)));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(30, 36, "profile_form_dob"));
    \u0275\u0275advance(3);
    \u0275\u0275property("ngIf", ((tmp_9_0 = ctx.profileForm.get("dob")) == null ? null : tmp_9_0.invalid) && (((tmp_9_0 = ctx.profileForm.get("dob")) == null ? null : tmp_9_0.dirty) || ((tmp_9_0 = ctx.profileForm.get("dob")) == null ? null : tmp_9_0.touched)));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(36, 38, "profile_form_country_code"));
    \u0275\u0275advance(4);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(40, 40, "select_any"));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngForOf", ctx.countryCodes);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ((tmp_13_0 = ctx.profileForm.get("country_code")) == null ? null : tmp_13_0.invalid) && (((tmp_13_0 = ctx.profileForm.get("country_code")) == null ? null : tmp_13_0.dirty) || ((tmp_13_0 = ctx.profileForm.get("country_code")) == null ? null : tmp_13_0.touched)));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(46, 42, "profile_form_phnum"));
    \u0275\u0275advance(3);
    \u0275\u0275property("ngIf", ((tmp_15_0 = ctx.profileForm.get("phone_number")) == null ? null : tmp_15_0.invalid) && (((tmp_15_0 = ctx.profileForm.get("phone_number")) == null ? null : tmp_15_0.dirty) || ((tmp_15_0 = ctx.profileForm.get("phone_number")) == null ? null : tmp_15_0.touched)));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(52, 44, "profile_form_gender"));
    \u0275\u0275advance(4);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(56, 46, "select_any"));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(59, 48, "profile_form_gender_option_1"));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(62, 50, "profile_form_gender_option_2"));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(65, 52, "profile_form_gender_option_3"));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ((tmp_21_0 = ctx.profileForm.get("gender")) == null ? null : tmp_21_0.invalid) && (((tmp_21_0 = ctx.profileForm.get("gender")) == null ? null : tmp_21_0.dirty) || ((tmp_21_0 = ctx.profileForm.get("gender")) == null ? null : tmp_21_0.touched)));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(70, 54, "profile_form_timezone"));
    \u0275\u0275advance(2);
    \u0275\u0275property("readonly", true);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ((tmp_24_0 = ctx.profileForm.get("user_time_zone")) == null ? null : tmp_24_0.invalid) && (((tmp_24_0 = ctx.profileForm.get("user_time_zone")) == null ? null : tmp_24_0.dirty) || ((tmp_24_0 = ctx.profileForm.get("user_time_zone")) == null ? null : tmp_24_0.touched)));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(76, 56, "profile_form_address"));
    \u0275\u0275advance(3);
    \u0275\u0275property("ngIf", ((tmp_26_0 = ctx.profileForm.get("address")) == null ? null : tmp_26_0.invalid) && (((tmp_26_0 = ctx.profileForm.get("address")) == null ? null : tmp_26_0.dirty) || ((tmp_26_0 = ctx.profileForm.get("address")) == null ? null : tmp_26_0.touched)));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(82, 58, "update"), " ");
  }
}, dependencies: [CommonSharedModule, NgForOf, NgIf, \u0275NgNoValidate, NgSelectOption, \u0275NgSelectMultipleOption, DefaultValueAccessor, SelectControlValueAccessor, NgControlStatus, NgControlStatusGroup, DynamicFontSizeDirective, TranslatePipe, ReactiveFormsModule, FormGroupDirective, FormControlName], encapsulation: 2 });
var ProfileComponent = _ProfileComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(ProfileComponent, { className: "ProfileComponent", filePath: "src\\app\\@lcp-framework\\pages\\profile\\profile.component.ts", lineNumber: 38 });
})();

// src/app/@lcp-framework/pages/changepwd/changepwd.component.ts
function ChangePwdComponent_div_15_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 16);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "form_old_pwd_req_msg"), " ");
  }
}
function ChangePwdComponent_div_21_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275text(1, " Password must include at least 8 characters, one uppercase letter, and one special character. ");
    \u0275\u0275elementContainerEnd();
  }
}
function ChangePwdComponent_div_21_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 16);
    \u0275\u0275template(1, ChangePwdComponent_div_21_ng_container_1_Template, 2, 0, "ng-container", 17);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    let tmp_1_0;
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", (tmp_1_0 = ctx_r0.changePasswordForm.get("new_password")) == null ? null : tmp_1_0.errors == null ? null : tmp_1_0.errors["passwordInvalid"]);
  }
}
function ChangePwdComponent_div_27_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 16);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "form_confirm_new_pwd_req_msg"), " ");
  }
}
var _ChangePwdComponent = class _ChangePwdComponent {
  constructor(apiService, formBuilder, toastr, translate) {
    this.apiService = apiService;
    this.formBuilder = formBuilder;
    this.toastr = toastr;
    this.translate = translate;
    this.apiUrl = environment.apiUrl;
    this.changePasswordForm = this.formBuilder.group({
      old_password: ["", Validators.required],
      new_password: ["", [Validators.required, Validators.minLength(8), this.passwordValidator]],
      confirm_new_password: ["", Validators.required]
    }, { validators: this.passwordMatchValidator });
  }
  ngOnInit() {
  }
  // Custom validator to check password pattern
  passwordValidator(control) {
    const value = control.value;
    if (!value) {
      return null;
    }
    const hasUpperCase = /[A-Z]/.test(value);
    const hasSpecialChar = /[!@#$%^&*(),.?":{}|<>]/.test(value);
    const isValid = hasUpperCase && hasSpecialChar;
    return !isValid ? { passwordInvalid: true } : null;
  }
  // Custom validator to check if new password and confirm new password match
  passwordMatchValidator(group) {
    const newPassword = group.get("new_password")?.value;
    const confirmNewPassword = group.get("confirm_new_password")?.value;
    return newPassword === confirmNewPassword ? null : { passwordsMismatch: true };
  }
  // Method to handle password change
  onChangePassword() {
    if (this.changePasswordForm && this.changePasswordForm.errors && this.changePasswordForm.errors["passwordsMismatch"]) {
      const key = "passwords_do_not_match";
      const errorMessage = this.translate.instant(key);
      this.toastr.error(errorMessage, "Error");
      return;
    }
    if (this.changePasswordForm.invalid) {
      this.markAllAsTouched();
      return;
    }
    const formData = {
      old_password: this.changePasswordForm.get("old_password")?.value,
      new_password: this.changePasswordForm.get("new_password")?.value
    };
    this.apiService.changePassword(formData).subscribe((response) => {
      if (response.code == 200) {
        const key = "password_changed_successfully";
        const successMessage = this.translate.instant(key);
        this.toastr.success(successMessage);
        this.changePasswordForm.reset();
      } else {
        this.toastr.error(response.message);
      }
    }, (error) => {
      const key = "error_changing_password";
      const errorMessage = this.translate.instant(key);
      this.toastr.error(errorMessage + error, "Error");
    });
  }
  // Method to mark all form controls as touched
  markAllAsTouched() {
    Object.values(this.changePasswordForm.controls).forEach((control) => {
      control.markAsTouched();
    });
  }
};
_ChangePwdComponent.\u0275fac = function ChangePwdComponent_Factory(t) {
  return new (t || _ChangePwdComponent)(\u0275\u0275directiveInject(ProfileApiService), \u0275\u0275directiveInject(FormBuilder), \u0275\u0275directiveInject(ToastrService), \u0275\u0275directiveInject(TranslateService));
};
_ChangePwdComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _ChangePwdComponent, selectors: [["ng-component"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 36, vars: 19, consts: [[1, "pt-0"], [1, "mb-5", "flex", "items-center", "justify-between"], ["appDynamicFontSize", "subtitle", 1, "font-semibold", "dark:text-white-light"], [1, "mb-5", "rounded-md", "border", "border-[#ebedf2]", "bg-white", "p-4", "dark:border-[#191e3a]", "dark:bg-[#0e1726]", 3, "ngSubmit", "formGroup"], [1, "flex", "flex-col", "sm:flex-row"], [1, "grid", "flex-1", "gap-5", "sm:grid-cols-2"], ["for", "old_password", 1, "form-label"], ["type", "password", "formControlName", "old_password", "id", "old_password", 1, "form-input"], ["class", "text-red-500", 4, "ngIf"], ["for", "new_password", 1, "form-label"], ["type", "password", "formControlName", "new_password", "id", "new_password", 1, "form-input"], ["for", "confirm_new_password", 1, "form-label"], ["type", "password", "formControlName", "confirm_new_password", "id", "confirm_new_password", 1, "form-input"], [1, "mt-5", "flex", "flex-col", "items-center"], ["appDynamicFontSize", "body", "type", "submit", 1, "btn", "btn-primary"], [1, "mt-3", "text-center", "text-sm", "text-gray-500", "dark:text-gray-400"], [1, "text-red-500"], [4, "ngIf"]], template: function ChangePwdComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div")(1, "div", 0)(2, "div", 1)(3, "h5", 2);
    \u0275\u0275text(4);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(6, "div")(7, "form", 3);
    \u0275\u0275listener("ngSubmit", function ChangePwdComponent_Template_form_ngSubmit_7_listener() {
      return ctx.onChangePassword();
    });
    \u0275\u0275elementStart(8, "div", 4)(9, "div", 5)(10, "div")(11, "label", 6);
    \u0275\u0275text(12);
    \u0275\u0275pipe(13, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275element(14, "input", 7);
    \u0275\u0275template(15, ChangePwdComponent_div_15_Template, 3, 3, "div", 8);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(16, "div")(17, "label", 9);
    \u0275\u0275text(18);
    \u0275\u0275pipe(19, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275element(20, "input", 10);
    \u0275\u0275template(21, ChangePwdComponent_div_21_Template, 2, 1, "div", 8);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(22, "div")(23, "label", 11);
    \u0275\u0275text(24);
    \u0275\u0275pipe(25, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275element(26, "input", 12);
    \u0275\u0275template(27, ChangePwdComponent_div_27_Template, 3, 3, "div", 8);
    \u0275\u0275elementEnd()()();
    \u0275\u0275elementStart(28, "div", 13)(29, "button", 14);
    \u0275\u0275text(30);
    \u0275\u0275pipe(31, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(32, "p", 15)(33, "strong");
    \u0275\u0275text(34, "Note:");
    \u0275\u0275elementEnd();
    \u0275\u0275text(35, " Password must contain at least 8 characters, including one uppercase letter and one special character. ");
    \u0275\u0275elementEnd()()()()()();
  }
  if (rf & 2) {
    let tmp_3_0;
    let tmp_5_0;
    let tmp_7_0;
    \u0275\u0275advance(4);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(5, 9, "title_change_pwd"));
    \u0275\u0275advance(3);
    \u0275\u0275property("formGroup", ctx.changePasswordForm);
    \u0275\u0275advance(5);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(13, 11, "form_label_old_pwd"));
    \u0275\u0275advance(3);
    \u0275\u0275property("ngIf", ((tmp_3_0 = ctx.changePasswordForm.get("old_password")) == null ? null : tmp_3_0.invalid) && ((tmp_3_0 = ctx.changePasswordForm.get("old_password")) == null ? null : tmp_3_0.touched));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(19, 13, "form_label_new_pwd"));
    \u0275\u0275advance(3);
    \u0275\u0275property("ngIf", ((tmp_5_0 = ctx.changePasswordForm.get("new_password")) == null ? null : tmp_5_0.invalid) && ((tmp_5_0 = ctx.changePasswordForm.get("new_password")) == null ? null : tmp_5_0.touched));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(25, 15, "form_label_confirm_new_pwd"));
    \u0275\u0275advance(3);
    \u0275\u0275property("ngIf", ((tmp_7_0 = ctx.changePasswordForm.get("confirm_new_password")) == null ? null : tmp_7_0.invalid) && ((tmp_7_0 = ctx.changePasswordForm.get("confirm_new_password")) == null ? null : tmp_7_0.touched));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(31, 17, "form_submit_btn"), " ");
  }
}, dependencies: [CommonSharedModule, NgIf, \u0275NgNoValidate, DefaultValueAccessor, NgControlStatus, NgControlStatusGroup, DynamicFontSizeDirective, TranslatePipe, ReactiveFormsModule, FormGroupDirective, FormControlName], encapsulation: 2 });
var ChangePwdComponent = _ChangePwdComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(ChangePwdComponent, { className: "ChangePwdComponent", filePath: "src\\app\\@lcp-framework\\pages\\changepwd\\changepwd.component.ts", lineNumber: 15 });
})();

// src/app/@lcp-framework/pages/forgetpwd/forgetpwd.component.ts
function ForgetpwdComponent_div_17_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 15);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "form_email_valid_msg"), " ");
  }
}
function ForgetpwdComponent_div_18_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 15);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "form_email_req_msg"), " ");
  }
}
function ForgetpwdComponent_div_19_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 15);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "form_email_valid_msg"), " ");
  }
}
function ForgetpwdComponent_app_loader_29_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "app-loader");
  }
}
var _ForgetpwdComponent = class _ForgetpwdComponent {
  constructor(formBuilder, http, translate, storeData, router, appSetting, toastr, authService, profileApiService, languageService) {
    this.formBuilder = formBuilder;
    this.http = http;
    this.translate = translate;
    this.storeData = storeData;
    this.router = router;
    this.appSetting = appSetting;
    this.toastr = toastr;
    this.authService = authService;
    this.profileApiService = profileApiService;
    this.languageService = languageService;
    this.companyId = 1;
    this.email = "";
    this.loading = false;
    this.isSubmitted = false;
    this.initStore();
    this.fgForm = this.formBuilder.group({
      email: ["", [Validators.required, Validators.pattern(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/)]]
    });
  }
  ngOnInit() {
    this.fgForm.controls["email"].statusChanges.subscribe((status) => {
      if (this.isSubmitted) {
        this.fgForm.controls["email"].markAsTouched();
      }
    });
  }
  get formControls() {
    return this.fgForm.controls;
  }
  get emailControl() {
    return this.fgForm.get("email");
  }
  initStore() {
    return __async(this, null, function* () {
      this.storeData.select((d) => d.index).subscribe((d) => {
        this.store = d;
      });
    });
  }
  changeLanguage(item) {
    this.translate.use(item.code);
    this.appSetting.toggleLanguage(item);
    if (this.store.locale?.toLowerCase() === "ae") {
      this.storeData.dispatch({ type: "toggleRTL", payload: "rtl" });
      this.languageService.serviceChangeLanguage(this.companyId, item.code.toLowerCase());
    } else {
      this.storeData.dispatch({ type: "toggleRTL", payload: "ltr" });
      this.languageService.serviceChangeLanguage(this.companyId, item.code.toLowerCase());
    }
  }
  onSubmit() {
    this.isSubmitted = true;
    if (this.fgForm.controls["email"].hasError("pattern")) {
      const key = "form_email_valid_msg";
      const errorMessage = this.translate.instant(key);
      this.toastr.error(errorMessage, "Error");
      return;
    }
    if (this.fgForm.invalid) {
      this.fgForm.markAllAsTouched();
      return;
    }
    this.loading = true;
    const fgpEmail = this.fgForm.value;
    this.profileApiService.forgetPasswordMail(fgpEmail.email).subscribe({
      next: (response) => {
        if (response.code === 200 && response.status) {
          const key = response.message;
          const successMessage = this.translate.instant(key);
          this.toastr.success(successMessage);
          const fwdMailData = response.data;
          this.router.navigate(["/reset-password", fwdMailData.uuid, fwdMailData.id]);
        } else {
          if (response.code == 405 || response.code == 421) {
            const key = "email_is_not_registered_please_try_again";
            const errorMessage = this.translate.instant(key);
            this.toastr.error(errorMessage, "Error");
          }
        }
      },
      error: (error) => {
        const key = "an_error_occurred_during_foreget_password";
        const errorMessage = this.translate.instant(key);
        this.toastr.error(errorMessage, "Error");
        console.error(error);
      },
      complete: () => {
        this.loading = false;
        console.log("password request completed");
      }
    });
  }
};
_ForgetpwdComponent.\u0275fac = function ForgetpwdComponent_Factory(t) {
  return new (t || _ForgetpwdComponent)(\u0275\u0275directiveInject(FormBuilder), \u0275\u0275directiveInject(HttpClient), \u0275\u0275directiveInject(TranslateService), \u0275\u0275directiveInject(Store), \u0275\u0275directiveInject(Router), \u0275\u0275directiveInject(AppService), \u0275\u0275directiveInject(ToastrService), \u0275\u0275directiveInject(AuthService), \u0275\u0275directiveInject(ProfileApiService), \u0275\u0275directiveInject(LanguageService));
};
_ForgetpwdComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _ForgetpwdComponent, selectors: [["app-forgetpwd"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 30, vars: 25, consts: [[1, "mb-10"], [1, "text-3xl", "uppercase", "!leading-snug", "md:text-4xl"], [1, "text-base", "font-bold", "leading-normal", "text-white-dark"], ["autocomplete", "off", 1, "space-y-5", "pb-32", "dark:text-white", 3, "ngSubmit", "formGroup"], ["for", "Email"], [1, "relative", "text-white-dark"], ["autocomplete", "off", "formControlName", "email", "id", "Email", "type", "email", 1, "form-input", "ps-10", "placeholder:text-white-dark", 3, "placeholder"], [1, "absolute", "start-4", "top-1/2", "-translate-y-1/2"], [1, "fa-solid", "fa-envelope"], ["class", "text-danger", 4, "ngIf"], ["type", "submit", 1, "btn", "btn-gradient", "!mt-6", "w-full", "border-0", "uppercase", "shadow-[0_10px_20px_-10px_rgba(67,97,238,0.44)]"], [1, "text-center"], [1, "text-white-dark", "hover:text-blue-500"], ["routerLink", "/login", 1, "text-white-dark", "hover:text-blue-500"], [4, "ngIf"], [1, "text-danger"]], template: function ForgetpwdComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 0)(1, "h1", 1);
    \u0275\u0275text(2);
    \u0275\u0275pipe(3, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(4, "p", 2);
    \u0275\u0275text(5);
    \u0275\u0275pipe(6, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(7, "form", 3);
    \u0275\u0275listener("ngSubmit", function ForgetpwdComponent_Template_form_ngSubmit_7_listener() {
      return ctx.onSubmit();
    });
    \u0275\u0275elementStart(8, "div")(9, "label", 4);
    \u0275\u0275text(10);
    \u0275\u0275pipe(11, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(12, "div", 5);
    \u0275\u0275element(13, "input", 6);
    \u0275\u0275pipe(14, "translate");
    \u0275\u0275elementStart(15, "span", 7);
    \u0275\u0275element(16, "i", 8);
    \u0275\u0275elementEnd()();
    \u0275\u0275template(17, ForgetpwdComponent_div_17_Template, 3, 3, "div", 9)(18, ForgetpwdComponent_div_18_Template, 3, 3, "div", 9)(19, ForgetpwdComponent_div_19_Template, 3, 3, "div", 9);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(20, "button", 10);
    \u0275\u0275text(21);
    \u0275\u0275pipe(22, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(23, "div", 11)(24, "span", 12);
    \u0275\u0275text(25, "<");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(26, "a", 13);
    \u0275\u0275text(27);
    \u0275\u0275pipe(28, "translate");
    \u0275\u0275elementEnd()()();
    \u0275\u0275template(29, ForgetpwdComponent_app_loader_29_Template, 1, 0, "app-loader", 14);
  }
  if (rf & 2) {
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(3, 13, "title_forget_password"));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(6, 15, "description_forget_password"));
    \u0275\u0275advance(2);
    \u0275\u0275property("formGroup", ctx.fgForm);
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(11, 17, "form_label_email"));
    \u0275\u0275advance(3);
    \u0275\u0275classProp("is-invalid", ctx.isSubmitted && ctx.fgForm.controls["email"].invalid);
    \u0275\u0275propertyInterpolate("placeholder", \u0275\u0275pipeBind1(14, 19, "form_label_email_placeholder"));
    \u0275\u0275advance(4);
    \u0275\u0275property("ngIf", ctx.isSubmitted && ctx.fgForm.controls["email"].hasError("pattern"));
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx.isSubmitted && ctx.fgForm.controls["email"].hasError("required"));
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx.isSubmitted && ctx.fgForm.controls["email"].hasError("email"));
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(22, 21, "submit"), " ");
    \u0275\u0275advance(6);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(28, 23, "login_link"), " ");
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx.loading);
  }
}, dependencies: [CommonSharedModule, NgIf, \u0275NgNoValidate, DefaultValueAccessor, NgControlStatus, NgControlStatusGroup, RouterLink, TranslatePipe, ReactiveFormsModule, FormGroupDirective, FormControlName, LoaderComponent], data: { animation: [
  trigger("toggleAnimation", [
    transition(":enter", [style({ opacity: 0, transform: "scale(0.95)" }), animate("100ms ease-out", style({ opacity: 1, transform: "scale(1)" }))]),
    transition(":leave", [animate("75ms", style({ opacity: 0, transform: "scale(0.95)" }))])
  ])
] } });
var ForgetpwdComponent = _ForgetpwdComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(ForgetpwdComponent, { className: "ForgetpwdComponent", filePath: "src\\app\\@lcp-framework\\pages\\forgetpwd\\forgetpwd.component.ts", lineNumber: 52 });
})();

// src/app/@lcp-framework/pages/forgetpwd/resetpwd/resetpwd.component.ts
var _c019 = (a0, a1) => ({ "text-dark": a0, "text-light": a1 });
function ResetpwdComponent_div_14_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 22);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "otp_validate_msg"), " ");
  }
}
function ResetpwdComponent_div_26_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 23);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(2, 1, "new_pwd_req"));
  }
}
function ResetpwdComponent_div_27_div_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 26);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1("\u2713 ", \u0275\u0275pipeBind1(2, 1, "password_validation_message_1"), "");
  }
}
function ResetpwdComponent_div_27_div_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 22);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1("\u2717 ", \u0275\u0275pipeBind1(2, 1, "password_validation_message_2"), "");
  }
}
function ResetpwdComponent_div_27_div_3_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 26);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1("\u2713 ", \u0275\u0275pipeBind1(2, 1, "password_validation_message_3"), "");
  }
}
function ResetpwdComponent_div_27_div_4_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 22);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1("\u2717 ", \u0275\u0275pipeBind1(2, 1, "password_validation_message_4"), "");
  }
}
function ResetpwdComponent_div_27_div_5_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 26);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1("\u2713 ", \u0275\u0275pipeBind1(2, 1, "password_validation_message_5"), "");
  }
}
function ResetpwdComponent_div_27_div_6_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 22);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1("\u2717 ", \u0275\u0275pipeBind1(2, 1, "password_validation_message_6"), "");
  }
}
function ResetpwdComponent_div_27_div_7_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 26);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1("\u2713 ", \u0275\u0275pipeBind1(2, 1, "password_validation_message_7"), "");
  }
}
function ResetpwdComponent_div_27_div_8_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 22);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1("\u2717 ", \u0275\u0275pipeBind1(2, 1, "password_validation_message_8"), "");
  }
}
function ResetpwdComponent_div_27_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 24);
    \u0275\u0275template(1, ResetpwdComponent_div_27_div_1_Template, 3, 3, "div", 25)(2, ResetpwdComponent_div_27_div_2_Template, 3, 3, "div", 8)(3, ResetpwdComponent_div_27_div_3_Template, 3, 3, "div", 25)(4, ResetpwdComponent_div_27_div_4_Template, 3, 3, "div", 8)(5, ResetpwdComponent_div_27_div_5_Template, 3, 3, "div", 25)(6, ResetpwdComponent_div_27_div_6_Template, 3, 3, "div", 8)(7, ResetpwdComponent_div_27_div_7_Template, 3, 3, "div", 25)(8, ResetpwdComponent_div_27_div_8_Template, 3, 3, "div", 8);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r0.passwordStrength.hasMinLength);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !ctx_r0.passwordStrength.hasMinLength);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r0.passwordStrength.hasUpperCase);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !ctx_r0.passwordStrength.hasUpperCase);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r0.passwordStrength.hasSpecialChar);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !ctx_r0.passwordStrength.hasSpecialChar);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r0.passwordStrength.hasNumericChar);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !ctx_r0.passwordStrength.hasNumericChar);
  }
}
function ResetpwdComponent_div_39_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 23);
    \u0275\u0275text(1);
    \u0275\u0275pipe(2, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "RESETPASSWORD.CONFIRM_PWD_REQ"), " ");
  }
}
function ResetpwdComponent_app_loader_49_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "app-loader");
  }
}
var _ResetpwdComponent = class _ResetpwdComponent {
  constructor(formBuilder, http, translate, storeData, activeRoute, router, appSetting, toastr, authService, profileApiService, localstore, languageService) {
    this.formBuilder = formBuilder;
    this.http = http;
    this.translate = translate;
    this.storeData = storeData;
    this.activeRoute = activeRoute;
    this.router = router;
    this.appSetting = appSetting;
    this.toastr = toastr;
    this.authService = authService;
    this.profileApiService = profileApiService;
    this.localstore = localstore;
    this.languageService = languageService;
    this.companyId = 1;
    this.loading = false;
    this.isSubmitted = false;
    this.currYear = (/* @__PURE__ */ new Date()).getFullYear();
    this.passwordVisible = false;
    this.iconClicked = false;
    this.cnfPasswordVisible = false;
    this.cnficonClicked = false;
    this.passwordStrength = {
      hasMinLength: false,
      hasUpperCase: false,
      hasSpecialChar: false,
      hasNumericChar: false
    };
    this.allConditionsMet = false;
    this.initStore();
    this.resetPwdForm = this.formBuilder.group({
      otp: ["", Validators.required],
      new_password: ["", [Validators.required, Validators.minLength(8), this.passwordValidator]],
      confirm_new_password: ["", Validators.required]
    }, { validators: this.passwordMatchValidator });
    this.resetPwdForm.get("new_password")?.valueChanges.subscribe((value) => {
      this.checkPasswordStrength(value);
      this.toggleSubmitButton();
    });
  }
  ngOnInit() {
    const languageCode = this.languageService.getSavedLanguageCode();
    if (this.languageService.checkReloadFlag()) {
      console.log("Reloaded");
    } else {
      console.log("Initial Load");
    }
    const languageId = this.languageService.getLanguageId(languageCode);
    this.languageService.fetchLanguageData(this.companyId, languageId);
    this.uuid = this.activeRoute.snapshot.paramMap.get("uuid");
    this.id = this.activeRoute.snapshot.paramMap.get("id");
    this.commonRememberMe = JSON.parse(this.localstore.getData("rememberme"));
  }
  get formControls() {
    return this.resetPwdForm.controls;
  }
  // Custom validator to check password pattern
  passwordValidator(control) {
    const value = control.value;
    if (!value) {
      return null;
    }
    const hasUpperCase = /[A-Z]/.test(value);
    const hasSpecialChar = /[!@#$%^&*(),.?":{}|<>]/.test(value);
    const hasNumericChar = /\d/.test(value);
    const isValid = hasUpperCase && hasSpecialChar && hasNumericChar;
    return !isValid ? { passwordInvalid: true } : null;
  }
  // Custom validator to check if new password and confirm new password match
  passwordMatchValidator(group) {
    const newPassword = group.get("new_password")?.value;
    const confirmNewPassword = group.get("confirm_new_password")?.value;
    return newPassword === confirmNewPassword ? null : { passwordsMismatch: true };
  }
  togglePasswordVisibility() {
    this.passwordVisible = !this.passwordVisible;
  }
  toggleCNFPasswordVisibility() {
    this.cnfPasswordVisible = !this.cnfPasswordVisible;
  }
  toggleIcon() {
    this.iconClicked = !this.iconClicked;
  }
  cnftoggleIcon() {
    this.cnficonClicked = !this.cnficonClicked;
  }
  checkPasswordStrength(value) {
    if (value) {
      this.passwordStrength.hasMinLength = value.length >= 8;
      this.passwordStrength.hasUpperCase = /[A-Z]/.test(value);
      this.passwordStrength.hasSpecialChar = /[!@#$%^&*(),.?":{}|<>]/.test(value);
      this.passwordStrength.hasNumericChar = /\d/.test(value);
      this.allConditionsMet = this.passwordStrength.hasMinLength && this.passwordStrength.hasUpperCase && this.passwordStrength.hasSpecialChar && this.passwordStrength.hasNumericChar;
    }
  }
  initStore() {
    return __async(this, null, function* () {
      this.storeData.select((d) => d.index).subscribe((d) => {
        this.store = d;
      });
    });
  }
  changeLanguage(item) {
    this.translate.use(item.code);
    this.appSetting.toggleLanguage(item);
    if (this.store.locale?.toLowerCase() === "ae") {
      this.storeData.dispatch({ type: "toggleRTL", payload: "rtl" });
      this.languageService.serviceChangeLanguage(this.companyId, item.code.toLowerCase());
    } else {
      this.storeData.dispatch({ type: "toggleRTL", payload: "ltr" });
      this.languageService.serviceChangeLanguage(this.companyId, item.code.toLowerCase());
    }
  }
  toggleSubmitButton() {
    const canSubmit = this.passwordStrength.hasMinLength && this.passwordStrength.hasUpperCase && this.passwordStrength.hasSpecialChar;
    if (canSubmit) {
      this.resetPwdForm.get("new_password")?.setErrors(null);
    } else {
      this.resetPwdForm.get("new_password")?.setErrors({ passwordInvalid: true });
    }
  }
  onResetPassword() {
    this.isSubmitted = true;
    if (this.resetPwdForm && this.resetPwdForm.errors && this.resetPwdForm.errors["passwordsMismatch"]) {
      const key = "passwords_do_not_match";
      const errorMessage = this.translate.instant(key);
      this.toastr.error(errorMessage, "Error");
      return;
    }
    if (this.resetPwdForm.invalid) {
      this.markAllAsTouched();
      return;
    }
    const formData = {
      uuid: this.uuid,
      otp: this.resetPwdForm.get("otp")?.value,
      new_password: this.resetPwdForm.get("new_password")?.value,
      confirm_password: this.resetPwdForm.get("confirm_new_password")?.value
    };
    this.profileApiService.resetPasswordMail(formData).subscribe((response) => {
      if (response.code === 200 && response.status) {
        const key = response.message;
        const successMessage = this.translate.instant(key);
        this.toastr.success(successMessage);
        if (this.commonRememberMe) {
          this.localstore.removeData("rememberme");
        }
        this.resetPwdForm.reset();
        this.router.navigate(["/login"]);
      } else if (response.code == 424 || response.code == 425) {
        const key = response.message;
        const errorMessage = this.translate.instant(key);
        this.toastr.error(errorMessage, "Error");
      }
    }, (error) => {
      const key = "error_changing_password";
      const errorMessage = this.translate.instant(key);
      this.toastr.error(errorMessage + error, "Error");
    });
  }
  // Method to mark all form controls as touched
  markAllAsTouched() {
    Object.values(this.resetPwdForm.controls).forEach((control) => {
      control.markAsTouched();
    });
  }
};
_ResetpwdComponent.\u0275fac = function ResetpwdComponent_Factory(t) {
  return new (t || _ResetpwdComponent)(\u0275\u0275directiveInject(FormBuilder), \u0275\u0275directiveInject(HttpClient), \u0275\u0275directiveInject(TranslateService), \u0275\u0275directiveInject(Store), \u0275\u0275directiveInject(ActivatedRoute), \u0275\u0275directiveInject(Router), \u0275\u0275directiveInject(AppService), \u0275\u0275directiveInject(ToastrService), \u0275\u0275directiveInject(AuthService), \u0275\u0275directiveInject(ProfileApiService), \u0275\u0275directiveInject(LocalStorageService), \u0275\u0275directiveInject(LanguageService));
};
_ResetpwdComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _ResetpwdComponent, selectors: [["app-resetpwd"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 50, vars: 45, consts: [[1, "mb-10"], [1, "text-3xl", "uppercase", "!leading-snug", "md:text-4xl"], ["autocomplete", "off", 1, "space-y-5", "dark:text-white", 3, "ngSubmit", "formGroup"], ["for", "otp"], [1, "relative", "text-white-dark"], ["autocomplete", "off", "formControlName", "otp", "id", "otp", "type", "otp", 1, "form-input", "ps-10", "placeholder:text-white-dark", 3, "placeholder"], [1, "absolute", "start-4", "top-1/2", "-translate-y-1/2"], [1, "fa-solid", "fa-unlock-keyhole"], ["class", "text-red-500", 4, "ngIf"], ["for", "new_password"], ["formControlName", "new_password", "id", "new_password", 1, "form-input", "ps-10", "placeholder:text-white-dark", 3, "type", "placeholder"], [1, "absolute", "end-4", "top-1/2", "-translate-y-1/2", "cursor-pointer", 3, "click", "ngClass"], [1, "fa-regular", "fa-eye"], ["class", "text-danger", 4, "ngIf"], ["class", "passwordCharMatch", 4, "ngIf"], ["for", "confirm_new_password"], ["formControlName", "confirm_new_password", "id", "confirm_new_password", 1, "form-input", "ps-10", "placeholder:text-white-dark", 3, "type", "placeholder"], ["type", "submit", 1, "btn", "btn-gradient", "w-full", "border-0", "uppercase", "shadow-[0_10px_20px_-10px_rgba(67,97,238,0.44)]"], [1, "text-center"], [1, "text-white-dark", "hover:text-blue-500"], ["routerLink", "/login", 1, "text-white-dark", "hover:text-blue-500"], [4, "ngIf"], [1, "text-red-500"], [1, "text-danger"], [1, "passwordCharMatch"], ["class", "text-green-500", 4, "ngIf"], [1, "text-green-500"]], template: function ResetpwdComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 0)(1, "h1", 1);
    \u0275\u0275text(2);
    \u0275\u0275pipe(3, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(4, "form", 2);
    \u0275\u0275listener("ngSubmit", function ResetpwdComponent_Template_form_ngSubmit_4_listener() {
      return ctx.onResetPassword();
    });
    \u0275\u0275elementStart(5, "div")(6, "label", 3);
    \u0275\u0275text(7);
    \u0275\u0275pipe(8, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(9, "div", 4);
    \u0275\u0275element(10, "input", 5);
    \u0275\u0275pipe(11, "translate");
    \u0275\u0275elementStart(12, "span", 6);
    \u0275\u0275element(13, "i", 7);
    \u0275\u0275elementEnd()();
    \u0275\u0275template(14, ResetpwdComponent_div_14_Template, 3, 3, "div", 8);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(15, "div")(16, "label", 9);
    \u0275\u0275text(17);
    \u0275\u0275pipe(18, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(19, "div", 4);
    \u0275\u0275element(20, "input", 10);
    \u0275\u0275pipe(21, "translate");
    \u0275\u0275elementStart(22, "span", 6);
    \u0275\u0275element(23, "i", 7);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(24, "span", 11);
    \u0275\u0275listener("click", function ResetpwdComponent_Template_span_click_24_listener() {
      ctx.togglePasswordVisibility();
      return ctx.toggleIcon();
    });
    \u0275\u0275element(25, "i", 12);
    \u0275\u0275elementEnd()();
    \u0275\u0275template(26, ResetpwdComponent_div_26_Template, 3, 3, "div", 13)(27, ResetpwdComponent_div_27_Template, 9, 8, "div", 14);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(28, "div")(29, "label", 15);
    \u0275\u0275text(30);
    \u0275\u0275pipe(31, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(32, "div", 4);
    \u0275\u0275element(33, "input", 16);
    \u0275\u0275pipe(34, "translate");
    \u0275\u0275elementStart(35, "span", 6);
    \u0275\u0275element(36, "i", 7);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(37, "span", 11);
    \u0275\u0275listener("click", function ResetpwdComponent_Template_span_click_37_listener() {
      ctx.toggleCNFPasswordVisibility();
      return ctx.cnftoggleIcon();
    });
    \u0275\u0275element(38, "i", 12);
    \u0275\u0275elementEnd()();
    \u0275\u0275template(39, ResetpwdComponent_div_39_Template, 3, 3, "div", 13);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(40, "button", 17);
    \u0275\u0275text(41);
    \u0275\u0275pipe(42, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(43, "div", 18)(44, "span", 19);
    \u0275\u0275text(45, "<");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(46, "a", 20);
    \u0275\u0275text(47);
    \u0275\u0275pipe(48, "translate");
    \u0275\u0275elementEnd()()();
    \u0275\u0275template(49, ResetpwdComponent_app_loader_49_Template, 1, 0, "app-loader", 21);
  }
  if (rf & 2) {
    let tmp_5_0;
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(3, 21, "title_reset_password"));
    \u0275\u0275advance(2);
    \u0275\u0275property("formGroup", ctx.resetPwdForm);
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(8, 23, "form_otp"));
    \u0275\u0275advance(3);
    \u0275\u0275classProp("is-invalid", ctx.isSubmitted && ctx.resetPwdForm.controls["otp"].invalid);
    \u0275\u0275propertyInterpolate("placeholder", \u0275\u0275pipeBind1(11, 25, "form_otp_placeholder"));
    \u0275\u0275advance(4);
    \u0275\u0275property("ngIf", ((tmp_5_0 = ctx.resetPwdForm.get("otp")) == null ? null : tmp_5_0.invalid) && ((tmp_5_0 = ctx.resetPwdForm.get("otp")) == null ? null : tmp_5_0.touched));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(18, 27, "form_label_new_password"));
    \u0275\u0275advance(3);
    \u0275\u0275propertyInterpolate("placeholder", \u0275\u0275pipeBind1(21, 29, "form_label_password_placeholder"));
    \u0275\u0275property("type", ctx.passwordVisible ? "text" : "password");
    \u0275\u0275advance(4);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction2(39, _c019, ctx.iconClicked, !ctx.iconClicked));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx.isSubmitted && ctx.resetPwdForm.controls["new_password"].hasError("required"));
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx.resetPwdForm.controls["new_password"].touched && !ctx.allConditionsMet);
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(31, 31, "form_label_confirm_password"));
    \u0275\u0275advance(3);
    \u0275\u0275propertyInterpolate("placeholder", \u0275\u0275pipeBind1(34, 33, "form_label_password_placeholder"));
    \u0275\u0275property("type", ctx.cnfPasswordVisible ? "text" : "password");
    \u0275\u0275advance(4);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction2(42, _c019, ctx.cnficonClicked, !ctx.cnficonClicked));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx.isSubmitted && ctx.resetPwdForm.controls["confirm_new_password"].hasError("required"));
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(42, 35, "reset_sbt_btn"), " ");
    \u0275\u0275advance(6);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(48, 37, "login_link"), " ");
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx.loading);
  }
}, dependencies: [CommonSharedModule, NgClass, NgIf, \u0275NgNoValidate, DefaultValueAccessor, NgControlStatus, NgControlStatusGroup, RouterLink, TranslatePipe, ReactiveFormsModule, FormGroupDirective, FormControlName, LoaderComponent], data: { animation: [
  trigger("toggleAnimation", [
    transition(":enter", [style({ opacity: 0, transform: "scale(0.95)" }), animate("100ms ease-out", style({ opacity: 1, transform: "scale(1)" }))]),
    transition(":leave", [animate("75ms", style({ opacity: 0, transform: "scale(0.95)" }))])
  ])
] } });
var ResetpwdComponent = _ResetpwdComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(ResetpwdComponent, { className: "ResetpwdComponent", filePath: "src\\app\\@lcp-framework\\pages\\forgetpwd\\resetpwd\\resetpwd.component.ts", lineNumber: 53 });
})();

// src/app/@lcp-framework/components/not-found/not-found.component.ts
var _NotFoundComponent = class _NotFoundComponent {
  constructor(router, storeData) {
    this.router = router;
    this.storeData = storeData;
    this.initStore();
  }
  initStore() {
    return __async(this, null, function* () {
      this.storeData.select((d) => d.index).subscribe((d) => {
        this.store = d;
      });
    });
  }
};
_NotFoundComponent.\u0275fac = function NotFoundComponent_Factory(t) {
  return new (t || _NotFoundComponent)(\u0275\u0275directiveInject(Router), \u0275\u0275directiveInject(Store));
};
_NotFoundComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _NotFoundComponent, selectors: [["ng-component"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 8, vars: 1, consts: [[1, "relative", "flex", "min-h-screen", "items-center", "justify-center", "overflow-hidden"], [1, "px-6", "py-16", "text-center", "font-semibold", "before:container", "before:absolute", "before:left-1/2", "before:aspect-square", "before:-translate-x-1/2", "before:rounded-full", "before:bg-[linear-gradient(180deg,#4361EE_0%,rgba(67,97,238,0)_50.73%)]", "before:opacity-10", "md:py-20"], [1, "relative"], ["alt", "404", 1, "mx-auto", "-mt-10", "w-full", "max-w-xs", "object-cover", "md:-mt-14", "md:max-w-xl", 3, "src"], [1, "mt-5", "text-base", "dark:text-white"], ["routerLink", "/login", 1, "btn", "btn-gradient", "mx-auto", "!mt-7", "w-max", "border-0", "uppercase", "shadow-none"]], template: function NotFoundComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
    \u0275\u0275element(3, "img", 3);
    \u0275\u0275elementStart(4, "p", 4);
    \u0275\u0275text(5, "The page you requested was not found!");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(6, "a", 5);
    \u0275\u0275text(7, "Home");
    \u0275\u0275elementEnd()()()();
  }
  if (rf & 2) {
    \u0275\u0275advance(3);
    \u0275\u0275property("src", ctx.store.theme === "dark" || ctx.store.isDarkMode ? "assets/images/error/404-dark.svg" : "assets/images/error/404-light.svg", \u0275\u0275sanitizeUrl);
  }
}, encapsulation: 2 });
var NotFoundComponent = _NotFoundComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(NotFoundComponent, { className: "NotFoundComponent", filePath: "src\\app\\@lcp-framework\\components\\not-found\\not-found.component.ts", lineNumber: 9 });
})();

// src/app/@lcp-framework/components/access-denied/access-denied.component.ts
var _AccessDeniedComponent = class _AccessDeniedComponent {
};
_AccessDeniedComponent.\u0275fac = function AccessDeniedComponent_Factory(t) {
  return new (t || _AccessDeniedComponent)();
};
_AccessDeniedComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _AccessDeniedComponent, selectors: [["app-access-denied"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 2, vars: 0, template: function AccessDeniedComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "p");
    \u0275\u0275text(1, "access-denied works!");
    \u0275\u0275elementEnd();
  }
} });
var AccessDeniedComponent = _AccessDeniedComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(AccessDeniedComponent, { className: "AccessDeniedComponent", filePath: "src\\app\\@lcp-framework\\components\\access-denied\\access-denied.component.ts", lineNumber: 10 });
})();

// node_modules/@angular/cdk/fesm2022/collections.mjs
var DataSource = class {
};
function isDataSource(value) {
  return value && typeof value.connect === "function" && !(value instanceof ConnectableObservable);
}
var ArrayDataSource = class extends DataSource {
  constructor(_data) {
    super();
    this._data = _data;
  }
  connect() {
    return isObservable(this._data) ? this._data : of(this._data);
  }
  disconnect() {
  }
};
var _ViewRepeaterOperation;
(function(_ViewRepeaterOperation2) {
  _ViewRepeaterOperation2[_ViewRepeaterOperation2["REPLACED"] = 0] = "REPLACED";
  _ViewRepeaterOperation2[_ViewRepeaterOperation2["INSERTED"] = 1] = "INSERTED";
  _ViewRepeaterOperation2[_ViewRepeaterOperation2["MOVED"] = 2] = "MOVED";
  _ViewRepeaterOperation2[_ViewRepeaterOperation2["REMOVED"] = 3] = "REMOVED";
})(_ViewRepeaterOperation || (_ViewRepeaterOperation = {}));
var _VIEW_REPEATER_STRATEGY = new InjectionToken("_ViewRepeater");
var _RecycleViewRepeaterStrategy = class {
  constructor() {
    this.viewCacheSize = 20;
    this._viewCache = [];
  }
  /** Apply changes to the DOM. */
  applyChanges(changes, viewContainerRef, itemContextFactory, itemValueResolver, itemViewChanged) {
    changes.forEachOperation((record, adjustedPreviousIndex, currentIndex) => {
      let view;
      let operation;
      if (record.previousIndex == null) {
        const viewArgsFactory = () => itemContextFactory(record, adjustedPreviousIndex, currentIndex);
        view = this._insertView(viewArgsFactory, currentIndex, viewContainerRef, itemValueResolver(record));
        operation = view ? _ViewRepeaterOperation.INSERTED : _ViewRepeaterOperation.REPLACED;
      } else if (currentIndex == null) {
        this._detachAndCacheView(adjustedPreviousIndex, viewContainerRef);
        operation = _ViewRepeaterOperation.REMOVED;
      } else {
        view = this._moveView(adjustedPreviousIndex, currentIndex, viewContainerRef, itemValueResolver(record));
        operation = _ViewRepeaterOperation.MOVED;
      }
      if (itemViewChanged) {
        itemViewChanged({
          context: view?.context,
          operation,
          record
        });
      }
    });
  }
  detach() {
    for (const view of this._viewCache) {
      view.destroy();
    }
    this._viewCache = [];
  }
  /**
   * Inserts a view for a new item, either from the cache or by creating a new
   * one. Returns `undefined` if the item was inserted into a cached view.
   */
  _insertView(viewArgsFactory, currentIndex, viewContainerRef, value) {
    const cachedView = this._insertViewFromCache(currentIndex, viewContainerRef);
    if (cachedView) {
      cachedView.context.$implicit = value;
      return void 0;
    }
    const viewArgs = viewArgsFactory();
    return viewContainerRef.createEmbeddedView(viewArgs.templateRef, viewArgs.context, viewArgs.index);
  }
  /** Detaches the view at the given index and inserts into the view cache. */
  _detachAndCacheView(index, viewContainerRef) {
    const detachedView = viewContainerRef.detach(index);
    this._maybeCacheView(detachedView, viewContainerRef);
  }
  /** Moves view at the previous index to the current index. */
  _moveView(adjustedPreviousIndex, currentIndex, viewContainerRef, value) {
    const view = viewContainerRef.get(adjustedPreviousIndex);
    viewContainerRef.move(view, currentIndex);
    view.context.$implicit = value;
    return view;
  }
  /**
   * Cache the given detached view. If the cache is full, the view will be
   * destroyed.
   */
  _maybeCacheView(view, viewContainerRef) {
    if (this._viewCache.length < this.viewCacheSize) {
      this._viewCache.push(view);
    } else {
      const index = viewContainerRef.indexOf(view);
      if (index === -1) {
        view.destroy();
      } else {
        viewContainerRef.remove(index);
      }
    }
  }
  /** Inserts a recycled view from the cache at the given index. */
  _insertViewFromCache(index, viewContainerRef) {
    const cachedView = this._viewCache.pop();
    if (cachedView) {
      viewContainerRef.insert(cachedView, index);
    }
    return cachedView || null;
  }
};
var _UniqueSelectionDispatcher = class _UniqueSelectionDispatcher {
  constructor() {
    this._listeners = [];
  }
  /**
   * Notify other items that selection for the given name has been set.
   * @param id ID of the item.
   * @param name Name of the item.
   */
  notify(id, name) {
    for (let listener of this._listeners) {
      listener(id, name);
    }
  }
  /**
   * Listen for future changes to item selection.
   * @return Function used to deregister listener
   */
  listen(listener) {
    this._listeners.push(listener);
    return () => {
      this._listeners = this._listeners.filter((registered) => {
        return listener !== registered;
      });
    };
  }
  ngOnDestroy() {
    this._listeners = [];
  }
};
_UniqueSelectionDispatcher.\u0275fac = function UniqueSelectionDispatcher_Factory(t) {
  return new (t || _UniqueSelectionDispatcher)();
};
_UniqueSelectionDispatcher.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _UniqueSelectionDispatcher,
  factory: _UniqueSelectionDispatcher.\u0275fac,
  providedIn: "root"
});
var UniqueSelectionDispatcher = _UniqueSelectionDispatcher;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(UniqueSelectionDispatcher, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], null, null);
})();

// node_modules/@angular/cdk/fesm2022/scrolling.mjs
var _c020 = ["contentWrapper"];
var _c16 = ["*"];
var VIRTUAL_SCROLL_STRATEGY = new InjectionToken("VIRTUAL_SCROLL_STRATEGY");
var FixedSizeVirtualScrollStrategy = class {
  /**
   * @param itemSize The size of the items in the virtually scrolling list.
   * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more
   * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.
   */
  constructor(itemSize, minBufferPx, maxBufferPx) {
    this._scrolledIndexChange = new Subject();
    this.scrolledIndexChange = this._scrolledIndexChange.pipe(distinctUntilChanged());
    this._viewport = null;
    this._itemSize = itemSize;
    this._minBufferPx = minBufferPx;
    this._maxBufferPx = maxBufferPx;
  }
  /**
   * Attaches this scroll strategy to a viewport.
   * @param viewport The viewport to attach this strategy to.
   */
  attach(viewport) {
    this._viewport = viewport;
    this._updateTotalContentSize();
    this._updateRenderedRange();
  }
  /** Detaches this scroll strategy from the currently attached viewport. */
  detach() {
    this._scrolledIndexChange.complete();
    this._viewport = null;
  }
  /**
   * Update the item size and buffer size.
   * @param itemSize The size of the items in the virtually scrolling list.
   * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more
   * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.
   */
  updateItemAndBufferSize(itemSize, minBufferPx, maxBufferPx) {
    if (maxBufferPx < minBufferPx && (typeof ngDevMode === "undefined" || ngDevMode)) {
      throw Error("CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx");
    }
    this._itemSize = itemSize;
    this._minBufferPx = minBufferPx;
    this._maxBufferPx = maxBufferPx;
    this._updateTotalContentSize();
    this._updateRenderedRange();
  }
  /** @docs-private Implemented as part of VirtualScrollStrategy. */
  onContentScrolled() {
    this._updateRenderedRange();
  }
  /** @docs-private Implemented as part of VirtualScrollStrategy. */
  onDataLengthChanged() {
    this._updateTotalContentSize();
    this._updateRenderedRange();
  }
  /** @docs-private Implemented as part of VirtualScrollStrategy. */
  onContentRendered() {
  }
  /** @docs-private Implemented as part of VirtualScrollStrategy. */
  onRenderedOffsetChanged() {
  }
  /**
   * Scroll to the offset for the given index.
   * @param index The index of the element to scroll to.
   * @param behavior The ScrollBehavior to use when scrolling.
   */
  scrollToIndex(index, behavior) {
    if (this._viewport) {
      this._viewport.scrollToOffset(index * this._itemSize, behavior);
    }
  }
  /** Update the viewport's total content size. */
  _updateTotalContentSize() {
    if (!this._viewport) {
      return;
    }
    this._viewport.setTotalContentSize(this._viewport.getDataLength() * this._itemSize);
  }
  /** Update the viewport's rendered range. */
  _updateRenderedRange() {
    if (!this._viewport) {
      return;
    }
    const renderedRange = this._viewport.getRenderedRange();
    const newRange = {
      start: renderedRange.start,
      end: renderedRange.end
    };
    const viewportSize = this._viewport.getViewportSize();
    const dataLength = this._viewport.getDataLength();
    let scrollOffset = this._viewport.measureScrollOffset();
    let firstVisibleIndex = this._itemSize > 0 ? scrollOffset / this._itemSize : 0;
    if (newRange.end > dataLength) {
      const maxVisibleItems = Math.ceil(viewportSize / this._itemSize);
      const newVisibleIndex = Math.max(0, Math.min(firstVisibleIndex, dataLength - maxVisibleItems));
      if (firstVisibleIndex != newVisibleIndex) {
        firstVisibleIndex = newVisibleIndex;
        scrollOffset = newVisibleIndex * this._itemSize;
        newRange.start = Math.floor(firstVisibleIndex);
      }
      newRange.end = Math.max(0, Math.min(dataLength, newRange.start + maxVisibleItems));
    }
    const startBuffer = scrollOffset - newRange.start * this._itemSize;
    if (startBuffer < this._minBufferPx && newRange.start != 0) {
      const expandStart = Math.ceil((this._maxBufferPx - startBuffer) / this._itemSize);
      newRange.start = Math.max(0, newRange.start - expandStart);
      newRange.end = Math.min(dataLength, Math.ceil(firstVisibleIndex + (viewportSize + this._minBufferPx) / this._itemSize));
    } else {
      const endBuffer = newRange.end * this._itemSize - (scrollOffset + viewportSize);
      if (endBuffer < this._minBufferPx && newRange.end != dataLength) {
        const expandEnd = Math.ceil((this._maxBufferPx - endBuffer) / this._itemSize);
        if (expandEnd > 0) {
          newRange.end = Math.min(dataLength, newRange.end + expandEnd);
          newRange.start = Math.max(0, Math.floor(firstVisibleIndex - this._minBufferPx / this._itemSize));
        }
      }
    }
    this._viewport.setRenderedRange(newRange);
    this._viewport.setRenderedContentOffset(this._itemSize * newRange.start);
    this._scrolledIndexChange.next(Math.floor(firstVisibleIndex));
  }
};
function _fixedSizeVirtualScrollStrategyFactory(fixedSizeDir) {
  return fixedSizeDir._scrollStrategy;
}
var _CdkFixedSizeVirtualScroll = class _CdkFixedSizeVirtualScroll {
  constructor() {
    this._itemSize = 20;
    this._minBufferPx = 100;
    this._maxBufferPx = 200;
    this._scrollStrategy = new FixedSizeVirtualScrollStrategy(this.itemSize, this.minBufferPx, this.maxBufferPx);
  }
  /** The size of the items in the list (in pixels). */
  get itemSize() {
    return this._itemSize;
  }
  set itemSize(value) {
    this._itemSize = coerceNumberProperty(value);
  }
  /**
   * The minimum amount of buffer rendered beyond the viewport (in pixels).
   * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.
   */
  get minBufferPx() {
    return this._minBufferPx;
  }
  set minBufferPx(value) {
    this._minBufferPx = coerceNumberProperty(value);
  }
  /**
   * The number of pixels worth of buffer to render for when rendering new items. Defaults to 200px.
   */
  get maxBufferPx() {
    return this._maxBufferPx;
  }
  set maxBufferPx(value) {
    this._maxBufferPx = coerceNumberProperty(value);
  }
  ngOnChanges() {
    this._scrollStrategy.updateItemAndBufferSize(this.itemSize, this.minBufferPx, this.maxBufferPx);
  }
};
_CdkFixedSizeVirtualScroll.\u0275fac = function CdkFixedSizeVirtualScroll_Factory(t) {
  return new (t || _CdkFixedSizeVirtualScroll)();
};
_CdkFixedSizeVirtualScroll.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkFixedSizeVirtualScroll,
  selectors: [["cdk-virtual-scroll-viewport", "itemSize", ""]],
  inputs: {
    itemSize: "itemSize",
    minBufferPx: "minBufferPx",
    maxBufferPx: "maxBufferPx"
  },
  standalone: true,
  features: [\u0275\u0275ProvidersFeature([{
    provide: VIRTUAL_SCROLL_STRATEGY,
    useFactory: _fixedSizeVirtualScrollStrategyFactory,
    deps: [forwardRef(() => _CdkFixedSizeVirtualScroll)]
  }]), \u0275\u0275NgOnChangesFeature]
});
var CdkFixedSizeVirtualScroll = _CdkFixedSizeVirtualScroll;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkFixedSizeVirtualScroll, [{
    type: Directive,
    args: [{
      selector: "cdk-virtual-scroll-viewport[itemSize]",
      standalone: true,
      providers: [{
        provide: VIRTUAL_SCROLL_STRATEGY,
        useFactory: _fixedSizeVirtualScrollStrategyFactory,
        deps: [forwardRef(() => CdkFixedSizeVirtualScroll)]
      }]
    }]
  }], null, {
    itemSize: [{
      type: Input
    }],
    minBufferPx: [{
      type: Input
    }],
    maxBufferPx: [{
      type: Input
    }]
  });
})();
var DEFAULT_SCROLL_TIME = 20;
var _ScrollDispatcher = class _ScrollDispatcher {
  constructor(_ngZone, _platform, document2) {
    this._ngZone = _ngZone;
    this._platform = _platform;
    this._scrolled = new Subject();
    this._globalSubscription = null;
    this._scrolledCount = 0;
    this.scrollContainers = /* @__PURE__ */ new Map();
    this._document = document2;
  }
  /**
   * Registers a scrollable instance with the service and listens for its scrolled events. When the
   * scrollable is scrolled, the service emits the event to its scrolled observable.
   * @param scrollable Scrollable instance to be registered.
   */
  register(scrollable) {
    if (!this.scrollContainers.has(scrollable)) {
      this.scrollContainers.set(scrollable, scrollable.elementScrolled().subscribe(() => this._scrolled.next(scrollable)));
    }
  }
  /**
   * De-registers a Scrollable reference and unsubscribes from its scroll event observable.
   * @param scrollable Scrollable instance to be deregistered.
   */
  deregister(scrollable) {
    const scrollableReference = this.scrollContainers.get(scrollable);
    if (scrollableReference) {
      scrollableReference.unsubscribe();
      this.scrollContainers.delete(scrollable);
    }
  }
  /**
   * Returns an observable that emits an event whenever any of the registered Scrollable
   * references (or window, document, or body) fire a scrolled event. Can provide a time in ms
   * to override the default "throttle" time.
   *
   * **Note:** in order to avoid hitting change detection for every scroll event,
   * all of the events emitted from this stream will be run outside the Angular zone.
   * If you need to update any data bindings as a result of a scroll event, you have
   * to run the callback using `NgZone.run`.
   */
  scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME) {
    if (!this._platform.isBrowser) {
      return of();
    }
    return new Observable((observer) => {
      if (!this._globalSubscription) {
        this._addGlobalListener();
      }
      const subscription = auditTimeInMs > 0 ? this._scrolled.pipe(auditTime(auditTimeInMs)).subscribe(observer) : this._scrolled.subscribe(observer);
      this._scrolledCount++;
      return () => {
        subscription.unsubscribe();
        this._scrolledCount--;
        if (!this._scrolledCount) {
          this._removeGlobalListener();
        }
      };
    });
  }
  ngOnDestroy() {
    this._removeGlobalListener();
    this.scrollContainers.forEach((_, container) => this.deregister(container));
    this._scrolled.complete();
  }
  /**
   * Returns an observable that emits whenever any of the
   * scrollable ancestors of an element are scrolled.
   * @param elementOrElementRef Element whose ancestors to listen for.
   * @param auditTimeInMs Time to throttle the scroll events.
   */
  ancestorScrolled(elementOrElementRef, auditTimeInMs) {
    const ancestors = this.getAncestorScrollContainers(elementOrElementRef);
    return this.scrolled(auditTimeInMs).pipe(filter((target) => {
      return !target || ancestors.indexOf(target) > -1;
    }));
  }
  /** Returns all registered Scrollables that contain the provided element. */
  getAncestorScrollContainers(elementOrElementRef) {
    const scrollingContainers = [];
    this.scrollContainers.forEach((_subscription, scrollable) => {
      if (this._scrollableContainsElement(scrollable, elementOrElementRef)) {
        scrollingContainers.push(scrollable);
      }
    });
    return scrollingContainers;
  }
  /** Use defaultView of injected document if available or fallback to global window reference */
  _getWindow() {
    return this._document.defaultView || window;
  }
  /** Returns true if the element is contained within the provided Scrollable. */
  _scrollableContainsElement(scrollable, elementOrElementRef) {
    let element = coerceElement(elementOrElementRef);
    let scrollableElement = scrollable.getElementRef().nativeElement;
    do {
      if (element == scrollableElement) {
        return true;
      }
    } while (element = element.parentElement);
    return false;
  }
  /** Sets up the global scroll listeners. */
  _addGlobalListener() {
    this._globalSubscription = this._ngZone.runOutsideAngular(() => {
      const window2 = this._getWindow();
      return fromEvent(window2.document, "scroll").subscribe(() => this._scrolled.next());
    });
  }
  /** Cleans up the global scroll listener. */
  _removeGlobalListener() {
    if (this._globalSubscription) {
      this._globalSubscription.unsubscribe();
      this._globalSubscription = null;
    }
  }
};
_ScrollDispatcher.\u0275fac = function ScrollDispatcher_Factory(t) {
  return new (t || _ScrollDispatcher)(\u0275\u0275inject(NgZone), \u0275\u0275inject(Platform), \u0275\u0275inject(DOCUMENT, 8));
};
_ScrollDispatcher.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _ScrollDispatcher,
  factory: _ScrollDispatcher.\u0275fac,
  providedIn: "root"
});
var ScrollDispatcher = _ScrollDispatcher;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ScrollDispatcher, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: NgZone
  }, {
    type: Platform
  }, {
    type: void 0,
    decorators: [{
      type: Optional
    }, {
      type: Inject,
      args: [DOCUMENT]
    }]
  }], null);
})();
var _CdkScrollable = class _CdkScrollable {
  constructor(elementRef, scrollDispatcher, ngZone, dir) {
    this.elementRef = elementRef;
    this.scrollDispatcher = scrollDispatcher;
    this.ngZone = ngZone;
    this.dir = dir;
    this._destroyed = new Subject();
    this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(this.elementRef.nativeElement, "scroll").pipe(takeUntil(this._destroyed)).subscribe(observer)));
  }
  ngOnInit() {
    this.scrollDispatcher.register(this);
  }
  ngOnDestroy() {
    this.scrollDispatcher.deregister(this);
    this._destroyed.next();
    this._destroyed.complete();
  }
  /** Returns observable that emits when a scroll event is fired on the host element. */
  elementScrolled() {
    return this._elementScrolled;
  }
  /** Gets the ElementRef for the viewport. */
  getElementRef() {
    return this.elementRef;
  }
  /**
   * Scrolls to the specified offsets. This is a normalized version of the browser's native scrollTo
   * method, since browsers are not consistent about what scrollLeft means in RTL. For this method
   * left and right always refer to the left and right side of the scrolling container irrespective
   * of the layout direction. start and end refer to left and right in an LTR context and vice-versa
   * in an RTL context.
   * @param options specified the offsets to scroll to.
   */
  scrollTo(options) {
    const el = this.elementRef.nativeElement;
    const isRtl = this.dir && this.dir.value == "rtl";
    if (options.left == null) {
      options.left = isRtl ? options.end : options.start;
    }
    if (options.right == null) {
      options.right = isRtl ? options.start : options.end;
    }
    if (options.bottom != null) {
      options.top = el.scrollHeight - el.clientHeight - options.bottom;
    }
    if (isRtl && getRtlScrollAxisType() != RtlScrollAxisType.NORMAL) {
      if (options.left != null) {
        options.right = el.scrollWidth - el.clientWidth - options.left;
      }
      if (getRtlScrollAxisType() == RtlScrollAxisType.INVERTED) {
        options.left = options.right;
      } else if (getRtlScrollAxisType() == RtlScrollAxisType.NEGATED) {
        options.left = options.right ? -options.right : options.right;
      }
    } else {
      if (options.right != null) {
        options.left = el.scrollWidth - el.clientWidth - options.right;
      }
    }
    this._applyScrollToOptions(options);
  }
  _applyScrollToOptions(options) {
    const el = this.elementRef.nativeElement;
    if (supportsScrollBehavior()) {
      el.scrollTo(options);
    } else {
      if (options.top != null) {
        el.scrollTop = options.top;
      }
      if (options.left != null) {
        el.scrollLeft = options.left;
      }
    }
  }
  /**
   * Measures the scroll offset relative to the specified edge of the viewport. This method can be
   * used instead of directly checking scrollLeft or scrollTop, since browsers are not consistent
   * about what scrollLeft means in RTL. The values returned by this method are normalized such that
   * left and right always refer to the left and right side of the scrolling container irrespective
   * of the layout direction. start and end refer to left and right in an LTR context and vice-versa
   * in an RTL context.
   * @param from The edge to measure from.
   */
  measureScrollOffset(from) {
    const LEFT = "left";
    const RIGHT = "right";
    const el = this.elementRef.nativeElement;
    if (from == "top") {
      return el.scrollTop;
    }
    if (from == "bottom") {
      return el.scrollHeight - el.clientHeight - el.scrollTop;
    }
    const isRtl = this.dir && this.dir.value == "rtl";
    if (from == "start") {
      from = isRtl ? RIGHT : LEFT;
    } else if (from == "end") {
      from = isRtl ? LEFT : RIGHT;
    }
    if (isRtl && getRtlScrollAxisType() == RtlScrollAxisType.INVERTED) {
      if (from == LEFT) {
        return el.scrollWidth - el.clientWidth - el.scrollLeft;
      } else {
        return el.scrollLeft;
      }
    } else if (isRtl && getRtlScrollAxisType() == RtlScrollAxisType.NEGATED) {
      if (from == LEFT) {
        return el.scrollLeft + el.scrollWidth - el.clientWidth;
      } else {
        return -el.scrollLeft;
      }
    } else {
      if (from == LEFT) {
        return el.scrollLeft;
      } else {
        return el.scrollWidth - el.clientWidth - el.scrollLeft;
      }
    }
  }
};
_CdkScrollable.\u0275fac = function CdkScrollable_Factory(t) {
  return new (t || _CdkScrollable)(\u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(ScrollDispatcher), \u0275\u0275directiveInject(NgZone), \u0275\u0275directiveInject(Directionality, 8));
};
_CdkScrollable.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkScrollable,
  selectors: [["", "cdk-scrollable", ""], ["", "cdkScrollable", ""]],
  standalone: true
});
var CdkScrollable = _CdkScrollable;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkScrollable, [{
    type: Directive,
    args: [{
      selector: "[cdk-scrollable], [cdkScrollable]",
      standalone: true
    }]
  }], () => [{
    type: ElementRef
  }, {
    type: ScrollDispatcher
  }, {
    type: NgZone
  }, {
    type: Directionality,
    decorators: [{
      type: Optional
    }]
  }], null);
})();
var DEFAULT_RESIZE_TIME = 20;
var _ViewportRuler = class _ViewportRuler {
  constructor(_platform, ngZone, document2) {
    this._platform = _platform;
    this._change = new Subject();
    this._changeListener = (event) => {
      this._change.next(event);
    };
    this._document = document2;
    ngZone.runOutsideAngular(() => {
      if (_platform.isBrowser) {
        const window2 = this._getWindow();
        window2.addEventListener("resize", this._changeListener);
        window2.addEventListener("orientationchange", this._changeListener);
      }
      this.change().subscribe(() => this._viewportSize = null);
    });
  }
  ngOnDestroy() {
    if (this._platform.isBrowser) {
      const window2 = this._getWindow();
      window2.removeEventListener("resize", this._changeListener);
      window2.removeEventListener("orientationchange", this._changeListener);
    }
    this._change.complete();
  }
  /** Returns the viewport's width and height. */
  getViewportSize() {
    if (!this._viewportSize) {
      this._updateViewportSize();
    }
    const output = {
      width: this._viewportSize.width,
      height: this._viewportSize.height
    };
    if (!this._platform.isBrowser) {
      this._viewportSize = null;
    }
    return output;
  }
  /** Gets a DOMRect for the viewport's bounds. */
  getViewportRect() {
    const scrollPosition = this.getViewportScrollPosition();
    const {
      width,
      height
    } = this.getViewportSize();
    return {
      top: scrollPosition.top,
      left: scrollPosition.left,
      bottom: scrollPosition.top + height,
      right: scrollPosition.left + width,
      height,
      width
    };
  }
  /** Gets the (top, left) scroll position of the viewport. */
  getViewportScrollPosition() {
    if (!this._platform.isBrowser) {
      return {
        top: 0,
        left: 0
      };
    }
    const document2 = this._document;
    const window2 = this._getWindow();
    const documentElement2 = document2.documentElement;
    const documentRect = documentElement2.getBoundingClientRect();
    const top = -documentRect.top || document2.body.scrollTop || window2.scrollY || documentElement2.scrollTop || 0;
    const left = -documentRect.left || document2.body.scrollLeft || window2.scrollX || documentElement2.scrollLeft || 0;
    return {
      top,
      left
    };
  }
  /**
   * Returns a stream that emits whenever the size of the viewport changes.
   * This stream emits outside of the Angular zone.
   * @param throttleTime Time in milliseconds to throttle the stream.
   */
  change(throttleTime = DEFAULT_RESIZE_TIME) {
    return throttleTime > 0 ? this._change.pipe(auditTime(throttleTime)) : this._change;
  }
  /** Use defaultView of injected document if available or fallback to global window reference */
  _getWindow() {
    return this._document.defaultView || window;
  }
  /** Updates the cached viewport size. */
  _updateViewportSize() {
    const window2 = this._getWindow();
    this._viewportSize = this._platform.isBrowser ? {
      width: window2.innerWidth,
      height: window2.innerHeight
    } : {
      width: 0,
      height: 0
    };
  }
};
_ViewportRuler.\u0275fac = function ViewportRuler_Factory(t) {
  return new (t || _ViewportRuler)(\u0275\u0275inject(Platform), \u0275\u0275inject(NgZone), \u0275\u0275inject(DOCUMENT, 8));
};
_ViewportRuler.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _ViewportRuler,
  factory: _ViewportRuler.\u0275fac,
  providedIn: "root"
});
var ViewportRuler = _ViewportRuler;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ViewportRuler, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: Platform
  }, {
    type: NgZone
  }, {
    type: void 0,
    decorators: [{
      type: Optional
    }, {
      type: Inject,
      args: [DOCUMENT]
    }]
  }], null);
})();
var VIRTUAL_SCROLLABLE = new InjectionToken("VIRTUAL_SCROLLABLE");
var _CdkVirtualScrollable = class _CdkVirtualScrollable extends CdkScrollable {
  constructor(elementRef, scrollDispatcher, ngZone, dir) {
    super(elementRef, scrollDispatcher, ngZone, dir);
  }
  /**
   * Measure the viewport size for the provided orientation.
   *
   * @param orientation The orientation to measure the size from.
   */
  measureViewportSize(orientation) {
    const viewportEl = this.elementRef.nativeElement;
    return orientation === "horizontal" ? viewportEl.clientWidth : viewportEl.clientHeight;
  }
};
_CdkVirtualScrollable.\u0275fac = function CdkVirtualScrollable_Factory(t) {
  return new (t || _CdkVirtualScrollable)(\u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(ScrollDispatcher), \u0275\u0275directiveInject(NgZone), \u0275\u0275directiveInject(Directionality, 8));
};
_CdkVirtualScrollable.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkVirtualScrollable,
  features: [\u0275\u0275InheritDefinitionFeature]
});
var CdkVirtualScrollable = _CdkVirtualScrollable;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkVirtualScrollable, [{
    type: Directive
  }], () => [{
    type: ElementRef
  }, {
    type: ScrollDispatcher
  }, {
    type: NgZone
  }, {
    type: Directionality,
    decorators: [{
      type: Optional
    }]
  }], null);
})();
function rangesEqual(r1, r2) {
  return r1.start == r2.start && r1.end == r2.end;
}
var SCROLL_SCHEDULER = typeof requestAnimationFrame !== "undefined" ? animationFrameScheduler : asapScheduler;
var _CdkVirtualScrollViewport = class _CdkVirtualScrollViewport extends CdkVirtualScrollable {
  /** The direction the viewport scrolls. */
  get orientation() {
    return this._orientation;
  }
  set orientation(orientation) {
    if (this._orientation !== orientation) {
      this._orientation = orientation;
      this._calculateSpacerSize();
    }
  }
  constructor(elementRef, _changeDetectorRef, ngZone, _scrollStrategy, dir, scrollDispatcher, viewportRuler, scrollable) {
    super(elementRef, scrollDispatcher, ngZone, dir);
    this.elementRef = elementRef;
    this._changeDetectorRef = _changeDetectorRef;
    this._scrollStrategy = _scrollStrategy;
    this.scrollable = scrollable;
    this._platform = inject(Platform);
    this._detachedSubject = new Subject();
    this._renderedRangeSubject = new Subject();
    this._orientation = "vertical";
    this.appendOnly = false;
    this.scrolledIndexChange = new Observable((observer) => this._scrollStrategy.scrolledIndexChange.subscribe((index) => Promise.resolve().then(() => this.ngZone.run(() => observer.next(index)))));
    this.renderedRangeStream = this._renderedRangeSubject;
    this._totalContentSize = 0;
    this._totalContentWidth = "";
    this._totalContentHeight = "";
    this._renderedRange = {
      start: 0,
      end: 0
    };
    this._dataLength = 0;
    this._viewportSize = 0;
    this._renderedContentOffset = 0;
    this._renderedContentOffsetNeedsRewrite = false;
    this._isChangeDetectionPending = false;
    this._runAfterChangeDetection = [];
    this._viewportChanges = Subscription.EMPTY;
    if (!_scrollStrategy && (typeof ngDevMode === "undefined" || ngDevMode)) {
      throw Error('Error: cdk-virtual-scroll-viewport requires the "itemSize" property to be set.');
    }
    this._viewportChanges = viewportRuler.change().subscribe(() => {
      this.checkViewportSize();
    });
    if (!this.scrollable) {
      this.elementRef.nativeElement.classList.add("cdk-virtual-scrollable");
      this.scrollable = this;
    }
  }
  ngOnInit() {
    if (!this._platform.isBrowser) {
      return;
    }
    if (this.scrollable === this) {
      super.ngOnInit();
    }
    this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {
      this._measureViewportSize();
      this._scrollStrategy.attach(this);
      this.scrollable.elementScrolled().pipe(
        // Start off with a fake scroll event so we properly detect our initial position.
        startWith(null),
        // Collect multiple events into one until the next animation frame. This way if
        // there are multiple scroll events in the same frame we only need to recheck
        // our layout once.
        auditTime(0, SCROLL_SCHEDULER),
        // Usually `elementScrolled` is completed when the scrollable is destroyed, but
        // that may not be the case if a `CdkVirtualScrollableElement` is used so we have
        // to unsubscribe here just in case.
        takeUntil(this._destroyed)
      ).subscribe(() => this._scrollStrategy.onContentScrolled());
      this._markChangeDetectionNeeded();
    }));
  }
  ngOnDestroy() {
    this.detach();
    this._scrollStrategy.detach();
    this._renderedRangeSubject.complete();
    this._detachedSubject.complete();
    this._viewportChanges.unsubscribe();
    super.ngOnDestroy();
  }
  /** Attaches a `CdkVirtualScrollRepeater` to this viewport. */
  attach(forOf) {
    if (this._forOf && (typeof ngDevMode === "undefined" || ngDevMode)) {
      throw Error("CdkVirtualScrollViewport is already attached.");
    }
    this.ngZone.runOutsideAngular(() => {
      this._forOf = forOf;
      this._forOf.dataStream.pipe(takeUntil(this._detachedSubject)).subscribe((data) => {
        const newLength = data.length;
        if (newLength !== this._dataLength) {
          this._dataLength = newLength;
          this._scrollStrategy.onDataLengthChanged();
        }
        this._doChangeDetection();
      });
    });
  }
  /** Detaches the current `CdkVirtualForOf`. */
  detach() {
    this._forOf = null;
    this._detachedSubject.next();
  }
  /** Gets the length of the data bound to this viewport (in number of items). */
  getDataLength() {
    return this._dataLength;
  }
  /** Gets the size of the viewport (in pixels). */
  getViewportSize() {
    return this._viewportSize;
  }
  // TODO(mmalerba): This is technically out of sync with what's really rendered until a render
  // cycle happens. I'm being careful to only call it after the render cycle is complete and before
  // setting it to something else, but its error prone and should probably be split into
  // `pendingRange` and `renderedRange`, the latter reflecting whats actually in the DOM.
  /** Get the current rendered range of items. */
  getRenderedRange() {
    return this._renderedRange;
  }
  measureBoundingClientRectWithScrollOffset(from) {
    return this.getElementRef().nativeElement.getBoundingClientRect()[from];
  }
  /**
   * Sets the total size of all content (in pixels), including content that is not currently
   * rendered.
   */
  setTotalContentSize(size) {
    if (this._totalContentSize !== size) {
      this._totalContentSize = size;
      this._calculateSpacerSize();
      this._markChangeDetectionNeeded();
    }
  }
  /** Sets the currently rendered range of indices. */
  setRenderedRange(range) {
    if (!rangesEqual(this._renderedRange, range)) {
      if (this.appendOnly) {
        range = {
          start: 0,
          end: Math.max(this._renderedRange.end, range.end)
        };
      }
      this._renderedRangeSubject.next(this._renderedRange = range);
      this._markChangeDetectionNeeded(() => this._scrollStrategy.onContentRendered());
    }
  }
  /**
   * Gets the offset from the start of the viewport to the start of the rendered data (in pixels).
   */
  getOffsetToRenderedContentStart() {
    return this._renderedContentOffsetNeedsRewrite ? null : this._renderedContentOffset;
  }
  /**
   * Sets the offset from the start of the viewport to either the start or end of the rendered data
   * (in pixels).
   */
  setRenderedContentOffset(offset, to = "to-start") {
    offset = this.appendOnly && to === "to-start" ? 0 : offset;
    const isRtl = this.dir && this.dir.value == "rtl";
    const isHorizontal = this.orientation == "horizontal";
    const axis = isHorizontal ? "X" : "Y";
    const axisDirection = isHorizontal && isRtl ? -1 : 1;
    let transform = `translate${axis}(${Number(axisDirection * offset)}px)`;
    this._renderedContentOffset = offset;
    if (to === "to-end") {
      transform += ` translate${axis}(-100%)`;
      this._renderedContentOffsetNeedsRewrite = true;
    }
    if (this._renderedContentTransform != transform) {
      this._renderedContentTransform = transform;
      this._markChangeDetectionNeeded(() => {
        if (this._renderedContentOffsetNeedsRewrite) {
          this._renderedContentOffset -= this.measureRenderedContentSize();
          this._renderedContentOffsetNeedsRewrite = false;
          this.setRenderedContentOffset(this._renderedContentOffset);
        } else {
          this._scrollStrategy.onRenderedOffsetChanged();
        }
      });
    }
  }
  /**
   * Scrolls to the given offset from the start of the viewport. Please note that this is not always
   * the same as setting `scrollTop` or `scrollLeft`. In a horizontal viewport with right-to-left
   * direction, this would be the equivalent of setting a fictional `scrollRight` property.
   * @param offset The offset to scroll to.
   * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.
   */
  scrollToOffset(offset, behavior = "auto") {
    const options = {
      behavior
    };
    if (this.orientation === "horizontal") {
      options.start = offset;
    } else {
      options.top = offset;
    }
    this.scrollable.scrollTo(options);
  }
  /**
   * Scrolls to the offset for the given index.
   * @param index The index of the element to scroll to.
   * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.
   */
  scrollToIndex(index, behavior = "auto") {
    this._scrollStrategy.scrollToIndex(index, behavior);
  }
  /**
   * Gets the current scroll offset from the start of the scrollable (in pixels).
   * @param from The edge to measure the offset from. Defaults to 'top' in vertical mode and 'start'
   *     in horizontal mode.
   */
  measureScrollOffset(from) {
    let measureScrollOffset;
    if (this.scrollable == this) {
      measureScrollOffset = (_from) => super.measureScrollOffset(_from);
    } else {
      measureScrollOffset = (_from) => this.scrollable.measureScrollOffset(_from);
    }
    return Math.max(0, measureScrollOffset(from ?? (this.orientation === "horizontal" ? "start" : "top")) - this.measureViewportOffset());
  }
  /**
   * Measures the offset of the viewport from the scrolling container
   * @param from The edge to measure from.
   */
  measureViewportOffset(from) {
    let fromRect;
    const LEFT = "left";
    const RIGHT = "right";
    const isRtl = this.dir?.value == "rtl";
    if (from == "start") {
      fromRect = isRtl ? RIGHT : LEFT;
    } else if (from == "end") {
      fromRect = isRtl ? LEFT : RIGHT;
    } else if (from) {
      fromRect = from;
    } else {
      fromRect = this.orientation === "horizontal" ? "left" : "top";
    }
    const scrollerClientRect = this.scrollable.measureBoundingClientRectWithScrollOffset(fromRect);
    const viewportClientRect = this.elementRef.nativeElement.getBoundingClientRect()[fromRect];
    return viewportClientRect - scrollerClientRect;
  }
  /** Measure the combined size of all of the rendered items. */
  measureRenderedContentSize() {
    const contentEl = this._contentWrapper.nativeElement;
    return this.orientation === "horizontal" ? contentEl.offsetWidth : contentEl.offsetHeight;
  }
  /**
   * Measure the total combined size of the given range. Throws if the range includes items that are
   * not rendered.
   */
  measureRangeSize(range) {
    if (!this._forOf) {
      return 0;
    }
    return this._forOf.measureRangeSize(range, this.orientation);
  }
  /** Update the viewport dimensions and re-render. */
  checkViewportSize() {
    this._measureViewportSize();
    this._scrollStrategy.onDataLengthChanged();
  }
  /** Measure the viewport size. */
  _measureViewportSize() {
    this._viewportSize = this.scrollable.measureViewportSize(this.orientation);
  }
  /** Queue up change detection to run. */
  _markChangeDetectionNeeded(runAfter) {
    if (runAfter) {
      this._runAfterChangeDetection.push(runAfter);
    }
    if (!this._isChangeDetectionPending) {
      this._isChangeDetectionPending = true;
      this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {
        this._doChangeDetection();
      }));
    }
  }
  /** Run change detection. */
  _doChangeDetection() {
    this._isChangeDetectionPending = false;
    this._contentWrapper.nativeElement.style.transform = this._renderedContentTransform;
    this.ngZone.run(() => this._changeDetectorRef.markForCheck());
    const runAfterChangeDetection = this._runAfterChangeDetection;
    this._runAfterChangeDetection = [];
    for (const fn of runAfterChangeDetection) {
      fn();
    }
  }
  /** Calculates the `style.width` and `style.height` for the spacer element. */
  _calculateSpacerSize() {
    this._totalContentHeight = this.orientation === "horizontal" ? "" : `${this._totalContentSize}px`;
    this._totalContentWidth = this.orientation === "horizontal" ? `${this._totalContentSize}px` : "";
  }
};
_CdkVirtualScrollViewport.\u0275fac = function CdkVirtualScrollViewport_Factory(t) {
  return new (t || _CdkVirtualScrollViewport)(\u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(ChangeDetectorRef), \u0275\u0275directiveInject(NgZone), \u0275\u0275directiveInject(VIRTUAL_SCROLL_STRATEGY, 8), \u0275\u0275directiveInject(Directionality, 8), \u0275\u0275directiveInject(ScrollDispatcher), \u0275\u0275directiveInject(ViewportRuler), \u0275\u0275directiveInject(VIRTUAL_SCROLLABLE, 8));
};
_CdkVirtualScrollViewport.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({
  type: _CdkVirtualScrollViewport,
  selectors: [["cdk-virtual-scroll-viewport"]],
  viewQuery: function CdkVirtualScrollViewport_Query(rf, ctx) {
    if (rf & 1) {
      \u0275\u0275viewQuery(_c020, 7);
    }
    if (rf & 2) {
      let _t;
      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._contentWrapper = _t.first);
    }
  },
  hostAttrs: [1, "cdk-virtual-scroll-viewport"],
  hostVars: 4,
  hostBindings: function CdkVirtualScrollViewport_HostBindings(rf, ctx) {
    if (rf & 2) {
      \u0275\u0275classProp("cdk-virtual-scroll-orientation-horizontal", ctx.orientation === "horizontal")("cdk-virtual-scroll-orientation-vertical", ctx.orientation !== "horizontal");
    }
  },
  inputs: {
    orientation: "orientation",
    appendOnly: [InputFlags.HasDecoratorInputTransform, "appendOnly", "appendOnly", booleanAttribute]
  },
  outputs: {
    scrolledIndexChange: "scrolledIndexChange"
  },
  standalone: true,
  features: [\u0275\u0275ProvidersFeature([{
    provide: CdkScrollable,
    useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,
    deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], _CdkVirtualScrollViewport]
  }]), \u0275\u0275InputTransformsFeature, \u0275\u0275InheritDefinitionFeature, \u0275\u0275StandaloneFeature],
  ngContentSelectors: _c16,
  decls: 4,
  vars: 4,
  consts: [["contentWrapper", ""], [1, "cdk-virtual-scroll-content-wrapper"], [1, "cdk-virtual-scroll-spacer"]],
  template: function CdkVirtualScrollViewport_Template(rf, ctx) {
    if (rf & 1) {
      \u0275\u0275projectionDef();
      \u0275\u0275elementStart(0, "div", 1, 0);
      \u0275\u0275projection(2);
      \u0275\u0275elementEnd();
      \u0275\u0275element(3, "div", 2);
    }
    if (rf & 2) {
      \u0275\u0275advance(3);
      \u0275\u0275styleProp("width", ctx._totalContentWidth)("height", ctx._totalContentHeight);
    }
  },
  styles: ["cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}"],
  encapsulation: 2,
  changeDetection: 0
});
var CdkVirtualScrollViewport = _CdkVirtualScrollViewport;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkVirtualScrollViewport, [{
    type: Component,
    args: [{
      selector: "cdk-virtual-scroll-viewport",
      host: {
        "class": "cdk-virtual-scroll-viewport",
        "[class.cdk-virtual-scroll-orientation-horizontal]": 'orientation === "horizontal"',
        "[class.cdk-virtual-scroll-orientation-vertical]": 'orientation !== "horizontal"'
      },
      encapsulation: ViewEncapsulation$1.None,
      changeDetection: ChangeDetectionStrategy.OnPush,
      standalone: true,
      providers: [{
        provide: CdkScrollable,
        useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,
        deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport]
      }],
      template: '<!--\n  Wrap the rendered content in an element that will be used to offset it based on the scroll\n  position.\n-->\n<div #contentWrapper class="cdk-virtual-scroll-content-wrapper">\n  <ng-content></ng-content>\n</div>\n<!--\n  Spacer used to force the scrolling container to the correct size for the *total* number of items\n  so that the scrollbar captures the size of the entire data set.\n-->\n<div class="cdk-virtual-scroll-spacer"\n     [style.width]="_totalContentWidth" [style.height]="_totalContentHeight"></div>\n',
      styles: ["cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}"]
    }]
  }], () => [{
    type: ElementRef
  }, {
    type: ChangeDetectorRef
  }, {
    type: NgZone
  }, {
    type: void 0,
    decorators: [{
      type: Optional
    }, {
      type: Inject,
      args: [VIRTUAL_SCROLL_STRATEGY]
    }]
  }, {
    type: Directionality,
    decorators: [{
      type: Optional
    }]
  }, {
    type: ScrollDispatcher
  }, {
    type: ViewportRuler
  }, {
    type: CdkVirtualScrollable,
    decorators: [{
      type: Optional
    }, {
      type: Inject,
      args: [VIRTUAL_SCROLLABLE]
    }]
  }], {
    orientation: [{
      type: Input
    }],
    appendOnly: [{
      type: Input,
      args: [{
        transform: booleanAttribute
      }]
    }],
    scrolledIndexChange: [{
      type: Output
    }],
    _contentWrapper: [{
      type: ViewChild,
      args: ["contentWrapper", {
        static: true
      }]
    }]
  });
})();
function getOffset(orientation, direction, node) {
  const el = node;
  if (!el.getBoundingClientRect) {
    return 0;
  }
  const rect = el.getBoundingClientRect();
  if (orientation === "horizontal") {
    return direction === "start" ? rect.left : rect.right;
  }
  return direction === "start" ? rect.top : rect.bottom;
}
var _CdkVirtualForOf = class _CdkVirtualForOf {
  /** The DataSource to display. */
  get cdkVirtualForOf() {
    return this._cdkVirtualForOf;
  }
  set cdkVirtualForOf(value) {
    this._cdkVirtualForOf = value;
    if (isDataSource(value)) {
      this._dataSourceChanges.next(value);
    } else {
      this._dataSourceChanges.next(new ArrayDataSource(isObservable(value) ? value : Array.from(value || [])));
    }
  }
  /**
   * The `TrackByFunction` to use for tracking changes. The `TrackByFunction` takes the index and
   * the item and produces a value to be used as the item's identity when tracking changes.
   */
  get cdkVirtualForTrackBy() {
    return this._cdkVirtualForTrackBy;
  }
  set cdkVirtualForTrackBy(fn) {
    this._needsUpdate = true;
    this._cdkVirtualForTrackBy = fn ? (index, item) => fn(index + (this._renderedRange ? this._renderedRange.start : 0), item) : void 0;
  }
  /** The template used to stamp out new elements. */
  set cdkVirtualForTemplate(value) {
    if (value) {
      this._needsUpdate = true;
      this._template = value;
    }
  }
  /**
   * The size of the cache used to store templates that are not being used for re-use later.
   * Setting the cache size to `0` will disable caching. Defaults to 20 templates.
   */
  get cdkVirtualForTemplateCacheSize() {
    return this._viewRepeater.viewCacheSize;
  }
  set cdkVirtualForTemplateCacheSize(size) {
    this._viewRepeater.viewCacheSize = coerceNumberProperty(size);
  }
  constructor(_viewContainerRef, _template, _differs, _viewRepeater, _viewport, ngZone) {
    this._viewContainerRef = _viewContainerRef;
    this._template = _template;
    this._differs = _differs;
    this._viewRepeater = _viewRepeater;
    this._viewport = _viewport;
    this.viewChange = new Subject();
    this._dataSourceChanges = new Subject();
    this.dataStream = this._dataSourceChanges.pipe(
      // Start off with null `DataSource`.
      startWith(null),
      // Bundle up the previous and current data sources so we can work with both.
      pairwise(),
      // Use `_changeDataSource` to disconnect from the previous data source and connect to the
      // new one, passing back a stream of data changes which we run through `switchMap` to give
      // us a data stream that emits the latest data from whatever the current `DataSource` is.
      switchMap(([prev, cur]) => this._changeDataSource(prev, cur)),
      // Replay the last emitted data when someone subscribes.
      shareReplay(1)
    );
    this._differ = null;
    this._needsUpdate = false;
    this._destroyed = new Subject();
    this.dataStream.subscribe((data) => {
      this._data = data;
      this._onRenderedDataChange();
    });
    this._viewport.renderedRangeStream.pipe(takeUntil(this._destroyed)).subscribe((range) => {
      this._renderedRange = range;
      if (this.viewChange.observers.length) {
        ngZone.run(() => this.viewChange.next(this._renderedRange));
      }
      this._onRenderedDataChange();
    });
    this._viewport.attach(this);
  }
  /**
   * Measures the combined size (width for horizontal orientation, height for vertical) of all items
   * in the specified range. Throws an error if the range includes items that are not currently
   * rendered.
   */
  measureRangeSize(range, orientation) {
    if (range.start >= range.end) {
      return 0;
    }
    if ((range.start < this._renderedRange.start || range.end > this._renderedRange.end) && (typeof ngDevMode === "undefined" || ngDevMode)) {
      throw Error(`Error: attempted to measure an item that isn't rendered.`);
    }
    const renderedStartIndex = range.start - this._renderedRange.start;
    const rangeLen = range.end - range.start;
    let firstNode;
    let lastNode;
    for (let i = 0; i < rangeLen; i++) {
      const view = this._viewContainerRef.get(i + renderedStartIndex);
      if (view && view.rootNodes.length) {
        firstNode = lastNode = view.rootNodes[0];
        break;
      }
    }
    for (let i = rangeLen - 1; i > -1; i--) {
      const view = this._viewContainerRef.get(i + renderedStartIndex);
      if (view && view.rootNodes.length) {
        lastNode = view.rootNodes[view.rootNodes.length - 1];
        break;
      }
    }
    return firstNode && lastNode ? getOffset(orientation, "end", lastNode) - getOffset(orientation, "start", firstNode) : 0;
  }
  ngDoCheck() {
    if (this._differ && this._needsUpdate) {
      const changes = this._differ.diff(this._renderedItems);
      if (!changes) {
        this._updateContext();
      } else {
        this._applyChanges(changes);
      }
      this._needsUpdate = false;
    }
  }
  ngOnDestroy() {
    this._viewport.detach();
    this._dataSourceChanges.next(void 0);
    this._dataSourceChanges.complete();
    this.viewChange.complete();
    this._destroyed.next();
    this._destroyed.complete();
    this._viewRepeater.detach();
  }
  /** React to scroll state changes in the viewport. */
  _onRenderedDataChange() {
    if (!this._renderedRange) {
      return;
    }
    this._renderedItems = this._data.slice(this._renderedRange.start, this._renderedRange.end);
    if (!this._differ) {
      this._differ = this._differs.find(this._renderedItems).create((index, item) => {
        return this.cdkVirtualForTrackBy ? this.cdkVirtualForTrackBy(index, item) : item;
      });
    }
    this._needsUpdate = true;
  }
  /** Swap out one `DataSource` for another. */
  _changeDataSource(oldDs, newDs) {
    if (oldDs) {
      oldDs.disconnect(this);
    }
    this._needsUpdate = true;
    return newDs ? newDs.connect(this) : of();
  }
  /** Update the `CdkVirtualForOfContext` for all views. */
  _updateContext() {
    const count = this._data.length;
    let i = this._viewContainerRef.length;
    while (i--) {
      const view = this._viewContainerRef.get(i);
      view.context.index = this._renderedRange.start + i;
      view.context.count = count;
      this._updateComputedContextProperties(view.context);
      view.detectChanges();
    }
  }
  /** Apply changes to the DOM. */
  _applyChanges(changes) {
    this._viewRepeater.applyChanges(changes, this._viewContainerRef, (record, _adjustedPreviousIndex, currentIndex) => this._getEmbeddedViewArgs(record, currentIndex), (record) => record.item);
    changes.forEachIdentityChange((record) => {
      const view = this._viewContainerRef.get(record.currentIndex);
      view.context.$implicit = record.item;
    });
    const count = this._data.length;
    let i = this._viewContainerRef.length;
    while (i--) {
      const view = this._viewContainerRef.get(i);
      view.context.index = this._renderedRange.start + i;
      view.context.count = count;
      this._updateComputedContextProperties(view.context);
    }
  }
  /** Update the computed properties on the `CdkVirtualForOfContext`. */
  _updateComputedContextProperties(context) {
    context.first = context.index === 0;
    context.last = context.index === context.count - 1;
    context.even = context.index % 2 === 0;
    context.odd = !context.even;
  }
  _getEmbeddedViewArgs(record, index) {
    return {
      templateRef: this._template,
      context: {
        $implicit: record.item,
        // It's guaranteed that the iterable is not "undefined" or "null" because we only
        // generate views for elements if the "cdkVirtualForOf" iterable has elements.
        cdkVirtualForOf: this._cdkVirtualForOf,
        index: -1,
        count: -1,
        first: false,
        last: false,
        odd: false,
        even: false
      },
      index
    };
  }
};
_CdkVirtualForOf.\u0275fac = function CdkVirtualForOf_Factory(t) {
  return new (t || _CdkVirtualForOf)(\u0275\u0275directiveInject(ViewContainerRef), \u0275\u0275directiveInject(TemplateRef), \u0275\u0275directiveInject(IterableDiffers), \u0275\u0275directiveInject(_VIEW_REPEATER_STRATEGY), \u0275\u0275directiveInject(CdkVirtualScrollViewport, 4), \u0275\u0275directiveInject(NgZone));
};
_CdkVirtualForOf.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkVirtualForOf,
  selectors: [["", "cdkVirtualFor", "", "cdkVirtualForOf", ""]],
  inputs: {
    cdkVirtualForOf: "cdkVirtualForOf",
    cdkVirtualForTrackBy: "cdkVirtualForTrackBy",
    cdkVirtualForTemplate: "cdkVirtualForTemplate",
    cdkVirtualForTemplateCacheSize: "cdkVirtualForTemplateCacheSize"
  },
  standalone: true,
  features: [\u0275\u0275ProvidersFeature([{
    provide: _VIEW_REPEATER_STRATEGY,
    useClass: _RecycleViewRepeaterStrategy
  }])]
});
var CdkVirtualForOf = _CdkVirtualForOf;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkVirtualForOf, [{
    type: Directive,
    args: [{
      selector: "[cdkVirtualFor][cdkVirtualForOf]",
      providers: [{
        provide: _VIEW_REPEATER_STRATEGY,
        useClass: _RecycleViewRepeaterStrategy
      }],
      standalone: true
    }]
  }], () => [{
    type: ViewContainerRef
  }, {
    type: TemplateRef
  }, {
    type: IterableDiffers
  }, {
    type: _RecycleViewRepeaterStrategy,
    decorators: [{
      type: Inject,
      args: [_VIEW_REPEATER_STRATEGY]
    }]
  }, {
    type: CdkVirtualScrollViewport,
    decorators: [{
      type: SkipSelf
    }]
  }, {
    type: NgZone
  }], {
    cdkVirtualForOf: [{
      type: Input
    }],
    cdkVirtualForTrackBy: [{
      type: Input
    }],
    cdkVirtualForTemplate: [{
      type: Input
    }],
    cdkVirtualForTemplateCacheSize: [{
      type: Input
    }]
  });
})();
var _CdkVirtualScrollableElement = class _CdkVirtualScrollableElement extends CdkVirtualScrollable {
  constructor(elementRef, scrollDispatcher, ngZone, dir) {
    super(elementRef, scrollDispatcher, ngZone, dir);
  }
  measureBoundingClientRectWithScrollOffset(from) {
    return this.getElementRef().nativeElement.getBoundingClientRect()[from] - this.measureScrollOffset(from);
  }
};
_CdkVirtualScrollableElement.\u0275fac = function CdkVirtualScrollableElement_Factory(t) {
  return new (t || _CdkVirtualScrollableElement)(\u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(ScrollDispatcher), \u0275\u0275directiveInject(NgZone), \u0275\u0275directiveInject(Directionality, 8));
};
_CdkVirtualScrollableElement.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkVirtualScrollableElement,
  selectors: [["", "cdkVirtualScrollingElement", ""]],
  hostAttrs: [1, "cdk-virtual-scrollable"],
  standalone: true,
  features: [\u0275\u0275ProvidersFeature([{
    provide: VIRTUAL_SCROLLABLE,
    useExisting: _CdkVirtualScrollableElement
  }]), \u0275\u0275InheritDefinitionFeature]
});
var CdkVirtualScrollableElement = _CdkVirtualScrollableElement;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkVirtualScrollableElement, [{
    type: Directive,
    args: [{
      selector: "[cdkVirtualScrollingElement]",
      providers: [{
        provide: VIRTUAL_SCROLLABLE,
        useExisting: CdkVirtualScrollableElement
      }],
      standalone: true,
      host: {
        "class": "cdk-virtual-scrollable"
      }
    }]
  }], () => [{
    type: ElementRef
  }, {
    type: ScrollDispatcher
  }, {
    type: NgZone
  }, {
    type: Directionality,
    decorators: [{
      type: Optional
    }]
  }], null);
})();
var _CdkVirtualScrollableWindow = class _CdkVirtualScrollableWindow extends CdkVirtualScrollable {
  constructor(scrollDispatcher, ngZone, dir) {
    super(new ElementRef(document.documentElement), scrollDispatcher, ngZone, dir);
    this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(document, "scroll").pipe(takeUntil(this._destroyed)).subscribe(observer)));
  }
  measureBoundingClientRectWithScrollOffset(from) {
    return this.getElementRef().nativeElement.getBoundingClientRect()[from];
  }
};
_CdkVirtualScrollableWindow.\u0275fac = function CdkVirtualScrollableWindow_Factory(t) {
  return new (t || _CdkVirtualScrollableWindow)(\u0275\u0275directiveInject(ScrollDispatcher), \u0275\u0275directiveInject(NgZone), \u0275\u0275directiveInject(Directionality, 8));
};
_CdkVirtualScrollableWindow.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkVirtualScrollableWindow,
  selectors: [["cdk-virtual-scroll-viewport", "scrollWindow", ""]],
  standalone: true,
  features: [\u0275\u0275ProvidersFeature([{
    provide: VIRTUAL_SCROLLABLE,
    useExisting: _CdkVirtualScrollableWindow
  }]), \u0275\u0275InheritDefinitionFeature]
});
var CdkVirtualScrollableWindow = _CdkVirtualScrollableWindow;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkVirtualScrollableWindow, [{
    type: Directive,
    args: [{
      selector: "cdk-virtual-scroll-viewport[scrollWindow]",
      providers: [{
        provide: VIRTUAL_SCROLLABLE,
        useExisting: CdkVirtualScrollableWindow
      }],
      standalone: true
    }]
  }], () => [{
    type: ScrollDispatcher
  }, {
    type: NgZone
  }, {
    type: Directionality,
    decorators: [{
      type: Optional
    }]
  }], null);
})();
var _CdkScrollableModule = class _CdkScrollableModule {
};
_CdkScrollableModule.\u0275fac = function CdkScrollableModule_Factory(t) {
  return new (t || _CdkScrollableModule)();
};
_CdkScrollableModule.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({
  type: _CdkScrollableModule
});
_CdkScrollableModule.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({});
var CdkScrollableModule = _CdkScrollableModule;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkScrollableModule, [{
    type: NgModule,
    args: [{
      exports: [CdkScrollable],
      imports: [CdkScrollable]
    }]
  }], null, null);
})();
var _ScrollingModule = class _ScrollingModule {
};
_ScrollingModule.\u0275fac = function ScrollingModule_Factory(t) {
  return new (t || _ScrollingModule)();
};
_ScrollingModule.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({
  type: _ScrollingModule
});
_ScrollingModule.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({
  imports: [BidiModule, CdkScrollableModule, BidiModule, CdkScrollableModule]
});
var ScrollingModule = _ScrollingModule;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ScrollingModule, [{
    type: NgModule,
    args: [{
      imports: [BidiModule, CdkScrollableModule, CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollableWindow, CdkVirtualScrollableElement],
      exports: [BidiModule, CdkScrollableModule, CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollableWindow, CdkVirtualScrollableElement]
    }]
  }], null, null);
})();

// node_modules/@angular/cdk/fesm2022/keycodes.mjs
var SHIFT = 16;
var CONTROL = 17;
var ALT = 18;
var META = 91;
var MAC_META = 224;

// node_modules/@angular/cdk/fesm2022/observers.mjs
function shouldIgnoreRecord(record) {
  if (record.type === "characterData" && record.target instanceof Comment) {
    return true;
  }
  if (record.type === "childList") {
    for (let i = 0; i < record.addedNodes.length; i++) {
      if (!(record.addedNodes[i] instanceof Comment)) {
        return false;
      }
    }
    for (let i = 0; i < record.removedNodes.length; i++) {
      if (!(record.removedNodes[i] instanceof Comment)) {
        return false;
      }
    }
    return true;
  }
  return false;
}
var _MutationObserverFactory = class _MutationObserverFactory {
  create(callback) {
    return typeof MutationObserver === "undefined" ? null : new MutationObserver(callback);
  }
};
_MutationObserverFactory.\u0275fac = function MutationObserverFactory_Factory(t) {
  return new (t || _MutationObserverFactory)();
};
_MutationObserverFactory.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _MutationObserverFactory,
  factory: _MutationObserverFactory.\u0275fac,
  providedIn: "root"
});
var MutationObserverFactory = _MutationObserverFactory;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MutationObserverFactory, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], null, null);
})();
var _ContentObserver = class _ContentObserver {
  constructor(_mutationObserverFactory) {
    this._mutationObserverFactory = _mutationObserverFactory;
    this._observedElements = /* @__PURE__ */ new Map();
  }
  ngOnDestroy() {
    this._observedElements.forEach((_, element) => this._cleanupObserver(element));
  }
  observe(elementOrRef) {
    const element = coerceElement(elementOrRef);
    return new Observable((observer) => {
      const stream = this._observeElement(element);
      const subscription = stream.pipe(map((records) => records.filter((record) => !shouldIgnoreRecord(record))), filter((records) => !!records.length)).subscribe(observer);
      return () => {
        subscription.unsubscribe();
        this._unobserveElement(element);
      };
    });
  }
  /**
   * Observes the given element by using the existing MutationObserver if available, or creating a
   * new one if not.
   */
  _observeElement(element) {
    if (!this._observedElements.has(element)) {
      const stream = new Subject();
      const observer = this._mutationObserverFactory.create((mutations) => stream.next(mutations));
      if (observer) {
        observer.observe(element, {
          characterData: true,
          childList: true,
          subtree: true
        });
      }
      this._observedElements.set(element, {
        observer,
        stream,
        count: 1
      });
    } else {
      this._observedElements.get(element).count++;
    }
    return this._observedElements.get(element).stream;
  }
  /**
   * Un-observes the given element and cleans up the underlying MutationObserver if nobody else is
   * observing this element.
   */
  _unobserveElement(element) {
    if (this._observedElements.has(element)) {
      this._observedElements.get(element).count--;
      if (!this._observedElements.get(element).count) {
        this._cleanupObserver(element);
      }
    }
  }
  /** Clean up the underlying MutationObserver for the specified element. */
  _cleanupObserver(element) {
    if (this._observedElements.has(element)) {
      const {
        observer,
        stream
      } = this._observedElements.get(element);
      if (observer) {
        observer.disconnect();
      }
      stream.complete();
      this._observedElements.delete(element);
    }
  }
};
_ContentObserver.\u0275fac = function ContentObserver_Factory(t) {
  return new (t || _ContentObserver)(\u0275\u0275inject(MutationObserverFactory));
};
_ContentObserver.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _ContentObserver,
  factory: _ContentObserver.\u0275fac,
  providedIn: "root"
});
var ContentObserver = _ContentObserver;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ContentObserver, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: MutationObserverFactory
  }], null);
})();
var _CdkObserveContent = class _CdkObserveContent {
  /**
   * Whether observing content is disabled. This option can be used
   * to disconnect the underlying MutationObserver until it is needed.
   */
  get disabled() {
    return this._disabled;
  }
  set disabled(value) {
    this._disabled = value;
    this._disabled ? this._unsubscribe() : this._subscribe();
  }
  /** Debounce interval for emitting the changes. */
  get debounce() {
    return this._debounce;
  }
  set debounce(value) {
    this._debounce = coerceNumberProperty(value);
    this._subscribe();
  }
  constructor(_contentObserver, _elementRef, _ngZone) {
    this._contentObserver = _contentObserver;
    this._elementRef = _elementRef;
    this._ngZone = _ngZone;
    this.event = new EventEmitter();
    this._disabled = false;
    this._currentSubscription = null;
  }
  ngAfterContentInit() {
    if (!this._currentSubscription && !this.disabled) {
      this._subscribe();
    }
  }
  ngOnDestroy() {
    this._unsubscribe();
  }
  _subscribe() {
    this._unsubscribe();
    const stream = this._contentObserver.observe(this._elementRef);
    this._ngZone.runOutsideAngular(() => {
      this._currentSubscription = (this.debounce ? stream.pipe(debounceTime(this.debounce)) : stream).subscribe(this.event);
    });
  }
  _unsubscribe() {
    this._currentSubscription?.unsubscribe();
  }
};
_CdkObserveContent.\u0275fac = function CdkObserveContent_Factory(t) {
  return new (t || _CdkObserveContent)(\u0275\u0275directiveInject(ContentObserver), \u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(NgZone));
};
_CdkObserveContent.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkObserveContent,
  selectors: [["", "cdkObserveContent", ""]],
  inputs: {
    disabled: [InputFlags.HasDecoratorInputTransform, "cdkObserveContentDisabled", "disabled", booleanAttribute],
    debounce: "debounce"
  },
  outputs: {
    event: "cdkObserveContent"
  },
  exportAs: ["cdkObserveContent"],
  standalone: true,
  features: [\u0275\u0275InputTransformsFeature]
});
var CdkObserveContent = _CdkObserveContent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkObserveContent, [{
    type: Directive,
    args: [{
      selector: "[cdkObserveContent]",
      exportAs: "cdkObserveContent",
      standalone: true
    }]
  }], () => [{
    type: ContentObserver
  }, {
    type: ElementRef
  }, {
    type: NgZone
  }], {
    event: [{
      type: Output,
      args: ["cdkObserveContent"]
    }],
    disabled: [{
      type: Input,
      args: [{
        alias: "cdkObserveContentDisabled",
        transform: booleanAttribute
      }]
    }],
    debounce: [{
      type: Input
    }]
  });
})();
var _ObserversModule = class _ObserversModule {
};
_ObserversModule.\u0275fac = function ObserversModule_Factory(t) {
  return new (t || _ObserversModule)();
};
_ObserversModule.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({
  type: _ObserversModule
});
_ObserversModule.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({
  providers: [MutationObserverFactory]
});
var ObserversModule = _ObserversModule;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ObserversModule, [{
    type: NgModule,
    args: [{
      imports: [CdkObserveContent],
      exports: [CdkObserveContent],
      providers: [MutationObserverFactory]
    }]
  }], null, null);
})();

// node_modules/@angular/cdk/fesm2022/layout.mjs
var _LayoutModule = class _LayoutModule {
};
_LayoutModule.\u0275fac = function LayoutModule_Factory(t) {
  return new (t || _LayoutModule)();
};
_LayoutModule.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({
  type: _LayoutModule
});
_LayoutModule.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({});
var LayoutModule = _LayoutModule;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(LayoutModule, [{
    type: NgModule,
    args: [{}]
  }], null, null);
})();
var mediaQueriesForWebkitCompatibility = /* @__PURE__ */ new Set();
var mediaQueryStyleNode;
var _MediaMatcher = class _MediaMatcher {
  constructor(_platform, _nonce) {
    this._platform = _platform;
    this._nonce = _nonce;
    this._matchMedia = this._platform.isBrowser && window.matchMedia ? (
      // matchMedia is bound to the window scope intentionally as it is an illegal invocation to
      // call it from a different scope.
      window.matchMedia.bind(window)
    ) : noopMatchMedia;
  }
  /**
   * Evaluates the given media query and returns the native MediaQueryList from which results
   * can be retrieved.
   * Confirms the layout engine will trigger for the selector query provided and returns the
   * MediaQueryList for the query provided.
   */
  matchMedia(query) {
    if (this._platform.WEBKIT || this._platform.BLINK) {
      createEmptyStyleRule(query, this._nonce);
    }
    return this._matchMedia(query);
  }
};
_MediaMatcher.\u0275fac = function MediaMatcher_Factory(t) {
  return new (t || _MediaMatcher)(\u0275\u0275inject(Platform), \u0275\u0275inject(CSP_NONCE, 8));
};
_MediaMatcher.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _MediaMatcher,
  factory: _MediaMatcher.\u0275fac,
  providedIn: "root"
});
var MediaMatcher = _MediaMatcher;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MediaMatcher, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: Platform
  }, {
    type: void 0,
    decorators: [{
      type: Optional
    }, {
      type: Inject,
      args: [CSP_NONCE]
    }]
  }], null);
})();
function createEmptyStyleRule(query, nonce) {
  if (mediaQueriesForWebkitCompatibility.has(query)) {
    return;
  }
  try {
    if (!mediaQueryStyleNode) {
      mediaQueryStyleNode = document.createElement("style");
      if (nonce) {
        mediaQueryStyleNode.setAttribute("nonce", nonce);
      }
      mediaQueryStyleNode.setAttribute("type", "text/css");
      document.head.appendChild(mediaQueryStyleNode);
    }
    if (mediaQueryStyleNode.sheet) {
      mediaQueryStyleNode.sheet.insertRule(`@media ${query} {body{ }}`, 0);
      mediaQueriesForWebkitCompatibility.add(query);
    }
  } catch (e) {
    console.error(e);
  }
}
function noopMatchMedia(query) {
  return {
    matches: query === "all" || query === "",
    media: query,
    addListener: () => {
    },
    removeListener: () => {
    }
  };
}
var _BreakpointObserver = class _BreakpointObserver {
  constructor(_mediaMatcher, _zone) {
    this._mediaMatcher = _mediaMatcher;
    this._zone = _zone;
    this._queries = /* @__PURE__ */ new Map();
    this._destroySubject = new Subject();
  }
  /** Completes the active subject, signalling to all other observables to complete. */
  ngOnDestroy() {
    this._destroySubject.next();
    this._destroySubject.complete();
  }
  /**
   * Whether one or more media queries match the current viewport size.
   * @param value One or more media queries to check.
   * @returns Whether any of the media queries match.
   */
  isMatched(value) {
    const queries = splitQueries(coerceArray(value));
    return queries.some((mediaQuery) => this._registerQuery(mediaQuery).mql.matches);
  }
  /**
   * Gets an observable of results for the given queries that will emit new results for any changes
   * in matching of the given queries.
   * @param value One or more media queries to check.
   * @returns A stream of matches for the given queries.
   */
  observe(value) {
    const queries = splitQueries(coerceArray(value));
    const observables = queries.map((query) => this._registerQuery(query).observable);
    let stateObservable = combineLatest(observables);
    stateObservable = concat(stateObservable.pipe(take(1)), stateObservable.pipe(skip(1), debounceTime(0)));
    return stateObservable.pipe(map((breakpointStates) => {
      const response = {
        matches: false,
        breakpoints: {}
      };
      breakpointStates.forEach(({
        matches,
        query
      }) => {
        response.matches = response.matches || matches;
        response.breakpoints[query] = matches;
      });
      return response;
    }));
  }
  /** Registers a specific query to be listened for. */
  _registerQuery(query) {
    if (this._queries.has(query)) {
      return this._queries.get(query);
    }
    const mql = this._mediaMatcher.matchMedia(query);
    const queryObservable = new Observable((observer) => {
      const handler = (e) => this._zone.run(() => observer.next(e));
      mql.addListener(handler);
      return () => {
        mql.removeListener(handler);
      };
    }).pipe(startWith(mql), map(({
      matches
    }) => ({
      query,
      matches
    })), takeUntil(this._destroySubject));
    const output = {
      observable: queryObservable,
      mql
    };
    this._queries.set(query, output);
    return output;
  }
};
_BreakpointObserver.\u0275fac = function BreakpointObserver_Factory(t) {
  return new (t || _BreakpointObserver)(\u0275\u0275inject(MediaMatcher), \u0275\u0275inject(NgZone));
};
_BreakpointObserver.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _BreakpointObserver,
  factory: _BreakpointObserver.\u0275fac,
  providedIn: "root"
});
var BreakpointObserver = _BreakpointObserver;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(BreakpointObserver, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: MediaMatcher
  }, {
    type: NgZone
  }], null);
})();
function splitQueries(queries) {
  return queries.map((query) => query.split(",")).reduce((a1, a2) => a1.concat(a2)).map((query) => query.trim());
}

// node_modules/@angular/cdk/fesm2022/a11y.mjs
var ID_DELIMITER = " ";
function addAriaReferencedId(el, attr, id) {
  const ids = getAriaReferenceIds(el, attr);
  id = id.trim();
  if (ids.some((existingId) => existingId.trim() === id)) {
    return;
  }
  ids.push(id);
  el.setAttribute(attr, ids.join(ID_DELIMITER));
}
function removeAriaReferencedId(el, attr, id) {
  const ids = getAriaReferenceIds(el, attr);
  id = id.trim();
  const filteredIds = ids.filter((val) => val !== id);
  if (filteredIds.length) {
    el.setAttribute(attr, filteredIds.join(ID_DELIMITER));
  } else {
    el.removeAttribute(attr);
  }
}
function getAriaReferenceIds(el, attr) {
  const attrValue = el.getAttribute(attr);
  return attrValue?.match(/\S+/g) ?? [];
}
var CDK_DESCRIBEDBY_ID_PREFIX = "cdk-describedby-message";
var CDK_DESCRIBEDBY_HOST_ATTRIBUTE = "cdk-describedby-host";
var nextId = 0;
var _AriaDescriber = class _AriaDescriber {
  constructor(_document, _platform) {
    this._platform = _platform;
    this._messageRegistry = /* @__PURE__ */ new Map();
    this._messagesContainer = null;
    this._id = `${nextId++}`;
    this._document = _document;
    this._id = inject(APP_ID) + "-" + nextId++;
  }
  describe(hostElement, message, role) {
    if (!this._canBeDescribed(hostElement, message)) {
      return;
    }
    const key = getKey(message, role);
    if (typeof message !== "string") {
      setMessageId(message, this._id);
      this._messageRegistry.set(key, {
        messageElement: message,
        referenceCount: 0
      });
    } else if (!this._messageRegistry.has(key)) {
      this._createMessageElement(message, role);
    }
    if (!this._isElementDescribedByMessage(hostElement, key)) {
      this._addMessageReference(hostElement, key);
    }
  }
  removeDescription(hostElement, message, role) {
    if (!message || !this._isElementNode(hostElement)) {
      return;
    }
    const key = getKey(message, role);
    if (this._isElementDescribedByMessage(hostElement, key)) {
      this._removeMessageReference(hostElement, key);
    }
    if (typeof message === "string") {
      const registeredMessage = this._messageRegistry.get(key);
      if (registeredMessage && registeredMessage.referenceCount === 0) {
        this._deleteMessageElement(key);
      }
    }
    if (this._messagesContainer?.childNodes.length === 0) {
      this._messagesContainer.remove();
      this._messagesContainer = null;
    }
  }
  /** Unregisters all created message elements and removes the message container. */
  ngOnDestroy() {
    const describedElements = this._document.querySelectorAll(`[${CDK_DESCRIBEDBY_HOST_ATTRIBUTE}="${this._id}"]`);
    for (let i = 0; i < describedElements.length; i++) {
      this._removeCdkDescribedByReferenceIds(describedElements[i]);
      describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);
    }
    this._messagesContainer?.remove();
    this._messagesContainer = null;
    this._messageRegistry.clear();
  }
  /**
   * Creates a new element in the visually hidden message container element with the message
   * as its content and adds it to the message registry.
   */
  _createMessageElement(message, role) {
    const messageElement = this._document.createElement("div");
    setMessageId(messageElement, this._id);
    messageElement.textContent = message;
    if (role) {
      messageElement.setAttribute("role", role);
    }
    this._createMessagesContainer();
    this._messagesContainer.appendChild(messageElement);
    this._messageRegistry.set(getKey(message, role), {
      messageElement,
      referenceCount: 0
    });
  }
  /** Deletes the message element from the global messages container. */
  _deleteMessageElement(key) {
    this._messageRegistry.get(key)?.messageElement?.remove();
    this._messageRegistry.delete(key);
  }
  /** Creates the global container for all aria-describedby messages. */
  _createMessagesContainer() {
    if (this._messagesContainer) {
      return;
    }
    const containerClassName = "cdk-describedby-message-container";
    const serverContainers = this._document.querySelectorAll(`.${containerClassName}[platform="server"]`);
    for (let i = 0; i < serverContainers.length; i++) {
      serverContainers[i].remove();
    }
    const messagesContainer = this._document.createElement("div");
    messagesContainer.style.visibility = "hidden";
    messagesContainer.classList.add(containerClassName);
    messagesContainer.classList.add("cdk-visually-hidden");
    if (this._platform && !this._platform.isBrowser) {
      messagesContainer.setAttribute("platform", "server");
    }
    this._document.body.appendChild(messagesContainer);
    this._messagesContainer = messagesContainer;
  }
  /** Removes all cdk-describedby messages that are hosted through the element. */
  _removeCdkDescribedByReferenceIds(element) {
    const originalReferenceIds = getAriaReferenceIds(element, "aria-describedby").filter((id) => id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0);
    element.setAttribute("aria-describedby", originalReferenceIds.join(" "));
  }
  /**
   * Adds a message reference to the element using aria-describedby and increments the registered
   * message's reference count.
   */
  _addMessageReference(element, key) {
    const registeredMessage = this._messageRegistry.get(key);
    addAriaReferencedId(element, "aria-describedby", registeredMessage.messageElement.id);
    element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, this._id);
    registeredMessage.referenceCount++;
  }
  /**
   * Removes a message reference from the element using aria-describedby
   * and decrements the registered message's reference count.
   */
  _removeMessageReference(element, key) {
    const registeredMessage = this._messageRegistry.get(key);
    registeredMessage.referenceCount--;
    removeAriaReferencedId(element, "aria-describedby", registeredMessage.messageElement.id);
    element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);
  }
  /** Returns true if the element has been described by the provided message ID. */
  _isElementDescribedByMessage(element, key) {
    const referenceIds = getAriaReferenceIds(element, "aria-describedby");
    const registeredMessage = this._messageRegistry.get(key);
    const messageId = registeredMessage && registeredMessage.messageElement.id;
    return !!messageId && referenceIds.indexOf(messageId) != -1;
  }
  /** Determines whether a message can be described on a particular element. */
  _canBeDescribed(element, message) {
    if (!this._isElementNode(element)) {
      return false;
    }
    if (message && typeof message === "object") {
      return true;
    }
    const trimmedMessage = message == null ? "" : `${message}`.trim();
    const ariaLabel = element.getAttribute("aria-label");
    return trimmedMessage ? !ariaLabel || ariaLabel.trim() !== trimmedMessage : false;
  }
  /** Checks whether a node is an Element node. */
  _isElementNode(element) {
    return element.nodeType === this._document.ELEMENT_NODE;
  }
};
_AriaDescriber.\u0275fac = function AriaDescriber_Factory(t) {
  return new (t || _AriaDescriber)(\u0275\u0275inject(DOCUMENT), \u0275\u0275inject(Platform));
};
_AriaDescriber.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _AriaDescriber,
  factory: _AriaDescriber.\u0275fac,
  providedIn: "root"
});
var AriaDescriber = _AriaDescriber;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(AriaDescriber, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: void 0,
    decorators: [{
      type: Inject,
      args: [DOCUMENT]
    }]
  }, {
    type: Platform
  }], null);
})();
function getKey(message, role) {
  return typeof message === "string" ? `${role || ""}/${message}` : message;
}
function setMessageId(element, serviceId) {
  if (!element.id) {
    element.id = `${CDK_DESCRIBEDBY_ID_PREFIX}-${serviceId}-${nextId++}`;
  }
}
var _InteractivityChecker = class _InteractivityChecker {
  constructor(_platform) {
    this._platform = _platform;
  }
  /**
   * Gets whether an element is disabled.
   *
   * @param element Element to be checked.
   * @returns Whether the element is disabled.
   */
  isDisabled(element) {
    return element.hasAttribute("disabled");
  }
  /**
   * Gets whether an element is visible for the purposes of interactivity.
   *
   * This will capture states like `display: none` and `visibility: hidden`, but not things like
   * being clipped by an `overflow: hidden` parent or being outside the viewport.
   *
   * @returns Whether the element is visible.
   */
  isVisible(element) {
    return hasGeometry(element) && getComputedStyle(element).visibility === "visible";
  }
  /**
   * Gets whether an element can be reached via Tab key.
   * Assumes that the element has already been checked with isFocusable.
   *
   * @param element Element to be checked.
   * @returns Whether the element is tabbable.
   */
  isTabbable(element) {
    if (!this._platform.isBrowser) {
      return false;
    }
    const frameElement = getFrameElement(getWindow(element));
    if (frameElement) {
      if (getTabIndexValue(frameElement) === -1) {
        return false;
      }
      if (!this.isVisible(frameElement)) {
        return false;
      }
    }
    let nodeName = element.nodeName.toLowerCase();
    let tabIndexValue = getTabIndexValue(element);
    if (element.hasAttribute("contenteditable")) {
      return tabIndexValue !== -1;
    }
    if (nodeName === "iframe" || nodeName === "object") {
      return false;
    }
    if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {
      return false;
    }
    if (nodeName === "audio") {
      if (!element.hasAttribute("controls")) {
        return false;
      }
      return tabIndexValue !== -1;
    }
    if (nodeName === "video") {
      if (tabIndexValue === -1) {
        return false;
      }
      if (tabIndexValue !== null) {
        return true;
      }
      return this._platform.FIREFOX || element.hasAttribute("controls");
    }
    return element.tabIndex >= 0;
  }
  /**
   * Gets whether an element can be focused by the user.
   *
   * @param element Element to be checked.
   * @param config The config object with options to customize this method's behavior
   * @returns Whether the element is focusable.
   */
  isFocusable(element, config) {
    return isPotentiallyFocusable(element) && !this.isDisabled(element) && (config?.ignoreVisibility || this.isVisible(element));
  }
};
_InteractivityChecker.\u0275fac = function InteractivityChecker_Factory(t) {
  return new (t || _InteractivityChecker)(\u0275\u0275inject(Platform));
};
_InteractivityChecker.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _InteractivityChecker,
  factory: _InteractivityChecker.\u0275fac,
  providedIn: "root"
});
var InteractivityChecker = _InteractivityChecker;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(InteractivityChecker, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: Platform
  }], null);
})();
function getFrameElement(window2) {
  try {
    return window2.frameElement;
  } catch {
    return null;
  }
}
function hasGeometry(element) {
  return !!(element.offsetWidth || element.offsetHeight || typeof element.getClientRects === "function" && element.getClientRects().length);
}
function isNativeFormElement(element) {
  let nodeName = element.nodeName.toLowerCase();
  return nodeName === "input" || nodeName === "select" || nodeName === "button" || nodeName === "textarea";
}
function isHiddenInput(element) {
  return isInputElement(element) && element.type == "hidden";
}
function isAnchorWithHref(element) {
  return isAnchorElement(element) && element.hasAttribute("href");
}
function isInputElement(element) {
  return element.nodeName.toLowerCase() == "input";
}
function isAnchorElement(element) {
  return element.nodeName.toLowerCase() == "a";
}
function hasValidTabIndex(element) {
  if (!element.hasAttribute("tabindex") || element.tabIndex === void 0) {
    return false;
  }
  let tabIndex = element.getAttribute("tabindex");
  return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));
}
function getTabIndexValue(element) {
  if (!hasValidTabIndex(element)) {
    return null;
  }
  const tabIndex = parseInt(element.getAttribute("tabindex") || "", 10);
  return isNaN(tabIndex) ? -1 : tabIndex;
}
function isPotentiallyTabbableIOS(element) {
  let nodeName = element.nodeName.toLowerCase();
  let inputType = nodeName === "input" && element.type;
  return inputType === "text" || inputType === "password" || nodeName === "select" || nodeName === "textarea";
}
function isPotentiallyFocusable(element) {
  if (isHiddenInput(element)) {
    return false;
  }
  return isNativeFormElement(element) || isAnchorWithHref(element) || element.hasAttribute("contenteditable") || hasValidTabIndex(element);
}
function getWindow(node) {
  return node.ownerDocument && node.ownerDocument.defaultView || window;
}
var FocusTrap = class {
  /** Whether the focus trap is active. */
  get enabled() {
    return this._enabled;
  }
  set enabled(value) {
    this._enabled = value;
    if (this._startAnchor && this._endAnchor) {
      this._toggleAnchorTabIndex(value, this._startAnchor);
      this._toggleAnchorTabIndex(value, this._endAnchor);
    }
  }
  constructor(_element, _checker, _ngZone, _document, deferAnchors = false) {
    this._element = _element;
    this._checker = _checker;
    this._ngZone = _ngZone;
    this._document = _document;
    this._hasAttached = false;
    this.startAnchorListener = () => this.focusLastTabbableElement();
    this.endAnchorListener = () => this.focusFirstTabbableElement();
    this._enabled = true;
    if (!deferAnchors) {
      this.attachAnchors();
    }
  }
  /** Destroys the focus trap by cleaning up the anchors. */
  destroy() {
    const startAnchor = this._startAnchor;
    const endAnchor = this._endAnchor;
    if (startAnchor) {
      startAnchor.removeEventListener("focus", this.startAnchorListener);
      startAnchor.remove();
    }
    if (endAnchor) {
      endAnchor.removeEventListener("focus", this.endAnchorListener);
      endAnchor.remove();
    }
    this._startAnchor = this._endAnchor = null;
    this._hasAttached = false;
  }
  /**
   * Inserts the anchors into the DOM. This is usually done automatically
   * in the constructor, but can be deferred for cases like directives with `*ngIf`.
   * @returns Whether the focus trap managed to attach successfully. This may not be the case
   * if the target element isn't currently in the DOM.
   */
  attachAnchors() {
    if (this._hasAttached) {
      return true;
    }
    this._ngZone.runOutsideAngular(() => {
      if (!this._startAnchor) {
        this._startAnchor = this._createAnchor();
        this._startAnchor.addEventListener("focus", this.startAnchorListener);
      }
      if (!this._endAnchor) {
        this._endAnchor = this._createAnchor();
        this._endAnchor.addEventListener("focus", this.endAnchorListener);
      }
    });
    if (this._element.parentNode) {
      this._element.parentNode.insertBefore(this._startAnchor, this._element);
      this._element.parentNode.insertBefore(this._endAnchor, this._element.nextSibling);
      this._hasAttached = true;
    }
    return this._hasAttached;
  }
  /**
   * Waits for the zone to stabilize, then focuses the first tabbable element.
   * @returns Returns a promise that resolves with a boolean, depending
   * on whether focus was moved successfully.
   */
  focusInitialElementWhenReady(options) {
    return new Promise((resolve) => {
      this._executeOnStable(() => resolve(this.focusInitialElement(options)));
    });
  }
  /**
   * Waits for the zone to stabilize, then focuses
   * the first tabbable element within the focus trap region.
   * @returns Returns a promise that resolves with a boolean, depending
   * on whether focus was moved successfully.
   */
  focusFirstTabbableElementWhenReady(options) {
    return new Promise((resolve) => {
      this._executeOnStable(() => resolve(this.focusFirstTabbableElement(options)));
    });
  }
  /**
   * Waits for the zone to stabilize, then focuses
   * the last tabbable element within the focus trap region.
   * @returns Returns a promise that resolves with a boolean, depending
   * on whether focus was moved successfully.
   */
  focusLastTabbableElementWhenReady(options) {
    return new Promise((resolve) => {
      this._executeOnStable(() => resolve(this.focusLastTabbableElement(options)));
    });
  }
  /**
   * Get the specified boundary element of the trapped region.
   * @param bound The boundary to get (start or end of trapped region).
   * @returns The boundary element.
   */
  _getRegionBoundary(bound) {
    const markers = this._element.querySelectorAll(`[cdk-focus-region-${bound}], [cdkFocusRegion${bound}], [cdk-focus-${bound}]`);
    if (typeof ngDevMode === "undefined" || ngDevMode) {
      for (let i = 0; i < markers.length; i++) {
        if (markers[i].hasAttribute(`cdk-focus-${bound}`)) {
          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]);
        } else if (markers[i].hasAttribute(`cdk-focus-region-${bound}`)) {
          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]);
        }
      }
    }
    if (bound == "start") {
      return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);
    }
    return markers.length ? markers[markers.length - 1] : this._getLastTabbableElement(this._element);
  }
  /**
   * Focuses the element that should be focused when the focus trap is initialized.
   * @returns Whether focus was moved successfully.
   */
  focusInitialElement(options) {
    const redirectToElement = this._element.querySelector(`[cdk-focus-initial], [cdkFocusInitial]`);
    if (redirectToElement) {
      if ((typeof ngDevMode === "undefined" || ngDevMode) && redirectToElement.hasAttribute(`cdk-focus-initial`)) {
        console.warn(`Found use of deprecated attribute 'cdk-focus-initial', use 'cdkFocusInitial' instead. The deprecated attribute will be removed in 8.0.0`, redirectToElement);
      }
      if ((typeof ngDevMode === "undefined" || ngDevMode) && !this._checker.isFocusable(redirectToElement)) {
        console.warn(`Element matching '[cdkFocusInitial]' is not focusable.`, redirectToElement);
      }
      if (!this._checker.isFocusable(redirectToElement)) {
        const focusableChild = this._getFirstTabbableElement(redirectToElement);
        focusableChild?.focus(options);
        return !!focusableChild;
      }
      redirectToElement.focus(options);
      return true;
    }
    return this.focusFirstTabbableElement(options);
  }
  /**
   * Focuses the first tabbable element within the focus trap region.
   * @returns Whether focus was moved successfully.
   */
  focusFirstTabbableElement(options) {
    const redirectToElement = this._getRegionBoundary("start");
    if (redirectToElement) {
      redirectToElement.focus(options);
    }
    return !!redirectToElement;
  }
  /**
   * Focuses the last tabbable element within the focus trap region.
   * @returns Whether focus was moved successfully.
   */
  focusLastTabbableElement(options) {
    const redirectToElement = this._getRegionBoundary("end");
    if (redirectToElement) {
      redirectToElement.focus(options);
    }
    return !!redirectToElement;
  }
  /**
   * Checks whether the focus trap has successfully been attached.
   */
  hasAttached() {
    return this._hasAttached;
  }
  /** Get the first tabbable element from a DOM subtree (inclusive). */
  _getFirstTabbableElement(root) {
    if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {
      return root;
    }
    const children = root.children;
    for (let i = 0; i < children.length; i++) {
      const tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE ? this._getFirstTabbableElement(children[i]) : null;
      if (tabbableChild) {
        return tabbableChild;
      }
    }
    return null;
  }
  /** Get the last tabbable element from a DOM subtree (inclusive). */
  _getLastTabbableElement(root) {
    if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {
      return root;
    }
    const children = root.children;
    for (let i = children.length - 1; i >= 0; i--) {
      const tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE ? this._getLastTabbableElement(children[i]) : null;
      if (tabbableChild) {
        return tabbableChild;
      }
    }
    return null;
  }
  /** Creates an anchor element. */
  _createAnchor() {
    const anchor = this._document.createElement("div");
    this._toggleAnchorTabIndex(this._enabled, anchor);
    anchor.classList.add("cdk-visually-hidden");
    anchor.classList.add("cdk-focus-trap-anchor");
    anchor.setAttribute("aria-hidden", "true");
    return anchor;
  }
  /**
   * Toggles the `tabindex` of an anchor, based on the enabled state of the focus trap.
   * @param isEnabled Whether the focus trap is enabled.
   * @param anchor Anchor on which to toggle the tabindex.
   */
  _toggleAnchorTabIndex(isEnabled, anchor) {
    isEnabled ? anchor.setAttribute("tabindex", "0") : anchor.removeAttribute("tabindex");
  }
  /**
   * Toggles the`tabindex` of both anchors to either trap Tab focus or allow it to escape.
   * @param enabled: Whether the anchors should trap Tab.
   */
  toggleAnchors(enabled) {
    if (this._startAnchor && this._endAnchor) {
      this._toggleAnchorTabIndex(enabled, this._startAnchor);
      this._toggleAnchorTabIndex(enabled, this._endAnchor);
    }
  }
  /** Executes a function when the zone is stable. */
  _executeOnStable(fn) {
    if (this._ngZone.isStable) {
      fn();
    } else {
      this._ngZone.onStable.pipe(take(1)).subscribe(fn);
    }
  }
};
var _FocusTrapFactory = class _FocusTrapFactory {
  constructor(_checker, _ngZone, _document) {
    this._checker = _checker;
    this._ngZone = _ngZone;
    this._document = _document;
  }
  /**
   * Creates a focus-trapped region around the given element.
   * @param element The element around which focus will be trapped.
   * @param deferCaptureElements Defers the creation of focus-capturing elements to be done
   *     manually by the user.
   * @returns The created focus trap instance.
   */
  create(element, deferCaptureElements = false) {
    return new FocusTrap(element, this._checker, this._ngZone, this._document, deferCaptureElements);
  }
};
_FocusTrapFactory.\u0275fac = function FocusTrapFactory_Factory(t) {
  return new (t || _FocusTrapFactory)(\u0275\u0275inject(InteractivityChecker), \u0275\u0275inject(NgZone), \u0275\u0275inject(DOCUMENT));
};
_FocusTrapFactory.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _FocusTrapFactory,
  factory: _FocusTrapFactory.\u0275fac,
  providedIn: "root"
});
var FocusTrapFactory = _FocusTrapFactory;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(FocusTrapFactory, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: InteractivityChecker
  }, {
    type: NgZone
  }, {
    type: void 0,
    decorators: [{
      type: Inject,
      args: [DOCUMENT]
    }]
  }], null);
})();
var _CdkTrapFocus = class _CdkTrapFocus {
  /** Whether the focus trap is active. */
  get enabled() {
    return this.focusTrap?.enabled || false;
  }
  set enabled(value) {
    if (this.focusTrap) {
      this.focusTrap.enabled = value;
    }
  }
  constructor(_elementRef, _focusTrapFactory, _document) {
    this._elementRef = _elementRef;
    this._focusTrapFactory = _focusTrapFactory;
    this._previouslyFocusedElement = null;
    const platform = inject(Platform);
    if (platform.isBrowser) {
      this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);
    }
  }
  ngOnDestroy() {
    this.focusTrap?.destroy();
    if (this._previouslyFocusedElement) {
      this._previouslyFocusedElement.focus();
      this._previouslyFocusedElement = null;
    }
  }
  ngAfterContentInit() {
    this.focusTrap?.attachAnchors();
    if (this.autoCapture) {
      this._captureFocus();
    }
  }
  ngDoCheck() {
    if (this.focusTrap && !this.focusTrap.hasAttached()) {
      this.focusTrap.attachAnchors();
    }
  }
  ngOnChanges(changes) {
    const autoCaptureChange = changes["autoCapture"];
    if (autoCaptureChange && !autoCaptureChange.firstChange && this.autoCapture && this.focusTrap?.hasAttached()) {
      this._captureFocus();
    }
  }
  _captureFocus() {
    this._previouslyFocusedElement = _getFocusedElementPierceShadowDom();
    this.focusTrap?.focusInitialElementWhenReady();
  }
};
_CdkTrapFocus.\u0275fac = function CdkTrapFocus_Factory(t) {
  return new (t || _CdkTrapFocus)(\u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(FocusTrapFactory), \u0275\u0275directiveInject(DOCUMENT));
};
_CdkTrapFocus.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkTrapFocus,
  selectors: [["", "cdkTrapFocus", ""]],
  inputs: {
    enabled: [InputFlags.HasDecoratorInputTransform, "cdkTrapFocus", "enabled", booleanAttribute],
    autoCapture: [InputFlags.HasDecoratorInputTransform, "cdkTrapFocusAutoCapture", "autoCapture", booleanAttribute]
  },
  exportAs: ["cdkTrapFocus"],
  standalone: true,
  features: [\u0275\u0275InputTransformsFeature, \u0275\u0275NgOnChangesFeature]
});
var CdkTrapFocus = _CdkTrapFocus;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkTrapFocus, [{
    type: Directive,
    args: [{
      selector: "[cdkTrapFocus]",
      exportAs: "cdkTrapFocus",
      standalone: true
    }]
  }], () => [{
    type: ElementRef
  }, {
    type: FocusTrapFactory
  }, {
    type: void 0,
    decorators: [{
      type: Inject,
      args: [DOCUMENT]
    }]
  }], {
    enabled: [{
      type: Input,
      args: [{
        alias: "cdkTrapFocus",
        transform: booleanAttribute
      }]
    }],
    autoCapture: [{
      type: Input,
      args: [{
        alias: "cdkTrapFocusAutoCapture",
        transform: booleanAttribute
      }]
    }]
  });
})();
var ConfigurableFocusTrap = class extends FocusTrap {
  /** Whether the FocusTrap is enabled. */
  get enabled() {
    return this._enabled;
  }
  set enabled(value) {
    this._enabled = value;
    if (this._enabled) {
      this._focusTrapManager.register(this);
    } else {
      this._focusTrapManager.deregister(this);
    }
  }
  constructor(_element, _checker, _ngZone, _document, _focusTrapManager, _inertStrategy, config) {
    super(_element, _checker, _ngZone, _document, config.defer);
    this._focusTrapManager = _focusTrapManager;
    this._inertStrategy = _inertStrategy;
    this._focusTrapManager.register(this);
  }
  /** Notifies the FocusTrapManager that this FocusTrap will be destroyed. */
  destroy() {
    this._focusTrapManager.deregister(this);
    super.destroy();
  }
  /** @docs-private Implemented as part of ManagedFocusTrap. */
  _enable() {
    this._inertStrategy.preventFocus(this);
    this.toggleAnchors(true);
  }
  /** @docs-private Implemented as part of ManagedFocusTrap. */
  _disable() {
    this._inertStrategy.allowFocus(this);
    this.toggleAnchors(false);
  }
};
var FOCUS_TRAP_INERT_STRATEGY = new InjectionToken("FOCUS_TRAP_INERT_STRATEGY");
var EventListenerFocusTrapInertStrategy = class {
  constructor() {
    this._listener = null;
  }
  /** Adds a document event listener that keeps focus inside the FocusTrap. */
  preventFocus(focusTrap) {
    if (this._listener) {
      focusTrap._document.removeEventListener("focus", this._listener, true);
    }
    this._listener = (e) => this._trapFocus(focusTrap, e);
    focusTrap._ngZone.runOutsideAngular(() => {
      focusTrap._document.addEventListener("focus", this._listener, true);
    });
  }
  /** Removes the event listener added in preventFocus. */
  allowFocus(focusTrap) {
    if (!this._listener) {
      return;
    }
    focusTrap._document.removeEventListener("focus", this._listener, true);
    this._listener = null;
  }
  /**
   * Refocuses the first element in the FocusTrap if the focus event target was outside
   * the FocusTrap.
   *
   * This is an event listener callback. The event listener is added in runOutsideAngular,
   * so all this code runs outside Angular as well.
   */
  _trapFocus(focusTrap, event) {
    const target = event.target;
    const focusTrapRoot = focusTrap._element;
    if (target && !focusTrapRoot.contains(target) && !target.closest?.("div.cdk-overlay-pane")) {
      setTimeout(() => {
        if (focusTrap.enabled && !focusTrapRoot.contains(focusTrap._document.activeElement)) {
          focusTrap.focusFirstTabbableElement();
        }
      });
    }
  }
};
var _FocusTrapManager = class _FocusTrapManager {
  constructor() {
    this._focusTrapStack = [];
  }
  /**
   * Disables the FocusTrap at the top of the stack, and then pushes
   * the new FocusTrap onto the stack.
   */
  register(focusTrap) {
    this._focusTrapStack = this._focusTrapStack.filter((ft) => ft !== focusTrap);
    let stack = this._focusTrapStack;
    if (stack.length) {
      stack[stack.length - 1]._disable();
    }
    stack.push(focusTrap);
    focusTrap._enable();
  }
  /**
   * Removes the FocusTrap from the stack, and activates the
   * FocusTrap that is the new top of the stack.
   */
  deregister(focusTrap) {
    focusTrap._disable();
    const stack = this._focusTrapStack;
    const i = stack.indexOf(focusTrap);
    if (i !== -1) {
      stack.splice(i, 1);
      if (stack.length) {
        stack[stack.length - 1]._enable();
      }
    }
  }
};
_FocusTrapManager.\u0275fac = function FocusTrapManager_Factory(t) {
  return new (t || _FocusTrapManager)();
};
_FocusTrapManager.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _FocusTrapManager,
  factory: _FocusTrapManager.\u0275fac,
  providedIn: "root"
});
var FocusTrapManager = _FocusTrapManager;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(FocusTrapManager, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], null, null);
})();
var _ConfigurableFocusTrapFactory = class _ConfigurableFocusTrapFactory {
  constructor(_checker, _ngZone, _focusTrapManager, _document, _inertStrategy) {
    this._checker = _checker;
    this._ngZone = _ngZone;
    this._focusTrapManager = _focusTrapManager;
    this._document = _document;
    this._inertStrategy = _inertStrategy || new EventListenerFocusTrapInertStrategy();
  }
  create(element, config = {
    defer: false
  }) {
    let configObject;
    if (typeof config === "boolean") {
      configObject = {
        defer: config
      };
    } else {
      configObject = config;
    }
    return new ConfigurableFocusTrap(element, this._checker, this._ngZone, this._document, this._focusTrapManager, this._inertStrategy, configObject);
  }
};
_ConfigurableFocusTrapFactory.\u0275fac = function ConfigurableFocusTrapFactory_Factory(t) {
  return new (t || _ConfigurableFocusTrapFactory)(\u0275\u0275inject(InteractivityChecker), \u0275\u0275inject(NgZone), \u0275\u0275inject(FocusTrapManager), \u0275\u0275inject(DOCUMENT), \u0275\u0275inject(FOCUS_TRAP_INERT_STRATEGY, 8));
};
_ConfigurableFocusTrapFactory.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _ConfigurableFocusTrapFactory,
  factory: _ConfigurableFocusTrapFactory.\u0275fac,
  providedIn: "root"
});
var ConfigurableFocusTrapFactory = _ConfigurableFocusTrapFactory;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ConfigurableFocusTrapFactory, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: InteractivityChecker
  }, {
    type: NgZone
  }, {
    type: FocusTrapManager
  }, {
    type: void 0,
    decorators: [{
      type: Inject,
      args: [DOCUMENT]
    }]
  }, {
    type: void 0,
    decorators: [{
      type: Optional
    }, {
      type: Inject,
      args: [FOCUS_TRAP_INERT_STRATEGY]
    }]
  }], null);
})();
function isFakeMousedownFromScreenReader(event) {
  return event.buttons === 0 || event.detail === 0;
}
function isFakeTouchstartFromScreenReader(event) {
  const touch = event.touches && event.touches[0] || event.changedTouches && event.changedTouches[0];
  return !!touch && touch.identifier === -1 && (touch.radiusX == null || touch.radiusX === 1) && (touch.radiusY == null || touch.radiusY === 1);
}
var INPUT_MODALITY_DETECTOR_OPTIONS = new InjectionToken("cdk-input-modality-detector-options");
var INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS = {
  ignoreKeys: [ALT, CONTROL, MAC_META, META, SHIFT]
};
var TOUCH_BUFFER_MS = 650;
var modalityEventListenerOptions = normalizePassiveListenerOptions({
  passive: true,
  capture: true
});
var _InputModalityDetector = class _InputModalityDetector {
  /** The most recently detected input modality. */
  get mostRecentModality() {
    return this._modality.value;
  }
  constructor(_platform, ngZone, document2, options) {
    this._platform = _platform;
    this._mostRecentTarget = null;
    this._modality = new BehaviorSubject(null);
    this._lastTouchMs = 0;
    this._onKeydown = (event) => {
      if (this._options?.ignoreKeys?.some((keyCode) => keyCode === event.keyCode)) {
        return;
      }
      this._modality.next("keyboard");
      this._mostRecentTarget = _getEventTarget(event);
    };
    this._onMousedown = (event) => {
      if (Date.now() - this._lastTouchMs < TOUCH_BUFFER_MS) {
        return;
      }
      this._modality.next(isFakeMousedownFromScreenReader(event) ? "keyboard" : "mouse");
      this._mostRecentTarget = _getEventTarget(event);
    };
    this._onTouchstart = (event) => {
      if (isFakeTouchstartFromScreenReader(event)) {
        this._modality.next("keyboard");
        return;
      }
      this._lastTouchMs = Date.now();
      this._modality.next("touch");
      this._mostRecentTarget = _getEventTarget(event);
    };
    this._options = __spreadValues(__spreadValues({}, INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS), options);
    this.modalityDetected = this._modality.pipe(skip(1));
    this.modalityChanged = this.modalityDetected.pipe(distinctUntilChanged());
    if (_platform.isBrowser) {
      ngZone.runOutsideAngular(() => {
        document2.addEventListener("keydown", this._onKeydown, modalityEventListenerOptions);
        document2.addEventListener("mousedown", this._onMousedown, modalityEventListenerOptions);
        document2.addEventListener("touchstart", this._onTouchstart, modalityEventListenerOptions);
      });
    }
  }
  ngOnDestroy() {
    this._modality.complete();
    if (this._platform.isBrowser) {
      document.removeEventListener("keydown", this._onKeydown, modalityEventListenerOptions);
      document.removeEventListener("mousedown", this._onMousedown, modalityEventListenerOptions);
      document.removeEventListener("touchstart", this._onTouchstart, modalityEventListenerOptions);
    }
  }
};
_InputModalityDetector.\u0275fac = function InputModalityDetector_Factory(t) {
  return new (t || _InputModalityDetector)(\u0275\u0275inject(Platform), \u0275\u0275inject(NgZone), \u0275\u0275inject(DOCUMENT), \u0275\u0275inject(INPUT_MODALITY_DETECTOR_OPTIONS, 8));
};
_InputModalityDetector.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _InputModalityDetector,
  factory: _InputModalityDetector.\u0275fac,
  providedIn: "root"
});
var InputModalityDetector = _InputModalityDetector;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(InputModalityDetector, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: Platform
  }, {
    type: NgZone
  }, {
    type: Document,
    decorators: [{
      type: Inject,
      args: [DOCUMENT]
    }]
  }, {
    type: void 0,
    decorators: [{
      type: Optional
    }, {
      type: Inject,
      args: [INPUT_MODALITY_DETECTOR_OPTIONS]
    }]
  }], null);
})();
var LIVE_ANNOUNCER_ELEMENT_TOKEN = new InjectionToken("liveAnnouncerElement", {
  providedIn: "root",
  factory: LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY
});
function LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY() {
  return null;
}
var LIVE_ANNOUNCER_DEFAULT_OPTIONS = new InjectionToken("LIVE_ANNOUNCER_DEFAULT_OPTIONS");
var uniqueIds = 0;
var _LiveAnnouncer = class _LiveAnnouncer {
  constructor(elementToken, _ngZone, _document, _defaultOptions) {
    this._ngZone = _ngZone;
    this._defaultOptions = _defaultOptions;
    this._document = _document;
    this._liveElement = elementToken || this._createLiveElement();
  }
  announce(message, ...args) {
    const defaultOptions = this._defaultOptions;
    let politeness;
    let duration;
    if (args.length === 1 && typeof args[0] === "number") {
      duration = args[0];
    } else {
      [politeness, duration] = args;
    }
    this.clear();
    clearTimeout(this._previousTimeout);
    if (!politeness) {
      politeness = defaultOptions && defaultOptions.politeness ? defaultOptions.politeness : "polite";
    }
    if (duration == null && defaultOptions) {
      duration = defaultOptions.duration;
    }
    this._liveElement.setAttribute("aria-live", politeness);
    if (this._liveElement.id) {
      this._exposeAnnouncerToModals(this._liveElement.id);
    }
    return this._ngZone.runOutsideAngular(() => {
      if (!this._currentPromise) {
        this._currentPromise = new Promise((resolve) => this._currentResolve = resolve);
      }
      clearTimeout(this._previousTimeout);
      this._previousTimeout = setTimeout(() => {
        this._liveElement.textContent = message;
        if (typeof duration === "number") {
          this._previousTimeout = setTimeout(() => this.clear(), duration);
        }
        this._currentResolve?.();
        this._currentPromise = this._currentResolve = void 0;
      }, 100);
      return this._currentPromise;
    });
  }
  /**
   * Clears the current text from the announcer element. Can be used to prevent
   * screen readers from reading the text out again while the user is going
   * through the page landmarks.
   */
  clear() {
    if (this._liveElement) {
      this._liveElement.textContent = "";
    }
  }
  ngOnDestroy() {
    clearTimeout(this._previousTimeout);
    this._liveElement?.remove();
    this._liveElement = null;
    this._currentResolve?.();
    this._currentPromise = this._currentResolve = void 0;
  }
  _createLiveElement() {
    const elementClass = "cdk-live-announcer-element";
    const previousElements = this._document.getElementsByClassName(elementClass);
    const liveEl = this._document.createElement("div");
    for (let i = 0; i < previousElements.length; i++) {
      previousElements[i].remove();
    }
    liveEl.classList.add(elementClass);
    liveEl.classList.add("cdk-visually-hidden");
    liveEl.setAttribute("aria-atomic", "true");
    liveEl.setAttribute("aria-live", "polite");
    liveEl.id = `cdk-live-announcer-${uniqueIds++}`;
    this._document.body.appendChild(liveEl);
    return liveEl;
  }
  /**
   * Some browsers won't expose the accessibility node of the live announcer element if there is an
   * `aria-modal` and the live announcer is outside of it. This method works around the issue by
   * pointing the `aria-owns` of all modals to the live announcer element.
   */
  _exposeAnnouncerToModals(id) {
    const modals = this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');
    for (let i = 0; i < modals.length; i++) {
      const modal = modals[i];
      const ariaOwns = modal.getAttribute("aria-owns");
      if (!ariaOwns) {
        modal.setAttribute("aria-owns", id);
      } else if (ariaOwns.indexOf(id) === -1) {
        modal.setAttribute("aria-owns", ariaOwns + " " + id);
      }
    }
  }
};
_LiveAnnouncer.\u0275fac = function LiveAnnouncer_Factory(t) {
  return new (t || _LiveAnnouncer)(\u0275\u0275inject(LIVE_ANNOUNCER_ELEMENT_TOKEN, 8), \u0275\u0275inject(NgZone), \u0275\u0275inject(DOCUMENT), \u0275\u0275inject(LIVE_ANNOUNCER_DEFAULT_OPTIONS, 8));
};
_LiveAnnouncer.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _LiveAnnouncer,
  factory: _LiveAnnouncer.\u0275fac,
  providedIn: "root"
});
var LiveAnnouncer = _LiveAnnouncer;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(LiveAnnouncer, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: void 0,
    decorators: [{
      type: Optional
    }, {
      type: Inject,
      args: [LIVE_ANNOUNCER_ELEMENT_TOKEN]
    }]
  }, {
    type: NgZone
  }, {
    type: void 0,
    decorators: [{
      type: Inject,
      args: [DOCUMENT]
    }]
  }, {
    type: void 0,
    decorators: [{
      type: Optional
    }, {
      type: Inject,
      args: [LIVE_ANNOUNCER_DEFAULT_OPTIONS]
    }]
  }], null);
})();
var _CdkAriaLive = class _CdkAriaLive {
  /** The aria-live politeness level to use when announcing messages. */
  get politeness() {
    return this._politeness;
  }
  set politeness(value) {
    this._politeness = value === "off" || value === "assertive" ? value : "polite";
    if (this._politeness === "off") {
      if (this._subscription) {
        this._subscription.unsubscribe();
        this._subscription = null;
      }
    } else if (!this._subscription) {
      this._subscription = this._ngZone.runOutsideAngular(() => {
        return this._contentObserver.observe(this._elementRef).subscribe(() => {
          const elementText = this._elementRef.nativeElement.textContent;
          if (elementText !== this._previousAnnouncedText) {
            this._liveAnnouncer.announce(elementText, this._politeness, this.duration);
            this._previousAnnouncedText = elementText;
          }
        });
      });
    }
  }
  constructor(_elementRef, _liveAnnouncer, _contentObserver, _ngZone) {
    this._elementRef = _elementRef;
    this._liveAnnouncer = _liveAnnouncer;
    this._contentObserver = _contentObserver;
    this._ngZone = _ngZone;
    this._politeness = "polite";
  }
  ngOnDestroy() {
    if (this._subscription) {
      this._subscription.unsubscribe();
    }
  }
};
_CdkAriaLive.\u0275fac = function CdkAriaLive_Factory(t) {
  return new (t || _CdkAriaLive)(\u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(LiveAnnouncer), \u0275\u0275directiveInject(ContentObserver), \u0275\u0275directiveInject(NgZone));
};
_CdkAriaLive.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkAriaLive,
  selectors: [["", "cdkAriaLive", ""]],
  inputs: {
    politeness: [InputFlags.None, "cdkAriaLive", "politeness"],
    duration: [InputFlags.None, "cdkAriaLiveDuration", "duration"]
  },
  exportAs: ["cdkAriaLive"],
  standalone: true
});
var CdkAriaLive = _CdkAriaLive;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkAriaLive, [{
    type: Directive,
    args: [{
      selector: "[cdkAriaLive]",
      exportAs: "cdkAriaLive",
      standalone: true
    }]
  }], () => [{
    type: ElementRef
  }, {
    type: LiveAnnouncer
  }, {
    type: ContentObserver
  }, {
    type: NgZone
  }], {
    politeness: [{
      type: Input,
      args: ["cdkAriaLive"]
    }],
    duration: [{
      type: Input,
      args: ["cdkAriaLiveDuration"]
    }]
  });
})();
var FocusMonitorDetectionMode;
(function(FocusMonitorDetectionMode2) {
  FocusMonitorDetectionMode2[FocusMonitorDetectionMode2["IMMEDIATE"] = 0] = "IMMEDIATE";
  FocusMonitorDetectionMode2[FocusMonitorDetectionMode2["EVENTUAL"] = 1] = "EVENTUAL";
})(FocusMonitorDetectionMode || (FocusMonitorDetectionMode = {}));
var FOCUS_MONITOR_DEFAULT_OPTIONS = new InjectionToken("cdk-focus-monitor-default-options");
var captureEventListenerOptions = normalizePassiveListenerOptions({
  passive: true,
  capture: true
});
var _FocusMonitor = class _FocusMonitor {
  constructor(_ngZone, _platform, _inputModalityDetector, document2, options) {
    this._ngZone = _ngZone;
    this._platform = _platform;
    this._inputModalityDetector = _inputModalityDetector;
    this._origin = null;
    this._windowFocused = false;
    this._originFromTouchInteraction = false;
    this._elementInfo = /* @__PURE__ */ new Map();
    this._monitoredElementCount = 0;
    this._rootNodeFocusListenerCount = /* @__PURE__ */ new Map();
    this._windowFocusListener = () => {
      this._windowFocused = true;
      this._windowFocusTimeoutId = window.setTimeout(() => this._windowFocused = false);
    };
    this._stopInputModalityDetector = new Subject();
    this._rootNodeFocusAndBlurListener = (event) => {
      const target = _getEventTarget(event);
      for (let element = target; element; element = element.parentElement) {
        if (event.type === "focus") {
          this._onFocus(event, element);
        } else {
          this._onBlur(event, element);
        }
      }
    };
    this._document = document2;
    this._detectionMode = options?.detectionMode || FocusMonitorDetectionMode.IMMEDIATE;
  }
  monitor(element, checkChildren = false) {
    const nativeElement = coerceElement(element);
    if (!this._platform.isBrowser || nativeElement.nodeType !== 1) {
      return of();
    }
    const rootNode = _getShadowRoot(nativeElement) || this._getDocument();
    const cachedInfo = this._elementInfo.get(nativeElement);
    if (cachedInfo) {
      if (checkChildren) {
        cachedInfo.checkChildren = true;
      }
      return cachedInfo.subject;
    }
    const info = {
      checkChildren,
      subject: new Subject(),
      rootNode
    };
    this._elementInfo.set(nativeElement, info);
    this._registerGlobalListeners(info);
    return info.subject;
  }
  stopMonitoring(element) {
    const nativeElement = coerceElement(element);
    const elementInfo = this._elementInfo.get(nativeElement);
    if (elementInfo) {
      elementInfo.subject.complete();
      this._setClasses(nativeElement);
      this._elementInfo.delete(nativeElement);
      this._removeGlobalListeners(elementInfo);
    }
  }
  focusVia(element, origin, options) {
    const nativeElement = coerceElement(element);
    const focusedElement = this._getDocument().activeElement;
    if (nativeElement === focusedElement) {
      this._getClosestElementsInfo(nativeElement).forEach(([currentElement, info]) => this._originChanged(currentElement, origin, info));
    } else {
      this._setOrigin(origin);
      if (typeof nativeElement.focus === "function") {
        nativeElement.focus(options);
      }
    }
  }
  ngOnDestroy() {
    this._elementInfo.forEach((_info, element) => this.stopMonitoring(element));
  }
  /** Access injected document if available or fallback to global document reference */
  _getDocument() {
    return this._document || document;
  }
  /** Use defaultView of injected document if available or fallback to global window reference */
  _getWindow() {
    const doc = this._getDocument();
    return doc.defaultView || window;
  }
  _getFocusOrigin(focusEventTarget) {
    if (this._origin) {
      if (this._originFromTouchInteraction) {
        return this._shouldBeAttributedToTouch(focusEventTarget) ? "touch" : "program";
      } else {
        return this._origin;
      }
    }
    if (this._windowFocused && this._lastFocusOrigin) {
      return this._lastFocusOrigin;
    }
    if (focusEventTarget && this._isLastInteractionFromInputLabel(focusEventTarget)) {
      return "mouse";
    }
    return "program";
  }
  /**
   * Returns whether the focus event should be attributed to touch. Recall that in IMMEDIATE mode, a
   * touch origin isn't immediately reset at the next tick (see _setOrigin). This means that when we
   * handle a focus event following a touch interaction, we need to determine whether (1) the focus
   * event was directly caused by the touch interaction or (2) the focus event was caused by a
   * subsequent programmatic focus call triggered by the touch interaction.
   * @param focusEventTarget The target of the focus event under examination.
   */
  _shouldBeAttributedToTouch(focusEventTarget) {
    return this._detectionMode === FocusMonitorDetectionMode.EVENTUAL || !!focusEventTarget?.contains(this._inputModalityDetector._mostRecentTarget);
  }
  /**
   * Sets the focus classes on the element based on the given focus origin.
   * @param element The element to update the classes on.
   * @param origin The focus origin.
   */
  _setClasses(element, origin) {
    element.classList.toggle("cdk-focused", !!origin);
    element.classList.toggle("cdk-touch-focused", origin === "touch");
    element.classList.toggle("cdk-keyboard-focused", origin === "keyboard");
    element.classList.toggle("cdk-mouse-focused", origin === "mouse");
    element.classList.toggle("cdk-program-focused", origin === "program");
  }
  /**
   * Updates the focus origin. If we're using immediate detection mode, we schedule an async
   * function to clear the origin at the end of a timeout. The duration of the timeout depends on
   * the origin being set.
   * @param origin The origin to set.
   * @param isFromInteraction Whether we are setting the origin from an interaction event.
   */
  _setOrigin(origin, isFromInteraction = false) {
    this._ngZone.runOutsideAngular(() => {
      this._origin = origin;
      this._originFromTouchInteraction = origin === "touch" && isFromInteraction;
      if (this._detectionMode === FocusMonitorDetectionMode.IMMEDIATE) {
        clearTimeout(this._originTimeoutId);
        const ms = this._originFromTouchInteraction ? TOUCH_BUFFER_MS : 1;
        this._originTimeoutId = setTimeout(() => this._origin = null, ms);
      }
    });
  }
  /**
   * Handles focus events on a registered element.
   * @param event The focus event.
   * @param element The monitored element.
   */
  _onFocus(event, element) {
    const elementInfo = this._elementInfo.get(element);
    const focusEventTarget = _getEventTarget(event);
    if (!elementInfo || !elementInfo.checkChildren && element !== focusEventTarget) {
      return;
    }
    this._originChanged(element, this._getFocusOrigin(focusEventTarget), elementInfo);
  }
  /**
   * Handles blur events on a registered element.
   * @param event The blur event.
   * @param element The monitored element.
   */
  _onBlur(event, element) {
    const elementInfo = this._elementInfo.get(element);
    if (!elementInfo || elementInfo.checkChildren && event.relatedTarget instanceof Node && element.contains(event.relatedTarget)) {
      return;
    }
    this._setClasses(element);
    this._emitOrigin(elementInfo, null);
  }
  _emitOrigin(info, origin) {
    if (info.subject.observers.length) {
      this._ngZone.run(() => info.subject.next(origin));
    }
  }
  _registerGlobalListeners(elementInfo) {
    if (!this._platform.isBrowser) {
      return;
    }
    const rootNode = elementInfo.rootNode;
    const rootNodeFocusListeners = this._rootNodeFocusListenerCount.get(rootNode) || 0;
    if (!rootNodeFocusListeners) {
      this._ngZone.runOutsideAngular(() => {
        rootNode.addEventListener("focus", this._rootNodeFocusAndBlurListener, captureEventListenerOptions);
        rootNode.addEventListener("blur", this._rootNodeFocusAndBlurListener, captureEventListenerOptions);
      });
    }
    this._rootNodeFocusListenerCount.set(rootNode, rootNodeFocusListeners + 1);
    if (++this._monitoredElementCount === 1) {
      this._ngZone.runOutsideAngular(() => {
        const window2 = this._getWindow();
        window2.addEventListener("focus", this._windowFocusListener);
      });
      this._inputModalityDetector.modalityDetected.pipe(takeUntil(this._stopInputModalityDetector)).subscribe((modality) => {
        this._setOrigin(
          modality,
          true
          /* isFromInteraction */
        );
      });
    }
  }
  _removeGlobalListeners(elementInfo) {
    const rootNode = elementInfo.rootNode;
    if (this._rootNodeFocusListenerCount.has(rootNode)) {
      const rootNodeFocusListeners = this._rootNodeFocusListenerCount.get(rootNode);
      if (rootNodeFocusListeners > 1) {
        this._rootNodeFocusListenerCount.set(rootNode, rootNodeFocusListeners - 1);
      } else {
        rootNode.removeEventListener("focus", this._rootNodeFocusAndBlurListener, captureEventListenerOptions);
        rootNode.removeEventListener("blur", this._rootNodeFocusAndBlurListener, captureEventListenerOptions);
        this._rootNodeFocusListenerCount.delete(rootNode);
      }
    }
    if (!--this._monitoredElementCount) {
      const window2 = this._getWindow();
      window2.removeEventListener("focus", this._windowFocusListener);
      this._stopInputModalityDetector.next();
      clearTimeout(this._windowFocusTimeoutId);
      clearTimeout(this._originTimeoutId);
    }
  }
  /** Updates all the state on an element once its focus origin has changed. */
  _originChanged(element, origin, elementInfo) {
    this._setClasses(element, origin);
    this._emitOrigin(elementInfo, origin);
    this._lastFocusOrigin = origin;
  }
  /**
   * Collects the `MonitoredElementInfo` of a particular element and
   * all of its ancestors that have enabled `checkChildren`.
   * @param element Element from which to start the search.
   */
  _getClosestElementsInfo(element) {
    const results = [];
    this._elementInfo.forEach((info, currentElement) => {
      if (currentElement === element || info.checkChildren && currentElement.contains(element)) {
        results.push([currentElement, info]);
      }
    });
    return results;
  }
  /**
   * Returns whether an interaction is likely to have come from the user clicking the `label` of
   * an `input` or `textarea` in order to focus it.
   * @param focusEventTarget Target currently receiving focus.
   */
  _isLastInteractionFromInputLabel(focusEventTarget) {
    const {
      _mostRecentTarget: mostRecentTarget,
      mostRecentModality
    } = this._inputModalityDetector;
    if (mostRecentModality !== "mouse" || !mostRecentTarget || mostRecentTarget === focusEventTarget || focusEventTarget.nodeName !== "INPUT" && focusEventTarget.nodeName !== "TEXTAREA" || focusEventTarget.disabled) {
      return false;
    }
    const labels = focusEventTarget.labels;
    if (labels) {
      for (let i = 0; i < labels.length; i++) {
        if (labels[i].contains(mostRecentTarget)) {
          return true;
        }
      }
    }
    return false;
  }
};
_FocusMonitor.\u0275fac = function FocusMonitor_Factory(t) {
  return new (t || _FocusMonitor)(\u0275\u0275inject(NgZone), \u0275\u0275inject(Platform), \u0275\u0275inject(InputModalityDetector), \u0275\u0275inject(DOCUMENT, 8), \u0275\u0275inject(FOCUS_MONITOR_DEFAULT_OPTIONS, 8));
};
_FocusMonitor.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _FocusMonitor,
  factory: _FocusMonitor.\u0275fac,
  providedIn: "root"
});
var FocusMonitor = _FocusMonitor;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(FocusMonitor, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: NgZone
  }, {
    type: Platform
  }, {
    type: InputModalityDetector
  }, {
    type: void 0,
    decorators: [{
      type: Optional
    }, {
      type: Inject,
      args: [DOCUMENT]
    }]
  }, {
    type: void 0,
    decorators: [{
      type: Optional
    }, {
      type: Inject,
      args: [FOCUS_MONITOR_DEFAULT_OPTIONS]
    }]
  }], null);
})();
var _CdkMonitorFocus = class _CdkMonitorFocus {
  constructor(_elementRef, _focusMonitor) {
    this._elementRef = _elementRef;
    this._focusMonitor = _focusMonitor;
    this._focusOrigin = null;
    this.cdkFocusChange = new EventEmitter();
  }
  get focusOrigin() {
    return this._focusOrigin;
  }
  ngAfterViewInit() {
    const element = this._elementRef.nativeElement;
    this._monitorSubscription = this._focusMonitor.monitor(element, element.nodeType === 1 && element.hasAttribute("cdkMonitorSubtreeFocus")).subscribe((origin) => {
      this._focusOrigin = origin;
      this.cdkFocusChange.emit(origin);
    });
  }
  ngOnDestroy() {
    this._focusMonitor.stopMonitoring(this._elementRef);
    if (this._monitorSubscription) {
      this._monitorSubscription.unsubscribe();
    }
  }
};
_CdkMonitorFocus.\u0275fac = function CdkMonitorFocus_Factory(t) {
  return new (t || _CdkMonitorFocus)(\u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(FocusMonitor));
};
_CdkMonitorFocus.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkMonitorFocus,
  selectors: [["", "cdkMonitorElementFocus", ""], ["", "cdkMonitorSubtreeFocus", ""]],
  outputs: {
    cdkFocusChange: "cdkFocusChange"
  },
  exportAs: ["cdkMonitorFocus"],
  standalone: true
});
var CdkMonitorFocus = _CdkMonitorFocus;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkMonitorFocus, [{
    type: Directive,
    args: [{
      selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]",
      exportAs: "cdkMonitorFocus",
      standalone: true
    }]
  }], () => [{
    type: ElementRef
  }, {
    type: FocusMonitor
  }], {
    cdkFocusChange: [{
      type: Output
    }]
  });
})();
var HighContrastMode;
(function(HighContrastMode2) {
  HighContrastMode2[HighContrastMode2["NONE"] = 0] = "NONE";
  HighContrastMode2[HighContrastMode2["BLACK_ON_WHITE"] = 1] = "BLACK_ON_WHITE";
  HighContrastMode2[HighContrastMode2["WHITE_ON_BLACK"] = 2] = "WHITE_ON_BLACK";
})(HighContrastMode || (HighContrastMode = {}));
var BLACK_ON_WHITE_CSS_CLASS = "cdk-high-contrast-black-on-white";
var WHITE_ON_BLACK_CSS_CLASS = "cdk-high-contrast-white-on-black";
var HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS = "cdk-high-contrast-active";
var _HighContrastModeDetector = class _HighContrastModeDetector {
  constructor(_platform, document2) {
    this._platform = _platform;
    this._document = document2;
    this._breakpointSubscription = inject(BreakpointObserver).observe("(forced-colors: active)").subscribe(() => {
      if (this._hasCheckedHighContrastMode) {
        this._hasCheckedHighContrastMode = false;
        this._applyBodyHighContrastModeCssClasses();
      }
    });
  }
  /** Gets the current high-contrast-mode for the page. */
  getHighContrastMode() {
    if (!this._platform.isBrowser) {
      return HighContrastMode.NONE;
    }
    const testElement = this._document.createElement("div");
    testElement.style.backgroundColor = "rgb(1,2,3)";
    testElement.style.position = "absolute";
    this._document.body.appendChild(testElement);
    const documentWindow = this._document.defaultView || window;
    const computedStyle = documentWindow && documentWindow.getComputedStyle ? documentWindow.getComputedStyle(testElement) : null;
    const computedColor = (computedStyle && computedStyle.backgroundColor || "").replace(/ /g, "");
    testElement.remove();
    switch (computedColor) {
      case "rgb(0,0,0)":
      case "rgb(45,50,54)":
      case "rgb(32,32,32)":
        return HighContrastMode.WHITE_ON_BLACK;
      case "rgb(255,255,255)":
      case "rgb(255,250,239)":
        return HighContrastMode.BLACK_ON_WHITE;
    }
    return HighContrastMode.NONE;
  }
  ngOnDestroy() {
    this._breakpointSubscription.unsubscribe();
  }
  /** Applies CSS classes indicating high-contrast mode to document body (browser-only). */
  _applyBodyHighContrastModeCssClasses() {
    if (!this._hasCheckedHighContrastMode && this._platform.isBrowser && this._document.body) {
      const bodyClasses = this._document.body.classList;
      bodyClasses.remove(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, BLACK_ON_WHITE_CSS_CLASS, WHITE_ON_BLACK_CSS_CLASS);
      this._hasCheckedHighContrastMode = true;
      const mode = this.getHighContrastMode();
      if (mode === HighContrastMode.BLACK_ON_WHITE) {
        bodyClasses.add(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, BLACK_ON_WHITE_CSS_CLASS);
      } else if (mode === HighContrastMode.WHITE_ON_BLACK) {
        bodyClasses.add(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, WHITE_ON_BLACK_CSS_CLASS);
      }
    }
  }
};
_HighContrastModeDetector.\u0275fac = function HighContrastModeDetector_Factory(t) {
  return new (t || _HighContrastModeDetector)(\u0275\u0275inject(Platform), \u0275\u0275inject(DOCUMENT));
};
_HighContrastModeDetector.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _HighContrastModeDetector,
  factory: _HighContrastModeDetector.\u0275fac,
  providedIn: "root"
});
var HighContrastModeDetector = _HighContrastModeDetector;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(HighContrastModeDetector, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: Platform
  }, {
    type: void 0,
    decorators: [{
      type: Inject,
      args: [DOCUMENT]
    }]
  }], null);
})();
var _A11yModule = class _A11yModule {
  constructor(highContrastModeDetector) {
    highContrastModeDetector._applyBodyHighContrastModeCssClasses();
  }
};
_A11yModule.\u0275fac = function A11yModule_Factory(t) {
  return new (t || _A11yModule)(\u0275\u0275inject(HighContrastModeDetector));
};
_A11yModule.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({
  type: _A11yModule
});
_A11yModule.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({
  imports: [ObserversModule]
});
var A11yModule = _A11yModule;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(A11yModule, [{
    type: NgModule,
    args: [{
      imports: [ObserversModule, CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],
      exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus]
    }]
  }], () => [{
    type: HighContrastModeDetector
  }], null);
})();

// node_modules/@angular/cdk/fesm2022/drag-drop.mjs
function extendStyles(dest, source, importantProperties2) {
  for (let key in source) {
    if (source.hasOwnProperty(key)) {
      const value = source[key];
      if (value) {
        dest.setProperty(key, value, importantProperties2?.has(key) ? "important" : "");
      } else {
        dest.removeProperty(key);
      }
    }
  }
  return dest;
}
function toggleNativeDragInteractions(element, enable) {
  const userSelect = enable ? "" : "none";
  extendStyles(element.style, {
    "touch-action": enable ? "" : "none",
    "-webkit-user-drag": enable ? "" : "none",
    "-webkit-tap-highlight-color": enable ? "" : "transparent",
    "user-select": userSelect,
    "-ms-user-select": userSelect,
    "-webkit-user-select": userSelect,
    "-moz-user-select": userSelect
  });
}
function toggleVisibility(element, enable, importantProperties2) {
  extendStyles(element.style, {
    position: enable ? "" : "fixed",
    top: enable ? "" : "0",
    opacity: enable ? "" : "0",
    left: enable ? "" : "-999em"
  }, importantProperties2);
}
function combineTransforms(transform, initialTransform) {
  return initialTransform && initialTransform != "none" ? transform + " " + initialTransform : transform;
}
function matchElementSize(target, sourceRect) {
  target.style.width = `${sourceRect.width}px`;
  target.style.height = `${sourceRect.height}px`;
  target.style.transform = getTransform(sourceRect.left, sourceRect.top);
}
function getTransform(x, y) {
  return `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`;
}
function getMutableClientRect(element) {
  const rect = element.getBoundingClientRect();
  return {
    top: rect.top,
    right: rect.right,
    bottom: rect.bottom,
    left: rect.left,
    width: rect.width,
    height: rect.height,
    x: rect.x,
    y: rect.y
  };
}
function isInsideClientRect(clientRect, x, y) {
  const {
    top,
    bottom,
    left,
    right
  } = clientRect;
  return y >= top && y <= bottom && x >= left && x <= right;
}
function adjustDomRect(domRect, top, left) {
  domRect.top += top;
  domRect.bottom = domRect.top + domRect.height;
  domRect.left += left;
  domRect.right = domRect.left + domRect.width;
}
function isPointerNearDomRect(rect, threshold, pointerX, pointerY) {
  const {
    top,
    right,
    bottom,
    left,
    width,
    height
  } = rect;
  const xThreshold = width * threshold;
  const yThreshold = height * threshold;
  return pointerY > top - yThreshold && pointerY < bottom + yThreshold && pointerX > left - xThreshold && pointerX < right + xThreshold;
}
var ParentPositionTracker = class {
  constructor(_document) {
    this._document = _document;
    this.positions = /* @__PURE__ */ new Map();
  }
  /** Clears the cached positions. */
  clear() {
    this.positions.clear();
  }
  /** Caches the positions. Should be called at the beginning of a drag sequence. */
  cache(elements) {
    this.clear();
    this.positions.set(this._document, {
      scrollPosition: this.getViewportScrollPosition()
    });
    elements.forEach((element) => {
      this.positions.set(element, {
        scrollPosition: {
          top: element.scrollTop,
          left: element.scrollLeft
        },
        clientRect: getMutableClientRect(element)
      });
    });
  }
  /** Handles scrolling while a drag is taking place. */
  handleScroll(event) {
    const target = _getEventTarget(event);
    const cachedPosition = this.positions.get(target);
    if (!cachedPosition) {
      return null;
    }
    const scrollPosition = cachedPosition.scrollPosition;
    let newTop;
    let newLeft;
    if (target === this._document) {
      const viewportScrollPosition = this.getViewportScrollPosition();
      newTop = viewportScrollPosition.top;
      newLeft = viewportScrollPosition.left;
    } else {
      newTop = target.scrollTop;
      newLeft = target.scrollLeft;
    }
    const topDifference = scrollPosition.top - newTop;
    const leftDifference = scrollPosition.left - newLeft;
    this.positions.forEach((position, node) => {
      if (position.clientRect && target !== node && target.contains(node)) {
        adjustDomRect(position.clientRect, topDifference, leftDifference);
      }
    });
    scrollPosition.top = newTop;
    scrollPosition.left = newLeft;
    return {
      top: topDifference,
      left: leftDifference
    };
  }
  /**
   * Gets the scroll position of the viewport. Note that we use the scrollX and scrollY directly,
   * instead of going through the `ViewportRuler`, because the first value the ruler looks at is
   * the top/left offset of the `document.documentElement` which works for most cases, but breaks
   * if the element is offset by something like the `BlockScrollStrategy`.
   */
  getViewportScrollPosition() {
    return {
      top: window.scrollY,
      left: window.scrollX
    };
  }
};
function deepCloneNode(node) {
  const clone = node.cloneNode(true);
  const descendantsWithId = clone.querySelectorAll("[id]");
  const nodeName = node.nodeName.toLowerCase();
  clone.removeAttribute("id");
  for (let i = 0; i < descendantsWithId.length; i++) {
    descendantsWithId[i].removeAttribute("id");
  }
  if (nodeName === "canvas") {
    transferCanvasData(node, clone);
  } else if (nodeName === "input" || nodeName === "select" || nodeName === "textarea") {
    transferInputData(node, clone);
  }
  transferData("canvas", node, clone, transferCanvasData);
  transferData("input, textarea, select", node, clone, transferInputData);
  return clone;
}
function transferData(selector, node, clone, callback) {
  const descendantElements = node.querySelectorAll(selector);
  if (descendantElements.length) {
    const cloneElements = clone.querySelectorAll(selector);
    for (let i = 0; i < descendantElements.length; i++) {
      callback(descendantElements[i], cloneElements[i]);
    }
  }
}
var cloneUniqueId = 0;
function transferInputData(source, clone) {
  if (clone.type !== "file") {
    clone.value = source.value;
  }
  if (clone.type === "radio" && clone.name) {
    clone.name = `mat-clone-${clone.name}-${cloneUniqueId++}`;
  }
}
function transferCanvasData(source, clone) {
  const context = clone.getContext("2d");
  if (context) {
    try {
      context.drawImage(source, 0, 0);
    } catch {
    }
  }
}
function getRootNode(viewRef, _document) {
  const rootNodes = viewRef.rootNodes;
  if (rootNodes.length === 1 && rootNodes[0].nodeType === _document.ELEMENT_NODE) {
    return rootNodes[0];
  }
  const wrapper = _document.createElement("div");
  rootNodes.forEach((node) => wrapper.appendChild(node));
  return wrapper;
}
function parseCssTimeUnitsToMs(value) {
  const multiplier = value.toLowerCase().indexOf("ms") > -1 ? 1 : 1e3;
  return parseFloat(value) * multiplier;
}
function getTransformTransitionDurationInMs(element) {
  const computedStyle = getComputedStyle(element);
  const transitionedProperties = parseCssPropertyValue(computedStyle, "transition-property");
  const property = transitionedProperties.find((prop) => prop === "transform" || prop === "all");
  if (!property) {
    return 0;
  }
  const propertyIndex = transitionedProperties.indexOf(property);
  const rawDurations = parseCssPropertyValue(computedStyle, "transition-duration");
  const rawDelays = parseCssPropertyValue(computedStyle, "transition-delay");
  return parseCssTimeUnitsToMs(rawDurations[propertyIndex]) + parseCssTimeUnitsToMs(rawDelays[propertyIndex]);
}
function parseCssPropertyValue(computedStyle, name) {
  const value = computedStyle.getPropertyValue(name);
  return value.split(",").map((part) => part.trim());
}
var importantProperties = /* @__PURE__ */ new Set([
  // Needs to be important, because some `mat-table` sets `position: sticky !important`. See #22781.
  "position"
]);
var PreviewRef = class {
  constructor(_document, _rootElement, _direction, _initialDomRect, _previewTemplate, _previewClass, _pickupPositionOnPage, _initialTransform, _zIndex) {
    this._document = _document;
    this._rootElement = _rootElement;
    this._direction = _direction;
    this._initialDomRect = _initialDomRect;
    this._previewTemplate = _previewTemplate;
    this._previewClass = _previewClass;
    this._pickupPositionOnPage = _pickupPositionOnPage;
    this._initialTransform = _initialTransform;
    this._zIndex = _zIndex;
  }
  attach(parent) {
    this._preview = this._createPreview();
    parent.appendChild(this._preview);
    if ("showPopover" in this._preview) {
      this._preview["showPopover"]();
    }
  }
  destroy() {
    this._preview.remove();
    this._previewEmbeddedView?.destroy();
    this._preview = this._previewEmbeddedView = null;
  }
  setTransform(value) {
    this._preview.style.transform = value;
  }
  getBoundingClientRect() {
    return this._preview.getBoundingClientRect();
  }
  addClass(className) {
    this._preview.classList.add(className);
  }
  getTransitionDuration() {
    return getTransformTransitionDurationInMs(this._preview);
  }
  addEventListener(name, handler) {
    this._preview.addEventListener(name, handler);
  }
  removeEventListener(name, handler) {
    this._preview.removeEventListener(name, handler);
  }
  _createPreview() {
    const previewConfig = this._previewTemplate;
    const previewClass = this._previewClass;
    const previewTemplate = previewConfig ? previewConfig.template : null;
    let preview;
    if (previewTemplate && previewConfig) {
      const rootRect = previewConfig.matchSize ? this._initialDomRect : null;
      const viewRef = previewConfig.viewContainer.createEmbeddedView(previewTemplate, previewConfig.context);
      viewRef.detectChanges();
      preview = getRootNode(viewRef, this._document);
      this._previewEmbeddedView = viewRef;
      if (previewConfig.matchSize) {
        matchElementSize(preview, rootRect);
      } else {
        preview.style.transform = getTransform(this._pickupPositionOnPage.x, this._pickupPositionOnPage.y);
      }
    } else {
      preview = deepCloneNode(this._rootElement);
      matchElementSize(preview, this._initialDomRect);
      if (this._initialTransform) {
        preview.style.transform = this._initialTransform;
      }
    }
    extendStyles(preview.style, {
      // It's important that we disable the pointer events on the preview, because
      // it can throw off the `document.elementFromPoint` calls in the `CdkDropList`.
      "pointer-events": "none",
      // We have to reset the margin, because it can throw off positioning relative to the viewport.
      "margin": "0",
      "position": "fixed",
      "top": "0",
      "left": "0",
      "z-index": this._zIndex + ""
    }, importantProperties);
    toggleNativeDragInteractions(preview, false);
    preview.classList.add("cdk-drag-preview");
    preview.setAttribute("popover", "manual");
    preview.setAttribute("dir", this._direction);
    if (previewClass) {
      if (Array.isArray(previewClass)) {
        previewClass.forEach((className) => preview.classList.add(className));
      } else {
        preview.classList.add(previewClass);
      }
    }
    return preview;
  }
};
var passiveEventListenerOptions = normalizePassiveListenerOptions({
  passive: true
});
var activeEventListenerOptions = normalizePassiveListenerOptions({
  passive: false
});
var activeCapturingEventOptions$1 = normalizePassiveListenerOptions({
  passive: false,
  capture: true
});
var MOUSE_EVENT_IGNORE_TIME = 800;
var dragImportantProperties = /* @__PURE__ */ new Set([
  // Needs to be important, because some `mat-table` sets `position: sticky !important`. See #22781.
  "position"
]);
var DragRef = class {
  /** Whether starting to drag this element is disabled. */
  get disabled() {
    return this._disabled || !!(this._dropContainer && this._dropContainer.disabled);
  }
  set disabled(value) {
    if (value !== this._disabled) {
      this._disabled = value;
      this._toggleNativeDragInteractions();
      this._handles.forEach((handle) => toggleNativeDragInteractions(handle, value));
    }
  }
  constructor(element, _config, _document, _ngZone, _viewportRuler, _dragDropRegistry) {
    this._config = _config;
    this._document = _document;
    this._ngZone = _ngZone;
    this._viewportRuler = _viewportRuler;
    this._dragDropRegistry = _dragDropRegistry;
    this._passiveTransform = {
      x: 0,
      y: 0
    };
    this._activeTransform = {
      x: 0,
      y: 0
    };
    this._hasStartedDragging = false;
    this._moveEvents = new Subject();
    this._pointerMoveSubscription = Subscription.EMPTY;
    this._pointerUpSubscription = Subscription.EMPTY;
    this._scrollSubscription = Subscription.EMPTY;
    this._resizeSubscription = Subscription.EMPTY;
    this._boundaryElement = null;
    this._nativeInteractionsEnabled = true;
    this._handles = [];
    this._disabledHandles = /* @__PURE__ */ new Set();
    this._direction = "ltr";
    this.dragStartDelay = 0;
    this._disabled = false;
    this.beforeStarted = new Subject();
    this.started = new Subject();
    this.released = new Subject();
    this.ended = new Subject();
    this.entered = new Subject();
    this.exited = new Subject();
    this.dropped = new Subject();
    this.moved = this._moveEvents;
    this._pointerDown = (event) => {
      this.beforeStarted.next();
      if (this._handles.length) {
        const targetHandle = this._getTargetHandle(event);
        if (targetHandle && !this._disabledHandles.has(targetHandle) && !this.disabled) {
          this._initializeDragSequence(targetHandle, event);
        }
      } else if (!this.disabled) {
        this._initializeDragSequence(this._rootElement, event);
      }
    };
    this._pointerMove = (event) => {
      const pointerPosition = this._getPointerPositionOnPage(event);
      if (!this._hasStartedDragging) {
        const distanceX = Math.abs(pointerPosition.x - this._pickupPositionOnPage.x);
        const distanceY = Math.abs(pointerPosition.y - this._pickupPositionOnPage.y);
        const isOverThreshold = distanceX + distanceY >= this._config.dragStartThreshold;
        if (isOverThreshold) {
          const isDelayElapsed = Date.now() >= this._dragStartTime + this._getDragStartDelay(event);
          const container = this._dropContainer;
          if (!isDelayElapsed) {
            this._endDragSequence(event);
            return;
          }
          if (!container || !container.isDragging() && !container.isReceiving()) {
            if (event.cancelable) {
              event.preventDefault();
            }
            this._hasStartedDragging = true;
            this._ngZone.run(() => this._startDragSequence(event));
          }
        }
        return;
      }
      if (event.cancelable) {
        event.preventDefault();
      }
      const constrainedPointerPosition = this._getConstrainedPointerPosition(pointerPosition);
      this._hasMoved = true;
      this._lastKnownPointerPosition = pointerPosition;
      this._updatePointerDirectionDelta(constrainedPointerPosition);
      if (this._dropContainer) {
        this._updateActiveDropContainer(constrainedPointerPosition, pointerPosition);
      } else {
        const offset = this.constrainPosition ? this._initialDomRect : this._pickupPositionOnPage;
        const activeTransform = this._activeTransform;
        activeTransform.x = constrainedPointerPosition.x - offset.x + this._passiveTransform.x;
        activeTransform.y = constrainedPointerPosition.y - offset.y + this._passiveTransform.y;
        this._applyRootElementTransform(activeTransform.x, activeTransform.y);
      }
      if (this._moveEvents.observers.length) {
        this._ngZone.run(() => {
          this._moveEvents.next({
            source: this,
            pointerPosition: constrainedPointerPosition,
            event,
            distance: this._getDragDistance(constrainedPointerPosition),
            delta: this._pointerDirectionDelta
          });
        });
      }
    };
    this._pointerUp = (event) => {
      this._endDragSequence(event);
    };
    this._nativeDragStart = (event) => {
      if (this._handles.length) {
        const targetHandle = this._getTargetHandle(event);
        if (targetHandle && !this._disabledHandles.has(targetHandle) && !this.disabled) {
          event.preventDefault();
        }
      } else if (!this.disabled) {
        event.preventDefault();
      }
    };
    this.withRootElement(element).withParent(_config.parentDragRef || null);
    this._parentPositions = new ParentPositionTracker(_document);
    _dragDropRegistry.registerDragItem(this);
  }
  /**
   * Returns the element that is being used as a placeholder
   * while the current element is being dragged.
   */
  getPlaceholderElement() {
    return this._placeholder;
  }
  /** Returns the root draggable element. */
  getRootElement() {
    return this._rootElement;
  }
  /**
   * Gets the currently-visible element that represents the drag item.
   * While dragging this is the placeholder, otherwise it's the root element.
   */
  getVisibleElement() {
    return this.isDragging() ? this.getPlaceholderElement() : this.getRootElement();
  }
  /** Registers the handles that can be used to drag the element. */
  withHandles(handles) {
    this._handles = handles.map((handle) => coerceElement(handle));
    this._handles.forEach((handle) => toggleNativeDragInteractions(handle, this.disabled));
    this._toggleNativeDragInteractions();
    const disabledHandles = /* @__PURE__ */ new Set();
    this._disabledHandles.forEach((handle) => {
      if (this._handles.indexOf(handle) > -1) {
        disabledHandles.add(handle);
      }
    });
    this._disabledHandles = disabledHandles;
    return this;
  }
  /**
   * Registers the template that should be used for the drag preview.
   * @param template Template that from which to stamp out the preview.
   */
  withPreviewTemplate(template) {
    this._previewTemplate = template;
    return this;
  }
  /**
   * Registers the template that should be used for the drag placeholder.
   * @param template Template that from which to stamp out the placeholder.
   */
  withPlaceholderTemplate(template) {
    this._placeholderTemplate = template;
    return this;
  }
  /**
   * Sets an alternate drag root element. The root element is the element that will be moved as
   * the user is dragging. Passing an alternate root element is useful when trying to enable
   * dragging on an element that you might not have access to.
   */
  withRootElement(rootElement) {
    const element = coerceElement(rootElement);
    if (element !== this._rootElement) {
      if (this._rootElement) {
        this._removeRootElementListeners(this._rootElement);
      }
      this._ngZone.runOutsideAngular(() => {
        element.addEventListener("mousedown", this._pointerDown, activeEventListenerOptions);
        element.addEventListener("touchstart", this._pointerDown, passiveEventListenerOptions);
        element.addEventListener("dragstart", this._nativeDragStart, activeEventListenerOptions);
      });
      this._initialTransform = void 0;
      this._rootElement = element;
    }
    if (typeof SVGElement !== "undefined" && this._rootElement instanceof SVGElement) {
      this._ownerSVGElement = this._rootElement.ownerSVGElement;
    }
    return this;
  }
  /**
   * Element to which the draggable's position will be constrained.
   */
  withBoundaryElement(boundaryElement) {
    this._boundaryElement = boundaryElement ? coerceElement(boundaryElement) : null;
    this._resizeSubscription.unsubscribe();
    if (boundaryElement) {
      this._resizeSubscription = this._viewportRuler.change(10).subscribe(() => this._containInsideBoundaryOnResize());
    }
    return this;
  }
  /** Sets the parent ref that the ref is nested in.  */
  withParent(parent) {
    this._parentDragRef = parent;
    return this;
  }
  /** Removes the dragging functionality from the DOM element. */
  dispose() {
    this._removeRootElementListeners(this._rootElement);
    if (this.isDragging()) {
      this._rootElement?.remove();
    }
    this._anchor?.remove();
    this._destroyPreview();
    this._destroyPlaceholder();
    this._dragDropRegistry.removeDragItem(this);
    this._removeListeners();
    this.beforeStarted.complete();
    this.started.complete();
    this.released.complete();
    this.ended.complete();
    this.entered.complete();
    this.exited.complete();
    this.dropped.complete();
    this._moveEvents.complete();
    this._handles = [];
    this._disabledHandles.clear();
    this._dropContainer = void 0;
    this._resizeSubscription.unsubscribe();
    this._parentPositions.clear();
    this._boundaryElement = this._rootElement = this._ownerSVGElement = this._placeholderTemplate = this._previewTemplate = this._anchor = this._parentDragRef = null;
  }
  /** Checks whether the element is currently being dragged. */
  isDragging() {
    return this._hasStartedDragging && this._dragDropRegistry.isDragging(this);
  }
  /** Resets a standalone drag item to its initial position. */
  reset() {
    this._rootElement.style.transform = this._initialTransform || "";
    this._activeTransform = {
      x: 0,
      y: 0
    };
    this._passiveTransform = {
      x: 0,
      y: 0
    };
  }
  /**
   * Sets a handle as disabled. While a handle is disabled, it'll capture and interrupt dragging.
   * @param handle Handle element that should be disabled.
   */
  disableHandle(handle) {
    if (!this._disabledHandles.has(handle) && this._handles.indexOf(handle) > -1) {
      this._disabledHandles.add(handle);
      toggleNativeDragInteractions(handle, true);
    }
  }
  /**
   * Enables a handle, if it has been disabled.
   * @param handle Handle element to be enabled.
   */
  enableHandle(handle) {
    if (this._disabledHandles.has(handle)) {
      this._disabledHandles.delete(handle);
      toggleNativeDragInteractions(handle, this.disabled);
    }
  }
  /** Sets the layout direction of the draggable item. */
  withDirection(direction) {
    this._direction = direction;
    return this;
  }
  /** Sets the container that the item is part of. */
  _withDropContainer(container) {
    this._dropContainer = container;
  }
  /**
   * Gets the current position in pixels the draggable outside of a drop container.
   */
  getFreeDragPosition() {
    const position = this.isDragging() ? this._activeTransform : this._passiveTransform;
    return {
      x: position.x,
      y: position.y
    };
  }
  /**
   * Sets the current position in pixels the draggable outside of a drop container.
   * @param value New position to be set.
   */
  setFreeDragPosition(value) {
    this._activeTransform = {
      x: 0,
      y: 0
    };
    this._passiveTransform.x = value.x;
    this._passiveTransform.y = value.y;
    if (!this._dropContainer) {
      this._applyRootElementTransform(value.x, value.y);
    }
    return this;
  }
  /**
   * Sets the container into which to insert the preview element.
   * @param value Container into which to insert the preview.
   */
  withPreviewContainer(value) {
    this._previewContainer = value;
    return this;
  }
  /** Updates the item's sort order based on the last-known pointer position. */
  _sortFromLastPointerPosition() {
    const position = this._lastKnownPointerPosition;
    if (position && this._dropContainer) {
      this._updateActiveDropContainer(this._getConstrainedPointerPosition(position), position);
    }
  }
  /** Unsubscribes from the global subscriptions. */
  _removeListeners() {
    this._pointerMoveSubscription.unsubscribe();
    this._pointerUpSubscription.unsubscribe();
    this._scrollSubscription.unsubscribe();
    this._getShadowRoot()?.removeEventListener("selectstart", shadowDomSelectStart, activeCapturingEventOptions$1);
  }
  /** Destroys the preview element and its ViewRef. */
  _destroyPreview() {
    this._preview?.destroy();
    this._preview = null;
  }
  /** Destroys the placeholder element and its ViewRef. */
  _destroyPlaceholder() {
    this._placeholder?.remove();
    this._placeholderRef?.destroy();
    this._placeholder = this._placeholderRef = null;
  }
  /**
   * Clears subscriptions and stops the dragging sequence.
   * @param event Browser event object that ended the sequence.
   */
  _endDragSequence(event) {
    if (!this._dragDropRegistry.isDragging(this)) {
      return;
    }
    this._removeListeners();
    this._dragDropRegistry.stopDragging(this);
    this._toggleNativeDragInteractions();
    if (this._handles) {
      this._rootElement.style.webkitTapHighlightColor = this._rootElementTapHighlight;
    }
    if (!this._hasStartedDragging) {
      return;
    }
    this.released.next({
      source: this,
      event
    });
    if (this._dropContainer) {
      this._dropContainer._stopScrolling();
      this._animatePreviewToPlaceholder().then(() => {
        this._cleanupDragArtifacts(event);
        this._cleanupCachedDimensions();
        this._dragDropRegistry.stopDragging(this);
      });
    } else {
      this._passiveTransform.x = this._activeTransform.x;
      const pointerPosition = this._getPointerPositionOnPage(event);
      this._passiveTransform.y = this._activeTransform.y;
      this._ngZone.run(() => {
        this.ended.next({
          source: this,
          distance: this._getDragDistance(pointerPosition),
          dropPoint: pointerPosition,
          event
        });
      });
      this._cleanupCachedDimensions();
      this._dragDropRegistry.stopDragging(this);
    }
  }
  /** Starts the dragging sequence. */
  _startDragSequence(event) {
    if (isTouchEvent(event)) {
      this._lastTouchEventTime = Date.now();
    }
    this._toggleNativeDragInteractions();
    const shadowRoot = this._getShadowRoot();
    const dropContainer = this._dropContainer;
    if (shadowRoot) {
      this._ngZone.runOutsideAngular(() => {
        shadowRoot.addEventListener("selectstart", shadowDomSelectStart, activeCapturingEventOptions$1);
      });
    }
    if (dropContainer) {
      const element = this._rootElement;
      const parent = element.parentNode;
      const placeholder = this._placeholder = this._createPlaceholderElement();
      const anchor = this._anchor = this._anchor || this._document.createComment("");
      parent.insertBefore(anchor, element);
      this._initialTransform = element.style.transform || "";
      this._preview = new PreviewRef(this._document, this._rootElement, this._direction, this._initialDomRect, this._previewTemplate || null, this.previewClass || null, this._pickupPositionOnPage, this._initialTransform, this._config.zIndex || 1e3);
      this._preview.attach(this._getPreviewInsertionPoint(parent, shadowRoot));
      toggleVisibility(element, false, dragImportantProperties);
      this._document.body.appendChild(parent.replaceChild(placeholder, element));
      this.started.next({
        source: this,
        event
      });
      dropContainer.start();
      this._initialContainer = dropContainer;
      this._initialIndex = dropContainer.getItemIndex(this);
    } else {
      this.started.next({
        source: this,
        event
      });
      this._initialContainer = this._initialIndex = void 0;
    }
    this._parentPositions.cache(dropContainer ? dropContainer.getScrollableParents() : []);
  }
  /**
   * Sets up the different variables and subscriptions
   * that will be necessary for the dragging sequence.
   * @param referenceElement Element that started the drag sequence.
   * @param event Browser event object that started the sequence.
   */
  _initializeDragSequence(referenceElement, event) {
    if (this._parentDragRef) {
      event.stopPropagation();
    }
    const isDragging = this.isDragging();
    const isTouchSequence = isTouchEvent(event);
    const isAuxiliaryMouseButton = !isTouchSequence && event.button !== 0;
    const rootElement = this._rootElement;
    const target = _getEventTarget(event);
    const isSyntheticEvent = !isTouchSequence && this._lastTouchEventTime && this._lastTouchEventTime + MOUSE_EVENT_IGNORE_TIME > Date.now();
    const isFakeEvent = isTouchSequence ? isFakeTouchstartFromScreenReader(event) : isFakeMousedownFromScreenReader(event);
    if (target && target.draggable && event.type === "mousedown") {
      event.preventDefault();
    }
    if (isDragging || isAuxiliaryMouseButton || isSyntheticEvent || isFakeEvent) {
      return;
    }
    if (this._handles.length) {
      const rootStyles = rootElement.style;
      this._rootElementTapHighlight = rootStyles.webkitTapHighlightColor || "";
      rootStyles.webkitTapHighlightColor = "transparent";
    }
    this._hasStartedDragging = this._hasMoved = false;
    this._removeListeners();
    this._initialDomRect = this._rootElement.getBoundingClientRect();
    this._pointerMoveSubscription = this._dragDropRegistry.pointerMove.subscribe(this._pointerMove);
    this._pointerUpSubscription = this._dragDropRegistry.pointerUp.subscribe(this._pointerUp);
    this._scrollSubscription = this._dragDropRegistry.scrolled(this._getShadowRoot()).subscribe((scrollEvent) => this._updateOnScroll(scrollEvent));
    if (this._boundaryElement) {
      this._boundaryRect = getMutableClientRect(this._boundaryElement);
    }
    const previewTemplate = this._previewTemplate;
    this._pickupPositionInElement = previewTemplate && previewTemplate.template && !previewTemplate.matchSize ? {
      x: 0,
      y: 0
    } : this._getPointerPositionInElement(this._initialDomRect, referenceElement, event);
    const pointerPosition = this._pickupPositionOnPage = this._lastKnownPointerPosition = this._getPointerPositionOnPage(event);
    this._pointerDirectionDelta = {
      x: 0,
      y: 0
    };
    this._pointerPositionAtLastDirectionChange = {
      x: pointerPosition.x,
      y: pointerPosition.y
    };
    this._dragStartTime = Date.now();
    this._dragDropRegistry.startDragging(this, event);
  }
  /** Cleans up the DOM artifacts that were added to facilitate the element being dragged. */
  _cleanupDragArtifacts(event) {
    toggleVisibility(this._rootElement, true, dragImportantProperties);
    this._anchor.parentNode.replaceChild(this._rootElement, this._anchor);
    this._destroyPreview();
    this._destroyPlaceholder();
    this._initialDomRect = this._boundaryRect = this._previewRect = this._initialTransform = void 0;
    this._ngZone.run(() => {
      const container = this._dropContainer;
      const currentIndex = container.getItemIndex(this);
      const pointerPosition = this._getPointerPositionOnPage(event);
      const distance = this._getDragDistance(pointerPosition);
      const isPointerOverContainer = container._isOverContainer(pointerPosition.x, pointerPosition.y);
      this.ended.next({
        source: this,
        distance,
        dropPoint: pointerPosition,
        event
      });
      this.dropped.next({
        item: this,
        currentIndex,
        previousIndex: this._initialIndex,
        container,
        previousContainer: this._initialContainer,
        isPointerOverContainer,
        distance,
        dropPoint: pointerPosition,
        event
      });
      container.drop(this, currentIndex, this._initialIndex, this._initialContainer, isPointerOverContainer, distance, pointerPosition, event);
      this._dropContainer = this._initialContainer;
    });
  }
  /**
   * Updates the item's position in its drop container, or moves it
   * into a new one, depending on its current drag position.
   */
  _updateActiveDropContainer({
    x,
    y
  }, {
    x: rawX,
    y: rawY
  }) {
    let newContainer = this._initialContainer._getSiblingContainerFromPosition(this, x, y);
    if (!newContainer && this._dropContainer !== this._initialContainer && this._initialContainer._isOverContainer(x, y)) {
      newContainer = this._initialContainer;
    }
    if (newContainer && newContainer !== this._dropContainer) {
      this._ngZone.run(() => {
        this.exited.next({
          item: this,
          container: this._dropContainer
        });
        this._dropContainer.exit(this);
        this._dropContainer = newContainer;
        this._dropContainer.enter(this, x, y, newContainer === this._initialContainer && // If we're re-entering the initial container and sorting is disabled,
        // put item the into its starting index to begin with.
        newContainer.sortingDisabled ? this._initialIndex : void 0);
        this.entered.next({
          item: this,
          container: newContainer,
          currentIndex: newContainer.getItemIndex(this)
        });
      });
    }
    if (this.isDragging()) {
      this._dropContainer._startScrollingIfNecessary(rawX, rawY);
      this._dropContainer._sortItem(this, x, y, this._pointerDirectionDelta);
      if (this.constrainPosition) {
        this._applyPreviewTransform(x, y);
      } else {
        this._applyPreviewTransform(x - this._pickupPositionInElement.x, y - this._pickupPositionInElement.y);
      }
    }
  }
  /**
   * Animates the preview element from its current position to the location of the drop placeholder.
   * @returns Promise that resolves when the animation completes.
   */
  _animatePreviewToPlaceholder() {
    if (!this._hasMoved) {
      return Promise.resolve();
    }
    const placeholderRect = this._placeholder.getBoundingClientRect();
    this._preview.addClass("cdk-drag-animating");
    this._applyPreviewTransform(placeholderRect.left, placeholderRect.top);
    const duration = this._preview.getTransitionDuration();
    if (duration === 0) {
      return Promise.resolve();
    }
    return this._ngZone.runOutsideAngular(() => {
      return new Promise((resolve) => {
        const handler = (event) => {
          if (!event || _getEventTarget(event) === this._preview && event.propertyName === "transform") {
            this._preview?.removeEventListener("transitionend", handler);
            resolve();
            clearTimeout(timeout);
          }
        };
        const timeout = setTimeout(handler, duration * 1.5);
        this._preview.addEventListener("transitionend", handler);
      });
    });
  }
  /** Creates an element that will be shown instead of the current element while dragging. */
  _createPlaceholderElement() {
    const placeholderConfig = this._placeholderTemplate;
    const placeholderTemplate = placeholderConfig ? placeholderConfig.template : null;
    let placeholder;
    if (placeholderTemplate) {
      this._placeholderRef = placeholderConfig.viewContainer.createEmbeddedView(placeholderTemplate, placeholderConfig.context);
      this._placeholderRef.detectChanges();
      placeholder = getRootNode(this._placeholderRef, this._document);
    } else {
      placeholder = deepCloneNode(this._rootElement);
    }
    placeholder.style.pointerEvents = "none";
    placeholder.classList.add("cdk-drag-placeholder");
    return placeholder;
  }
  /**
   * Figures out the coordinates at which an element was picked up.
   * @param referenceElement Element that initiated the dragging.
   * @param event Event that initiated the dragging.
   */
  _getPointerPositionInElement(elementRect, referenceElement, event) {
    const handleElement = referenceElement === this._rootElement ? null : referenceElement;
    const referenceRect = handleElement ? handleElement.getBoundingClientRect() : elementRect;
    const point = isTouchEvent(event) ? event.targetTouches[0] : event;
    const scrollPosition = this._getViewportScrollPosition();
    const x = point.pageX - referenceRect.left - scrollPosition.left;
    const y = point.pageY - referenceRect.top - scrollPosition.top;
    return {
      x: referenceRect.left - elementRect.left + x,
      y: referenceRect.top - elementRect.top + y
    };
  }
  /** Determines the point of the page that was touched by the user. */
  _getPointerPositionOnPage(event) {
    const scrollPosition = this._getViewportScrollPosition();
    const point = isTouchEvent(event) ? (
      // `touches` will be empty for start/end events so we have to fall back to `changedTouches`.
      // Also note that on real devices we're guaranteed for either `touches` or `changedTouches`
      // to have a value, but Firefox in device emulation mode has a bug where both can be empty
      // for `touchstart` and `touchend` so we fall back to a dummy object in order to avoid
      // throwing an error. The value returned here will be incorrect, but since this only
      // breaks inside a developer tool and the value is only used for secondary information,
      // we can get away with it. See https://bugzilla.mozilla.org/show_bug.cgi?id=1615824.
      event.touches[0] || event.changedTouches[0] || {
        pageX: 0,
        pageY: 0
      }
    ) : event;
    const x = point.pageX - scrollPosition.left;
    const y = point.pageY - scrollPosition.top;
    if (this._ownerSVGElement) {
      const svgMatrix = this._ownerSVGElement.getScreenCTM();
      if (svgMatrix) {
        const svgPoint = this._ownerSVGElement.createSVGPoint();
        svgPoint.x = x;
        svgPoint.y = y;
        return svgPoint.matrixTransform(svgMatrix.inverse());
      }
    }
    return {
      x,
      y
    };
  }
  /** Gets the pointer position on the page, accounting for any position constraints. */
  _getConstrainedPointerPosition(point) {
    const dropContainerLock = this._dropContainer ? this._dropContainer.lockAxis : null;
    let {
      x,
      y
    } = this.constrainPosition ? this.constrainPosition(point, this, this._initialDomRect, this._pickupPositionInElement) : point;
    if (this.lockAxis === "x" || dropContainerLock === "x") {
      y = this._pickupPositionOnPage.y - (this.constrainPosition ? this._pickupPositionInElement.y : 0);
    } else if (this.lockAxis === "y" || dropContainerLock === "y") {
      x = this._pickupPositionOnPage.x - (this.constrainPosition ? this._pickupPositionInElement.x : 0);
    }
    if (this._boundaryRect) {
      const {
        x: pickupX,
        y: pickupY
      } = !this.constrainPosition ? this._pickupPositionInElement : {
        x: 0,
        y: 0
      };
      const boundaryRect = this._boundaryRect;
      const {
        width: previewWidth,
        height: previewHeight
      } = this._getPreviewRect();
      const minY = boundaryRect.top + pickupY;
      const maxY = boundaryRect.bottom - (previewHeight - pickupY);
      const minX = boundaryRect.left + pickupX;
      const maxX = boundaryRect.right - (previewWidth - pickupX);
      x = clamp$1(x, minX, maxX);
      y = clamp$1(y, minY, maxY);
    }
    return {
      x,
      y
    };
  }
  /** Updates the current drag delta, based on the user's current pointer position on the page. */
  _updatePointerDirectionDelta(pointerPositionOnPage) {
    const {
      x,
      y
    } = pointerPositionOnPage;
    const delta = this._pointerDirectionDelta;
    const positionSinceLastChange = this._pointerPositionAtLastDirectionChange;
    const changeX = Math.abs(x - positionSinceLastChange.x);
    const changeY = Math.abs(y - positionSinceLastChange.y);
    if (changeX > this._config.pointerDirectionChangeThreshold) {
      delta.x = x > positionSinceLastChange.x ? 1 : -1;
      positionSinceLastChange.x = x;
    }
    if (changeY > this._config.pointerDirectionChangeThreshold) {
      delta.y = y > positionSinceLastChange.y ? 1 : -1;
      positionSinceLastChange.y = y;
    }
    return delta;
  }
  /** Toggles the native drag interactions, based on how many handles are registered. */
  _toggleNativeDragInteractions() {
    if (!this._rootElement || !this._handles) {
      return;
    }
    const shouldEnable = this._handles.length > 0 || !this.isDragging();
    if (shouldEnable !== this._nativeInteractionsEnabled) {
      this._nativeInteractionsEnabled = shouldEnable;
      toggleNativeDragInteractions(this._rootElement, shouldEnable);
    }
  }
  /** Removes the manually-added event listeners from the root element. */
  _removeRootElementListeners(element) {
    element.removeEventListener("mousedown", this._pointerDown, activeEventListenerOptions);
    element.removeEventListener("touchstart", this._pointerDown, passiveEventListenerOptions);
    element.removeEventListener("dragstart", this._nativeDragStart, activeEventListenerOptions);
  }
  /**
   * Applies a `transform` to the root element, taking into account any existing transforms on it.
   * @param x New transform value along the X axis.
   * @param y New transform value along the Y axis.
   */
  _applyRootElementTransform(x, y) {
    const transform = getTransform(x, y);
    const styles = this._rootElement.style;
    if (this._initialTransform == null) {
      this._initialTransform = styles.transform && styles.transform != "none" ? styles.transform : "";
    }
    styles.transform = combineTransforms(transform, this._initialTransform);
  }
  /**
   * Applies a `transform` to the preview, taking into account any existing transforms on it.
   * @param x New transform value along the X axis.
   * @param y New transform value along the Y axis.
   */
  _applyPreviewTransform(x, y) {
    const initialTransform = this._previewTemplate?.template ? void 0 : this._initialTransform;
    const transform = getTransform(x, y);
    this._preview.setTransform(combineTransforms(transform, initialTransform));
  }
  /**
   * Gets the distance that the user has dragged during the current drag sequence.
   * @param currentPosition Current position of the user's pointer.
   */
  _getDragDistance(currentPosition) {
    const pickupPosition = this._pickupPositionOnPage;
    if (pickupPosition) {
      return {
        x: currentPosition.x - pickupPosition.x,
        y: currentPosition.y - pickupPosition.y
      };
    }
    return {
      x: 0,
      y: 0
    };
  }
  /** Cleans up any cached element dimensions that we don't need after dragging has stopped. */
  _cleanupCachedDimensions() {
    this._boundaryRect = this._previewRect = void 0;
    this._parentPositions.clear();
  }
  /**
   * Checks whether the element is still inside its boundary after the viewport has been resized.
   * If not, the position is adjusted so that the element fits again.
   */
  _containInsideBoundaryOnResize() {
    let {
      x,
      y
    } = this._passiveTransform;
    if (x === 0 && y === 0 || this.isDragging() || !this._boundaryElement) {
      return;
    }
    const elementRect = this._rootElement.getBoundingClientRect();
    const boundaryRect = this._boundaryElement.getBoundingClientRect();
    if (boundaryRect.width === 0 && boundaryRect.height === 0 || elementRect.width === 0 && elementRect.height === 0) {
      return;
    }
    const leftOverflow = boundaryRect.left - elementRect.left;
    const rightOverflow = elementRect.right - boundaryRect.right;
    const topOverflow = boundaryRect.top - elementRect.top;
    const bottomOverflow = elementRect.bottom - boundaryRect.bottom;
    if (boundaryRect.width > elementRect.width) {
      if (leftOverflow > 0) {
        x += leftOverflow;
      }
      if (rightOverflow > 0) {
        x -= rightOverflow;
      }
    } else {
      x = 0;
    }
    if (boundaryRect.height > elementRect.height) {
      if (topOverflow > 0) {
        y += topOverflow;
      }
      if (bottomOverflow > 0) {
        y -= bottomOverflow;
      }
    } else {
      y = 0;
    }
    if (x !== this._passiveTransform.x || y !== this._passiveTransform.y) {
      this.setFreeDragPosition({
        y,
        x
      });
    }
  }
  /** Gets the drag start delay, based on the event type. */
  _getDragStartDelay(event) {
    const value = this.dragStartDelay;
    if (typeof value === "number") {
      return value;
    } else if (isTouchEvent(event)) {
      return value.touch;
    }
    return value ? value.mouse : 0;
  }
  /** Updates the internal state of the draggable element when scrolling has occurred. */
  _updateOnScroll(event) {
    const scrollDifference = this._parentPositions.handleScroll(event);
    if (scrollDifference) {
      const target = _getEventTarget(event);
      if (this._boundaryRect && target !== this._boundaryElement && target.contains(this._boundaryElement)) {
        adjustDomRect(this._boundaryRect, scrollDifference.top, scrollDifference.left);
      }
      this._pickupPositionOnPage.x += scrollDifference.left;
      this._pickupPositionOnPage.y += scrollDifference.top;
      if (!this._dropContainer) {
        this._activeTransform.x -= scrollDifference.left;
        this._activeTransform.y -= scrollDifference.top;
        this._applyRootElementTransform(this._activeTransform.x, this._activeTransform.y);
      }
    }
  }
  /** Gets the scroll position of the viewport. */
  _getViewportScrollPosition() {
    return this._parentPositions.positions.get(this._document)?.scrollPosition || this._parentPositions.getViewportScrollPosition();
  }
  /**
   * Lazily resolves and returns the shadow root of the element. We do this in a function, rather
   * than saving it in property directly on init, because we want to resolve it as late as possible
   * in order to ensure that the element has been moved into the shadow DOM. Doing it inside the
   * constructor might be too early if the element is inside of something like `ngFor` or `ngIf`.
   */
  _getShadowRoot() {
    if (this._cachedShadowRoot === void 0) {
      this._cachedShadowRoot = _getShadowRoot(this._rootElement);
    }
    return this._cachedShadowRoot;
  }
  /** Gets the element into which the drag preview should be inserted. */
  _getPreviewInsertionPoint(initialParent, shadowRoot) {
    const previewContainer = this._previewContainer || "global";
    if (previewContainer === "parent") {
      return initialParent;
    }
    if (previewContainer === "global") {
      const documentRef = this._document;
      return shadowRoot || documentRef.fullscreenElement || documentRef.webkitFullscreenElement || documentRef.mozFullScreenElement || documentRef.msFullscreenElement || documentRef.body;
    }
    return coerceElement(previewContainer);
  }
  /** Lazily resolves and returns the dimensions of the preview. */
  _getPreviewRect() {
    if (!this._previewRect || !this._previewRect.width && !this._previewRect.height) {
      this._previewRect = this._preview ? this._preview.getBoundingClientRect() : this._initialDomRect;
    }
    return this._previewRect;
  }
  /** Gets a handle that is the target of an event. */
  _getTargetHandle(event) {
    return this._handles.find((handle) => {
      return event.target && (event.target === handle || handle.contains(event.target));
    });
  }
};
function clamp$1(value, min, max) {
  return Math.max(min, Math.min(max, value));
}
function isTouchEvent(event) {
  return event.type[0] === "t";
}
function shadowDomSelectStart(event) {
  event.preventDefault();
}
function moveItemInArray(array, fromIndex, toIndex) {
  const from = clamp(fromIndex, array.length - 1);
  const to = clamp(toIndex, array.length - 1);
  if (from === to) {
    return;
  }
  const target = array[from];
  const delta = to < from ? -1 : 1;
  for (let i = from; i !== to; i += delta) {
    array[i] = array[i + delta];
  }
  array[to] = target;
}
function clamp(value, max) {
  return Math.max(0, Math.min(max, value));
}
var SingleAxisSortStrategy = class {
  constructor(_element, _dragDropRegistry) {
    this._element = _element;
    this._dragDropRegistry = _dragDropRegistry;
    this._itemPositions = [];
    this.orientation = "vertical";
    this._previousSwap = {
      drag: null,
      delta: 0,
      overlaps: false
    };
  }
  /**
   * To be called when the drag sequence starts.
   * @param items Items that are currently in the list.
   */
  start(items) {
    this.withItems(items);
  }
  /**
   * To be called when an item is being sorted.
   * @param item Item to be sorted.
   * @param pointerX Position of the item along the X axis.
   * @param pointerY Position of the item along the Y axis.
   * @param pointerDelta Direction in which the pointer is moving along each axis.
   */
  sort(item, pointerX, pointerY, pointerDelta) {
    const siblings = this._itemPositions;
    const newIndex = this._getItemIndexFromPointerPosition(item, pointerX, pointerY, pointerDelta);
    if (newIndex === -1 && siblings.length > 0) {
      return null;
    }
    const isHorizontal = this.orientation === "horizontal";
    const currentIndex = siblings.findIndex((currentItem) => currentItem.drag === item);
    const siblingAtNewPosition = siblings[newIndex];
    const currentPosition = siblings[currentIndex].clientRect;
    const newPosition = siblingAtNewPosition.clientRect;
    const delta = currentIndex > newIndex ? 1 : -1;
    const itemOffset = this._getItemOffsetPx(currentPosition, newPosition, delta);
    const siblingOffset = this._getSiblingOffsetPx(currentIndex, siblings, delta);
    const oldOrder = siblings.slice();
    moveItemInArray(siblings, currentIndex, newIndex);
    siblings.forEach((sibling, index) => {
      if (oldOrder[index] === sibling) {
        return;
      }
      const isDraggedItem = sibling.drag === item;
      const offset = isDraggedItem ? itemOffset : siblingOffset;
      const elementToOffset = isDraggedItem ? item.getPlaceholderElement() : sibling.drag.getRootElement();
      sibling.offset += offset;
      if (isHorizontal) {
        elementToOffset.style.transform = combineTransforms(`translate3d(${Math.round(sibling.offset)}px, 0, 0)`, sibling.initialTransform);
        adjustDomRect(sibling.clientRect, 0, offset);
      } else {
        elementToOffset.style.transform = combineTransforms(`translate3d(0, ${Math.round(sibling.offset)}px, 0)`, sibling.initialTransform);
        adjustDomRect(sibling.clientRect, offset, 0);
      }
    });
    this._previousSwap.overlaps = isInsideClientRect(newPosition, pointerX, pointerY);
    this._previousSwap.drag = siblingAtNewPosition.drag;
    this._previousSwap.delta = isHorizontal ? pointerDelta.x : pointerDelta.y;
    return {
      previousIndex: currentIndex,
      currentIndex: newIndex
    };
  }
  /**
   * Called when an item is being moved into the container.
   * @param item Item that was moved into the container.
   * @param pointerX Position of the item along the X axis.
   * @param pointerY Position of the item along the Y axis.
   * @param index Index at which the item entered. If omitted, the container will try to figure it
   *   out automatically.
   */
  enter(item, pointerX, pointerY, index) {
    const newIndex = index == null || index < 0 ? (
      // We use the coordinates of where the item entered the drop
      // zone to figure out at which index it should be inserted.
      this._getItemIndexFromPointerPosition(item, pointerX, pointerY)
    ) : index;
    const activeDraggables = this._activeDraggables;
    const currentIndex = activeDraggables.indexOf(item);
    const placeholder = item.getPlaceholderElement();
    let newPositionReference = activeDraggables[newIndex];
    if (newPositionReference === item) {
      newPositionReference = activeDraggables[newIndex + 1];
    }
    if (!newPositionReference && (newIndex == null || newIndex === -1 || newIndex < activeDraggables.length - 1) && this._shouldEnterAsFirstChild(pointerX, pointerY)) {
      newPositionReference = activeDraggables[0];
    }
    if (currentIndex > -1) {
      activeDraggables.splice(currentIndex, 1);
    }
    if (newPositionReference && !this._dragDropRegistry.isDragging(newPositionReference)) {
      const element = newPositionReference.getRootElement();
      element.parentElement.insertBefore(placeholder, element);
      activeDraggables.splice(newIndex, 0, item);
    } else {
      coerceElement(this._element).appendChild(placeholder);
      activeDraggables.push(item);
    }
    placeholder.style.transform = "";
    this._cacheItemPositions();
  }
  /** Sets the items that are currently part of the list. */
  withItems(items) {
    this._activeDraggables = items.slice();
    this._cacheItemPositions();
  }
  /** Assigns a sort predicate to the strategy. */
  withSortPredicate(predicate) {
    this._sortPredicate = predicate;
  }
  /** Resets the strategy to its initial state before dragging was started. */
  reset() {
    this._activeDraggables.forEach((item) => {
      const rootElement = item.getRootElement();
      if (rootElement) {
        const initialTransform = this._itemPositions.find((p) => p.drag === item)?.initialTransform;
        rootElement.style.transform = initialTransform || "";
      }
    });
    this._itemPositions = [];
    this._activeDraggables = [];
    this._previousSwap.drag = null;
    this._previousSwap.delta = 0;
    this._previousSwap.overlaps = false;
  }
  /**
   * Gets a snapshot of items currently in the list.
   * Can include items that we dragged in from another list.
   */
  getActiveItemsSnapshot() {
    return this._activeDraggables;
  }
  /** Gets the index of a specific item. */
  getItemIndex(item) {
    const items = this.orientation === "horizontal" && this.direction === "rtl" ? this._itemPositions.slice().reverse() : this._itemPositions;
    return items.findIndex((currentItem) => currentItem.drag === item);
  }
  /** Used to notify the strategy that the scroll position has changed. */
  updateOnScroll(topDifference, leftDifference) {
    this._itemPositions.forEach(({
      clientRect
    }) => {
      adjustDomRect(clientRect, topDifference, leftDifference);
    });
    this._itemPositions.forEach(({
      drag
    }) => {
      if (this._dragDropRegistry.isDragging(drag)) {
        drag._sortFromLastPointerPosition();
      }
    });
  }
  /** Refreshes the position cache of the items and sibling containers. */
  _cacheItemPositions() {
    const isHorizontal = this.orientation === "horizontal";
    this._itemPositions = this._activeDraggables.map((drag) => {
      const elementToMeasure = drag.getVisibleElement();
      return {
        drag,
        offset: 0,
        initialTransform: elementToMeasure.style.transform || "",
        clientRect: getMutableClientRect(elementToMeasure)
      };
    }).sort((a, b) => {
      return isHorizontal ? a.clientRect.left - b.clientRect.left : a.clientRect.top - b.clientRect.top;
    });
  }
  /**
   * Gets the offset in pixels by which the item that is being dragged should be moved.
   * @param currentPosition Current position of the item.
   * @param newPosition Position of the item where the current item should be moved.
   * @param delta Direction in which the user is moving.
   */
  _getItemOffsetPx(currentPosition, newPosition, delta) {
    const isHorizontal = this.orientation === "horizontal";
    let itemOffset = isHorizontal ? newPosition.left - currentPosition.left : newPosition.top - currentPosition.top;
    if (delta === -1) {
      itemOffset += isHorizontal ? newPosition.width - currentPosition.width : newPosition.height - currentPosition.height;
    }
    return itemOffset;
  }
  /**
   * Gets the offset in pixels by which the items that aren't being dragged should be moved.
   * @param currentIndex Index of the item currently being dragged.
   * @param siblings All of the items in the list.
   * @param delta Direction in which the user is moving.
   */
  _getSiblingOffsetPx(currentIndex, siblings, delta) {
    const isHorizontal = this.orientation === "horizontal";
    const currentPosition = siblings[currentIndex].clientRect;
    const immediateSibling = siblings[currentIndex + delta * -1];
    let siblingOffset = currentPosition[isHorizontal ? "width" : "height"] * delta;
    if (immediateSibling) {
      const start = isHorizontal ? "left" : "top";
      const end = isHorizontal ? "right" : "bottom";
      if (delta === -1) {
        siblingOffset -= immediateSibling.clientRect[start] - currentPosition[end];
      } else {
        siblingOffset += currentPosition[start] - immediateSibling.clientRect[end];
      }
    }
    return siblingOffset;
  }
  /**
   * Checks if pointer is entering in the first position
   * @param pointerX Position of the user's pointer along the X axis.
   * @param pointerY Position of the user's pointer along the Y axis.
   */
  _shouldEnterAsFirstChild(pointerX, pointerY) {
    if (!this._activeDraggables.length) {
      return false;
    }
    const itemPositions = this._itemPositions;
    const isHorizontal = this.orientation === "horizontal";
    const reversed = itemPositions[0].drag !== this._activeDraggables[0];
    if (reversed) {
      const lastItemRect = itemPositions[itemPositions.length - 1].clientRect;
      return isHorizontal ? pointerX >= lastItemRect.right : pointerY >= lastItemRect.bottom;
    } else {
      const firstItemRect = itemPositions[0].clientRect;
      return isHorizontal ? pointerX <= firstItemRect.left : pointerY <= firstItemRect.top;
    }
  }
  /**
   * Gets the index of an item in the drop container, based on the position of the user's pointer.
   * @param item Item that is being sorted.
   * @param pointerX Position of the user's pointer along the X axis.
   * @param pointerY Position of the user's pointer along the Y axis.
   * @param delta Direction in which the user is moving their pointer.
   */
  _getItemIndexFromPointerPosition(item, pointerX, pointerY, delta) {
    const isHorizontal = this.orientation === "horizontal";
    const index = this._itemPositions.findIndex(({
      drag,
      clientRect
    }) => {
      if (drag === item) {
        return false;
      }
      if (delta) {
        const direction = isHorizontal ? delta.x : delta.y;
        if (drag === this._previousSwap.drag && this._previousSwap.overlaps && direction === this._previousSwap.delta) {
          return false;
        }
      }
      return isHorizontal ? (
        // Round these down since most browsers report client rects with
        // sub-pixel precision, whereas the pointer coordinates are rounded to pixels.
        pointerX >= Math.floor(clientRect.left) && pointerX < Math.floor(clientRect.right)
      ) : pointerY >= Math.floor(clientRect.top) && pointerY < Math.floor(clientRect.bottom);
    });
    return index === -1 || !this._sortPredicate(index, item) ? -1 : index;
  }
};
var DROP_PROXIMITY_THRESHOLD = 0.05;
var SCROLL_PROXIMITY_THRESHOLD = 0.05;
var AutoScrollVerticalDirection;
(function(AutoScrollVerticalDirection2) {
  AutoScrollVerticalDirection2[AutoScrollVerticalDirection2["NONE"] = 0] = "NONE";
  AutoScrollVerticalDirection2[AutoScrollVerticalDirection2["UP"] = 1] = "UP";
  AutoScrollVerticalDirection2[AutoScrollVerticalDirection2["DOWN"] = 2] = "DOWN";
})(AutoScrollVerticalDirection || (AutoScrollVerticalDirection = {}));
var AutoScrollHorizontalDirection;
(function(AutoScrollHorizontalDirection2) {
  AutoScrollHorizontalDirection2[AutoScrollHorizontalDirection2["NONE"] = 0] = "NONE";
  AutoScrollHorizontalDirection2[AutoScrollHorizontalDirection2["LEFT"] = 1] = "LEFT";
  AutoScrollHorizontalDirection2[AutoScrollHorizontalDirection2["RIGHT"] = 2] = "RIGHT";
})(AutoScrollHorizontalDirection || (AutoScrollHorizontalDirection = {}));
var DropListRef = class {
  constructor(element, _dragDropRegistry, _document, _ngZone, _viewportRuler) {
    this._dragDropRegistry = _dragDropRegistry;
    this._ngZone = _ngZone;
    this._viewportRuler = _viewportRuler;
    this.disabled = false;
    this.sortingDisabled = false;
    this.autoScrollDisabled = false;
    this.autoScrollStep = 2;
    this.enterPredicate = () => true;
    this.sortPredicate = () => true;
    this.beforeStarted = new Subject();
    this.entered = new Subject();
    this.exited = new Subject();
    this.dropped = new Subject();
    this.sorted = new Subject();
    this.receivingStarted = new Subject();
    this.receivingStopped = new Subject();
    this._isDragging = false;
    this._draggables = [];
    this._siblings = [];
    this._activeSiblings = /* @__PURE__ */ new Set();
    this._viewportScrollSubscription = Subscription.EMPTY;
    this._verticalScrollDirection = AutoScrollVerticalDirection.NONE;
    this._horizontalScrollDirection = AutoScrollHorizontalDirection.NONE;
    this._stopScrollTimers = new Subject();
    this._cachedShadowRoot = null;
    this._startScrollInterval = () => {
      this._stopScrolling();
      interval(0, animationFrameScheduler).pipe(takeUntil(this._stopScrollTimers)).subscribe(() => {
        const node = this._scrollNode;
        const scrollStep = this.autoScrollStep;
        if (this._verticalScrollDirection === AutoScrollVerticalDirection.UP) {
          node.scrollBy(0, -scrollStep);
        } else if (this._verticalScrollDirection === AutoScrollVerticalDirection.DOWN) {
          node.scrollBy(0, scrollStep);
        }
        if (this._horizontalScrollDirection === AutoScrollHorizontalDirection.LEFT) {
          node.scrollBy(-scrollStep, 0);
        } else if (this._horizontalScrollDirection === AutoScrollHorizontalDirection.RIGHT) {
          node.scrollBy(scrollStep, 0);
        }
      });
    };
    this.element = coerceElement(element);
    this._document = _document;
    this.withScrollableParents([this.element]);
    _dragDropRegistry.registerDropContainer(this);
    this._parentPositions = new ParentPositionTracker(_document);
    this._sortStrategy = new SingleAxisSortStrategy(this.element, _dragDropRegistry);
    this._sortStrategy.withSortPredicate((index, item) => this.sortPredicate(index, item, this));
  }
  /** Removes the drop list functionality from the DOM element. */
  dispose() {
    this._stopScrolling();
    this._stopScrollTimers.complete();
    this._viewportScrollSubscription.unsubscribe();
    this.beforeStarted.complete();
    this.entered.complete();
    this.exited.complete();
    this.dropped.complete();
    this.sorted.complete();
    this.receivingStarted.complete();
    this.receivingStopped.complete();
    this._activeSiblings.clear();
    this._scrollNode = null;
    this._parentPositions.clear();
    this._dragDropRegistry.removeDropContainer(this);
  }
  /** Whether an item from this list is currently being dragged. */
  isDragging() {
    return this._isDragging;
  }
  /** Starts dragging an item. */
  start() {
    this._draggingStarted();
    this._notifyReceivingSiblings();
  }
  /**
   * Attempts to move an item into the container.
   * @param item Item that was moved into the container.
   * @param pointerX Position of the item along the X axis.
   * @param pointerY Position of the item along the Y axis.
   * @param index Index at which the item entered. If omitted, the container will try to figure it
   *   out automatically.
   */
  enter(item, pointerX, pointerY, index) {
    this._draggingStarted();
    if (index == null && this.sortingDisabled) {
      index = this._draggables.indexOf(item);
    }
    this._sortStrategy.enter(item, pointerX, pointerY, index);
    this._cacheParentPositions();
    this._notifyReceivingSiblings();
    this.entered.next({
      item,
      container: this,
      currentIndex: this.getItemIndex(item)
    });
  }
  /**
   * Removes an item from the container after it was dragged into another container by the user.
   * @param item Item that was dragged out.
   */
  exit(item) {
    this._reset();
    this.exited.next({
      item,
      container: this
    });
  }
  /**
   * Drops an item into this container.
   * @param item Item being dropped into the container.
   * @param currentIndex Index at which the item should be inserted.
   * @param previousIndex Index of the item when dragging started.
   * @param previousContainer Container from which the item got dragged in.
   * @param isPointerOverContainer Whether the user's pointer was over the
   *    container when the item was dropped.
   * @param distance Distance the user has dragged since the start of the dragging sequence.
   * @param event Event that triggered the dropping sequence.
   *
   * @breaking-change 15.0.0 `previousIndex` and `event` parameters to become required.
   */
  drop(item, currentIndex, previousIndex, previousContainer, isPointerOverContainer, distance, dropPoint, event = {}) {
    this._reset();
    this.dropped.next({
      item,
      currentIndex,
      previousIndex,
      container: this,
      previousContainer,
      isPointerOverContainer,
      distance,
      dropPoint,
      event
    });
  }
  /**
   * Sets the draggable items that are a part of this list.
   * @param items Items that are a part of this list.
   */
  withItems(items) {
    const previousItems = this._draggables;
    this._draggables = items;
    items.forEach((item) => item._withDropContainer(this));
    if (this.isDragging()) {
      const draggedItems = previousItems.filter((item) => item.isDragging());
      if (draggedItems.every((item) => items.indexOf(item) === -1)) {
        this._reset();
      } else {
        this._sortStrategy.withItems(this._draggables);
      }
    }
    return this;
  }
  /** Sets the layout direction of the drop list. */
  withDirection(direction) {
    this._sortStrategy.direction = direction;
    return this;
  }
  /**
   * Sets the containers that are connected to this one. When two or more containers are
   * connected, the user will be allowed to transfer items between them.
   * @param connectedTo Other containers that the current containers should be connected to.
   */
  connectedTo(connectedTo) {
    this._siblings = connectedTo.slice();
    return this;
  }
  /**
   * Sets the orientation of the container.
   * @param orientation New orientation for the container.
   */
  withOrientation(orientation) {
    this._sortStrategy.orientation = orientation;
    return this;
  }
  /**
   * Sets which parent elements are can be scrolled while the user is dragging.
   * @param elements Elements that can be scrolled.
   */
  withScrollableParents(elements) {
    const element = coerceElement(this.element);
    this._scrollableElements = elements.indexOf(element) === -1 ? [element, ...elements] : elements.slice();
    return this;
  }
  /** Gets the scrollable parents that are registered with this drop container. */
  getScrollableParents() {
    return this._scrollableElements;
  }
  /**
   * Figures out the index of an item in the container.
   * @param item Item whose index should be determined.
   */
  getItemIndex(item) {
    return this._isDragging ? this._sortStrategy.getItemIndex(item) : this._draggables.indexOf(item);
  }
  /**
   * Whether the list is able to receive the item that
   * is currently being dragged inside a connected drop list.
   */
  isReceiving() {
    return this._activeSiblings.size > 0;
  }
  /**
   * Sorts an item inside the container based on its position.
   * @param item Item to be sorted.
   * @param pointerX Position of the item along the X axis.
   * @param pointerY Position of the item along the Y axis.
   * @param pointerDelta Direction in which the pointer is moving along each axis.
   */
  _sortItem(item, pointerX, pointerY, pointerDelta) {
    if (this.sortingDisabled || !this._domRect || !isPointerNearDomRect(this._domRect, DROP_PROXIMITY_THRESHOLD, pointerX, pointerY)) {
      return;
    }
    const result = this._sortStrategy.sort(item, pointerX, pointerY, pointerDelta);
    if (result) {
      this.sorted.next({
        previousIndex: result.previousIndex,
        currentIndex: result.currentIndex,
        container: this,
        item
      });
    }
  }
  /**
   * Checks whether the user's pointer is close to the edges of either the
   * viewport or the drop list and starts the auto-scroll sequence.
   * @param pointerX User's pointer position along the x axis.
   * @param pointerY User's pointer position along the y axis.
   */
  _startScrollingIfNecessary(pointerX, pointerY) {
    if (this.autoScrollDisabled) {
      return;
    }
    let scrollNode;
    let verticalScrollDirection = AutoScrollVerticalDirection.NONE;
    let horizontalScrollDirection = AutoScrollHorizontalDirection.NONE;
    this._parentPositions.positions.forEach((position, element) => {
      if (element === this._document || !position.clientRect || scrollNode) {
        return;
      }
      if (isPointerNearDomRect(position.clientRect, DROP_PROXIMITY_THRESHOLD, pointerX, pointerY)) {
        [verticalScrollDirection, horizontalScrollDirection] = getElementScrollDirections(element, position.clientRect, this._sortStrategy.direction, pointerX, pointerY);
        if (verticalScrollDirection || horizontalScrollDirection) {
          scrollNode = element;
        }
      }
    });
    if (!verticalScrollDirection && !horizontalScrollDirection) {
      const {
        width,
        height
      } = this._viewportRuler.getViewportSize();
      const domRect = {
        width,
        height,
        top: 0,
        right: width,
        bottom: height,
        left: 0
      };
      verticalScrollDirection = getVerticalScrollDirection(domRect, pointerY);
      horizontalScrollDirection = getHorizontalScrollDirection(domRect, pointerX);
      scrollNode = window;
    }
    if (scrollNode && (verticalScrollDirection !== this._verticalScrollDirection || horizontalScrollDirection !== this._horizontalScrollDirection || scrollNode !== this._scrollNode)) {
      this._verticalScrollDirection = verticalScrollDirection;
      this._horizontalScrollDirection = horizontalScrollDirection;
      this._scrollNode = scrollNode;
      if ((verticalScrollDirection || horizontalScrollDirection) && scrollNode) {
        this._ngZone.runOutsideAngular(this._startScrollInterval);
      } else {
        this._stopScrolling();
      }
    }
  }
  /** Stops any currently-running auto-scroll sequences. */
  _stopScrolling() {
    this._stopScrollTimers.next();
  }
  /** Starts the dragging sequence within the list. */
  _draggingStarted() {
    const styles = coerceElement(this.element).style;
    this.beforeStarted.next();
    this._isDragging = true;
    this._initialScrollSnap = styles.msScrollSnapType || styles.scrollSnapType || "";
    styles.scrollSnapType = styles.msScrollSnapType = "none";
    this._sortStrategy.start(this._draggables);
    this._cacheParentPositions();
    this._viewportScrollSubscription.unsubscribe();
    this._listenToScrollEvents();
  }
  /** Caches the positions of the configured scrollable parents. */
  _cacheParentPositions() {
    const element = coerceElement(this.element);
    this._parentPositions.cache(this._scrollableElements);
    this._domRect = this._parentPositions.positions.get(element).clientRect;
  }
  /** Resets the container to its initial state. */
  _reset() {
    this._isDragging = false;
    const styles = coerceElement(this.element).style;
    styles.scrollSnapType = styles.msScrollSnapType = this._initialScrollSnap;
    this._siblings.forEach((sibling) => sibling._stopReceiving(this));
    this._sortStrategy.reset();
    this._stopScrolling();
    this._viewportScrollSubscription.unsubscribe();
    this._parentPositions.clear();
  }
  /**
   * Checks whether the user's pointer is positioned over the container.
   * @param x Pointer position along the X axis.
   * @param y Pointer position along the Y axis.
   */
  _isOverContainer(x, y) {
    return this._domRect != null && isInsideClientRect(this._domRect, x, y);
  }
  /**
   * Figures out whether an item should be moved into a sibling
   * drop container, based on its current position.
   * @param item Drag item that is being moved.
   * @param x Position of the item along the X axis.
   * @param y Position of the item along the Y axis.
   */
  _getSiblingContainerFromPosition(item, x, y) {
    return this._siblings.find((sibling) => sibling._canReceive(item, x, y));
  }
  /**
   * Checks whether the drop list can receive the passed-in item.
   * @param item Item that is being dragged into the list.
   * @param x Position of the item along the X axis.
   * @param y Position of the item along the Y axis.
   */
  _canReceive(item, x, y) {
    if (!this._domRect || !isInsideClientRect(this._domRect, x, y) || !this.enterPredicate(item, this)) {
      return false;
    }
    const elementFromPoint = this._getShadowRoot().elementFromPoint(x, y);
    if (!elementFromPoint) {
      return false;
    }
    const nativeElement = coerceElement(this.element);
    return elementFromPoint === nativeElement || nativeElement.contains(elementFromPoint);
  }
  /**
   * Called by one of the connected drop lists when a dragging sequence has started.
   * @param sibling Sibling in which dragging has started.
   */
  _startReceiving(sibling, items) {
    const activeSiblings = this._activeSiblings;
    if (!activeSiblings.has(sibling) && items.every((item) => {
      return this.enterPredicate(item, this) || this._draggables.indexOf(item) > -1;
    })) {
      activeSiblings.add(sibling);
      this._cacheParentPositions();
      this._listenToScrollEvents();
      this.receivingStarted.next({
        initiator: sibling,
        receiver: this,
        items
      });
    }
  }
  /**
   * Called by a connected drop list when dragging has stopped.
   * @param sibling Sibling whose dragging has stopped.
   */
  _stopReceiving(sibling) {
    this._activeSiblings.delete(sibling);
    this._viewportScrollSubscription.unsubscribe();
    this.receivingStopped.next({
      initiator: sibling,
      receiver: this
    });
  }
  /**
   * Starts listening to scroll events on the viewport.
   * Used for updating the internal state of the list.
   */
  _listenToScrollEvents() {
    this._viewportScrollSubscription = this._dragDropRegistry.scrolled(this._getShadowRoot()).subscribe((event) => {
      if (this.isDragging()) {
        const scrollDifference = this._parentPositions.handleScroll(event);
        if (scrollDifference) {
          this._sortStrategy.updateOnScroll(scrollDifference.top, scrollDifference.left);
        }
      } else if (this.isReceiving()) {
        this._cacheParentPositions();
      }
    });
  }
  /**
   * Lazily resolves and returns the shadow root of the element. We do this in a function, rather
   * than saving it in property directly on init, because we want to resolve it as late as possible
   * in order to ensure that the element has been moved into the shadow DOM. Doing it inside the
   * constructor might be too early if the element is inside of something like `ngFor` or `ngIf`.
   */
  _getShadowRoot() {
    if (!this._cachedShadowRoot) {
      const shadowRoot = _getShadowRoot(coerceElement(this.element));
      this._cachedShadowRoot = shadowRoot || this._document;
    }
    return this._cachedShadowRoot;
  }
  /** Notifies any siblings that may potentially receive the item. */
  _notifyReceivingSiblings() {
    const draggedItems = this._sortStrategy.getActiveItemsSnapshot().filter((item) => item.isDragging());
    this._siblings.forEach((sibling) => sibling._startReceiving(this, draggedItems));
  }
};
function getVerticalScrollDirection(clientRect, pointerY) {
  const {
    top,
    bottom,
    height
  } = clientRect;
  const yThreshold = height * SCROLL_PROXIMITY_THRESHOLD;
  if (pointerY >= top - yThreshold && pointerY <= top + yThreshold) {
    return AutoScrollVerticalDirection.UP;
  } else if (pointerY >= bottom - yThreshold && pointerY <= bottom + yThreshold) {
    return AutoScrollVerticalDirection.DOWN;
  }
  return AutoScrollVerticalDirection.NONE;
}
function getHorizontalScrollDirection(clientRect, pointerX) {
  const {
    left,
    right,
    width
  } = clientRect;
  const xThreshold = width * SCROLL_PROXIMITY_THRESHOLD;
  if (pointerX >= left - xThreshold && pointerX <= left + xThreshold) {
    return AutoScrollHorizontalDirection.LEFT;
  } else if (pointerX >= right - xThreshold && pointerX <= right + xThreshold) {
    return AutoScrollHorizontalDirection.RIGHT;
  }
  return AutoScrollHorizontalDirection.NONE;
}
function getElementScrollDirections(element, clientRect, direction, pointerX, pointerY) {
  const computedVertical = getVerticalScrollDirection(clientRect, pointerY);
  const computedHorizontal = getHorizontalScrollDirection(clientRect, pointerX);
  let verticalScrollDirection = AutoScrollVerticalDirection.NONE;
  let horizontalScrollDirection = AutoScrollHorizontalDirection.NONE;
  if (computedVertical) {
    const scrollTop = element.scrollTop;
    if (computedVertical === AutoScrollVerticalDirection.UP) {
      if (scrollTop > 0) {
        verticalScrollDirection = AutoScrollVerticalDirection.UP;
      }
    } else if (element.scrollHeight - scrollTop > element.clientHeight) {
      verticalScrollDirection = AutoScrollVerticalDirection.DOWN;
    }
  }
  if (computedHorizontal) {
    const scrollLeft = element.scrollLeft;
    if (direction === "rtl") {
      if (computedHorizontal === AutoScrollHorizontalDirection.RIGHT) {
        if (scrollLeft < 0) {
          horizontalScrollDirection = AutoScrollHorizontalDirection.RIGHT;
        }
      } else if (element.scrollWidth + scrollLeft > element.clientWidth) {
        horizontalScrollDirection = AutoScrollHorizontalDirection.LEFT;
      }
    } else {
      if (computedHorizontal === AutoScrollHorizontalDirection.LEFT) {
        if (scrollLeft > 0) {
          horizontalScrollDirection = AutoScrollHorizontalDirection.LEFT;
        }
      } else if (element.scrollWidth - scrollLeft > element.clientWidth) {
        horizontalScrollDirection = AutoScrollHorizontalDirection.RIGHT;
      }
    }
  }
  return [verticalScrollDirection, horizontalScrollDirection];
}
var activeCapturingEventOptions = normalizePassiveListenerOptions({
  passive: false,
  capture: true
});
var activeApps = /* @__PURE__ */ new Set();
var __ResetsLoader = class __ResetsLoader {
};
__ResetsLoader.\u0275fac = function _ResetsLoader_Factory(t) {
  return new (t || __ResetsLoader)();
};
__ResetsLoader.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({
  type: __ResetsLoader,
  selectors: [["ng-component"]],
  hostAttrs: ["cdk-drag-resets-container", ""],
  standalone: true,
  features: [\u0275\u0275StandaloneFeature],
  decls: 0,
  vars: 0,
  template: function _ResetsLoader_Template(rf, ctx) {
  },
  styles: ["@layer cdk-resets{.cdk-drag-preview{background:none;border:none;padding:0;color:inherit}}"],
  encapsulation: 2,
  changeDetection: 0
});
var _ResetsLoader = __ResetsLoader;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(_ResetsLoader, [{
    type: Component,
    args: [{
      standalone: true,
      encapsulation: ViewEncapsulation$1.None,
      template: "",
      changeDetection: ChangeDetectionStrategy.OnPush,
      host: {
        "cdk-drag-resets-container": ""
      },
      styles: ["@layer cdk-resets{.cdk-drag-preview{background:none;border:none;padding:0;color:inherit}}"]
    }]
  }], null, null);
})();
var _DragDropRegistry = class _DragDropRegistry {
  constructor(_ngZone, _document) {
    this._ngZone = _ngZone;
    this._appRef = inject(ApplicationRef);
    this._environmentInjector = inject(EnvironmentInjector);
    this._dropInstances = /* @__PURE__ */ new Set();
    this._dragInstances = /* @__PURE__ */ new Set();
    this._activeDragInstances = [];
    this._globalListeners = /* @__PURE__ */ new Map();
    this._draggingPredicate = (item) => item.isDragging();
    this.pointerMove = new Subject();
    this.pointerUp = new Subject();
    this.scroll = new Subject();
    this._preventDefaultWhileDragging = (event) => {
      if (this._activeDragInstances.length > 0) {
        event.preventDefault();
      }
    };
    this._persistentTouchmoveListener = (event) => {
      if (this._activeDragInstances.length > 0) {
        if (this._activeDragInstances.some(this._draggingPredicate)) {
          event.preventDefault();
        }
        this.pointerMove.next(event);
      }
    };
    this._document = _document;
  }
  /** Adds a drop container to the registry. */
  registerDropContainer(drop) {
    if (!this._dropInstances.has(drop)) {
      this._dropInstances.add(drop);
    }
  }
  /** Adds a drag item instance to the registry. */
  registerDragItem(drag) {
    this._dragInstances.add(drag);
    if (this._dragInstances.size === 1) {
      this._ngZone.runOutsideAngular(() => {
        this._document.addEventListener("touchmove", this._persistentTouchmoveListener, activeCapturingEventOptions);
      });
    }
  }
  /** Removes a drop container from the registry. */
  removeDropContainer(drop) {
    this._dropInstances.delete(drop);
  }
  /** Removes a drag item instance from the registry. */
  removeDragItem(drag) {
    this._dragInstances.delete(drag);
    this.stopDragging(drag);
    if (this._dragInstances.size === 0) {
      this._document.removeEventListener("touchmove", this._persistentTouchmoveListener, activeCapturingEventOptions);
    }
  }
  /**
   * Starts the dragging sequence for a drag instance.
   * @param drag Drag instance which is being dragged.
   * @param event Event that initiated the dragging.
   */
  startDragging(drag, event) {
    if (this._activeDragInstances.indexOf(drag) > -1) {
      return;
    }
    this._loadResets();
    this._activeDragInstances.push(drag);
    if (this._activeDragInstances.length === 1) {
      const isTouchEvent2 = event.type.startsWith("touch");
      this._globalListeners.set(isTouchEvent2 ? "touchend" : "mouseup", {
        handler: (e) => this.pointerUp.next(e),
        options: true
      }).set("scroll", {
        handler: (e) => this.scroll.next(e),
        // Use capturing so that we pick up scroll changes in any scrollable nodes that aren't
        // the document. See https://github.com/angular/components/issues/17144.
        options: true
      }).set("selectstart", {
        handler: this._preventDefaultWhileDragging,
        options: activeCapturingEventOptions
      });
      if (!isTouchEvent2) {
        this._globalListeners.set("mousemove", {
          handler: (e) => this.pointerMove.next(e),
          options: activeCapturingEventOptions
        });
      }
      this._ngZone.runOutsideAngular(() => {
        this._globalListeners.forEach((config, name) => {
          this._document.addEventListener(name, config.handler, config.options);
        });
      });
    }
  }
  /** Stops dragging a drag item instance. */
  stopDragging(drag) {
    const index = this._activeDragInstances.indexOf(drag);
    if (index > -1) {
      this._activeDragInstances.splice(index, 1);
      if (this._activeDragInstances.length === 0) {
        this._clearGlobalListeners();
      }
    }
  }
  /** Gets whether a drag item instance is currently being dragged. */
  isDragging(drag) {
    return this._activeDragInstances.indexOf(drag) > -1;
  }
  /**
   * Gets a stream that will emit when any element on the page is scrolled while an item is being
   * dragged.
   * @param shadowRoot Optional shadow root that the current dragging sequence started from.
   *   Top-level listeners won't pick up events coming from the shadow DOM so this parameter can
   *   be used to include an additional top-level listener at the shadow root level.
   */
  scrolled(shadowRoot) {
    const streams = [this.scroll];
    if (shadowRoot && shadowRoot !== this._document) {
      streams.push(new Observable((observer) => {
        return this._ngZone.runOutsideAngular(() => {
          const eventOptions = true;
          const callback = (event) => {
            if (this._activeDragInstances.length) {
              observer.next(event);
            }
          };
          shadowRoot.addEventListener("scroll", callback, eventOptions);
          return () => {
            shadowRoot.removeEventListener("scroll", callback, eventOptions);
          };
        });
      }));
    }
    return merge(...streams);
  }
  ngOnDestroy() {
    this._dragInstances.forEach((instance) => this.removeDragItem(instance));
    this._dropInstances.forEach((instance) => this.removeDropContainer(instance));
    this._clearGlobalListeners();
    this.pointerMove.complete();
    this.pointerUp.complete();
  }
  /** Clears out the global event listeners from the `document`. */
  _clearGlobalListeners() {
    this._globalListeners.forEach((config, name) => {
      this._document.removeEventListener(name, config.handler, config.options);
    });
    this._globalListeners.clear();
  }
  // TODO(crisbeto): abstract this away into something reusable.
  /** Loads the CSS resets needed for the module to work correctly. */
  _loadResets() {
    if (!activeApps.has(this._appRef)) {
      activeApps.add(this._appRef);
      const componentRef = createComponent(_ResetsLoader, {
        environmentInjector: this._environmentInjector
      });
      this._appRef.onDestroy(() => {
        activeApps.delete(this._appRef);
        if (activeApps.size === 0) {
          componentRef.destroy();
        }
      });
    }
  }
};
_DragDropRegistry.\u0275fac = function DragDropRegistry_Factory(t) {
  return new (t || _DragDropRegistry)(\u0275\u0275inject(NgZone), \u0275\u0275inject(DOCUMENT));
};
_DragDropRegistry.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _DragDropRegistry,
  factory: _DragDropRegistry.\u0275fac,
  providedIn: "root"
});
var DragDropRegistry = _DragDropRegistry;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(DragDropRegistry, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: NgZone
  }, {
    type: void 0,
    decorators: [{
      type: Inject,
      args: [DOCUMENT]
    }]
  }], null);
})();
var DEFAULT_CONFIG = {
  dragStartThreshold: 5,
  pointerDirectionChangeThreshold: 5
};
var _DragDrop = class _DragDrop {
  constructor(_document, _ngZone, _viewportRuler, _dragDropRegistry) {
    this._document = _document;
    this._ngZone = _ngZone;
    this._viewportRuler = _viewportRuler;
    this._dragDropRegistry = _dragDropRegistry;
  }
  /**
   * Turns an element into a draggable item.
   * @param element Element to which to attach the dragging functionality.
   * @param config Object used to configure the dragging behavior.
   */
  createDrag(element, config = DEFAULT_CONFIG) {
    return new DragRef(element, config, this._document, this._ngZone, this._viewportRuler, this._dragDropRegistry);
  }
  /**
   * Turns an element into a drop list.
   * @param element Element to which to attach the drop list functionality.
   */
  createDropList(element) {
    return new DropListRef(element, this._dragDropRegistry, this._document, this._ngZone, this._viewportRuler);
  }
};
_DragDrop.\u0275fac = function DragDrop_Factory(t) {
  return new (t || _DragDrop)(\u0275\u0275inject(DOCUMENT), \u0275\u0275inject(NgZone), \u0275\u0275inject(ViewportRuler), \u0275\u0275inject(DragDropRegistry));
};
_DragDrop.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _DragDrop,
  factory: _DragDrop.\u0275fac,
  providedIn: "root"
});
var DragDrop = _DragDrop;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(DragDrop, [{
    type: Injectable,
    args: [{
      providedIn: "root"
    }]
  }], () => [{
    type: void 0,
    decorators: [{
      type: Inject,
      args: [DOCUMENT]
    }]
  }, {
    type: NgZone
  }, {
    type: ViewportRuler
  }, {
    type: DragDropRegistry
  }], null);
})();
var CDK_DRAG_PARENT = new InjectionToken("CDK_DRAG_PARENT");
function assertElementNode(node, name) {
  if (node.nodeType !== 1) {
    throw Error(`${name} must be attached to an element node. Currently attached to "${node.nodeName}".`);
  }
}
var CDK_DRAG_HANDLE = new InjectionToken("CdkDragHandle");
var _CdkDragHandle = class _CdkDragHandle {
  /** Whether starting to drag through this handle is disabled. */
  get disabled() {
    return this._disabled;
  }
  set disabled(value) {
    this._disabled = value;
    this._stateChanges.next(this);
  }
  constructor(element, _parentDrag) {
    this.element = element;
    this._parentDrag = _parentDrag;
    this._stateChanges = new Subject();
    this._disabled = false;
    if (typeof ngDevMode === "undefined" || ngDevMode) {
      assertElementNode(element.nativeElement, "cdkDragHandle");
    }
    _parentDrag?._addHandle(this);
  }
  ngOnDestroy() {
    this._parentDrag?._removeHandle(this);
    this._stateChanges.complete();
  }
};
_CdkDragHandle.\u0275fac = function CdkDragHandle_Factory(t) {
  return new (t || _CdkDragHandle)(\u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(CDK_DRAG_PARENT, 12));
};
_CdkDragHandle.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkDragHandle,
  selectors: [["", "cdkDragHandle", ""]],
  hostAttrs: [1, "cdk-drag-handle"],
  inputs: {
    disabled: [InputFlags.HasDecoratorInputTransform, "cdkDragHandleDisabled", "disabled", booleanAttribute]
  },
  standalone: true,
  features: [\u0275\u0275ProvidersFeature([{
    provide: CDK_DRAG_HANDLE,
    useExisting: _CdkDragHandle
  }]), \u0275\u0275InputTransformsFeature]
});
var CdkDragHandle = _CdkDragHandle;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkDragHandle, [{
    type: Directive,
    args: [{
      selector: "[cdkDragHandle]",
      standalone: true,
      host: {
        "class": "cdk-drag-handle"
      },
      providers: [{
        provide: CDK_DRAG_HANDLE,
        useExisting: CdkDragHandle
      }]
    }]
  }], () => [{
    type: ElementRef
  }, {
    type: void 0,
    decorators: [{
      type: Inject,
      args: [CDK_DRAG_PARENT]
    }, {
      type: Optional
    }, {
      type: SkipSelf
    }]
  }], {
    disabled: [{
      type: Input,
      args: [{
        alias: "cdkDragHandleDisabled",
        transform: booleanAttribute
      }]
    }]
  });
})();
var CDK_DRAG_CONFIG = new InjectionToken("CDK_DRAG_CONFIG");
var DRAG_HOST_CLASS = "cdk-drag";
var CDK_DROP_LIST = new InjectionToken("CdkDropList");
var _CdkDrag = class _CdkDrag {
  /** Whether starting to drag this element is disabled. */
  get disabled() {
    return this._disabled || this.dropContainer && this.dropContainer.disabled;
  }
  set disabled(value) {
    this._disabled = value;
    this._dragRef.disabled = this._disabled;
  }
  constructor(element, dropContainer, _document, _ngZone, _viewContainerRef, config, _dir, dragDrop, _changeDetectorRef, _selfHandle, _parentDrag) {
    this.element = element;
    this.dropContainer = dropContainer;
    this._ngZone = _ngZone;
    this._viewContainerRef = _viewContainerRef;
    this._dir = _dir;
    this._changeDetectorRef = _changeDetectorRef;
    this._selfHandle = _selfHandle;
    this._parentDrag = _parentDrag;
    this._destroyed = new Subject();
    this._handles = new BehaviorSubject([]);
    this.started = new EventEmitter();
    this.released = new EventEmitter();
    this.ended = new EventEmitter();
    this.entered = new EventEmitter();
    this.exited = new EventEmitter();
    this.dropped = new EventEmitter();
    this.moved = new Observable((observer) => {
      const subscription = this._dragRef.moved.pipe(map((movedEvent) => ({
        source: this,
        pointerPosition: movedEvent.pointerPosition,
        event: movedEvent.event,
        delta: movedEvent.delta,
        distance: movedEvent.distance
      }))).subscribe(observer);
      return () => {
        subscription.unsubscribe();
      };
    });
    this._dragRef = dragDrop.createDrag(element, {
      dragStartThreshold: config && config.dragStartThreshold != null ? config.dragStartThreshold : 5,
      pointerDirectionChangeThreshold: config && config.pointerDirectionChangeThreshold != null ? config.pointerDirectionChangeThreshold : 5,
      zIndex: config?.zIndex
    });
    this._dragRef.data = this;
    _CdkDrag._dragInstances.push(this);
    if (config) {
      this._assignDefaults(config);
    }
    if (dropContainer) {
      this._dragRef._withDropContainer(dropContainer._dropListRef);
      dropContainer.addItem(this);
    }
    this._syncInputs(this._dragRef);
    this._handleEvents(this._dragRef);
  }
  /**
   * Returns the element that is being used as a placeholder
   * while the current element is being dragged.
   */
  getPlaceholderElement() {
    return this._dragRef.getPlaceholderElement();
  }
  /** Returns the root draggable element. */
  getRootElement() {
    return this._dragRef.getRootElement();
  }
  /** Resets a standalone drag item to its initial position. */
  reset() {
    this._dragRef.reset();
  }
  /**
   * Gets the pixel coordinates of the draggable outside of a drop container.
   */
  getFreeDragPosition() {
    return this._dragRef.getFreeDragPosition();
  }
  /**
   * Sets the current position in pixels the draggable outside of a drop container.
   * @param value New position to be set.
   */
  setFreeDragPosition(value) {
    this._dragRef.setFreeDragPosition(value);
  }
  ngAfterViewInit() {
    this._ngZone.runOutsideAngular(() => {
      this._ngZone.onStable.pipe(take(1), takeUntil(this._destroyed)).subscribe(() => {
        this._updateRootElement();
        this._setupHandlesListener();
        if (this.freeDragPosition) {
          this._dragRef.setFreeDragPosition(this.freeDragPosition);
        }
      });
    });
  }
  ngOnChanges(changes) {
    const rootSelectorChange = changes["rootElementSelector"];
    const positionChange = changes["freeDragPosition"];
    if (rootSelectorChange && !rootSelectorChange.firstChange) {
      this._updateRootElement();
    }
    if (positionChange && !positionChange.firstChange && this.freeDragPosition) {
      this._dragRef.setFreeDragPosition(this.freeDragPosition);
    }
  }
  ngOnDestroy() {
    if (this.dropContainer) {
      this.dropContainer.removeItem(this);
    }
    const index = _CdkDrag._dragInstances.indexOf(this);
    if (index > -1) {
      _CdkDrag._dragInstances.splice(index, 1);
    }
    this._ngZone.runOutsideAngular(() => {
      this._handles.complete();
      this._destroyed.next();
      this._destroyed.complete();
      this._dragRef.dispose();
    });
  }
  _addHandle(handle) {
    const handles = this._handles.getValue();
    handles.push(handle);
    this._handles.next(handles);
  }
  _removeHandle(handle) {
    const handles = this._handles.getValue();
    const index = handles.indexOf(handle);
    if (index > -1) {
      handles.splice(index, 1);
      this._handles.next(handles);
    }
  }
  _setPreviewTemplate(preview) {
    this._previewTemplate = preview;
  }
  _resetPreviewTemplate(preview) {
    if (preview === this._previewTemplate) {
      this._previewTemplate = null;
    }
  }
  _setPlaceholderTemplate(placeholder) {
    this._placeholderTemplate = placeholder;
  }
  _resetPlaceholderTemplate(placeholder) {
    if (placeholder === this._placeholderTemplate) {
      this._placeholderTemplate = null;
    }
  }
  /** Syncs the root element with the `DragRef`. */
  _updateRootElement() {
    const element = this.element.nativeElement;
    let rootElement = element;
    if (this.rootElementSelector) {
      rootElement = element.closest !== void 0 ? element.closest(this.rootElementSelector) : (
        // Comment tag doesn't have closest method, so use parent's one.
        element.parentElement?.closest(this.rootElementSelector)
      );
    }
    if (rootElement && (typeof ngDevMode === "undefined" || ngDevMode)) {
      assertElementNode(rootElement, "cdkDrag");
    }
    this._dragRef.withRootElement(rootElement || element);
  }
  /** Gets the boundary element, based on the `boundaryElement` value. */
  _getBoundaryElement() {
    const boundary = this.boundaryElement;
    if (!boundary) {
      return null;
    }
    if (typeof boundary === "string") {
      return this.element.nativeElement.closest(boundary);
    }
    return coerceElement(boundary);
  }
  /** Syncs the inputs of the CdkDrag with the options of the underlying DragRef. */
  _syncInputs(ref) {
    ref.beforeStarted.subscribe(() => {
      if (!ref.isDragging()) {
        const dir = this._dir;
        const dragStartDelay = this.dragStartDelay;
        const placeholder = this._placeholderTemplate ? {
          template: this._placeholderTemplate.templateRef,
          context: this._placeholderTemplate.data,
          viewContainer: this._viewContainerRef
        } : null;
        const preview = this._previewTemplate ? {
          template: this._previewTemplate.templateRef,
          context: this._previewTemplate.data,
          matchSize: this._previewTemplate.matchSize,
          viewContainer: this._viewContainerRef
        } : null;
        ref.disabled = this.disabled;
        ref.lockAxis = this.lockAxis;
        ref.dragStartDelay = typeof dragStartDelay === "object" && dragStartDelay ? dragStartDelay : coerceNumberProperty(dragStartDelay);
        ref.constrainPosition = this.constrainPosition;
        ref.previewClass = this.previewClass;
        ref.withBoundaryElement(this._getBoundaryElement()).withPlaceholderTemplate(placeholder).withPreviewTemplate(preview).withPreviewContainer(this.previewContainer || "global");
        if (dir) {
          ref.withDirection(dir.value);
        }
      }
    });
    ref.beforeStarted.pipe(take(1)).subscribe(() => {
      if (this._parentDrag) {
        ref.withParent(this._parentDrag._dragRef);
        return;
      }
      let parent = this.element.nativeElement.parentElement;
      while (parent) {
        if (parent.classList.contains(DRAG_HOST_CLASS)) {
          ref.withParent(_CdkDrag._dragInstances.find((drag) => {
            return drag.element.nativeElement === parent;
          })?._dragRef || null);
          break;
        }
        parent = parent.parentElement;
      }
    });
  }
  /** Handles the events from the underlying `DragRef`. */
  _handleEvents(ref) {
    ref.started.subscribe((startEvent) => {
      this.started.emit({
        source: this,
        event: startEvent.event
      });
      this._changeDetectorRef.markForCheck();
    });
    ref.released.subscribe((releaseEvent) => {
      this.released.emit({
        source: this,
        event: releaseEvent.event
      });
    });
    ref.ended.subscribe((endEvent) => {
      this.ended.emit({
        source: this,
        distance: endEvent.distance,
        dropPoint: endEvent.dropPoint,
        event: endEvent.event
      });
      this._changeDetectorRef.markForCheck();
    });
    ref.entered.subscribe((enterEvent) => {
      this.entered.emit({
        container: enterEvent.container.data,
        item: this,
        currentIndex: enterEvent.currentIndex
      });
    });
    ref.exited.subscribe((exitEvent) => {
      this.exited.emit({
        container: exitEvent.container.data,
        item: this
      });
    });
    ref.dropped.subscribe((dropEvent) => {
      this.dropped.emit({
        previousIndex: dropEvent.previousIndex,
        currentIndex: dropEvent.currentIndex,
        previousContainer: dropEvent.previousContainer.data,
        container: dropEvent.container.data,
        isPointerOverContainer: dropEvent.isPointerOverContainer,
        item: this,
        distance: dropEvent.distance,
        dropPoint: dropEvent.dropPoint,
        event: dropEvent.event
      });
    });
  }
  /** Assigns the default input values based on a provided config object. */
  _assignDefaults(config) {
    const {
      lockAxis,
      dragStartDelay,
      constrainPosition,
      previewClass,
      boundaryElement,
      draggingDisabled,
      rootElementSelector,
      previewContainer
    } = config;
    this.disabled = draggingDisabled == null ? false : draggingDisabled;
    this.dragStartDelay = dragStartDelay || 0;
    if (lockAxis) {
      this.lockAxis = lockAxis;
    }
    if (constrainPosition) {
      this.constrainPosition = constrainPosition;
    }
    if (previewClass) {
      this.previewClass = previewClass;
    }
    if (boundaryElement) {
      this.boundaryElement = boundaryElement;
    }
    if (rootElementSelector) {
      this.rootElementSelector = rootElementSelector;
    }
    if (previewContainer) {
      this.previewContainer = previewContainer;
    }
  }
  /** Sets up the listener that syncs the handles with the drag ref. */
  _setupHandlesListener() {
    this._handles.pipe(
      // Sync the new handles with the DragRef.
      tap((handles) => {
        const handleElements = handles.map((handle) => handle.element);
        if (this._selfHandle && this.rootElementSelector) {
          handleElements.push(this.element);
        }
        this._dragRef.withHandles(handleElements);
      }),
      // Listen if the state of any of the handles changes.
      switchMap((handles) => {
        return merge(...handles.map((item) => item._stateChanges.pipe(startWith(item))));
      }),
      takeUntil(this._destroyed)
    ).subscribe((handleInstance) => {
      const dragRef = this._dragRef;
      const handle = handleInstance.element.nativeElement;
      handleInstance.disabled ? dragRef.disableHandle(handle) : dragRef.enableHandle(handle);
    });
  }
};
_CdkDrag._dragInstances = [];
_CdkDrag.\u0275fac = function CdkDrag_Factory(t) {
  return new (t || _CdkDrag)(\u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(CDK_DROP_LIST, 12), \u0275\u0275directiveInject(DOCUMENT), \u0275\u0275directiveInject(NgZone), \u0275\u0275directiveInject(ViewContainerRef), \u0275\u0275directiveInject(CDK_DRAG_CONFIG, 8), \u0275\u0275directiveInject(Directionality, 8), \u0275\u0275directiveInject(DragDrop), \u0275\u0275directiveInject(ChangeDetectorRef), \u0275\u0275directiveInject(CDK_DRAG_HANDLE, 10), \u0275\u0275directiveInject(CDK_DRAG_PARENT, 12));
};
_CdkDrag.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkDrag,
  selectors: [["", "cdkDrag", ""]],
  hostAttrs: [1, "cdk-drag"],
  hostVars: 4,
  hostBindings: function CdkDrag_HostBindings(rf, ctx) {
    if (rf & 2) {
      \u0275\u0275classProp("cdk-drag-disabled", ctx.disabled)("cdk-drag-dragging", ctx._dragRef.isDragging());
    }
  },
  inputs: {
    data: [InputFlags.None, "cdkDragData", "data"],
    lockAxis: [InputFlags.None, "cdkDragLockAxis", "lockAxis"],
    rootElementSelector: [InputFlags.None, "cdkDragRootElement", "rootElementSelector"],
    boundaryElement: [InputFlags.None, "cdkDragBoundary", "boundaryElement"],
    dragStartDelay: [InputFlags.None, "cdkDragStartDelay", "dragStartDelay"],
    freeDragPosition: [InputFlags.None, "cdkDragFreeDragPosition", "freeDragPosition"],
    disabled: [InputFlags.HasDecoratorInputTransform, "cdkDragDisabled", "disabled", booleanAttribute],
    constrainPosition: [InputFlags.None, "cdkDragConstrainPosition", "constrainPosition"],
    previewClass: [InputFlags.None, "cdkDragPreviewClass", "previewClass"],
    previewContainer: [InputFlags.None, "cdkDragPreviewContainer", "previewContainer"]
  },
  outputs: {
    started: "cdkDragStarted",
    released: "cdkDragReleased",
    ended: "cdkDragEnded",
    entered: "cdkDragEntered",
    exited: "cdkDragExited",
    dropped: "cdkDragDropped",
    moved: "cdkDragMoved"
  },
  exportAs: ["cdkDrag"],
  standalone: true,
  features: [\u0275\u0275ProvidersFeature([{
    provide: CDK_DRAG_PARENT,
    useExisting: _CdkDrag
  }]), \u0275\u0275InputTransformsFeature, \u0275\u0275NgOnChangesFeature]
});
var CdkDrag = _CdkDrag;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkDrag, [{
    type: Directive,
    args: [{
      selector: "[cdkDrag]",
      exportAs: "cdkDrag",
      standalone: true,
      host: {
        "class": DRAG_HOST_CLASS,
        "[class.cdk-drag-disabled]": "disabled",
        "[class.cdk-drag-dragging]": "_dragRef.isDragging()"
      },
      providers: [{
        provide: CDK_DRAG_PARENT,
        useExisting: CdkDrag
      }]
    }]
  }], () => [{
    type: ElementRef
  }, {
    type: void 0,
    decorators: [{
      type: Inject,
      args: [CDK_DROP_LIST]
    }, {
      type: Optional
    }, {
      type: SkipSelf
    }]
  }, {
    type: void 0,
    decorators: [{
      type: Inject,
      args: [DOCUMENT]
    }]
  }, {
    type: NgZone
  }, {
    type: ViewContainerRef
  }, {
    type: void 0,
    decorators: [{
      type: Optional
    }, {
      type: Inject,
      args: [CDK_DRAG_CONFIG]
    }]
  }, {
    type: Directionality,
    decorators: [{
      type: Optional
    }]
  }, {
    type: DragDrop
  }, {
    type: ChangeDetectorRef
  }, {
    type: CdkDragHandle,
    decorators: [{
      type: Optional
    }, {
      type: Self
    }, {
      type: Inject,
      args: [CDK_DRAG_HANDLE]
    }]
  }, {
    type: CdkDrag,
    decorators: [{
      type: Optional
    }, {
      type: SkipSelf
    }, {
      type: Inject,
      args: [CDK_DRAG_PARENT]
    }]
  }], {
    data: [{
      type: Input,
      args: ["cdkDragData"]
    }],
    lockAxis: [{
      type: Input,
      args: ["cdkDragLockAxis"]
    }],
    rootElementSelector: [{
      type: Input,
      args: ["cdkDragRootElement"]
    }],
    boundaryElement: [{
      type: Input,
      args: ["cdkDragBoundary"]
    }],
    dragStartDelay: [{
      type: Input,
      args: ["cdkDragStartDelay"]
    }],
    freeDragPosition: [{
      type: Input,
      args: ["cdkDragFreeDragPosition"]
    }],
    disabled: [{
      type: Input,
      args: [{
        alias: "cdkDragDisabled",
        transform: booleanAttribute
      }]
    }],
    constrainPosition: [{
      type: Input,
      args: ["cdkDragConstrainPosition"]
    }],
    previewClass: [{
      type: Input,
      args: ["cdkDragPreviewClass"]
    }],
    previewContainer: [{
      type: Input,
      args: ["cdkDragPreviewContainer"]
    }],
    started: [{
      type: Output,
      args: ["cdkDragStarted"]
    }],
    released: [{
      type: Output,
      args: ["cdkDragReleased"]
    }],
    ended: [{
      type: Output,
      args: ["cdkDragEnded"]
    }],
    entered: [{
      type: Output,
      args: ["cdkDragEntered"]
    }],
    exited: [{
      type: Output,
      args: ["cdkDragExited"]
    }],
    dropped: [{
      type: Output,
      args: ["cdkDragDropped"]
    }],
    moved: [{
      type: Output,
      args: ["cdkDragMoved"]
    }]
  });
})();
var CDK_DROP_LIST_GROUP = new InjectionToken("CdkDropListGroup");
var _CdkDropListGroup = class _CdkDropListGroup {
  constructor() {
    this._items = /* @__PURE__ */ new Set();
    this.disabled = false;
  }
  ngOnDestroy() {
    this._items.clear();
  }
};
_CdkDropListGroup.\u0275fac = function CdkDropListGroup_Factory(t) {
  return new (t || _CdkDropListGroup)();
};
_CdkDropListGroup.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkDropListGroup,
  selectors: [["", "cdkDropListGroup", ""]],
  inputs: {
    disabled: [InputFlags.HasDecoratorInputTransform, "cdkDropListGroupDisabled", "disabled", booleanAttribute]
  },
  exportAs: ["cdkDropListGroup"],
  standalone: true,
  features: [\u0275\u0275ProvidersFeature([{
    provide: CDK_DROP_LIST_GROUP,
    useExisting: _CdkDropListGroup
  }]), \u0275\u0275InputTransformsFeature]
});
var CdkDropListGroup = _CdkDropListGroup;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkDropListGroup, [{
    type: Directive,
    args: [{
      selector: "[cdkDropListGroup]",
      exportAs: "cdkDropListGroup",
      standalone: true,
      providers: [{
        provide: CDK_DROP_LIST_GROUP,
        useExisting: CdkDropListGroup
      }]
    }]
  }], null, {
    disabled: [{
      type: Input,
      args: [{
        alias: "cdkDropListGroupDisabled",
        transform: booleanAttribute
      }]
    }]
  });
})();
var _uniqueIdCounter = 0;
var _CdkDropList = class _CdkDropList {
  /** Whether starting a dragging sequence from this container is disabled. */
  get disabled() {
    return this._disabled || !!this._group && this._group.disabled;
  }
  set disabled(value) {
    this._dropListRef.disabled = this._disabled = value;
  }
  constructor(element, dragDrop, _changeDetectorRef, _scrollDispatcher, _dir, _group, config) {
    this.element = element;
    this._changeDetectorRef = _changeDetectorRef;
    this._scrollDispatcher = _scrollDispatcher;
    this._dir = _dir;
    this._group = _group;
    this._destroyed = new Subject();
    this.connectedTo = [];
    this.id = `cdk-drop-list-${_uniqueIdCounter++}`;
    this.enterPredicate = () => true;
    this.sortPredicate = () => true;
    this.dropped = new EventEmitter();
    this.entered = new EventEmitter();
    this.exited = new EventEmitter();
    this.sorted = new EventEmitter();
    this._unsortedItems = /* @__PURE__ */ new Set();
    if (typeof ngDevMode === "undefined" || ngDevMode) {
      assertElementNode(element.nativeElement, "cdkDropList");
    }
    this._dropListRef = dragDrop.createDropList(element);
    this._dropListRef.data = this;
    if (config) {
      this._assignDefaults(config);
    }
    this._dropListRef.enterPredicate = (drag, drop) => {
      return this.enterPredicate(drag.data, drop.data);
    };
    this._dropListRef.sortPredicate = (index, drag, drop) => {
      return this.sortPredicate(index, drag.data, drop.data);
    };
    this._setupInputSyncSubscription(this._dropListRef);
    this._handleEvents(this._dropListRef);
    _CdkDropList._dropLists.push(this);
    if (_group) {
      _group._items.add(this);
    }
  }
  /** Registers an items with the drop list. */
  addItem(item) {
    this._unsortedItems.add(item);
    if (this._dropListRef.isDragging()) {
      this._syncItemsWithRef();
    }
  }
  /** Removes an item from the drop list. */
  removeItem(item) {
    this._unsortedItems.delete(item);
    if (this._dropListRef.isDragging()) {
      this._syncItemsWithRef();
    }
  }
  /** Gets the registered items in the list, sorted by their position in the DOM. */
  getSortedItems() {
    return Array.from(this._unsortedItems).sort((a, b) => {
      const documentPosition = a._dragRef.getVisibleElement().compareDocumentPosition(b._dragRef.getVisibleElement());
      return documentPosition & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;
    });
  }
  ngOnDestroy() {
    const index = _CdkDropList._dropLists.indexOf(this);
    if (index > -1) {
      _CdkDropList._dropLists.splice(index, 1);
    }
    if (this._group) {
      this._group._items.delete(this);
    }
    this._unsortedItems.clear();
    this._dropListRef.dispose();
    this._destroyed.next();
    this._destroyed.complete();
  }
  /** Syncs the inputs of the CdkDropList with the options of the underlying DropListRef. */
  _setupInputSyncSubscription(ref) {
    if (this._dir) {
      this._dir.change.pipe(startWith(this._dir.value), takeUntil(this._destroyed)).subscribe((value) => ref.withDirection(value));
    }
    ref.beforeStarted.subscribe(() => {
      const siblings = coerceArray(this.connectedTo).map((drop) => {
        if (typeof drop === "string") {
          const correspondingDropList = _CdkDropList._dropLists.find((list) => list.id === drop);
          if (!correspondingDropList && (typeof ngDevMode === "undefined" || ngDevMode)) {
            console.warn(`CdkDropList could not find connected drop list with id "${drop}"`);
          }
          return correspondingDropList;
        }
        return drop;
      });
      if (this._group) {
        this._group._items.forEach((drop) => {
          if (siblings.indexOf(drop) === -1) {
            siblings.push(drop);
          }
        });
      }
      if (!this._scrollableParentsResolved) {
        const scrollableParents = this._scrollDispatcher.getAncestorScrollContainers(this.element).map((scrollable) => scrollable.getElementRef().nativeElement);
        this._dropListRef.withScrollableParents(scrollableParents);
        this._scrollableParentsResolved = true;
      }
      ref.disabled = this.disabled;
      ref.lockAxis = this.lockAxis;
      ref.sortingDisabled = this.sortingDisabled;
      ref.autoScrollDisabled = this.autoScrollDisabled;
      ref.autoScrollStep = coerceNumberProperty(this.autoScrollStep, 2);
      ref.connectedTo(siblings.filter((drop) => drop && drop !== this).map((list) => list._dropListRef)).withOrientation(this.orientation);
    });
  }
  /** Handles events from the underlying DropListRef. */
  _handleEvents(ref) {
    ref.beforeStarted.subscribe(() => {
      this._syncItemsWithRef();
      this._changeDetectorRef.markForCheck();
    });
    ref.entered.subscribe((event) => {
      this.entered.emit({
        container: this,
        item: event.item.data,
        currentIndex: event.currentIndex
      });
    });
    ref.exited.subscribe((event) => {
      this.exited.emit({
        container: this,
        item: event.item.data
      });
      this._changeDetectorRef.markForCheck();
    });
    ref.sorted.subscribe((event) => {
      this.sorted.emit({
        previousIndex: event.previousIndex,
        currentIndex: event.currentIndex,
        container: this,
        item: event.item.data
      });
    });
    ref.dropped.subscribe((dropEvent) => {
      this.dropped.emit({
        previousIndex: dropEvent.previousIndex,
        currentIndex: dropEvent.currentIndex,
        previousContainer: dropEvent.previousContainer.data,
        container: dropEvent.container.data,
        item: dropEvent.item.data,
        isPointerOverContainer: dropEvent.isPointerOverContainer,
        distance: dropEvent.distance,
        dropPoint: dropEvent.dropPoint,
        event: dropEvent.event
      });
      this._changeDetectorRef.markForCheck();
    });
    merge(ref.receivingStarted, ref.receivingStopped).subscribe(() => this._changeDetectorRef.markForCheck());
  }
  /** Assigns the default input values based on a provided config object. */
  _assignDefaults(config) {
    const {
      lockAxis,
      draggingDisabled,
      sortingDisabled,
      listAutoScrollDisabled,
      listOrientation
    } = config;
    this.disabled = draggingDisabled == null ? false : draggingDisabled;
    this.sortingDisabled = sortingDisabled == null ? false : sortingDisabled;
    this.autoScrollDisabled = listAutoScrollDisabled == null ? false : listAutoScrollDisabled;
    this.orientation = listOrientation || "vertical";
    if (lockAxis) {
      this.lockAxis = lockAxis;
    }
  }
  /** Syncs up the registered drag items with underlying drop list ref. */
  _syncItemsWithRef() {
    this._dropListRef.withItems(this.getSortedItems().map((item) => item._dragRef));
  }
};
_CdkDropList._dropLists = [];
_CdkDropList.\u0275fac = function CdkDropList_Factory(t) {
  return new (t || _CdkDropList)(\u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(DragDrop), \u0275\u0275directiveInject(ChangeDetectorRef), \u0275\u0275directiveInject(ScrollDispatcher), \u0275\u0275directiveInject(Directionality, 8), \u0275\u0275directiveInject(CDK_DROP_LIST_GROUP, 12), \u0275\u0275directiveInject(CDK_DRAG_CONFIG, 8));
};
_CdkDropList.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkDropList,
  selectors: [["", "cdkDropList", ""], ["cdk-drop-list"]],
  hostAttrs: [1, "cdk-drop-list"],
  hostVars: 7,
  hostBindings: function CdkDropList_HostBindings(rf, ctx) {
    if (rf & 2) {
      \u0275\u0275attribute("id", ctx.id);
      \u0275\u0275classProp("cdk-drop-list-disabled", ctx.disabled)("cdk-drop-list-dragging", ctx._dropListRef.isDragging())("cdk-drop-list-receiving", ctx._dropListRef.isReceiving());
    }
  },
  inputs: {
    connectedTo: [InputFlags.None, "cdkDropListConnectedTo", "connectedTo"],
    data: [InputFlags.None, "cdkDropListData", "data"],
    orientation: [InputFlags.None, "cdkDropListOrientation", "orientation"],
    id: "id",
    lockAxis: [InputFlags.None, "cdkDropListLockAxis", "lockAxis"],
    disabled: [InputFlags.HasDecoratorInputTransform, "cdkDropListDisabled", "disabled", booleanAttribute],
    sortingDisabled: [InputFlags.HasDecoratorInputTransform, "cdkDropListSortingDisabled", "sortingDisabled", booleanAttribute],
    enterPredicate: [InputFlags.None, "cdkDropListEnterPredicate", "enterPredicate"],
    sortPredicate: [InputFlags.None, "cdkDropListSortPredicate", "sortPredicate"],
    autoScrollDisabled: [InputFlags.HasDecoratorInputTransform, "cdkDropListAutoScrollDisabled", "autoScrollDisabled", booleanAttribute],
    autoScrollStep: [InputFlags.None, "cdkDropListAutoScrollStep", "autoScrollStep"]
  },
  outputs: {
    dropped: "cdkDropListDropped",
    entered: "cdkDropListEntered",
    exited: "cdkDropListExited",
    sorted: "cdkDropListSorted"
  },
  exportAs: ["cdkDropList"],
  standalone: true,
  features: [\u0275\u0275ProvidersFeature([
    // Prevent child drop lists from picking up the same group as their parent.
    {
      provide: CDK_DROP_LIST_GROUP,
      useValue: void 0
    },
    {
      provide: CDK_DROP_LIST,
      useExisting: _CdkDropList
    }
  ]), \u0275\u0275InputTransformsFeature]
});
var CdkDropList = _CdkDropList;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkDropList, [{
    type: Directive,
    args: [{
      selector: "[cdkDropList], cdk-drop-list",
      exportAs: "cdkDropList",
      standalone: true,
      providers: [
        // Prevent child drop lists from picking up the same group as their parent.
        {
          provide: CDK_DROP_LIST_GROUP,
          useValue: void 0
        },
        {
          provide: CDK_DROP_LIST,
          useExisting: CdkDropList
        }
      ],
      host: {
        "class": "cdk-drop-list",
        "[attr.id]": "id",
        "[class.cdk-drop-list-disabled]": "disabled",
        "[class.cdk-drop-list-dragging]": "_dropListRef.isDragging()",
        "[class.cdk-drop-list-receiving]": "_dropListRef.isReceiving()"
      }
    }]
  }], () => [{
    type: ElementRef
  }, {
    type: DragDrop
  }, {
    type: ChangeDetectorRef
  }, {
    type: ScrollDispatcher
  }, {
    type: Directionality,
    decorators: [{
      type: Optional
    }]
  }, {
    type: CdkDropListGroup,
    decorators: [{
      type: Optional
    }, {
      type: Inject,
      args: [CDK_DROP_LIST_GROUP]
    }, {
      type: SkipSelf
    }]
  }, {
    type: void 0,
    decorators: [{
      type: Optional
    }, {
      type: Inject,
      args: [CDK_DRAG_CONFIG]
    }]
  }], {
    connectedTo: [{
      type: Input,
      args: ["cdkDropListConnectedTo"]
    }],
    data: [{
      type: Input,
      args: ["cdkDropListData"]
    }],
    orientation: [{
      type: Input,
      args: ["cdkDropListOrientation"]
    }],
    id: [{
      type: Input
    }],
    lockAxis: [{
      type: Input,
      args: ["cdkDropListLockAxis"]
    }],
    disabled: [{
      type: Input,
      args: [{
        alias: "cdkDropListDisabled",
        transform: booleanAttribute
      }]
    }],
    sortingDisabled: [{
      type: Input,
      args: [{
        alias: "cdkDropListSortingDisabled",
        transform: booleanAttribute
      }]
    }],
    enterPredicate: [{
      type: Input,
      args: ["cdkDropListEnterPredicate"]
    }],
    sortPredicate: [{
      type: Input,
      args: ["cdkDropListSortPredicate"]
    }],
    autoScrollDisabled: [{
      type: Input,
      args: [{
        alias: "cdkDropListAutoScrollDisabled",
        transform: booleanAttribute
      }]
    }],
    autoScrollStep: [{
      type: Input,
      args: ["cdkDropListAutoScrollStep"]
    }],
    dropped: [{
      type: Output,
      args: ["cdkDropListDropped"]
    }],
    entered: [{
      type: Output,
      args: ["cdkDropListEntered"]
    }],
    exited: [{
      type: Output,
      args: ["cdkDropListExited"]
    }],
    sorted: [{
      type: Output,
      args: ["cdkDropListSorted"]
    }]
  });
})();
var CDK_DRAG_PREVIEW = new InjectionToken("CdkDragPreview");
var _CdkDragPreview = class _CdkDragPreview {
  constructor(templateRef) {
    this.templateRef = templateRef;
    this._drag = inject(CDK_DRAG_PARENT, {
      optional: true
    });
    this.matchSize = false;
    this._drag?._setPreviewTemplate(this);
  }
  ngOnDestroy() {
    this._drag?._resetPreviewTemplate(this);
  }
};
_CdkDragPreview.\u0275fac = function CdkDragPreview_Factory(t) {
  return new (t || _CdkDragPreview)(\u0275\u0275directiveInject(TemplateRef));
};
_CdkDragPreview.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkDragPreview,
  selectors: [["ng-template", "cdkDragPreview", ""]],
  inputs: {
    data: "data",
    matchSize: [InputFlags.HasDecoratorInputTransform, "matchSize", "matchSize", booleanAttribute]
  },
  standalone: true,
  features: [\u0275\u0275ProvidersFeature([{
    provide: CDK_DRAG_PREVIEW,
    useExisting: _CdkDragPreview
  }]), \u0275\u0275InputTransformsFeature]
});
var CdkDragPreview = _CdkDragPreview;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkDragPreview, [{
    type: Directive,
    args: [{
      selector: "ng-template[cdkDragPreview]",
      standalone: true,
      providers: [{
        provide: CDK_DRAG_PREVIEW,
        useExisting: CdkDragPreview
      }]
    }]
  }], () => [{
    type: TemplateRef
  }], {
    data: [{
      type: Input
    }],
    matchSize: [{
      type: Input,
      args: [{
        transform: booleanAttribute
      }]
    }]
  });
})();
var CDK_DRAG_PLACEHOLDER = new InjectionToken("CdkDragPlaceholder");
var _CdkDragPlaceholder = class _CdkDragPlaceholder {
  constructor(templateRef) {
    this.templateRef = templateRef;
    this._drag = inject(CDK_DRAG_PARENT, {
      optional: true
    });
    this._drag?._setPlaceholderTemplate(this);
  }
  ngOnDestroy() {
    this._drag?._resetPlaceholderTemplate(this);
  }
};
_CdkDragPlaceholder.\u0275fac = function CdkDragPlaceholder_Factory(t) {
  return new (t || _CdkDragPlaceholder)(\u0275\u0275directiveInject(TemplateRef));
};
_CdkDragPlaceholder.\u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({
  type: _CdkDragPlaceholder,
  selectors: [["ng-template", "cdkDragPlaceholder", ""]],
  inputs: {
    data: "data"
  },
  standalone: true,
  features: [\u0275\u0275ProvidersFeature([{
    provide: CDK_DRAG_PLACEHOLDER,
    useExisting: _CdkDragPlaceholder
  }])]
});
var CdkDragPlaceholder = _CdkDragPlaceholder;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkDragPlaceholder, [{
    type: Directive,
    args: [{
      selector: "ng-template[cdkDragPlaceholder]",
      standalone: true,
      providers: [{
        provide: CDK_DRAG_PLACEHOLDER,
        useExisting: CdkDragPlaceholder
      }]
    }]
  }], () => [{
    type: TemplateRef
  }], {
    data: [{
      type: Input
    }]
  });
})();
var DRAG_DROP_DIRECTIVES = [CdkDropList, CdkDropListGroup, CdkDrag, CdkDragHandle, CdkDragPreview, CdkDragPlaceholder];
var _DragDropModule = class _DragDropModule {
};
_DragDropModule.\u0275fac = function DragDropModule_Factory(t) {
  return new (t || _DragDropModule)();
};
_DragDropModule.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({
  type: _DragDropModule
});
_DragDropModule.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({
  providers: [DragDrop],
  imports: [CdkScrollableModule]
});
var DragDropModule = _DragDropModule;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(DragDropModule, [{
    type: NgModule,
    args: [{
      imports: DRAG_DROP_DIRECTIVES,
      exports: [CdkScrollableModule, ...DRAG_DROP_DIRECTIVES],
      providers: [DragDrop]
    }]
  }], null, null);
})();

// node_modules/ng-apexcharts/fesm2020/ng-apexcharts.mjs
var import_apexcharts = __toESM(require_apexcharts_common(), 1);
var _c021 = ["chart"];
var ChartComponent = class {
  constructor(ngZone) {
    this.ngZone = ngZone;
    this.autoUpdateSeries = true;
    this.chartReady = new EventEmitter();
  }
  ngOnChanges(changes) {
    asapScheduler.schedule(() => {
      if (this.autoUpdateSeries && Object.keys(changes).filter((c) => c !== "series").length === 0) {
        this.updateSeries(this.series, true);
        return;
      }
      this.createElement();
    });
  }
  ngOnDestroy() {
    if (this.chartObj) {
      this.chartObj.destroy();
    }
  }
  createElement() {
    const options = {};
    if (this.annotations) {
      options.annotations = this.annotations;
    }
    if (this.chart) {
      options.chart = this.chart;
    }
    if (this.colors) {
      options.colors = this.colors;
    }
    if (this.dataLabels) {
      options.dataLabels = this.dataLabels;
    }
    if (this.series) {
      options.series = this.series;
    }
    if (this.stroke) {
      options.stroke = this.stroke;
    }
    if (this.labels) {
      options.labels = this.labels;
    }
    if (this.legend) {
      options.legend = this.legend;
    }
    if (this.fill) {
      options.fill = this.fill;
    }
    if (this.tooltip) {
      options.tooltip = this.tooltip;
    }
    if (this.plotOptions) {
      options.plotOptions = this.plotOptions;
    }
    if (this.responsive) {
      options.responsive = this.responsive;
    }
    if (this.markers) {
      options.markers = this.markers;
    }
    if (this.noData) {
      options.noData = this.noData;
    }
    if (this.xaxis) {
      options.xaxis = this.xaxis;
    }
    if (this.yaxis) {
      options.yaxis = this.yaxis;
    }
    if (this.forecastDataPoints) {
      options.forecastDataPoints = this.forecastDataPoints;
    }
    if (this.grid) {
      options.grid = this.grid;
    }
    if (this.states) {
      options.states = this.states;
    }
    if (this.title) {
      options.title = this.title;
    }
    if (this.subtitle) {
      options.subtitle = this.subtitle;
    }
    if (this.theme) {
      options.theme = this.theme;
    }
    if (this.chartObj) {
      this.chartObj.destroy();
    }
    this.ngZone.runOutsideAngular(() => {
      this.chartObj = new import_apexcharts.default(this.chartElement.nativeElement, options);
    });
    this.render();
    this.chartReady.emit({
      chartObj: this.chartObj
    });
  }
  render() {
    return this.ngZone.runOutsideAngular(() => this.chartObj.render());
  }
  updateOptions(options, redrawPaths, animate2, updateSyncedCharts) {
    return this.ngZone.runOutsideAngular(() => this.chartObj.updateOptions(options, redrawPaths, animate2, updateSyncedCharts));
  }
  updateSeries(newSeries, animate2) {
    return this.ngZone.runOutsideAngular(() => this.chartObj.updateSeries(newSeries, animate2));
  }
  appendSeries(newSeries, animate2) {
    this.ngZone.runOutsideAngular(() => this.chartObj.appendSeries(newSeries, animate2));
  }
  appendData(newData) {
    this.ngZone.runOutsideAngular(() => this.chartObj.appendData(newData));
  }
  toggleSeries(seriesName) {
    return this.ngZone.runOutsideAngular(() => this.chartObj.toggleSeries(seriesName));
  }
  showSeries(seriesName) {
    this.ngZone.runOutsideAngular(() => this.chartObj.showSeries(seriesName));
  }
  hideSeries(seriesName) {
    this.ngZone.runOutsideAngular(() => this.chartObj.hideSeries(seriesName));
  }
  resetSeries() {
    this.ngZone.runOutsideAngular(() => this.chartObj.resetSeries());
  }
  zoomX(min, max) {
    this.ngZone.runOutsideAngular(() => this.chartObj.zoomX(min, max));
  }
  toggleDataPointSelection(seriesIndex, dataPointIndex) {
    this.ngZone.runOutsideAngular(() => this.chartObj.toggleDataPointSelection(seriesIndex, dataPointIndex));
  }
  destroy() {
    this.chartObj.destroy();
  }
  setLocale(localeName) {
    this.ngZone.runOutsideAngular(() => this.chartObj.setLocale(localeName));
  }
  paper() {
    this.ngZone.runOutsideAngular(() => this.chartObj.paper());
  }
  addXaxisAnnotation(options, pushToMemory, context) {
    this.ngZone.runOutsideAngular(() => this.chartObj.addXaxisAnnotation(options, pushToMemory, context));
  }
  addYaxisAnnotation(options, pushToMemory, context) {
    this.ngZone.runOutsideAngular(() => this.chartObj.addYaxisAnnotation(options, pushToMemory, context));
  }
  addPointAnnotation(options, pushToMemory, context) {
    this.ngZone.runOutsideAngular(() => this.chartObj.addPointAnnotation(options, pushToMemory, context));
  }
  removeAnnotation(id, options) {
    this.ngZone.runOutsideAngular(() => this.chartObj.removeAnnotation(id, options));
  }
  clearAnnotations(options) {
    this.ngZone.runOutsideAngular(() => this.chartObj.clearAnnotations(options));
  }
  dataURI(options) {
    return this.chartObj.dataURI(options);
  }
};
ChartComponent.\u0275fac = function ChartComponent_Factory(t) {
  return new (t || ChartComponent)(\u0275\u0275directiveInject(NgZone));
};
ChartComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({
  type: ChartComponent,
  selectors: [["apx-chart"]],
  viewQuery: function ChartComponent_Query(rf, ctx) {
    if (rf & 1) {
      \u0275\u0275viewQuery(_c021, 7);
    }
    if (rf & 2) {
      let _t;
      \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.chartElement = _t.first);
    }
  },
  inputs: {
    chart: "chart",
    annotations: "annotations",
    colors: "colors",
    dataLabels: "dataLabels",
    series: "series",
    stroke: "stroke",
    labels: "labels",
    legend: "legend",
    markers: "markers",
    noData: "noData",
    fill: "fill",
    tooltip: "tooltip",
    plotOptions: "plotOptions",
    responsive: "responsive",
    xaxis: "xaxis",
    yaxis: "yaxis",
    forecastDataPoints: "forecastDataPoints",
    grid: "grid",
    states: "states",
    title: "title",
    subtitle: "subtitle",
    theme: "theme",
    autoUpdateSeries: "autoUpdateSeries"
  },
  outputs: {
    chartReady: "chartReady"
  },
  features: [\u0275\u0275NgOnChangesFeature],
  decls: 2,
  vars: 0,
  consts: [["chart", ""]],
  template: function ChartComponent_Template(rf, ctx) {
    if (rf & 1) {
      \u0275\u0275element(0, "div", null, 0);
    }
  },
  encapsulation: 2,
  changeDetection: 0
});
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ChartComponent, [{
    type: Component,
    args: [{
      selector: "apx-chart",
      template: `<div #chart></div>`,
      changeDetection: ChangeDetectionStrategy.OnPush
    }]
  }], function() {
    return [{
      type: NgZone
    }];
  }, {
    chart: [{
      type: Input
    }],
    annotations: [{
      type: Input
    }],
    colors: [{
      type: Input
    }],
    dataLabels: [{
      type: Input
    }],
    series: [{
      type: Input
    }],
    stroke: [{
      type: Input
    }],
    labels: [{
      type: Input
    }],
    legend: [{
      type: Input
    }],
    markers: [{
      type: Input
    }],
    noData: [{
      type: Input
    }],
    fill: [{
      type: Input
    }],
    tooltip: [{
      type: Input
    }],
    plotOptions: [{
      type: Input
    }],
    responsive: [{
      type: Input
    }],
    xaxis: [{
      type: Input
    }],
    yaxis: [{
      type: Input
    }],
    forecastDataPoints: [{
      type: Input
    }],
    grid: [{
      type: Input
    }],
    states: [{
      type: Input
    }],
    title: [{
      type: Input
    }],
    subtitle: [{
      type: Input
    }],
    theme: [{
      type: Input
    }],
    autoUpdateSeries: [{
      type: Input
    }],
    chartReady: [{
      type: Output
    }],
    chartElement: [{
      type: ViewChild,
      args: ["chart", {
        static: true
      }]
    }]
  });
})();
window.ApexCharts = import_apexcharts.default;
var declerations = [ChartComponent];
var NgApexchartsModule = class {
};
NgApexchartsModule.\u0275fac = function NgApexchartsModule_Factory(t) {
  return new (t || NgApexchartsModule)();
};
NgApexchartsModule.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({
  type: NgApexchartsModule
});
NgApexchartsModule.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({});
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NgApexchartsModule, [{
    type: NgModule,
    args: [{
      declarations: [...declerations],
      imports: [],
      exports: [...declerations]
    }]
  }], null, null);
})();

// src/app/@lcp-framework/pages/dashboard/dashboard.component.ts
var Handlebars = __toESM(require_handlebars());
var pbi = __toESM(require_powerbi());
var _c022 = ["staticContentContainer"];
var _c17 = ["powerBiContainer"];
var _c26 = (a0) => ({ "!border-white-light !border-b-white text-primary dark:!border-[#191e3a] dark:!border-b-black": a0 });
var _c34 = (a0) => [a0];
function DashboardComponent_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    const _r1 = \u0275\u0275getCurrentView();
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275elementStart(1, "button", 7);
    \u0275\u0275listener("click", function DashboardComponent_ng_container_1_Template_button_click_1_listener() {
      const tab_r2 = \u0275\u0275restoreView(_r1).$implicit;
      const ctx_r2 = \u0275\u0275nextContext();
      return \u0275\u0275resetView(ctx_r2.setActiveTab(tab_r2.id));
    });
    \u0275\u0275text(2);
    \u0275\u0275elementEnd();
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const tab_r2 = ctx.$implicit;
    const ctx_r2 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(2, _c26, ctx_r2.activeTabId == tab_r2.id));
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", tab_r2.name, " ");
  }
}
function DashboardComponent_ng_container_4_div_1_ng_container_2_div_1_div_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "div", 14);
    \u0275\u0275pipe(1, "safeHtml");
  }
  if (rf & 2) {
    const content_r4 = ctx.$implicit;
    \u0275\u0275property("innerHTML", \u0275\u0275pipeBind1(1, 1, content_r4), \u0275\u0275sanitizeHtml);
  }
}
function DashboardComponent_ng_container_4_div_1_ng_container_2_div_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div");
    \u0275\u0275template(1, DashboardComponent_ng_container_4_div_1_ng_container_2_div_1_div_1_Template, 2, 3, "div", 13);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const card_r5 = \u0275\u0275nextContext(3).$implicit;
    const ctx_r2 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", ctx_r2.getStaticContent(card_r5));
  }
}
function DashboardComponent_ng_container_4_div_1_ng_container_2_div_2_apx_chart_6_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "apx-chart", 20);
  }
  if (rf & 2) {
    const card_r5 = \u0275\u0275nextContext(4).$implicit;
    \u0275\u0275property("series", card_r5.chart_format[0].series)("chart", card_r5.chart_format[0].chart)("xaxis", card_r5.chart_format[0].xaxis)("yaxis", card_r5.chart_format[0].yaxis)("dataLabels", card_r5.chart_format[0].dataLabels)("grid", card_r5.chart_format[0].grid)("stroke", card_r5.chart_format[0].stroke)("title", card_r5.chart_format[0].title)("plotOptions", card_r5.chart_format[0].plotOptions)("fill", card_r5.chart_format[0].fill)("tooltip", card_r5.chart_format[0].tooltip);
  }
}
function DashboardComponent_ng_container_4_div_1_ng_container_2_div_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div")(1, "div", 15)(2, "div", 16)(3, "h5", 17);
    \u0275\u0275text(4);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(5, "div", 18);
    \u0275\u0275template(6, DashboardComponent_ng_container_4_div_1_ng_container_2_div_2_apx_chart_6_Template, 1, 11, "apx-chart", 19);
    \u0275\u0275elementEnd()()();
  }
  if (rf & 2) {
    const card_r5 = \u0275\u0275nextContext(3).$implicit;
    \u0275\u0275advance(4);
    \u0275\u0275textInterpolate(card_r5.title);
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", card_r5.chart_format[0]);
  }
}
function DashboardComponent_ng_container_4_div_1_ng_container_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, DashboardComponent_ng_container_4_div_1_ng_container_2_div_1_Template, 2, 1, "div", 12)(2, DashboardComponent_ng_container_4_div_1_ng_container_2_div_2_Template, 7, 2, "div", 12);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const card_r5 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r2 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", \u0275\u0275pureFunction1(2, _c34, ctx_r2.commonConfig.WIZARD_TYPES.STATIC).includes(card_r5.type));
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", \u0275\u0275pureFunction1(4, _c34, ctx_r2.commonConfig.WIZARD_TYPES.CHART).includes(card_r5.type) && card_r5.chart_format && ctx_r2.validateChartData(card_r5));
  }
}
function DashboardComponent_ng_container_4_div_1_ng_template_3_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "div", 21, 1);
  }
  if (rf & 2) {
    const i_r6 = \u0275\u0275nextContext(2).index;
    \u0275\u0275attribute("id", "powerbi-container-" + i_r6);
  }
}
function DashboardComponent_ng_container_4_div_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 9)(1, "div", 10);
    \u0275\u0275template(2, DashboardComponent_ng_container_4_div_1_ng_container_2_Template, 3, 6, "ng-container", 11)(3, DashboardComponent_ng_container_4_div_1_ng_template_3_Template, 2, 1, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const powerBiContent_r7 = \u0275\u0275reference(4);
    const card_r5 = \u0275\u0275nextContext().$implicit;
    const ctx_r2 = \u0275\u0275nextContext();
    \u0275\u0275property("ngStyle", ctx_r2.getCardStyle(card_r5));
    \u0275\u0275advance();
    \u0275\u0275property("ngStyle", ctx_r2.getScrollContainerStyle(card_r5.rows, card_r5.cols));
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", card_r5.report_type === ctx_r2.commonConfig.REPORT_TYPES.LCP)("ngIfElse", powerBiContent_r7);
  }
}
function DashboardComponent_ng_container_4_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, DashboardComponent_ng_container_4_div_1_Template, 5, 4, "div", 8);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const card_r5 = ctx.$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", card_r5.permissions.view);
  }
}
function DashboardComponent_master_list_5_Template(rf, ctx) {
  if (rf & 1) {
    const _r8 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "master-list", 22);
    \u0275\u0275listener("closeModal", function DashboardComponent_master_list_5_Template_master_list_closeModal_0_listener() {
      \u0275\u0275restoreView(_r8);
      const ctx_r2 = \u0275\u0275nextContext();
      return \u0275\u0275resetView(ctx_r2.closeMasterListPopup());
    });
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r2 = \u0275\u0275nextContext();
    \u0275\u0275property("popupConfig", ctx_r2.popupConfig)("isViewPopupOpen", ctx_r2.showMasterListPopup)("nonGridPage", true);
  }
}
var ReportType;
(function(ReportType2) {
  ReportType2[ReportType2["lcp"] = 0] = "lcp";
  ReportType2[ReportType2["powerbi"] = 1] = "powerbi";
})(ReportType || (ReportType = {}));
var _DashboardComponent = class _DashboardComponent {
  constructor(storeData, route, sanitizer, renderer, cdr, localstore, menuLoadService, gridApiService, toastr, translate, idleService, authService) {
    this.storeData = storeData;
    this.route = route;
    this.sanitizer = sanitizer;
    this.renderer = renderer;
    this.cdr = cdr;
    this.localstore = localstore;
    this.menuLoadService = menuLoadService;
    this.gridApiService = gridApiService;
    this.toastr = toastr;
    this.translate = translate;
    this.idleService = idleService;
    this.authService = authService;
    this.commonConfig = commonConfig;
    this.isDark = "light";
    this.isRtl = false;
    this.powerBiReportInstances = [];
    this.powerbiService = new pbi.service.Service(pbi.factories.hpmFactory, pbi.factories.wpmpFactory, pbi.factories.routerFactory);
    this.dashboardTabs = [];
    this.activeTabId = "1";
    this.showMasterList = false;
    this.showMasterListPopup = false;
    this.selectedItemUuid = null;
    this.popupEntityName = "";
    this.popupConfig = null;
    this.initStore();
    this.idleService.startIdleWatcher();
    registerHandlebarsHelpers(this.translate);
  }
  removePowerBiInstances() {
    this.powerBiReportInstances.map((instance, index) => {
      if (instance) {
        instance.off("loaded");
        instance.off("error");
        instance.off("ready");
        instance.off("viewChange");
        instance.off("selectionChanged");
        instance.off("interactivityChanged");
        instance.off("pageChanged");
        instance.off("dataChanged");
        instance.off("viewModeChanged");
        instance.off("scroll");
        instance.off("resize");
        instance.off("viewUpdated");
        instance.off("viewModeChanging");
        instance.off("viewModeChanged");
        this.powerbiService.reset(instance.element);
        if (instance.element) {
          instance.element.remove();
        } else {
          console.log(`Element at index ${index} not found`);
        }
      }
    });
    if (this.powerBiSubscription) {
      this.powerBiSubscription.unsubscribe();
    }
    this.powerBiReportInstances = [];
  }
  ngOnDestroy() {
    this.removePowerBiInstances();
  }
  ngAfterViewInit() {
    const userData = this.localstore.getData("user_data");
    const permissionsList = userData ? JSON.parse(userData).permissions : null;
    this.permissionsList = permissionsList;
    if (userData) {
      const parsedData = JSON.parse(userData);
      this.userId = parsedData.main?.id;
      this.companyId = parsedData.main?.company_id;
    }
    this.loadDashboardWizards();
    this.setupMasterListButtonListeners();
  }
  loadDashboardWizards() {
    return __async(this, null, function* () {
      const db = environment.DB || "pg";
      let params;
      switch (db) {
        case "sql":
          params = {
            company_id: 1,
            primary_table: "wizard_group",
            sort_columns: [["wizard_group.id", "asc"]],
            limit_range: 1e3,
            print_query: true,
            select_columns: [
              ["wizard_group.id", "id"],
              ["wizard_group.name", "name"],
              [
                "CASE WHEN COUNT(master_entities.id) = 0 THEN NULL ELSE (SELECT sub.id AS id, sub.title, sub.format, sub.chart_format, sub.type, sub.rows, sub.cols, sub.order_no, sub.query_information, sub.report_information, sub.report_type, sub.entity_name FROM (SELECT master_entities.id AS id, master_entities.name AS title, master_entities.static_page_content AS format, master_entities.dashboard_wizard_options AS chart_format, master_entities.dashboard_wizard_type AS type, master_entities.dashboard_wizard_rows AS rows, master_entities.dashboard_wizard_columns AS cols, master_entities.dashboard_wizard_order_no AS order_no, master_entities.query_information AS query_information, master_entities.report_information AS report_information, master_entities.report_type AS report_type, master_entities.entity_name AS entity_name FROM master_entities WHERE master_entities.dashboard_wizard_group_id = wizard_group.id AND master_entities.status_id = 1) sub ORDER BY sub.order_no FOR JSON PATH) END",
                "cards"
              ]
            ],
            includes: [
              {
                table_name: "(SELECT * FROM master_entities) as master_entities",
                join_type: "LEFT",
                join_condition: "master_entities.dashboard_wizard_group_id = wizard_group.id AND master_entities.status_id = 1"
              }
            ],
            group_by: ["wizard_group.id", "wizard_group.name"]
          };
          break;
        case "pg":
        default:
          params = {
            company_id: 1,
            primary_table: "wizard_group",
            sort_columns: [["wizard_group.id", "asc"]],
            limit_range: 1e3,
            print_query: true,
            search_all: [
              {
                value: 1,
                operator: "=",
                column_name: "wizard_group.status_id"
              }
            ],
            select_columns: [
              ["wizard_group.id", "id"],
              ["wizard_group.name", "name"],
              [
                `CASE
            WHEN COUNT(subquery.id) = 0 THEN null
            ELSE COALESCE(
                Json_agg(
                    subquery.jsonb_object
                    ORDER BY subquery.order_no
                )
            )
        END`,
                "cards"
              ]
            ],
            includes: [
              {
                table_name: `LATERAL (
                  SELECT
                    DISTINCT ON (master_entities.id)
                    master_entities.id,
                    jsonb_build_object(
                      'id', master_entities.id,
                      'title', master_entities.name,
                      'format', master_entities.static_page_content,
                      'chart_format', master_entities.dashboard_wizard_options,
                      'type', master_entities.dashboard_wizard_type,
                      'rows', master_entities.dashboard_wizard_rows,
                      'cols', master_entities.dashboard_wizard_columns,
                      'order_no', master_entities.dashboard_wizard_order_no,
                      'query_information', master_entities.query_information,
                      'report_information', master_entities.report_information,
                      'report_type', master_entities.report_type,
                      'entity_name',master_entities.entity_name
                    ) AS jsonb_object,
                    master_entities.dashboard_wizard_order_no AS order_no
                  FROM
                    master_entities
                  WHERE
                    master_entities.dashboard_wizard_group_id = wizard_group.id AND master_entities.status_id = 1
                  ORDER BY
                    master_entities.id, master_entities.dashboard_wizard_order_no
                ) AS subquery`,
                join_type: "LEFT",
                join_condition: "TRUE"
              }
            ],
            group_by: ["wizard_group.id"]
          };
          break;
      }
      this.gridApiService.getAllList(params).subscribe((response) => __async(this, null, function* () {
        if (response.status && response.code === 200) {
          this.dashboardTabs = yield Promise.all(response.data.records.map((mainElem) => __async(this, null, function* () {
            if (typeof mainElem.cards === "string") {
              try {
                mainElem.cards = [];
              } catch (error) {
                console.error("Error parsing JSON for cards:", error);
                mainElem.cards = [];
              }
            }
            if (Array.isArray(mainElem.cards)) {
              mainElem.cards = yield Promise.all(mainElem.cards.map((item) => __async(this, null, function* () {
                return __spreadProps(__spreadValues({}, item), {
                  format: item.format ? Array.isArray(item.format) ? item.format : [item.format] : [],
                  data: [],
                  permissions: {
                    view: this.permissionsList?.[`view_` + item.entity_name] || false
                  }
                });
              })));
            }
            return mainElem;
          })));
          yield this.setActiveTab(this.dashboardTabs[0].id);
        }
      }), (error) => {
        const key = "failed_to_load";
        const errorMessage = this.translate.instant(key);
        this.toastr.error(errorMessage, "Error");
      });
    });
  }
  getQueryInfo(params) {
    return __async(this, null, function* () {
      try {
        const response = yield this.gridApiService.getAllList(params).toPromise();
        if (response.status && response.code === 200) {
          return response.data.records || [];
        } else {
          const key = "failed_to_load";
          const errorMessage = this.translate.instant(key);
          this.toastr.error(errorMessage, "Error");
          return [];
        }
      } catch (error) {
        const key = "failed_to_load";
        const errorMessage = this.translate.instant(key);
        this.toastr.error(errorMessage, "Error");
        return [];
      }
    });
  }
  setActiveTab(tabId) {
    return __async(this, null, function* () {
      this.activeTabId = tabId;
      const activeTab = this.dashboardTabs.find((tab) => tab.id === tabId);
      if (activeTab) {
        this.removePowerBiInstances();
        yield this.initializeDashboardCards(activeTab.cards);
        this.cdr.detectChanges();
      }
    });
  }
  loadPowerBIReport(index, reportInformation) {
    try {
      this.authService.generatePowerBiEmbedToken({
        reportId: reportInformation.reportId,
        groupId: reportInformation.groupId
      }).subscribe((response) => {
        if (response.status && response.code === 200) {
          const embedConfig = {
            type: "report",
            embedUrl: `https://app.powerbi.com/reportEmbed?reportId=${reportInformation.reportId}&groupId=${reportInformation.groupId}&wsauth=true`,
            accessToken: response.data,
            tokenType: pbi.models.TokenType.Embed,
            settings: __spreadValues({
              filterPaneEnabled: false,
              navContentPaneEnabled: false,
              layoutType: pbi.models.LayoutType.Custom,
              background: pbi.models.BackgroundType.Transparent,
              barsHidden: true
            }, reportInformation?.settings && reportInformation.settings)
          };
          if (this.powerBiContainers.get(index)) {
            this.powerBiReportInstances.push(this.powerbiService.embed(this.powerBiContainers.get(index)?.nativeElement, embedConfig));
            this.powerBiReportInstances[index]?.on("loaded", function() {
            });
            this.powerBiReportInstances[index]?.on("error", function(event) {
              console.error("Power BI error:", event);
            });
          }
        } else {
          const key = "failed_to_load";
          const errorMessage = this.translate.instant(key);
          this.toastr.error(errorMessage, "Error");
        }
      }, (error) => {
        const key = "failed_to_load";
        const errorMessage = this.translate.instant(key);
        this.toastr.error(errorMessage, "Error");
      });
    } catch (error) {
      console.error(`Error loading Power BI report - ${index}:`, error);
      return;
    }
  }
  initializeDashboardCards(cards) {
    return __async(this, null, function* () {
      if (cards) {
        let pbiIndex = 0;
        yield Promise.all(cards.map((card, i) => __async(this, null, function* () {
          if (card.report_type === commonConfig.REPORT_TYPES.LCP) {
            if (card.query_information) {
              let queryString = JSON.stringify(card.query_information);
              queryString = queryString.replace(/\$session_user_id/g, this.userId);
              card.query_information = JSON.parse(queryString);
              card.data = yield this.getQueryInfo(card.query_information);
            }
            if (card.type === commonConfig.WIZARD_TYPES.STATIC && card.format) {
              card.format = this.compileStaticContent(card.format, card.data);
            }
            if (card.type === commonConfig.WIZARD_TYPES.CHART) {
              card.chart_format = card.chart_format ? [__spreadValues(__spreadValues({}, this.createformat()), card.chart_format[0])] : [this.createformat()];
              if (card.chart_format[0]) {
                if (card.chart_format[0].tooltip.y.formatter) {
                  if (typeof card.chart_format[0].tooltip.y.formatter === "string") {
                    card.chart_format[0].tooltip.y.formatter = new Function("number", card.chart_format[0].tooltip.y.formatter.substring(card.chart_format[0].tooltip.y.formatter.indexOf("{") + 1, card.chart_format[0].tooltip.y.formatter.lastIndexOf("}")));
                  }
                }
              }
              if (card.data.length > 0) {
                const dataMap = {};
                const labels = [];
                card.data.forEach((record) => {
                  labels.push(record.labels);
                  Object.keys(record).forEach((key) => {
                    if (key !== "labels") {
                      dataMap[key] = dataMap[key] || [];
                      dataMap[key].push(record[key]);
                    }
                  });
                });
                card.chart_format[0].series = Object.keys(dataMap).map((key) => ({
                  name: key.charAt(0).toUpperCase() + key.slice(1),
                  data: dataMap[key]
                }));
                card.chart_format[0].labels = labels;
                card.chart_format[0].xaxis.categories = labels;
              }
            }
          } else {
            this.powerBiSubscription = this.powerBiContainers.changes.subscribe((response) => {
              if (response.length && response.toArray()[pbiIndex]) {
                this.loadPowerBIReport(pbiIndex, card.report_information);
                pbiIndex++;
              }
            });
          }
        })));
      }
      this.cdr.detectChanges();
    });
  }
  validateChartData(chart) {
    if (chart.data.length > 0) {
      return true;
    }
    return false;
  }
  getActiveCards() {
    const activeTab = this.dashboardTabs.find((tab) => tab.id == this.activeTabId);
    return activeTab ? activeTab.cards : [];
  }
  initStore() {
    return __async(this, null, function* () {
      this.storeData.select((d) => d.index).subscribe((d) => {
        const hasChangeTheme = this.store?.theme !== d?.theme;
        const hasChangeLayout = this.store?.layout !== d?.layout;
        const hasChangeMenu = this.store?.menu !== d?.menu;
        const hasChangeSidebar = this.store?.sidebar !== d?.sidebar;
        this.store = d;
        this.isDark = this.store.theme === "dark" || this.store.isDarkMode ? true : false;
        this.isRtl = this.store.rtlClass === "rtl" ? true : false;
      });
    });
  }
  compileStaticContent(format, data) {
    const compiled = format.map((html) => {
      const template = Handlebars.compile(html);
      let passData = data[0];
      if (data.length > 1) {
        passData.data_list = data;
      }
      return template(passData);
    });
    setTimeout(() => this.setupMasterListButtonListeners(), 0);
    return compiled;
  }
  getStaticContent(card) {
    return card.type == commonConfig.WIZARD_TYPES.STATIC ? card.format : [];
  }
  onDrop(event) {
    const activeCards = this.getActiveCards();
    moveItemInArray(activeCards, event.previousIndex, event.currentIndex);
    const activeTab = this.dashboardTabs.find((tab) => tab.id === this.activeTabId);
    if (activeTab) {
      activeTab.cards = activeCards;
    }
  }
  resizeCard(card, cols, rows) {
    card.cols = cols;
    card.rows = rows;
    const dashboard = this.dashboardTabs.find((tab) => tab.cards.includes(card));
    if (dashboard) {
      const index = dashboard.cards.indexOf(card);
      if (index !== -1) {
        dashboard.cards[index] = card;
      }
    }
  }
  getCardStyle(card) {
    return {
      "grid-column": `span ${card.cols}`,
      "grid-row": `span ${card.rows}`,
      // height: '300px',
      "@media (max-width: 640px)": {
        "grid-column": "span 1",
        // Make each card take up one column on small screens
        "grid-row": "span 1"
        // Adjust the row span if needed
      }
    };
  }
  getScrollContainerStyle(rows, cols) {
    const height = rows * 170;
    const width = cols * 100;
    const baseHeight = 170;
    const baseWidth = 100;
    return {
      height: `${height}px`,
      //'max-width': `${width}px`,
      //width: '100%', // Set width to 100% to make it responsive
      "@media (max-width: 640px)": {
        height: `${baseHeight * 2}px`
        // Adjust height for small screens if needed
        //width: '100%', // Ensure it takes full width on smaller screens
      }
    };
  }
  createformat() {
    const chartType = "line";
    const baseOptions = {
      series: [
        {
          name: "Chart",
          data: []
        }
      ],
      chart: {
        height: 350,
        type: chartType,
        zoom: {
          enabled: false
        },
        toolbar: {
          show: false
        }
      },
      colors: ["#805dca"],
      dataLabels: {
        enabled: false
      },
      tooltip: {
        theme: this.isDark ? "dark" : "light"
      },
      stroke: {
        width: 2,
        curve: "smooth"
      },
      xaxis: {
        axisBorder: {
          color: this.isDark ? "#191e3a" : "#e0e6ed"
        }
      },
      yaxis: {
        opposite: this.isRtl ? true : false,
        labels: {
          offsetX: this.isRtl ? -40 : 0
        }
      },
      grid: {
        borderColor: this.isDark ? "#191e3a" : "#e0e6ed"
      },
      legend: {
        horizontalAlign: "left"
      }
    };
    return baseOptions;
  }
  setupMasterListButtonListeners() {
    setTimeout(() => {
      const container = this.staticContentContainer?.nativeElement || document;
      container.querySelectorAll(".open-master-list-btn").forEach((btn) => {
        btn.removeEventListener("click", this.handleMasterListButtonClick);
        btn.addEventListener("click", this.handleMasterListButtonClick.bind(this));
      });
    }, 0);
  }
  handleMasterListButtonClick(event) {
    const target = event.currentTarget;
    const uuid = target.getAttribute("data-uuid") || "";
    const entityName = target.getAttribute("data-entity") || "";
    const popupName = target.getAttribute("data-popup") || "";
    this.openMasterList(uuid, entityName, popupName);
  }
  openMasterList(uuid, entityName, popupName) {
    this.popupConfig = {
      popupName,
      selectedItemUuid: uuid ? uuid : null,
      popupEntityName: entityName,
      isViewPopupOpen: true
    };
    this.showMasterListPopup = true;
  }
  closeMasterListPopup() {
    this.showMasterListPopup = false;
    this.popupConfig = null;
  }
};
_DashboardComponent.\u0275fac = function DashboardComponent_Factory(t) {
  return new (t || _DashboardComponent)(\u0275\u0275directiveInject(Store), \u0275\u0275directiveInject(ActivatedRoute), \u0275\u0275directiveInject(DomSanitizer), \u0275\u0275directiveInject(Renderer2), \u0275\u0275directiveInject(ChangeDetectorRef), \u0275\u0275directiveInject(LocalStorageService), \u0275\u0275directiveInject(MenuLoadService), \u0275\u0275directiveInject(GridApiService), \u0275\u0275directiveInject(ToastrService), \u0275\u0275directiveInject(TranslateService), \u0275\u0275directiveInject(IdleService), \u0275\u0275directiveInject(AuthService));
};
_DashboardComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _DashboardComponent, selectors: [["app-dashboard"]], viewQuery: function DashboardComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c022, 5, ElementRef);
    \u0275\u0275viewQuery(_c17, 5);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.staticContentContainer = _t.first);
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.powerBiContainers = _t);
  }
}, standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 6, vars: 3, consts: [["powerBiContent", ""], ["powerBiContainer", ""], [1, "flex", "flex-wrap", "border-b", "border-white-light", "dark:border-[#191e3a]"], [4, "ngFor", "ngForOf"], [1, "flex-1", "pt-5"], [1, "grid-cols-4", "gap-4", "p-4", "sm:grid-cols-2", "md:grid", "md:grid-cols-3", "lg:grid", "lg:grid-cols-4"], [3, "popupConfig", "isViewPopupOpen", "nonGridPage", "closeModal", 4, "ngIf"], [1, "-mb-[1px]", "block", "border", "border-transparent", "p-3.5", "py-2", "!outline-none", "transition", "duration-300", "hover:text-primary", "dark:hover:border-b-black", 3, "click", "ngClass"], ["class", "relative rounded-lg bg-white dark:bg-black", 3, "ngStyle", 4, "ngIf"], [1, "relative", "rounded-lg", "bg-white", "dark:bg-black", 3, "ngStyle"], [1, "overflow-x-auto", "overflow-y-auto", "p-2", 3, "ngStyle"], [4, "ngIf", "ngIfElse"], [4, "ngIf"], [3, "innerHTML", 4, "ngFor", "ngForOf"], [3, "innerHTML"], [1, "panel"], [1, "mb-5", "flex", "items-center", "justify-between"], [1, "text-lg", "font-semibold", "dark:text-white"], [1, "mb-5", "overflow-hidden"], [3, "series", "chart", "xaxis", "yaxis", "dataLabels", "grid", "stroke", "title", "plotOptions", "fill", "tooltip", 4, "ngIf"], [3, "series", "chart", "xaxis", "yaxis", "dataLabels", "grid", "stroke", "title", "plotOptions", "fill", "tooltip"], [2, "width", "100%", "height", "100%"], [3, "closeModal", "popupConfig", "isViewPopupOpen", "nonGridPage"]], template: function DashboardComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 2);
    \u0275\u0275template(1, DashboardComponent_ng_container_1_Template, 3, 4, "ng-container", 3);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(2, "div", 4)(3, "div", 5);
    \u0275\u0275template(4, DashboardComponent_ng_container_4_Template, 2, 1, "ng-container", 3);
    \u0275\u0275elementEnd()();
    \u0275\u0275template(5, DashboardComponent_master_list_5_Template, 1, 3, "master-list", 6);
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", ctx.dashboardTabs);
    \u0275\u0275advance(3);
    \u0275\u0275property("ngForOf", ctx.getActiveCards());
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx.showMasterListPopup);
  }
}, dependencies: [CommonSharedModule, NgClass, NgForOf, NgIf, NgStyle, DragDropModule, NgApexchartsModule, ChartComponent, SafeHtmlPipe, MasterListComponent], styles: ["\n\n[_nghost-%COMP%] {\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n[_nghost-%COMP%]     .apexcharts-canvas {\n  width: 100% !important;\n}\n[_nghost-%COMP%]     .apexcharts-canvas svg {\n  width: 100% !important;\n  height: auto !important;\n}\n.cdk-drag-preview[_ngcontent-%COMP%] {\n  box-sizing: border-box;\n  border-radius: 4px;\n  box-shadow:\n    0 5px 5px -3px rgba(0, 0, 0, 0.2),\n    0 8px 10px 1px rgba(0, 0, 0, 0.14),\n    0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.cdk-drag-placeholder[_ngcontent-%COMP%] {\n  opacity: 0;\n}\n.cdk-drag-animating[_ngcontent-%COMP%] {\n  transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\n}\n.cdk-drop-list-dragging[_ngcontent-%COMP%]   .cdk-drag[_ngcontent-%COMP%] {\n  transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\n}\n.grid[_ngcontent-%COMP%] {\n  display: grid;\n  grid-template-columns: repeat(4, 1fr);\n  gap: 1rem;\n}\n/*# sourceMappingURL=dashboard.component.css.map */"] });
var DashboardComponent = _DashboardComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(DashboardComponent, { className: "DashboardComponent", filePath: "src\\app\\@lcp-framework\\pages\\dashboard\\dashboard.component.ts", lineNumber: 98 });
})();

// src/app/@lcp-framework/guards/login.guard.ts
var loginGuard = () => {
  const router = inject(Router);
  const localStorageService = inject(LocalStorageService);
  const token = localStorageService.getData("user_data") && JSON.parse(localStorageService.getData("user_data")).main.token;
  return token ? router.createUrlTree([""]) : true;
};

// src/app/@lcp-framework/guards/permission.guard.ts
function permissionGuard(route) {
  const router = inject(Router);
  return route.data["defaultPermission"] ? true : router.createUrlTree(["/access-denied"]);
}
var permissionGuardFactory = () => (route) => {
  return permissionGuard(route);
};

// src/app/@lcp-framework/pages/example-client-datatable/example-client-datatable.component.ts
var _ExampleClientDatatableComponent = class _ExampleClientDatatableComponent {
  constructor(toastr) {
    this.toastr = toastr;
    this.tableData = [
      {
        id: 1,
        code: "ITEM-001",
        name: "Laptop",
        category: "Electronics",
        price: 1299.99,
        stock: 50,
        status: "In Stock",
        lastUpdated: "2024-02-15"
      },
      {
        id: 2,
        code: "ITEM-002",
        name: "Desk Chair",
        category: "Furniture",
        price: 299.99,
        stock: 30,
        status: "Low Stock",
        lastUpdated: "2024-02-16"
      },
      {
        id: 3,
        code: "ITEM-003",
        name: "Coffee Maker",
        category: "Appliances",
        price: 89.99,
        stock: 0,
        status: "Out of Stock",
        lastUpdated: "2024-02-17"
      },
      {
        id: 4,
        code: "ITEM-004",
        name: "Monitor",
        category: "Electronics",
        price: 499.99,
        stock: 25,
        status: "In Stock",
        lastUpdated: "2024-02-18"
      },
      {
        id: 5,
        code: "ITEM-005",
        name: "Keyboard",
        category: "Electronics",
        price: 129.99,
        stock: 15,
        status: "Low Stock",
        lastUpdated: "2024-02-19"
      },
      {
        id: 6,
        code: "ITEM-0011",
        name: "Laptop",
        category: "Electronics",
        price: 1299.99,
        stock: 50,
        status: "In Stock",
        lastUpdated: "2024-02-15"
      },
      {
        id: 7,
        code: "ITEM-0012",
        name: "Desk Chair",
        category: "Furniture",
        price: 299.99,
        stock: 30,
        status: "Low Stock",
        lastUpdated: "2024-02-16"
      },
      {
        id: 8,
        code: "ITEM-0013",
        name: "Coffee Maker",
        category: "Appliances",
        price: 89.99,
        stock: 0,
        status: "Out of Stock",
        lastUpdated: "2024-02-17"
      },
      {
        id: 9,
        code: "ITEM-0014",
        name: "Monitor",
        category: "Electronics",
        price: 499.99,
        stock: 25,
        status: "In Stock",
        lastUpdated: "2024-02-18"
      },
      {
        id: 10,
        code: "ITEM-0015",
        name: "Keyboard",
        category: "Electronics",
        price: 129.99,
        stock: 15,
        status: "Low Stock",
        lastUpdated: "2024-02-19"
      }
    ];
    this.tableConfig = {
      columns: [
        {
          key: "code",
          label: "Item Code",
          sortable: true
        },
        {
          key: "name",
          label: "Name",
          sortable: true
        },
        {
          key: "category",
          label: "Category",
          sortable: true
        },
        {
          key: "price",
          label: "Price",
          sortable: true
        },
        {
          key: "stock",
          label: "Stock",
          sortable: true
        },
        {
          key: "status",
          label: "Status",
          sortable: true
        },
        {
          key: "lastUpdated",
          label: "Last Updated",
          sortable: true
        },
        {
          key: "actions",
          label: "Actions",
          type: "button",
          actions: [
            {
              icon: "fa-solid fa-edit",
              onClick: (item) => this.editItem(item),
              class: "btn-sm btn-outline-primary mr-2",
              tooltip: "Edit Item"
            },
            {
              icon: "fa-solid fa-trash",
              onClick: (item) => this.deleteItem(item),
              class: "btn-sm btn-outline-danger",
              tooltip: "Delete Item"
            }
          ]
        }
      ],
      pageSizes: [5, 10, 25, 50],
      defaultPageSize: 5,
      searchable: true,
      headerConfig: {
        title: "Example Items",
        showHeader: true,
        enableFilter: true,
        enableColumnSelector: true,
        enableExport: true
      }
    };
  }
  ngOnInit() {
  }
  // Event Handlers
  onDataChange(data) {
    console.log("Data changed:", data);
  }
  onSortChange(sort) {
    console.log("Sort changed:", sort);
    this.tableData.sort((a, b) => {
      const aVal = a[sort.column];
      const bVal = b[sort.column];
      if (sort.direction === "asc") {
        return aVal > bVal ? 1 : -1;
      } else {
        return aVal < bVal ? 1 : -1;
      }
    });
  }
  onPageChange(page) {
    console.log("Page changed:", page);
  }
  onPageSizeChange(pageSize) {
    console.log("Page size changed:", pageSize);
  }
  onSearch(searchTerm) {
    console.log("Search term:", searchTerm.value);
  }
  // Action Handlers
  editItem(item) {
    this.toastr.info(`Editing item: ${item.code}`);
    console.log("Edit item:", item);
  }
  deleteItem(item) {
    this.toastr.warning(`Deleting item: ${item.code}`);
    console.log("Delete item:", item);
  }
};
_ExampleClientDatatableComponent.\u0275fac = function ExampleClientDatatableComponent_Factory(t) {
  return new (t || _ExampleClientDatatableComponent)(\u0275\u0275directiveInject(ToastrService));
};
_ExampleClientDatatableComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _ExampleClientDatatableComponent, selectors: [["app-example-client-datatable"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 4, vars: 2, consts: [[1, "p-4"], [1, "rounded-lg", "bg-white", "shadow"], [1, "p-6"], [3, "dataChange", "sortChange", "pageChange", "pageSizeChange", "searchChange", "data", "config"]], template: function ExampleClientDatatableComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "app-client-datatable", 3);
    \u0275\u0275listener("dataChange", function ExampleClientDatatableComponent_Template_app_client_datatable_dataChange_3_listener($event) {
      return ctx.onDataChange($event);
    })("sortChange", function ExampleClientDatatableComponent_Template_app_client_datatable_sortChange_3_listener($event) {
      return ctx.onSortChange($event);
    })("pageChange", function ExampleClientDatatableComponent_Template_app_client_datatable_pageChange_3_listener($event) {
      return ctx.onPageChange($event);
    })("pageSizeChange", function ExampleClientDatatableComponent_Template_app_client_datatable_pageSizeChange_3_listener($event) {
      return ctx.onPageSizeChange($event);
    })("searchChange", function ExampleClientDatatableComponent_Template_app_client_datatable_searchChange_3_listener($event) {
      return ctx.onSearch($event);
    });
    \u0275\u0275elementEnd()()()();
  }
  if (rf & 2) {
    \u0275\u0275advance(3);
    \u0275\u0275property("data", ctx.tableData)("config", ctx.tableConfig);
  }
}, dependencies: [CommonModule, ClientDatatableComponent], encapsulation: 2 });
var ExampleClientDatatableComponent = _ExampleClientDatatableComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(ExampleClientDatatableComponent, { className: "ExampleClientDatatableComponent", filePath: "src\\app\\@lcp-framework\\pages\\example-client-datatable\\example-client-datatable.component.ts", lineNumber: 13 });
})();

// src/app/@lcp-framework/lcp.routes.ts
var routes2 = [
  {
    path: "documentation",
    component: DocumentationComponent,
    canActivate: [authGuard],
    canActivateChild: [permissionGuardFactory()],
    title: "Documentation"
  },
  {
    path: "",
    component: AppLayout,
    canActivate: [authGuard],
    canActivateChild: [permissionGuardFactory()],
    children: [
      {
        path: "not-found",
        component: NotFoundComponent,
        title: "Not Found"
      },
      {
        path: "",
        component: DashboardComponent,
        title: "Dashboard",
        data: {
          defaultPermission: true
        }
      },
      {
        path: "dashboard",
        component: DashboardComponent,
        title: "Dashboard",
        data: {
          defaultPermission: true
        }
      },
      {
        path: "profile",
        component: ProfileComponent,
        title: "Profile",
        data: {
          defaultPermission: true
        }
      },
      {
        path: "change-password",
        component: ChangePwdComponent,
        title: "Change Password",
        data: {
          defaultPermission: true
        }
      },
      {
        path: "access-denied",
        component: AccessDeniedComponent,
        title: "Access Denied",
        data: {
          defaultPermission: true
        }
      },
      // {
      //   path: 'import',
      //   component: ImportMasterComponent,
      //   canDeactivate: [ImportConfirmDeactivateGuard],
      //   title: 'Import Master',
      //   data: {
      //     defaultPermission: true,
      //   },
      // },
      {
        path: "exampletable",
        component: ExampleClientDatatableComponent,
        title: "Example Client DataTable",
        data: {
          defaultPermission: true
        }
      }
    ]
  },
  {
    path: "",
    component: AuthLayout,
    canActivate: [loginGuard],
    children: [
      {
        path: "login",
        component: CoverLoginComponent,
        title: "Login"
      },
      {
        path: "forget-password",
        component: ForgetpwdComponent,
        title: "Forget Password"
      },
      {
        path: "reset-password/:uuid/:id",
        component: ResetpwdComponent,
        title: "Reset password"
      }
    ]
  },
  { path: "**", redirectTo: "/not-found", pathMatch: "full" }
];

// src/app/store/index.reducer.ts
var initialState = {
  isDarkMode: false,
  mainLayout: "app",
  theme: "light",
  menu: "vertical",
  layout: "full",
  rtlClass: "ltr",
  animation: "",
  navbar: "navbar-sticky",
  locale: "en",
  sidebar: false,
  fontsize: "small",
  languageList: [
    /*{ code: 'zh', name: 'Chinese' },
        { code: 'da', name: 'Danish' },*/
    { code: "en", name: "English" },
    /* { code: 'fr', name: 'French' },
        { code: 'de', name: 'German' },
        { code: 'el', name: 'Greek' },
        { code: 'hu', name: 'Hungarian' },
        { code: 'it', name: 'Italian' },
        { code: 'ja', name: 'Japanese' },
        { code: 'pl', name: 'Polish' },
        { code: 'pt', name: 'Portuguese' },
        { code: 'ru', name: 'Russian' },
        { code: 'es', name: 'Spanish' },
        { code: 'sv', name: 'Swedish' },
        { code: 'tr', name: 'Turkish' },*/
    { code: "ae", name: "Arabic" }
  ],
  isShowMainLoader: true,
  semidark: false
};
function indexReducer(state = initialState, action) {
  const type = action.type;
  let payload = action.payload;
  if (type === "toggleDirection") {
    localStorage.setItem("direction", payload);
    document.querySelector("html")?.setAttribute("dir", payload || "ltr");
    return __spreadValues(__spreadValues({}, state), { direction: payload });
  } else if (type === "toggleMainLoader") {
    return __spreadValues(__spreadValues({}, state), { isShowMainLoader: payload });
  }
  if (type === "setMainLayout") {
    return __spreadValues(__spreadValues({}, state), { mainLayout: payload });
  } else if (type === "toggleTheme") {
    payload = payload || state.theme;
    localStorage.setItem("theme", payload);
    let isDarkMode = state.isDarkMode || false;
    if (payload == "light") {
      isDarkMode = false;
    } else if (payload == "dark") {
      isDarkMode = true;
    } else if (payload == "system") {
      if (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches) {
        isDarkMode = true;
      } else {
        isDarkMode = false;
      }
    }
    if (isDarkMode) {
      document.querySelector("body")?.classList.add("dark");
    } else {
      document.querySelector("body")?.classList.remove("dark");
    }
    return __spreadValues(__spreadValues({}, state), { theme: payload, isDarkMode });
  } else if (type === "toggleMenu") {
    payload = payload || state.menu;
    localStorage.setItem("menu", payload);
    return __spreadValues(__spreadValues({}, state), { sidebar: false, menu: payload });
  } else if (type === "toggleLayout") {
    payload = payload || state.layout;
    localStorage.setItem("layout", payload);
    return __spreadValues(__spreadValues({}, state), { layout: payload });
  } else if (type === "toggleRTL") {
    payload = payload || state.rtlClass;
    localStorage.setItem("rtlClass", payload);
    const rtlClass = payload;
    document.querySelector("html")?.setAttribute("dir", rtlClass || "ltr");
    return __spreadValues(__spreadValues({}, state), { rtlClass });
  } else if (type === "toggleAnimation") {
    payload = payload;
    payload = payload?.trim();
    localStorage.setItem("animation", payload);
    if (payload) {
      const eleanimation = document.querySelector(".animation");
      eleanimation?.classList.add("animate__animated");
      eleanimation?.classList.add(payload);
    }
    return __spreadValues(__spreadValues({}, state), { animation: payload });
  } else if (type === "toggleFontSize") {
    payload = payload || state.fontsize;
    localStorage.setItem("fontsize", payload);
    if (payload == "medium") {
      document.querySelector("body")?.classList.remove("app-small-font");
      document.querySelector("body")?.classList.remove("app-large-font");
      document.querySelector("body")?.classList.add("app-medium-font");
    } else if (payload == "large") {
      document.querySelector("body")?.classList.remove("app-small-font");
      document.querySelector("body")?.classList.remove("app-medium-font");
      document.querySelector("body")?.classList.add("app-large-font");
    } else {
      document.querySelector("body")?.classList.remove("app-medium-font");
      document.querySelector("body")?.classList.remove("app-large-font");
    }
    return __spreadValues(__spreadValues({}, state), { fontsize: payload });
  } else if (type === "toggleNavbar") {
    payload = payload || state.navbar;
    localStorage.setItem("navbar", payload);
    return __spreadValues(__spreadValues({}, state), { navbar: payload });
  } else if (type === "toggleSemidark") {
    payload = payload || false;
    localStorage.setItem("semidark", payload);
    return __spreadValues(__spreadValues({}, state), { semidark: payload });
  } else if (type === "toggleLocale") {
    payload = payload || state.locale;
    localStorage.setItem("i18n_locale", payload);
    return __spreadValues(__spreadValues({}, state), { locale: payload });
  } else if (type === "toggleSidebar") {
    return __spreadValues(__spreadValues({}, state), { sidebar: !state.sidebar });
  }
  return state;
}

// src/app/@lcp-framework/interceptors/auth/auth.interceptor.ts
var authInterceptor = (req, next) => {
  const localStorageService = inject(LocalStorageService);
  const token = localStorageService.getData("user_data") && JSON.parse(localStorageService.getData("user_data")).main.token;
  if (token) {
    const clonedRequest = req.clone({
      setHeaders: {
        Authorization: `Bearer ${token}`
      }
    });
    return next(clonedRequest);
  }
  return next(req);
};

// src/app/@lcp-framework/service/errorhandler/global-error-handler.service.ts
var _GlobalErrorHandlerService = class _GlobalErrorHandlerService {
  constructor(injector) {
    this.injector = injector;
  }
  handleError(error) {
    const router = this.injector.get(Router);
    if (error instanceof HttpErrorResponse) {
      console.error("An HTTP error occurred:", error.message);
      if (!navigator.onLine) {
        alert("No Internet Connection");
      } else {
        alert(`Backend returned code ${error.status}, body was: ${error.message}`);
      }
    } else {
      console.error("An error occurred:", error.message);
      alert("An unexpected error occurred. Please try again.");
    }
    router.navigate(["/error"]);
    console.error("It happens:", error);
  }
};
_GlobalErrorHandlerService.\u0275fac = function GlobalErrorHandlerService_Factory(t) {
  return new (t || _GlobalErrorHandlerService)(\u0275\u0275inject(Injector));
};
_GlobalErrorHandlerService.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _GlobalErrorHandlerService, factory: _GlobalErrorHandlerService.\u0275fac, providedIn: "root" });
var GlobalErrorHandlerService = _GlobalErrorHandlerService;

// src/app/@lcp-framework/interceptors/httperror/http-error.interceptor.ts
var import_sweetalert22 = __toESM(require_sweetalert2_all());
var HttpErrorInterceptor = (req, next) => {
  const router = inject(Router);
  const localstore = inject(LocalStorageService);
  const bnIdle = inject(IdleService);
  const translate = inject(TranslateService);
  return next(req).pipe(
    // Tap into the response to fetch the data
    tap({
      next: (event) => {
        if (event?.body?.code === 401 && event?.body?.message === "Authorization token expired") {
          import_sweetalert22.default.fire({
            icon: "warning",
            title: "Warning!",
            text: translate.instant("session_expired_redirection"),
            showCancelButton: false,
            padding: "2em"
          }).then((result) => __async(void 0, null, function* () {
            if (result.value) {
              bnIdle.stopIdleTimer();
              localstore.logout();
              router.navigate(["/login"]);
            }
          }));
        }
      },
      error: (error) => {
        console.error("Error occurred:", error);
        return throwError(() => new Error(`Error Code: ${error.status}
Message: ${error.message}`));
      }
    }),
    catchError((error) => {
      let errorMessage = "";
      if (error.error instanceof ErrorEvent) {
        errorMessage = `Error: ${error.error.message}`;
      } else {
        errorMessage = `Error Code: ${error.status}
Message: ${error.message}`;
      }
      console.error(errorMessage);
      return throwError(error.error);
    })
  );
};

// src/app/@lcp-framework/service/common/local-storage-translate.service.ts
var _LocalStorageTranslateLoader = class _LocalStorageTranslateLoader {
  //private localstore:any = LocalStorageService;
  //constructor(private localstore: LocalStorageService) {}
  getTranslation(lang) {
    const scope = (window.location.port || window.location.hostname + "" + window.location.pathname).replace("/", "-");
    const key = `${scope}_lang_contents`;
    const languageContent = JSON.parse(localStorage.getItem(key) || "{}");
    return of(languageContent);
  }
};
_LocalStorageTranslateLoader.\u0275fac = function LocalStorageTranslateLoader_Factory(t) {
  return new (t || _LocalStorageTranslateLoader)();
};
_LocalStorageTranslateLoader.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _LocalStorageTranslateLoader, factory: _LocalStorageTranslateLoader.\u0275fac, providedIn: "root" });
var LocalStorageTranslateLoader = _LocalStorageTranslateLoader;

// src/app/@lcp-framework/lcp.config.ts
function initializeApp(routeUpdateService) {
  return () => new Promise((resolve) => {
    routeUpdateService.addDynamicRoutes();
    resolve();
  });
}
var lcpAppConfig = {
  providers: [
    provideHighlightOptions({
      lineNumbersLoader: () => import("./chunk-OY2UJULL.js"),
      coreLibraryLoader: () => import("./chunk-VB3SUARZ.js"),
      languages: {
        json: () => import("./chunk-7MAX7ILO.js"),
        typescript: () => import("./chunk-B5QNPPOO.js"),
        css: () => import("./chunk-RTLSK2UK.js"),
        xml: () => import("./chunk-QN3DBGAS.js")
      },
      themePath: "assets/styles/androidstudio.css"
    }),
    provideRouter(routes2),
    RouteUpdateService,
    {
      provide: APP_INITIALIZER,
      useFactory: initializeApp,
      deps: [RouteUpdateService],
      multi: true
    },
    provideAnimations(),
    importProvidersFrom(BrowserModule, BrowserAnimationsModule, CommonModule, FormsModule, ReactiveFormsModule, HttpClientModule, MenuModule, ToastrModule.forRoot(), MonacoEditorModule.forRoot(), QuillModule.forRoot(), TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: httpTranslateLoader,
        deps: [HttpClient]
      }
    }), StoreModule.forRoot({ index: indexReducer }), NgMultiSelectDropDownModule.forRoot(), NgScrollbarModule.withConfig({
      visibility: "hover",
      appearance: "standard"
    })),
    AppService,
    Title,
    BnNgIdleService,
    { provide: ErrorHandler, useClass: GlobalErrorHandlerService },
    provideHttpClient(withInterceptors([authInterceptor, HttpErrorInterceptor])),
    { provide: LocationStrategy, useClass: HashLocationStrategy }
    // Add this line
  ]
};
function httpTranslateLoader(http) {
  return new LocalStorageTranslateLoader();
}

// src/app/app.component.ts
var _AppComponent = class _AppComponent {
  constructor(router) {
    this.router = router;
    this.title = "LCP";
    window.addEventListener("storage", (event) => {
      if (event.key === "logout") {
        this.router.navigate(["/login"]);
      }
      if (event.key === "login") {
        this.router.navigate(["/dashboard"]);
      }
    });
  }
};
_AppComponent.\u0275fac = function AppComponent_Factory(t) {
  return new (t || _AppComponent)(\u0275\u0275directiveInject(Router));
};
_AppComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _AppComponent, selectors: [["app-root"]], standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 1, vars: 0, template: function AppComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "router-outlet");
  }
}, dependencies: [RouterOutlet] });
var AppComponent = _AppComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(AppComponent, { className: "AppComponent", filePath: "src\\app\\app.component.ts", lineNumber: 12 });
})();

// node_modules/@angular/service-worker/fesm2022/service-worker.mjs
var ERR_SW_NOT_SUPPORTED = "Service workers are disabled or not supported by this browser";
function errorObservable(message) {
  return defer(() => throwError(new Error(message)));
}
var NgswCommChannel = class {
  constructor(serviceWorker) {
    this.serviceWorker = serviceWorker;
    if (!serviceWorker) {
      this.worker = this.events = this.registration = errorObservable(ERR_SW_NOT_SUPPORTED);
    } else {
      const controllerChangeEvents = fromEvent(serviceWorker, "controllerchange");
      const controllerChanges = controllerChangeEvents.pipe(map(() => serviceWorker.controller));
      const currentController = defer(() => of(serviceWorker.controller));
      const controllerWithChanges = concat(currentController, controllerChanges);
      this.worker = controllerWithChanges.pipe(filter((c) => !!c));
      this.registration = this.worker.pipe(switchMap(() => serviceWorker.getRegistration()));
      const rawEvents = fromEvent(serviceWorker, "message");
      const rawEventPayload = rawEvents.pipe(map((event) => event.data));
      const eventsUnconnected = rawEventPayload.pipe(filter((event) => event && event.type));
      const events = eventsUnconnected.pipe(publish());
      events.connect();
      this.events = events;
    }
  }
  postMessage(action, payload) {
    return this.worker.pipe(take(1), tap((sw) => {
      sw.postMessage(__spreadValues({
        action
      }, payload));
    })).toPromise().then(() => void 0);
  }
  postMessageWithOperation(type, payload, operationNonce) {
    const waitForOperationCompleted = this.waitForOperationCompleted(operationNonce);
    const postMessage = this.postMessage(type, payload);
    return Promise.all([postMessage, waitForOperationCompleted]).then(([, result]) => result);
  }
  generateNonce() {
    return Math.round(Math.random() * 1e7);
  }
  eventsOfType(type) {
    let filterFn;
    if (typeof type === "string") {
      filterFn = (event) => event.type === type;
    } else {
      filterFn = (event) => type.includes(event.type);
    }
    return this.events.pipe(filter(filterFn));
  }
  nextEventOfType(type) {
    return this.eventsOfType(type).pipe(take(1));
  }
  waitForOperationCompleted(nonce) {
    return this.eventsOfType("OPERATION_COMPLETED").pipe(filter((event) => event.nonce === nonce), take(1), map((event) => {
      if (event.result !== void 0) {
        return event.result;
      }
      throw new Error(event.error);
    })).toPromise();
  }
  get isEnabled() {
    return !!this.serviceWorker;
  }
};
var _SwPush = class _SwPush {
  /**
   * True if the Service Worker is enabled (supported by the browser and enabled via
   * `ServiceWorkerModule`).
   */
  get isEnabled() {
    return this.sw.isEnabled;
  }
  constructor(sw) {
    this.sw = sw;
    this.pushManager = null;
    this.subscriptionChanges = new Subject();
    if (!sw.isEnabled) {
      this.messages = NEVER;
      this.notificationClicks = NEVER;
      this.subscription = NEVER;
      return;
    }
    this.messages = this.sw.eventsOfType("PUSH").pipe(map((message) => message.data));
    this.notificationClicks = this.sw.eventsOfType("NOTIFICATION_CLICK").pipe(map((message) => message.data));
    this.pushManager = this.sw.registration.pipe(map((registration) => registration.pushManager));
    const workerDrivenSubscriptions = this.pushManager.pipe(switchMap((pm) => pm.getSubscription()));
    this.subscription = merge(workerDrivenSubscriptions, this.subscriptionChanges);
  }
  /**
   * Subscribes to Web Push Notifications,
   * after requesting and receiving user permission.
   *
   * @param options An object containing the `serverPublicKey` string.
   * @returns A Promise that resolves to the new subscription object.
   */
  requestSubscription(options) {
    if (!this.sw.isEnabled || this.pushManager === null) {
      return Promise.reject(new Error(ERR_SW_NOT_SUPPORTED));
    }
    const pushOptions = {
      userVisibleOnly: true
    };
    let key = this.decodeBase64(options.serverPublicKey.replace(/_/g, "/").replace(/-/g, "+"));
    let applicationServerKey = new Uint8Array(new ArrayBuffer(key.length));
    for (let i = 0; i < key.length; i++) {
      applicationServerKey[i] = key.charCodeAt(i);
    }
    pushOptions.applicationServerKey = applicationServerKey;
    return this.pushManager.pipe(switchMap((pm) => pm.subscribe(pushOptions)), take(1)).toPromise().then((sub) => {
      this.subscriptionChanges.next(sub);
      return sub;
    });
  }
  /**
   * Unsubscribes from Service Worker push notifications.
   *
   * @returns A Promise that is resolved when the operation succeeds, or is rejected if there is no
   *          active subscription or the unsubscribe operation fails.
   */
  unsubscribe() {
    if (!this.sw.isEnabled) {
      return Promise.reject(new Error(ERR_SW_NOT_SUPPORTED));
    }
    const doUnsubscribe = (sub) => {
      if (sub === null) {
        throw new Error("Not subscribed to push notifications.");
      }
      return sub.unsubscribe().then((success) => {
        if (!success) {
          throw new Error("Unsubscribe failed!");
        }
        this.subscriptionChanges.next(null);
      });
    };
    return this.subscription.pipe(take(1), switchMap(doUnsubscribe)).toPromise();
  }
  decodeBase64(input) {
    return atob(input);
  }
};
_SwPush.\u0275fac = function SwPush_Factory(t) {
  return new (t || _SwPush)(\u0275\u0275inject(NgswCommChannel));
};
_SwPush.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _SwPush,
  factory: _SwPush.\u0275fac
});
var SwPush = _SwPush;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(SwPush, [{
    type: Injectable
  }], () => [{
    type: NgswCommChannel
  }], null);
})();
var _SwUpdate = class _SwUpdate {
  /**
   * True if the Service Worker is enabled (supported by the browser and enabled via
   * `ServiceWorkerModule`).
   */
  get isEnabled() {
    return this.sw.isEnabled;
  }
  constructor(sw) {
    this.sw = sw;
    if (!sw.isEnabled) {
      this.versionUpdates = NEVER;
      this.unrecoverable = NEVER;
      return;
    }
    this.versionUpdates = this.sw.eventsOfType(["VERSION_DETECTED", "VERSION_INSTALLATION_FAILED", "VERSION_READY", "NO_NEW_VERSION_DETECTED"]);
    this.unrecoverable = this.sw.eventsOfType("UNRECOVERABLE_STATE");
  }
  /**
   * Checks for an update and waits until the new version is downloaded from the server and ready
   * for activation.
   *
   * @returns a promise that
   * - resolves to `true` if a new version was found and is ready to be activated.
   * - resolves to `false` if no new version was found
   * - rejects if any error occurs
   */
  checkForUpdate() {
    if (!this.sw.isEnabled) {
      return Promise.reject(new Error(ERR_SW_NOT_SUPPORTED));
    }
    const nonce = this.sw.generateNonce();
    return this.sw.postMessageWithOperation("CHECK_FOR_UPDATES", {
      nonce
    }, nonce);
  }
  /**
   * Updates the current client (i.e. browser tab) to the latest version that is ready for
   * activation.
   *
   * In most cases, you should not use this method and instead should update a client by reloading
   * the page.
   *
   * <div class="alert is-important">
   *
   * Updating a client without reloading can easily result in a broken application due to a version
   * mismatch between the [application shell](guide/glossary#app-shell) and other page resources,
   * such as [lazy-loaded chunks](guide/glossary#lazy-loading), whose filenames may change between
   * versions.
   *
   * Only use this method, if you are certain it is safe for your specific use case.
   *
   * </div>
   *
   * @returns a promise that
   *  - resolves to `true` if an update was activated successfully
   *  - resolves to `false` if no update was available (for example, the client was already on the
   *    latest version).
   *  - rejects if any error occurs
   */
  activateUpdate() {
    if (!this.sw.isEnabled) {
      return Promise.reject(new Error(ERR_SW_NOT_SUPPORTED));
    }
    const nonce = this.sw.generateNonce();
    return this.sw.postMessageWithOperation("ACTIVATE_UPDATE", {
      nonce
    }, nonce);
  }
};
_SwUpdate.\u0275fac = function SwUpdate_Factory(t) {
  return new (t || _SwUpdate)(\u0275\u0275inject(NgswCommChannel));
};
_SwUpdate.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({
  token: _SwUpdate,
  factory: _SwUpdate.\u0275fac
});
var SwUpdate = _SwUpdate;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(SwUpdate, [{
    type: Injectable
  }], () => [{
    type: NgswCommChannel
  }], null);
})();
var SCRIPT = new InjectionToken(ngDevMode ? "NGSW_REGISTER_SCRIPT" : "");
function ngswAppInitializer(injector, script, options, platformId) {
  return () => {
    if (!(isPlatformBrowser(platformId) && "serviceWorker" in navigator && options.enabled !== false)) {
      return;
    }
    navigator.serviceWorker.addEventListener("controllerchange", () => {
      if (navigator.serviceWorker.controller !== null) {
        navigator.serviceWorker.controller.postMessage({
          action: "INITIALIZE"
        });
      }
    });
    let readyToRegister$;
    if (typeof options.registrationStrategy === "function") {
      readyToRegister$ = options.registrationStrategy();
    } else {
      const [strategy, ...args] = (options.registrationStrategy || "registerWhenStable:30000").split(":");
      switch (strategy) {
        case "registerImmediately":
          readyToRegister$ = of(null);
          break;
        case "registerWithDelay":
          readyToRegister$ = delayWithTimeout(+args[0] || 0);
          break;
        case "registerWhenStable":
          readyToRegister$ = !args[0] ? whenStable(injector) : merge(whenStable(injector), delayWithTimeout(+args[0]));
          break;
        default:
          throw new Error(`Unknown ServiceWorker registration strategy: ${options.registrationStrategy}`);
      }
    }
    const ngZone = injector.get(NgZone);
    ngZone.runOutsideAngular(() => readyToRegister$.pipe(take(1)).subscribe(() => navigator.serviceWorker.register(script, {
      scope: options.scope
    }).catch((err) => console.error("Service worker registration failed with:", err))));
  };
}
function delayWithTimeout(timeout) {
  return of(null).pipe(delay(timeout));
}
function whenStable(injector) {
  const appRef = injector.get(ApplicationRef);
  return appRef.isStable.pipe(filter((stable) => stable));
}
function ngswCommChannelFactory(opts, platformId) {
  return new NgswCommChannel(isPlatformBrowser(platformId) && opts.enabled !== false ? navigator.serviceWorker : void 0);
}
var SwRegistrationOptions = class {
};
function provideServiceWorker(script, options = {}) {
  return makeEnvironmentProviders([SwPush, SwUpdate, {
    provide: SCRIPT,
    useValue: script
  }, {
    provide: SwRegistrationOptions,
    useValue: options
  }, {
    provide: NgswCommChannel,
    useFactory: ngswCommChannelFactory,
    deps: [SwRegistrationOptions, PLATFORM_ID]
  }, {
    provide: APP_INITIALIZER,
    useFactory: ngswAppInitializer,
    deps: [Injector, SCRIPT, SwRegistrationOptions, PLATFORM_ID],
    multi: true
  }]);
}
var _ServiceWorkerModule = class _ServiceWorkerModule {
  /**
   * Register the given Angular Service Worker script.
   *
   * If `enabled` is set to `false` in the given options, the module will behave as if service
   * workers are not supported by the browser, and the service worker will not be registered.
   */
  static register(script, options = {}) {
    return {
      ngModule: _ServiceWorkerModule,
      providers: [provideServiceWorker(script, options)]
    };
  }
};
_ServiceWorkerModule.\u0275fac = function ServiceWorkerModule_Factory(t) {
  return new (t || _ServiceWorkerModule)();
};
_ServiceWorkerModule.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({
  type: _ServiceWorkerModule
});
_ServiceWorkerModule.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({
  providers: [SwPush, SwUpdate]
});
var ServiceWorkerModule = _ServiceWorkerModule;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ServiceWorkerModule, [{
    type: NgModule,
    args: [{
      providers: [SwPush, SwUpdate]
    }]
  }], null, null);
})();

// src/main.ts
var combinedConfig = {
  providers: [...lcpAppConfig.providers, ...appConfig.providers, provideServiceWorker("ngsw-worker.js", {
    enabled: !isDevMode(),
    registrationStrategy: "registerWhenStable:30000"
  })]
};
bootstrapApplication(AppComponent, combinedConfig).catch((err) => console.error(err));
/*! Bundled license information:

apexcharts/dist/apexcharts.common.js:
  (*!
   * ApexCharts v3.45.2
   * (c) 2018-2024 ApexCharts
   * Released under the MIT License.
   *)

powerbi-client/dist/powerbi.js:
  (*! http-post-message v0.2.3 | (c) 2016 Microsoft Corporation MIT *)
  (*! powerbi-router v0.1.5 | (c) 2016 Microsoft Corporation MIT *)
  (*! For license information please see windowPostMessageProxy.js.LICENSE.txt *)
  (*!*******************************!*\
    !*** ./src/powerbi-client.ts ***!
    \*******************************)

@angular/animations/fesm2022/browser.mjs:
  (**
   * @license Angular v17.3.12
   * (c) 2010-2024 Google LLC. https://angular.io/
   * License: MIT
   *)

@angular/platform-browser/fesm2022/animations.mjs:
  (**
   * @license Angular v17.3.12
   * (c) 2010-2024 Google LLC. https://angular.io/
   * License: MIT
   *)

@angular/service-worker/fesm2022/service-worker.mjs:
  (**
   * @license Angular v17.3.12
   * (c) 2010-2024 Google LLC. https://angular.io/
   * License: MIT
   *)
  (*!
   * @license
   * Copyright Google LLC All Rights Reserved.
   *
   * Use of this source code is governed by an MIT-style license that can be
   * found in the LICENSE file at https://angular.io/license
   *)
*/
//# sourceMappingURL=main.js.map
