ngx-dev-toolbar 1.0.0-beta.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +254 -4
  2. package/eslint.config.cjs +47 -0
  3. package/ng-package.json +7 -0
  4. package/package.json +8 -23
  5. package/project.json +37 -0
  6. package/src/components/button/button.component.scss +49 -0
  7. package/src/components/button/button.component.ts +36 -0
  8. package/src/components/card/card.component.scss +18 -0
  9. package/src/components/card/card.component.ts +30 -0
  10. package/src/components/clickable-card/clickable-card.component.scss +39 -0
  11. package/src/components/clickable-card/clickable-card.component.ts +34 -0
  12. package/src/components/icons/angular-icon.component.ts +35 -0
  13. package/src/components/icons/bug-icon.component.ts +23 -0
  14. package/src/components/icons/code-icon.component.ts +24 -0
  15. package/src/components/icons/database-icon.component.ts +27 -0
  16. package/src/components/icons/discord-icon.component.ts +23 -0
  17. package/src/components/icons/docs-icon.component.ts +23 -0
  18. package/src/components/icons/export-icon.component.ts +23 -0
  19. package/src/components/icons/gauge-icon.component.ts +27 -0
  20. package/src/components/icons/gear-icon.component.ts +27 -0
  21. package/src/components/icons/git-branch-icon.component.ts +27 -0
  22. package/src/components/icons/icon.component.ts +129 -0
  23. package/src/components/icons/icon.models.ts +27 -0
  24. package/src/components/icons/import-icon.component.ts +23 -0
  25. package/src/components/icons/layout-icon.component.ts +24 -0
  26. package/src/components/icons/lightbulb-icon.component.ts +23 -0
  27. package/src/components/icons/lighting-icon.component.ts +24 -0
  28. package/src/components/icons/moon-icon.component.ts +27 -0
  29. package/src/components/icons/network-icon.component.ts +27 -0
  30. package/src/components/icons/puzzle-icon.component.ts +27 -0
  31. package/src/components/icons/refresh-icon.component.ts +27 -0
  32. package/src/components/icons/star-icon.component.ts +27 -0
  33. package/src/components/icons/sun-icon.component.ts +27 -0
  34. package/src/components/icons/terminal-icon.component.ts +27 -0
  35. package/src/components/icons/toggle-left-icon.component.ts +27 -0
  36. package/src/components/icons/translate-icon.component.ts +23 -0
  37. package/src/components/icons/trash-icon.component.ts +23 -0
  38. package/src/components/icons/users-icon.component.ts +27 -0
  39. package/src/components/input/input.component.ts +67 -0
  40. package/src/components/link-button/link-button.component.scss +36 -0
  41. package/src/components/link-button/link-button.component.ts +29 -0
  42. package/src/components/select/select.component.scss +162 -0
  43. package/src/components/select/select.component.ts +127 -0
  44. package/src/components/tool-button/tool-button.component.scss +67 -0
  45. package/src/components/tool-button/tool-button.component.ts +126 -0
  46. package/src/components/toolbar-tool/toolbar-tool.component.scss +9 -0
  47. package/src/components/toolbar-tool/toolbar-tool.component.ts +169 -0
  48. package/src/components/toolbar-tool/toolbar-tool.models.ts +33 -0
  49. package/src/components/window/window.component.scss +95 -0
  50. package/src/components/window/window.component.ts +69 -0
  51. package/src/dev-toolbar-state.service.ts +89 -0
  52. package/src/dev-toolbar.component.scss +22 -0
  53. package/src/dev-toolbar.component.ts +105 -0
  54. package/src/index.ts +10 -0
  55. package/src/models/dev-tools.interface.ts +19 -0
  56. package/src/styles.scss +342 -0
  57. package/src/test-setup.ts +12 -0
  58. package/src/tools/feature-flags-tool/feature-flags-internal.service.ts +96 -0
  59. package/src/tools/feature-flags-tool/feature-flags-tool.component.ts +261 -0
  60. package/src/tools/feature-flags-tool/feature-flags.models.ts +10 -0
  61. package/src/tools/feature-flags-tool/feature-flags.service.ts +28 -0
  62. package/src/tools/home-tool/home-tool.component.scss +67 -0
  63. package/src/tools/home-tool/home-tool.component.ts +197 -0
  64. package/{tools/settings-tool/settings.models.d.ts → src/tools/home-tool/settings.models.ts} +1 -1
  65. package/src/tools/home-tool/settings.service.spec.ts +59 -0
  66. package/src/tools/home-tool/settings.service.ts +21 -0
  67. package/src/tools/language-tool/language-internal.service.ts +51 -0
  68. package/src/tools/language-tool/language-tool.component.scss +7 -0
  69. package/src/tools/language-tool/language-tool.component.ts +71 -0
  70. package/src/tools/language-tool/language.models.ts +4 -0
  71. package/src/tools/language-tool/language.service.ts +26 -0
  72. package/src/utils/storage.service.spec.ts +179 -0
  73. package/src/utils/storage.service.ts +80 -0
  74. package/tsconfig.json +28 -0
  75. package/tsconfig.lib.json +28 -0
  76. package/tsconfig.lib.prod.json +9 -0
  77. package/tsconfig.spec.json +29 -0
  78. package/vite.config.mts +27 -0
  79. package/components/button/button.component.d.ts +0 -12
  80. package/components/icons/angular-icon.component.d.ts +0 -5
  81. package/components/icons/bug-icon.component.d.ts +0 -6
  82. package/components/icons/code-icon.component.d.ts +0 -6
  83. package/components/icons/database-icon.component.d.ts +0 -6
  84. package/components/icons/gauge-icon.component.d.ts +0 -6
  85. package/components/icons/gear-icon.component.d.ts +0 -6
  86. package/components/icons/git-branch-icon.component.d.ts +0 -6
  87. package/components/icons/icon.component.d.ts +0 -9
  88. package/components/icons/icon.models.d.ts +0 -1
  89. package/components/icons/layout-icon.component.d.ts +0 -6
  90. package/components/icons/lighting-icon.component.d.ts +0 -6
  91. package/components/icons/moon-icon.component.d.ts +0 -6
  92. package/components/icons/network-icon.component.d.ts +0 -6
  93. package/components/icons/puzzle-icon.component.d.ts +0 -6
  94. package/components/icons/refresh-icon.component.d.ts +0 -6
  95. package/components/icons/star-icon.component.d.ts +0 -6
  96. package/components/icons/sun-icon.component.d.ts +0 -6
  97. package/components/icons/terminal-icon.component.d.ts +0 -6
  98. package/components/icons/toggle-left-icon.component.d.ts +0 -6
  99. package/components/icons/users-icon.component.d.ts +0 -6
  100. package/components/input/input.component.d.ts +0 -10
  101. package/components/select/select.component.d.ts +0 -14
  102. package/components/tool-button/tool-button.component.d.ts +0 -23
  103. package/components/toolbar-tool/toolbar-tool.component.d.ts +0 -28
  104. package/components/window/window.component.d.ts +0 -16
  105. package/components/window/window.models.d.ts +0 -20
  106. package/dev-toolbar-state.service.d.ts +0 -18
  107. package/dev-toolbar.component.d.ts +0 -17
  108. package/fesm2022/ngx-dev-toolbar.mjs +0 -2073
  109. package/fesm2022/ngx-dev-toolbar.mjs.map +0 -1
  110. package/index.d.ts +0 -3
  111. package/tools/feature-flags-tool/feature-flags-tool.component.d.ts +0 -33
  112. package/tools/feature-flags-tool/feature-flags.models.d.ts +0 -9
  113. package/tools/feature-flags-tool/feature-flags.service.d.ts +0 -35
  114. package/tools/settings-tool/settings-tool.component.d.ts +0 -15
  115. package/tools/settings-tool/settings.service.d.ts +0 -10
  116. package/utils/storage.service.d.ts +0 -9
