@lluc_llull/ui-lib 0.33.10 → 0.34.1

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 (262) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/lluc_llull-ui-lib-content-asymmetric-media.mjs +85 -28
  3. package/fesm2022/lluc_llull-ui-lib-content-asymmetric-media.mjs.map +1 -1
  4. package/fesm2022/lluc_llull-ui-lib-content-category-progress.mjs +81 -30
  5. package/fesm2022/lluc_llull-ui-lib-content-category-progress.mjs.map +1 -1
  6. package/fesm2022/lluc_llull-ui-lib-content-columns-media-stacked.mjs +90 -34
  7. package/fesm2022/lluc_llull-ui-lib-content-columns-media-stacked.mjs.map +1 -1
  8. package/fesm2022/lluc_llull-ui-lib-content-contact-minimal.mjs +109 -37
  9. package/fesm2022/lluc_llull-ui-lib-content-contact-minimal.mjs.map +1 -1
  10. package/fesm2022/lluc_llull-ui-lib-content-content-document.mjs +58 -26
  11. package/fesm2022/lluc_llull-ui-lib-content-content-document.mjs.map +1 -1
  12. package/fesm2022/lluc_llull-ui-lib-content-hero-section.mjs +139 -110
  13. package/fesm2022/lluc_llull-ui-lib-content-hero-section.mjs.map +1 -1
  14. package/fesm2022/lluc_llull-ui-lib-content-media-intro.mjs +91 -34
  15. package/fesm2022/lluc_llull-ui-lib-content-media-intro.mjs.map +1 -1
  16. package/fesm2022/lluc_llull-ui-lib-content-media-split.mjs +118 -76
  17. package/fesm2022/lluc_llull-ui-lib-content-media-split.mjs.map +1 -1
  18. package/fesm2022/lluc_llull-ui-lib-content-mosaic-grid.mjs +99 -44
  19. package/fesm2022/lluc_llull-ui-lib-content-mosaic-grid.mjs.map +1 -1
  20. package/fesm2022/lluc_llull-ui-lib-content-mosaic-parallax.mjs +109 -57
  21. package/fesm2022/lluc_llull-ui-lib-content-mosaic-parallax.mjs.map +1 -1
  22. package/fesm2022/lluc_llull-ui-lib-content-section-intro.mjs +100 -37
  23. package/fesm2022/lluc_llull-ui-lib-content-section-intro.mjs.map +1 -1
  24. package/fesm2022/lluc_llull-ui-lib-content-split-previewer.mjs +133 -61
  25. package/fesm2022/lluc_llull-ui-lib-content-split-previewer.mjs.map +1 -1
  26. package/fesm2022/lluc_llull-ui-lib-content-split-showcase.mjs +99 -37
  27. package/fesm2022/lluc_llull-ui-lib-content-split-showcase.mjs.map +1 -1
  28. package/fesm2022/lluc_llull-ui-lib-content-stacked-rows.mjs +61 -29
  29. package/fesm2022/lluc_llull-ui-lib-content-stacked-rows.mjs.map +1 -1
  30. package/fesm2022/lluc_llull-ui-lib-content.mjs +1286 -502
  31. package/fesm2022/lluc_llull-ui-lib-content.mjs.map +1 -1
  32. package/fesm2022/lluc_llull-ui-lib-directives.mjs +383 -262
  33. package/fesm2022/lluc_llull-ui-lib-directives.mjs.map +1 -1
  34. package/fesm2022/lluc_llull-ui-lib-effects.mjs +187 -150
  35. package/fesm2022/lluc_llull-ui-lib-effects.mjs.map +1 -1
  36. package/fesm2022/lluc_llull-ui-lib-enums.mjs +8 -12
  37. package/fesm2022/lluc_llull-ui-lib-enums.mjs.map +1 -1
  38. package/fesm2022/lluc_llull-ui-lib-feedback-404.mjs +97 -34
  39. package/fesm2022/lluc_llull-ui-lib-feedback-404.mjs.map +1 -1
  40. package/fesm2022/lluc_llull-ui-lib-feedback.mjs +97 -34
  41. package/fesm2022/lluc_llull-ui-lib-feedback.mjs.map +1 -1
  42. package/fesm2022/lluc_llull-ui-lib-footers-columns-footer.mjs +65 -27
  43. package/fesm2022/lluc_llull-ui-lib-footers-columns-footer.mjs.map +1 -1
  44. package/fesm2022/lluc_llull-ui-lib-footers-legal-footer.mjs +74 -37
  45. package/fesm2022/lluc_llull-ui-lib-footers-legal-footer.mjs.map +1 -1
  46. package/fesm2022/lluc_llull-ui-lib-footers-links-footer.mjs +59 -24
  47. package/fesm2022/lluc_llull-ui-lib-footers-links-footer.mjs.map +1 -1
  48. package/fesm2022/lluc_llull-ui-lib-footers-social-footer.mjs +95 -32
  49. package/fesm2022/lluc_llull-ui-lib-footers-social-footer.mjs.map +1 -1
  50. package/fesm2022/lluc_llull-ui-lib-footers-visual-footer.mjs +84 -45
  51. package/fesm2022/lluc_llull-ui-lib-footers-visual-footer.mjs.map +1 -1
  52. package/fesm2022/lluc_llull-ui-lib-footers.mjs +354 -125
  53. package/fesm2022/lluc_llull-ui-lib-footers.mjs.map +1 -1
  54. package/fesm2022/lluc_llull-ui-lib-headers-header-clear.mjs +153 -78
  55. package/fesm2022/lluc_llull-ui-lib-headers-header-clear.mjs.map +1 -1
  56. package/fesm2022/lluc_llull-ui-lib-headers-header-mobile.mjs +153 -78
  57. package/fesm2022/lluc_llull-ui-lib-headers-header-mobile.mjs.map +1 -1
  58. package/fesm2022/lluc_llull-ui-lib-headers.mjs +296 -142
  59. package/fesm2022/lluc_llull-ui-lib-headers.mjs.map +1 -1
  60. package/fesm2022/lluc_llull-ui-lib-interfaces.mjs +0 -4
  61. package/fesm2022/lluc_llull-ui-lib-mapper.mjs +242 -264
  62. package/fesm2022/lluc_llull-ui-lib-mapper.mjs.map +1 -1
  63. package/fesm2022/lluc_llull-ui-lib-modals.mjs +163 -65
  64. package/fesm2022/lluc_llull-ui-lib-modals.mjs.map +1 -1
  65. package/fesm2022/lluc_llull-ui-lib-screen-sizer.mjs +106 -97
  66. package/fesm2022/lluc_llull-ui-lib-screen-sizer.mjs.map +1 -1
  67. package/fesm2022/lluc_llull-ui-lib-shared.mjs +303 -148
  68. package/fesm2022/lluc_llull-ui-lib-shared.mjs.map +1 -1
  69. package/fesm2022/lluc_llull-ui-lib-sliders.mjs +72 -52
  70. package/fesm2022/lluc_llull-ui-lib-sliders.mjs.map +1 -1
  71. package/fesm2022/lluc_llull-ui-lib-theme.mjs +78 -80
  72. package/fesm2022/lluc_llull-ui-lib-theme.mjs.map +1 -1
  73. package/fesm2022/lluc_llull-ui-lib-utils.mjs +42 -64
  74. package/fesm2022/lluc_llull-ui-lib-utils.mjs.map +1 -1
  75. package/fesm2022/lluc_llull-ui-lib.mjs +42 -27
  76. package/fesm2022/lluc_llull-ui-lib.mjs.map +1 -1
  77. package/package.json +86 -85
  78. package/types/lluc_llull-ui-lib-content-asymmetric-media.d.ts +21 -0
  79. package/types/lluc_llull-ui-lib-content-category-progress.d.ts +34 -0
  80. package/types/lluc_llull-ui-lib-content-columns-media-stacked.d.ts +33 -0
  81. package/types/lluc_llull-ui-lib-content-contact-minimal.d.ts +39 -0
  82. package/types/lluc_llull-ui-lib-content-content-document.d.ts +24 -0
  83. package/types/lluc_llull-ui-lib-content-hero-section.d.ts +62 -0
  84. package/types/lluc_llull-ui-lib-content-media-intro.d.ts +33 -0
  85. package/types/lluc_llull-ui-lib-content-media-split.d.ts +36 -0
  86. package/types/lluc_llull-ui-lib-content-mosaic-grid.d.ts +27 -0
  87. package/types/lluc_llull-ui-lib-content-mosaic-parallax.d.ts +35 -0
  88. package/types/lluc_llull-ui-lib-content-section-intro.d.ts +33 -0
  89. package/types/lluc_llull-ui-lib-content-split-previewer.d.ts +47 -0
  90. package/types/lluc_llull-ui-lib-content-split-showcase.d.ts +43 -0
  91. package/types/lluc_llull-ui-lib-content-stacked-rows.d.ts +30 -0
  92. package/types/lluc_llull-ui-lib-content.d.ts +471 -0
  93. package/types/lluc_llull-ui-lib-directives.d.ts +93 -0
  94. package/types/lluc_llull-ui-lib-effects.d.ts +50 -0
  95. package/types/lluc_llull-ui-lib-enums.d.ts +7 -0
  96. package/types/lluc_llull-ui-lib-feedback-404.d.ts +33 -0
  97. package/types/lluc_llull-ui-lib-feedback.d.ts +33 -0
  98. package/types/lluc_llull-ui-lib-footers-columns-footer.d.ts +30 -0
  99. package/types/lluc_llull-ui-lib-footers-legal-footer.d.ts +40 -0
  100. package/types/lluc_llull-ui-lib-footers-links-footer.d.ts +15 -0
  101. package/types/lluc_llull-ui-lib-footers-social-footer.d.ts +27 -0
  102. package/types/lluc_llull-ui-lib-footers-visual-footer.d.ts +57 -0
  103. package/types/lluc_llull-ui-lib-footers.d.ts +161 -0
  104. package/types/lluc_llull-ui-lib-headers-header-clear.d.ts +68 -0
  105. package/types/lluc_llull-ui-lib-headers-header-mobile.d.ts +68 -0
  106. package/types/lluc_llull-ui-lib-headers.d.ts +132 -0
  107. package/types/lluc_llull-ui-lib-interfaces.d.ts +92 -0
  108. package/types/lluc_llull-ui-lib-mapper.d.ts +40 -0
  109. package/types/lluc_llull-ui-lib-modals.d.ts +47 -0
  110. package/types/lluc_llull-ui-lib-screen-sizer.d.ts +34 -0
  111. package/types/lluc_llull-ui-lib-shared.d.ts +99 -0
  112. package/types/lluc_llull-ui-lib-sliders.d.ts +17 -0
  113. package/types/lluc_llull-ui-lib-theme.d.ts +16 -0
  114. package/{utils/utils.d.ts → types/lluc_llull-ui-lib-utils.d.ts} +2 -2
  115. package/types/lluc_llull-ui-lib.d.ts +5 -0
  116. package/content/asymmetric-media/asymmetric-media.component.d.ts +0 -8
  117. package/content/asymmetric-media/asymmetric-media.interface.d.ts +0 -5
  118. package/content/asymmetric-media/index.d.ts +0 -2
  119. package/content/category-progress/category-progress.component.d.ts +0 -16
  120. package/content/category-progress/category-progress.interface.d.ts +0 -6
  121. package/content/category-progress/index.d.ts +0 -2
  122. package/content/columns-media-stacked/columns-media-stacked.component.d.ts +0 -10
  123. package/content/columns-media-stacked/columns-media-stacked.interface.d.ts +0 -7
  124. package/content/columns-media-stacked/index.d.ts +0 -2
  125. package/content/contact-minimal/contact-minimal.component.d.ts +0 -11
  126. package/content/contact-minimal/contact-minimal.interface.d.ts +0 -8
  127. package/content/contact-minimal/index.d.ts +0 -2
  128. package/content/content-document/content-document.component.d.ts +0 -11
  129. package/content/content-document/content-document.interface.d.ts +0 -5
  130. package/content/content-document/index.d.ts +0 -2
  131. package/content/hero-section/hero-section.component.d.ts +0 -19
  132. package/content/hero-section/hero-section.interface.d.ts +0 -11
  133. package/content/hero-section/hero-section.stories.d.ts +0 -7
  134. package/content/hero-section/index.d.ts +0 -3
  135. package/content/index.d.ts +0 -14
  136. package/content/media-intro/index.d.ts +0 -2
  137. package/content/media-intro/media-intro.component.d.ts +0 -10
  138. package/content/media-intro/media-intro.interface.d.ts +0 -7
  139. package/content/media-split/index.d.ts +0 -2
  140. package/content/media-split/media-split.component.d.ts +0 -18
  141. package/content/media-split/media-split.interface.d.ts +0 -6
  142. package/content/mosaic-grid/index.d.ts +0 -2
  143. package/content/mosaic-grid/mosaic-grid.component.d.ts +0 -14
  144. package/content/mosaic-grid/mosaic-grid.interface.d.ts +0 -5
  145. package/content/mosaic-parallax/index.d.ts +0 -2
  146. package/content/mosaic-parallax/mosaic-parallax.component.d.ts +0 -17
  147. package/content/mosaic-parallax/mosaic-parallax.interface.d.ts +0 -6
  148. package/content/section-intro/index.d.ts +0 -2
  149. package/content/section-intro/section-intro.component.d.ts +0 -11
  150. package/content/section-intro/section-intro.interface.d.ts +0 -2
  151. package/content/split-previewer/index.d.ts +0 -2
  152. package/content/split-previewer/split-previewer.component.d.ts +0 -24
  153. package/content/split-previewer/split-previewer.interface.d.ts +0 -8
  154. package/content/split-showcase/index.d.ts +0 -2
  155. package/content/split-showcase/split-showcase.component.d.ts +0 -15
  156. package/content/split-showcase/split-showcase.interface.d.ts +0 -9
  157. package/content/stacked-rows/index.d.ts +0 -2
  158. package/content/stacked-rows/stacked-rows.component.d.ts +0 -12
  159. package/content/stacked-rows/stacked-rows.interface.d.ts +0 -6
  160. package/directives/header-scroll.directive.d.ts +0 -8
  161. package/directives/highlight.directive.d.ts +0 -14
  162. package/directives/index.d.ts +0 -4
  163. package/directives/link-type.directive.d.ts +0 -26
  164. package/directives/scroll-reveal.directive.d.ts +0 -15
  165. package/effects/dynamic-background/dynamic-background.component.d.ts +0 -27
  166. package/effects/dynamic-background/effects/dynamic-effect.interface.d.ts +0 -6
  167. package/effects/dynamic-background/effects/effect-registry.d.ts +0 -3
  168. package/effects/dynamic-background/effects/sphere-deform/sphere-deform.effect.d.ts +0 -13
  169. package/effects/dynamic-background/index.d.ts +0 -1
  170. package/effects/index.d.ts +0 -1
  171. package/enums/index.d.ts +0 -1
  172. package/enums/link-type.enum.d.ts +0 -7
  173. package/feedback/404/404.component.d.ts +0 -10
  174. package/feedback/404/404.inteface.d.ts +0 -7
  175. package/feedback/404/index.d.ts +0 -2
  176. package/feedback/index.d.ts +0 -1
  177. package/fesm2022/lluc_llull-ui-lib-interfaces.mjs.map +0 -1
  178. package/footers/columns-footer/columns-footer.component.d.ts +0 -17
  179. package/footers/columns-footer/columns-footer.interface.d.ts +0 -5
  180. package/footers/columns-footer/index.d.ts +0 -2
  181. package/footers/index.d.ts +0 -5
  182. package/footers/legal-footer/index.d.ts +0 -2
  183. package/footers/legal-footer/legal-footer.component.d.ts +0 -12
  184. package/footers/legal-footer/legal-footer.interface.d.ts +0 -9
  185. package/footers/links-footer/index.d.ts +0 -2
  186. package/footers/links-footer/links-footer.component.d.ts +0 -7
  187. package/footers/links-footer/links-footer.interface.d.ts +0 -4
  188. package/footers/social-footer/index.d.ts +0 -2
  189. package/footers/social-footer/social-footer.component.d.ts +0 -9
  190. package/footers/social-footer/social-footer.interface.d.ts +0 -6
  191. package/footers/visual-footer/index.d.ts +0 -2
  192. package/footers/visual-footer/visual-footer.component.d.ts +0 -14
  193. package/footers/visual-footer/visual-footer.interface.d.ts +0 -11
  194. package/headers/header-clear/header-clear.component.d.ts +0 -28
  195. package/headers/header-clear/header-clear.interface.d.ts +0 -9
  196. package/headers/header-clear/index.d.ts +0 -2
  197. package/headers/header-mobile/header-mobile.component.d.ts +0 -28
  198. package/headers/header-mobile/header-mobile.interface.d.ts +0 -9
  199. package/headers/header-mobile/index.d.ts +0 -2
  200. package/headers/index.d.ts +0 -2
  201. package/index.d.ts +0 -5
  202. package/interfaces/index.d.ts +0 -8
  203. package/interfaces/page-config.interface.d.ts +0 -22
  204. package/interfaces/site-config.interface.d.ts +0 -21
  205. package/interfaces/ui-lib-address.interface.d.ts +0 -7
  206. package/interfaces/ui-lib-button.interface.d.ts +0 -7
  207. package/interfaces/ui-lib-image.interface.d.ts +0 -10
  208. package/interfaces/ui-lib-lang-item.interface.d.ts +0 -5
  209. package/interfaces/ui-lib-nav-items.interface.d.ts +0 -17
  210. package/interfaces/ui-lib-texts.interface.d.ts +0 -6
  211. package/lib/ui-lib.component.d.ts +0 -5
  212. package/mapper/cdn.token.d.ts +0 -2
  213. package/mapper/cloudinary.token.d.ts +0 -2
  214. package/mapper/component-mappers/404.mapper.d.ts +0 -2
  215. package/mapper/component-mappers/asymmetric-media.mapper.d.ts +0 -2
  216. package/mapper/component-mappers/category-progress.mapper.d.ts +0 -2
  217. package/mapper/component-mappers/columns-footer.mapper.d.ts +0 -2
  218. package/mapper/component-mappers/columns-media-stacked.mapper.d.ts +0 -2
  219. package/mapper/component-mappers/contact-minimal.mapper.d.ts +0 -2
  220. package/mapper/component-mappers/content-document.mapper.d.ts +0 -2
  221. package/mapper/component-mappers/header-clear.mapper.d.ts +0 -2
  222. package/mapper/component-mappers/hero-section.mapper.d.ts +0 -2
  223. package/mapper/component-mappers/index.d.ts +0 -24
  224. package/mapper/component-mappers/lang-modal.mapper.d.ts +0 -2
  225. package/mapper/component-mappers/legal-footer.mapper.d.ts +0 -2
  226. package/mapper/component-mappers/links-footer.mapper.d.ts +0 -2
  227. package/mapper/component-mappers/media-intro.mapper.d.ts +0 -2
  228. package/mapper/component-mappers/media-split.mapper.d.ts +0 -2
  229. package/mapper/component-mappers/mosaic-grid.mapper.d.ts +0 -2
  230. package/mapper/component-mappers/mosaic-parallax.mapper.d.ts +0 -2
  231. package/mapper/component-mappers/nav-modal.mapper.d.ts +0 -3
  232. package/mapper/component-mappers/section-intro.mapper.d.ts +0 -2
  233. package/mapper/component-mappers/social-footer.mapper.d.ts +0 -2
  234. package/mapper/component-mappers/split-previewer.mapper.d.ts +0 -2
  235. package/mapper/component-mappers/split-showcase.mapper.d.ts +0 -2
  236. package/mapper/component-mappers/stacked-rows.mapper.d.ts +0 -2
  237. package/mapper/component-mappers/types.d.ts +0 -1
  238. package/mapper/component-mappers/visual-footer.mapper.d.ts +0 -2
  239. package/mapper/index.d.ts +0 -4
  240. package/mapper/mapper.service.d.ts +0 -10
  241. package/modals/index.d.ts +0 -2
  242. package/modals/lang-modal/index.d.ts +0 -2
  243. package/modals/lang-modal/lang-modal.component.d.ts +0 -18
  244. package/modals/lang-modal/lang-modal.interface.d.ts +0 -2
  245. package/modals/nav-modal/index.d.ts +0 -2
  246. package/modals/nav-modal/nav-modal.component.d.ts +0 -11
  247. package/modals/nav-modal/nav-modal.interface.d.ts +0 -5
  248. package/public-api.d.ts +0 -1
  249. package/screen-sizer/index.d.ts +0 -1
  250. package/screen-sizer/screen-sizer.service.d.ts +0 -34
  251. package/shared/index.d.ts +0 -2
  252. package/shared/ui-icon/index.d.ts +0 -3
  253. package/shared/ui-icon/ui-icon.component.d.ts +0 -15
  254. package/shared/ui-icon/ui-icon.interface.d.ts +0 -5
  255. package/shared/ui-icon/ui-icon.mock.d.ts +0 -8
  256. package/shared/ui-image/index.d.ts +0 -1
  257. package/shared/ui-image/ui-image.component.d.ts +0 -21
  258. package/sliders/index.d.ts +0 -1
  259. package/sliders/swiper.directive.d.ts +0 -12
  260. package/theme/index.d.ts +0 -1
  261. package/theme/theme.service.d.ts +0 -16
  262. package/utils/index.d.ts +0 -1
