@duyanhdev/mvp-ifs-ui-kit 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/.editorconfig +16 -0
  2. package/.gitmodules +3 -0
  3. package/.postcssrc.json +5 -0
  4. package/.prettierignore +14 -0
  5. package/.prettierrc.json +29 -0
  6. package/LICENSE.md +21 -0
  7. package/README.md +59 -0
  8. package/angular.json +98 -0
  9. package/eslint.config.js +89 -0
  10. package/package.json +59 -0
  11. package/public/demo/images/flag/flag_placeholder.png +0 -0
  12. package/public/demo/images/footer-image.gif +0 -0
  13. package/public/demo/images/galleria/galleria1.jpg +0 -0
  14. package/public/demo/images/galleria/galleria10.jpg +0 -0
  15. package/public/demo/images/galleria/galleria10s.jpg +0 -0
  16. package/public/demo/images/galleria/galleria11.jpg +0 -0
  17. package/public/demo/images/galleria/galleria11s.jpg +0 -0
  18. package/public/demo/images/galleria/galleria12.jpg +0 -0
  19. package/public/demo/images/galleria/galleria12s.jpg +0 -0
  20. package/public/demo/images/galleria/galleria13.jpg +0 -0
  21. package/public/demo/images/galleria/galleria13s.jpg +0 -0
  22. package/public/demo/images/galleria/galleria14.jpg +0 -0
  23. package/public/demo/images/galleria/galleria14s.jpg +0 -0
  24. package/public/demo/images/galleria/galleria15.jpg +0 -0
  25. package/public/demo/images/galleria/galleria15s.jpg +0 -0
  26. package/public/demo/images/galleria/galleria1s.jpg +0 -0
  27. package/public/demo/images/galleria/galleria2.jpg +0 -0
  28. package/public/demo/images/galleria/galleria2s.jpg +0 -0
  29. package/public/demo/images/galleria/galleria3.jpg +0 -0
  30. package/public/demo/images/galleria/galleria3s.jpg +0 -0
  31. package/public/demo/images/galleria/galleria4.jpg +0 -0
  32. package/public/demo/images/galleria/galleria4s.jpg +0 -0
  33. package/public/demo/images/galleria/galleria5.jpg +0 -0
  34. package/public/demo/images/galleria/galleria5s.jpg +0 -0
  35. package/public/demo/images/galleria/galleria6.jpg +0 -0
  36. package/public/demo/images/galleria/galleria6s.jpg +0 -0
  37. package/public/demo/images/galleria/galleria7.jpg +0 -0
  38. package/public/demo/images/galleria/galleria7s.jpg +0 -0
  39. package/public/demo/images/galleria/galleria8.jpg +0 -0
  40. package/public/demo/images/galleria/galleria8s.jpg +0 -0
  41. package/public/demo/images/galleria/galleria9.jpg +0 -0
  42. package/public/demo/images/galleria/galleria9s.jpg +0 -0
  43. package/public/demo/images/product/bamboo-watch.jpg +0 -0
  44. package/public/demo/images/product/black-watch.jpg +0 -0
  45. package/public/demo/images/product/blue-band.jpg +0 -0
  46. package/public/demo/images/product/blue-t-shirt.jpg +0 -0
  47. package/public/demo/images/product/bracelet.jpg +0 -0
  48. package/public/demo/images/product/brown-purse.jpg +0 -0
  49. package/public/demo/images/product/chakra-bracelet.jpg +0 -0
  50. package/public/demo/images/product/galaxy-earrings.jpg +0 -0
  51. package/public/demo/images/product/game-controller.jpg +0 -0
  52. package/public/demo/images/product/gaming-set.jpg +0 -0
  53. package/public/demo/images/product/gold-phone-case.jpg +0 -0
  54. package/public/demo/images/product/green-earbuds.jpg +0 -0
  55. package/public/demo/images/product/green-t-shirt.jpg +0 -0
  56. package/public/demo/images/product/grey-t-shirt.jpg +0 -0
  57. package/public/demo/images/product/headphones.jpg +0 -0
  58. package/public/demo/images/product/light-green-t-shirt.jpg +0 -0
  59. package/public/demo/images/product/lime-band.jpg +0 -0
  60. package/public/demo/images/product/mini-speakers.jpg +0 -0
  61. package/public/demo/images/product/painted-phone-case.jpg +0 -0
  62. package/public/demo/images/product/pink-band.jpg +0 -0
  63. package/public/demo/images/product/pink-purse.jpg +0 -0
  64. package/public/demo/images/product/product-placeholder.svg +10 -0
  65. package/public/demo/images/product/purple-band.jpg +0 -0
  66. package/public/demo/images/product/purple-gemstone-necklace.jpg +0 -0
  67. package/public/demo/images/product/purple-t-shirt.jpg +0 -0
  68. package/public/demo/images/product/shoes.jpg +0 -0
  69. package/public/demo/images/product/sneakers.jpg +0 -0
  70. package/public/demo/images/product/teal-t-shirt.jpg +0 -0
  71. package/public/demo/images/product/yellow-earbuds.jpg +0 -0
  72. package/public/demo/images/product/yoga-mat.jpg +0 -0
  73. package/public/demo/images/product/yoga-set.jpg +0 -0
  74. package/src/app/layout/component/configurator/app.configurator.html +48 -0
  75. package/src/app/layout/component/configurator/app.configurator.ts +396 -0
  76. package/src/app/layout/component/floatingconfigurator/app.floatingconfigurator.ts +31 -0
  77. package/src/app/layout/component/footer/app.footer.scss +52 -0
  78. package/src/app/layout/component/footer/app.footer.ts +26 -0
  79. package/src/app/layout/component/layout/app.layout.ts +50 -0
  80. package/src/app/layout/component/menu/app.menu.html +7 -0
  81. package/src/app/layout/component/menu/app.menu.scss +13 -0
  82. package/src/app/layout/component/menu/app.menu.ts +90 -0
  83. package/src/app/layout/component/menuitem/app.menuitem.html +56 -0
  84. package/src/app/layout/component/menuitem/app.menuitem.scss +218 -0
  85. package/src/app/layout/component/menuitem/app.menuitem.ts +126 -0
  86. package/src/app/layout/component/sidebar/app.sidebar.html +3 -0
  87. package/src/app/layout/component/sidebar/app.sidebar.scss +0 -0
  88. package/src/app/layout/component/sidebar/app.sidebar.ts +106 -0
  89. package/src/app/layout/component/topbar/app.topbar.html +190 -0
  90. package/src/app/layout/component/topbar/app.topbar.scss +8 -0
  91. package/src/app/layout/component/topbar/app.topbar.ts +68 -0
  92. package/src/app/layout/service/layout.service.ts +117 -0
  93. package/src/app/pages/auth/access.ts +32 -0
  94. package/src/app/pages/auth/auth.routes.ts +10 -0
  95. package/src/app/pages/auth/error.ts +32 -0
  96. package/src/app/pages/auth/login.ts +71 -0
  97. package/src/app/pages/crud/crud.ts +387 -0
  98. package/src/app/pages/dashboard/dashboard.css +778 -0
  99. package/src/app/pages/dashboard/dashboard.html +191 -0
  100. package/src/app/pages/dashboard/dashboard.ts +348 -0
  101. package/src/app/pages/documentation/documentation.ts +73 -0
  102. package/src/app/pages/empty/empty.ts +11 -0
  103. package/src/app/pages/landing/components/featureswidget.ts +139 -0
  104. package/src/app/pages/landing/components/footerwidget.ts +73 -0
  105. package/src/app/pages/landing/components/herowidget.ts +25 -0
  106. package/src/app/pages/landing/components/highlightswidget.ts +46 -0
  107. package/src/app/pages/landing/components/pricingwidget.ts +119 -0
  108. package/src/app/pages/landing/components/topbarwidget.component.ts +68 -0
  109. package/src/app/pages/landing/landing.ts +31 -0
  110. package/src/app/pages/notfound/notfound.ts +68 -0
  111. package/src/app/pages/pages.routes.ts +17 -0
  112. package/src/app/pages/profile/profile.html +57 -0
  113. package/src/app/pages/profile/profile.scss +145 -0
  114. package/src/app/pages/profile/profile.ts +19 -0
  115. package/src/app/pages/service/country.service.ts +255 -0
  116. package/src/app/pages/service/customer.service.ts +9057 -0
  117. package/src/app/pages/service/icon.service.ts +23 -0
  118. package/src/app/pages/service/node.service.ts +816 -0
  119. package/src/app/pages/service/photo.service.ts +103 -0
  120. package/src/app/pages/service/product.service.ts +1322 -0
  121. package/src/app/pages/tickets/tickets-create/tickets-create.html +140 -0
  122. package/src/app/pages/tickets/tickets-create/tickets-create.scss +617 -0
  123. package/src/app/pages/tickets/tickets-create/tickets-create.ts +104 -0
  124. package/src/app/pages/tickets/tickets-list/ticket-list.html +150 -0
  125. package/src/app/pages/tickets/tickets-list/ticket-list.scss +392 -0
  126. package/src/app/pages/tickets/tickets-list/ticket-list.ts +178 -0
  127. package/src/app/pages/uikit/buttondemo.ts +254 -0
  128. package/src/app/pages/uikit/chartdemo.ts +290 -0
  129. package/src/app/pages/uikit/filedemo.ts +52 -0
  130. package/src/app/pages/uikit/formlayoutdemo.ts +129 -0
  131. package/src/app/pages/uikit/inputdemo.ts +339 -0
  132. package/src/app/pages/uikit/listdemo.ts +217 -0
  133. package/src/app/pages/uikit/mediademo.ts +1021 -0
  134. package/src/app/pages/uikit/menudemo.ts +540 -0
  135. package/src/app/pages/uikit/messagesdemo.ts +101 -0
  136. package/src/app/pages/uikit/miscdemo.ts +192 -0
  137. package/src/app/pages/uikit/overlaydemo.ts +235 -0
  138. package/src/app/pages/uikit/panelsdemo.ts +235 -0
  139. package/src/app/pages/uikit/tabledemo.ts +568 -0
  140. package/src/app/pages/uikit/timelinedemo.ts +141 -0
  141. package/src/app/pages/uikit/treedemo.ts +75 -0
  142. package/src/app/pages/uikit/uikit.routes.ts +35 -0
  143. package/src/app.component.ts +22 -0
  144. package/src/app.config.ts +23 -0
  145. package/src/app.routes.ts +23 -0
  146. package/src/assets/demo/code.scss +17 -0
  147. package/src/assets/demo/demo.scss +2 -0
  148. package/src/assets/demo/flags/flags.css +984 -0
  149. package/src/assets/layout/_core.scss +24 -0
  150. package/src/assets/layout/_footer.scss +8 -0
  151. package/src/assets/layout/_main.scss +21 -0
  152. package/src/assets/layout/_menu.scss +159 -0
  153. package/src/assets/layout/_mixins.scss +15 -0
  154. package/src/assets/layout/_preloading.scss +47 -0
  155. package/src/assets/layout/_responsive.scss +111 -0
  156. package/src/assets/layout/_topbar.scss +201 -0
  157. package/src/assets/layout/_typography.scss +68 -0
  158. package/src/assets/layout/_utils.scss +25 -0
  159. package/src/assets/layout/layout.scss +13 -0
  160. package/src/assets/layout/variables/_common.scss +21 -0
  161. package/src/assets/layout/variables/_dark.scss +5 -0
  162. package/src/assets/layout/variables/_light.scss +5 -0
  163. package/src/assets/styles.scss +4 -0
  164. package/src/assets/tailwind.css +32 -0
  165. package/src/index.html +15 -0
  166. package/src/main.ts +5 -0
  167. package/tsconfig.app.json +15 -0
  168. package/tsconfig.json +33 -0
  169. package/tsconfig.spec.json +15 -0
  170. package/vercel.json +9 -0