@@ -1 +0,0 @@
1
- {"version":3,"file":"ngx-dev-toolbar.mjs","sources":["../../../../libs/ngx-dev-toolbar/src/dev-toolbar-state.service.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/angular-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/bug-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/code-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/database-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/gauge-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/gear-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/git-branch-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/layout-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/lighting-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/moon-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/network-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/puzzle-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/refresh-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/star-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/sun-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/terminal-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/toggle-left-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/users-icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/icons/icon.component.ts","../../../../libs/ngx-dev-toolbar/src/components/tool-button/tool-button.component.ts","../../../../libs/ngx-dev-toolbar/src/components/input/input.component.ts","../../../../libs/ngx-dev-toolbar/src/components/select/select.component.ts","../../../../libs/ngx-dev-toolbar/src/components/window/window.component.ts","../../../../libs/ngx-dev-toolbar/src/components/toolbar-tool/toolbar-tool.component.ts","../../../../libs/ngx-dev-toolbar/src/utils/storage.service.ts","../../../../libs/ngx-dev-toolbar/src/tools/feature-flags-tool/feature-flags.service.ts","../../../../libs/ngx-dev-toolbar/src/tools/feature-flags-tool/feature-flags-tool.component.ts","../../../../libs/ngx-dev-toolbar/src/components/button/button.component.ts","../../../../libs/ngx-dev-toolbar/src/tools/settings-tool/settings.service.ts","../../../../libs/ngx-dev-toolbar/src/tools/settings-tool/settings-tool.component.ts","../../../../libs/ngx-dev-toolbar/src/dev-toolbar.component.ts","../../../../libs/ngx-dev-toolbar/src/ngx-dev-toolbar.ts"],"sourcesContent":["import { Injectable, computed, signal } from '@angular/core';\n\ninterface DevToolbarState {\n isHidden: boolean;\n activeToolId: string | null;\n error: string | null;\n theme: 'light' | 'dark';\n delay: number;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DevToolbarStateService {\n // Initial state\n private state = signal<DevToolbarState>({\n isHidden: true,\n activeToolId: null,\n delay: 3000,\n error: null,\n theme: 'dark',\n });\n\n // Selectors\n readonly isVisible = computed(() => !this.state().isHidden);\n readonly isDarkTheme = computed(() => this.state().theme === 'dark');\n readonly activeToolId = computed(() => this.state().activeToolId);\n readonly hasActiveTool = computed(() => this.state().activeToolId !== null);\n readonly error = computed(() => this.state().error);\n readonly theme = computed(() => this.state().theme);\n readonly delay = computed(() => this.state().delay);\n\n // State updates\n setVisibility(isVisible: boolean): void {\n if (isVisible) {\n this.state.update((state) => ({\n ...state,\n isHidden: false,\n }));\n } else {\n if (this.activeToolId() === null) {\n setTimeout(() => {\n this.state.update((state) => ({\n ...state,\n isHidden: true,\n }));\n }, this.state().delay);\n }\n }\n }\n\n setTheme(theme: 'light' | 'dark'): void {\n this.state.update((state) => ({\n ...state,\n theme,\n }));\n }\n\n setActiveTool(toolId: string | null): void {\n this.state.update((state) => ({\n ...state,\n activeToolId: toolId,\n }));\n\n if (toolId === null) {\n this.setVisibility(false);\n } else {\n this.setVisibility(true);\n }\n }\n\n // Public actions\n toggleTool(toolId: string | null): void {\n const currentToolId = this.activeToolId();\n this.setActiveTool(currentToolId === toolId ? null : toolId);\n }\n\n toggleVisibility(): void {\n this.state.update((state) => ({\n ...state,\n isHidden: !state.isHidden,\n }));\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndt-angular-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <defs>\n <linearGradient\n id=\"angular-gradient\"\n x1=\"6\"\n x2=\"18\"\n y1=\"20\"\n y2=\"4\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset=\"0\" stop-color=\"#E40035\" />\n <stop offset=\".24\" stop-color=\"#F60A48\" />\n <stop offset=\".352\" stop-color=\"#F20755\" />\n <stop offset=\".494\" stop-color=\"#DC087D\" />\n <stop offset=\".745\" stop-color=\"#9717E7\" />\n <stop offset=\"1\" stop-color=\"#6C00F5\" />\n </linearGradient>\n </defs>\n <g fill=\"url(#angular-gradient)\">\n <polygon points=\"14.1,2.7 20.1,15.7 20.7,5.8\" />\n <polygon points=\"15.6,16.4 8.4,16.4 7.4,18.6 12,21.2 16.6,18.6\" />\n <polygon points=\"9.6,13.5 14.4,13.5 12,7.7\" />\n <polygon points=\"9.9,2.7 3.3,5.8 3.9,15.7\" />\n </g>\n </svg>\n `,\n})\nexport class AngularIconComponent {}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-bug-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path\n d=\"M207.86,123.18l16.78-21a99.14,99.14,0,0,0-10.07-24.29l-26.7-3a81,81,0,0,0-6.81-6.81l-3-26.71a99.43,99.43,0,0,0-24.3-10l-21,16.77a81.59,81.59,0,0,0-9.64,0l-21-16.78A99.14,99.14,0,0,0,77.91,41.43l-3,26.7a81,81,0,0,0-6.81,6.81l-26.71,3a99.43,99.43,0,0,0-10,24.3l16.77,21a81.59,81.59,0,0,0,0,9.64l-16.78,21a99.14,99.14,0,0,0,10.07,24.29l26.7,3a81,81,0,0,0,6.81,6.81l3,26.71a99.43,99.43,0,0,0,24.3,10l21-16.77a81.59,81.59,0,0,0,9.64,0l21,16.78a99.14,99.14,0,0,0,24.29-10.07l3-26.7a81,81,0,0,0,6.81-6.81l26.71-3a99.43,99.43,0,0,0,10-24.3l-16.77-21A81.59,81.59,0,0,0,207.86,123.18ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z\"\n opacity=\"0.2\"\n ></path>\n <path\n d=\"M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.6,107.6,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.29,107.29,0,0,0-26.25-10.86,8,8,0,0,0-7.06,1.48L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.6,107.6,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8.06,8.06,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8.06,8.06,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z\"\n ></path>\n </svg>\n `,\n})\nexport class BugIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-code-icon',\n standalone: true,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path d=\"M240,128l-48,40H64L16,128,64,88H192Z\" opacity=\"0.2\"></path>\n <path\n d=\"M69.12,94.15,28.5,128l40.62,33.85a8,8,0,1,1-10.24,12.29l-48-40a8,8,0,0,1,0-12.29l48-40a8,8,0,0,1,10.24,12.3Zm176,27.7-48-40a8,8,0,1,0-10.24,12.3L227.5,128l-40.62,33.85a8,8,0,1,0,10.24,12.29l48-40a8,8,0,0,0,0-12.29ZM162.73,32.48a8,8,0,0,0-10.25,4.79l-64,176a8,8,0,0,0,4.79,10.26A8.14,8.14,0,0,0,96,224a8,8,0,0,0,7.52-5.27l64-176A8,8,0,0,0,162.73,32.48Z\"\n ></path>\n </svg>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CodeIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-database-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path\n d=\"M216,80c0,26.51-39.4,48-88,48S40,106.51,40,80s39.4-48,88-48S216,53.49,216,80Z\"\n opacity=\"0.2\"\n ></path>\n <path\n d=\"M128,24C74.17,24,32,48.6,32,80v96c0,31.4,42.17,56,96,56s96-24.6,96-56V80C224,48.6,181.83,24,128,24Zm80,104c0,9.62-7.88,19.43-21.61,26.92C170.93,163.35,150.19,168,128,168s-42.93-4.65-58.39-13.08C55.88,147.43,48,137.62,48,128V111.36c17.06,15,46.23,24.64,80,24.64s62.94-9.68,80-24.64ZM69.61,53.08C85.07,44.65,105.81,40,128,40s42.93,4.65,58.39,13.08C200.12,60.57,208,70.38,208,80s-7.88,19.43-21.61,26.92C170.93,115.35,150.19,120,128,120s-42.93-4.65-58.39-13.08C55.88,99.43,48,89.62,48,80S55.88,60.57,69.61,53.08ZM186.39,202.92C170.93,211.35,150.19,216,128,216s-42.93-4.65-58.39-13.08C55.88,195.43,48,185.62,48,176V159.36c17.06,15,46.23,24.64,80,24.64s62.94-9.68,80-24.64V176C208,185.62,200.12,195.43,186.39,202.92Z\"\n ></path>\n </svg>\n `,\n})\nexport class DatabaseIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-gauge-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path\n d=\"M232,152a103.93,103.93,0,0,1-5.9,34.63,8,8,0,0,1-7.57,5.37H37.46a8.05,8.05,0,0,1-7.57-5.41A104.06,104.06,0,0,1,24,151.19C24.44,94,71.73,47.49,129,48A104,104,0,0,1,232,152Z\"\n opacity=\"0.2\"\n ></path>\n <path\n d=\"M114.34,154.34l96-96a8,8,0,0,1,11.32,11.32l-96,96a8,8,0,0,1-11.32-11.32ZM128,88a63.9,63.9,0,0,1,20.44,3.33,8,8,0,1,0,5.11-15.16A80,80,0,0,0,48.49,160.88,8,8,0,0,0,56.43,168c.29,0,.59,0,.89-.05a8,8,0,0,0,7.07-8.83A64.92,64.92,0,0,1,64,152,64.07,64.07,0,0,1,128,88Zm99.74,13a8,8,0,0,0-14.24,7.3,96.27,96.27,0,0,1,5,75.71l-181.1-.07A96.24,96.24,0,0,1,128,56h.88a95,95,0,0,1,42.82,10.5A8,8,0,1,0,179,52.27,110.8,110.8,0,0,0,129,40h-1A112.05,112.05,0,0,0,22.35,189.25,16.07,16.07,0,0,0,37.46,200H218.53a16,16,0,0,0,15.11-10.71,112.35,112.35,0,0,0-5.9-88.3Z\"\n ></path>\n </svg>\n `,\n})\nexport class GaugeIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-gear-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path\n d=\"M207.86,123.18l16.78-21a99.14,99.14,0,0,0-10.07-24.29l-26.7-3a81,81,0,0,0-6.81-6.81l-3-26.71a99.43,99.43,0,0,0-24.3-10l-21,16.77a81.59,81.59,0,0,0-9.64,0l-21-16.78A99.14,99.14,0,0,0,77.91,41.43l-3,26.7a81,81,0,0,0-6.81,6.81l-26.71,3a99.43,99.43,0,0,0-10,24.3l16.77,21a81.59,81.59,0,0,0,0,9.64l-16.78,21a99.14,99.14,0,0,0,10.07,24.29l26.7,3a81,81,0,0,0,6.81,6.81l3,26.71a99.43,99.43,0,0,0,24.3,10l21-16.77a81.59,81.59,0,0,0,9.64,0l21,16.78a99.14,99.14,0,0,0,24.29-10.07l3-26.7a81,81,0,0,0,6.81-6.81l26.71-3a99.43,99.43,0,0,0,10-24.3l-16.77-21A81.59,81.59,0,0,0,207.86,123.18ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z\"\n opacity=\"0.2\"\n ></path>\n <path\n d=\"M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.6,107.6,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.29,107.29,0,0,0-26.25-10.86,8,8,0,0,0-7.06,1.48L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.6,107.6,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8.06,8.06,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8.06,8.06,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z\"\n ></path>\n </svg>\n `,\n})\nexport class GearIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-git-branch-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path\n d=\"M224,64a24,24,0,1,1-24-24A24,24,0,0,1,224,64Z\"\n opacity=\"0.2\"\n ></path>\n <path\n d=\"M232,64a32,32,0,1,0-40,31v17a8,8,0,0,1-8,8H96a23.84,23.84,0,0,0-8,1.38V95a32,32,0,1,0-16,0v66a32,32,0,1,0,16,0V144a8,8,0,0,1,8-8h88a24,24,0,0,0,24-24V95A32.06,32.06,0,0,0,232,64ZM64,64A16,16,0,1,1,80,80,16,16,0,0,1,64,64ZM96,192a16,16,0,1,1-16-16A16,16,0,0,1,96,192ZM200,80a16,16,0,1,1,16-16A16,16,0,0,1,200,80Z\"\n ></path>\n </svg>\n `,\n})\nexport class GitBranchIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-layout-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path d=\"M104,104V208H40a8,8,0,0,1-8-8V104Z\" opacity=\"0.2\"></path>\n <path\n d=\"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,16V96H40V56ZM40,112H96v88H40Zm176,88H112V112H216v88Z\"\n ></path>\n </svg>\n `,\n})\nexport class LayoutIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-lighting-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path d=\"M96,240l16-80L48,136,160,16,144,96l64,24Z\" opacity=\"0.2\"></path>\n <path\n d=\"M215.79,118.17a8,8,0,0,0-5-5.66L153.18,90.9l14.66-73.33a8,8,0,0,0-13.69-7l-112,120a8,8,0,0,0,3,13l57.63,21.61L88.16,238.43a8,8,0,0,0,13.69,7l112-120A8,8,0,0,0,215.79,118.17ZM109.37,214l10.47-52.38a8,8,0,0,0-5-9.06L62,132.71l84.62-90.66L136.16,94.43a8,8,0,0,0,5,9.06l52.8,19.8Z\"\n ></path>\n </svg>\n `,\n})\nexport class LightingIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-moon-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path\n d=\"M224.3,150.3a8.1,8.1,0,0,0-7.8-5.7l-2.2.4A84,84,0,0,1,111,41.6a5.7,5.7,0,0,0,.3-1.8A7.9,7.9,0,0,0,109,33a8.1,8.1,0,0,0-8.1-1.1A104,104,0,1,0,225.4,156.9,8.1,8.1,0,0,0,224.3,150.3Z\"\n opacity=\"0.2\"\n />\n <path\n d=\"M233.5,137.3a12.1,12.1,0,0,0-11.8-8.6,7.9,7.9,0,0,0-1.3.1,80,80,0,0,1-98.2-98.2,12,12,0,0,0-15.6-14A104.2,104.2,0,0,0,32,120c0,57.4,46.6,104,104,104A104.2,104.2,0,0,0,239.4,149.6,12,12,0,0,0,233.5,137.3ZM136,208A88,88,0,0,1,48,120a87.6,87.6,0,0,1,64.8-84.7,96,96,0,0,0,111.9,112A87.6,87.6,0,0,1,136,208Z\"\n />\n </svg>\n `,\n})\nexport class MoonIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-network-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path\n d=\"M152,40V72a8,8,0,0,1-8,8H112a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h32A8,8,0,0,1,152,40ZM80,168H48a8,8,0,0,0-8,8v32a8,8,0,0,0,8,8H80a8,8,0,0,0,8-8V176A8,8,0,0,0,80,168Zm128,0H176a8,8,0,0,0-8,8v32a8,8,0,0,0,8,8h32a8,8,0,0,0,8-8V176A8,8,0,0,0,208,168Z\"\n opacity=\"0.2\"\n ></path>\n <path\n d=\"M232,112H136V88h8a16,16,0,0,0,16-16V40a16,16,0,0,0-16-16H112A16,16,0,0,0,96,40V72a16,16,0,0,0,16,16h8v24H24a8,8,0,0,0,0,16H56v32H48a16,16,0,0,0-16,16v32a16,16,0,0,0,16,16H80a16,16,0,0,0,16-16V176a16,16,0,0,0-16-16H72V128H184v32h-8a16,16,0,0,0-16,16v32a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V176a16,16,0,0,0-16-16h-8V128h32a8,8,0,0,0,0-16ZM112,40h32V72H112ZM80,208H48V176H80Zm128,0H176V176h32Z\"\n ></path>\n </svg>\n `,\n})\nexport class NetworkIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-puzzle-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path\n d=\"M204,168a28,28,0,0,0,12-2.69V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V165.31a28,28,0,1,1,0-50.62V72a8,8,0,0,1,8-8h46.69a28,28,0,1,1,50.61,0H208a8,8,0,0,1,8,8v42.69A28,28,0,1,0,204,168Z\"\n opacity=\"0.2\"\n ></path>\n <path\n d=\"M220.27,158.54a8,8,0,0,0-7.7-.46,20,20,0,1,1,0-36.16A8,8,0,0,0,224,114.69V72a16,16,0,0,0-16-16H171.78a35.36,35.36,0,0,0,.22-4,36.15,36.15,0,0,0-11.36-26.25,36,36,0,0,0-60.55,23.63,36.56,36.56,0,0,0,.14,6.62H64A16,16,0,0,0,48,72v32.22a35.36,35.36,0,0,0-4-.22,36.12,36.12,0,0,0-26.24,11.36,35.7,35.7,0,0,0-9.69,27,36.08,36.08,0,0,0,33.31,33.6,36.56,36.56,0,0,0,6.62-.14V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V165.31A8,8,0,0,0,220.27,158.54ZM208,208H64V165.31a8,8,0,0,0-11.43-7.23,20,20,0,1,1,0-36.16A8,8,0,0,0,64,114.69V72h46.69a8,8,0,0,0,7.23-11.43,20,20,0,1,1,36.16,0A8,8,0,0,0,161.31,72H208v32.23a35.68,35.68,0,0,0-6.62-.14A36,36,0,0,0,204,176a35.36,35.36,0,0,0,4-.22Z\"\n ></path>\n </svg>\n `,\n})\nexport class PuzzleIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-refresh-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path\n d=\"M216,128a88,88,0,1,1-88-88A88,88,0,0,1,216,128Z\"\n opacity=\"0.2\"\n ></path>\n <path\n d=\"M224,48V96a8,8,0,0,1-8,8H168a8,8,0,0,1,0-16h28.69L182.06,73.37a79.56,79.56,0,0,0-56.13-23.43h-.45A79.52,79.52,0,0,0,69.59,72.71,8,8,0,0,1,58.41,61.27a96,96,0,0,1,135,.79L208,76.69V48a8,8,0,0,1,16,0ZM186.41,183.29a80,80,0,0,1-112.47-.66L59.31,168H88a8,8,0,0,0,0-16H40a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0V179.31l14.63,14.63A95.43,95.43,0,0,0,130,222.06h.53a95.36,95.36,0,0,0,67.07-27.33,8,8,0,0,0-11.18-11.44Z\"\n ></path>\n </svg>\n `,\n})\nexport class RefreshIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-star-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path\n d=\"M229.06,108.79l-48.7,42,14.88,62.79a8.4,8.4,0,0,1-12.52,9.17L128,189.09,73.28,222.74a8.4,8.4,0,0,1-12.52-9.17l14.88-62.79-48.7-42A8.46,8.46,0,0,1,31.73,94L95.64,88.8l24.62-59.6a8.36,8.36,0,0,1,15.48,0l24.62,59.6L224.27,94A8.46,8.46,0,0,1,229.06,108.79Z\"\n opacity=\"0.2\"\n ></path>\n <path\n d=\"M239.18,97.26A16.38,16.38,0,0,0,224.92,86l-59-4.76L143.14,26.15a16.36,16.36,0,0,0-30.27,0L90.11,81.23,31.08,86a16.46,16.46,0,0,0-9.37,28.86l45,38.83L53,211.75a16.38,16.38,0,0,0,24.5,17.82L128,198.49l50.53,31.08A16.4,16.4,0,0,0,203,211.75l-13.76-58.07,45-38.83A16.43,16.43,0,0,0,239.18,97.26Zm-15.34,5.47-48.7,42a8,8,0,0,0-2.56,7.91l14.88,62.8a.37.37,0,0,1-.17.48c-.18.14-.23.11-.38,0l-54.72-33.65a8,8,0,0,0-8.38,0L69.09,215.94c-.15.09-.19.12-.38,0a.37.37,0,0,1-.17-.48l14.88-62.8a8,8,0,0,0-2.56-7.91l-48.7-42c-.12-.1-.23-.19-.13-.5s.18-.27.33-.29l63.92-5.16A8,8,0,0,0,103,91.86l24.62-59.61c.08-.17.11-.25.35-.25s.27.08.35.25L153,91.86a8,8,0,0,0,6.75,4.92l63.92,5.16c.15,0,.24,0,.33.29S224,102.63,223.84,102.73Z\"\n ></path>\n </svg>\n `,\n})\nexport class StarIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-sun-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path\n d=\"M128,60a68,68,0,1,0,68,68A68.07,68.07,0,0,0,128,60Z\"\n opacity=\"0.2\"\n />\n <path\n d=\"M128,44a8,8,0,0,0,8-8V16a8,8,0,0,0-16,0V36A8,8,0,0,0,128,44ZM57.31,68.69a8,8,0,0,0,11.32-11.32L54.63,43.37A8,8,0,0,0,43.31,54.69ZM44,128a8,8,0,0,0-8-8H16a8,8,0,0,0,0,16H36A8,8,0,0,0,44,128Zm24.63,59.31-14,14a8,8,0,0,0,11.32,11.32l14-14a8,8,0,0,0-11.32-11.32ZM128,212a8,8,0,0,0-8,8v20a8,8,0,0,0,16,0V220A8,8,0,0,0,128,212Zm70.69-24.69a8,8,0,0,0-11.32,11.32l14,14a8,8,0,0,0,11.32-11.32ZM240,120H220a8,8,0,0,0,0,16h20a8,8,0,0,0,0-16Zm-24.69-62.63-14,14a8,8,0,0,0,11.32,11.32l14-14a8,8,0,0,0-11.32-11.32ZM128,76a52,52,0,1,0,52,52A52.06,52.06,0,0,0,128,76Zm0,88a36,36,0,1,1,36-36A36,36,0,0,1,128,164Z\"\n />\n </svg>\n `,\n})\nexport class SunIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-terminal-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path\n d=\"M224,56V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216A8,8,0,0,1,224,56Z\"\n opacity=\"0.2\"\n ></path>\n <path\n d=\"M128,128a8,8,0,0,1-3,6.25l-40,32a8,8,0,1,1-10-12.5L107.19,128,75,102.25a8,8,0,1,1,10-12.5l40,32A8,8,0,0,1,128,128Zm48,24H136a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Zm56-96V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56ZM216,200V56H40V200H216Z\"\n ></path>\n </svg>\n `,\n})\nexport class TerminalIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-toggle-left-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path\n d=\"M112,128A32,32,0,1,1,80,96,32,32,0,0,1,112,128Z\"\n opacity=\"0.2\"\n ></path>\n <path\n d=\"M176,56H80a72,72,0,0,0,0,144h96a72,72,0,0,0,0-144Zm0,128H80A56,56,0,0,1,80,72h96a56,56,0,0,1,0,112ZM80,88a40,40,0,1,0,40,40A40,40,0,0,0,80,88Zm0,64a24,24,0,1,1,24-24A24,24,0,0,1,80,152Z\"\n ></path>\n </svg>\n `,\n})\nexport class ToggleLeftIconComponent {\n fill = input<string>('#FFFF');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndt-users-icon',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <svg\n [attr.fill]=\"fill()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n >\n <path\n d=\"M224,128a95.76,95.76,0,0,1-31.8,71.37A72,72,0,0,0,128,160a40,40,0,1,0-40-40,40,40,0,0,0,40,40,72,72,0,0,0-64.2,39.37h0A96,96,0,1,1,224,128Z\"\n opacity=\"0.2\"\n ></path>\n <path\n d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24ZM74.08,197.5a64,64,0,0,1,107.84,0,87.83,87.83,0,0,1-107.84,0ZM96,120a32,32,0,1,1,32,32A32,32,0,0,1,96,120Zm97.76,66.41a79.66,79.66,0,0,0-36.06-28.75,48,48,0,1,0-59.4,0,79.66,79.66,0,0,0-36.06,28.75,88,88,0,1,1,131.52,0Z\"\n ></path>\n </svg>\n `,\n})\nexport class UsersIconComponent {\n fill = input<string>('#FFFF');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { DevToolbarStateService } from '../../dev-toolbar-state.service';\nimport { AngularIconComponent } from './angular-icon.component';\nimport { BugIconComponent } from './bug-icon.component';\nimport { CodeIconComponent } from './code-icon.component';\nimport { DatabaseIconComponent } from './database-icon.component';\nimport { GaugeIconComponent } from './gauge-icon.component';\nimport { GearIconComponent } from './gear-icon.component';\nimport { GitBranchIconComponent } from './git-branch-icon.component';\nimport { IconName } from './icon.models';\nimport { LayoutIconComponent } from './layout-icon.component';\nimport { LightingIconComponent } from './lighting-icon.component';\nimport { MoonIconComponent } from './moon-icon.component';\nimport { NetworkIconComponent } from './network-icon.component';\nimport { PuzzleIconComponent } from './puzzle-icon.component';\nimport { RefreshIconComponent } from './refresh-icon.component';\nimport { StarIconComponent } from './star-icon.component';\nimport { SunIconComponent } from './sun-icon.component';\nimport { TerminalIconComponent } from './terminal-icon.component';\nimport { ToggleLeftIconComponent } from './toggle-left-icon.component';\nimport { UsersIconComponent } from './users-icon.component';\n\n@Component({\n selector: 'ndt-icon',\n standalone: true,\n imports: [\n AngularIconComponent,\n BugIconComponent,\n CodeIconComponent,\n DatabaseIconComponent,\n GaugeIconComponent,\n GearIconComponent,\n GitBranchIconComponent,\n LayoutIconComponent,\n LightingIconComponent,\n NetworkIconComponent,\n PuzzleIconComponent,\n RefreshIconComponent,\n StarIconComponent,\n TerminalIconComponent,\n ToggleLeftIconComponent,\n UsersIconComponent,\n SunIconComponent,\n MoonIconComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @switch (name()) {\n @case ('angular') {\n <ndt-angular-icon />\n }\n @case ('bug') {\n <ndt-bug-icon [fill]=\"fill()\" />\n }\n @case ('code') {\n <ndt-code-icon [fill]=\"fill()\" />\n }\n @case ('database') {\n <ndt-database-icon [fill]=\"fill()\" />\n }\n @case ('gauge') {\n <ndt-gauge-icon [fill]=\"fill()\" />\n }\n @case ('gear') {\n <ndt-gear-icon [fill]=\"fill()\" />\n }\n @case ('git-branch') {\n <ndt-git-branch-icon [fill]=\"fill()\" />\n }\n @case ('layout') {\n <ndt-layout-icon [fill]=\"fill()\" />\n }\n @case ('lighting') {\n <ndt-lighting-icon [fill]=\"fill()\" />\n }\n @case ('network') {\n <ndt-network-icon [fill]=\"fill()\" />\n }\n @case ('puzzle') {\n <ndt-puzzle-icon [fill]=\"fill()\" />\n }\n @case ('refresh') {\n <ndt-refresh-icon [fill]=\"fill()\" />\n }\n @case ('star') {\n <ndt-star-icon [fill]=\"fill()\" />\n }\n @case ('terminal') {\n <ndt-terminal-icon [fill]=\"fill()\" />\n }\n @case ('toggle-left') {\n <ndt-toggle-left-icon [fill]=\"fill()\" />\n }\n @case ('user') {\n <ndt-users-icon [fill]=\"fill()\" />\n }\n @case ('sun') {\n <ndt-sun-icon [fill]=\"fill()\" />\n }\n @case ('moon') {\n <ndt-moon-icon [fill]=\"fill()\" />\n }\n }\n `,\n})\nexport class DevToolbarIconComponent {\n private readonly stateService = inject(DevToolbarStateService);\n\n name = input.required<IconName>();\n\n fill = computed(() =>\n this.stateService.theme() === 'dark' ? '#FFFFFF' : '#000000',\n );\n}\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { DevToolbarStateService } from '../../dev-toolbar-state.service';\n\n@Component({\n selector: 'ndt-tool-button',\n standalone: true,\n template: `\n <button\n class=\"tool-button\"\n [class.tool-button--toolbar-visible]=\"isToolbarVisible()\"\n [class.tool-button--active]=\"isActive()\"\n [class.tool-button--focus]=\"isFocused()\"\n (mouseenter)=\"onMouseEnter()\"\n (focusin)=\"onFocus()\"\n (focusout)=\"onBlur()\"\n (mouseleave)=\"onMouseLeave()\"\n (keydown.escape)=\"onEscape()\"\n >\n @if (isTooltipVisible()) {\n <span\n class=\"tooltip\"\n [@tooltipAnimation]=\"tooltipState ? 'visible' : 'hidden'\"\n >\n {{ tooltip() }}\n </span>\n }\n <ng-content />\n </button>\n `,\n styleUrls: ['./tool-button.component.scss'],\n animations: [\n trigger('tooltipAnimation', [\n state(\n 'hidden',\n style({\n opacity: 0,\n transform: 'translateX(-50%) translateY(1rem)',\n })\n ),\n state(\n 'visible',\n style({\n opacity: 1,\n transform: 'translateX(-50%) translateY(0)',\n })\n ),\n transition('hidden => visible', [animate('200ms ease-out')]),\n transition('visible => hidden', [animate('150ms ease-in')]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DevToolbarToolButtonComponent {\n // Injects\n private readonly state = inject(DevToolbarStateService);\n private readonly elementRef = inject(ElementRef);\n\n // Inputs\n readonly title = input.required<string>();\n readonly toolId = input.required<string>();\n // Outputs\n // eslint-disable-next-line @angular-eslint/no-output-native\n readonly click = output<void>();\n\n // Signals\n readonly isActive = computed(\n () => this.state.activeToolId() === this.toolId()\n );\n readonly isToolbarVisible = this.state.isVisible;\n\n readonly isFocused = signal(false);\n readonly tooltip = computed(\n () =>\n this.elementRef.nativeElement.parentElement?.getAttribute(\n 'data-tooltip'\n ) ?? ''\n );\n readonly isTooltipVisible = computed(\n () => this.tooltip() && !this.isActive()\n );\n\n // Properties\n protected tooltipState = false;\n private readonly hideDelay = 3000;\n\n // Public methods\n onClick(): void {\n this.isFocused.set(false);\n this.click.emit();\n }\n\n onMouseEnter(): void {\n this.tooltipState = true;\n }\n\n onMouseLeave(): void {\n this.tooltipState = false;\n }\n\n onEscape(): void {\n this.isFocused.set(false);\n }\n\n onFocus(): void {\n this.isFocused.set(true);\n }\n\n onBlur(): void {\n this.isFocused.set(false);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n model,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'ndt-input',\n standalone: true,\n imports: [FormsModule],\n template: `\n <input\n [attr.aria-label]=\"ariaLabel()\"\n [type]=\"type()\"\n [class]=\"inputClass()\"\n [ngModel]=\"value()\"\n [placeholder]=\"placeholder()\"\n (ngModelChange)=\"value.set($event)\"\n />\n `,\n styles: [\n `\n :host {\n display: block;\n }\n\n .input {\n width: 100%;\n padding: var(--devtools-spacing-sm) var(--devtools-spacing-md);\n border: 1px solid var(--devtools-border-primary);\n border-radius: var(--devtools-border-radius-small);\n background-color: var(--devtools-bg-primary);\n color: var(--devtools-text-primary);\n font-size: var(--devtools-font-size-sm);\n transition: var(--devtools-transition-default);\n\n &::placeholder {\n color: var(--devtools-text-muted);\n }\n\n &:focus {\n outline: none;\n border-color: var(--devtools-primary);\n box-shadow: 0 0 0 1px var(--devtools-primary);\n }\n\n &:disabled {\n background-color: var(--devtools-background-secondary);\n cursor: not-allowed;\n color: var(--devtools-text-muted);\n }\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DevToolbarInputComponent {\n value = model.required<string>();\n\n type = input<string>('text');\n placeholder = input<string>('');\n ariaLabel = input<string>('');\n inputClass = input<string>('input');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n model,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nexport interface SelectOption {\n value: string;\n label: string;\n}\n\n@Component({\n selector: 'ndt-select',\n standalone: true,\n imports: [FormsModule],\n template: `\n <select\n class=\"select\"\n [attr.aria-label]=\"ariaLabel()\"\n [class.small]=\"size() === 'small'\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"value.set($event)\"\n >\n @for (option of options(); track option.value) {\n <option role=\"option\" [value]=\"option.value\">{{ option.label }}</option>\n }\n </select>\n `,\n styleUrls: ['./select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DevToolbarSelectComponent {\n value = model<string>();\n options = input.required<SelectOption[]>();\n ariaLabel = input<string>('');\n label = input<string>('');\n size = input<'small' | 'medium'>('medium');\n}\n","import { Component, computed, inject, input, output } from '@angular/core';\nimport { DevToolbarStateService } from '../../dev-toolbar-state.service';\nimport { WindowConfig } from './window.models';\n\n@Component({\n selector: 'ndt-window',\n standalone: true,\n template: `\n <div class=\"window dev-toolbar\" [attr.data-theme]=\"theme()\">\n <div class=\"header\">\n <div class=\"header__content\">\n <div class=\"header__title\">\n <h1>{{ config().title }}</h1>\n @if (config().isBeta) {\n <span class=\"beta-tag\">BETA</span>\n }\n </div>\n <p class=\"header__description\">{{ config().description }}</p>\n </div>\n <div class=\"header__controls\">\n @if (config().isMinimizable) {\n <button\n aria-label=\"Minimize\"\n class=\"control\"\n (click)=\"onMinimize()\"\n >\n −\n </button>\n }\n @if (config().isMaximizable) {\n <button\n aria-label=\"Maximize\"\n class=\"control\"\n (click)=\"onMaximize()\"\n >\n □\n </button>\n }\n @if (config().isClosable) {\n <button\n aria-label=\"Close\"\n class=\"control control--close\"\n (click)=\"onClose()\"\n >\n ×\n </button>\n }\n </div>\n </div>\n\n <div class=\"divider\"></div>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n styleUrls: ['./window.component.scss'],\n})\nexport class DevToolbarWindowComponent {\n readonly devToolbarStateService = inject(DevToolbarStateService);\n readonly config = input.required<WindowConfig>();\n readonly close = output<void>();\n readonly maximize = output<void>();\n readonly minimize = output<void>();\n\n readonly theme = computed(() => this.devToolbarStateService.theme());\n\n protected onClose(): void {\n this.close.emit();\n }\n\n protected onMaximize(): void {\n this.maximize.emit();\n }\n\n protected onMinimize(): void {\n this.minimize.emit();\n }\n}\n","import { CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n ViewChild,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { DevToolbarStateService } from '../../dev-toolbar-state.service';\nimport { DevToolbarIconComponent } from '../icons/icon.component';\nimport { IconName } from '../icons/icon.models';\nimport { DevToolbarToolButtonComponent } from '../tool-button/tool-button.component';\nimport { DevToolbarWindowComponent } from '../window/window.component';\nimport { WindowConfig } from '../window/window.models';\n\n@Component({\n selector: 'ndt-toolbar-tool',\n standalone: true,\n imports: [\n CdkConnectedOverlay,\n OverlayModule,\n DevToolbarWindowComponent,\n DevToolbarToolButtonComponent,\n DevToolbarIconComponent,\n ],\n template: `\n <div #trigger=\"cdkOverlayOrigin\" class=\"dev-toolbar-tool\" cdkOverlayOrigin>\n <div\n class=\"dev-toolbar-tool__icon\"\n (click)=\"onOpen()\"\n (keydown.enter)=\"onOpen()\"\n (keydown.space)=\"onOpen()\"\n tabindex=\"0\"\n >\n <div [attr.data-tooltip]=\"title()\">\n @if (icon()) {\n <ndt-tool-button [title]=\"title()\" [toolId]=\"windowConfig().id\">\n <ndt-icon [name]=\"icon()\" />\n </ndt-tool-button>\n } @else {\n <ng-content select=\"ndt-tool-button\"></ng-content>\n }\n </div>\n </div>\n\n @if (isActive()) {\n <ng-template\n #contentTemplate\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isActive()\"\n [cdkConnectedOverlayPositions]=\"positions()\"\n [cdkConnectedOverlayWidth]=\"width()\"\n [cdkConnectedOverlayHeight]=\"height()\"\n cdkConnectedOverlay\n >\n <ndt-window [config]=\"windowConfig()\" (close)=\"onClose()\">\n <ng-content />\n </ndt-window>\n </ng-template>\n }\n </div>\n `,\n styleUrl: './toolbar-tool.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DevToolbarToolComponent {\n state = inject(DevToolbarStateService);\n @ViewChild('trigger') trigger!: ElementRef;\n\n @ContentChild(DevToolbarToolButtonComponent)\n buttonComponent!: DevToolbarToolButtonComponent;\n\n windowConfig = input.required<WindowConfig>();\n icon = input.required<IconName>();\n title = input.required<string>();\n isActive = computed(\n () => this.state.activeToolId() === this.windowConfig().id\n );\n height = computed(() => {\n switch (this.windowConfig().size) {\n case 'tall':\n return 620;\n case 'medium':\n return 480;\n default:\n return 400;\n }\n });\n\n width = computed(() => {\n switch (this.windowConfig().size) {\n case 'tall':\n return 520;\n case 'medium':\n return 480;\n default:\n return 400;\n }\n });\n positions = computed(() => [\n {\n originX: 'center' as const,\n originY: 'center' as const,\n overlayX: 'center' as const,\n overlayY: 'center' as const,\n offsetY: -(Math.ceil(this.height() / 2) + 36),\n },\n ]);\n\n onOpen(): void {\n this.state.setActiveTool(this.windowConfig().id);\n }\n\n onClose(): void {\n this.state.setActiveTool(null);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class DevToolsStorageService {\n private readonly prefix = 'ndt-';\n\n public set<T>(key: string, value: T): void {\n localStorage.setItem(this.prefix + key, JSON.stringify(value));\n }\n\n public get<T>(key: string): T | null {\n const item = localStorage.getItem(this.prefix + key);\n return item ? JSON.parse(item) : null;\n }\n\n public remove(key: string): void {\n localStorage.removeItem(this.prefix + key);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, Observable, combineLatest, map } from 'rxjs';\nimport { DevToolsStorageService } from '../../utils/storage.service';\nimport { Flag } from './feature-flags.models';\n\ninterface ForcedFlagsState {\n enabled: string[];\n disabled: string[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DevToolbarFeatureFlagsService {\n private readonly STORAGE_KEY = 'feature-flags';\n private storageService = inject(DevToolsStorageService);\n\n /**\n * App flags are the flags that are currently in the app\n */\n private appFlags$ = new BehaviorSubject<Flag[]>([]);\n\n /**\n * Forced flags are the flags that are currently forced in the app\n */\n private forcedFlagsSubject = new BehaviorSubject<ForcedFlagsState>({\n enabled: [],\n disabled: [],\n });\n\n private readonly forcedFlags$ = this.forcedFlagsSubject.asObservable();\n /**\n * Flags with the forced flag status\n */\n public flags$: Observable<Flag[]> = combineLatest([\n this.appFlags$,\n this.forcedFlags$,\n ]).pipe(\n map(([appFlags, { enabled, disabled }]) => {\n return appFlags.map((flag) => ({\n ...flag,\n isForced: enabled.includes(flag.id) || disabled.includes(flag.id),\n isEnabled: enabled.includes(flag.id),\n }));\n })\n );\n\n public flags = toSignal(this.flags$, { initialValue: [] });\n\n constructor() {\n this.loadForcedFlags();\n }\n\n public set(flags: Flag[]): void {\n this.appFlags$.next(flags);\n }\n\n /**\n * This is used by the app that uses the dev toolbar and\n * helps to set the flags that can be overridden by the dev toolbar\n * @param flags - The flags to set\n */\n public setAppFlags(flags: Flag[]): void {\n this.appFlags$.next(flags);\n }\n\n public getAppFlags(): Observable<Flag[]> {\n return this.appFlags$.asObservable();\n }\n\n public setFlag(flagId: string, isEnabled: boolean): void {\n const { enabled, disabled } = this.forcedFlagsSubject.value;\n\n // Remove from both arrays first\n const newEnabled = enabled.filter((id) => id !== flagId);\n const newDisabled = disabled.filter((id) => id !== flagId);\n\n // Add to appropriate array\n if (isEnabled) {\n newEnabled.push(flagId);\n } else {\n newDisabled.push(flagId);\n }\n\n const newState = { enabled: newEnabled, disabled: newDisabled };\n this.forcedFlagsSubject.next(newState);\n this.storageService.set(this.STORAGE_KEY, newState);\n }\n\n public removeFlagOverride(flagId: string): void {\n const { enabled, disabled } = this.forcedFlagsSubject.value;\n\n const newState = {\n enabled: enabled.filter((id) => id !== flagId),\n disabled: disabled.filter((id) => id !== flagId),\n };\n\n this.forcedFlagsSubject.next(newState);\n this.storageService.set(this.STORAGE_KEY, newState);\n }\n\n private loadForcedFlags(): void {\n const savedFlags = this.storageService.get<ForcedFlagsState>(\n this.STORAGE_KEY\n );\n\n if (savedFlags) {\n this.forcedFlagsSubject.next(savedFlags);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { DevToolbarInputComponent } from '../../components/input/input.component';\nimport { DevToolbarSelectComponent } from '../../components/select/select.component';\nimport { DevToolbarToolComponent } from '../../components/toolbar-tool/toolbar-tool.component';\nimport { WindowSize } from '../../components/window/window.models';\nimport { FeatureFlagFilter, Flag } from './feature-flags.models';\nimport { DevToolbarFeatureFlagsService } from './feature-flags.service';\n\n@Component({\n selector: 'ndt-feature-flags-tool',\n standalone: true,\n imports: [\n FormsModule,\n DevToolbarToolComponent,\n DevToolbarInputComponent,\n DevToolbarSelectComponent,\n ],\n template: `\n <ndt-toolbar-tool\n [windowConfig]=\"windowConfig\"\n title=\"Feature Flags\"\n icon=\"toggle-left\"\n >\n <div class=\"container\">\n <div class=\"header\">\n <ndt-input\n [value]=\"searchQuery()\"\n (valueChange)=\"onSearchChange($event)\"\n placeholder=\"Search...\"\n />\n <ndt-select\n [value]=\"activeFilter()\"\n [options]=\"filterOptions\"\n [size]=\"'medium'\"\n (valueChange)=\"onFilterChange($event)\"\n />\n </div>\n\n @if (hasNoFlags()) {\n <div class=\"empty\">\n <p>No flags found</p>\n </div>\n } @else {\n <div class=\"flag-list\">\n @for (flag of filteredFlags(); track flag.id) {\n <div class=\"flag\">\n <div class=\"info\">\n <h3>{{ flag.name }}</h3>\n <p>{{ flag?.description }}</p>\n </div>\n\n <ndt-select\n [value]=\"getFlagValue(flag)\"\n [options]=\"flagValueOptions\"\n [ariaLabel]=\"'Set value for ' + flag.name\"\n (valueChange)=\"onFlagChange(flag.id, $event ?? '')\"\n size=\"small\"\n />\n </div>\n }\n </div>\n }\n </div>\n </ndt-toolbar-tool>\n `,\n styles: [\n `\n .container {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .header {\n flex-shrink: 0;\n display: flex;\n gap: var(--devtools-spacing-sm);\n margin-bottom: var(--devtools-spacing-md);\n\n ndt-input {\n flex: 0.65;\n }\n\n ndt-select {\n flex: 0.35;\n }\n }\n\n .empty {\n display: flex;\n flex-direction: column;\n gap: var(--devtools-spacing-md);\n flex: 1;\n min-height: 0;\n justify-content: center;\n align-items: center;\n border: 1px solid var(--devtools-warning-border);\n border-radius: var(--devtools-border-radius-medium);\n padding: var(--devtools-spacing-md);\n background: var(--devtools-warning-background);\n color: var(--devtools-text-muted);\n }\n\n .flag-list {\n display: flex;\n flex-direction: column;\n gap: var(--devtools-spacing-md);\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding-right: var(--devtools-spacing-sm);\n\n &::-webkit-scrollbar {\n width: 8px;\n }\n\n &::-webkit-scrollbar-track {\n background: var(--devtools-background-secondary);\n border-radius: 4px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: var(--devtools-border-primary);\n border-radius: 4px;\n\n &:hover {\n background: var(--devtools-hover-bg);\n }\n }\n\n scrollbar-width: thin;\n scrollbar-color: var(--devtools-border-primary)\n var(--devtools-background-secondary);\n }\n\n .flag {\n display: flex;\n flex-direction: row;\n gap: var(--devtools-spacing-sm);\n background: var(--devtools-background-secondary);\n .info {\n flex: 0 0 65%;\n h3 {\n margin: 0;\n font-size: var(--devtools-font-size-md);\n color: var(--devtools-text-primary);\n }\n\n p {\n font-size: var(--devtools-font-size-xs);\n color: var(--devtools-text-muted);\n }\n }\n\n ndt-select {\n flex: 0 0 35%;\n }\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DevToolbarFeatureFlagsToolComponent {\n // Injects\n private readonly featureFlags = inject(DevToolbarFeatureFlagsService);\n\n // Signals\n protected readonly activeFilter = signal<FeatureFlagFilter>('all');\n protected readonly searchQuery = signal<string>('');\n\n protected readonly flags = this.featureFlags.flags;\n protected readonly hasNoFlags = computed(() => this.flags().length === 0);\n protected readonly filteredFlags = computed(() => {\n return this.flags().filter((flag) => {\n const searchTerm = this.searchQuery().toLowerCase();\n const flagName = flag.name.toLowerCase();\n const flagDescription = flag.description?.toLowerCase() ?? '';\n\n const matchesSearch =\n !this.searchQuery() ||\n flagName.toLowerCase().includes(searchTerm.toLowerCase()) ||\n flagDescription.toLowerCase().includes(searchTerm.toLowerCase());\n\n const matchesFilter =\n this.activeFilter() === 'all' ||\n (this.activeFilter() === 'forced' && flag.isForced) ||\n (this.activeFilter() === 'enabled' && flag.isEnabled) ||\n (this.activeFilter() === 'disabled' && !flag.isEnabled);\n\n return matchesSearch && matchesFilter;\n });\n });\n\n // Other properties\n protected readonly windowConfig = {\n title: 'Feature Flags',\n description: 'Manage the feature flags for your current session',\n isClosable: true,\n size: 'tall' as WindowSize,\n id: 'ndt-feature-flags',\n isBeta: true,\n };\n\n protected readonly filterOptions = [\n { value: 'all', label: 'All Flags' },\n { value: 'forced', label: 'Forced' },\n { value: 'enabled', label: 'Enabled' },\n { value: 'disabled', label: 'Disabled' },\n ];\n\n protected readonly flagValueOptions = [\n { value: 'not-forced', label: 'Select an override' },\n { value: 'off', label: 'Forced Off (false)' },\n { value: 'on', label: 'Forced On (true)' },\n ];\n\n // Public methods\n onFilterChange(value: string | undefined): void {\n const filter = this.filterOptions.find((f) => f.value === value);\n if (filter) {\n this.activeFilter.set(filter.value as FeatureFlagFilter);\n }\n }\n\n onFlagChange(flagId: string, value: string): void {\n switch (value) {\n case 'not-forced':\n this.featureFlags.removeFlagOverride(flagId);\n break;\n case 'on':\n this.featureFlags.setFlag(flagId, true);\n break;\n case 'off':\n this.featureFlags.setFlag(flagId, false);\n break;\n }\n }\n\n onSearchChange(query: string): void {\n this.searchQuery.set(query);\n }\n\n // Protected methods\n protected getFlagValue(flag: Flag): string {\n if (!flag.isForced) return '';\n return flag.isEnabled ? 'on' : 'off';\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { DevToolbarIconComponent } from '../icons/icon.component';\nimport { IconName } from '../icons/icon.models';\n\n@Component({\n selector: 'ndt-button',\n standalone: true,\n imports: [DevToolbarIconComponent],\n template: `\n <button\n class=\"button\"\n [attr.aria-label]=\"ariaLabel()\"\n [type]=\"type()\"\n [class.button--active]=\"isActive()\"\n [class.button--icon]=\"variant() === 'icon'\"\n >\n @if (icon()) {\n <ndt-icon [name]=\"icon() || 'star'\" />\n }\n @if (label()) {\n <span class=\"button__label\">{{ label() }}</span>\n }\n <ng-content />\n </button>\n `,\n styleUrls: ['./button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DevToolbarButtonComponent {\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n readonly variant = input<'default' | 'icon'>('default');\n readonly icon = input<IconName>();\n readonly label = input<string>();\n readonly ariaLabel = input<string>();\n readonly isActive = input<boolean>(false);\n}\n","import { Injectable, inject } from '@angular/core';\nimport { DevToolsStorageService } from '../../utils/storage.service';\nimport { Settings } from './settings.models';\n\n@Injectable({ providedIn: 'root' })\nexport class SettingsService {\n private readonly STORAGE_KEY = 'settings';\n private readonly storageService = inject(DevToolsStorageService);\n\n public getSettings(): Settings {\n return (\n this.storageService.get<Settings>(this.STORAGE_KEY) || {\n isDarkMode: false,\n }\n );\n }\n\n public setSettings(settings: Settings): void {\n this.storageService.set(this.STORAGE_KEY, settings);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { DevToolbarButtonComponent } from '../../components/button/button.component';\nimport { DevToolbarToolComponent } from '../../components/toolbar-tool/toolbar-tool.component';\nimport { WindowConfig } from '../../components/window/window.models';\nimport { DevToolbarStateService } from '../../dev-toolbar-state.service';\nimport { SettingsService } from './settings.service';\n\ntype ThemeType = 'light' | 'dark';\n\n@Component({\n selector: 'ndt-settings-tool',\n standalone: true,\n imports: [DevToolbarToolComponent, FormsModule, DevToolbarButtonComponent],\n template: `\n <ndt-toolbar-tool\n [windowConfig]=\"windowConfig\"\n title=\"Settings\"\n icon=\"gear\"\n >\n <section class=\"settings\">\n <div class=\"instruction\">\n <div class=\"instruction__label\">\n <span class=\"instruction__label-text\">Theme</span>\n <span class=\"instruction__label-description\">\n Switch between light and dark mode\n </span>\n </div>\n <div class=\"instruction__control\">\n <div class=\"theme\">\n <ndt-button\n [isActive]=\"!state.isDarkTheme()\"\n (click)=\"onThemeSelect('light')\"\n variant=\"icon\"\n ariaLabel=\"Switch to light theme\"\n icon=\"sun\"\n />\n <ndt-button\n [isActive]=\"state.isDarkTheme()\"\n (click)=\"onThemeSelect('dark')\"\n variant=\"icon\"\n ariaLabel=\"Switch to dark theme\"\n icon=\"moon\"\n />\n </div>\n </div>\n </div>\n </section>\n </ndt-toolbar-tool>\n `,\n styleUrls: ['./settings-tool.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DevToolbarSettingsToolComponent {\n state = inject(DevToolbarStateService);\n settingsService = inject(SettingsService);\n\n readonly badge = input<string | number>();\n readonly windowConfig: WindowConfig = {\n title: 'Settings',\n isClosable: true,\n id: 'ndt-settings',\n description: 'Configure the settings for the Dev Toolbar',\n isBeta: true,\n };\n\n onThemeSelect(theme: ThemeType): void {\n this.settingsService.setSettings({ isDarkMode: theme === 'dark' });\n this.state.setTheme(theme);\n }\n}\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { Component, DestroyRef, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { filter, throttleTime } from 'rxjs/operators';\nimport { DevToolbarIconComponent } from './components/icons/icon.component';\nimport { DevToolbarToolButtonComponent } from './components/tool-button/tool-button.component';\nimport { DevToolbarStateService } from './dev-toolbar-state.service';\nimport { DevToolbarFeatureFlagsToolComponent } from './tools/feature-flags-tool/feature-flags-tool.component';\nimport { DevToolbarSettingsToolComponent } from './tools/settings-tool/settings-tool.component';\nimport { SettingsService } from './tools/settings-tool/settings.service';\n\n@Component({\n standalone: true,\n selector: 'ndt-toolbar',\n styleUrls: ['./dev-toolbar.component.scss'],\n imports: [\n DevToolbarToolButtonComponent,\n DevToolbarFeatureFlagsToolComponent,\n DevToolbarSettingsToolComponent,\n DevToolbarIconComponent,\n ],\n\n template: `\n <div\n aria-label=\"Developer tools\"\n role=\"toolbar\"\n class=\"dev-toolbar\"\n [@toolbarState]=\"state.isVisible() ? 'visible' : 'hidden'\"\n [attr.data-theme]=\"state.theme()\"\n [class.dev-toolbar--active]=\"state.isVisible()\"\n (mouseenter)=\"onMouseEnter()\"\n >\n <ndt-tool-button title=\"Home\" toolId=\"ndt-home\">\n <ndt-icon name=\"angular\" />\n </ndt-tool-button>\n <ndt-tool-button title=\"Performance\" toolId=\"ndt-performance\">\n <ndt-icon name=\"gauge\" />\n </ndt-tool-button>\n <ndt-feature-flags-tool />\n <ndt-settings-tool />\n </div>\n `,\n animations: [\n trigger('toolbarState', [\n state(\n 'hidden',\n style({\n transform: 'translate(-50%, calc(100% + -1.2rem))',\n })\n ),\n state(\n 'visible',\n style({\n transform: 'translate(-50%, -1rem)',\n })\n ),\n transition('hidden <=> visible', [\n animate('300ms cubic-bezier(0.4, 0, 0.2, 1)'),\n ]),\n ]),\n ],\n})\nexport class DevToolbarComponent implements OnInit {\n state = inject(DevToolbarStateService);\n destroyRef = inject(DestroyRef);\n settingsService = inject(SettingsService);\n\n private keyboardShortcut = fromEvent<KeyboardEvent>(window, 'keydown')\n .pipe(\n filter((event) => event.ctrlKey && event.shiftKey && event.key === 'D'),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => this.toggleDevTools());\n\n private mouseLeave = fromEvent<MouseEvent>(document, 'mouseleave')\n .pipe(throttleTime(3000), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onMouseLeave());\n\n ngOnInit(): void {\n const settings = this.settingsService.getSettings();\n this.state.setTheme(settings.isDarkMode ? 'dark' : 'light');\n }\n\n onMouseEnter(): void {\n this.state.setVisibility(true);\n }\n\n onMouseLeave(): void {\n setTimeout(() => this.state.setVisibility(false), this.state.delay());\n }\n\n private toggleDevTools(): void {\n this.state.setVisibility(!this.state.isVisible());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
package/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from './dev-toolbar.component';
2
- export * from './tools/feature-flags-tool/feature-flags.models';
3
- export * from './tools/feature-flags-tool/feature-flags.service';
@@ -1,33 +0,0 @@
1
- import { WindowSize } from '../../components/window/window.models';
2
- import { FeatureFlagFilter, Flag } from './feature-flags.models';
3
- import * as i0 from "@angular/core";
4
- export declare class DevToolbarFeatureFlagsToolComponent {
5
- private readonly featureFlags;
6
- protected readonly activeFilter: import("@angular/core").WritableSignal<FeatureFlagFilter>;
7
- protected readonly searchQuery: import("@angular/core").WritableSignal<string>;
8
- protected readonly flags: import("@angular/core").Signal<Flag[]>;
9
- protected readonly hasNoFlags: import("@angular/core").Signal<boolean>;
10
- protected readonly filteredFlags: import("@angular/core").Signal<Flag[]>;
11
- protected readonly windowConfig: {
12
- title: string;
13
- description: string;
14
- isClosable: boolean;
15
- size: WindowSize;
16
- id: string;
17
- isBeta: boolean;
18
- };
19
- protected readonly filterOptions: {
20
- value: string;
21
- label: string;
22
- }[];
23
- protected readonly flagValueOptions: {
24
- value: string;
25
- label: string;
26
- }[];
27
- onFilterChange(value: string | undefined): void;
28
- onFlagChange(flagId: string, value: string): void;
29
- onSearchChange(query: string): void;
30
- protected getFlagValue(flag: Flag): string;
31
- static ɵfac: i0.ɵɵFactoryDeclaration<DevToolbarFeatureFlagsToolComponent, never>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<DevToolbarFeatureFlagsToolComponent, "ndt-feature-flags-tool", never, {}, {}, never, never, true, never>;
33
- }
@@ -1,9 +0,0 @@
1
- export interface Flag {
2
- id: string;
3
- name: string;
4
- description?: string;
5
- link?: string;
6
- isEnabled: boolean;
7
- isForced: boolean;
8
- }
9
- export type FeatureFlagFilter = 'all' | 'forced' | 'enabled' | 'disabled';
@@ -1,35 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { Flag } from './feature-flags.models';
3
- import * as i0 from "@angular/core";
4
- export declare class DevToolbarFeatureFlagsService {
5
- private readonly STORAGE_KEY;
6
- private storageService;
7
- /**
8
- * App flags are the flags that are currently in the app
9
- */
10
- private appFlags$;
11
- /**
12
- * Forced flags are the flags that are currently forced in the app
13
- */
14
- private forcedFlagsSubject;
15
- private readonly forcedFlags$;
16
- /**
17
- * Flags with the forced flag status
18
- */
19
- flags$: Observable<Flag[]>;
20
- flags: import("@angular/core").Signal<Flag[]>;
21
- constructor();
22
- set(flags: Flag[]): void;
23
- /**
24
- * This is used by the app that uses the dev toolbar and
25
- * helps to set the flags that can be overridden by the dev toolbar
26
- * @param flags - The flags to set
27
- */
28
- setAppFlags(flags: Flag[]): void;
29
- getAppFlags(): Observable<Flag[]>;
30
- setFlag(flagId: string, isEnabled: boolean): void;
31
- removeFlagOverride(flagId: string): void;
32
- private loadForcedFlags;
33
- static ɵfac: i0.ɵɵFactoryDeclaration<DevToolbarFeatureFlagsService, never>;
34
- static ɵprov: i0.ɵɵInjectableDeclaration<DevToolbarFeatureFlagsService>;
35
- }
@@ -1,15 +0,0 @@
1
- import { WindowConfig } from '../../components/window/window.models';
2
- import { DevToolbarStateService } from '../../dev-toolbar-state.service';
3
- import { SettingsService } from './settings.service';
4
- import * as i0 from "@angular/core";
5
- type ThemeType = 'light' | 'dark';
6
- export declare class DevToolbarSettingsToolComponent {
7
- state: DevToolbarStateService;
8
- settingsService: SettingsService;
9
- readonly badge: import("@angular/core").InputSignal<string | number | undefined>;
10
- readonly windowConfig: WindowConfig;
11
- onThemeSelect(theme: ThemeType): void;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<DevToolbarSettingsToolComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<DevToolbarSettingsToolComponent, "ndt-settings-tool", never, { "badge": { "alias": "badge"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
14
- }
15
- export {};
@@ -1,10 +0,0 @@
1
- import { Settings } from './settings.models';
2
- import * as i0 from "@angular/core";
3
- export declare class SettingsService {
4
- private readonly STORAGE_KEY;
5
- private readonly storageService;
6
- getSettings(): Settings;
7
- setSettings(settings: Settings): void;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<SettingsService, never>;
9
- static ɵprov: i0.ɵɵInjectableDeclaration<SettingsService>;
10
- }
@@ -1,9 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class DevToolsStorageService {
3
- private readonly prefix;
4
- set<T>(key: string, value: T): void;
5
- get<T>(key: string): T | null;
6
- remove(key: string): void;
7
- static ɵfac: i0.ɵɵFactoryDeclaration<DevToolsStorageService, never>;
8
- static ɵprov: i0.ɵɵInjectableDeclaration<DevToolsStorageService>;
9
- }