@@ -1,149 +1,304 @@
1
- import { CommonModule } from '@angular/common';
2
- import * as i0 from '@angular/core';
3
- import { Input, Component, HostBinding, Optional, Inject } from '@angular/core';
4
- import * as simpleIcons from 'simple-icons';
5
- import * as i1 from 'lucide-angular';
6
- import { LucideAngularModule } from 'lucide-angular';
7
- import * as i1$1 from '@cloudinary/ng';
8
- import { responsive, lazyload, CloudinaryModule } from '@cloudinary/ng';
9
- import { CloudinaryImage } from '@cloudinary/url-gen';
10
- import { format, quality } from '@cloudinary/url-gen/actions/delivery';
11
- import { limitFit } from '@cloudinary/url-gen/actions/resize';
12
- import { auto } from '@cloudinary/url-gen/qualifiers/format';
13
- import { auto as auto$1 } from '@cloudinary/url-gen/qualifiers/quality';
14
- import { CLOUDINARY_CLOUD_NAME } from '@lluc_llull/ui-lib/mapper';
15
-
16
- class UiIconComponent {
17
- name;
18
- size = 24;
19
- color = 'currentColor';
20
- icon;
21
- ngOnChanges() {
22
- this.resolveBrandIcon();
23
- }
24
- get isBrandIcon() {
25
- return !!this.icon;
26
- }
27
- get brandIcon() {
28
- return this.icon ?? null;
29
- }
30
- resolveBrandIcon() {
31
- if (!this.name) {
32
- this.icon = null;
33
- return;
34
- }
35
- const key = 'si' + this.name.replace(/[^a-z0-9]/gi, '').replace(/^\w/, (c) => c.toUpperCase());
36
- this.icon = simpleIcons[key] ?? null;
37
- }
38
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: UiIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: UiIconComponent, isStandalone: true, selector: "ui-icon", inputs: { name: "name", size: "size", color: "color" }, usesOnChanges: true, ngImport: i0, template: "@if (isBrandIcon) {\n <svg\n class=\"ui-icon ui-icon--brand\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.fill]=\"color\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path [attr.d]=\"brandIcon?.path\"></path>\n </svg>\n} @else {\n <lucide-icon\n class=\"ui-icon ui-icon--lucide\"\n [name]=\"name\"\n [size]=\"size\"\n [color]=\"color\"\n ></lucide-icon>\n}\n", styles: [".ui-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.ui-icon--brand svg{display:block;width:100%!important;height:100%!important}.ui-icon--lucide{display:inline-flex}.ui-icon--lucide svg{display:block;width:100%!important;height:100%!important;min-width:1em;min-height:1em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }] });
40
- }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: UiIconComponent, decorators: [{
42
- type: Component,
43
- args: [{ selector: 'ui-icon', standalone: true, imports: [CommonModule, LucideAngularModule], template: "@if (isBrandIcon) {\n <svg\n class=\"ui-icon ui-icon--brand\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.fill]=\"color\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path [attr.d]=\"brandIcon?.path\"></path>\n </svg>\n} @else {\n <lucide-icon\n class=\"ui-icon ui-icon--lucide\"\n [name]=\"name\"\n [size]=\"size\"\n [color]=\"color\"\n ></lucide-icon>\n}\n", styles: [".ui-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.ui-icon--brand svg{display:block;width:100%!important;height:100%!important}.ui-icon--lucide{display:inline-flex}.ui-icon--lucide svg{display:block;width:100%!important;height:100%!important;min-width:1em;min-height:1em}\n"] }]
44
- }], propDecorators: { name: [{
45
- type: Input
46
- }], size: [{
47
- type: Input
48
- }], color: [{
49
- type: Input
50
- }] } });
51
-
52
- class MockUiIconComponent {
53
- name;
54
- size = 24;
55
- color = 'currentColor';
56
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MockUiIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
57
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: MockUiIconComponent, isStandalone: true, selector: "ui-icon", inputs: { name: "name", size: "size", color: "color" }, ngImport: i0, template: '', isInline: true });
58
- }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MockUiIconComponent, decorators: [{
60
- type: Component,
61
- args: [{
62
- selector: 'ui-icon',
63
- standalone: true,
64
- template: '',
65
- }]
66
- }], propDecorators: { name: [{
67
- type: Input
68
- }], size: [{
69
- type: Input
70
- }], color: [{
71
- type: Input
72
- }] } });
73
-
74
- class UiImageComponent {
75
- globalCloudName;
76
- publicId;
77
- cloudName;
78
- transformations;
79
- eager = false;
80
- width;
81
- height;
82
- img;
83
- plugins = [];
84
- constructor(globalCloudName) {
85
- this.globalCloudName = globalCloudName;
86
- }
87
- ngOnInit() {
88
- this.initImage();
89
- }
90
- ngOnChanges() {
91
- this.initImage();
92
- }
93
- get aspectRatioStyle() {
94
- if (this.width && this.height) {
95
- return `${this.width} / ${this.height}`;
96
- }
97
- return null;
98
- }
99
- initImage() {
100
- const activeCloudName = this.cloudName || this.globalCloudName;
101
- if (this.publicId && activeCloudName) {
102
- this.img = new CloudinaryImage(this.publicId, { cloudName: activeCloudName })
103
- .delivery(format(auto()))
104
- .delivery(quality(auto$1()))
105
- .resize(limitFit().width(1920));
106
- this.plugins = [responsive({ steps: 200 })];
107
- if (!this.eager) {
108
- this.plugins.push(lazyload());
109
- }
110
- }
111
- else if (!activeCloudName) {
112
- console.warn('[UiImageComponent]: No cloudName provided. Please provide it via @Input() or the CLOUDINARY_CLOUD_NAME InjectionToken.');
113
- }
114
- }
115
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: UiImageComponent, deps: [{ token: CLOUDINARY_CLOUD_NAME, optional: true }], target: i0.ɵɵFactoryTarget.Component });
116
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: UiImageComponent, isStandalone: true, selector: "ui-image", inputs: { publicId: "publicId", cloudName: "cloudName", transformations: "transformations", eager: "eager", width: "width", height: "height" }, host: { properties: { "style.--ui-image-ratio": "this.aspectRatioStyle" } }, usesOnChanges: true, ngImport: i0, template: "@if (img) {\n @if (eager) {\n <img [src]=\"img.toURL()\" fetchpriority=\"high\" loading=\"eager\" alt=\"\"\n [attr.width]=\"width ?? null\" [attr.height]=\"height ?? null\" />\n } @else {\n <advanced-image [cldImg]=\"img\" [plugins]=\"plugins\"></advanced-image>\n }\n}\n", styles: [":host{display:inline-block;max-width:100%;aspect-ratio:var(--ui-image-ratio, auto)}:host advanced-image,:host>img{display:block;width:100%;height:100%;object-fit:inherit;border-radius:inherit}:host advanced-image ::ng-deep img,:host>img ::ng-deep img{width:100%;height:100%;object-fit:inherit;border-radius:inherit}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: CloudinaryModule }, { kind: "component", type: i1$1.CloudinaryImageComponent, selector: "advanced-image", inputs: ["cldImg", "plugins", "alt", "width", "height", "loading"] }] });
117
- }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: UiImageComponent, decorators: [{
119
- type: Component,
120
- args: [{ selector: 'ui-image', standalone: true, imports: [CommonModule, CloudinaryModule], template: "@if (img) {\n @if (eager) {\n <img [src]=\"img.toURL()\" fetchpriority=\"high\" loading=\"eager\" alt=\"\"\n [attr.width]=\"width ?? null\" [attr.height]=\"height ?? null\" />\n } @else {\n <advanced-image [cldImg]=\"img\" [plugins]=\"plugins\"></advanced-image>\n }\n}\n", styles: [":host{display:inline-block;max-width:100%;aspect-ratio:var(--ui-image-ratio, auto)}:host advanced-image,:host>img{display:block;width:100%;height:100%;object-fit:inherit;border-radius:inherit}:host advanced-image ::ng-deep img,:host>img ::ng-deep img{width:100%;height:100%;object-fit:inherit;border-radius:inherit}\n"] }]
121
- }], ctorParameters: () => [{ type: undefined, decorators: [{
122
- type: Optional
123
- }, {
124
- type: Inject,
125
- args: [CLOUDINARY_CLOUD_NAME]
126
- }] }], propDecorators: { publicId: [{
127
- type: Input,
128
- args: [{ required: true }]
129
- }], cloudName: [{
130
- type: Input
131
- }], transformations: [{
132
- type: Input
133
- }], eager: [{
134
- type: Input
135
- }], width: [{
136
- type: Input
137
- }], height: [{
138
- type: Input
139
- }], aspectRatioStyle: [{
140
- type: HostBinding,
141
- args: ['style.--ui-image-ratio']
142
- }] } });
143
-
144
- /**
145
- * Generated bundle index. Do not edit.
146
- */
147
-
1
+ import { CommonModule } from "@angular/common";
2
+ import * as i0 from "@angular/core";
3
+ import { Component, HostBinding, Inject, Input, Optional } from "@angular/core";
4
+ import * as simpleIcons from "simple-icons";
5
+ import * as i1$1 from "lucide-angular";
6
+ import { ArrowLeft, ArrowRight, Home, LUCIDE_ICONS, LucideAngularModule, LucideIconProvider, Moon, MoveRight, Sun } from "lucide-angular";
7
+ import * as i1 from "@cloudinary/ng";
8
+ import { CloudinaryModule, lazyload, responsive } from "@cloudinary/ng";
9
+ import { CloudinaryImage } from "@cloudinary/url-gen";
10
+ import { format, quality } from "@cloudinary/url-gen/actions/delivery";
11
+ import { limitFit } from "@cloudinary/url-gen/actions/resize";
12
+ import { auto } from "@cloudinary/url-gen/qualifiers/format";
13
+ import { auto as auto$1 } from "@cloudinary/url-gen/qualifiers/quality";
14
+ import { CLOUDINARY_CLOUD_NAME } from "@lluc_llull/ui-lib/mapper";
15
+ var UiIconComponent = class UiIconComponent {
16
+ name;
17
+ size = 24;
18
+ color = "currentColor";
19
+ icon;
20
+ ngOnChanges() {
21
+ this.resolveBrandIcon();
22
+ }
23
+ get isBrandIcon() {
24
+ return !!this.icon;
25
+ }
26
+ get brandIcon() {
27
+ return this.icon ?? null;
28
+ }
29
+ resolveBrandIcon() {
30
+ if (!this.name) {
31
+ this.icon = null;
32
+ return;
33
+ }
34
+ const key = "si" + this.name.replace(/[^a-z0-9]/gi, "").replace(/^\w/, (c) => c.toUpperCase());
35
+ this.icon = simpleIcons[key] ?? null;
36
+ }
37
+ static ɵfac = i0.ɵɵngDeclareFactory({
38
+ minVersion: "12.0.0",
39
+ version: "22.2.4",
40
+ ngImport: i0,
41
+ type: UiIconComponent,
42
+ deps: [],
43
+ target: i0.ɵɵFactoryTarget.Component
44
+ });
45
+ static ɵcmp = i0.ɵɵngDeclareComponent({
46
+ minVersion: "17.0.0",
47
+ version: "22.2.4",
48
+ type: UiIconComponent,
49
+ isStandalone: true,
50
+ selector: "ui-icon",
51
+ inputs: {
52
+ name: "name",
53
+ size: "size",
54
+ color: "color"
55
+ },
56
+ providers: [{
57
+ provide: LUCIDE_ICONS,
58
+ multi: true,
59
+ useValue: new LucideIconProvider({
60
+ ArrowLeft,
61
+ ArrowRight,
62
+ Home,
63
+ Moon,
64
+ MoveRight,
65
+ Sun
66
+ })
67
+ }],
68
+ usesOnChanges: true,
69
+ ngImport: i0,
70
+ template: "@if (isBrandIcon) {\n <svg\n class=\"ui-icon ui-icon--brand\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.fill]=\"color\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path [attr.d]=\"brandIcon?.path\"></path>\n </svg>\n} @else {\n <lucide-icon\n class=\"ui-icon ui-icon--lucide\"\n [name]=\"name\"\n [size]=\"size\"\n [color]=\"color\"\n ></lucide-icon>\n}\n",
71
+ styles: [".ui-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.ui-icon--brand svg{display:block;width:100%!important;height:100%!important}.ui-icon--lucide{display:inline-flex}.ui-icon--lucide svg{display:block;width:100%!important;height:100%!important;min-width:1em;min-height:1em}\n"],
72
+ dependencies: [
73
+ {
74
+ kind: "ngmodule",
75
+ type: CommonModule
76
+ },
77
+ {
78
+ kind: "ngmodule",
79
+ type: LucideAngularModule
80
+ },
81
+ {
82
+ kind: "component",
83
+ type: i1$1.LucideAngularComponent,
84
+ selector: "lucide-angular, lucide-icon, i-lucide, span-lucide",
85
+ inputs: [
86
+ "class",
87
+ "name",
88
+ "img",
89
+ "color",
90
+ "absoluteStrokeWidth",
91
+ "size",
92
+ "strokeWidth"
93
+ ]
94
+ }
95
+ ]
96
+ });
97
+ };
98
+ i0.ɵɵngDeclareClassMetadata({
99
+ minVersion: "12.0.0",
100
+ version: "22.2.4",
101
+ ngImport: i0,
102
+ type: UiIconComponent,
103
+ decorators: [{
104
+ type: Component,
105
+ args: [{
106
+ selector: "ui-icon",
107
+ standalone: true,
108
+ imports: [CommonModule, LucideAngularModule],
109
+ providers: [{
110
+ provide: LUCIDE_ICONS,
111
+ multi: true,
112
+ useValue: new LucideIconProvider({
113
+ ArrowLeft,
114
+ ArrowRight,
115
+ Home,
116
+ Moon,
117
+ MoveRight,
118
+ Sun
119
+ })
120
+ }],
121
+ template: "@if (isBrandIcon) {\n <svg\n class=\"ui-icon ui-icon--brand\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.fill]=\"color\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path [attr.d]=\"brandIcon?.path\"></path>\n </svg>\n} @else {\n <lucide-icon\n class=\"ui-icon ui-icon--lucide\"\n [name]=\"name\"\n [size]=\"size\"\n [color]=\"color\"\n ></lucide-icon>\n}\n",
122
+ styles: [".ui-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.ui-icon--brand svg{display:block;width:100%!important;height:100%!important}.ui-icon--lucide{display:inline-flex}.ui-icon--lucide svg{display:block;width:100%!important;height:100%!important;min-width:1em;min-height:1em}\n"]
123
+ }]
124
+ }],
125
+ propDecorators: {
126
+ name: [{ type: Input }],
127
+ size: [{ type: Input }],
128
+ color: [{ type: Input }]
129
+ }
130
+ });
131
+ var MockUiIconComponent = class MockUiIconComponent {
132
+ name;
133
+ size = 24;
134
+ color = "currentColor";
135
+ static ɵfac = i0.ɵɵngDeclareFactory({
136
+ minVersion: "12.0.0",
137
+ version: "22.2.4",
138
+ ngImport: i0,
139
+ type: MockUiIconComponent,
140
+ deps: [],
141
+ target: i0.ɵɵFactoryTarget.Component
142
+ });
143
+ static ɵcmp = i0.ɵɵngDeclareComponent({
144
+ minVersion: "14.0.0",
145
+ version: "22.2.4",
146
+ type: MockUiIconComponent,
147
+ isStandalone: true,
148
+ selector: "ui-icon",
149
+ inputs: {
150
+ name: "name",
151
+ size: "size",
152
+ color: "color"
153
+ },
154
+ ngImport: i0,
155
+ template: "",
156
+ isInline: true
157
+ });
158
+ };
159
+ i0.ɵɵngDeclareClassMetadata({
160
+ minVersion: "12.0.0",
161
+ version: "22.2.4",
162
+ ngImport: i0,
163
+ type: MockUiIconComponent,
164
+ decorators: [{
165
+ type: Component,
166
+ args: [{
167
+ selector: "ui-icon",
168
+ standalone: true,
169
+ template: ""
170
+ }]
171
+ }],
172
+ propDecorators: {
173
+ name: [{ type: Input }],
174
+ size: [{ type: Input }],
175
+ color: [{ type: Input }]
176
+ }
177
+ });
178
+ var UiImageComponent = class UiImageComponent {
179
+ globalCloudName;
180
+ publicId;
181
+ cloudName;
182
+ transformations;
183
+ eager = false;
184
+ width;
185
+ height;
186
+ img;
187
+ plugins = [];
188
+ constructor(globalCloudName) {
189
+ this.globalCloudName = globalCloudName;
190
+ }
191
+ ngOnInit() {
192
+ this.initImage();
193
+ }
194
+ ngOnChanges() {
195
+ this.initImage();
196
+ }
197
+ get aspectRatioStyle() {
198
+ if (this.width && this.height) return `${this.width} / ${this.height}`;
199
+ return null;
200
+ }
201
+ initImage() {
202
+ const activeCloudName = this.cloudName || this.globalCloudName;
203
+ if (this.publicId && activeCloudName) {
204
+ this.img = new CloudinaryImage(this.publicId, { cloudName: activeCloudName }).delivery(format(auto())).delivery(quality(auto$1())).resize(limitFit().width(1920));
205
+ this.plugins = [responsive({ steps: 200 })];
206
+ if (!this.eager) this.plugins.push(lazyload());
207
+ } else if (!activeCloudName) console.warn("[UiImageComponent]: No cloudName provided. Please provide it via @Input() or the CLOUDINARY_CLOUD_NAME InjectionToken.");
208
+ }
209
+ static ɵfac = i0.ɵɵngDeclareFactory({
210
+ minVersion: "12.0.0",
211
+ version: "22.2.4",
212
+ ngImport: i0,
213
+ type: UiImageComponent,
214
+ deps: [{
215
+ token: CLOUDINARY_CLOUD_NAME,
216
+ optional: true
217
+ }],
218
+ target: i0.ɵɵFactoryTarget.Component
219
+ });
220
+ static ɵcmp = i0.ɵɵngDeclareComponent({
221
+ minVersion: "17.0.0",
222
+ version: "22.2.4",
223
+ type: UiImageComponent,
224
+ isStandalone: true,
225
+ selector: "ui-image",
226
+ inputs: {
227
+ publicId: "publicId",
228
+ cloudName: "cloudName",
229
+ transformations: "transformations",
230
+ eager: "eager",
231
+ width: "width",
232
+ height: "height"
233
+ },
234
+ host: { properties: { "style.--ui-image-ratio": "this.aspectRatioStyle" } },
235
+ usesOnChanges: true,
236
+ ngImport: i0,
237
+ template: "@if (img) {\n @if (eager) {\n <img [src]=\"img.toURL()\" fetchpriority=\"high\" loading=\"eager\" alt=\"\"\n [attr.width]=\"width ?? null\" [attr.height]=\"height ?? null\" />\n } @else {\n <advanced-image [cldImg]=\"img\" [plugins]=\"plugins\"></advanced-image>\n }\n}\n",
238
+ styles: [":host{display:inline-block;max-width:100%;aspect-ratio:var(--ui-image-ratio, auto)}:host advanced-image,:host>img{display:block;width:100%;height:100%;object-fit:inherit;border-radius:inherit}:host advanced-image ::ng-deep img,:host>img ::ng-deep img{width:100%;height:100%;object-fit:inherit;border-radius:inherit}\n"],
239
+ dependencies: [
240
+ {
241
+ kind: "ngmodule",
242
+ type: CommonModule
243
+ },
244
+ {
245
+ kind: "ngmodule",
246
+ type: CloudinaryModule
247
+ },
248
+ {
249
+ kind: "component",
250
+ type: i1.CloudinaryImageComponent,
251
+ selector: "advanced-image",
252
+ inputs: [
253
+ "cldImg",
254
+ "plugins",
255
+ "alt",
256
+ "width",
257
+ "height",
258
+ "loading"
259
+ ]
260
+ }
261
+ ]
262
+ });
263
+ };
264
+ i0.ɵɵngDeclareClassMetadata({
265
+ minVersion: "12.0.0",
266
+ version: "22.2.4",
267
+ ngImport: i0,
268
+ type: UiImageComponent,
269
+ decorators: [{
270
+ type: Component,
271
+ args: [{
272
+ selector: "ui-image",
273
+ standalone: true,
274
+ imports: [CommonModule, CloudinaryModule],
275
+ template: "@if (img) {\n @if (eager) {\n <img [src]=\"img.toURL()\" fetchpriority=\"high\" loading=\"eager\" alt=\"\"\n [attr.width]=\"width ?? null\" [attr.height]=\"height ?? null\" />\n } @else {\n <advanced-image [cldImg]=\"img\" [plugins]=\"plugins\"></advanced-image>\n }\n}\n",
276
+ styles: [":host{display:inline-block;max-width:100%;aspect-ratio:var(--ui-image-ratio, auto)}:host advanced-image,:host>img{display:block;width:100%;height:100%;object-fit:inherit;border-radius:inherit}:host advanced-image ::ng-deep img,:host>img ::ng-deep img{width:100%;height:100%;object-fit:inherit;border-radius:inherit}\n"]
277
+ }]
278
+ }],
279
+ ctorParameters: () => [{
280
+ type: void 0,
281
+ decorators: [{ type: Optional }, {
282
+ type: Inject,
283
+ args: [CLOUDINARY_CLOUD_NAME]
284
+ }]
285
+ }],
286
+ propDecorators: {
287
+ publicId: [{
288
+ type: Input,
289
+ args: [{ required: true }]
290
+ }],
291
+ cloudName: [{ type: Input }],
292
+ transformations: [{ type: Input }],
293
+ eager: [{ type: Input }],
294
+ width: [{ type: Input }],
295
+ height: [{ type: Input }],
296
+ aspectRatioStyle: [{
297
+ type: HostBinding,
298
+ args: ["style.--ui-image-ratio"]
299
+ }]
300
+ }
301
+ });
148
302
  export { MockUiIconComponent, UiIconComponent, UiImageComponent };
