angular-techs-logos 0.1.26 → 0.1.27

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 (158) hide show
  1. package/README.md +43 -43
  2. package/esm2022/angular-techs-logos.mjs +1 -2
  3. package/esm2022/lib/angular-techs-logos.component.mjs +1 -90
  4. package/esm2022/lib/angular-techs-logos.module.mjs +1 -467
  5. package/esm2022/lib/techs/amd/amd.component.mjs +1 -11
  6. package/esm2022/lib/techs/android/android.component.mjs +1 -11
  7. package/esm2022/lib/techs/androidstudio/androidstudio.component.mjs +1 -11
  8. package/esm2022/lib/techs/angular/angular.component.mjs +1 -11
  9. package/esm2022/lib/techs/ansible/ansible.component.mjs +1 -11
  10. package/esm2022/lib/techs/apache/apache.component.mjs +1 -11
  11. package/esm2022/lib/techs/apple/apple.component.mjs +1 -11
  12. package/esm2022/lib/techs/appstore/appstore.component.mjs +1 -11
  13. package/esm2022/lib/techs/archlinux/archlinux.component.mjs +1 -11
  14. package/esm2022/lib/techs/astro/astro.component.mjs +1 -11
  15. package/esm2022/lib/techs/aws/aws.component.mjs +1 -11
  16. package/esm2022/lib/techs/azure/azure.component.mjs +1 -11
  17. package/esm2022/lib/techs/backbone/backbone.component.mjs +1 -11
  18. package/esm2022/lib/techs/baidu/baidu.component.mjs +1 -11
  19. package/esm2022/lib/techs/bitbucket/bitbucket.component.mjs +1 -11
  20. package/esm2022/lib/techs/centos/centos.component.mjs +1 -11
  21. package/esm2022/lib/techs/chatgpt/chatgpt.component.mjs +1 -11
  22. package/esm2022/lib/techs/chrome/chrome.component.mjs +1 -11
  23. package/esm2022/lib/techs/circleci/circleci.component.mjs +1 -11
  24. package/esm2022/lib/techs/cisco/cisco.component.mjs +1 -11
  25. package/esm2022/lib/techs/cobol/cobol.component.mjs +1 -11
  26. package/esm2022/lib/techs/codepen/codepen.component.mjs +1 -11
  27. package/esm2022/lib/techs/copilot/copilot.component.mjs +1 -11
  28. package/esm2022/lib/techs/cpp/cpp.component.mjs +1 -11
  29. package/esm2022/lib/techs/csharp/csharp.component.mjs +1 -11
  30. package/esm2022/lib/techs/css/css.component.mjs +1 -11
  31. package/esm2022/lib/techs/cypress/cypress.component.mjs +1 -11
  32. package/esm2022/lib/techs/d3/d3.component.mjs +1 -11
  33. package/esm2022/lib/techs/debian/debian.component.mjs +1 -11
  34. package/esm2022/lib/techs/deepin/deepin.component.mjs +1 -11
  35. package/esm2022/lib/techs/deezer/deezer.component.mjs +1 -11
  36. package/esm2022/lib/techs/digitalocean/digitalocean.component.mjs +1 -11
  37. package/esm2022/lib/techs/discord/discord.component.mjs +1 -11
  38. package/esm2022/lib/techs/docker/docker.component.mjs +1 -11
  39. package/esm2022/lib/techs/dribbble/dribbble.component.mjs +1 -11
  40. package/esm2022/lib/techs/dropbox/dropbox.component.mjs +1 -11
  41. package/esm2022/lib/techs/drupal/drupal.component.mjs +1 -11
  42. package/esm2022/lib/techs/duckduckgo/duckduckgo.component.mjs +1 -11
  43. package/esm2022/lib/techs/eclipse/eclipse.component.mjs +1 -11
  44. package/esm2022/lib/techs/edge/edge.component.mjs +1 -11
  45. package/esm2022/lib/techs/elementaryos/elementaryos.component.mjs +1 -11
  46. package/esm2022/lib/techs/elo/elo.component.mjs +1 -11
  47. package/esm2022/lib/techs/ember/ember.component.mjs +1 -11
  48. package/esm2022/lib/techs/evernote/evernote.component.mjs +1 -11
  49. package/esm2022/lib/techs/expo/expo.component.mjs +1 -11
  50. package/esm2022/lib/techs/facebook/facebook.component.mjs +1 -11
  51. package/esm2022/lib/techs/fedora/fedora.component.mjs +1 -11
  52. package/esm2022/lib/techs/firebase/firebase.component.mjs +1 -11
  53. package/esm2022/lib/techs/firefox/firefox.component.mjs +1 -11
  54. package/esm2022/lib/techs/fortran/fortran.component.mjs +1 -11
  55. package/esm2022/lib/techs/gemini/gemini.component.mjs +1 -11
  56. package/esm2022/lib/techs/git/git.component.mjs +1 -11
  57. package/esm2022/lib/techs/github/github.component.mjs +1 -11
  58. package/esm2022/lib/techs/gitlab/gitlab.component.mjs +1 -11
  59. package/esm2022/lib/techs/go/go.component.mjs +1 -11
  60. package/esm2022/lib/techs/google/google.component.mjs +1 -11
  61. package/esm2022/lib/techs/grafana/grafana.component.mjs +1 -11
  62. package/esm2022/lib/techs/graylog/graylog.component.mjs +1 -11
  63. package/esm2022/lib/techs/gulp/gulp.component.mjs +1 -11
  64. package/esm2022/lib/techs/hp/hp.component.mjs +1 -11
  65. package/esm2022/lib/techs/html/html.component.mjs +1 -11
  66. package/esm2022/lib/techs/ibm/ibm.component.mjs +1 -11
  67. package/esm2022/lib/techs/instagram/instagram.component.mjs +1 -11
  68. package/esm2022/lib/techs/intellij/intellij.component.mjs +1 -11
  69. package/esm2022/lib/techs/java/java.component.mjs +1 -11
  70. package/esm2022/lib/techs/javascript/javascript.component.mjs +1 -11
  71. package/esm2022/lib/techs/jest/jest.component.mjs +1 -11
  72. package/esm2022/lib/techs/jetbrains/jetbrains.component.mjs +1 -11
  73. package/esm2022/lib/techs/kalilinux/kalilinux.component.mjs +1 -11
  74. package/esm2022/lib/techs/karma/karma.component.mjs +1 -11
  75. package/esm2022/lib/techs/kotlin/kotlin.component.mjs +1 -11
  76. package/esm2022/lib/techs/kubernets/kubernets.component.mjs +1 -11
  77. package/esm2022/lib/techs/less/less.component.mjs +1 -11
  78. package/esm2022/lib/techs/linkedin/linkedin.component.mjs +1 -11
  79. package/esm2022/lib/techs/linux/linux.component.mjs +1 -11
  80. package/esm2022/lib/techs/lua/lua.component.mjs +1 -11
  81. package/esm2022/lib/techs/macos/macos.component.mjs +1 -11
  82. package/esm2022/lib/techs/manjaro/manjaro.component.mjs +1 -11
  83. package/esm2022/lib/techs/mariadb/mariadb.component.mjs +1 -11
  84. package/esm2022/lib/techs/max/max.component.mjs +1 -11
  85. package/esm2022/lib/techs/microsoft/microsoft.component.mjs +1 -11
  86. package/esm2022/lib/techs/mint/mint.component.mjs +1 -11
  87. package/esm2022/lib/techs/mongodb/mongodb.component.mjs +1 -11
  88. package/esm2022/lib/techs/mozilla/mozilla.component.mjs +1 -11
  89. package/esm2022/lib/techs/mysql/mysql.component.mjs +1 -11
  90. package/esm2022/lib/techs/netflix/netflix.component.mjs +1 -11
  91. package/esm2022/lib/techs/nextjs/nextjs.component.mjs +1 -11
  92. package/esm2022/lib/techs/nginx/nginx.component.mjs +1 -11
  93. package/esm2022/lib/techs/node/node.component.mjs +1 -11
  94. package/esm2022/lib/techs/npm/npm.component.mjs +1 -11
  95. package/esm2022/lib/techs/nuxt/nuxt.component.mjs +1 -11
  96. package/esm2022/lib/techs/nvidia/nvidia.component.mjs +1 -11
  97. package/esm2022/lib/techs/opensuse/opensuse.component.mjs +1 -11
  98. package/esm2022/lib/techs/opera/opera.component.mjs +1 -11
  99. package/esm2022/lib/techs/oracle/oracle.component.mjs +1 -11
  100. package/esm2022/lib/techs/pandas/pandas.component.mjs +1 -11
  101. package/esm2022/lib/techs/php/php.component.mjs +1 -11
  102. package/esm2022/lib/techs/pinterest/pinterest.component.mjs +1 -11
  103. package/esm2022/lib/techs/playstore/playstore.component.mjs +1 -11
  104. package/esm2022/lib/techs/postgresql/postgresql.component.mjs +1 -11
  105. package/esm2022/lib/techs/primevideo/primevideo.component.mjs +1 -11
  106. package/esm2022/lib/techs/pwa/pwa.component.mjs +1 -11
  107. package/esm2022/lib/techs/python/python.component.mjs +1 -11
  108. package/esm2022/lib/techs/qwik/qwik.component.mjs +1 -11
  109. package/esm2022/lib/techs/raspberry/raspberry.component.mjs +1 -11
  110. package/esm2022/lib/techs/react/react.component.mjs +1 -11
  111. package/esm2022/lib/techs/redhat/redhat.component.mjs +1 -11
  112. package/esm2022/lib/techs/redis/redis.component.mjs +1 -11
  113. package/esm2022/lib/techs/ruby/ruby.component.mjs +1 -11
  114. package/esm2022/lib/techs/rust/rust.component.mjs +1 -11
  115. package/esm2022/lib/techs/safari/safari.component.mjs +1 -11
  116. package/esm2022/lib/techs/sass/sass.component.mjs +1 -11
  117. package/esm2022/lib/techs/shopify/shopify.component.mjs +1 -11
  118. package/esm2022/lib/techs/slackware/slackware.component.mjs +1 -11
  119. package/esm2022/lib/techs/snapdragon/snapdragon.component.mjs +1 -11
  120. package/esm2022/lib/techs/soundcloud/soundcloud.component.mjs +1 -11
  121. package/esm2022/lib/techs/spacex/spacex.component.mjs +1 -11
  122. package/esm2022/lib/techs/spotify/spotify.component.mjs +1 -11
  123. package/esm2022/lib/techs/springboot/springboot.component.mjs +1 -11
  124. package/esm2022/lib/techs/stackoverflow/stackoverflow.component.mjs +1 -11
  125. package/esm2022/lib/techs/steam/steam.component.mjs +1 -11
  126. package/esm2022/lib/techs/stylus/stylus.component.mjs +1 -11
  127. package/esm2022/lib/techs/supabase/supabase.component.mjs +1 -11
  128. package/esm2022/lib/techs/svelte/svelte.component.mjs +1 -11
  129. package/esm2022/lib/techs/swift/swift.component.mjs +1 -11
  130. package/esm2022/lib/techs/tailwind/tailwind.component.mjs +1 -11
  131. package/esm2022/lib/techs/techs-data.mjs +1 -301
  132. package/esm2022/lib/techs/telegram/telegram.component.mjs +1 -11
  133. package/esm2022/lib/techs/tensorflow/tensorflow.component.mjs +1 -11
  134. package/esm2022/lib/techs/tiktok/tiktok.component.mjs +1 -11
  135. package/esm2022/lib/techs/tomcat/tomcat.component.mjs +1 -11
  136. package/esm2022/lib/techs/tor/tor.component.mjs +1 -11
  137. package/esm2022/lib/techs/torrent/torrent.component.mjs +1 -11
  138. package/esm2022/lib/techs/tumblr/tumblr.component.mjs +1 -11
  139. package/esm2022/lib/techs/turbo/turbo.component.mjs +1 -11
  140. package/esm2022/lib/techs/typescript/typescript.component.mjs +1 -11
  141. package/esm2022/lib/techs/ubuntu/ubuntu.component.mjs +1 -11
  142. package/esm2022/lib/techs/vercel/vercel.component.mjs +1 -11
  143. package/esm2022/lib/techs/visualcode/visualcode.component.mjs +1 -11
  144. package/esm2022/lib/techs/vite/vite.component.mjs +1 -11
  145. package/esm2022/lib/techs/vitest/vitest.component.mjs +1 -11
  146. package/esm2022/lib/techs/vk/vk.component.mjs +1 -11
  147. package/esm2022/lib/techs/vue/vue.component.mjs +1 -11
  148. package/esm2022/lib/techs/webpack/webpack.component.mjs +1 -11
  149. package/esm2022/lib/techs/whatsapp/whatsapp.component.mjs +1 -11
  150. package/esm2022/lib/techs/wordpress/wordpress.component.mjs +1 -11
  151. package/esm2022/lib/techs/x/x.component.mjs +1 -11
  152. package/esm2022/lib/techs/xcode/xcode.component.mjs +1 -11
  153. package/esm2022/lib/techs/yandex/yandex.component.mjs +1 -11
  154. package/esm2022/lib/techs/youtube/youtube.component.mjs +1 -11
  155. package/esm2022/public-api.mjs +1 -4
  156. package/fesm2022/angular-techs-logos.mjs +1 -1900
  157. package/package.json +1 -1
  158. package/fesm2022/angular-techs-logos.mjs.map +0 -1
