{"version":3,"file":"c8y-ngx-components-upgrade.mjs","sources":["../../upgrade/absolute-date.service.ts","../../upgrade/ng1/views.provider.ts","../../upgrade/bridge.service.ts","../../upgrade/action-bar.factory.ts","../../upgrade/action.factory.ts","../../upgrade/auth-bridge.service.ts","../../upgrade/breadcrumb.factory.ts","../../upgrade/docs.factory.ts","../../upgrade/nodes.factory.ts","../../upgrade/smart-rules.service.ts","../../upgrade/tabs.factory.ts","../../upgrade/upgrade.module.ts","../../upgrade/ng1/alert.decorator.ts","../../upgrade/ng1/downgraded.components.ts","../../upgrade/ng1/serverMessages.service.ts","../../upgrade/ng1/downgraded.services.ts","../../upgrade/ng1/gettextCatalog.decorator.ts","../../upgrade/ng1/groupsHierarchyNavigator.decorator.ts","../../upgrade/ng1/http.interceptor.ts","../../upgrade/ng1/navigator-node-root-legacy.ts","../../upgrade/ng1/navigator.provider.ts","../../upgrade/ng1/root.component.ts","../../upgrade/ng1/title.decorator.ts","../../upgrade/ng1/index.ts","../../upgrade/hybrid-app.module.ts","../../upgrade/upgrade.routes.ts","../../upgrade/dashboard/dashboard-bridge.service.ts","../../upgrade/dashboard/widget.component.ts","../../upgrade/dashboard/device-selector.component.ts","../../upgrade/dashboard/component.factory.ts","../../upgrade/dashboard/dashboard-upgrade.module.ts","../../upgrade/c8y-ngx-components-upgrade.ts"],"sourcesContent":["import { DatePipe } from '@c8y/ngx-components';\n\nexport class AbsoluteDateService {\n  constructor(private datePipe: DatePipe) {}\n  getFilter() {\n    return (value: any, format = 'medium', timezone?: string, locale?: string) =>\n      this.datePipe.transform(value, format, timezone, locale);\n  }\n}\nexport function absoluteDateServiceFactory(datePipe: DatePipe) {\n  return new AbsoluteDateService(datePipe).getFilter();\n}\nexport const absoluteDateServiceProvider = {\n  provide: AbsoluteDateService,\n  useFactory: absoluteDateServiceFactory,\n  deps: [DatePipe]\n};\n","import { ViewContext } from '@c8y/ngx-components';\nimport { find, forEach, map, startsWith, unary } from 'lodash-es';\nimport { ReplaySubject } from 'rxjs';\n\nexport enum ViewContextLegacyParameter {\n  Device = 'deviceId',\n  Group = 'groupId',\n  User = 'userId',\n  Application = 'applicationId',\n  Microservice = 'applicationId',\n  SubscribedApplications = 'applicationId',\n  Tenant = 'tenantId',\n  Service = 'deviceId', // use 'deviceId' as parameter name so that device views (Measurements, Events, Alarms) can be reused for service\n  Simulators = 'deviceId' // required to hook the Alarms tab to a Simulator view\n}\n\nfunction c8yViewsProvider($routeProvider, c8yTabsProvider, c8yPathUtils) {\n  'ngInject';\n\n  const viewMap = {};\n  const contextViews = new ReplaySubject();\n\n  return {\n    when,\n    $get() {\n      return {\n        contextViews,\n        when(path, cfg) {\n          return when(path, cfg, true);\n        },\n        getByPath,\n        prefixWithSlash\n      };\n    }\n  };\n\n  /**\n   * @ngdoc function\n   * @name when\n   * @methodOf c8y.ui.provider:c8yViewsProvider\n   *\n   * @description\n   * Defines a view for given route.\n   * If multiple views are defined for a single route then there will be a separate tab for each view available when user visits that route.\n   *\n   * @param path Target route.\n   * @param cfg View configuration object with the following properties:\n   *\n   * - **name** - `string` - View's name (in case of multiple views at single route this will be displayed as tab's title).\n   * - **priority** - `integer` - View's priority (in case of multiple views at single route this will determine the position of view's tab in the tabs stack).\n   * - **icon** - `string` - Font Awesome icon name for the view (displayed on the tab's header).\n   * - **showIf** - `function` - Function returning boolean value indicating whether to show a tab for the view or not.\n   * - **templateUrl** - `string` - Path to the template to use for displaying the view.\n   *\n   * You can also provide other view options - the same as available for standard {@link https://docs.angularjs.org/api/ngRoute/provider/$routeProvider $routeProvider} in AngularJS.\n   *\n   * ```html\n   * The following example demonstrates how to add a new view to device details route\n   * (which will be displayed as a tab if other views are assigned to the same route):\n   * <pre>\n   *   c8yViewsProvider.when('/device/:deviceId', {\n   *     name: 'Tracking',\n   *     templateUrl: ':::PLUGIN_PATH:::/views/index.html',\n   *     icon: 'crosshairs',\n   *     showIf: ['$routeParams', 'c8yDevices', function ($routeParams, c8yDevices) {\n   *       var deviceId = $routeParams.deviceId;\n   *       return c8yDevices.detailCached(deviceId).then(function (res) {\n   *         var device = res.data;\n   *         return device && (device.c8y_MotionTracking || device.c8y_Geofence);\n   *       });\n   *     }]\n   *   });\n   * </pre>\n   * ```\n   */\n  function when(path, cfg, runPhase) {\n    const newPath = prefixWithSlash(path);\n    cfg.resolve = cfg.resolve || {};\n    // eslint-disable-next-line no-underscore-dangle\n    cfg.resolve.__c8y_locales = [\n      'c8yLocales',\n      c8yLocales => {\n        return c8yLocales.initDone;\n      }\n    ];\n\n    let currentCfg = viewMap[newPath];\n    const originalPath = newPath;\n\n    if (!cfg.name) {\n      // console.warn('View name not defined');\n    }\n\n    if (!currentCfg) {\n      viewMap[newPath] = [];\n      currentCfg = viewMap[newPath];\n    }\n\n    const upgradedContext = Object.keys(ViewContext)\n      .map(key => ({\n        key,\n        isUpgrade:\n          prefixWithSlash(ViewContext[key].replace('id', ViewContextLegacyParameter[key])) === path\n      }))\n      .find(({ isUpgrade }) => isUpgrade);\n\n    if (upgradedContext) {\n      currentCfg.push(cfg);\n      cfg.path = newPath;\n\n      const p = c8yPathUtils.appendSegment(originalPath.replace(path, ''), cfg.name);\n      contextViews.next({\n        ...cfg,\n        path: cfg.name ? p.substring(1) : '',\n        contextKey: upgradedContext.key,\n        runPhase\n      });\n      cfg.showIf = undefined;\n      if (cfg.name) {\n        cfg.path = c8yPathUtils.appendSegment(originalPath, cfg.name);\n      }\n    } else {\n      if (currentCfg.length === 1) {\n        const [existingConfig] = currentCfg;\n        existingConfig.path = c8yPathUtils.appendSegment(originalPath, existingConfig.name);\n        existingConfig.tab = createTab(originalPath, existingConfig);\n        $routeProvider.when(existingConfig.path, existingConfig);\n      }\n\n      currentCfg.push(cfg);\n      cfg.path = newPath;\n\n      if (currentCfg.length > 1) {\n        cfg.path = c8yPathUtils.appendSegment(originalPath, cfg.name);\n        createTab(originalPath, cfg);\n\n        $routeProvider.when(prefixWithSlash(originalPath), {\n          resolveRedirectTo($route, $q, c8yUiUtil, c8yTabs, gettextCatalog) {\n            'ngInject';\n\n            const sortedCurrentCfg = c8yTabsProvider.sortTabsViews(currentCfg, gettextCatalog);\n            const params = $route.current.pathParams;\n\n            return $q\n              .all(map(sortedCurrentCfg, unary(c8yUiUtil.configureVisibility)))\n              .then(views => {\n                const first = find(views, 'show');\n                let url = first.path;\n                forEach(params, (val, key) => {\n                  url = url.replace(`:${key}`, val);\n                });\n                c8yTabs.redirectedViewPath = url;\n                return url;\n              });\n          }\n        });\n      }\n    }\n    return $routeProvider.when(prefixWithSlash(cfg.path), cfg);\n  }\n\n  function getByPath(path) {\n    return viewMap[prefixWithSlash(path)];\n  }\n\n  function createTab(path, cfg) {\n    c8yTabsProvider.addTab(path, cfg);\n  }\n\n  function prefixWithSlash(path) {\n    const prefix = startsWith(path, '/') ? '' : '/';\n    return prefix + path;\n  }\n}\n\nexport { c8yViewsProvider };\n","import {\n  Action,\n  ActionBarItem,\n  ActionService,\n  AppStateService,\n  Breadcrumb,\n  BreadcrumbItem,\n  DocLink,\n  EmptyComponent,\n  gettext,\n  PluginsResolveService,\n  RouterService,\n  Search,\n  Tab,\n  ViewContext\n} from '@c8y/ngx-components';\nimport { isArray } from 'lodash-es';\nimport {\n  BehaviorSubject,\n  combineLatest,\n  from,\n  fromEventPattern,\n  merge,\n  Observable,\n  of,\n  Subject\n} from 'rxjs';\nimport { debounceTime, filter, map, startWith, switchMap, take } from 'rxjs/operators';\n\nimport { NgZone } from '@angular/core';\nimport { ActivatedRouteSnapshot, ActivationEnd, ResolveEnd, Router } from '@angular/router';\nimport { ViewContextLegacyParameter } from './ng1/views.provider';\n\nexport class BridgeService {\n  $routeChanges: Observable<any>;\n  $ng1RouteChangeSuccess: Observable<any>;\n  $ng1RouteChangeStart: Observable<any>;\n  $liveTabs: Subject<Tab[]> = new BehaviorSubject([]);\n  navigationNodes$: Observable<any>;\n  constructor(\n    public injector: any,\n    private appState: AppStateService,\n    public router: Router,\n    private ngZone: NgZone,\n    private routerService: RouterService,\n    private actionService: ActionService,\n    plugins: PluginsResolveService\n  ) {\n    this.fixE2eIssues();\n    this.$ng1RouteChangeSuccess = this.fromNg1Event(\n      this.injector.get('$rootScope'),\n      '$routeChangeSuccess'\n    );\n    this.$ng1RouteChangeStart = this.fromNg1Event(\n      this.injector.get('$rootScope'),\n      '$routeChangeStart'\n    );\n    this.hookLanguage();\n    this.hookTab();\n    this.hookNavigator();\n    this.hookUserMenu();\n    this.hookViewProvider();\n    this.hookRoute();\n    plugins.allPluginsLoaded$\n      .pipe(\n        filter(tmp => !!tmp),\n        take(1)\n      )\n      .subscribe(() => {\n        this.router.initialNavigation();\n      });\n    this.ng1Routes();\n  }\n\n  /**\n   * Ensure that angularjs routes are not using any\n   * secondary router outlets\n   */\n  hookRoute() {\n    this.router.events\n      .pipe(\n        filter(event => event instanceof ResolveEnd),\n        map((event: ResolveEnd) => event.state.root.firstChild),\n        filter(route => route && route.routeConfig && route.routeConfig.path === '**')\n      )\n      .subscribe((event: ActivatedRouteSnapshot) => {\n        if (event.root.children.length > 1) {\n          window.location.hash = event.root.children[0].url.toString();\n        }\n      });\n  }\n\n  hookViewProvider() {\n    const c8yViews = this.injector.get('c8yViews');\n    // fix to trigger an angularjs route change success\n    // event on context route match to make legacy\n    // view-providers resolve.\n    c8yViews.when('/device/:id', {\n      template: ''\n    });\n    c8yViews.when('/group/:id', {\n      template: ''\n    });\n    c8yViews.contextViews.subscribe(cfg => this.addRoute(cfg));\n  }\n\n  addRoute(cfg) {\n    this.routerService.addRoute({\n      label: cfg.label || cfg.name,\n      path: cfg.path,\n      icon: cfg.icon,\n      context: ViewContext[cfg.contextKey] as ViewContext,\n      priority: cfg.priority,\n      component: EmptyComponent,\n      data: {\n        showIf: cfg.showIf\n          ? ngxRoute => {\n              const params = {\n                ...ngxRoute.params,\n                [ViewContextLegacyParameter[cfg.contextKey]]: ngxRoute.params.id\n              };\n              const showIfResult = this.injector.invoke(cfg.showIf, undefined, {\n                $routeParams: params\n              });\n              // make sure showIf result is a promise with boolean result:\n              return this.injector.get('$q').when(showIfResult).then(Boolean);\n            }\n          : undefined\n      },\n      ...(cfg.featureId && { featureId: cfg.featureId })\n    });\n\n    if (cfg.runPhase) {\n      this.routerService.refresh();\n    }\n  }\n\n  ng1Routes() {\n    const template = '';\n    const fallbackRoutes = [];\n\n    // tslint:disable-next-line: forin\n    for (const context in ViewContext) {\n      const path = ViewContext[context].match(/(\\w+)\\//)[1];\n      const regexp = new RegExp(`^/${path}/(?:([^/]+)).*$`);\n      fallbackRoutes.push({\n        keys: [{ name: ViewContextLegacyParameter[context], optional: false }],\n        regexp,\n        template\n      });\n    }\n\n    /**\n     * When asset detail routes (/device/:id,  /group/:id) are matched in Angular Router, ngRoute in\n     * angular.js must also have matching generic routes so that the ids can be extracted from the paths and\n     * injected in multiple calls (showIf, c8yActions, etc) as properties of $routeParams.\n     *\n     * The function in src/ngRoute/route.js (angular.js) where the routes are matched is called parseRoute(). This\n     * function calls angular.forEach and in turn this function checks for the presence of a forEach method before\n     * trying object key iteration.\n     * By attaching a non enumerable forEach method to the routes object we guarantee that the fallback generic routes\n     * are only matched after any other registered through $routeProvider.when.\n     */\n    const $route = this.injector.get('$route');\n    Object.defineProperty($route.routes, 'forEach', {\n      // make non enumerable\n      value: function forEach(iterator, context) {\n        // tslint:disable-next-line: forin\n        for (const key in this) {\n          iterator.call(context, this[key], key, this);\n        }\n        fallbackRoutes.forEach(r => iterator.call(context, r));\n      },\n      configurable: true\n    });\n\n    /**\n     * Some functions use the current context. As some parts are upgraded and some not, the following updates the\n     * angularjs getContext function to resolve always the right context.\n     */\n    const c8yUiUtil = this.injector.get('c8yUiUtil');\n    const _getContext = c8yUiUtil.getContext;\n    this.router.events\n      .pipe(filter(event => event instanceof ActivationEnd))\n      .subscribe((event: ActivationEnd) => {\n        if (event.snapshot.routeConfig.path === '**') {\n          c8yUiUtil.getContext = _getContext;\n        } else if (event.snapshot.data && event.snapshot.data.context) {\n          c8yUiUtil.getContext = () => {\n            return {\n              context: event.snapshot.data.context.replace('/:id', ''),\n              id: event.snapshot.data.contextData.id,\n              contextData: event.snapshot.data.contextData\n            };\n          };\n        } else {\n          c8yUiUtil.getContext = () => ({ context: null, id: null });\n        }\n      });\n  }\n\n  fixE2eIssues() {\n    try {\n      const { ngZone } = this;\n      const { Utils } = (window as any).org.cometd;\n      const timeoutFn = Utils.setTimeout;\n      // tslint:disable-next-line:only-arrow-functions\n      Utils.setTimeout = function (...args) {\n        return ngZone.runOutsideAngular(() => timeoutFn.apply(Utils, args));\n      };\n    } catch (e) {\n      // do nothing\n    }\n\n    try {\n      const { ace } = window as any;\n      const editFn = ace.edit;\n      const { ngZone } = this;\n      // tslint:disable-next-line:only-arrow-functions\n      ace.edit = function (...args) {\n        return ngZone.runOutsideAngular(() => editFn.apply(ace, args));\n      };\n    } catch (e) {\n      // do nothing\n    }\n  }\n\n  hookLanguage() {\n    let first = true;\n    this.appState\n      .map(store => store.lang)\n      .subscribe(lang => {\n        this.injector.get('c8yLocales').switchToLanguage(lang);\n        if (!first) {\n          this.injector.get('$rootScope').$apply();\n        }\n        first = false;\n      });\n  }\n\n  hookTab() {\n    // Just for instantiation of the c8yAction service\n    this.injector.get('c8yActions');\n    const $location = this.injector.get('$location');\n    const c8yTabs = this.injector.get('c8yTabs');\n    let liveTabs = [];\n    c8yTabs.addTab = tab => {\n      liveTabs.push({\n        ...tab,\n        label: tab.label || tab.name,\n        path: decodeURIComponent(tab.path)\n      });\n      this.$liveTabs.next(liveTabs);\n    };\n    this.$ng1RouteChangeStart.subscribe(() => {\n      liveTabs = [];\n      this.$liveTabs.next(liveTabs);\n    });\n    this.$ng1RouteChangeSuccess.subscribe(() => {\n      const path = $location.path();\n      if (this.router.url !== path) {\n        this.router.navigate(path === '/' ? '' : path.split('/'), {\n          queryParams: $location.search(),\n          skipLocationChange: true\n        });\n      }\n      if (this.actionService) {\n        this.actionService.refresh();\n      }\n    });\n    this.$routeChanges = merge(\n      this.$ng1RouteChangeSuccess,\n      this.fromNg1Event(c8yTabs, c8yTabs.EVENT_UPDATE),\n      of(1)\n    ).pipe(debounceTime(100));\n  }\n\n  hookNavigator() {\n    this.navigationNodes$ = this.injector.get('c8yNavigator').rootNodes$;\n  }\n\n  getTabs(): Observable<any> {\n    const onlyVisible = ({ show }) => show;\n    const upgradeTab = tab => ({\n      ...tab,\n      label: tab.label || tab.name,\n      path: decodeURIComponent(tab.path)\n    });\n    const routeTabs = this.$routeChanges.pipe(\n      switchMap(() => {\n        const routes = this.injector.get('c8yTabs').routeTabs;\n        const visibilityPromise = Promise.all(\n          routes.map(({ checkingVisibility }) => checkingVisibility)\n        );\n        return visibilityPromise.then(() => routes.filter(onlyVisible).map(upgradeTab));\n      }),\n      startWith([])\n    );\n    return combineLatest([routeTabs, this.$liveTabs]).pipe(\n      map(([route, live]) => route.concat(live))\n    );\n  }\n\n  getQuickLinks(): Promise<DocLink[]> {\n    const c8yQuickLinks = this.injector.get('c8yQuickLinks');\n    return c8yQuickLinks.list();\n  }\n\n  getActionBarItems(): Observable<ActionBarItem> {\n    const c8yActionBar = this.injector.get('c8yActionBar');\n    const $rootScope = this.injector.get('$rootScope');\n    const getActionBarElements = () =>\n      c8yActionBar.elements.map(element => ({\n        priority: element.getAttribute('action-bar-priority') || 0,\n        template: element,\n        placement: element.getAttribute('action-bar-position') || 'right'\n      }));\n    return this.fromNg1Event($rootScope, 'c8yActionBarChanged').pipe(\n      startWith(1),\n      map(getActionBarElements)\n    );\n  }\n\n  getBreadcrumbs(): Observable<Breadcrumb[]> {\n    const $location = this.injector.get('$location');\n    const c8yBreadcrumbs = this.injector.get('c8yBreadcrumbs');\n    const breadcrumbsUpdate$ = new Observable(subscriber =>\n      c8yBreadcrumbs.$on('update', () => subscriber.next())\n    );\n    return breadcrumbsUpdate$.pipe(\n      startWith(0),\n      switchMap(() => {\n        const path = $location.path();\n        const breadcrumbs = c8yBreadcrumbs.get(path) || {};\n        const breadcrumbsData = this.resolveBreadcrumbsData(breadcrumbs.data);\n        return from(breadcrumbsData).pipe(\n          map((value: any[]) => {\n            const liveBreadcrumbs = c8yBreadcrumbs.getLiveBreadcrumbs();\n            value = value.concat(liveBreadcrumbs);\n            return value.map(items => ({ items: items as BreadcrumbItem[] }) as Breadcrumb);\n          })\n        );\n      })\n    );\n  }\n\n  resolveBreadcrumbsData(data): Observable<any[]> {\n    try {\n      return this.injector.invoke(data);\n    } catch (ex) {\n      // empty\n    }\n    if (isArray(data)) {\n      return of([data]);\n    }\n    return of([]);\n  }\n\n  getSearch(): Search[] {\n    const c8ySearch = this.injector.get('c8ySearch');\n    return c8ySearch.list().map(item => {\n      return {\n        icon: 'search',\n        name: item.name,\n        term: '',\n        onSearch() {\n          if (this.term) {\n            c8ySearch.search(this.term);\n          }\n        }\n      } as Search;\n    });\n  }\n\n  getActions(): Observable<Action> {\n    const registeredActions = this.injector.get('c8yActions').registeredActions;\n    return of(\n      registeredActions\n        .filter(action => !action.hidden)\n        .map(action => ({\n          // The priority was reversed: Aligned it to dashboard, high first, low last.\n          priority: (action.priority || 0) * -1,\n          label: action.text,\n          icon: action.icon,\n          disabled: action.disabled,\n          action: () => {\n            this.injector.invoke(action.action, action);\n          }\n        }))\n    );\n  }\n\n  fromNg1Event(obj, evt) {\n    let stopListening;\n    function add(handler) {\n      stopListening = obj.$on(evt, handler);\n    }\n    return fromEventPattern(add, () => stopListening());\n  }\n\n  private hookUserMenu() {\n    const userMenuService = this.injector.get('c8yUserMenuService');\n    const c8yAccessDenied = this.injector.get('c8yAccessDenied');\n    userMenuService.add({\n      icon: 'access',\n      priority: 10,\n      label: gettext('Access denied requests'),\n      click: c8yAccessDenied.showAccessDeniedRequestsList\n    });\n  }\n}\n\nexport function bridgeServiceFactory(\n  injector: any,\n  appState: AppStateService,\n  router: Router,\n  ngZone: NgZone,\n  routerService: RouterService,\n  actionService: ActionService,\n  plugins: PluginsResolveService\n) {\n  return new BridgeService(\n    injector,\n    appState,\n    router,\n    ngZone,\n    routerService,\n    actionService,\n    plugins\n  );\n}\n\nexport const bridgeServiceProvider = {\n  provide: BridgeService,\n  useFactory: bridgeServiceFactory,\n  deps: [\n    '$injector',\n    AppStateService,\n    Router,\n    NgZone,\n    RouterService,\n    ActionService,\n    PluginsResolveService\n  ]\n};\n","import { Injectable } from '@angular/core';\nimport { ActionBarFactory, ActionBarItem } from '@c8y/ngx-components';\nimport { BridgeService } from './bridge.service';\nimport { Observable } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\n\n@Injectable()\nexport class Ng1ActionBarFactoryService implements ActionBarFactory {\n  routeChanges$: Observable<any>;\n  $ng1RouteChangeSuccess: Observable<any>;\n  constructor(private bridge: BridgeService) {\n    this.routeChanges$ = bridge.$routeChanges;\n    this.$ng1RouteChangeSuccess = bridge.$ng1RouteChangeSuccess;\n  }\n\n  get(): Observable<ActionBarItem> {\n    return this.routeChanges$.pipe(\n      switchMap(() => {\n        return this.bridge.getActionBarItems();\n      })\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ActionFactory, TabsService } from '@c8y/ngx-components';\nimport { BridgeService } from './bridge.service';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class Ng1ActionFactoryService implements ActionFactory {\n  routeChanges$: Observable<any>;\n  $location: any;\n  constructor(private bridge: BridgeService, private tabs: TabsService) {\n    this.routeChanges$ = bridge.$routeChanges;\n    this.$location = bridge.injector.get('$location');\n    this.tabs.items$.subscribe(newTabs => this.handleTabsRedirect(newTabs));\n  }\n\n  handleTabsRedirect(tabs) {\n    /**\n     * This function is doing the same process as function redirect in the file\n     * modules/core/ui/navigation/tabs.provider.js\n     * That function  is not run because bridge.service.ts overrides the method addTab where the redirect() was called.\n     */\n    const redirectedTab = tabs.find(tab => tab.redirectedTo);\n    const [topPriorityTab] = tabs;\n    if (redirectedTab && !topPriorityTab.redirectedTo) {\n      this.$location.replace();\n      this.$location.path(topPriorityTab.path);\n      topPriorityTab.redirectedTo = true;\n      redirectedTab.redirectedTo = false;\n    }\n  }\n\n  get() {\n    return this.bridge.getActions();\n  }\n}\n","import { AppStateService, TenantUiService } from '@c8y/ngx-components';\nimport { BasicAuth, FetchClient, ICredentials } from '@c8y/client';\n\nexport class AuthBridgeService {\n  constructor(\n    public injector: any,\n    private basicAuth: BasicAuth,\n    private fetchClient: FetchClient,\n    private appState: AppStateService,\n    private tenantUiService: TenantUiService\n  ) {\n    this.hookAuth();\n  }\n\n  updateBasicAuth(credentials: ICredentials) {\n    const { headers } = this.fetchClient.getFetchOptions({});\n    if (headers.Authorization) {\n      const token = headers.Authorization.match(/basic\\s(.*)$/i)[1];\n      if (token) {\n        this.basicAuth.updateCredentials(credentials);\n        this.fetchClient.setAuth(this.basicAuth);\n      }\n    }\n  }\n\n  hookAuth() {\n    this.appState.currentUser.subscribe(user => {\n      if (!user) {\n        this.injector.get('$rootScope').$emit('authStateChange', { hasAuth: false });\n        return;\n      }\n      this.injector.get('c8yAuth').headers = () => this.fetchClient.getFetchOptions({}).headers;\n      const { headers } = this.fetchClient.getFetchOptions({});\n      const authorizationHeader = headers.Authorization;\n      if (typeof authorizationHeader === 'string' && authorizationHeader.startsWith('Basic')) {\n        const matches = authorizationHeader.match(/basic\\s(.*)$/i);\n        const token = matches && matches[1];\n        if (token) {\n          this.setToken(token, headers.tfatoken);\n        }\n      } else if (\n        typeof authorizationHeader === 'string' &&\n        authorizationHeader.startsWith('Bearer')\n      ) {\n        this.setToken(undefined, headers.tfatoken, 'Bearer');\n      } else {\n        this.setToken(undefined, headers.tfatoken, 'Oauth');\n      }\n      this.injector.get('$rootScope').$emit('authStateChange', { hasAuth: true });\n    });\n  }\n\n  setToken(token?: string, tfa?: string, type = 'Basic') {\n    const c8yAuth = this.injector.get('c8yAuth');\n    if (type === 'Basic') {\n      c8yAuth.onSetToken({ token, type });\n      if (tfa) {\n        c8yAuth.setTFAToken(tfa);\n      }\n    } else {\n      c8yAuth.authReady();\n    }\n  }\n\n  getPreferredLoginOption() {\n    return this.tenantUiService.getPreferredLoginOption(this.appState.state.loginOptions);\n  }\n}\n\nexport function authBridgeServiceFactory(\n  injector: any,\n  basicAuth: BasicAuth,\n  fetchClient: FetchClient,\n  appState: AppStateService,\n  tenantUiService: TenantUiService\n) {\n  return new AuthBridgeService(injector, basicAuth, fetchClient, appState, tenantUiService);\n}\n\nexport const authBridgeServiceProvider = {\n  provide: AuthBridgeService,\n  useFactory: authBridgeServiceFactory,\n  deps: ['$injector', BasicAuth, FetchClient, AppStateService, TenantUiService]\n};\n","import { Injectable } from '@angular/core';\nimport { BreadcrumbFactory } from '@c8y/ngx-components';\nimport { ReplaySubject } from 'rxjs';\nimport { debounceTime, switchMap } from 'rxjs/operators';\nimport { BridgeService } from './bridge.service';\n\n@Injectable()\nexport class Ng1BreadcrumbFactoryService implements BreadcrumbFactory {\n  private trigger: any = new ReplaySubject(1);\n  private breadcrumbs = this.trigger.pipe(\n    debounceTime(100),\n    switchMap(() => {\n      return this.bridge.getBreadcrumbs();\n    })\n  );\n  constructor(private bridge: BridgeService) {}\n\n  get() {\n    this.trigger.next();\n    return this.breadcrumbs;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { DocLink, ExtensionFactory } from '@c8y/ngx-components';\nimport { BridgeService } from './bridge.service';\n\n@Injectable()\nexport class Ng1DocsFactoryService implements ExtensionFactory<DocLink> {\n  private links: Promise<DocLink[]>;\n  constructor(private bridge: BridgeService) {\n    this.links = this.bridge.getQuickLinks();\n    this.links.then(list => {\n      list.map(el => {\n        el.type = el.type || 'quicklink';\n        return el;\n      });\n    });\n  }\n\n  get() {\n    return this.links;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { NavigatorNodeFactory } from '@c8y/ngx-components';\nimport { BridgeService } from './bridge.service';\n\n@Injectable()\nexport class Ng1NodesFactoryService implements NavigatorNodeFactory {\n  constructor(private bridge: BridgeService) {}\n\n  get() {\n    return this.bridge.navigationNodes$;\n  }\n}\n","export abstract class Ng1SmartRulesService {\n  abstract permissionsCfgs;\n  abstract addNewForOutputOperationWithUI(operation);\n  abstract addNewForInputAlarmAndOutputUserWithUI(alarm, user);\n}\n\nexport function SmartRulesServiceFactory(injector: any) {\n  return injector.get('smartRulesSvc');\n}\n\nexport const smartRulesServiceProvider = {\n  provide: Ng1SmartRulesService,\n  useFactory: SmartRulesServiceFactory,\n  deps: ['$injector']\n};\n","import { Injectable } from '@angular/core';\nimport { TabFactory } from '@c8y/ngx-components';\nimport { BridgeService } from './bridge.service';\n\n@Injectable()\nexport class Ng1TabsFactoryService implements TabFactory {\n  tabsObservable;\n  constructor(private bridge: BridgeService) {\n    this.tabsObservable = bridge.getTabs();\n  }\n  get() {\n    return this.tabsObservable;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { setAngularJSGlobal } from '@angular/upgrade/static';\nimport {\n  hookAction,\n  hookActionBar,\n  hookBreadcrumb,\n  hookDocs,\n  hookNavigator,\n  hookTab,\n  RouterModule\n} from '@c8y/ngx-components';\nimport { UpgradedServicesModule } from '@c8y/ngx-components/upgrade/upgraded-services';\nimport * as angular from 'angular';\nimport { absoluteDateServiceProvider } from './absolute-date.service';\nimport { Ng1ActionBarFactoryService } from './action-bar.factory';\nimport { Ng1ActionFactoryService } from './action.factory';\nimport { authBridgeServiceProvider } from './auth-bridge.service';\nimport { Ng1BreadcrumbFactoryService } from './breadcrumb.factory';\nimport { bridgeServiceProvider } from './bridge.service';\nimport { Ng1DocsFactoryService } from './docs.factory';\nimport { Ng1NodesFactoryService } from './nodes.factory';\nimport { smartRulesServiceProvider } from './smart-rules.service';\nimport { Ng1TabsFactoryService } from './tabs.factory';\n\nsetAngularJSGlobal(angular);\n\n@NgModule({\n  imports: [RouterModule, UpgradedServicesModule],\n  exports: [],\n  providers: [\n    absoluteDateServiceProvider,\n    bridgeServiceProvider,\n    authBridgeServiceProvider,\n    smartRulesServiceProvider,\n    hookNavigator(Ng1NodesFactoryService),\n    hookTab(Ng1TabsFactoryService),\n    hookActionBar(Ng1ActionBarFactoryService),\n    hookAction(Ng1ActionFactoryService),\n    hookBreadcrumb(Ng1BreadcrumbFactoryService),\n    hookDocs(Ng1DocsFactoryService)\n  ]\n})\nexport class UpgradeModule {}\n","function c8yAlertDecorator($delegate, $rootScope, $injector) {\r\n  'ngInject';\r\n\r\n  $delegate.add = alert => {\r\n    $delegate.addAlert(transformAlert(alert));\r\n  };\r\n\r\n  $rootScope.$on('alert', (evt, alert) => {\r\n    $delegate.addAlert(transformAlert(alert));\r\n  });\r\n\r\n  $rootScope.$on('message', (evt, alert) => {\r\n    $delegate.addAlert(transformAlert(alert));\r\n  });\r\n\r\n  /**\r\n   * Solution based on the: https://stackoverflow.com/questions/40102148/how-to-iterate-over-all-properties-in-objects-prototype-chain.\r\n   * Problem came after switching to ES6, as all prototype properties of classes are non-enumerable.\r\n   */\r\n  const allNames = new Set();\r\n  for (let o = $delegate; o !== Object.prototype; o = Object.getPrototypeOf(o)) {\r\n    for (const name of Object.getOwnPropertyNames(o)) {\r\n      allNames.add(name);\r\n    }\r\n  }\r\n  Array.from(allNames).forEach((property: string) => {\r\n    if (typeof $delegate[property] === 'function') {\r\n      $delegate[property] = $delegate[property].bind($delegate);\r\n    }\r\n  });\r\n\r\n  function transformAlert(alert: any) {\r\n    const newAlert: any = { ...alert };\r\n    if (alert.onClose) {\r\n      newAlert.onClose = () => {\r\n        $injector.invoke(alert.onClose);\r\n      };\r\n    }\r\n    if (alert.onDetail) {\r\n      newAlert.onDetail = () => {\r\n        $injector.invoke(alert.onDetail);\r\n      };\r\n    }\r\n    return newAlert;\r\n  }\r\n\r\n  return $delegate;\r\n}\r\n\r\nexport { c8yAlertDecorator };\r\n","import { downgradeComponent } from '@angular/upgrade/static';\nimport {\n  BootstrapComponent,\n  DataGridComponent,\n  UserTotpRevokeComponent,\n  LoadingComponent,\n  HighlightComponent,\n  EmptyStateComponent,\n  PasswordInputComponent\n} from '@c8y/ngx-components';\nimport { AppLogsAutoRefreshComponent } from '@c8y/ngx-components/app-logs';\nimport { RangeDisplayComponent } from '@c8y/ngx-components';\nimport { HelpComponent } from '@c8y/ngx-components';\nimport { DatapointSelectionListComponent } from '@c8y/ngx-components/datapoint-selector';\nimport { PaginationComponent } from 'ngx-bootstrap/pagination';\nimport { RolesAssetTreeComponent } from '@c8y/ngx-components/user-roles';\nimport { PlatformConfigurationFormComponent } from '@c8y/ngx-components/platform-configuration';\n\nexport const bootstrapComponentDowngradedComponent = downgradeComponent({\n  component: BootstrapComponent\n});\nexport const userTotpComponentDowngradedComponent = downgradeComponent({\n  component: UserTotpRevokeComponent\n});\nexport const appLogsAutoRefreshComponentDowngradedComponent = downgradeComponent({\n  component: AppLogsAutoRefreshComponent\n});\nexport const dataGridComponentDowngradedComponent = downgradeComponent({\n  component: DataGridComponent\n});\nexport const loadingComponentDowngradedComponent = downgradeComponent({\n  component: LoadingComponent\n});\nexport const rangeDisplayComponentDowngradedComponent = downgradeComponent({\n  component: RangeDisplayComponent\n});\nexport const helpComponentDowngradedComponent = downgradeComponent({ component: HelpComponent });\nexport const highlightComponentDowngradedComponent = downgradeComponent({\n  component: HighlightComponent,\n  inputs: ['pattern', 'text']\n});\nexport const emptyStateComponentDowngradedComponent = downgradeComponent({\n  component: EmptyStateComponent\n});\nexport const datapointSelectionListComponentDowngradedComponent = downgradeComponent({\n  component: DatapointSelectionListComponent\n});\n\nexport const paginationComponentDowngradedComponent = downgradeComponent({\n  component: PaginationComponent\n});\nexport const rolesAssetTreeComponentDowngradedComponent = downgradeComponent({\n  component: RolesAssetTreeComponent\n});\nexport const passwordInputComponentDowngradedComponent = downgradeComponent({\n  component: PasswordInputComponent\n});\nexport const platformConfigurationFormDowngradedComponent = downgradeComponent({\n  component: PlatformConfigurationFormComponent\n});\n","import { Injectable, Inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { HOOK_PATTERN_MESSAGES } from '@c8y/ngx-components';\n\n@Injectable()\nexport class ServerMessagesService {\n  MESSAGE_PATTERNS: any;\n  constructor(private translateService: TranslateService, @Inject(HOOK_PATTERN_MESSAGES) patterns) {\n    this.MESSAGE_PATTERNS = patterns;\n  }\n\n  translate(s: string) {\n    return this.translateService.instant(s);\n  }\n}\n","import { downgradeInjectable } from '@angular/upgrade/static';\nimport {\n  AlertService,\n  AppStateService,\n  AssetLinkPipe,\n  CachedLocaleDictionaryService,\n  DocsService,\n  FilesService,\n  GainsightService,\n  GlobalConfigService,\n  HeaderService,\n  ModalService,\n  PasswordService,\n  PropertyValueTransformService,\n  ServiceRegistry,\n  UserMenuService\n} from '@c8y/ngx-components';\nimport { ApiService } from '@c8y/ngx-components/api';\nimport { DeviceGridService } from '@c8y/ngx-components/device-grid';\nimport { DeviceTypeDetailEditedService } from '@c8y/ngx-components/device-protocols';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AbsoluteDateService } from '../absolute-date.service';\nimport { AuthBridgeService } from '../auth-bridge.service';\nimport { BridgeService } from '../bridge.service';\nimport { ServerMessagesService } from './serverMessages.service';\nimport { DatapointSelectorService } from '@c8y/ngx-components/datapoint-selector';\n\nexport const absoluteDateServiceDowngradedInjectable = downgradeInjectable(AbsoluteDateService);\nexport const bridgeServiceDowngradedInjectable = downgradeInjectable(BridgeService);\nexport const authBridgeServiceDowngradedInjectable = downgradeInjectable(AuthBridgeService);\nexport const appStateServiceDowngradedInjectable = downgradeInjectable(AppStateService);\nexport const headerServiceDowngradedInjectable = downgradeInjectable(HeaderService);\nexport const alertsServiceDowngradedInjectable = downgradeInjectable(AlertService);\nexport const userMenuServiceDowngradedInjectable = downgradeInjectable(UserMenuService);\nexport const apiServiceDowngradedInjectable = downgradeInjectable(ApiService);\nexport const docsServiceDowngradedInjectable = downgradeInjectable(DocsService);\nexport const passwordServiceDowngradedInjectable = downgradeInjectable(PasswordService);\nexport const translateServiceDowngradedInjectable = downgradeInjectable(TranslateService);\nexport const cachedLocaleDictionaryServiceDowngradedInjectable = downgradeInjectable(\n  CachedLocaleDictionaryService\n);\nexport const globalConfigServiceDowngradedInjectable = downgradeInjectable(GlobalConfigService);\nexport const serverMessagesServiceDowngradedInjectable = downgradeInjectable(ServerMessagesService);\nexport const modalServiceDowngradedInjectable = downgradeInjectable(ModalService);\nexport const gainsightServiceDowngradedInjectable = downgradeInjectable(GainsightService);\nexport const filesServiceDowngradedInjectable = downgradeInjectable(FilesService);\nexport const deviceTypeDetailEditedServiceDowngradedInjectable = downgradeInjectable(\n  DeviceTypeDetailEditedService\n);\nexport const deviceGridServiceDowngradedInjectable = downgradeInjectable(DeviceGridService);\nexport const serviceRegistryInjectable = downgradeInjectable(ServiceRegistry);\nexport const assetLinkPipeDowngradedInjectable = downgradeInjectable(AssetLinkPipe);\nexport const propertyValueTransformServiceDowngradedInjectable = downgradeInjectable(\n  PropertyValueTransformService\n);\nexport const datapointSelectorServiceDowngradedInjectable =\n  downgradeInjectable(DatapointSelectorService);\n","import * as angular from 'angular';\n\nfunction gettextCatalogDecorator($delegate, $interpolate, c8yTranslate) {\n  'ngInject';\n\n  const gettextCatalog = $delegate;\n  const originalGetString = angular.bind(gettextCatalog, gettextCatalog.getString);\n\n  function newGetString(input, scope, context) {\n    if (typeof input === 'string') {\n      const translatedString = originalGetString(input, scope, context);\n      const interpolatedString = scope ? $interpolate(input)(scope) : input;\n\n      let stringToReturn = translatedString;\n\n      if (translatedString && translatedString === interpolatedString) {\n        const translatedServerMessage = c8yTranslate.instant(interpolatedString);\n        stringToReturn = translatedServerMessage;\n      }\n\n      return stringToReturn;\n    }\n\n    return input;\n  }\n\n  gettextCatalog.getString = newGetString;\n\n  return gettextCatalog;\n}\n\nexport { gettextCatalogDecorator };\n","function groupTypesHierarchyNavigatorDecorator($delegate, $q) {\n  'ngInject';\n  $delegate.loadAll = () => $q.when();\n  $delegate.addGroupNavigation = () => $q.when();\n  return $delegate;\n}\n\nexport { groupTypesHierarchyNavigatorDecorator };\n","function c8yNg1HttpInterceptor($q, c8yLoadingIndicator, c8yApiService) {\r\n  'ngInject';\r\n\r\n  function request(config) {\r\n    const { url, method } = config;\r\n    c8yApiService.onStart({ url, method, options: config });\r\n    return config;\r\n  }\r\n\r\n  function requestError(rejection) {\r\n    finishRequest(rejection);\r\n    return $q.reject(rejection);\r\n  }\r\n\r\n  function response(res) {\r\n    finishRequest(res);\r\n    return res;\r\n  }\r\n\r\n  function responseError(rejection) {\r\n    finishRequest(rejection);\r\n    c8yLoadingIndicator.responseError(rejection);\r\n    return $q.reject(rejection);\r\n  }\r\n\r\n  function finishRequest(res) {\r\n    const { url, method } = res.config;\r\n    c8yApiService.onFinish({\r\n      url,\r\n      method,\r\n      response: res,\r\n      options: res.config\r\n    });\r\n  }\r\n\r\n  return {\r\n    request,\r\n    requestError,\r\n    response,\r\n    responseError\r\n  };\r\n}\r\n\r\nexport { c8yNg1HttpInterceptor };\r\n","import { NavigatorNodeRoot, NavigatorNode } from '@c8y/ngx-components';\nimport { assign } from 'lodash-es';\n\nexport class NavigatorNodeRootLegacy extends NavigatorNodeRoot {\n  addRoot(nodeData): NavigatorNode {\n    let duplicate;\n    if (nodeData.path === '') {\n      nodeData.path = '/';\n    }\n    nodeData.label = nodeData.name;\n    if (typeof nodeData.parent === 'object') {\n      nodeData.parent.label = nodeData.parent.name;\n    }\n\n    if (nodeData.preventDuplicates) {\n      duplicate = this.find(({ path, parents, label }) => {\n        return (\n          path === nodeData.path &&\n          label === nodeData.label &&\n          parents.some(p => p.label === nodeData.parent)\n        );\n      });\n      if (duplicate) {\n        duplicate.routerLinkExact = false;\n      }\n    }\n\n    return duplicate || super.addRoot(nodeData);\n  }\n\n  createNode(node) {\n    const newNode = super.createNode(node);\n    const update = newNode.update.bind(newNode);\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\n    const root = this;\n    return Object.defineProperties(\n      assign(newNode, {\n        realName: (newNode as any).name || newNode.label,\n        _parent: true, // just use it to detect if it has been deleted\n        update(data) {\n          if (this._parent === undefined) {\n            // _parent was deleted somene instead to put this in root\n            root.addRoot(this);\n            // put it back so it can be deleted again\n            this._parent = true;\n          }\n          update(data);\n        },\n        addChild(nodeChild) {\n          this.add(root.createNode(nodeChild));\n        }\n      }),\n      {\n        label: {\n          get() {\n            return this.realName || '';\n          },\n          set(name) {\n            this.realName = name;\n          }\n        },\n        name: {\n          get() {\n            return this.realName || '';\n          },\n          set(name) {\n            this.realName = name;\n          }\n        },\n        show: {\n          get() {\n            return !this.hidden;\n          },\n          set(show) {\n            this.hidden = !show;\n          },\n          configurable: true\n        }\n      }\n    );\n  }\n}\n","import { NavigatorNode } from '@c8y/ngx-components';\nimport { Observable, Subject, defer, of } from 'rxjs';\nimport { merge } from 'rxjs/operators';\nimport { pick, map, property, some, every } from 'lodash-es';\nimport { NavigatorNodeRootLegacy } from './navigator-node-root-legacy';\n\n// Just to hook into the bridge service\nexport function c8yNavigatorProvider() {\n  const root = new NavigatorNodeRootLegacy();\n  const rootNodesSubject: Subject<NavigatorNode[]> = new Subject();\n  const conditionalNodes = [];\n  const rootNodes$: Observable<NavigatorNode[]> = rootNodesSubject.pipe(\n    merge(defer(() => of(root.children)))\n  );\n\n  function addNavigation(nodes) {\n    const nodeList = Array.isArray(nodes) ? nodes : [nodes];\n    nodeList.forEach(node => {\n      if (isConditional(node)) {\n        node.hidden = undefined;\n        conditionalNodes.push(node);\n      }\n      node.navNode = root.addRoot(node);\n    });\n    rootNodesSubject.next(root.children);\n  }\n\n  function removeNavigation(node) {\n    const found = root.find(n => n === node);\n    if (found) {\n      found.parents.forEach(p => p.remove(found));\n      rootNodesSubject.next(root.children);\n    }\n  }\n\n  function findNode(node) {\n    return root.find(node);\n  }\n\n  function isConditional(node) {\n    return node.showIf || node.showIfPermissions || node.showIfContainsVisibleViews;\n  }\n\n  function $get($q, $injector) {\n    'ngInject';\n\n    // This avoids the circular dependency\n    setTimeout(() => conditionalNodes.forEach(processShowIf));\n\n    function processShowIf(node) {\n      const c8yUiUtil = $injector.get('c8yUiUtil');\n      const visibilityPromises = [];\n      const { showIf, showIfPermissions, showIfContainsVisibleViews } = node;\n\n      if (showIf) {\n        visibilityPromises.push($injector.invoke(showIf));\n      }\n      if (showIfContainsVisibleViews) {\n        visibilityPromises.push(viewsConditionalVisibility(node));\n      }\n\n      c8yUiUtil\n        .configureVisibility(\n          {\n            showIf: () => $q.all(visibilityPromises).then(every),\n            showIfPermissions\n          },\n          'visible'\n        )\n        .then(({ visible }) => {\n          if (visible) {\n            node.navNode.update({\n              hidden: false,\n              showIf: null,\n              showIfPermission: null,\n              showIfContainsVisibleViews: null\n            });\n          } else {\n            node.navNode.update({\n              hidden: true\n            });\n          }\n        });\n    }\n\n    function viewsConditionalVisibility(node) {\n      const c8yUiUtil = $injector.get('c8yUiUtil');\n      const c8yViews = $injector.get('c8yViews');\n      const views = c8yViews.getByPath(node.path);\n      return $q\n        .all(\n          map(views, view =>\n            c8yUiUtil\n              .configureVisibility(pick(view, ['showIf', 'showIfPermissions']), 'show', false)\n              .then(property('show'))\n          )\n        )\n        .then(some);\n    }\n\n    return {\n      rootNodes() {\n        return root.children;\n      },\n      findNode,\n      addNavigation,\n      removeNavigation,\n      rootNodes$\n    };\n  }\n\n  return {\n    $get,\n    addNavigation,\n    removeNavigation\n  };\n}\n","const rootComponent = {\n  template: `\n  <c8y-bootstrap>\n    <div id=\"c8y-legacy-view\">\n      <div ng-view ng-if=\"vm.widthSet && vm.authState.hasAuth\"></div>\n    </div>\n  </c8y-bootstrap>`,\n  controller: c8yUiRootController,\n  controllerAs: 'vm'\n};\n\nfunction c8yUiRootController(\n  $rootScope,\n  $timeout,\n  c8yBase,\n  c8yNavigator,\n  c8yApplication,\n  c8yHeaderService\n) {\n  'ngInject';\n  // eslint-disable-next-line @typescript-eslint/no-this-alias\n  const vm = this;\n\n  Object.assign(vm, {\n    $onInit,\n    navOpen: false\n  });\n\n  ////////////\n\n  function $onInit() {\n    c8yHeaderService\n      .map(states => states.nav.open)\n      .subscribe(isOpen => {\n        vm.navOpen = isOpen;\n      });\n    c8yHeaderService.configNavigator({ canToggle: true });\n    $rootScope.$on('authStateChange', onAuthStateChange);\n    vm.rootNodes = c8yNavigator.rootNodes;\n    c8yApplication.currentAppCached().then(onAppInfo);\n    vm.navHiddenOnStartup = c8yBase.appOption('hide_navigator');\n    checkReady();\n  }\n\n  function onAuthStateChange(evt, data) {\n    vm.authState = data;\n  }\n\n  function onAppInfo() {\n    vm.tabsHorizontal = c8yBase.appOption('tabsHorizontal');\n  }\n\n  function checkReady() {\n    const element = document.querySelector('#c8y-legacy-view');\n    const hasWidth = element && element.clientWidth;\n    if (hasWidth) {\n      vm.widthSet = true;\n    } else {\n      $timeout(checkReady);\n    }\n  }\n}\nexport { rootComponent };\n","import * as angular from 'angular';\n\nfunction c8yTitleDecorator(\n  $q,\n  $delegate,\n  $injector,\n  $rootScope,\n  $location,\n  $templateCache,\n  $compile,\n  c8yHeaderService\n) {\n  'ngInject';\n\n  $delegate.changeTitle = changeTitle;\n  $delegate.setTitleElement = setTitleElement;\n\n  $rootScope.$on('$routeChangeStart', () => {\n    changeTitle({});\n  });\n\n  $rootScope.$on('$routeChangeSuccess', event => {\n    resolveTitle(event);\n  });\n\n  $rootScope.$on('$routeUpdate', event => {\n    resolveTitle(event);\n  });\n\n  function resolveTitle(event: any) {\n    const title = $delegate.get($location.path());\n    if (title) {\n      const titleData = $q.when(title.data ? $injector.invoke(title.data) : {});\n      titleData.then(data => {\n        const { templateUrl } = data;\n        if (templateUrl) {\n          const template = $templateCache.get(templateUrl);\n          setTitleElement($compile(template)(event.targetScope));\n        } else {\n          changeTitle(data);\n        }\n      });\n    }\n  }\n\n  function changeTitle(\n    newTitleSubtitleObjOrPromise,\n    options = { skipTitleTranslation: false, skipSubtitleTranslation: false }\n  ) {\n    $q.when(newTitleSubtitleObjOrPromise).then(newTitleSubtitleObj =>\n      changeTitleInAngular(translate(newTitleSubtitleObj, options))\n    );\n  }\n\n  function translate(\n    { title = '', subtitle = '' },\n    { skipTitleTranslation = false, skipSubtitleTranslation = false }\n  ) {\n    const titleTemplate = skipTitleTranslation ? '{{ title }}' : '{{ title | translate }}';\n    const subtitleTemplate = skipSubtitleTranslation\n      ? '{{ subtitle }}'\n      : '{{ subtitle | translate }}';\n    const template = `\n      <h1 class=\"text-truncate\">${titleTemplate}\n      <small>${subtitleTemplate}</small></h1>\n    `;\n\n    const isolatedScope = $rootScope.$new(true);\n    isolatedScope.title = title;\n    isolatedScope.subtitle = subtitle;\n\n    return $compile(angular.element(template))(isolatedScope)[0];\n  }\n\n  function changeTitleInAngular(domElement) {\n    c8yHeaderService.changeTitle(domElement);\n  }\n\n  function setTitleElement($element) {\n    $element.show();\n    changeTitleInAngular($element[0]);\n  }\n\n  return $delegate;\n}\n\nexport { c8yTitleDecorator };\n","import { NgZone } from '@angular/core';\nimport { downgradeInjectable } from '@angular/upgrade/static';\nimport { QueriesUtil } from '@c8y/client';\nimport * as angular from 'angular';\nimport { c8yAlertDecorator } from './alert.decorator';\nimport {\n  appLogsAutoRefreshComponentDowngradedComponent,\n  bootstrapComponentDowngradedComponent,\n  dataGridComponentDowngradedComponent,\n  datapointSelectionListComponentDowngradedComponent,\n  emptyStateComponentDowngradedComponent,\n  helpComponentDowngradedComponent,\n  highlightComponentDowngradedComponent,\n  loadingComponentDowngradedComponent,\n  paginationComponentDowngradedComponent,\n  passwordInputComponentDowngradedComponent,\n  platformConfigurationFormDowngradedComponent,\n  rangeDisplayComponentDowngradedComponent,\n  rolesAssetTreeComponentDowngradedComponent,\n  userTotpComponentDowngradedComponent\n} from './downgraded.components';\nimport {\n  absoluteDateServiceDowngradedInjectable,\n  alertsServiceDowngradedInjectable,\n  apiServiceDowngradedInjectable,\n  appStateServiceDowngradedInjectable,\n  assetLinkPipeDowngradedInjectable,\n  authBridgeServiceDowngradedInjectable,\n  bridgeServiceDowngradedInjectable,\n  cachedLocaleDictionaryServiceDowngradedInjectable,\n  datapointSelectorServiceDowngradedInjectable,\n  deviceGridServiceDowngradedInjectable,\n  deviceTypeDetailEditedServiceDowngradedInjectable,\n  docsServiceDowngradedInjectable,\n  filesServiceDowngradedInjectable,\n  gainsightServiceDowngradedInjectable,\n  globalConfigServiceDowngradedInjectable,\n  headerServiceDowngradedInjectable,\n  modalServiceDowngradedInjectable,\n  passwordServiceDowngradedInjectable,\n  propertyValueTransformServiceDowngradedInjectable,\n  serverMessagesServiceDowngradedInjectable,\n  serviceRegistryInjectable,\n  translateServiceDowngradedInjectable,\n  userMenuServiceDowngradedInjectable\n} from './downgraded.services';\nimport { gettextCatalogDecorator } from './gettextCatalog.decorator';\nimport { groupTypesHierarchyNavigatorDecorator } from './groupsHierarchyNavigator.decorator';\nimport { c8yNg1HttpInterceptor } from './http.interceptor';\nimport { c8yNavigatorProvider } from './navigator.provider';\nimport { rootComponent } from './root.component';\nimport { c8yTitleDecorator } from './title.decorator';\nimport { c8yViewsProvider } from './views.provider';\n\nconst NAME_UPGRADE = 'c8y.upgrade';\n(window as any).preventNg1Bootstrap = true;\n\nangular\n  .module(NAME_UPGRADE, [])\n  // tslint:disable-next-line:only-arrow-functions\n  .config(function ($httpProvider) {\n    'ngInject';\n\n    const ng1InterceptorIndex = $httpProvider.interceptors.indexOf('c8yLoadingIndicator');\n    if (ng1InterceptorIndex > -1) {\n      $httpProvider.interceptors.splice(ng1InterceptorIndex, 1);\n    }\n    $httpProvider.interceptors.push(c8yNg1HttpInterceptor);\n  })\n  .component('c8yUiRoot', rootComponent)\n  .directive('c8yBootstrap', bootstrapComponentDowngradedComponent)\n  .factory('c8yBridgeService', bridgeServiceDowngradedInjectable)\n  .factory('c8yAuthBridgeService', authBridgeServiceDowngradedInjectable)\n  .factory('c8yAppStateService', appStateServiceDowngradedInjectable)\n  .factory('c8yHeaderService', headerServiceDowngradedInjectable)\n  .factory('c8yUserMenuService', userMenuServiceDowngradedInjectable)\n  // tslint:disable-next-line:only-arrow-functions\n  .service('c8yQueriesUtil', function () {\n    return new QueriesUtil();\n  })\n  .factory('c8yAlert', alertsServiceDowngradedInjectable)\n  .decorator('c8yAlert', c8yAlertDecorator)\n  .decorator('groupTypesHierarchyNavigator', groupTypesHierarchyNavigatorDecorator) // prevents loading the groups\n  .factory('c8yApiService', apiServiceDowngradedInjectable)\n  .factory('c8yDocs', docsServiceDowngradedInjectable)\n  .service('c8yPasswordConfirm', passwordServiceDowngradedInjectable)\n  .service('c8yModalService', modalServiceDowngradedInjectable)\n  .service('c8yGainsightService', gainsightServiceDowngradedInjectable)\n  .service('c8yFilesService', filesServiceDowngradedInjectable)\n  .service('c8yGlobalConfigService', globalConfigServiceDowngradedInjectable)\n  .service('c8yPropertyValueTransformService', propertyValueTransformServiceDowngradedInjectable)\n  .service('c8yDatapointSelectorService', datapointSelectorServiceDowngradedInjectable);\n\nangular\n  .module('c8y.ui')\n  .filter('absoluteDate', absoluteDateServiceDowngradedInjectable)\n  .directive('c8yLoading', loadingComponentDowngradedComponent)\n  .provider('c8yNavigator', c8yNavigatorProvider)\n  .provider('c8yViews', c8yViewsProvider)\n  .directive('c8yUserTotpRevoke', userTotpComponentDowngradedComponent)\n  .directive('c8yAppLogsAutoRefresh', appLogsAutoRefreshComponentDowngradedComponent)\n  .directive('c8yDataGrid', dataGridComponentDowngradedComponent)\n  .directive('c8yRangeDisplay', rangeDisplayComponentDowngradedComponent)\n  .directive('c8yHelp', helpComponentDowngradedComponent)\n  .directive('c8yUiEmptyState', emptyStateComponentDowngradedComponent)\n  .directive('c8yDatapointSelectionList', datapointSelectionListComponentDowngradedComponent)\n  .directive('c8yHighlight', highlightComponentDowngradedComponent)\n  .directive('c8yPasswordInput', passwordInputComponentDowngradedComponent)\n  .directive('pagination', paginationComponentDowngradedComponent)\n  .directive('c8yRolesAssetTreeDowngraded', rolesAssetTreeComponentDowngradedComponent)\n  .directive('c8yPlatformConfigurationForm', platformConfigurationFormDowngradedComponent)\n  .factory('c8yTranslate', translateServiceDowngradedInjectable)\n  .factory('c8yCachedLocaleDictionaryService', cachedLocaleDictionaryServiceDowngradedInjectable)\n  .decorator('gettextCatalog', gettextCatalogDecorator)\n  .factory('c8yServerMessages', serverMessagesServiceDowngradedInjectable)\n  .factory('ngZone', downgradeInjectable(NgZone))\n  .factory('c8yDeviceTypeDetailEdited', deviceTypeDetailEditedServiceDowngradedInjectable)\n  .factory('c8yDeviceGridService', deviceGridServiceDowngradedInjectable)\n  .factory('c8yServiceRegistry', serviceRegistryInjectable)\n  .factory('assetLink', assetLinkPipeDowngradedInjectable);\n\nangular\n  .module('c8y.ui')\n  .decorator('c8yTitle', c8yTitleDecorator)\n  .run([\n    'c8yTitle',\n    function () {\n      // needed to inject c8yTitle with decorator applied to it, to ensure displaying ng1 titles\n    }\n  ]);\n\nexport const ng1ModulesUpgrade = ['app', NAME_UPGRADE];\n","import { UpgradeModule as NgUpgradeModule } from '@angular/upgrade/static';\nimport { ng1ModulesUpgrade } from './ng1';\n\nexport abstract class HybridAppModule {\n  ng1Modules = ng1ModulesUpgrade;\n  protected upgrade: NgUpgradeModule;\n\n  ngDoBootstrap() {\n    (window as any).bootstrap();\n    this.upgrade.bootstrap(document.getElementById('app'), this.ng1Modules, { strictDi: false });\n  }\n}\n","import { EmptyComponent } from '@c8y/ngx-components';\n\nexport const UPGRADE_ROUTES = [{ path: '**', component: EmptyComponent }];\n","import { Injectable, NgZone, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { getActivatedRoute } from '@c8y/ngx-components';\nimport {\n  ContextDashboardService,\n  ContextWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { get } from 'lodash-es';\n\n@Injectable({ providedIn: 'root' })\nexport class DashboardBridgeService {\n  dashboardSvc;\n  compile;\n  dashboardClipboard;\n\n  private ng1Injector: any = inject('$injector' as any);\n  private zone = inject(NgZone);\n  private router = inject(Router);\n  private contextDashboardService = inject(ContextDashboardService, { optional: true });\n\n  constructor() {\n    this.dashboardSvc = this.ng1Injector.get('dashboardSvc');\n    this.compile = this.ng1Injector.get('$compile');\n  }\n\n  get ng1Components() {\n    return this.ng1Injector.get('c8yComponents');\n  }\n\n  async instantiateComponent(widget, element) {\n    const { dashboard, context, child } = widget;\n    if (dashboard) {\n      const transformedChild = await this.dashboardSvc.transformChildWithContext(\n        this.dashboardSvc.forcedContext || context,\n        dashboard,\n        child\n      );\n      if (this.dashboardSvc.forcedContext || dashboard.deviceType || dashboard.updateTarget) {\n        await this.dashboardSvc.updateConfigTargetsWithContext(\n          this.dashboardSvc.forcedContext || context,\n          transformedChild.config\n        );\n      }\n      return this.zone.runOutsideAngular(() =>\n        this.loadTemplate(transformedChild, child, element, context)\n      );\n    } else {\n      return this.loadConfigTemplate(element, widget);\n    }\n  }\n\n  instantiateDeviceSelector(element, widgetConfig: ContextWidgetConfig) {\n    return this.loadConfigTemplate(element, widgetConfig, true);\n  }\n\n  private loadTemplate(transformedChild, child, element, context) {\n    const scope = this.ng1Injector.get('$rootScope').$new(true);\n    scope.child = transformedChild;\n    scope.dashboardContext = context;\n    if (child.widgetComponent) {\n      element.innerHTML = `<c8y-ui-component component-name=\"'${child.widgetComponent}'\" config=\"child.config\" context=\"dashboardContext\"></c8y-ui-component>`;\n    } else if (child.templateUrl) {\n      element.innerHTML = `<ng-include src=\"'${child.templateUrl}'\"></ng-include>`;\n    }\n    this.compile(element)(scope);\n    return scope;\n  }\n\n  private getDashboard() {\n    return getActivatedRoute(this.router).snapshot.data.dashboard;\n  }\n\n  private loadConfigTemplate(\n    element,\n    widgetConfig: ContextWidgetConfig,\n    onlyDeviceSelector = false\n  ) {\n    const { settings } = widgetConfig;\n    const scope = this.ng1Injector.get('$rootScope').$new(true);\n\n    scope.settings = { ...settings, ...settings.ng1 };\n    scope.options = widgetConfig.options;\n    scope.config = widgetConfig;\n    scope.forms = {};\n    scope.rootId = settings.context.id;\n    scope.dashboard = get(widgetConfig, 'settings.dashboardMo');\n\n    let configCmp = '';\n    if (!onlyDeviceSelector) {\n      if (widgetConfig.settings.configComponent) {\n        configCmp = `<c8y-ui-component component-name=\"'${widgetConfig.settings.configComponent}'\" config=\"config\"></c8y-ui-component>`;\n      } else if (widgetConfig.settings.configTemplateUrl) {\n        configCmp = `<ng-include src=\"'${widgetConfig.settings.configTemplateUrl}'\"></ng-include>`;\n      }\n    }\n\n    element.innerHTML = `\n    <ng-form name=\"forms.componentForm\">\n      <div class=\"form-group m-0\"\n        ng-if=\"!settings.noDeviceTarget\"\n        ng-style=\"{height: settings.hideTarget && '0', overflow: 'hidden'}\"\n      >\n      </div>\n      ${configCmp}\n    </ng-form>`;\n\n    scope.$watch('forms.componentForm.$invalid', formStatus => {\n      this.contextDashboardService.formDisabled = formStatus;\n    });\n    this.compile(element)(scope);\n    this.contextDashboardService.formDisabled = scope.forms.componentForm.$invalid;\n\n    return scope;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  OnInit,\n  OnDestroy,\n  Optional\n} from '@angular/core';\nimport { DashboardBridgeService } from './dashboard-bridge.service';\nimport { OnBeforeSave, WidgetsDashboardComponent } from '@c8y/ngx-components';\nimport { debounceTime, merge, Subscription } from 'rxjs';\n\n@Component({\n  selector: 'c8y-widget-legacy',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WidgetComponent implements OnInit, OnDestroy, OnBeforeSave {\n  ng1Scope;\n  config;\n  alerts;\n  private resizeSubscription?: Subscription;\n  private readonly DEBOUNCE_TIME_UNTIL_WIDGET_HAS_SNAPPED = 400;\n\n  constructor(\n    @Optional() private dashboard: WidgetsDashboardComponent,\n    private dashboardBridgeService: DashboardBridgeService,\n    private el: ElementRef\n  ) {}\n\n  onBeforeSave(): boolean {\n    this.ng1Scope.$broadcast('saveWidget');\n    return true;\n  }\n\n  async ngOnInit() {\n    if (this.config) {\n      if (this.config.child) {\n        this.config.child.alerts = this.alerts;\n      }\n      this.ng1Scope = await this.dashboardBridgeService.instantiateComponent(\n        this.config,\n        this.el.nativeElement\n      );\n      if (this.dashboard) {\n        this.resizeSubscription = merge(this.dashboard.onChangeDashboard, this.dashboard.onResize)\n          .pipe(debounceTime(this.DEBOUNCE_TIME_UNTIL_WIDGET_HAS_SNAPPED))\n          .subscribe(() => {\n            this.ng1Scope.$broadcast('dashboardResize');\n          });\n      }\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (this.ng1Scope) {\n      this.ng1Scope.$destroy();\n    }\n    if (this.resizeSubscription) {\n      this.resizeSubscription.unsubscribe();\n    }\n  }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, OnInit, OnDestroy } from '@angular/core';\nimport { DashboardBridgeService } from './dashboard-bridge.service';\n\n@Component({\n  selector: 'c8y-device-selector-legacy',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LegacyDeviceSelectorComponent implements OnInit, OnDestroy {\n  ng1Scope;\n  config;\n\n  constructor(\n    private dashboardBridgeService: DashboardBridgeService,\n    private el: ElementRef\n  ) {}\n\n  async ngOnInit() {\n    this.ng1Scope = this.dashboardBridgeService.instantiateDeviceSelector(\n      this.el.nativeElement,\n      this.config\n    );\n  }\n\n  ngOnDestroy(): void {\n    if (this.ng1Scope) {\n      this.ng1Scope.$destroy();\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport {\n  DynamicComponentDefinition,\n  DynamicDatapointsResolver,\n  DynamicManagedObjectResolver\n} from '@c8y/ngx-components';\nimport { DashboardBridgeService } from './dashboard-bridge.service';\nimport { WidgetComponent } from './widget.component';\nimport { LegacyDeviceSelectorComponent } from './device-selector.component';\nimport { of, Observable } from 'rxjs';\nimport { shareReplay, switchMap, take } from 'rxjs/operators';\n\n@Injectable()\nexport class Ng1ComponentFactoryService {\n  private components$: Observable<DynamicComponentDefinition[]>;\n  constructor(private bridge: DashboardBridgeService) {\n    this.components$ = of(1).pipe(\n      switchMap(() => this.getComponents()),\n      shareReplay(1),\n      take(1)\n    );\n  }\n\n  get() {\n    return this.components$;\n  }\n\n  private async getComponents(): Promise<DynamicComponentDefinition[]> {\n    const ng1Components = await this.bridge.ng1Components.list();\n    const components: DynamicComponentDefinition[] = ng1Components.map(cmp => {\n      const resolve = {};\n      if (cmp.options?.datapointAttributes && Array.isArray(cmp.options?.datapointAttributes)) {\n        cmp.options?.datapointAttributes.forEach(\n          attribute => (resolve[attribute] = DynamicDatapointsResolver as any)\n        );\n      }\n      if (\n        cmp.options?.managedObjectAttributes &&\n        Array.isArray(cmp.options?.managedObjectAttributes)\n      ) {\n        cmp.options?.managedObjectAttributes.forEach(\n          attribute => (resolve[attribute] = DynamicManagedObjectResolver as any)\n        );\n      }\n      const data = {\n        settings: {\n          ...cmp.options,\n          configTemplateUrl: cmp.configTemplateUrl,\n          widgetComponent: cmp.widgetComponent,\n          configComponent: cmp.configComponent,\n          transformConfigWithContext:\n            cmp.transformConfigWithContext || cmp.componentTransformConfigWithContext,\n          upgrade: true\n        }\n      } as any;\n      data.settings.templateUrl = cmp.templateUrl; // workaround as in object it creates build error\n      data.displaySettings = cmp.displaySettings;\n\n      return {\n        id: cmp.name,\n        label: cmp.nameDisplay || cmp.name,\n        description: cmp.description,\n        component: WidgetComponent,\n        configComponent: WidgetComponent,\n        previewImage: cmp.previewImage,\n        errorStrategy: cmp.errorStrategy,\n        resolve,\n        data\n      } as DynamicComponentDefinition;\n    });\n\n    // add the device selector legacy component\n    components.push({\n      id: 'device.selector.legacy',\n      label: 'Device selector',\n      description: '',\n      data: { settings: { noNewWidgets: true, upgrade: true } },\n      component: LegacyDeviceSelectorComponent\n    });\n\n    return components;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { Ng1ComponentFactoryService } from './component.factory';\nimport { WidgetComponent } from './widget.component';\nimport { LegacyDeviceSelectorComponent } from './device-selector.component';\nimport { C8yTranslateModule, hookComponent } from '@c8y/ngx-components';\nimport { AssetSelectorModule } from '@c8y/ngx-components/assets-navigator';\n\n@NgModule({\n  declarations: [LegacyDeviceSelectorComponent, WidgetComponent],\n  imports: [CommonModule, C8yTranslateModule, AssetSelectorModule],\n  providers: [hookComponent(Ng1ComponentFactoryService)]\n})\nexport class DashboardUpgradeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map","i1.BridgeService","merge","debounceTime","i1","i2.DashboardBridgeService","i1.DashboardBridgeService"],"mappings":"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"}