149
- //# sourceMappingURL=lluc_llull-ui-lib-shared.mjs.map
303
+
304
+ //# sourceMappingURL=lluc_llull-ui-lib-shared.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"lluc_llull-ui-lib-shared.mjs","sources":["../../../projects/ui-lib/shared/ui-icon/ui-icon.component.ts","../../../projects/ui-lib/shared/ui-icon/ui-icon.component.html","../../../projects/ui-lib/shared/ui-icon/ui-icon.mock.ts","../../../projects/ui-lib/shared/ui-image/ui-image.component.ts","../../../projects/ui-lib/shared/ui-image/ui-image.component.html","../../../projects/ui-lib/shared/lluc_llull-ui-lib-shared.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges } from '@angular/core';\nimport type { SimpleIcon } from 'simple-icons';\nimport * as simpleIcons from 'simple-icons';\nimport { LucideAngularModule } from 'lucide-angular';\n\n@Component({\n selector: 'ui-icon',\n standalone: true,\n imports: [CommonModule, LucideAngularModule],\n templateUrl: './ui-icon.component.html',\n styleUrls: ['./ui-icon.component.scss'],\n})\nexport class UiIconComponent implements OnChanges {\n @Input() name!: string;\n @Input() size = 24;\n @Input() color = 'currentColor';\n\n private icon?: SimpleIcon | null;\n\n ngOnChanges() {\n this.resolveBrandIcon();\n }\n\n get isBrandIcon(): boolean {\n return !!this.icon;\n }\n\n get brandIcon(): SimpleIcon | null {\n return this.icon ?? null;\n }\n\n private resolveBrandIcon(): void {\n if (!this.name) {\n this.icon = null;\n return;\n }\n\n const key =\n 'si' + this.name.replace(/[^a-z0-9]/gi, '').replace(/^\\w/, (c) => c.toUpperCase());\n\n this.icon = (simpleIcons as any)[key] ?? null;\n }\n}\n","@if (isBrandIcon) {\n <svg\n class=\"ui-icon ui-icon--brand\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.fill]=\"color\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path [attr.d]=\"brandIcon?.path\"></path>\n </svg>\n} @else {\n <lucide-icon\n class=\"ui-icon ui-icon--lucide\"\n [name]=\"name\"\n [size]=\"size\"\n [color]=\"color\"\n ></lucide-icon>\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ui-icon',\n standalone: true,\n template: '',\n})\nexport class MockUiIconComponent {\n @Input() name!: string;\n @Input() size = 24;\n @Input() color = 'currentColor';\n}","import { CommonModule } from '@angular/common';\nimport { Component, HostBinding, Inject, Input, OnChanges, OnInit, Optional } from '@angular/core';\nimport { CloudinaryModule, lazyload, responsive } from '@cloudinary/ng';\nimport { CloudinaryImage } from '@cloudinary/url-gen';\nimport { format, quality } from '@cloudinary/url-gen/actions/delivery';\nimport { limitFit } from '@cloudinary/url-gen/actions/resize';\nimport { auto } from '@cloudinary/url-gen/qualifiers/format';\nimport { auto as qAuto } from '@cloudinary/url-gen/qualifiers/quality';\nimport { CLOUDINARY_CLOUD_NAME } from '@lluc_llull/ui-lib/mapper';\n\n@Component({\n selector: 'ui-image',\n standalone: true,\n imports: [CommonModule, CloudinaryModule],\n templateUrl: './ui-image.component.html',\n styleUrl: './ui-image.component.scss',\n})\nexport class UiImageComponent implements OnChanges, OnInit {\n @Input({ required: true }) publicId!: string;\n @Input() cloudName?: string;\n @Input() transformations?: any;\n @Input() eager: boolean = false;\n @Input() width?: number | null;\n @Input() height?: number | null;\n\n img!: CloudinaryImage;\n plugins: any[] = [];\n\n constructor(@Optional() @Inject(CLOUDINARY_CLOUD_NAME) private globalCloudName?: string) {}\n\n ngOnInit(): void {\n this.initImage();\n }\n\n ngOnChanges(): void {\n this.initImage();\n }\n\n @HostBinding('style.--ui-image-ratio')\n get aspectRatioStyle(): string | null {\n if (this.width && this.height) {\n return `${this.width} / ${this.height}`;\n }\n return null;\n }\n\n private initImage(): void {\n const activeCloudName = this.cloudName || this.globalCloudName;\n\n if (this.publicId && activeCloudName) {\n this.img = new CloudinaryImage(this.publicId, { cloudName: activeCloudName })\n .delivery(format(auto()))\n .delivery(quality(qAuto()))\n .resize(limitFit().width(1920));\n\n this.plugins = [responsive({ steps: 200 })];\n\n if (!this.eager) {\n this.plugins.push(lazyload());\n }\n } else if (!activeCloudName) {\n console.warn(\n '[UiImageComponent]: No cloudName provided. Please provide it via @Input() or the CLOUDINARY_CLOUD_NAME InjectionToken.',\n );\n }\n }\n}\n","@if (img) {\n @if (eager) {\n <img [src]=\"img.toURL()\" fetchpriority=\"high\" loading=\"eager\" alt=\"\"\n [attr.width]=\"width ?? null\" [attr.height]=\"height ?? null\" />\n } @else {\n <advanced-image [cldImg]=\"img\" [plugins]=\"plugins\"></advanced-image>\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["qAuto","i1"],"mappings":"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"}
1
+ {"version":3,"file":"lluc_llull-ui-lib-shared.mjs","names":["i1","qAuto"],"sources":["../../../projects/ui-lib/shared/ui-icon/ui-icon.component.ts","../../../projects/ui-lib/shared/ui-icon/ui-icon.component.html","../../../projects/ui-lib/shared/ui-icon/ui-icon.mock.ts","../../../projects/ui-lib/shared/ui-image/ui-image.component.ts","../../../projects/ui-lib/shared/ui-image/ui-image.component.html"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges } from '@angular/core';\nimport type { SimpleIcon } from 'simple-icons';\nimport * as simpleIcons from 'simple-icons';\nimport {\n ArrowLeft,\n ArrowRight,\n Home,\n LucideAngularModule,\n LucideIconProvider,\n LUCIDE_ICONS,\n Moon,\n MoveRight,\n Sun,\n} from 'lucide-angular';\n\n@Component({\n selector: 'ui-icon',\n standalone: true,\n imports: [\n CommonModule,\n LucideAngularModule,\n ],\n providers: [\n {\n provide: LUCIDE_ICONS,\n multi: true,\n useValue: new LucideIconProvider({ ArrowLeft, ArrowRight, Home, Moon, MoveRight, Sun }),\n },\n ],\n templateUrl: './ui-icon.component.html',\n styleUrls: ['./ui-icon.component.scss'],\n})\nexport class UiIconComponent implements OnChanges {\n @Input() name!: string;\n @Input() size = 24;\n @Input() color = 'currentColor';\n\n private icon?: SimpleIcon | null;\n\n ngOnChanges() {\n this.resolveBrandIcon();\n }\n\n get isBrandIcon(): boolean {\n return !!this.icon;\n }\n\n get brandIcon(): SimpleIcon | null {\n return this.icon ?? null;\n }\n\n private resolveBrandIcon(): void {\n if (!this.name) {\n this.icon = null;\n return;\n }\n\n const key =\n 'si' + this.name.replace(/[^a-z0-9]/gi, '').replace(/^\\w/, (c) => c.toUpperCase());\n\n this.icon = (simpleIcons as any)[key] ?? null;\n }\n}\n","@if (isBrandIcon) {\n <svg\n class=\"ui-icon ui-icon--brand\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.fill]=\"color\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path [attr.d]=\"brandIcon?.path\"></path>\n </svg>\n} @else {\n <lucide-icon\n class=\"ui-icon ui-icon--lucide\"\n [name]=\"name\"\n [size]=\"size\"\n [color]=\"color\"\n ></lucide-icon>\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ui-icon',\n standalone: true,\n template: '',\n})\nexport class MockUiIconComponent {\n @Input() name!: string;\n @Input() size = 24;\n @Input() color = 'currentColor';\n}","import { CommonModule } from '@angular/common';\nimport { Component, HostBinding, Inject, Input, OnChanges, OnInit, Optional } from '@angular/core';\nimport { CloudinaryModule, lazyload, responsive } from '@cloudinary/ng';\nimport { CloudinaryImage } from '@cloudinary/url-gen';\nimport { format, quality } from '@cloudinary/url-gen/actions/delivery';\nimport { limitFit } from '@cloudinary/url-gen/actions/resize';\nimport { auto } from '@cloudinary/url-gen/qualifiers/format';\nimport { auto as qAuto } from '@cloudinary/url-gen/qualifiers/quality';\nimport { CLOUDINARY_CLOUD_NAME } from '@lluc_llull/ui-lib/mapper';\n\n@Component({\n selector: 'ui-image',\n standalone: true,\n imports: [CommonModule, CloudinaryModule],\n templateUrl: './ui-image.component.html',\n styleUrl: './ui-image.component.scss',\n})\nexport class UiImageComponent implements OnChanges, OnInit {\n @Input({ required: true }) publicId!: string;\n @Input() cloudName?: string;\n @Input() transformations?: any;\n @Input() eager: boolean = false;\n @Input() width?: number | null;\n @Input() height?: number | null;\n\n img!: CloudinaryImage;\n plugins: any[] = [];\n\n constructor(@Optional() @Inject(CLOUDINARY_CLOUD_NAME) private globalCloudName?: string) {}\n\n ngOnInit(): void {\n this.initImage();\n }\n\n ngOnChanges(): void {\n this.initImage();\n }\n\n @HostBinding('style.--ui-image-ratio')\n get aspectRatioStyle(): string | null {\n if (this.width && this.height) {\n return `${this.width} / ${this.height}`;\n }\n return null;\n }\n\n private initImage(): void {\n const activeCloudName = this.cloudName || this.globalCloudName;\n\n if (this.publicId && activeCloudName) {\n this.img = new CloudinaryImage(this.publicId, { cloudName: activeCloudName })\n .delivery(format(auto()))\n .delivery(quality(qAuto()))\n .resize(limitFit().width(1920));\n\n this.plugins = [responsive({ steps: 200 })];\n\n if (!this.eager) {\n this.plugins.push(lazyload());\n }\n } else if (!activeCloudName) {\n console.warn(\n '[UiImageComponent]: No cloudName provided. Please provide it via @Input() or the CLOUDINARY_CLOUD_NAME InjectionToken.',\n );\n }\n }\n}\n","@if (img) {\n @if (eager) {\n <img [src]=\"img.toURL()\" fetchpriority=\"high\" loading=\"eager\" alt=\"\"\n [attr.width]=\"width ?? null\" [attr.height]=\"height ?? null\" />\n } @else {\n <advanced-image [cldImg]=\"img\" [plugins]=\"plugins\"></advanced-image>\n }\n}\n"],"mappings":"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"}