package/README.md CHANGED
@@ -1,43 +1,43 @@
1
- # angular-techs-logos
2
-
3
- A list with logos company and techs
4
-
5
-
6
- <img alt="A list with logos company and techs screenshot" width="100%" src="https://raw.githubusercontent.com/criar-art/angular-techs-logos/master/public/screen-angular-techs-logos.png" />
7
-
8
- Install
9
- ```bash
10
- npm install angular-techs-logos
11
- ```
12
-
13
- Usage basic
14
- ```ts
15
- import AngularTechsLogosModule from 'angular-techs-logos';
16
-
17
- // Example of imports within @NgModule or @Component
18
- imports: [ AngularTechsLogosModule ]
19
- ```
20
-
21
- ```html
22
- <!-- list all logos -->
23
- <angular-techs-logos />
24
-
25
- <!-- single icon -->
26
- <angular-techs-logos name="javascript" />
27
-
28
- <!-- list limited logos -->
29
- <angular-techs-logos [list]="['angular','javascript', 'react', 'angular']" />
30
-
31
- <!-- list all logos with hiddenLogos -->
32
- <angular-techs-logos [hiddenLogos]="['angular','javascript', 'react', 'angular', 'android']" />
33
-
34
- <!-- Hidden label -->
35
- <angular-techs-logos name="javascript" [hiddenLabel]="true" />
36
- <angular-techs-logos [hiddenLabel]="true" />
37
-
38
- <!-- single change label name -->
39
- <angular-techs-logos name="javascript" label="New JavaScript" />
40
-
41
- <!-- Modification of size component -->
42
- <angular-techs-logos name="javascript" size="220px" />
43
- ```
1
+ # angular-techs-logos
2
+
3
+ A list with logos company and techs
4
+
5
+
6
+ <img alt="A list with logos company and techs screenshot" width="100%" src="https://raw.githubusercontent.com/criar-art/angular-techs-logos/master/public/screen-angular-techs-logos.png" />
7
+
8
+ Install
9
+ ```bash
10
+ npm install angular-techs-logos
11
+ ```
12
+
13
+ Usage basic
14
+ ```ts
15
+ import AngularTechsLogosModule from 'angular-techs-logos';
16
+
17
+ // Example of imports within @NgModule or @Component
18
+ imports: [ AngularTechsLogosModule ]
19
+ ```
20
+
21
+ ```html
22
+ <!-- list all logos -->
23
+ <angular-techs-logos />
24
+
25
+ <!-- single icon -->
26
+ <angular-techs-logos name="javascript" />
27
+
28
+ <!-- list limited logos -->
29
+ <angular-techs-logos [list]="['angular','javascript', 'react', 'angular']" />
30
+
31
+ <!-- list all logos with hiddenLogos -->
32
+ <angular-techs-logos [hiddenLogos]="['angular','javascript', 'react', 'angular', 'android']" />
33
+
34
+ <!-- Hidden label -->
35
+ <angular-techs-logos name="javascript" [hiddenLabel]="true" />
36
+ <angular-techs-logos [hiddenLabel]="true" />
37
+
38
+ <!-- single change label name -->
39
+ <angular-techs-logos name="javascript" label="New JavaScript" />
40
+
41
+ <!-- Modification of size component -->
42
+ <angular-techs-logos name="javascript" size="220px" />
43
+ ```
@@ -1,2 +1 @@
1
- export * from './public-api';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10ZWNocy1sb2dvcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGVjaHMtbG9nb3Mvc3JjL2FuZ3VsYXItdGVjaHMtbG9nb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
1
+ export*from"./public-api";
@@ -1,90 +1 @@
1
- import { Component, Input, ViewChild, ViewContainerRef, ViewEncapsulation, signal } from '@angular/core';
2
- import { techs } from './techs/techs-data';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- export class AngularTechsLogosComponent {
6
- constructor() {
7
- this.techs = techs;
8
- this.listSignal = signal([]);
9
- this.hiddenLogosSignal = signal([]);
10
- this.techsList = signal(this.techs);
11
- }
12
- ngOnInit() {
13
- if (!this.name) {
14
- this.updateTechs();
15
- }
16
- }
17
- ngOnChanges(changes) {
18
- if (changes['list']) {
19
- this.listSignal.set(this.list);
20
- }
21
- if (changes['hiddenLogos']) {
22
- this.hiddenLogosSignal.set(this.hiddenLogos);
23
- }
24
- if (!this.name) {
25
- this.updateTechs();
26
- }
27
- }
28
- updateTechs() {
29
- const currentList = this.listSignal();
30
- const currentHiddenLogos = this.hiddenLogosSignal();
31
- if (currentList && this.list) {
32
- this.techsList.set(this.getTechs(currentList));
33
- }
34
- else if (currentHiddenLogos && this.hiddenLogos) {
35
- this.techsList.set(this.hiddenTechs(currentHiddenLogos));
36
- }
37
- else {
38
- this.techsList.set(this.techs);
39
- }
40
- }
41
- techClass(name) {
42
- const className = name?.toLowerCase() || '';
43
- return [this.class || '', className];
44
- }
45
- getTech(name) {
46
- return this.techs.find((item) => item.name.toLowerCase() === name.toLowerCase());
47
- }
48
- getTechs(items) {
49
- return this.techs.filter((tech) => {
50
- if (typeof tech.name !== 'string')
51
- return false;
52
- return items.some((item) => {
53
- if (typeof item !== 'string')
54
- return false;
55
- return tech.name.toLowerCase() === item.toLowerCase();
56
- });
57
- });
58
- }
59
- hiddenTechs(items) {
60
- return this.techs.filter((tech) => !items.includes(tech.name.toLowerCase()));
61
- }
62
- getIcon(name) {
63
- const tech = this.getTech(name);
64
- return tech ? tech.icon : null;
65
- }
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AngularTechsLogosComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: AngularTechsLogosComponent, selector: "angular-techs-logos", inputs: { list: "list", name: "name", size: "size", label: "label", hiddenLabel: "hiddenLabel", class: "class", hiddenLogos: "hiddenLogos" }, viewQueries: [{ propertyName: "iconContainer", first: true, predicate: ["iconContainer"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"techs\" [ngClass]=\"class\">\r\n @if (name && getTech(name) && !list) {\r\n <figure\r\n class=\"tech-container\"\r\n [ngClass]=\"techClass(name)\"\r\n [style.width]=\"size ? size : '100px'\"\r\n >\r\n <ng-container *ngComponentOutlet=\"getIcon(name)\" />\r\n <figcaption [ngClass]=\"{ tooltip: hiddenLabel }\">\r\n {{ label ? label : getTech(name)?.name }}\r\n </figcaption>\r\n </figure>\r\n } @else if (!name && (list || hiddenLogos || techsList())) {\r\n @for (tech of techsList(); track tech.name;) {\r\n <figure\r\n class=\"tech-container\"\r\n [ngClass]=\"[tech.name.toLowerCase()]\"\r\n [style.width]=\"size ? size : '100px'\"\r\n [attr.key]=\"tech.name\"\r\n >\r\n <ng-container *ngComponentOutlet=\"getIcon(tech.name)\" />\r\n <figcaption [ngClass]=\"{ tooltip: hiddenLabel }\">\r\n {{ tech.name }}\r\n </figcaption>\r\n </figure>\r\n }\r\n }\r\n</div>\r\n", styles: [".techs{display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.techs .title{width:100%;text-align:center;margin-top:2rem}figure.tech-container{background:transparent;border:1px solid var(--vtl-background);border-radius:100px;width:120px!important;height:120px;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:.3s all}figure.tech-container:hover{background:var(--vtl-background);border-color:var(--vtl-background);transform:scale(1.1)}figure.tech-container svg{height:50px;margin-bottom:.2rem}figure{position:relative;text-align:center;margin:.2rem}figure figcaption{font-size:.7rem}figure figcaption.tooltip{position:absolute;bottom:2%;background:var(--vtl-background-tooltip);box-shadow:0 4px 10px var(--vtl-shadow-tooltip);padding:.2rem .5rem;border-radius:5px;pointer-events:none;opacity:0;transition:.3s all;color:#fff}figure:hover figcaption.tooltip{opacity:1;pointer-events:all}body{--vtl-background: rgba(0,0,0, .05);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #000;--vtl-background-svg: #000;--vtl-background-svg-invert: #fff;--vtl-background-gradient: linear-gradient(228deg, rgba(238,238,238,1) 0%, rgba(255,255,255,1) 60%)}body.darkmode{--vtl-background: rgba(0,0,0, .5);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #fff;--vtl-background-svg: #fff;--vtl-background-svg-invert: #000;--vtl-background-gradient: linear-gradient(228deg, rgb(24, 24, 24) 0%, rgb(38, 38, 38) 60%)}@media (prefers-color-scheme: light){:root{--vtl-background: rgba(0,0,0, .05);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #000;--vtl-background-svg: #000;--vtl-background-svg-invert: #fff;--vtl-background-gradient: linear-gradient(228deg, rgba(238,238,238,1) 0%, rgba(255,255,255,1) 60%)}}@media (prefers-color-scheme: dark){:root{--vtl-background: rgba(0,0,0, .5);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #fff;--vtl-background-svg: #fff;--vtl-background-svg-invert: #000;--vtl-background-gradient: linear-gradient(228deg, rgb(24, 24, 24) 0%, rgb(38, 38, 38) 60%)}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], encapsulation: i0.ViewEncapsulation.None }); }
68
- }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AngularTechsLogosComponent, decorators: [{
70
- type: Component,
71
- args: [{ selector: 'angular-techs-logos', encapsulation: ViewEncapsulation.None, template: "<div class=\"techs\" [ngClass]=\"class\">\r\n @if (name && getTech(name) && !list) {\r\n <figure\r\n class=\"tech-container\"\r\n [ngClass]=\"techClass(name)\"\r\n [style.width]=\"size ? size : '100px'\"\r\n >\r\n <ng-container *ngComponentOutlet=\"getIcon(name)\" />\r\n <figcaption [ngClass]=\"{ tooltip: hiddenLabel }\">\r\n {{ label ? label : getTech(name)?.name }}\r\n </figcaption>\r\n </figure>\r\n } @else if (!name && (list || hiddenLogos || techsList())) {\r\n @for (tech of techsList(); track tech.name;) {\r\n <figure\r\n class=\"tech-container\"\r\n [ngClass]=\"[tech.name.toLowerCase()]\"\r\n [style.width]=\"size ? size : '100px'\"\r\n [attr.key]=\"tech.name\"\r\n >\r\n <ng-container *ngComponentOutlet=\"getIcon(tech.name)\" />\r\n <figcaption [ngClass]=\"{ tooltip: hiddenLabel }\">\r\n {{ tech.name }}\r\n </figcaption>\r\n </figure>\r\n }\r\n }\r\n</div>\r\n", styles: [".techs{display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.techs .title{width:100%;text-align:center;margin-top:2rem}figure.tech-container{background:transparent;border:1px solid var(--vtl-background);border-radius:100px;width:120px!important;height:120px;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:.3s all}figure.tech-container:hover{background:var(--vtl-background);border-color:var(--vtl-background);transform:scale(1.1)}figure.tech-container svg{height:50px;margin-bottom:.2rem}figure{position:relative;text-align:center;margin:.2rem}figure figcaption{font-size:.7rem}figure figcaption.tooltip{position:absolute;bottom:2%;background:var(--vtl-background-tooltip);box-shadow:0 4px 10px var(--vtl-shadow-tooltip);padding:.2rem .5rem;border-radius:5px;pointer-events:none;opacity:0;transition:.3s all;color:#fff}figure:hover figcaption.tooltip{opacity:1;pointer-events:all}body{--vtl-background: rgba(0,0,0, .05);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #000;--vtl-background-svg: #000;--vtl-background-svg-invert: #fff;--vtl-background-gradient: linear-gradient(228deg, rgba(238,238,238,1) 0%, rgba(255,255,255,1) 60%)}body.darkmode{--vtl-background: rgba(0,0,0, .5);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #fff;--vtl-background-svg: #fff;--vtl-background-svg-invert: #000;--vtl-background-gradient: linear-gradient(228deg, rgb(24, 24, 24) 0%, rgb(38, 38, 38) 60%)}@media (prefers-color-scheme: light){:root{--vtl-background: rgba(0,0,0, .05);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #000;--vtl-background-svg: #000;--vtl-background-svg-invert: #fff;--vtl-background-gradient: linear-gradient(228deg, rgba(238,238,238,1) 0%, rgba(255,255,255,1) 60%)}}@media (prefers-color-scheme: dark){:root{--vtl-background: rgba(0,0,0, .5);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #fff;--vtl-background-svg: #fff;--vtl-background-svg-invert: #000;--vtl-background-gradient: linear-gradient(228deg, rgb(24, 24, 24) 0%, rgb(38, 38, 38) 60%)}}\n"] }]
72
- }], propDecorators: { list: [{
73
- type: Input
74
- }], name: [{
75
- type: Input
76
- }], size: [{
77
- type: Input
78
- }], label: [{
79
- type: Input
80
- }], hiddenLabel: [{
81
- type: Input
82
- }], class: [{
83
- type: Input
84
- }], hiddenLogos: [{
85
- type: Input
86
- }], iconContainer: [{
87
- type: ViewChild,
88
- args: ['iconContainer', { read: ViewContainerRef }]
89
- }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10ZWNocy1sb2dvcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRlY2hzLWxvZ29zL3NyYy9saWIvYW5ndWxhci10ZWNocy1sb2dvcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRlY2hzLWxvZ29zL3NyYy9saWIvYW5ndWxhci10ZWNocy1sb2dvcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFJTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBRWhCLGlCQUFpQixFQUNqQixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEtBQUssRUFBUSxNQUFNLG9CQUFvQixDQUFDOzs7QUFRakQsTUFBTSxPQUFPLDBCQUEwQjtJQU52QztRQWtCRSxVQUFLLEdBQVcsS0FBSyxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxNQUFNLENBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLHNCQUFpQixHQUFHLE1BQU0sQ0FBdUIsRUFBRSxDQUFDLENBQUM7UUFDckQsY0FBUyxHQUFHLE1BQU0sQ0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FpRXhDO0lBL0RDLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQzNCLElB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LElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHTixhQUFhO3NCQURaLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFR5cGUsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgc2lnbmFsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyB0ZWNocywgVGVjaCB9IGZyb20gJy4vdGVjaHMvdGVjaHMtZGF0YSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FuZ3VsYXItdGVjaHMtbG9nb3MnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hbmd1bGFyLXRlY2hzLWxvZ29zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hbmd1bGFyLXRlY2hzLWxvZ29zLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJUZWNoc0xvZ29zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIGxpc3Q6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzaXplOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBoaWRkZW5MYWJlbDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBjbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGhpZGRlbkxvZ29zOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaWNvbkNvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KVxyXG4gIGljb25Db250YWluZXIhOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICB0ZWNoczogVGVjaFtdID0gdGVjaHM7XHJcbiAgbGlzdFNpZ25hbCA9IHNpZ25hbDxzdHJpbmdbXSB8IHVuZGVmaW5lZD4oW10pO1xyXG4gIGhpZGRlbkxvZ29zU2lnbmFsID0gc2lnbmFsPHN0cmluZ1tdIHwgdW5kZWZpbmVkPihbXSk7XHJcbiAgdGVjaHNMaXN0ID0gc2lnbmFsPFRlY2hbXT4odGhpcy50ZWNocyk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm5hbWUpIHtcclxuICAgICAgdGhpcy51cGRhdGVUZWNocygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2xpc3QnXSkge1xyXG4gICAgICB0aGlzLmxpc3RTaWduYWwuc2V0KHRoaXMubGlzdCk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snaGlkZGVuTG9nb3MnXSkge1xyXG4gICAgICB0aGlzLmhpZGRlbkxvZ29zU2lnbmFsLnNldCh0aGlzLmhpZGRlbkxvZ29zKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMubmFtZSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVRlY2hzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVRlY2hzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgY3VycmVudExpc3QgPSB0aGlzLmxpc3RTaWduYWwoKTtcclxuICAgIGNvbnN0IGN1cnJlbnRIaWRkZW5Mb2dvcyA9IHRoaXMuaGlkZGVuTG9nb3NTaWduYWwoKTtcclxuXHJcbiAgICBpZiAoY3VycmVudExpc3QgJiYgdGhpcy5saXN0KSB7XHJcbiAgICAgIHRoaXMudGVjaHNMaXN0LnNldCh0aGlzLmdldFRlY2hzKGN1cnJlbnRMaXN0KSk7XHJcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRIaWRkZW5Mb2dvcyAmJiB0aGlzLmhpZGRlbkxvZ29zKSB7XHJcbiAgICAgIHRoaXMudGVjaHNMaXN0LnNldCh0aGlzLmhpZGRlblRlY2hzKGN1cnJlbnRIaWRkZW5Mb2dvcykpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50ZWNoc0xpc3Quc2V0KHRoaXMudGVjaHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHRlY2hDbGFzcyhuYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBjbGFzc05hbWUgPSBuYW1lPy50b0xvd2VyQ2FzZSgpIHx8ICcnO1xyXG4gICAgcmV0dXJuIFt0aGlzLmNsYXNzIHx8ICcnLCBjbGFzc05hbWVdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRlY2gobmFtZTogc3RyaW5nKTogVGVjaCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy50ZWNocy5maW5kKFxyXG4gICAgICAoaXRlbSkgPT4gaXRlbS5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IG5hbWUudG9Mb3dlckNhc2UoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VGVjaHMoaXRlbXM6IHN0cmluZ1tdKTogVGVjaFtdIHtcclxuICAgIHJldHVybiB0aGlzLnRlY2hzLmZpbHRlcigodGVjaCkgPT4ge1xyXG4gICAgICBpZiAodHlwZW9mIHRlY2gubmFtZSAhPT0gJ3N0cmluZycpIHJldHVybiBmYWxzZTtcclxuICAgICAgcmV0dXJuIGl0ZW1zLnNvbWUoKGl0ZW0pID0+IHtcclxuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gIT09ICdzdHJpbmcnKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRlY2gubmFtZS50b0xvd2VyQ2FzZSgpID09PSBpdGVtLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhpZGRlblRlY2hzKGl0ZW1zOiBzdHJpbmdbXSk6IFRlY2hbXSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZWNocy5maWx0ZXIoXHJcbiAgICAgICh0ZWNoKSA9PiAhaXRlbXMuaW5jbHVkZXModGVjaC5uYW1lLnRvTG93ZXJDYXNlKCkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEljb24obmFtZTogc3RyaW5nKTogVHlwZTxhbnk+IHwgbnVsbCB7XHJcbiAgICBjb25zdCB0ZWNoID0gdGhpcy5nZXRUZWNoKG5hbWUpO1xyXG4gICAgcmV0dXJuIHRlY2ggPyB0ZWNoLmljb24gOiBudWxsO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGVjaHNcIiBbbmdDbGFzc109XCJjbGFzc1wiPlxyXG4gIEBpZiAobmFtZSAmJiBnZXRUZWNoKG5hbWUpICYmICFsaXN0KSB7XHJcbiAgICA8ZmlndXJlXHJcbiAgICAgIGNsYXNzPVwidGVjaC1jb250YWluZXJcIlxyXG4gICAgICBbbmdDbGFzc109XCJ0ZWNoQ2xhc3MobmFtZSlcIlxyXG4gICAgICBbc3R5bGUud2lkdGhdPVwic2l6ZSA/IHNpemUgOiAnMTAwcHgnXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJnZXRJY29uKG5hbWUpXCIgLz5cclxuICAgICAgPGZpZ2NhcHRpb24gW25nQ2xhc3NdPVwieyB0b29sdGlwOiBoaWRkZW5MYWJlbCB9XCI+XHJcbiAgICAgICAge3sgbGFiZWwgPyBsYWJlbCA6IGdldFRlY2gobmFtZSk/Lm5hbWUgfX1cclxuICAgICAgPC9maWdjYXB0aW9uPlxyXG4gICAgPC9maWd1cmU+XHJcbiAgfSBAZWxzZSBpZiAoIW5hbWUgJiYgKGxpc3QgfHwgaGlkZGVuTG9nb3MgfHwgdGVjaHNMaXN0KCkpKSB7XHJcbiAgICBAZm9yICh0ZWNoIG9mIHRlY2hzTGlzdCgpOyB0cmFjayB0ZWNoLm5hbWU7KSB7XHJcbiAgICAgIDxmaWd1cmVcclxuICAgICAgICBjbGFzcz1cInRlY2gtY29udGFpbmVyXCJcclxuICAgICAgICBbbmdDbGFzc109XCJbdGVjaC5uYW1lLnRvTG93ZXJDYXNlKCldXCJcclxuICAgICAgICBbc3R5bGUud2lkdGhdPVwic2l6ZSA/IHNpemUgOiAnMTAwcHgnXCJcclxuICAgICAgICBbYXR0ci5rZXldPVwidGVjaC5uYW1lXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiZ2V0SWNvbih0ZWNoLm5hbWUpXCIgLz5cclxuICAgICAgICA8ZmlnY2FwdGlvbiBbbmdDbGFzc109XCJ7IHRvb2x0aXA6IGhpZGRlbkxhYmVsIH1cIj5cclxuICAgICAgICAgIHt7IHRlY2gubmFtZSB9fVxyXG4gICAgICAgIDwvZmlnY2FwdGlvbj5cclxuICAgICAgPC9maWd1cmU+XHJcbiAgICB9XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
1
+ import{Component,Input,ViewChild,ViewContainerRef,ViewEncapsulation,signal}from"@angular/core";import{techs}from"./techs/techs-data";import*as i0 from"@angular/core";import*as i1 from"@angular/common";export class AngularTechsLogosComponent{constructor(){this.techs=techs,this.listSignal=signal([]),this.hiddenLogosSignal=signal([]),this.techsList=signal(this.techs)}ngOnInit(){this.name||this.updateTechs()}ngOnChanges(t){t.list&&this.listSignal.set(this.list),t.hiddenLogos&&this.hiddenLogosSignal.set(this.hiddenLogos),this.name||this.updateTechs()}updateTechs(){const t=this.listSignal(),e=this.hiddenLogosSignal();t&&this.list?this.techsList.set(this.getTechs(t)):e&&this.hiddenLogos?this.techsList.set(this.hiddenTechs(e)):this.techsList.set(this.techs)}techClass(t){const e=t?.toLowerCase()||"";return[this.class||"",e]}getTech(t){return this.techs.find((e=>e.name.toLowerCase()===t.toLowerCase()))}getTechs(t){return this.techs.filter((e=>"string"==typeof e.name&&t.some((t=>"string"==typeof t&&e.name.toLowerCase()===t.toLowerCase()))))}hiddenTechs(t){return this.techs.filter((e=>!t.includes(e.name.toLowerCase())))}getIcon(t){const e=this.getTech(t);return e?e.icon:null}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"18.2.8",ngImport:i0,type:AngularTechsLogosComponent,deps:[],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"18.2.8",type:AngularTechsLogosComponent,selector:"angular-techs-logos",inputs:{list:"list",name:"name",size:"size",label:"label",hiddenLabel:"hiddenLabel",class:"class",hiddenLogos:"hiddenLogos"},viewQueries:[{propertyName:"iconContainer",first:!0,predicate:["iconContainer"],descendants:!0,read:ViewContainerRef}],usesOnChanges:!0,ngImport:i0,template:'<div class="techs" [ngClass]="class">\n @if (name && getTech(name) && !list) {\n <figure\n class="tech-container"\n [ngClass]="techClass(name)"\n [style.width]="size ? size : \'100px\'"\n >\n <ng-container *ngComponentOutlet="getIcon(name)" />\n <figcaption [ngClass]="{ tooltip: hiddenLabel }">\n {{ label ? label : getTech(name)?.name }}\n </figcaption>\n </figure>\n } @else if (!name && (list || hiddenLogos || techsList())) {\n @for (tech of techsList(); track tech.name;) {\n <figure\n class="tech-container"\n [ngClass]="[tech.name.toLowerCase()]"\n [style.width]="size ? size : \'100px\'"\n [attr.key]="tech.name"\n >\n <ng-container *ngComponentOutlet="getIcon(tech.name)" />\n <figcaption [ngClass]="{ tooltip: hiddenLabel }">\n {{ tech.name }}\n </figcaption>\n </figure>\n }\n }\n</div>\n',styles:[".techs{display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.techs .title{width:100%;text-align:center;margin-top:2rem}figure.tech-container{background:transparent;border:1px solid var(--vtl-background);border-radius:100px;width:120px!important;height:120px;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:.3s all}figure.tech-container:hover{background:var(--vtl-background);border-color:var(--vtl-background);transform:scale(1.1)}figure.tech-container svg{height:50px;margin-bottom:.2rem}figure{position:relative;text-align:center;margin:.2rem}figure figcaption{font-size:.7rem}figure figcaption.tooltip{position:absolute;bottom:2%;background:var(--vtl-background-tooltip);box-shadow:0 4px 10px var(--vtl-shadow-tooltip);padding:.2rem .5rem;border-radius:5px;pointer-events:none;opacity:0;transition:.3s all;color:#fff}figure:hover figcaption.tooltip{opacity:1;pointer-events:all}body{--vtl-background: rgba(0,0,0, .05);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #000;--vtl-background-svg: #000;--vtl-background-svg-invert: #fff;--vtl-background-gradient: linear-gradient(228deg, rgba(238,238,238,1) 0%, rgba(255,255,255,1) 60%)}body.darkmode{--vtl-background: rgba(0,0,0, .5);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #fff;--vtl-background-svg: #fff;--vtl-background-svg-invert: #000;--vtl-background-gradient: linear-gradient(228deg, rgb(24, 24, 24) 0%, rgb(38, 38, 38) 60%)}@media (prefers-color-scheme: light){:root{--vtl-background: rgba(0,0,0, .05);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #000;--vtl-background-svg: #000;--vtl-background-svg-invert: #fff;--vtl-background-gradient: linear-gradient(228deg, rgba(238,238,238,1) 0%, rgba(255,255,255,1) 60%)}}@media (prefers-color-scheme: dark){:root{--vtl-background: rgba(0,0,0, .5);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #fff;--vtl-background-svg: #fff;--vtl-background-svg-invert: #000;--vtl-background-gradient: linear-gradient(228deg, rgb(24, 24, 24) 0%, rgb(38, 38, 38) 60%)}}\n"],dependencies:[{kind:"directive",type:i1.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]},{kind:"directive",type:i1.NgComponentOutlet,selector:"[ngComponentOutlet]",inputs:["ngComponentOutlet","ngComponentOutletInputs","ngComponentOutletInjector","ngComponentOutletContent","ngComponentOutletNgModule","ngComponentOutletNgModuleFactory"]}],encapsulation:i0.ViewEncapsulation.None})}}i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"18.2.8",ngImport:i0,type:AngularTechsLogosComponent,decorators:[{type:Component,args:[{selector:"angular-techs-logos",encapsulation:ViewEncapsulation.None,template:'<div class="techs" [ngClass]="class">\n @if (name && getTech(name) && !list) {\n <figure\n class="tech-container"\n [ngClass]="techClass(name)"\n [style.width]="size ? size : \'100px\'"\n >\n <ng-container *ngComponentOutlet="getIcon(name)" />\n <figcaption [ngClass]="{ tooltip: hiddenLabel }">\n {{ label ? label : getTech(name)?.name }}\n </figcaption>\n </figure>\n } @else if (!name && (list || hiddenLogos || techsList())) {\n @for (tech of techsList(); track tech.name;) {\n <figure\n class="tech-container"\n [ngClass]="[tech.name.toLowerCase()]"\n [style.width]="size ? size : \'100px\'"\n [attr.key]="tech.name"\n >\n <ng-container *ngComponentOutlet="getIcon(tech.name)" />\n <figcaption [ngClass]="{ tooltip: hiddenLabel }">\n {{ tech.name }}\n </figcaption>\n </figure>\n }\n }\n</div>\n',styles:[".techs{display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.techs .title{width:100%;text-align:center;margin-top:2rem}figure.tech-container{background:transparent;border:1px solid var(--vtl-background);border-radius:100px;width:120px!important;height:120px;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:.3s all}figure.tech-container:hover{background:var(--vtl-background);border-color:var(--vtl-background);transform:scale(1.1)}figure.tech-container svg{height:50px;margin-bottom:.2rem}figure{position:relative;text-align:center;margin:.2rem}figure figcaption{font-size:.7rem}figure figcaption.tooltip{position:absolute;bottom:2%;background:var(--vtl-background-tooltip);box-shadow:0 4px 10px var(--vtl-shadow-tooltip);padding:.2rem .5rem;border-radius:5px;pointer-events:none;opacity:0;transition:.3s all;color:#fff}figure:hover figcaption.tooltip{opacity:1;pointer-events:all}body{--vtl-background: rgba(0,0,0, .05);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #000;--vtl-background-svg: #000;--vtl-background-svg-invert: #fff;--vtl-background-gradient: linear-gradient(228deg, rgba(238,238,238,1) 0%, rgba(255,255,255,1) 60%)}body.darkmode{--vtl-background: rgba(0,0,0, .5);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #fff;--vtl-background-svg: #fff;--vtl-background-svg-invert: #000;--vtl-background-gradient: linear-gradient(228deg, rgb(24, 24, 24) 0%, rgb(38, 38, 38) 60%)}@media (prefers-color-scheme: light){:root{--vtl-background: rgba(0,0,0, .05);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #000;--vtl-background-svg: #000;--vtl-background-svg-invert: #fff;--vtl-background-gradient: linear-gradient(228deg, rgba(238,238,238,1) 0%, rgba(255,255,255,1) 60%)}}@media (prefers-color-scheme: dark){:root{--vtl-background: rgba(0,0,0, .5);--vtl-background-tooltip: #444;--vtl-shadow-tooltip: rgba(0,0,0,.2);--vtl-text: #fff;--vtl-background-svg: #fff;--vtl-background-svg-invert: #000;--vtl-background-gradient: linear-gradient(228deg, rgb(24, 24, 24) 0%, rgb(38, 38, 38) 60%)}}\n"]}]}],propDecorators:{list:[{type:Input}],name:[{type:Input}],size:[{type:Input}],label:[{type:Input}],hiddenLabel:[{type:Input}],class:[{type:Input}],hiddenLogos:[{type:Input}],iconContainer:[{type:ViewChild,args:["iconContainer",{read:ViewContainerRef}]}]}});