{"version":3,"file":"volo-abp.ng.theme.lepton-extensions.mjs","sources":["../../../../packages/theme-lepton/extensions/src/lib/menu-search/menu-search-limit.token.ts","../../../../packages/theme-lepton/extensions/src/lib/menu-search/menu-search.component.ts","../../../../packages/theme-lepton/extensions/src/lib/menu-search/menu-search.provider.ts","../../../../packages/theme-lepton/extensions/src/lib/menu-search/menu-search.module.ts","../../../../packages/theme-lepton/extensions/src/lib/theme-lepton-extensions.module.ts","../../../../packages/theme-lepton/extensions/src/volo-abp.ng.theme.lepton-extensions.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const MENU_SEARCH_LIMIT = new InjectionToken<number>('MENU_SEARCH_LIMIT');\r\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { BehaviorSubject, pipe } from 'rxjs';\r\nimport { createTreeNodeFilterCreator, LocalizationService } from '@abp/ng.core';\r\nimport { RoutesComponent } from '@volo/abp.ng.theme.lepton';\r\nimport { MENU_SEARCH_LIMIT } from './menu-search-limit.token';\r\n\r\n@Component({\r\n  selector: 'abp-menu-search',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  template: `\r\n    <div class=\"menu-search px-3\">\r\n      <input class=\"menu-search-input\" name=\"menu-search\" autocomplete=\"off\" [(ngModel)]=\"search\" />\r\n      <i class=\"fas fa-search menu-search-icon\"></i>\r\n      <div class=\"menu-search-underline\"></div>\r\n    </div>\r\n  `,\r\n  styles: [\r\n    `\r\n      :host {\r\n        color: var(--sidebar-text);\r\n      }\r\n    `,\r\n    `\r\n      .menu-search {\r\n        border-top: 1px solid transparent;\r\n        padding: 0.625rem 0;\r\n      }\r\n    `,\r\n    `\r\n      .menu-search-input {\r\n        background: transparent;\r\n        border: 0;\r\n        box-shadow: none;\r\n        color: inherit;\r\n        padding: 0.25rem 1.25rem 0.25rem 0;\r\n        margin: 0;\r\n        outline: 0 !important;\r\n        width: 100%;\r\n      }\r\n    `,\r\n    `\r\n      .menu-search-icon {\r\n        opacity: 0.5;\r\n        position: absolute;\r\n        right: 1.25rem;\r\n        top: 1.125rem;\r\n      }\r\n    `,\r\n    `\r\n      .menu-search-underline {\r\n        height: 1px;\r\n        background: currentColor;\r\n        opacity: 0.4;\r\n      }\r\n    `,\r\n  ],\r\n  imports: [FormsModule],\r\n})\r\nexport class MenuSearchComponent {\r\n  parent = inject(RoutesComponent);\r\n  localization = inject(LocalizationService);\r\n  limit = inject<number>(MENU_SEARCH_LIMIT);\r\n\r\n  private search$ = new BehaviorSubject('');\r\n\r\n  get search() {\r\n    return this.search$.value;\r\n  }\r\n\r\n  set search(value: string) {\r\n    this.search$.next(value);\r\n  }\r\n\r\n  constructor() {\r\n    const localize = this.localization.instant.bind(this.localization);\r\n    const createTreeNodeFilter = createTreeNodeFilterCreator('name', localize);\r\n\r\n    this.parent.filterOp = pipe(\r\n      switchMap(routes =>\r\n        this.search$.pipe(\r\n          map(search =>\r\n            search && search.length > 1\r\n              ? createTreeNodeFilter(search)(routes).slice(0, this.limit)\r\n              : routes,\r\n          ),\r\n        ),\r\n      ),\r\n    );\r\n  }\r\n}\r\n","import { makeEnvironmentProviders } from '@angular/core';\r\nimport { MENU_SEARCH_LIMIT } from './menu-search-limit.token';\r\nimport { MenuSearchOptions } from './menu-search';\r\n\r\nexport function provideMenuSearch(options = {} as MenuSearchOptions) {\r\n  return makeEnvironmentProviders([\r\n    {\r\n      provide: MENU_SEARCH_LIMIT,\r\n      useValue: options.limit || Infinity,\r\n    },\r\n  ]);\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MenuSearchOptions } from './menu-search';\r\nimport { MenuSearchComponent } from './menu-search.component';\r\nimport { provideMenuSearch } from './menu-search.provider';\r\n\r\n@NgModule({\r\n  imports: [FormsModule, MenuSearchComponent],\r\n  exports: [MenuSearchComponent],\r\n})\r\nexport class MenuSearchModule {\r\n  /**\r\n   * @deprecated forRoot method is deprecated, use `provideMenuSearch` *function* for config settings.\r\n   */\r\n  static forRoot(options = {} as MenuSearchOptions): ModuleWithProviders<MenuSearchModule> {\r\n    return {\r\n      ngModule: MenuSearchModule,\r\n      providers: [provideMenuSearch(options)],\r\n    };\r\n  }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { MenuSearchOptions } from './menu-search/menu-search';\r\nimport { MenuSearchModule } from './menu-search/menu-search.module';\r\nimport { provideMenuSearch } from './menu-search/menu-search.provider';\r\n\r\nexport interface ThemeLeptonExtensionOptions {\r\n  menuSearch: MenuSearchOptions;\r\n}\r\n\r\n@NgModule({\r\n  exports: [MenuSearchModule],\r\n  imports: [MenuSearchModule],\r\n})\r\nexport class ThemeLeptonExtensionsModule {\r\n  /**\r\n   * @deprecated forRoot method is deprecated, use `provideMenuSearch` *function* for config settings.\r\n   */\r\n  static forRoot(\r\n    options = {} as ThemeLeptonExtensionOptions,\r\n  ): ModuleWithProviders<ThemeLeptonExtensionsModule> {\r\n    return {\r\n      ngModule: ThemeLeptonExtensionsModule,\r\n      providers: [provideMenuSearch(options.menuSearch)],\r\n    };\r\n  }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}