pdm-ui-kit 0.1.0 → 0.1.2
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.
- package/README.md +115 -59
- package/esm2020/lib/components/accordion/accordion.component.mjs +42 -0
- package/esm2020/lib/components/alert/alert.component.mjs +35 -0
- package/esm2020/lib/components/alert-dialog/alert-dialog.component.mjs +69 -0
- package/esm2020/lib/components/aspect-ratio/aspect-ratio.component.mjs +31 -0
- package/esm2020/lib/components/avatar/avatar.component.mjs +46 -0
- package/esm2020/lib/components/badge/badge.component.mjs +23 -0
- package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +29 -0
- package/esm2020/lib/components/button/button.component.mjs +82 -0
- package/esm2020/lib/components/button-group/button-group.component.mjs +23 -0
- package/esm2020/lib/components/calendar/calendar.component.mjs +71 -0
- package/esm2020/lib/components/card/card.component.mjs +65 -0
- package/esm2020/lib/components/carousel/carousel.component.mjs +97 -0
- package/esm2020/lib/components/chart/chart.component.mjs +174 -0
- package/esm2020/lib/components/checkbox/checkbox.component.mjs +47 -0
- package/esm2020/lib/components/collapsible/collapsible.component.mjs +43 -0
- package/esm2020/lib/components/combobox/combobox.component.mjs +51 -0
- package/esm2020/lib/components/command/command.component.mjs +75 -0
- package/esm2020/lib/components/context-menu/context-menu.component.mjs +78 -0
- package/esm2020/lib/components/data-table/data-table.component.mjs +89 -0
- package/esm2020/lib/components/date-picker/date-picker.component.mjs +63 -0
- package/esm2020/lib/components/dialog/dialog.component.mjs +90 -0
- package/esm2020/lib/components/drawer/drawer.component.mjs +72 -0
- package/esm2020/lib/components/dropdown-menu/dropdown-menu.component.mjs +120 -0
- package/esm2020/lib/components/empty/empty.component.mjs +58 -0
- package/esm2020/lib/components/field/field.component.mjs +52 -0
- package/esm2020/lib/components/hover-card/hover-card.component.mjs +44 -0
- package/esm2020/lib/components/icon/icon.component.mjs +94 -0
- package/esm2020/lib/components/input/input.component.mjs +65 -0
- package/esm2020/lib/components/input-group/input-group.component.mjs +54 -0
- package/esm2020/lib/components/input-otp/input-otp.component.mjs +140 -0
- package/esm2020/lib/components/input-password/input-password.component.mjs +72 -0
- package/esm2020/lib/components/item/item.component.mjs +23 -0
- package/esm2020/lib/components/kbd/kbd.component.mjs +17 -0
- package/esm2020/lib/components/label/label.component.mjs +23 -0
- package/esm2020/lib/components/menubar/menubar.component.mjs +31 -0
- package/esm2020/lib/components/native-select/native-select.component.mjs +42 -0
- package/esm2020/lib/components/navigation-menu/navigation-menu.component.mjs +20 -0
- package/esm2020/lib/components/pagination/pagination.component.mjs +47 -0
- package/esm2020/lib/components/popover/popover.component.mjs +58 -0
- package/esm2020/lib/components/progress/progress.component.mjs +33 -0
- package/esm2020/lib/components/radio-group/radio-group.component.mjs +38 -0
- package/esm2020/lib/components/scroll-area/scroll-area.component.mjs +20 -0
- package/esm2020/lib/components/select/select.component.mjs +38 -0
- package/esm2020/lib/components/separator/separator.component.mjs +26 -0
- package/esm2020/lib/components/sheet/sheet.component.mjs +39 -0
- package/esm2020/lib/components/sidebar/sidebar.component.mjs +20 -0
- package/esm2020/lib/components/skeleton/skeleton.component.mjs +17 -0
- package/esm2020/lib/components/slider/slider.component.mjs +46 -0
- package/esm2020/lib/components/sonner/sonner.component.mjs +39 -0
- package/esm2020/lib/components/spinner/spinner.component.mjs +20 -0
- package/esm2020/lib/components/switch/switch.component.mjs +35 -0
- package/esm2020/lib/components/table/table.component.mjs +17 -0
- package/esm2020/lib/components/tabs/tabs.component.mjs +31 -0
- package/esm2020/lib/components/textarea/textarea.component.mjs +59 -0
- package/esm2020/lib/components/toggle/toggle.component.mjs +41 -0
- package/esm2020/lib/components/toggle-group/toggle-group.component.mjs +31 -0
- package/esm2020/lib/components/tooltip/tooltip.component.mjs +33 -0
- package/esm2020/lib/pdm-ui-kit.module.mjs +245 -0
- package/esm2020/pdm-ui-kit.mjs +5 -0
- package/esm2020/public-api.mjs +59 -0
- package/fesm2015/pdm-ui-kit.mjs +2959 -0
- package/fesm2015/pdm-ui-kit.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit.mjs +2954 -0
- package/fesm2020/pdm-ui-kit.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/accordion/accordion.component.d.ts +19 -0
- package/lib/components/alert/alert.component.d.ts +13 -0
- package/lib/components/alert-dialog/alert-dialog.component.d.ts +21 -0
- package/lib/components/aspect-ratio/aspect-ratio.component.d.ts +10 -0
- package/lib/components/avatar/avatar.component.d.ts +20 -0
- package/lib/components/badge/badge.component.d.ts +9 -0
- package/lib/components/breadcrumb/breadcrumb.component.d.ts +10 -0
- package/lib/components/button/button.component.d.ts +24 -0
- package/lib/components/button-group/button-group.component.d.ts +9 -0
- package/lib/components/calendar/calendar.component.d.ts +28 -0
- package/lib/components/card/card.component.d.ts +24 -0
- package/lib/components/carousel/carousel.component.d.ts +25 -0
- package/lib/components/chart/chart.component.d.ts +41 -0
- package/lib/components/checkbox/checkbox.component.d.ts +17 -0
- package/lib/components/collapsible/collapsible.component.d.ts +14 -0
- package/lib/components/combobox/combobox.component.d.ts +18 -0
- package/lib/components/command/command.component.d.ts +33 -0
- package/lib/components/context-menu/context-menu.component.d.ts +26 -0
- package/lib/components/data-table/data-table.component.d.ts +36 -0
- package/lib/components/date-picker/date-picker.component.d.ts +23 -0
- package/lib/components/dialog/dialog.component.d.ts +30 -0
- package/lib/components/drawer/drawer.component.d.ts +27 -0
- package/lib/components/dropdown-menu/dropdown-menu.component.d.ts +34 -0
- package/lib/components/empty/empty.component.d.ts +19 -0
- package/lib/components/field/field.component.d.ts +18 -0
- package/lib/components/hover-card/hover-card.component.d.ts +14 -0
- package/lib/components/icon/icon.component.d.ts +18 -0
- package/lib/components/input/input.component.d.ts +23 -0
- package/lib/components/input-group/input-group.component.d.ts +19 -0
- package/lib/components/input-otp/input-otp.component.d.ts +26 -0
- package/lib/components/input-password/input-password.component.d.ts +25 -0
- package/lib/components/item/item.component.d.ts +8 -0
- package/lib/components/kbd/kbd.component.d.ts +6 -0
- package/lib/components/label/label.component.d.ts +8 -0
- package/lib/components/menubar/menubar.component.d.ts +17 -0
- package/lib/components/native-select/native-select.component.d.ts +20 -0
- package/lib/components/navigation-menu/navigation-menu.component.d.ts +12 -0
- package/lib/components/pagination/pagination.component.d.ts +13 -0
- package/lib/components/popover/popover.component.d.ts +17 -0
- package/lib/components/progress/progress.component.d.ts +10 -0
- package/lib/components/radio-group/radio-group.component.d.ts +19 -0
- package/lib/components/scroll-area/scroll-area.component.d.ts +7 -0
- package/lib/components/select/select.component.d.ts +19 -0
- package/lib/components/separator/separator.component.d.ts +9 -0
- package/lib/components/sheet/sheet.component.d.ts +13 -0
- package/lib/components/sidebar/sidebar.component.d.ts +7 -0
- package/lib/components/skeleton/skeleton.component.d.ts +6 -0
- package/lib/components/slider/slider.component.d.ts +15 -0
- package/lib/components/sonner/sonner.component.d.ts +13 -0
- package/lib/components/spinner/spinner.component.d.ts +7 -0
- package/lib/components/switch/switch.component.d.ts +13 -0
- package/lib/components/table/table.component.d.ts +6 -0
- package/lib/components/tabs/tabs.component.d.ts +16 -0
- package/lib/components/textarea/textarea.component.d.ts +21 -0
- package/lib/components/toggle/toggle.component.d.ts +14 -0
- package/lib/components/toggle-group/toggle-group.component.d.ts +16 -0
- package/lib/components/tooltip/tooltip.component.d.ts +10 -0
- package/lib/pdm-ui-kit.module.d.ts +64 -0
- package/package.json +25 -10
- package/FIGMA_COMPONENT_AUDIT.md +0 -154
- package/ng-package.json +0 -7
- package/src/lib/components/accordion/accordion.component.html +0 -34
- package/src/lib/components/accordion/accordion.component.ts +0 -38
- package/src/lib/components/alert/alert.component.html +0 -52
- package/src/lib/components/alert/alert.component.ts +0 -25
- package/src/lib/components/alert-dialog/alert-dialog.component.html +0 -41
- package/src/lib/components/alert-dialog/alert-dialog.component.ts +0 -45
- package/src/lib/components/aspect-ratio/aspect-ratio.component.html +0 -11
- package/src/lib/components/aspect-ratio/aspect-ratio.component.ts +0 -18
- package/src/lib/components/avatar/avatar.component.html +0 -21
- package/src/lib/components/avatar/avatar.component.ts +0 -32
- package/src/lib/components/badge/badge.component.html +0 -28
- package/src/lib/components/badge/badge.component.ts +0 -23
- package/src/lib/components/breadcrumb/breadcrumb.component.html +0 -39
- package/src/lib/components/breadcrumb/breadcrumb.component.ts +0 -26
- package/src/lib/components/button/button.component.html +0 -15
- package/src/lib/components/button/button.component.ts +0 -84
- package/src/lib/components/button-group/button-group.component.html +0 -39
- package/src/lib/components/button-group/button-group.component.ts +0 -15
- package/src/lib/components/calendar/calendar.component.html +0 -73
- package/src/lib/components/calendar/calendar.component.ts +0 -78
- package/src/lib/components/card/card.component.html +0 -77
- package/src/lib/components/card/card.component.ts +0 -39
- package/src/lib/components/carousel/carousel.component.html +0 -86
- package/src/lib/components/carousel/carousel.component.ts +0 -100
- package/src/lib/components/chart/chart.component.html +0 -143
- package/src/lib/components/chart/chart.component.ts +0 -147
- package/src/lib/components/checkbox/checkbox.component.html +0 -38
- package/src/lib/components/checkbox/checkbox.component.ts +0 -32
- package/src/lib/components/collapsible/collapsible.component.html +0 -26
- package/src/lib/components/collapsible/collapsible.component.ts +0 -29
- package/src/lib/components/combobox/combobox.component.html +0 -42
- package/src/lib/components/combobox/combobox.component.ts +0 -32
- package/src/lib/components/command/command.component.html +0 -55
- package/src/lib/components/command/command.component.ts +0 -67
- package/src/lib/components/context-menu/context-menu.component.html +0 -47
- package/src/lib/components/context-menu/context-menu.component.ts +0 -67
- package/src/lib/components/data-table/data-table.component.html +0 -63
- package/src/lib/components/data-table/data-table.component.ts +0 -78
- package/src/lib/components/date-picker/date-picker.component.html +0 -38
- package/src/lib/components/date-picker/date-picker.component.ts +0 -34
- package/src/lib/components/dialog/dialog.component.html +0 -78
- package/src/lib/components/dialog/dialog.component.ts +0 -55
- package/src/lib/components/drawer/drawer.component.html +0 -56
- package/src/lib/components/drawer/drawer.component.ts +0 -43
- package/src/lib/components/dropdown-menu/dropdown-menu.component.html +0 -56
- package/src/lib/components/dropdown-menu/dropdown-menu.component.ts +0 -126
- package/src/lib/components/empty/empty.component.html +0 -29
- package/src/lib/components/empty/empty.component.ts +0 -35
- package/src/lib/components/field/field.component.html +0 -22
- package/src/lib/components/field/field.component.ts +0 -28
- package/src/lib/components/hover-card/hover-card.component.html +0 -24
- package/src/lib/components/hover-card/hover-card.component.ts +0 -36
- package/src/lib/components/icon/icon.component.html +0 -286
- package/src/lib/components/icon/icon.component.ts +0 -133
- package/src/lib/components/input/input.component.html +0 -22
- package/src/lib/components/input/input.component.ts +0 -33
- package/src/lib/components/input-group/input-group.component.html +0 -31
- package/src/lib/components/input-group/input-group.component.ts +0 -26
- package/src/lib/components/input-otp/input-otp.component.html +0 -25
- package/src/lib/components/input-otp/input-otp.component.ts +0 -146
- package/src/lib/components/input-password/input-password.component.html +0 -64
- package/src/lib/components/input-password/input-password.component.ts +0 -46
- package/src/lib/components/item/item.component.html +0 -10
- package/src/lib/components/item/item.component.ts +0 -12
- package/src/lib/components/kbd/kbd.component.html +0 -3
- package/src/lib/components/kbd/kbd.component.ts +0 -10
- package/src/lib/components/label/label.component.html +0 -7
- package/src/lib/components/label/label.component.ts +0 -12
- package/src/lib/components/menubar/menubar.component.html +0 -16
- package/src/lib/components/menubar/menubar.component.ts +0 -29
- package/src/lib/components/native-select/native-select.component.html +0 -17
- package/src/lib/components/native-select/native-select.component.ts +0 -28
- package/src/lib/components/navigation-menu/navigation-menu.component.html +0 -15
- package/src/lib/components/navigation-menu/navigation-menu.component.ts +0 -17
- package/src/lib/components/pagination/pagination.component.html +0 -30
- package/src/lib/components/pagination/pagination.component.ts +0 -37
- package/src/lib/components/popover/popover.component.html +0 -6
- package/src/lib/components/popover/popover.component.ts +0 -40
- package/src/lib/components/progress/progress.component.html +0 -9
- package/src/lib/components/progress/progress.component.ts +0 -20
- package/src/lib/components/radio-group/radio-group.component.html +0 -25
- package/src/lib/components/radio-group/radio-group.component.ts +0 -30
- package/src/lib/components/scroll-area/scroll-area.component.html +0 -5
- package/src/lib/components/scroll-area/scroll-area.component.ts +0 -11
- package/src/lib/components/select/select.component.html +0 -14
- package/src/lib/components/select/select.component.ts +0 -27
- package/src/lib/components/separator/separator.component.html +0 -5
- package/src/lib/components/separator/separator.component.ts +0 -16
- package/src/lib/components/sheet/sheet.component.html +0 -10
- package/src/lib/components/sheet/sheet.component.ts +0 -28
- package/src/lib/components/sidebar/sidebar.component.html +0 -3
- package/src/lib/components/sidebar/sidebar.component.ts +0 -11
- package/src/lib/components/skeleton/skeleton.component.html +0 -1
- package/src/lib/components/skeleton/skeleton.component.ts +0 -10
- package/src/lib/components/slider/slider.component.html +0 -15
- package/src/lib/components/slider/slider.component.ts +0 -31
- package/src/lib/components/sonner/sonner.component.html +0 -10
- package/src/lib/components/sonner/sonner.component.ts +0 -25
- package/src/lib/components/spinner/spinner.component.html +0 -6
- package/src/lib/components/spinner/spinner.component.ts +0 -11
- package/src/lib/components/switch/switch.component.html +0 -14
- package/src/lib/components/switch/switch.component.ts +0 -20
- package/src/lib/components/table/table.component.html +0 -5
- package/src/lib/components/table/table.component.ts +0 -10
- package/src/lib/components/tabs/tabs.component.html +0 -21
- package/src/lib/components/tabs/tabs.component.ts +0 -26
- package/src/lib/components/textarea/textarea.component.html +0 -21
- package/src/lib/components/textarea/textarea.component.ts +0 -28
- package/src/lib/components/toggle/toggle.component.html +0 -16
- package/src/lib/components/toggle/toggle.component.ts +0 -29
- package/src/lib/components/toggle-group/toggle-group.component.html +0 -17
- package/src/lib/components/toggle-group/toggle-group.component.ts +0 -26
- package/src/lib/components/tooltip/tooltip.component.html +0 -6
- package/src/lib/components/tooltip/tooltip.component.ts +0 -20
- package/src/lib/pdm-ui-kit.module.ts +0 -126
- package/tsconfig.lib.json +0 -17
- package/tsconfig.lib.prod.json +0 -9
- /package/{src/public-api.ts → public-api.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -1,72 +1,128 @@
|
|
|
1
1
|
# PDM UI Kit
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Librería de componentes UI para Angular (13, 14 y 15), construida sobre patrones visuales del **Figma de shadcn/ui** y adaptada para el ecosistema de Corelusa.
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
- Usar Tailwind CSS v3 y tokens CSS del proyecto consumidor.
|
|
5
|
+
## Base de diseño
|
|
6
|
+
|
|
7
|
+
Este kit está **basado en el Figma de shadcn/ui** y mantiene una estructura de estilos por tokens CSS (por ejemplo: `--background`, `--foreground`, `--primary`, `--border`, `--ring`, `--radius`).
|
|
9
8
|
|
|
10
9
|
## Compatibilidad
|
|
11
|
-
- Angular: 13, 14, 15 (NgModules, sin standalone).
|
|
12
|
-
- Tailwind: v3.
|
|
13
10
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
11
|
+
- Angular: 13, 14, 15
|
|
12
|
+
- Arquitectura: NgModules (no standalone)
|
|
13
|
+
- Estilos: Tailwind CSS v3 + variables CSS del proyecto consumidor
|
|
14
|
+
|
|
15
|
+
## Uso rápido
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
### 1) Importa el módulo
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
```ts
|
|
20
|
+
import { NgModule } from '@angular/core';
|
|
21
|
+
import { BrowserModule } from '@angular/platform-browser';
|
|
22
|
+
import { PdmUiKitModule } from 'pdm-ui-kit';
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
import { AppComponent } from './app.component';
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
]
|
|
32
|
-
};
|
|
26
|
+
@NgModule({
|
|
27
|
+
declarations: [AppComponent],
|
|
28
|
+
imports: [BrowserModule, PdmUiKitModule],
|
|
29
|
+
bootstrap: [AppComponent]
|
|
30
|
+
})
|
|
31
|
+
export class AppModule {}
|
|
33
32
|
```
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
4. Login npm:
|
|
60
|
-
- `npm login`
|
|
61
|
-
5. Publicar desde `dist/pdm-ui-kit`:
|
|
62
|
-
- `cd dist/pdm-ui-kit && npm publish --access public`
|
|
63
|
-
|
|
64
|
-
### Nota sobre Tailwind en proyecto consumidor
|
|
65
|
-
Para que se apliquen las clases utility del kit en otro proyecto, incluye el paquete en `content` de `tailwind.config.js`, por ejemplo:
|
|
66
|
-
|
|
67
|
-
```js
|
|
68
|
-
content: [
|
|
69
|
-
'./src/**/*.{html,ts}',
|
|
70
|
-
'./node_modules/pdm-ui-kit/**/*.{mjs,js}'
|
|
71
|
-
]
|
|
34
|
+
### 2) Usa componentes en tus templates
|
|
35
|
+
|
|
36
|
+
#### Botón
|
|
37
|
+
|
|
38
|
+
```html
|
|
39
|
+
<pdm-button variant="primary" size="default">Guardar</pdm-button>
|
|
40
|
+
<pdm-button variant="destructive" size="small">Eliminar</pdm-button>
|
|
41
|
+
<pdm-button variant="outline" size="large">Cancelar</pdm-button>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
#### Alert
|
|
45
|
+
|
|
46
|
+
```html
|
|
47
|
+
<pdm-alert
|
|
48
|
+
variant="default"
|
|
49
|
+
title="Cambios guardados"
|
|
50
|
+
description="La configuración fue actualizada correctamente.">
|
|
51
|
+
</pdm-alert>
|
|
52
|
+
|
|
53
|
+
<pdm-alert
|
|
54
|
+
variant="destructive"
|
|
55
|
+
title="Error al procesar"
|
|
56
|
+
description="Intenta nuevamente en unos minutos.">
|
|
57
|
+
</pdm-alert>
|
|
72
58
|
```
|
|
59
|
+
|
|
60
|
+
#### Tabs
|
|
61
|
+
|
|
62
|
+
```html
|
|
63
|
+
<pdm-tabs [items]="tabs" [(value)]="activeTab"></pdm-tabs>
|
|
64
|
+
<p>Tab activa: {{ activeTab }}</p>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
tabs = [
|
|
69
|
+
{ label: 'General', value: 'general' },
|
|
70
|
+
{ label: 'Seguridad', value: 'security' },
|
|
71
|
+
{ label: 'Facturación', value: 'billing' }
|
|
72
|
+
];
|
|
73
|
+
|
|
74
|
+
activeTab = 'general';
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
#### Iconos
|
|
78
|
+
|
|
79
|
+
```html
|
|
80
|
+
<pdm-icon name="search" library="lucide" [size]="18"></pdm-icon>
|
|
81
|
+
<pdm-icon name="user" library="phosphor" [size]="20"></pdm-icon>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Si necesitas un asset exportado desde Figma MCP:
|
|
85
|
+
|
|
86
|
+
```html
|
|
87
|
+
<pdm-icon
|
|
88
|
+
[assetUrl]="'http://localhost:3845/assets/icon-alert.svg'"
|
|
89
|
+
ariaLabel="Alerta">
|
|
90
|
+
</pdm-icon>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### Chart
|
|
94
|
+
|
|
95
|
+
```html
|
|
96
|
+
<pdm-chart
|
|
97
|
+
type="line"
|
|
98
|
+
title="Visitas"
|
|
99
|
+
description="Últimos 30 días"
|
|
100
|
+
[labels]="['Lun', 'Mar', 'Mie', 'Jue', 'Vie']"
|
|
101
|
+
[line]="[12, 18, 15, 22, 19]">
|
|
102
|
+
</pdm-chart>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Tipos soportados en `pdm-chart`:
|
|
106
|
+
|
|
107
|
+
- `area`
|
|
108
|
+
- `bar`
|
|
109
|
+
- `line`
|
|
110
|
+
- `pie`
|
|
111
|
+
- `radar`
|
|
112
|
+
- `radial`
|
|
113
|
+
- `tooltips`
|
|
114
|
+
|
|
115
|
+
## Theming
|
|
116
|
+
|
|
117
|
+
Los componentes leen los tokens CSS del proyecto consumidor. Define tus variables globales para aplicar tu tema (light/dark o custom branding) sin modificar el kit.
|
|
118
|
+
|
|
119
|
+
## Componentes disponibles
|
|
120
|
+
|
|
121
|
+
Incluye componentes como:
|
|
122
|
+
|
|
123
|
+
- `pdm-button`, `pdm-input`, `pdm-textarea`, `pdm-select`
|
|
124
|
+
- `pdm-alert`, `pdm-badge`, `pdm-card`, `pdm-dialog`
|
|
125
|
+
- `pdm-tabs`, `pdm-table`, `pdm-data-table`, `pdm-chart`
|
|
126
|
+
- `pdm-tooltip`, `pdm-popover`, `pdm-dropdown-menu`, `pdm-sidebar`
|
|
127
|
+
|
|
128
|
+
Y más, todos exportados desde `PdmUiKitModule`.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class PdmAccordionComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.items = [];
|
|
7
|
+
this.expandedIndex = -1;
|
|
8
|
+
this.className = '';
|
|
9
|
+
this.expandedIndexChange = new EventEmitter();
|
|
10
|
+
}
|
|
11
|
+
isExpanded(index) {
|
|
12
|
+
return this.expandedIndex === index;
|
|
13
|
+
}
|
|
14
|
+
contentLines(content) {
|
|
15
|
+
if (Array.isArray(content))
|
|
16
|
+
return content;
|
|
17
|
+
return content
|
|
18
|
+
.split('\n')
|
|
19
|
+
.map((line) => line.trim())
|
|
20
|
+
.filter((line) => line.length > 0);
|
|
21
|
+
}
|
|
22
|
+
toggle(index) {
|
|
23
|
+
if (this.items[index]?.disabled)
|
|
24
|
+
return;
|
|
25
|
+
this.expandedIndexChange.emit(this.expandedIndex === index ? -1 : index);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
PdmAccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
PdmAccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmAccordionComponent, selector: "pdm-accordion", inputs: { items: "items", expandedIndex: "expandedIndex", className: "className" }, outputs: { expandedIndexChange: "expandedIndexChange" }, ngImport: i0, template: "<div [ngClass]=\"['w-full', className]\">\n <div *ngFor=\"let item of items; let i = index\" class=\"border-b border-[#e5e5e5]\">\n <h3>\n <button\n type=\"button\"\n class=\"flex h-[52px] w-full items-center justify-between py-4 text-left text-[14px] font-medium leading-5 text-[#0a0a0a] transition-colors\"\n [disabled]=\"item.disabled\"\n [attr.aria-expanded]=\"isExpanded(i)\"\n [attr.aria-controls]=\"item.id + '-panel'\"\n (click)=\"toggle(i)\"\n >\n <span class=\"pr-[10px]\">{{ item.title }}</span>\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-[#0a0a0a]\" aria-hidden=\"true\">\n <svg\n class=\"h-4 w-4 transition-transform\"\n [ngClass]=\"isExpanded(i) ? 'rotate-180' : ''\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M3.5 6.5L8 11L12.5 6.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </button>\n </h3>\n <div\n *ngIf=\"isExpanded(i)\"\n [id]=\"item.id + '-panel'\"\n class=\"flex flex-col gap-4 pb-4 text-[14px] font-normal leading-5 text-[#0a0a0a]\"\n >\n <p *ngFor=\"let line of contentLines(item.content)\" class=\"m-0\">{{ line }}</p>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAccordionComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ selector: 'pdm-accordion', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['w-full', className]\">\n <div *ngFor=\"let item of items; let i = index\" class=\"border-b border-[#e5e5e5]\">\n <h3>\n <button\n type=\"button\"\n class=\"flex h-[52px] w-full items-center justify-between py-4 text-left text-[14px] font-medium leading-5 text-[#0a0a0a] transition-colors\"\n [disabled]=\"item.disabled\"\n [attr.aria-expanded]=\"isExpanded(i)\"\n [attr.aria-controls]=\"item.id + '-panel'\"\n (click)=\"toggle(i)\"\n >\n <span class=\"pr-[10px]\">{{ item.title }}</span>\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-[#0a0a0a]\" aria-hidden=\"true\">\n <svg\n class=\"h-4 w-4 transition-transform\"\n [ngClass]=\"isExpanded(i) ? 'rotate-180' : ''\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M3.5 6.5L8 11L12.5 6.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </button>\n </h3>\n <div\n *ngIf=\"isExpanded(i)\"\n [id]=\"item.id + '-panel'\"\n class=\"flex flex-col gap-4 pb-4 text-[14px] font-normal leading-5 text-[#0a0a0a]\"\n >\n <p *ngFor=\"let line of contentLines(item.content)\" class=\"m-0\">{{ line }}</p>\n </div>\n </div>\n</div>\n" }]
|
|
33
|
+
}], propDecorators: { items: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], expandedIndex: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], className: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], expandedIndexChange: [{
|
|
40
|
+
type: Output
|
|
41
|
+
}] } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQWNoRyxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBTVcsVUFBSyxHQUF1QixFQUFFLENBQUM7UUFDL0Isa0JBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWQsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQWtCNUQ7SUFoQkMsVUFBVSxDQUFDLEtBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQTBCO1FBQ3JDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLE9BQU8sQ0FBQztRQUMzQyxPQUFPLE9BQU87YUFDWCxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ1gsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDMUIsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYTtRQUNsQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUTtZQUFFLE9BQU87UUFDeEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNFLENBQUM7O21IQXRCVSxxQkFBcUI7dUdBQXJCLHFCQUFxQixrTUNkbEMsZzZDQWtDQTs0RkRwQmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWUsbUJBRVIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxtQkFBbUI7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBQZG1BY2NvcmRpb25JdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgY29udGVudDogc3RyaW5nIHwgc3RyaW5nW107XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLWFjY29yZGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1BY2NvcmRpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBpdGVtczogUGRtQWNjb3JkaW9uSXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGV4cGFuZGVkSW5kZXggPSAtMTtcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG5cbiAgQE91dHB1dCgpIGV4cGFuZGVkSW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBpc0V4cGFuZGVkKGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5leHBhbmRlZEluZGV4ID09PSBpbmRleDtcbiAgfVxuXG4gIGNvbnRlbnRMaW5lcyhjb250ZW50OiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb250ZW50KSkgcmV0dXJuIGNvbnRlbnQ7XG4gICAgcmV0dXJuIGNvbnRlbnRcbiAgICAgIC5zcGxpdCgnXFxuJylcbiAgICAgIC5tYXAoKGxpbmUpID0+IGxpbmUudHJpbSgpKVxuICAgICAgLmZpbHRlcigobGluZSkgPT4gbGluZS5sZW5ndGggPiAwKTtcbiAgfVxuXG4gIHRvZ2dsZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXRlbXNbaW5kZXhdPy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMuZXhwYW5kZWRJbmRleENoYW5nZS5lbWl0KHRoaXMuZXhwYW5kZWRJbmRleCA9PT0gaW5kZXggPyAtMSA6IGluZGV4KTtcbiAgfVxufVxuIiwiPGRpdiBbbmdDbGFzc109XCJbJ3ctZnVsbCcsIGNsYXNzTmFtZV1cIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiYm9yZGVyLWIgYm9yZGVyLVsjZTVlNWU1XVwiPlxuICAgIDxoMz5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiZmxleCBoLVs1MnB4XSB3LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBweS00IHRleHQtbGVmdCB0ZXh0LVsxNHB4XSBmb250LW1lZGl1bSBsZWFkaW5nLTUgdGV4dC1bIzBhMGEwYV0gdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNFeHBhbmRlZChpKVwiXG4gICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiaXRlbS5pZCArICctcGFuZWwnXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZShpKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHItWzEwcHhdXCI+e3sgaXRlbS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmxpbmUtZmxleCBoLTYgdy02IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LVsjMGEwYTBhXVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgIGNsYXNzPVwiaC00IHctNCB0cmFuc2l0aW9uLXRyYW5zZm9ybVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpc0V4cGFuZGVkKGkpID8gJ3JvdGF0ZS0xODAnIDogJydcIlxuICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTMuNSA2LjVMOCAxMUwxMi41IDYuNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvaDM+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJpc0V4cGFuZGVkKGkpXCJcbiAgICAgIFtpZF09XCJpdGVtLmlkICsgJy1wYW5lbCdcIlxuICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC00IHBiLTQgdGV4dC1bMTRweF0gZm9udC1ub3JtYWwgbGVhZGluZy01IHRleHQtWyMwYTBhMGFdXCJcbiAgICA+XG4gICAgICA8cCAqbmdGb3I9XCJsZXQgbGluZSBvZiBjb250ZW50TGluZXMoaXRlbS5jb250ZW50KVwiIGNsYXNzPVwibS0wXCI+e3sgbGluZSB9fTwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class PdmAlertComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.variant = 'default';
|
|
7
|
+
this.title = 'Success! Your changes have been saved';
|
|
8
|
+
this.description = 'This is an alert with icon, title and description.';
|
|
9
|
+
this.details = [];
|
|
10
|
+
this.className = '';
|
|
11
|
+
}
|
|
12
|
+
get isDestructive() {
|
|
13
|
+
return this.variant === 'destructive';
|
|
14
|
+
}
|
|
15
|
+
get isTitleOnly() {
|
|
16
|
+
return this.variant === 'title-only';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
PdmAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
+
PdmAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmAlertComponent, selector: "pdm-alert", inputs: { variant: "variant", title: "title", description: "description", details: "details", className: "className" }, ngImport: i0, template: "<section\n role=\"alert\"\n [ngClass]=\"[\n 'w-full rounded-[10px] border border-[#e5e5e5] bg-white px-4 py-3',\n className\n ]\"\n>\n <div [ngClass]=\"['flex gap-3', isDestructive ? 'items-start' : 'items-center']\">\n <span class=\"inline-flex h-6 w-6 shrink-0 items-center justify-center\">\n <svg *ngIf=\"!isDestructive && !isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <svg *ngIf=\"isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 8H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M9 8V6.5C9 5.67 9.67 5 10.5 5H13.5C14.33 5 15 5.67 15 6.5V8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M7 8L8 18.5C8.07 19.33 8.77 20 9.6 20H14.4C15.23 20 15.93 19.33 16 18.5L17 8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <svg *ngIf=\"isDestructive\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[#dc2626]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </svg>\n </span>\n\n <div class=\"min-w-0 flex-1\">\n <h4\n [ngClass]=\"[\n 'm-0 text-[14px] font-medium leading-5',\n isDestructive ? 'text-[#dc2626]' : 'text-[#0a0a0a]'\n ]\"\n >\n {{ title }}\n </h4>\n\n <p\n *ngIf=\"!isTitleOnly && description\"\n [ngClass]=\"[\n 'm-0 mt-0.5 text-[14px] leading-5',\n isDestructive ? 'text-[#dc2626]' : 'text-[#0a0a0a] font-light'\n ]\"\n >\n {{ description }}\n </p>\n\n <ul *ngIf=\"isDestructive && details.length\" class=\"m-0 mt-1 pl-5 text-[14px] leading-5 text-[#dc2626]\">\n <li *ngFor=\"let item of details\">{{ item }}</li>\n </ul>\n </div>\n </div>\n</section>\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAlertComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ selector: 'pdm-alert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n role=\"alert\"\n [ngClass]=\"[\n 'w-full rounded-[10px] border border-[#e5e5e5] bg-white px-4 py-3',\n className\n ]\"\n>\n <div [ngClass]=\"['flex gap-3', isDestructive ? 'items-start' : 'items-center']\">\n <span class=\"inline-flex h-6 w-6 shrink-0 items-center justify-center\">\n <svg *ngIf=\"!isDestructive && !isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <svg *ngIf=\"isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 8H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M9 8V6.5C9 5.67 9.67 5 10.5 5H13.5C14.33 5 15 5.67 15 6.5V8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M7 8L8 18.5C8.07 19.33 8.77 20 9.6 20H14.4C15.23 20 15.93 19.33 16 18.5L17 8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <svg *ngIf=\"isDestructive\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[#dc2626]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </svg>\n </span>\n\n <div class=\"min-w-0 flex-1\">\n <h4\n [ngClass]=\"[\n 'm-0 text-[14px] font-medium leading-5',\n isDestructive ? 'text-[#dc2626]' : 'text-[#0a0a0a]'\n ]\"\n >\n {{ title }}\n </h4>\n\n <p\n *ngIf=\"!isTitleOnly && description\"\n [ngClass]=\"[\n 'm-0 mt-0.5 text-[14px] leading-5',\n isDestructive ? 'text-[#dc2626]' : 'text-[#0a0a0a] font-light'\n ]\"\n >\n {{ description }}\n </p>\n\n <ul *ngIf=\"isDestructive && details.length\" class=\"m-0 mt-1 pl-5 text-[14px] leading-5 text-[#dc2626]\">\n <li *ngFor=\"let item of details\">{{ item }}</li>\n </ul>\n </div>\n </div>\n</section>\n\n" }]
|
|
24
|
+
}], propDecorators: { variant: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}], title: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}], description: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], details: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], className: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}] } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hbGVydC9hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUzFFLE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFNVyxZQUFPLEdBQW9CLFNBQVMsQ0FBQztRQUNyQyxVQUFLLEdBQUcsdUNBQXVDLENBQUM7UUFDaEQsZ0JBQVcsR0FBRyxvREFBb0QsQ0FBQztRQUNuRSxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGNBQVMsR0FBRyxFQUFFLENBQUM7S0FTekI7SUFQQyxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssYUFBYSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssWUFBWSxDQUFDO0lBQ3ZDLENBQUM7OytHQWJVLGlCQUFpQjttR0FBakIsaUJBQWlCLHlLQ1Q5QiwyOUVBb0RBOzRGRDNDYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBQZG1BbGVydFZhcmlhbnQgPSAnZGVmYXVsdCcgfCAndGl0bGUtb25seScgfCAnZGVzdHJ1Y3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZG0tYWxlcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1BbGVydENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHZhcmlhbnQ6IFBkbUFsZXJ0VmFyaWFudCA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgdGl0bGUgPSAnU3VjY2VzcyEgWW91ciBjaGFuZ2VzIGhhdmUgYmVlbiBzYXZlZCc7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJ1RoaXMgaXMgYW4gYWxlcnQgd2l0aCBpY29uLCB0aXRsZSBhbmQgZGVzY3JpcHRpb24uJztcbiAgQElucHV0KCkgZGV0YWlsczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG5cbiAgZ2V0IGlzRGVzdHJ1Y3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFudCA9PT0gJ2Rlc3RydWN0aXZlJztcbiAgfVxuXG4gIGdldCBpc1RpdGxlT25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYW50ID09PSAndGl0bGUtb25seSc7XG4gIH1cbn1cblxuIiwiPHNlY3Rpb25cbiAgcm9sZT1cImFsZXJ0XCJcbiAgW25nQ2xhc3NdPVwiW1xuICAgICd3LWZ1bGwgcm91bmRlZC1bMTBweF0gYm9yZGVyIGJvcmRlci1bI2U1ZTVlNV0gYmctd2hpdGUgcHgtNCBweS0zJyxcbiAgICBjbGFzc05hbWVcbiAgXVwiXG4+XG4gIDxkaXYgW25nQ2xhc3NdPVwiWydmbGV4IGdhcC0zJywgaXNEZXN0cnVjdGl2ZSA/ICdpdGVtcy1zdGFydCcgOiAnaXRlbXMtY2VudGVyJ11cIj5cbiAgICA8c3BhbiBjbGFzcz1cImlubGluZS1mbGV4IGgtNiB3LTYgc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICA8c3ZnICpuZ0lmPVwiIWlzRGVzdHJ1Y3RpdmUgJiYgIWlzVGl0bGVPbmx5XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGNsYXNzPVwiaC01IHctNSB0ZXh0LVsjMGEwYTBhXVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIj48L2NpcmNsZT5cbiAgICAgICAgPHBhdGggZD1cIk04LjUgMTIuNUwxMC44IDE0LjhMMTUuOCA5LjhcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8L3N2Zz5cbiAgICAgIDxzdmcgKm5nSWY9XCJpc1RpdGxlT25seVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBjbGFzcz1cImgtNSB3LTUgdGV4dC1bIzBhMGEwYV1cIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgPHBhdGggZD1cIk01IDhIMTlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgICA8cGF0aCBkPVwiTTkgOFY2LjVDOSA1LjY3IDkuNjcgNSAxMC41IDVIMTMuNUMxNC4zMyA1IDE1IDUuNjcgMTUgNi41VjhcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgICA8cGF0aCBkPVwiTTcgOEw4IDE4LjVDOC4wNyAxOS4zMyA4Ljc3IDIwIDkuNiAyMEgxNC40QzE1LjIzIDIwIDE1LjkzIDE5LjMzIDE2IDE4LjVMMTcgOFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8L3N2Zz5cbiAgICAgIDxzdmcgKm5nSWY9XCJpc0Rlc3RydWN0aXZlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGNsYXNzPVwiaC01IHctNSB0ZXh0LVsjZGMyNjI2XVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIj48L2NpcmNsZT5cbiAgICAgICAgPHBhdGggZD1cIk0xMiA4VjEyXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxNlwiIHI9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvY2lyY2xlPlxuICAgICAgPC9zdmc+XG4gICAgPC9zcGFuPlxuXG4gICAgPGRpdiBjbGFzcz1cIm1pbi13LTAgZmxleC0xXCI+XG4gICAgICA8aDRcbiAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAgICdtLTAgdGV4dC1bMTRweF0gZm9udC1tZWRpdW0gbGVhZGluZy01JyxcbiAgICAgICAgICBpc0Rlc3RydWN0aXZlID8gJ3RleHQtWyNkYzI2MjZdJyA6ICd0ZXh0LVsjMGEwYTBhXSdcbiAgICAgICAgXVwiXG4gICAgICA+XG4gICAgICAgIHt7IHRpdGxlIH19XG4gICAgICA8L2g0PlxuXG4gICAgICA8cFxuICAgICAgICAqbmdJZj1cIiFpc1RpdGxlT25seSAmJiBkZXNjcmlwdGlvblwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICAgICAnbS0wIG10LTAuNSB0ZXh0LVsxNHB4XSBsZWFkaW5nLTUnLFxuICAgICAgICAgIGlzRGVzdHJ1Y3RpdmUgPyAndGV4dC1bI2RjMjYyNl0nIDogJ3RleHQtWyMwYTBhMGFdIGZvbnQtbGlnaHQnXG4gICAgICAgIF1cIlxuICAgICAgPlxuICAgICAgICB7eyBkZXNjcmlwdGlvbiB9fVxuICAgICAgPC9wPlxuXG4gICAgICA8dWwgKm5nSWY9XCJpc0Rlc3RydWN0aXZlICYmIGRldGFpbHMubGVuZ3RoXCIgY2xhc3M9XCJtLTAgbXQtMSBwbC01IHRleHQtWzE0cHhdIGxlYWRpbmctNSB0ZXh0LVsjZGMyNjI2XVwiPlxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGV0YWlsc1wiPnt7IGl0ZW0gfX08L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG5cbiJdfQ==
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class PdmAlertDialogComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.open = false;
|
|
7
|
+
this.showTrigger = false;
|
|
8
|
+
this.triggerText = 'Show dialog';
|
|
9
|
+
this.title = 'Are you absolutely sure?';
|
|
10
|
+
this.description = '';
|
|
11
|
+
this.confirmText = 'Continue';
|
|
12
|
+
this.cancelText = 'Cancel';
|
|
13
|
+
this.className = '';
|
|
14
|
+
this.openChange = new EventEmitter();
|
|
15
|
+
this.confirm = new EventEmitter();
|
|
16
|
+
this.cancel = new EventEmitter();
|
|
17
|
+
}
|
|
18
|
+
onTriggerClick() {
|
|
19
|
+
this.open = true;
|
|
20
|
+
this.openChange.emit(true);
|
|
21
|
+
}
|
|
22
|
+
onCancel() {
|
|
23
|
+
this.cancel.emit();
|
|
24
|
+
this.open = false;
|
|
25
|
+
this.openChange.emit(false);
|
|
26
|
+
}
|
|
27
|
+
onConfirm() {
|
|
28
|
+
this.confirm.emit();
|
|
29
|
+
this.open = false;
|
|
30
|
+
this.openChange.emit(false);
|
|
31
|
+
}
|
|
32
|
+
onEsc() {
|
|
33
|
+
if (this.open) {
|
|
34
|
+
this.onCancel();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
PdmAlertDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAlertDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
+
PdmAlertDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmAlertDialogComponent, selector: "pdm-alert-dialog", inputs: { open: "open", showTrigger: "showTrigger", triggerText: "triggerText", title: "title", description: "description", confirmText: "confirmText", cancelText: "cancelText", className: "className" }, outputs: { openChange: "openChange", confirm: "confirm", cancel: "cancel" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<button\n *ngIf=\"showTrigger && !open\"\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[8px] border border-[#e5e5e5] bg-[#f5f5f5] px-4 py-2 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\"\n (click)=\"onTriggerClick()\"\n>\n {{ triggerText }}\n</button>\n\n<div *ngIf=\"open\" class=\"fixed inset-0 z-50 flex items-center justify-center p-5\">\n <div class=\"absolute inset-0 bg-[rgba(0,0,0,0.3)]\" (click)=\"onCancel()\"></div>\n <section\n role=\"alertdialog\"\n aria-modal=\"true\"\n [ngClass]=\"[\n 'relative z-10 w-full max-w-[552px] rounded-[10px] border border-[#e5e5e5] bg-white p-6 text-[#0a0a0a] shadow-[0px_10px_15px_0px_rgba(0,0,0,0.1),0px_4px_6px_0px_rgba(0,0,0,0.1)]',\n className\n ]\"\n >\n <div class=\"flex flex-col gap-2\">\n <h2 class=\"text-[18px] font-semibold leading-7 tracking-normal\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"text-[14px] font-normal leading-5 text-[#737373]\">{{ description }}</p>\n </div>\n <div class=\"mt-4 flex items-center justify-end gap-2\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] border border-[#e5e5e5] bg-white px-4 py-2 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\"\n (click)=\"onCancel()\"\n >\n {{ cancelText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] bg-[#171717] px-4 py-2 text-[14px] font-medium leading-5 text-[#fafafa] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\"\n (click)=\"onConfirm()\"\n >\n {{ confirmText }}\n </button>\n </div>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAlertDialogComponent, decorators: [{
|
|
41
|
+
type: Component,
|
|
42
|
+
args: [{ selector: 'pdm-alert-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n *ngIf=\"showTrigger && !open\"\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[8px] border border-[#e5e5e5] bg-[#f5f5f5] px-4 py-2 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\"\n (click)=\"onTriggerClick()\"\n>\n {{ triggerText }}\n</button>\n\n<div *ngIf=\"open\" class=\"fixed inset-0 z-50 flex items-center justify-center p-5\">\n <div class=\"absolute inset-0 bg-[rgba(0,0,0,0.3)]\" (click)=\"onCancel()\"></div>\n <section\n role=\"alertdialog\"\n aria-modal=\"true\"\n [ngClass]=\"[\n 'relative z-10 w-full max-w-[552px] rounded-[10px] border border-[#e5e5e5] bg-white p-6 text-[#0a0a0a] shadow-[0px_10px_15px_0px_rgba(0,0,0,0.1),0px_4px_6px_0px_rgba(0,0,0,0.1)]',\n className\n ]\"\n >\n <div class=\"flex flex-col gap-2\">\n <h2 class=\"text-[18px] font-semibold leading-7 tracking-normal\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"text-[14px] font-normal leading-5 text-[#737373]\">{{ description }}</p>\n </div>\n <div class=\"mt-4 flex items-center justify-end gap-2\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] border border-[#e5e5e5] bg-white px-4 py-2 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\"\n (click)=\"onCancel()\"\n >\n {{ cancelText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] bg-[#171717] px-4 py-2 text-[14px] font-medium leading-5 text-[#fafafa] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\"\n (click)=\"onConfirm()\"\n >\n {{ confirmText }}\n </button>\n </div>\n </section>\n</div>\n" }]
|
|
43
|
+
}], propDecorators: { open: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], showTrigger: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], triggerText: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], title: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], description: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], confirmText: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], cancelText: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], className: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], openChange: [{
|
|
60
|
+
type: Output
|
|
61
|
+
}], confirm: [{
|
|
62
|
+
type: Output
|
|
63
|
+
}], cancel: [{
|
|
64
|
+
type: Output
|
|
65
|
+
}], onEsc: [{
|
|
66
|
+
type: HostListener,
|
|
67
|
+
args: ['document:keydown.escape']
|
|
68
|
+
}] } });
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hbGVydC1kaWFsb2cvYWxlcnQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hbGVydC1kaWFsb2cvYWxlcnQtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPOUcsTUFBTSxPQUFPLHVCQUF1QjtJQUxwQztRQU1XLFNBQUksR0FBRyxLQUFLLENBQUM7UUFDYixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFBVyxHQUFHLGFBQWEsQ0FBQztRQUM1QixVQUFLLEdBQUcsMEJBQTBCLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFDekIsZUFBVSxHQUFHLFFBQVEsQ0FBQztRQUN0QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDekMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbkMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0F5QjdDO0lBdkJDLGNBQWM7UUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFHRCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQzs7cUhBcENVLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLGdaQ1BwQywyeERBeUNBOzRGRGxDYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUVYLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFvQlAsS0FBSztzQkFESixZQUFZO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkbS1hbGVydC1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGRtQWxlcnREaWFsb2dDb21wb25lbnQge1xuICBASW5wdXQoKSBvcGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dUcmlnZ2VyID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRyaWdnZXJUZXh0ID0gJ1Nob3cgZGlhbG9nJztcbiAgQElucHV0KCkgdGl0bGUgPSAnQXJlIHlvdSBhYnNvbHV0ZWx5IHN1cmU/JztcbiAgQElucHV0KCkgZGVzY3JpcHRpb24gPSAnJztcbiAgQElucHV0KCkgY29uZmlybVRleHQgPSAnQ29udGludWUnO1xuICBASW5wdXQoKSBjYW5jZWxUZXh0ID0gJ0NhbmNlbCc7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuXG4gIEBPdXRwdXQoKSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgY29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBvblRyaWdnZXJDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KHRydWUpO1xuICB9XG5cbiAgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIG9uQ29uZmlybSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpcm0uZW1pdCgpO1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJylcbiAgb25Fc2MoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3Blbikge1xuICAgICAgdGhpcy5vbkNhbmNlbCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGJ1dHRvblxuICAqbmdJZj1cInNob3dUcmlnZ2VyICYmICFvcGVuXCJcbiAgdHlwZT1cImJ1dHRvblwiXG4gIGNsYXNzPVwiaW5saW5lLWZsZXggaC05IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLVs4cHhdIGJvcmRlciBib3JkZXItWyNlNWU1ZTVdIGJnLVsjZjVmNWY1XSBweC00IHB5LTIgdGV4dC1bMTRweF0gZm9udC1tZWRpdW0gbGVhZGluZy01IHRleHQtWyMwYTBhMGFdIHNoYWRvdy1bMHB4XzFweF8ycHhfMHB4X3JnYmEoMCwwLDAsMC4xKV1cIlxuICAoY2xpY2spPVwib25UcmlnZ2VyQ2xpY2soKVwiXG4+XG4gIHt7IHRyaWdnZXJUZXh0IH19XG48L2J1dHRvbj5cblxuPGRpdiAqbmdJZj1cIm9wZW5cIiBjbGFzcz1cImZpeGVkIGluc2V0LTAgei01MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBwLTVcIj5cbiAgPGRpdiBjbGFzcz1cImFic29sdXRlIGluc2V0LTAgYmctW3JnYmEoMCwwLDAsMC4zKV1cIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPjwvZGl2PlxuICA8c2VjdGlvblxuICAgIHJvbGU9XCJhbGVydGRpYWxvZ1wiXG4gICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICdyZWxhdGl2ZSB6LTEwIHctZnVsbCBtYXgtdy1bNTUycHhdIHJvdW5kZWQtWzEwcHhdIGJvcmRlciBib3JkZXItWyNlNWU1ZTVdIGJnLXdoaXRlIHAtNiB0ZXh0LVsjMGEwYTBhXSBzaGFkb3ctWzBweF8xMHB4XzE1cHhfMHB4X3JnYmEoMCwwLDAsMC4xKSwwcHhfNHB4XzZweF8wcHhfcmdiYSgwLDAsMCwwLjEpXScsXG4gICAgICBjbGFzc05hbWVcbiAgICBdXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICA8aDIgY2xhc3M9XCJ0ZXh0LVsxOHB4XSBmb250LXNlbWlib2xkIGxlYWRpbmctNyB0cmFja2luZy1ub3JtYWxcIj57eyB0aXRsZSB9fTwvaDI+XG4gICAgICA8cCAqbmdJZj1cImRlc2NyaXB0aW9uXCIgY2xhc3M9XCJ0ZXh0LVsxNHB4XSBmb250LW5vcm1hbCBsZWFkaW5nLTUgdGV4dC1bIzczNzM3M11cIj57eyBkZXNjcmlwdGlvbiB9fTwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXQtNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZCBnYXAtMlwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBoLTkgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtWzEwcHhdIGJvcmRlciBib3JkZXItWyNlNWU1ZTVdIGJnLXdoaXRlIHB4LTQgcHktMiB0ZXh0LVsxNHB4XSBmb250LW1lZGl1bSBsZWFkaW5nLTUgdGV4dC1bIzBhMGEwYV0gc2hhZG93LVswcHhfMXB4XzJweF8wcHhfcmdiYSgwLDAsMCwwLjEpXVwiXG4gICAgICAgIChjbGljayk9XCJvbkNhbmNlbCgpXCJcbiAgICAgID5cbiAgICAgICAge3sgY2FuY2VsVGV4dCB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImlubGluZS1mbGV4IGgtOSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1bMTBweF0gYmctWyMxNzE3MTddIHB4LTQgcHktMiB0ZXh0LVsxNHB4XSBmb250LW1lZGl1bSBsZWFkaW5nLTUgdGV4dC1bI2ZhZmFmYV0gc2hhZG93LVswcHhfMXB4XzJweF8wcHhfcmdiYSgwLDAsMCwwLjEpXVwiXG4gICAgICAgIChjbGljayk9XCJvbkNvbmZpcm0oKVwiXG4gICAgICA+XG4gICAgICAgIHt7IGNvbmZpcm1UZXh0IH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class PdmAspectRatioComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.ratio = 16 / 9;
|
|
7
|
+
this.imageSrc = '';
|
|
8
|
+
this.imageAlt = '';
|
|
9
|
+
this.className = '';
|
|
10
|
+
}
|
|
11
|
+
get paddingTop() {
|
|
12
|
+
if (!this.ratio || this.ratio <= 0)
|
|
13
|
+
return '56.25%';
|
|
14
|
+
return (100 / this.ratio).toFixed(4) + '%';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
PdmAspectRatioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAspectRatioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
+
PdmAspectRatioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmAspectRatioComponent, selector: "pdm-aspect-ratio", inputs: { ratio: "ratio", imageSrc: "imageSrc", imageAlt: "imageAlt", className: "className" }, ngImport: i0, template: "<div class=\"relative w-full\" [ngClass]=\"className\" [style.paddingTop]=\"paddingTop\">\n <div class=\"absolute inset-0 overflow-hidden rounded-[10px]\">\n <img\n *ngIf=\"imageSrc\"\n [src]=\"imageSrc\"\n [alt]=\"imageAlt\"\n class=\"pointer-events-none h-full w-full rounded-[10px] object-cover\"\n />\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAspectRatioComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ selector: 'pdm-aspect-ratio', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative w-full\" [ngClass]=\"className\" [style.paddingTop]=\"paddingTop\">\n <div class=\"absolute inset-0 overflow-hidden rounded-[10px]\">\n <img\n *ngIf=\"imageSrc\"\n [src]=\"imageSrc\"\n [alt]=\"imageAlt\"\n class=\"pointer-events-none h-full w-full rounded-[10px] object-cover\"\n />\n <ng-content></ng-content>\n </div>\n</div>\n" }]
|
|
22
|
+
}], propDecorators: { ratio: [{
|
|
23
|
+
type: Input
|
|
24
|
+
}], imageSrc: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}], imageAlt: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}], className: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}] } });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNwZWN0LXJhdGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hc3BlY3QtcmF0aW8vYXNwZWN0LXJhdGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPMUUsTUFBTSxPQUFPLHVCQUF1QjtJQUxwQztRQU1XLFVBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxjQUFTLEdBQUcsRUFBRSxDQUFDO0tBTXpCO0lBSkMsSUFBSSxVQUFVO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDO1lBQUUsT0FBTyxRQUFRLENBQUM7UUFDcEQsT0FBTyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUM3QyxDQUFDOztxSEFUVSx1QkFBdUI7eUdBQXZCLHVCQUF1Qix3SkNQcEMsZ1lBV0E7NEZESmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGtCQUFrQixtQkFFWCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZG0tYXNwZWN0LXJhdGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FzcGVjdC1yYXRpby5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbUFzcGVjdFJhdGlvQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcmF0aW8gPSAxNiAvIDk7XG4gIEBJbnB1dCgpIGltYWdlU3JjID0gJyc7XG4gIEBJbnB1dCgpIGltYWdlQWx0ID0gJyc7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuXG4gIGdldCBwYWRkaW5nVG9wKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnJhdGlvIHx8IHRoaXMucmF0aW8gPD0gMCkgcmV0dXJuICc1Ni4yNSUnO1xuICAgIHJldHVybiAoMTAwIC8gdGhpcy5yYXRpbykudG9GaXhlZCg0KSArICclJztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJlbGF0aXZlIHctZnVsbFwiIFtuZ0NsYXNzXT1cImNsYXNzTmFtZVwiIFtzdHlsZS5wYWRkaW5nVG9wXT1cInBhZGRpbmdUb3BcIj5cbiAgPGRpdiBjbGFzcz1cImFic29sdXRlIGluc2V0LTAgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtWzEwcHhdXCI+XG4gICAgPGltZ1xuICAgICAgKm5nSWY9XCJpbWFnZVNyY1wiXG4gICAgICBbc3JjXT1cImltYWdlU3JjXCJcbiAgICAgIFthbHRdPVwiaW1hZ2VBbHRcIlxuICAgICAgY2xhc3M9XCJwb2ludGVyLWV2ZW50cy1ub25lIGgtZnVsbCB3LWZ1bGwgcm91bmRlZC1bMTBweF0gb2JqZWN0LWNvdmVyXCJcbiAgICAvPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class PdmAvatarComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.src = '';
|
|
7
|
+
this.alt = 'Avatar';
|
|
8
|
+
this.fallback = 'U';
|
|
9
|
+
this.shape = 'circle';
|
|
10
|
+
this.size = 'md';
|
|
11
|
+
this.groupSources = [];
|
|
12
|
+
this.className = '';
|
|
13
|
+
this.sizeClasses = {
|
|
14
|
+
sm: 'h-8 w-8',
|
|
15
|
+
md: 'h-10 w-10',
|
|
16
|
+
lg: 'h-12 w-12'
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
get isGroup() {
|
|
20
|
+
return this.groupSources.length > 0;
|
|
21
|
+
}
|
|
22
|
+
get radiusClass() {
|
|
23
|
+
return this.shape === 'square' ? 'rounded-[8px]' : 'rounded-full';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
PdmAvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
PdmAvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmAvatarComponent, selector: "pdm-avatar", inputs: { src: "src", alt: "alt", fallback: "fallback", shape: "shape", size: "size", groupSources: "groupSources", className: "className" }, ngImport: i0, template: "<div *ngIf=\"!isGroup\" [ngClass]=\"['relative flex shrink-0 overflow-hidden', radiusClass, sizeClasses[size], className]\">\n <img *ngIf=\"src\" [src]=\"src\" [alt]=\"alt\" [ngClass]=\"['aspect-square h-full w-full object-cover', radiusClass]\" />\n <div\n *ngIf=\"!src\"\n [ngClass]=\"['flex h-full w-full items-center justify-center bg-[hsl(var(--muted))] text-xs text-[hsl(var(--muted-foreground))]', radiusClass]\"\n >\n {{ fallback }}\n </div>\n</div>\n\n<div *ngIf=\"isGroup\" [ngClass]=\"['inline-flex items-center pr-2', className]\">\n <div\n *ngFor=\"let groupSrc of groupSources; let i = index\"\n [ngClass]=\"[\n 'relative h-8 w-8 shrink-0 overflow-hidden rounded-full',\n i > 0 ? '-mr-2 border border-[#e5e5e5]' : '-mr-2'\n ]\"\n >\n <img [src]=\"groupSrc\" [alt]=\"alt + ' ' + (i + 1)\" class=\"h-full w-full rounded-full object-cover\" />\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAvatarComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{ selector: 'pdm-avatar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!isGroup\" [ngClass]=\"['relative flex shrink-0 overflow-hidden', radiusClass, sizeClasses[size], className]\">\n <img *ngIf=\"src\" [src]=\"src\" [alt]=\"alt\" [ngClass]=\"['aspect-square h-full w-full object-cover', radiusClass]\" />\n <div\n *ngIf=\"!src\"\n [ngClass]=\"['flex h-full w-full items-center justify-center bg-[hsl(var(--muted))] text-xs text-[hsl(var(--muted-foreground))]', radiusClass]\"\n >\n {{ fallback }}\n </div>\n</div>\n\n<div *ngIf=\"isGroup\" [ngClass]=\"['inline-flex items-center pr-2', className]\">\n <div\n *ngFor=\"let groupSrc of groupSources; let i = index\"\n [ngClass]=\"[\n 'relative h-8 w-8 shrink-0 overflow-hidden rounded-full',\n i > 0 ? '-mr-2 border border-[#e5e5e5]' : '-mr-2'\n ]\"\n >\n <img [src]=\"groupSrc\" [alt]=\"alt + ' ' + (i + 1)\" class=\"h-full w-full rounded-full object-cover\" />\n </div>\n</div>\n" }]
|
|
31
|
+
}], propDecorators: { src: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], alt: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], fallback: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], shape: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], size: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], groupSources: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], className: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}] } });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTMUUsTUFBTSxPQUFPLGtCQUFrQjtJQUwvQjtRQU1XLFFBQUcsR0FBRyxFQUFFLENBQUM7UUFDVCxRQUFHLEdBQUcsUUFBUSxDQUFDO1FBQ2YsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNmLFVBQUssR0FBbUIsUUFBUSxDQUFDO1FBQ2pDLFNBQUksR0FBdUIsSUFBSSxDQUFDO1FBQ2hDLGlCQUFZLEdBQWEsRUFBRSxDQUFDO1FBQzVCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZixnQkFBVyxHQUFHO1lBQ3JCLEVBQUUsRUFBRSxTQUFTO1lBQ2IsRUFBRSxFQUFFLFdBQVc7WUFDZixFQUFFLEVBQUUsV0FBVztTQUNoQixDQUFDO0tBU0g7SUFQQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7SUFDcEUsQ0FBQzs7Z0hBckJVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLGdNQ1QvQixpNUJBcUJBOzRGRFphLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxZQUFZLG1CQUVMLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIFBkbUF2YXRhclNoYXBlID0gJ2NpcmNsZScgfCAnc3F1YXJlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLWF2YXRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1BdmF0YXJDb21wb25lbnQge1xuICBASW5wdXQoKSBzcmMgPSAnJztcbiAgQElucHV0KCkgYWx0ID0gJ0F2YXRhcic7XG4gIEBJbnB1dCgpIGZhbGxiYWNrID0gJ1UnO1xuICBASW5wdXQoKSBzaGFwZTogUGRtQXZhdGFyU2hhcGUgPSAnY2lyY2xlJztcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnID0gJ21kJztcbiAgQElucHV0KCkgZ3JvdXBTb3VyY2VzOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcblxuICByZWFkb25seSBzaXplQ2xhc3NlcyA9IHtcbiAgICBzbTogJ2gtOCB3LTgnLFxuICAgIG1kOiAnaC0xMCB3LTEwJyxcbiAgICBsZzogJ2gtMTIgdy0xMidcbiAgfTtcblxuICBnZXQgaXNHcm91cCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ncm91cFNvdXJjZXMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGdldCByYWRpdXNDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNoYXBlID09PSAnc3F1YXJlJyA/ICdyb3VuZGVkLVs4cHhdJyA6ICdyb3VuZGVkLWZ1bGwnO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIWlzR3JvdXBcIiBbbmdDbGFzc109XCJbJ3JlbGF0aXZlIGZsZXggc2hyaW5rLTAgb3ZlcmZsb3ctaGlkZGVuJywgcmFkaXVzQ2xhc3MsIHNpemVDbGFzc2VzW3NpemVdLCBjbGFzc05hbWVdXCI+XG4gIDxpbWcgKm5nSWY9XCJzcmNcIiBbc3JjXT1cInNyY1wiIFthbHRdPVwiYWx0XCIgW25nQ2xhc3NdPVwiWydhc3BlY3Qtc3F1YXJlIGgtZnVsbCB3LWZ1bGwgb2JqZWN0LWNvdmVyJywgcmFkaXVzQ2xhc3NdXCIgLz5cbiAgPGRpdlxuICAgICpuZ0lmPVwiIXNyY1wiXG4gICAgW25nQ2xhc3NdPVwiWydmbGV4IGgtZnVsbCB3LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJnLVtoc2wodmFyKC0tbXV0ZWQpKV0gdGV4dC14cyB0ZXh0LVtoc2wodmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCkpXScsIHJhZGl1c0NsYXNzXVwiXG4gID5cbiAgICB7eyBmYWxsYmFjayB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiaXNHcm91cFwiIFtuZ0NsYXNzXT1cIlsnaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIHByLTInLCBjbGFzc05hbWVdXCI+XG4gIDxkaXZcbiAgICAqbmdGb3I9XCJsZXQgZ3JvdXBTcmMgb2YgZ3JvdXBTb3VyY2VzOyBsZXQgaSA9IGluZGV4XCJcbiAgICBbbmdDbGFzc109XCJbXG4gICAgICAncmVsYXRpdmUgaC04IHctOCBzaHJpbmstMCBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC1mdWxsJyxcbiAgICAgIGkgPiAwID8gJy1tci0yIGJvcmRlciBib3JkZXItWyNlNWU1ZTVdJyA6ICctbXItMidcbiAgICBdXCJcbiAgPlxuICAgIDxpbWcgW3NyY109XCJncm91cFNyY1wiIFthbHRdPVwiYWx0ICsgJyAnICsgKGkgKyAxKVwiIGNsYXNzPVwiaC1mdWxsIHctZnVsbCByb3VuZGVkLWZ1bGwgb2JqZWN0LWNvdmVyXCIgLz5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class PdmBadgeComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.variant = 'default';
|
|
7
|
+
this.text = 'Badge';
|
|
8
|
+
this.className = '';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
PdmBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
PdmBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmBadgeComponent, selector: "pdm-badge", inputs: { variant: "variant", text: "text", className: "className" }, ngImport: i0, template: "<span\n [ngClass]=\"[\n 'inline-flex items-center justify-center text-center align-middle',\n variant === 'default' ? 'h-[22px] rounded-[10px] bg-[#171717] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#fafafa]' : '',\n variant === 'secondary' ? 'h-[22px] rounded-[10px] bg-[#f5f5f5] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#0a0a0a]' : '',\n variant === 'destructive' ? 'h-[22px] rounded-[10px] bg-[#dc2626] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[rgba(255,255,255,0.95)]' : '',\n variant === 'outline' ? 'h-[22px] rounded-[10px] border border-[#e5e5e5] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#0a0a0a]' : '',\n variant === 'icon' ? 'h-[22px] gap-1 rounded-[10px] bg-[#171717] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#fafafa]' : '',\n variant === 'number' ? 'h-5 min-w-[20px] rounded-full bg-[#171717] px-[6px] py-[2px] text-[12px] font-medium leading-4 text-[#fafafa]' : '',\n variant === 'destructive-number' ? 'h-5 min-w-[20px] rounded-full bg-[#dc2626] px-[6px] py-[2px] text-[12px] font-medium leading-4 text-[rgba(255,255,255,0.95)]' : '',\n variant === 'secondary-number' ? 'h-5 min-w-[20px] rounded-full border border-[#e5e5e5] px-1 py-[2px] text-[12px] font-medium leading-4 text-[#0a0a0a]' : '',\n className\n ]\"\n>\n <svg\n *ngIf=\"variant === 'icon'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span [ngClass]=\"[variant === 'secondary-number' ? 'font-mono' : '']\">{{ text }}</span>\n</span>\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmBadgeComponent, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{ selector: 'pdm-badge', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n [ngClass]=\"[\n 'inline-flex items-center justify-center text-center align-middle',\n variant === 'default' ? 'h-[22px] rounded-[10px] bg-[#171717] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#fafafa]' : '',\n variant === 'secondary' ? 'h-[22px] rounded-[10px] bg-[#f5f5f5] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#0a0a0a]' : '',\n variant === 'destructive' ? 'h-[22px] rounded-[10px] bg-[#dc2626] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[rgba(255,255,255,0.95)]' : '',\n variant === 'outline' ? 'h-[22px] rounded-[10px] border border-[#e5e5e5] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#0a0a0a]' : '',\n variant === 'icon' ? 'h-[22px] gap-1 rounded-[10px] bg-[#171717] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#fafafa]' : '',\n variant === 'number' ? 'h-5 min-w-[20px] rounded-full bg-[#171717] px-[6px] py-[2px] text-[12px] font-medium leading-4 text-[#fafafa]' : '',\n variant === 'destructive-number' ? 'h-5 min-w-[20px] rounded-full bg-[#dc2626] px-[6px] py-[2px] text-[12px] font-medium leading-4 text-[rgba(255,255,255,0.95)]' : '',\n variant === 'secondary-number' ? 'h-5 min-w-[20px] rounded-full border border-[#e5e5e5] px-1 py-[2px] text-[12px] font-medium leading-4 text-[#0a0a0a]' : '',\n className\n ]\"\n>\n <svg\n *ngIf=\"variant === 'icon'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span [ngClass]=\"[variant === 'secondary-number' ? 'font-mono' : '']\">{{ text }}</span>\n</span>\n\n" }]
|
|
16
|
+
}], propDecorators: { variant: [{
|
|
17
|
+
type: Input
|
|
18
|
+
}], text: [{
|
|
19
|
+
type: Input
|
|
20
|
+
}], className: [{
|
|
21
|
+
type: Input
|
|
22
|
+
}] } });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9iYWRnZS9iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBaUIxRSxNQUFNLE9BQU8saUJBQWlCO0lBTDlCO1FBTVcsWUFBTyxHQUFvQixTQUFTLENBQUM7UUFDckMsU0FBSSxHQUFHLE9BQU8sQ0FBQztRQUNmLGNBQVMsR0FBRyxFQUFFLENBQUM7S0FDekI7OytHQUpZLGlCQUFpQjttR0FBakIsaUJBQWlCLHVIQ2pCOUIsdTJEQTRCQTs0RkRYYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBQZG1CYWRnZVZhcmlhbnQgPVxuICB8ICdkZWZhdWx0J1xuICB8ICdzZWNvbmRhcnknXG4gIHwgJ2Rlc3RydWN0aXZlJ1xuICB8ICdvdXRsaW5lJ1xuICB8ICdpY29uJ1xuICB8ICdudW1iZXInXG4gIHwgJ2Rlc3RydWN0aXZlLW51bWJlcidcbiAgfCAnc2Vjb25kYXJ5LW51bWJlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkbS1iYWRnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYWRnZS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbUJhZGdlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdmFyaWFudDogUGRtQmFkZ2VWYXJpYW50ID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSB0ZXh0ID0gJ0JhZGdlJztcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG59XG5cbiIsIjxzcGFuXG4gIFtuZ0NsYXNzXT1cIltcbiAgICAnaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtY2VudGVyIGFsaWduLW1pZGRsZScsXG4gICAgdmFyaWFudCA9PT0gJ2RlZmF1bHQnID8gJ2gtWzIycHhdIHJvdW5kZWQtWzEwcHhdIGJnLVsjMTcxNzE3XSBweC1bMTBweF0gcHktWzJweF0gdGV4dC1bMTJweF0gZm9udC1tZWRpdW0gbGVhZGluZy00IHRleHQtWyNmYWZhZmFdJyA6ICcnLFxuICAgIHZhcmlhbnQgPT09ICdzZWNvbmRhcnknID8gJ2gtWzIycHhdIHJvdW5kZWQtWzEwcHhdIGJnLVsjZjVmNWY1XSBweC1bMTBweF0gcHktWzJweF0gdGV4dC1bMTJweF0gZm9udC1tZWRpdW0gbGVhZGluZy00IHRleHQtWyMwYTBhMGFdJyA6ICcnLFxuICAgIHZhcmlhbnQgPT09ICdkZXN0cnVjdGl2ZScgPyAnaC1bMjJweF0gcm91bmRlZC1bMTBweF0gYmctWyNkYzI2MjZdIHB4LVsxMHB4XSBweS1bMnB4XSB0ZXh0LVsxMnB4XSBmb250LW1lZGl1bSBsZWFkaW5nLTQgdGV4dC1bcmdiYSgyNTUsMjU1LDI1NSwwLjk1KV0nIDogJycsXG4gICAgdmFyaWFudCA9PT0gJ291dGxpbmUnID8gJ2gtWzIycHhdIHJvdW5kZWQtWzEwcHhdIGJvcmRlciBib3JkZXItWyNlNWU1ZTVdIHB4LVsxMHB4XSBweS1bMnB4XSB0ZXh0LVsxMnB4XSBmb250LW1lZGl1bSBsZWFkaW5nLTQgdGV4dC1bIzBhMGEwYV0nIDogJycsXG4gICAgdmFyaWFudCA9PT0gJ2ljb24nID8gJ2gtWzIycHhdIGdhcC0xIHJvdW5kZWQtWzEwcHhdIGJnLVsjMTcxNzE3XSBweC1bMTBweF0gcHktWzJweF0gdGV4dC1bMTJweF0gZm9udC1tZWRpdW0gbGVhZGluZy00IHRleHQtWyNmYWZhZmFdJyA6ICcnLFxuICAgIHZhcmlhbnQgPT09ICdudW1iZXInID8gJ2gtNSBtaW4tdy1bMjBweF0gcm91bmRlZC1mdWxsIGJnLVsjMTcxNzE3XSBweC1bNnB4XSBweS1bMnB4XSB0ZXh0LVsxMnB4XSBmb250LW1lZGl1bSBsZWFkaW5nLTQgdGV4dC1bI2ZhZmFmYV0nIDogJycsXG4gICAgdmFyaWFudCA9PT0gJ2Rlc3RydWN0aXZlLW51bWJlcicgPyAnaC01IG1pbi13LVsyMHB4XSByb3VuZGVkLWZ1bGwgYmctWyNkYzI2MjZdIHB4LVs2cHhdIHB5LVsycHhdIHRleHQtWzEycHhdIGZvbnQtbWVkaXVtIGxlYWRpbmctNCB0ZXh0LVtyZ2JhKDI1NSwyNTUsMjU1LDAuOTUpXScgOiAnJyxcbiAgICB2YXJpYW50ID09PSAnc2Vjb25kYXJ5LW51bWJlcicgPyAnaC01IG1pbi13LVsyMHB4XSByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci1bI2U1ZTVlNV0gcHgtMSBweS1bMnB4XSB0ZXh0LVsxMnB4XSBmb250LW1lZGl1bSBsZWFkaW5nLTQgdGV4dC1bIzBhMGEwYV0nIDogJycsXG4gICAgY2xhc3NOYW1lXG4gIF1cIlxuPlxuICA8c3ZnXG4gICAgKm5nSWY9XCJ2YXJpYW50ID09PSAnaWNvbidcIlxuICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgIGNsYXNzPVwiaC00IHctNFwiXG4gICAgZmlsbD1cIm5vbmVcIlxuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gID5cbiAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIj48L2NpcmNsZT5cbiAgICA8cGF0aCBkPVwiTTguNSAxMi41TDEwLjggMTQuOEwxNS44IDkuOFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgPC9zdmc+XG4gIDxzcGFuIFtuZ0NsYXNzXT1cIlt2YXJpYW50ID09PSAnc2Vjb25kYXJ5LW51bWJlcicgPyAnZm9udC1tb25vJyA6ICcnXVwiPnt7IHRleHQgfX08L3NwYW4+XG48L3NwYW4+XG5cbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class PdmBreadcrumbComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.mode = 'link-component';
|
|
7
|
+
this.items = ['Home', 'Components', 'Breadcrumb'];
|
|
8
|
+
this.className = '';
|
|
9
|
+
}
|
|
10
|
+
get renderedItems() {
|
|
11
|
+
if ((this.mode === 'collapsed' || this.mode === 'responsive') && this.items.length > 3) {
|
|
12
|
+
return [this.items[0], '...', this.items[this.items.length - 2], this.items[this.items.length - 1]];
|
|
13
|
+
}
|
|
14
|
+
return this.items;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
PdmBreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
+
PdmBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmBreadcrumbComponent, selector: "pdm-breadcrumb", inputs: { mode: "mode", items: "items", className: "className" }, ngImport: i0, template: "<nav\n aria-label=\"breadcrumb\"\n [ngClass]=\"['inline-flex items-center gap-[6px] text-[14px] leading-5', className]\"\n>\n <ng-container *ngFor=\"let item of renderedItems; let i = index; let last = last\">\n <span [ngClass]=\"[last ? 'text-[#0a0a0a]' : 'text-[#737373]']\">{{ item }}</span>\n\n <ng-container *ngIf=\"!last\">\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-[#737373]\" aria-hidden=\"true\">\n <svg\n *ngIf=\"mode === 'custom-separator' && item !== '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M8 20L16 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n </svg>\n <svg\n *ngIf=\"(mode !== 'custom-separator' && item !== '...') || item === '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"mode === 'dropdown' && i === 1 && item !== '...' && !last\">\n <span class=\"-ml-2 inline-flex h-6 w-6 items-center justify-center text-[#737373]\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n </ng-container>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmBreadcrumbComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ selector: 'pdm-breadcrumb', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav\n aria-label=\"breadcrumb\"\n [ngClass]=\"['inline-flex items-center gap-[6px] text-[14px] leading-5', className]\"\n>\n <ng-container *ngFor=\"let item of renderedItems; let i = index; let last = last\">\n <span [ngClass]=\"[last ? 'text-[#0a0a0a]' : 'text-[#737373]']\">{{ item }}</span>\n\n <ng-container *ngIf=\"!last\">\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-[#737373]\" aria-hidden=\"true\">\n <svg\n *ngIf=\"mode === 'custom-separator' && item !== '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M8 20L16 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n </svg>\n <svg\n *ngIf=\"(mode !== 'custom-separator' && item !== '...') || item === '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"mode === 'dropdown' && i === 1 && item !== '...' && !last\">\n <span class=\"-ml-2 inline-flex h-6 w-6 items-center justify-center text-[#737373]\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n </ng-container>\n</nav>\n" }]
|
|
22
|
+
}], propDecorators: { mode: [{
|
|
23
|
+
type: Input
|
|
24
|
+
}], items: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}], className: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}] } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQWMxRSxNQUFNLE9BQU8sc0JBQXNCO0lBTG5DO1FBTVcsU0FBSSxHQUFzQixnQkFBZ0IsQ0FBQztRQUMzQyxVQUFLLEdBQWEsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3ZELGNBQVMsR0FBRyxFQUFFLENBQUM7S0FRekI7SUFOQyxJQUFJLGFBQWE7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEYsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JHO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7O29IQVZVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLHdIQ2RuQyxzdURBdUNBOzRGRHpCYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUVULHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIFBkbUJyZWFkY3J1bWJNb2RlID1cbiAgfCAnY3VzdG9tLXNlcGFyYXRvcidcbiAgfCAnZHJvcGRvd24nXG4gIHwgJ2NvbGxhcHNlZCdcbiAgfCAnbGluay1jb21wb25lbnQnXG4gIHwgJ3Jlc3BvbnNpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZG0tYnJlYWRjcnVtYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGRtQnJlYWRjcnVtYkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1vZGU6IFBkbUJyZWFkY3J1bWJNb2RlID0gJ2xpbmstY29tcG9uZW50JztcbiAgQElucHV0KCkgaXRlbXM6IHN0cmluZ1tdID0gWydIb21lJywgJ0NvbXBvbmVudHMnLCAnQnJlYWRjcnVtYiddO1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcblxuICBnZXQgcmVuZGVyZWRJdGVtcygpOiBzdHJpbmdbXSB7XG4gICAgaWYgKCh0aGlzLm1vZGUgPT09ICdjb2xsYXBzZWQnIHx8IHRoaXMubW9kZSA9PT0gJ3Jlc3BvbnNpdmUnKSAmJiB0aGlzLml0ZW1zLmxlbmd0aCA+IDMpIHtcbiAgICAgIHJldHVybiBbdGhpcy5pdGVtc1swXSwgJy4uLicsIHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAyXSwgdGhpcy5pdGVtc1t0aGlzLml0ZW1zLmxlbmd0aCAtIDFdXTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaXRlbXM7XG4gIH1cbn1cbiIsIjxuYXZcbiAgYXJpYS1sYWJlbD1cImJyZWFkY3J1bWJcIlxuICBbbmdDbGFzc109XCJbJ2lubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtWzZweF0gdGV4dC1bMTRweF0gbGVhZGluZy01JywgY2xhc3NOYW1lXVwiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcmVuZGVyZWRJdGVtczsgbGV0IGkgPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgPHNwYW4gW25nQ2xhc3NdPVwiW2xhc3QgPyAndGV4dC1bIzBhMGEwYV0nIDogJ3RleHQtWyM3MzczNzNdJ11cIj57eyBpdGVtIH19PC9zcGFuPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsYXN0XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImlubGluZS1mbGV4IGgtNiB3LTYgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtWyM3MzczNzNdXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICAqbmdJZj1cIm1vZGUgPT09ICdjdXN0b20tc2VwYXJhdG9yJyAmJiBpdGVtICE9PSAnLi4uJ1wiXG4gICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgY2xhc3M9XCJoLTQgdy00XCJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgID5cbiAgICAgICAgICA8cGF0aCBkPVwiTTggMjBMMTYgNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHN2Z1xuICAgICAgICAgICpuZ0lmPVwiKG1vZGUgIT09ICdjdXN0b20tc2VwYXJhdG9yJyAmJiBpdGVtICE9PSAnLi4uJykgfHwgaXRlbSA9PT0gJy4uLidcIlxuICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgIGNsYXNzPVwiaC00IHctNFwiXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICA+XG4gICAgICAgICAgPHBhdGggZD1cIk05IDZMMTUgMTJMOSAxOFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT09ICdkcm9wZG93bicgJiYgaSA9PT0gMSAmJiBpdGVtICE9PSAnLi4uJyAmJiAhbGFzdFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCItbWwtMiBpbmxpbmUtZmxleCBoLTYgdy02IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LVsjNzM3MzczXVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBjbGFzcz1cImgtNCB3LTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTcgMTBMMTIgMTVMMTcgMTBcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25hdj5cbiJdfQ==
|