{"version":3,"file":"edsis-component-icon.mjs","sources":["../../../library/component/icon/material-symbols.service.ts","../../../library/component/icon/icon.component.ts","../../../library/component/icon/edsis-component-icon.ts"],"sourcesContent":["import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { PLATFORM_ID, Service, inject } from '@angular/core';\n\nexport const MATERIAL_SYMBOLS_FONT_ATTR = 'data-icon-font';\nexport const MATERIAL_SYMBOLS_FONT_ID = 'material-symbols';\n\n/**\n * Rentang penuh sumbu variabel (opsz 20..48, wght 100..700, FILL 0..1,\n * GRAD -50..200) supaya preset library (wght 300, GRAD 200, opsz 48) dan\n * override per-ikon tersedia tanpa memuat stylesheet tambahan.\n */\nconst MATERIAL_SYMBOLS_AXES = 'opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200';\n\n/**\n * Satu stylesheet memuat dua family: Rounded sebagai default dan Sharp\n * untuk theme appearance `rail` (dipilih via `--icon-font-family`).\n */\nexport const MATERIAL_SYMBOLS_FONT_HREF =\n  'https://fonts.googleapis.com/css2' +\n  `?family=Material+Symbols+Rounded:${MATERIAL_SYMBOLS_AXES}` +\n  `&family=Material+Symbols+Sharp:${MATERIAL_SYMBOLS_AXES}` +\n  '&display=block';\n\n@Service()\nexport class MaterialSymbolsService {\n  private readonly documentRef = inject(DOCUMENT, { optional: true });\n  private readonly platformId = inject(PLATFORM_ID);\n\n  ensureLoaded(): void {\n    const head = this.documentRef?.head;\n\n    if (!isPlatformBrowser(this.platformId) || !head) {\n      return;\n    }\n\n    const existing = head.querySelector(\n      `link[${MATERIAL_SYMBOLS_FONT_ATTR}=\"${MATERIAL_SYMBOLS_FONT_ID}\"]`,\n    );\n    if (existing) {\n      return;\n    }\n\n    const link = this.documentRef.createElement('link');\n    link.rel = 'stylesheet';\n    link.href = MATERIAL_SYMBOLS_FONT_HREF;\n    link.setAttribute(MATERIAL_SYMBOLS_FONT_ATTR, MATERIAL_SYMBOLS_FONT_ID);\n    head.appendChild(link);\n  }\n}\n","import { Component, computed, inject, input } from '@angular/core';\nimport { MATERIAL_SYMBOLS_FONT_ID, MaterialSymbolsService } from './material-symbols.service';\n\n/**\n * Preset sumbu Material Symbols milik library: wght 300, GRAD 200\n * (high emphasis), opsz 48. Ukuran render (font-size) sengaja terpisah\n * dari sumbu `opsz` — glyph digambar pada optical size 48 lalu\n * diskalakan ke ukuran tampil.\n */\nexport const ICON_DEFAULT_WEIGHT = 300;\nexport const ICON_DEFAULT_GRADE = 200;\nexport const ICON_DEFAULT_OPTICAL_SIZE = 48;\nexport const ICON_DEFAULT_RENDER_SIZE = 24;\n\n@Component({\n  selector: 'Icon',\n  host: {\n    '[class]': 'classes()',\n    '[style.font-size.px]': 'resolvedSize()',\n    '[style.line-height.px]': 'resolvedSize()',\n    '[style.font-variation-settings]': 'fontVariationSettings()',\n    'aria-hidden': 'true',\n    translate: 'no',\n  },\n  template: `{{ name() }}`,\n})\nexport class IconComponent {\n  private readonly materialSymbols = inject(MaterialSymbolsService);\n\n  readonly name = input('');\n  readonly class = input('', { alias: 'class' });\n  readonly size = input<number | null>(null);\n  readonly fill = input(0);\n  readonly weight = input(ICON_DEFAULT_WEIGHT);\n  readonly grade = input(ICON_DEFAULT_GRADE);\n  readonly opticalSize = input(ICON_DEFAULT_OPTICAL_SIZE);\n\n  protected readonly resolvedSize = computed(() => this.size() ?? ICON_DEFAULT_RENDER_SIZE);\n  protected readonly fontVariationSettings = computed(\n    () =>\n      `\"FILL\" ${this.fill()}, \"wght\" ${this.weight()}, \"GRAD\" ${this.grade()}, \"opsz\" ${this.opticalSize()}`,\n  );\n  protected readonly classes = computed(() => {\n    const base = `${MATERIAL_SYMBOLS_FONT_ID} inline-flex items-center justify-center leading-none select-none`;\n    const extra = this.class();\n    return extra ? `${base} ${extra}` : base;\n  });\n\n  constructor() {\n    this.materialSymbols.ensureLoaded();\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}