@@ -0,0 +1,540 @@
1
+ import { Component } from '@angular/core';
2
+ import { BreadcrumbModule } from 'primeng/breadcrumb';
3
+ import { TieredMenuModule } from 'primeng/tieredmenu';
4
+ import { ContextMenuModule } from 'primeng/contextmenu';
5
+ import { CommonModule } from '@angular/common';
6
+ import { MenuModule } from 'primeng/menu';
7
+ import { ButtonModule } from 'primeng/button';
8
+ import { MegaMenuModule } from 'primeng/megamenu';
9
+ import { PanelMenuModule } from 'primeng/panelmenu';
10
+ import { TabsModule } from 'primeng/tabs';
11
+ import { MenubarModule } from 'primeng/menubar';
12
+ import { InputTextModule } from 'primeng/inputtext';
13
+ import { StepperModule } from 'primeng/stepper';
14
+ import { IconField, IconFieldModule } from 'primeng/iconfield';
15
+ import { InputIcon, InputIconModule } from 'primeng/inputicon';
16
+
17
+ @Component({
18
+ selector: 'app-menu-demo',
19
+ standalone: true,
20
+ imports: [
21
+ CommonModule,
22
+ BreadcrumbModule,
23
+ TieredMenuModule,
24
+ IconFieldModule,
25
+ InputIconModule,
26
+ MenuModule,
27
+ ButtonModule,
28
+ ContextMenuModule,
29
+ MegaMenuModule,
30
+ PanelMenuModule,
31
+ TabsModule,
32
+ MenubarModule,
33
+ InputTextModule,
34
+ TabsModule,
35
+ StepperModule,
36
+ TabsModule,
37
+ IconField,
38
+ InputIcon
39
+ ],
40
+ template: `
41
+ <div class="card">
42
+ <div class="font-semibold text-xl mb-4">Menubar</div>
43
+ <p-menubar [model]="nestedMenuItems">
44
+ <ng-template #end>
45
+ <p-iconfield>
46
+ <p-inputicon class="pi pi-search" />
47
+ <input type="text" pInputText placeholder="Search" />
48
+ </p-iconfield>
49
+ </ng-template>
50
+ </p-menubar>
51
+ </div>
52
+
53
+ <div class="card">
54
+ <div class="font-semibold text-xl mb-4">Breadcrumb</div>
55
+ <p-breadcrumb [model]="breadcrumbItems" [home]="breadcrumbHome"></p-breadcrumb>
56
+ </div>
57
+
58
+ <div class="flex flex-col md:flex-row gap-8">
59
+ <div class="md:w-1/2">
60
+ <div class="card">
61
+ <div class="font-semibold text-xl mb-4">Steps</div>
62
+ <p-stepper [value]="1">
63
+ <p-step-list>
64
+ <p-step [value]="1">Header I</p-step>
65
+ <p-step [value]="2">Header II</p-step>
66
+ <p-step [value]="3">Header III</p-step>
67
+ </p-step-list>
68
+ </p-stepper>
69
+ </div>
70
+ </div>
71
+ <div class="md:w-1/2">
72
+ <div class="card">
73
+ <div class="font-semibold text-xl mb-4">TabMenu</div>
74
+ <p-tabs [value]="0">
75
+ <p-tablist>
76
+ <p-tab [value]="0">Header I</p-tab>
77
+ <p-tab [value]="1">Header II</p-tab>
78
+ <p-tab [value]="2">Header III</p-tab>
79
+ </p-tablist>
80
+ </p-tabs>
81
+ </div>
82
+ </div>
83
+ </div>
84
+
85
+ <div class="flex flex-col md:flex-row gap-8 mt-6">
86
+ <div class="md:w-1/3">
87
+ <div class="card">
88
+ <div class="font-semibold text-xl mb-4">Tiered Menu</div>
89
+ <p-tieredmenu [model]="tieredMenuItems"></p-tieredmenu>
90
+ </div>
91
+ </div>
92
+ <div class="md:w-1/3">
93
+ <div class="card">
94
+ <div class="font-semibold text-xl mb-4">Plain Menu</div>
95
+ <p-menu [model]="menuItems"></p-menu>
96
+ </div>
97
+ </div>
98
+ <div class="md:w-1/3">
99
+ <div class="card">
100
+ <div class="font-semibold text-xl mb-4">Overlay Menu</div>
101
+ <p-menu #menu [popup]="true" [model]="overlayMenuItems"></p-menu>
102
+ <button type="button" pButton icon="pi pi-chevron-down" label="Options" (click)="menu.toggle($event)" style="width:auto"></button>
103
+ </div>
104
+
105
+ <div class="card" #anchor>
106
+ <div class="font-semibold text-xl mb-4">Context Menu</div>
107
+ Right click to display.
108
+ <p-contextmenu [target]="anchor" [model]="contextMenuItems"></p-contextmenu>
109
+ </div>
110
+ </div>
111
+ </div>
112
+
113
+ <div class="flex flex-col md:flex-row gap-8 mt-8">
114
+ <div class="md:w-1/2">
115
+ <div class="card">
116
+ <div class="font-semibold text-xl mb-4">MegaMenu | Horizontal</div>
117
+ <p-megamenu [model]="megaMenuItems" />
118
+
119
+ <div class="font-semibold text-xl mb-4 mt-8">MegaMenu | Vertical</div>
120
+ <p-megamenu [model]="megaMenuItems" orientation="vertical" />
121
+ </div>
122
+ </div>
123
+ <div class="md:w-1/2">
124
+ <div class="card">
125
+ <div class="font-semibold text-xl mb-4">PanelMenu</div>
126
+ <p-panelmenu [model]="panelMenuItems" />
127
+ </div>
128
+ </div>
129
+ </div>
130
+ `
131
+ })
132
+ export class MenuDemo {
133
+ nestedMenuItems = [
134
+ {
135
+ label: 'Customers',
136
+ icon: 'pi pi-fw pi-table',
137
+ items: [
138
+ {
139
+ label: 'New',
140
+ icon: 'pi pi-fw pi-user-plus',
141
+ items: [
142
+ {
143
+ label: 'Customer',
144
+ icon: 'pi pi-fw pi-plus'
145
+ },
146
+ {
147
+ label: 'Duplicate',
148
+ icon: 'pi pi-fw pi-copy'
149
+ }
150
+ ]
151
+ },
152
+ {
153
+ label: 'Edit',
154
+ icon: 'pi pi-fw pi-user-edit'
155
+ }
156
+ ]
157
+ },
158
+ {
159
+ label: 'Orders',
160
+ icon: 'pi pi-fw pi-shopping-cart',
161
+ items: [
162
+ {
163
+ label: 'View',
164
+ icon: 'pi pi-fw pi-list'
165
+ },
166
+ {
167
+ label: 'Search',
168
+ icon: 'pi pi-fw pi-search'
169
+ }
170
+ ]
171
+ },
172
+ {
173
+ label: 'Shipments',
174
+ icon: 'pi pi-fw pi-envelope',
175
+ items: [
176
+ {
177
+ label: 'Tracker',
178
+ icon: 'pi pi-fw pi-compass'
179
+ },
180
+ {
181
+ label: 'Map',
182
+ icon: 'pi pi-fw pi-map-marker'
183
+ },
184
+ {
185
+ label: 'Manage',
186
+ icon: 'pi pi-fw pi-pencil'
187
+ }
188
+ ]
189
+ },
190
+ {
191
+ label: 'Profile',
192
+ icon: 'pi pi-fw pi-user',
193
+ items: [
194
+ {
195
+ label: 'Settings',
196
+ icon: 'pi pi-fw pi-cog'
197
+ },
198
+ {
199
+ label: 'Billing',
200
+ icon: 'pi pi-fw pi-file'
201
+ }
202
+ ]
203
+ },
204
+ {
205
+ label: 'Quit',
206
+ icon: 'pi pi-fw pi-sign-out'
207
+ }
208
+ ];
209
+ breadcrumbHome = { icon: 'pi pi-home', to: '/' };
210
+ breadcrumbItems = [{ label: 'Computer' }, { label: 'Notebook' }, { label: 'Accessories' }, { label: 'Backpacks' }, { label: 'Item' }];
211
+ tieredMenuItems = [
212
+ {
213
+ label: 'Customers',
214
+ icon: 'pi pi-fw pi-table',
215
+ items: [
216
+ {
217
+ label: 'New',
218
+ icon: 'pi pi-fw pi-user-plus',
219
+ items: [
220
+ {
221
+ label: 'Customer',
222
+ icon: 'pi pi-fw pi-plus'
223
+ },
224
+ {
225
+ label: 'Duplicate',
226
+ icon: 'pi pi-fw pi-copy'
227
+ }
228
+ ]
229
+ },
230
+ {
231
+ label: 'Edit',
232
+ icon: 'pi pi-fw pi-user-edit'
233
+ }
234
+ ]
235
+ },
236
+ {
237
+ label: 'Orders',
238
+ icon: 'pi pi-fw pi-shopping-cart',
239
+ items: [
240
+ {
241
+ label: 'View',
242
+ icon: 'pi pi-fw pi-list'
243
+ },
244
+ {
245
+ label: 'Search',
246
+ icon: 'pi pi-fw pi-search'
247
+ }
248
+ ]
249
+ },
250
+ {
251
+ label: 'Shipments',
252
+ icon: 'pi pi-fw pi-envelope',
253
+ items: [
254
+ {
255
+ label: 'Tracker',
256
+ icon: 'pi pi-fw pi-compass'
257
+ },
258
+ {
259
+ label: 'Map',
260
+ icon: 'pi pi-fw pi-map-marker'
261
+ },
262
+ {
263
+ label: 'Manage',
264
+ icon: 'pi pi-fw pi-pencil'
265
+ }
266
+ ]
267
+ },
268
+ {
269
+ label: 'Profile',
270
+ icon: 'pi pi-fw pi-user',
271
+ items: [
272
+ {
273
+ label: 'Settings',
274
+ icon: 'pi pi-fw pi-cog'
275
+ },
276
+ {
277
+ label: 'Billing',
278
+ icon: 'pi pi-fw pi-file'
279
+ }
280
+ ]
281
+ },
282
+ {
283
+ separator: true
284
+ },
285
+ {
286
+ label: 'Quit',
287
+ icon: 'pi pi-fw pi-sign-out'
288
+ }
289
+ ];
290
+ overlayMenuItems = [
291
+ {
292
+ label: 'Save',
293
+ icon: 'pi pi-save'
294
+ },
295
+ {
296
+ label: 'Update',
297
+ icon: 'pi pi-refresh'
298
+ },
299
+ {
300
+ label: 'Delete',
301
+ icon: 'pi pi-trash'
302
+ },
303
+ {
304
+ separator: true
305
+ },
306
+ {
307
+ label: 'Home',
308
+ icon: 'pi pi-home'
309
+ }
310
+ ];
311
+ menuItems = [
312
+ {
313
+ label: 'Customers',
314
+ items: [
315
+ {
316
+ label: 'New',
317
+ icon: 'pi pi-fw pi-plus'
318
+ },
319
+ {
320
+ label: 'Edit',
321
+ icon: 'pi pi-fw pi-user-edit'
322
+ }
323
+ ]
324
+ },
325
+ {
326
+ label: 'Orders',
327
+ items: [
328
+ {
329
+ label: 'View',
330
+ icon: 'pi pi-fw pi-list'
331
+ },
332
+ {
333
+ label: 'Search',
334
+ icon: 'pi pi-fw pi-search'
335
+ }
336
+ ]
337
+ }
338
+ ];
339
+ contextMenuItems = [
340
+ {
341
+ label: 'Save',
342
+ icon: 'pi pi-save'
343
+ },
344
+ {
345
+ label: 'Update',
346
+ icon: 'pi pi-refresh'
347
+ },
348
+ {
349
+ label: 'Delete',
350
+ icon: 'pi pi-trash'
351
+ },
352
+ {
353
+ separator: true
354
+ },
355
+ {
356
+ label: 'Options',
357
+ icon: 'pi pi-cog'
358
+ }
359
+ ];
360
+ megaMenuItems = [
361
+ {
362
+ label: 'Fashion',
363
+ icon: 'pi pi-fw pi-tag',
364
+ items: [
365
+ [
366
+ {
367
+ label: 'Woman',
368
+ items: [{ label: 'Woman Item' }, { label: 'Woman Item' }, { label: 'Woman Item' }]
369
+ },
370
+ {
371
+ label: 'Men',
372
+ items: [{ label: 'Men Item' }, { label: 'Men Item' }, { label: 'Men Item' }]
373
+ }
374
+ ],
375
+ [
376
+ {
377
+ label: 'Kids',
378
+ items: [{ label: 'Kids Item' }, { label: 'Kids Item' }]
379
+ },
380
+ {
381
+ label: 'Luggage',
382
+ items: [{ label: 'Luggage Item' }, { label: 'Luggage Item' }, { label: 'Luggage Item' }]
383
+ }
384
+ ]
385
+ ]
386
+ },
387
+ {
388
+ label: 'Electronics',
389
+ icon: 'pi pi-fw pi-desktop',
390
+ items: [
391
+ [
392
+ {
393
+ label: 'Computer',
394
+ items: [{ label: 'Computer Item' }, { label: 'Computer Item' }]
395
+ },
396
+ {
397
+ label: 'Camcorder',
398
+ items: [{ label: 'Camcorder Item' }, { label: 'Camcorder Item' }, { label: 'Camcorder Item' }]
399
+ }
400
+ ],
401
+ [
402
+ {
403
+ label: 'TV',
404
+ items: [{ label: 'TV Item' }, { label: 'TV Item' }]
405
+ },
406
+ {
407
+ label: 'Audio',
408
+ items: [{ label: 'Audio Item' }, { label: 'Audio Item' }, { label: 'Audio Item' }]
409
+ }
410
+ ],
411
+ [
412
+ {
413
+ label: 'Sports.7',
414
+ items: [{ label: 'Sports.7.1' }, { label: 'Sports.7.2' }]
415
+ }
416
+ ]
417
+ ]
418
+ },
419
+ {
420
+ label: 'Furniture',
421
+ icon: 'pi pi-fw pi-image',
422
+ items: [
423
+ [
424
+ {
425
+ label: 'Living Room',
426
+ items: [{ label: 'Living Room Item' }, { label: 'Living Room Item' }]
427
+ },
428
+ {
429
+ label: 'Kitchen',
430
+ items: [{ label: 'Kitchen Item' }, { label: 'Kitchen Item' }, { label: 'Kitchen Item' }]
431
+ }
432
+ ],
433
+ [
434
+ {
435
+ label: 'Bedroom',
436
+ items: [{ label: 'Bedroom Item' }, { label: 'Bedroom Item' }]
437
+ },
438
+ {
439
+ label: 'Outdoor',
440
+ items: [{ label: 'Outdoor Item' }, { label: 'Outdoor Item' }, { label: 'Outdoor Item' }]
441
+ }
442
+ ]
443
+ ]
444
+ },
445
+ {
446
+ label: 'Sports',
447
+ icon: 'pi pi-fw pi-star',
448
+ items: [
449
+ [
450
+ {
451
+ label: 'Basketball',
452
+ items: [{ label: 'Basketball Item' }, { label: 'Basketball Item' }]
453
+ },
454
+ {
455
+ label: 'Football',
456
+ items: [{ label: 'Football Item' }, { label: 'Football Item' }, { label: 'Football Item' }]
457
+ }
458
+ ],
459
+ [
460
+ {
461
+ label: 'Tennis',
462
+ items: [{ label: 'Tennis Item' }, { label: 'Tennis Item' }]
463
+ }
464
+ ]
465
+ ]
466
+ }
467
+ ];
468
+ panelMenuItems = [
469
+ {
470
+ label: 'Customers',
471
+ icon: 'pi pi-fw pi-table',
472
+ items: [
473
+ {
474
+ label: 'New',
475
+ icon: 'pi pi-fw pi-user-plus',
476
+ items: [
477
+ {
478
+ label: 'Customer',
479
+ icon: 'pi pi-fw pi-plus'
480
+ },
481
+ {
482
+ label: 'Duplicate',
483
+ icon: 'pi pi-fw pi-copy'
484
+ }
485
+ ]
486
+ },
487
+ {
488
+ label: 'Edit',
489
+ icon: 'pi pi-fw pi-user-edit'
490
+ }
491
+ ]
492
+ },
493
+ {
494
+ label: 'Orders',
495
+ icon: 'pi pi-fw pi-shopping-cart',
496
+ items: [
497
+ {
498
+ label: 'View',
499
+ icon: 'pi pi-fw pi-list'
500
+ },
501
+ {
502
+ label: 'Search',
503
+ icon: 'pi pi-fw pi-search'
504
+ }
505
+ ]
506
+ },
507
+ {
508
+ label: 'Shipments',
509
+ icon: 'pi pi-fw pi-envelope',
510
+ items: [
511
+ {
512
+ label: 'Tracker',
513
+ icon: 'pi pi-fw pi-compass'
514
+ },
515
+ {
516
+ label: 'Map',
517
+ icon: 'pi pi-fw pi-map-marker'
518
+ },
519
+ {
520
+ label: 'Manage',
521
+ icon: 'pi pi-fw pi-pencil'
522
+ }
523
+ ]
524
+ },
525
+ {
526
+ label: 'Profile',
527
+ icon: 'pi pi-fw pi-user',
528
+ items: [
529
+ {
530
+ label: 'Settings',
531
+ icon: 'pi pi-fw pi-cog'
532
+ },
533
+ {
534
+ label: 'Billing',
535
+ icon: 'pi pi-fw pi-file'
536
+ }
537
+ ]
538
+ }
539
+ ];
540
+ }
@@ -0,0 +1,101 @@
1
+ import {CommonModule} from '@angular/common';
2
+ import {Component} from '@angular/core';
3
+ import {FormsModule} from '@angular/forms';
4
+ import {MessageService, ToastMessageOptions} from 'primeng/api';
5
+ import {ButtonModule} from 'primeng/button';
6
+ import {InputTextModule} from 'primeng/inputtext';
7
+ import {MessageModule} from 'primeng/message';
8
+ import {ToastModule} from 'primeng/toast';
9
+
10
+ @Component({
11
+ selector: 'app-messages-demo',
12
+ standalone: true,
13
+ imports: [CommonModule, ToastModule, ButtonModule, InputTextModule, MessageModule, FormsModule],
14
+ template: `
15
+ <div class="flex flex-col md:flex-row gap-8">
16
+ <div class="md:w-1/2">
17
+ <div class="card">
18
+ <div class="font-semibold text-xl mb-4">Toast</div>
19
+ <div class="flex flex-wrap gap-2">
20
+ <p-button (click)="showSuccessViaToast()" label="Success" severity="success" />
21
+ <p-button (click)="showInfoViaToast()" label="Info" severity="info" />
22
+ <p-button (click)="showWarnViaToast()" label="Warn" severity="warn" />
23
+ <p-button (click)="showErrorViaToast()" label="Error" severity="danger" />
24
+ <p-toast />
25
+ </div>
26
+
27
+ <div class="font-semibold text-xl mt-4 mb-4">Inline</div>
28
+ <div class="flex mb-4 gap-1">
29
+ <input pInputText [(ngModel)]="username" placeholder="Username" aria-label="username" class="ng-dirty ng-invalid" />
30
+ <p-message severity="error" size="small" styleClass="h-auto w-full " [pt]="pt">Username is required</p-message>
31
+ </div>
32
+ <div class="flex flex-wrap gap-1">
33
+ <input pInputText [(ngModel)]="email" placeholder="Email" aria-label="email" class="ng-dirty ng-invalid" />
34
+ <p-message severity="error" size="small" styleClass="flex items-center text-center justify-center h-auto w-11" [pt]="pt">
35
+ <i class="pi pi-times-circle"></i>
36
+ </p-message>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ <div class="md:w-1/2">
41
+ <div class="card">
42
+ <div class="font-semibold text-xl mb-4">Message</div>
43
+ <div class="flex flex-col gap-4 mb-4">
44
+ <p-message severity="success">Success Message</p-message>
45
+ <p-message severity="info">Info Message</p-message>
46
+ <p-message severity="warn">Warn Message</p-message>
47
+ <p-message severity="error">Error Message</p-message>
48
+ <p-message severity="secondary">Secondary Message</p-message>
49
+ <p-message severity="contrast">Contrast Message</p-message>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ `,
55
+ providers: [MessageService]
56
+ })
57
+ export class MessagesDemo {
58
+ msgs: ToastMessageOptions[] | null = [];
59
+
60
+ username: string | undefined;
61
+
62
+ email: string | undefined;
63
+
64
+ constructor(private service: MessageService) {}
65
+
66
+ pt: any = {
67
+ contentWrapper: 'flex items-center'
68
+ };
69
+
70
+ showInfoViaToast() {
71
+ this.service.add({
72
+ severity: 'info',
73
+ summary: 'Info Message',
74
+ detail: 'PrimeNG rocks'
75
+ });
76
+ }
77
+
78
+ showWarnViaToast() {
79
+ this.service.add({
80
+ severity: 'warn',
81
+ summary: 'Warn Message',
82
+ detail: 'There are unsaved changes'
83
+ });
84
+ }
85
+
86
+ showErrorViaToast() {
87
+ this.service.add({
88
+ severity: 'error',
89
+ summary: 'Error Message',
90
+ detail: 'Validation failed'
91
+ });
92
+ }
93
+
94
+ showSuccessViaToast() {
95
+ this.service.add({
96
+ severity: 'success',
97
+ summary: 'Success Message',
98
+ detail: 'Message sent'
99
+ });
100
+ }
101
+ }