@thescaffold/ngx-apps-blog 0.2.21 → 0.2.31

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 (61) hide show
  1. package/fesm2022/thescaffold-ngx-apps-blog-article.module-Dw4mmJ0O.mjs +128 -0
  2. package/fesm2022/thescaffold-ngx-apps-blog-article.module-Dw4mmJ0O.mjs.map +1 -0
  3. package/fesm2022/thescaffold-ngx-apps-blog-docs.module-DKKKNEI-.mjs +484 -0
  4. package/fesm2022/thescaffold-ngx-apps-blog-docs.module-DKKKNEI-.mjs.map +1 -0
  5. package/fesm2022/{thescaffold-ngx-apps-blog-error.module-BzAoFNog.mjs → thescaffold-ngx-apps-blog-error.module-Ck2ZPspy.mjs} +9 -9
  6. package/fesm2022/thescaffold-ngx-apps-blog-error.module-Ck2ZPspy.mjs.map +1 -0
  7. package/fesm2022/thescaffold-ngx-apps-blog-home.module-LXerbHw9.mjs +1028 -0
  8. package/fesm2022/thescaffold-ngx-apps-blog-home.module-LXerbHw9.mjs.map +1 -0
  9. package/fesm2022/thescaffold-ngx-apps-blog.mjs +22 -22
  10. package/fesm2022/thescaffold-ngx-apps-blog.mjs.map +1 -1
  11. package/package.json +77 -27
  12. package/types/thescaffold-ngx-apps-blog.d.ts +33 -0
  13. package/esm2022/lib/app.module.mjs +0 -17
  14. package/esm2022/lib/index.mjs +0 -6
  15. package/esm2022/lib/pages/article/article.component.mjs +0 -82
  16. package/esm2022/lib/pages/article/article.module.mjs +0 -35
  17. package/esm2022/lib/pages/docs/docs.component.mjs +0 -386
  18. package/esm2022/lib/pages/docs/docs.module.mjs +0 -47
  19. package/esm2022/lib/pages/error/error.component.mjs +0 -75
  20. package/esm2022/lib/pages/error/error.module.mjs +0 -26
  21. package/esm2022/lib/pages/home/home.component.mjs +0 -49
  22. package/esm2022/lib/pages/home/home.module.mjs +0 -36
  23. package/esm2022/lib/pages/pages.component.mjs +0 -60
  24. package/esm2022/lib/pages/pages.module.mjs +0 -95
  25. package/esm2022/lib/pkg/cards/card/card.component.mjs +0 -763
  26. package/esm2022/lib/pkg/cards/card/index.mjs +0 -3
  27. package/esm2022/lib/pkg/cards/cards.component.mjs +0 -27
  28. package/esm2022/lib/pkg/cards/cards.module.mjs +0 -21
  29. package/esm2022/lib/pkg/cards/cards.utils.mjs +0 -2
  30. package/esm2022/lib/pkg/cards/index.mjs +0 -4
  31. package/esm2022/lib/pkg/index.mjs +0 -2
  32. package/esm2022/public-api.mjs +0 -5
  33. package/esm2022/thescaffold-ngx-apps-blog.mjs +0 -5
  34. package/fesm2022/thescaffold-ngx-apps-blog-article.module-BnLR8e24.mjs +0 -114
  35. package/fesm2022/thescaffold-ngx-apps-blog-article.module-BnLR8e24.mjs.map +0 -1
  36. package/fesm2022/thescaffold-ngx-apps-blog-docs.module-DRQ-g0-1.mjs +0 -430
  37. package/fesm2022/thescaffold-ngx-apps-blog-docs.module-DRQ-g0-1.mjs.map +0 -1
  38. package/fesm2022/thescaffold-ngx-apps-blog-error.module-BzAoFNog.mjs.map +0 -1
  39. package/fesm2022/thescaffold-ngx-apps-blog-home.module-CG11DLKD.mjs +0 -876
  40. package/fesm2022/thescaffold-ngx-apps-blog-home.module-CG11DLKD.mjs.map +0 -1
  41. package/index.d.ts +0 -5
  42. package/lib/app.module.d.ts +0 -8
  43. package/lib/index.d.ts +0 -5
  44. package/lib/pages/article/article.component.d.ts +0 -11
  45. package/lib/pages/article/article.module.d.ts +0 -10
  46. package/lib/pages/docs/docs.component.d.ts +0 -17
  47. package/lib/pages/docs/docs.module.d.ts +0 -10
  48. package/lib/pages/error/error.component.d.ts +0 -11
  49. package/lib/pages/error/error.module.d.ts +0 -10
  50. package/lib/pages/home/home.component.d.ts +0 -7
  51. package/lib/pages/home/home.module.d.ts +0 -11
  52. package/lib/pages/pages.component.d.ts +0 -9
  53. package/lib/pages/pages.module.d.ts +0 -11
  54. package/lib/pkg/cards/card/card.component.d.ts +0 -9
  55. package/lib/pkg/cards/card/index.d.ts +0 -2
  56. package/lib/pkg/cards/cards.component.d.ts +0 -7
  57. package/lib/pkg/cards/cards.module.d.ts +0 -10
  58. package/lib/pkg/cards/cards.utils.d.ts +0 -29
  59. package/lib/pkg/cards/index.d.ts +0 -3
  60. package/lib/pkg/index.d.ts +0 -1
  61. package/public-api.d.ts +0 -1
@@ -0,0 +1,1028 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Input, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
+ import * as i1$1 from '@angular/router';
4
+ import { RouterModule } from '@angular/router';
5
+ import * as i4 from '@thescaffold/ngx-core';
6
+ import { isUrl, SharedModule, CommonActionType } from '@thescaffold/ngx-core';
7
+ import * as i2 from '@thescaffold/ngx-ui';
8
+ import { ElementsModule, FormModule, LayoutsModule, WebgetsModule } from '@thescaffold/ngx-ui';
9
+ import * as i1 from '@angular/common';
10
+
11
+ class CardComponent {
12
+ constructor() {
13
+ this.isUrl = isUrl;
14
+ }
15
+ combinedStyle(...styles) {
16
+ return styles.filter((style) => !!style).join(';');
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: CardComponent, isStandalone: false, selector: "x-card", inputs: { data: "data" }, ngImport: i0, template: `
20
+ @if (data) {
21
+ <div
22
+ [ngClass]="[
23
+ data.class ?? '',
24
+ data.align ?? '',
25
+ data.bgClass ?? '',
26
+ data.fgClass ?? '',
27
+ ]"
28
+ [style]="
29
+ combinedStyle(
30
+ data.style ?? '',
31
+ data.bgStyle ?? '',
32
+ data.fgStyle ?? ''
33
+ )
34
+ "
35
+ [ngStyle]="
36
+ data.bgImage
37
+ ? {
38
+ 'background-image': 'url(' + data.bgImage + ')',
39
+ 'background-size': data.bgSize ?? '50%',
40
+ 'background-repeat': data.bgRepeat ?? 'no-repeat',
41
+ 'background-position': data.bgPosition ?? 'right top',
42
+ }
43
+ : {}
44
+ "
45
+ >
46
+ <!-- header -->
47
+ @if (
48
+ data.icon ||
49
+ data.title ||
50
+ data.desc ||
51
+ data.links?.length ||
52
+ data.fgImage
53
+ ) {
54
+ <div
55
+ class="row"
56
+ >
57
+ <div [ngClass]="data.fgImage ? 'col-6' : 'col-12'">
58
+ @if (data.icon || data.title) {
59
+ <h1
60
+ [ngClass]="[data.titleClass ?? 'display-1 fw-bold']"
61
+ >
62
+ @if (data.icon && isUrl(data.icon)) {
63
+ <img
64
+ [src]="data.icon"
65
+ height="27"
66
+ width="27"
67
+ />
68
+ }
69
+ @if (data.icon && !isUrl(data.icon)) {
70
+ <i
71
+ class="fa-2x"
72
+ [ngClass]="data.icon"
73
+ ></i>
74
+ }
75
+ @if (data.title) {
76
+ <span class="">{{ data.title }}</span>
77
+ }
78
+ </h1>
79
+ }
80
+ @if (data.desc) {
81
+ <h6
82
+ class="display-6"
83
+ [innerHTML]="data.desc"
84
+ ></h6>
85
+ }
86
+ @if (data.links?.length) {
87
+ <ul
88
+ class="nav my-3"
89
+ [ngClass]="data.align ?? ''"
90
+ >
91
+ @for (link of data.links; track link) {
92
+ <li
93
+ class="nav-item"
94
+ [ngClass]="link.class ?? ''"
95
+ [style]="link.style ?? ''"
96
+ >
97
+ <x-element-link
98
+ [data]="link | xPrepend: { class: 'btn btn-primary px-5' }"
99
+ ></x-element-link>
100
+ </li>
101
+ }
102
+ </ul>
103
+ }
104
+ </div>
105
+ @if (data.fgImage) {
106
+ <div
107
+ class="d-none d-sm-flex d-md-flex col-6"
108
+ [ngClass]="[data.fgClass ?? '']"
109
+ [style]="data.fgStyle ?? ''"
110
+ >
111
+ <img [src]="data.fgImage" height="200" width="auto" />
112
+ </div>
113
+ }
114
+ </div>
115
+ }
116
+ <!-- search -->
117
+ @if (data.placeholder) {
118
+ <div class="row col-12 col-sm-9 col-6 mx-auto">
119
+ <div class="input-group input-group-lg">
120
+ <input
121
+ type="text"
122
+ class="form-control"
123
+ [placeholder]="data.placeholder"
124
+ />
125
+ </div>
126
+ </div>
127
+ }
128
+ <!-- list -->
129
+ @if (data.list?.length) {
130
+ <div
131
+ class="row py-5 justify-content-center w-100"
132
+ >
133
+ <dl class="col-12">
134
+ @for (item of data.list; track item) {
135
+ <div
136
+ [ngClass]="item.class ?? ''"
137
+ [style]="item.style ?? ''"
138
+ >
139
+ @if (data.title) {
140
+ <dt class="">{{ data.title }}</dt>
141
+ }
142
+ @if (data.desc) {
143
+ <dd class="" [innerHTML]="data.desc"></dd>
144
+ }
145
+ </div>
146
+ }
147
+ </dl>
148
+ </div>
149
+ }
150
+ <!-- grids -->
151
+ @if (data.grids?.length) {
152
+ <div
153
+ class="row row-cols-1 row-cols-sm-2 row-cols-md-3"
154
+ [ngClass]="data.align ?? ''"
155
+ >
156
+ @for (item of data.grids; track item) {
157
+ <div
158
+ class="col"
159
+ [ngClass]="item.class ?? ''"
160
+ [style]="item.style ?? ''"
161
+ >
162
+ <div class="card">
163
+ @if (item.icon && isUrl(item.icon)) {
164
+ <img
165
+ [src]="item.icon"
166
+ width="72"
167
+ height="72"
168
+ />
169
+ }
170
+ @if (item.icon && !isUrl(item.icon)) {
171
+ <i
172
+ [ngClass]="item.icon"
173
+ class="fa-2x"
174
+ ></i>
175
+ }
176
+ <div class="card-body">
177
+ @if (item?.title) {
178
+ <h5 class="card-title">{{ item.title }}</h5>
179
+ }
180
+ @if (item?.desc) {
181
+ <p
182
+ class="card-text"
183
+ [innerHTML]="item.desc"
184
+ ></p>
185
+ }
186
+ </div>
187
+ @if (item?.links?.length) {
188
+ <ul
189
+ class="list-group list-group-flush"
190
+ >
191
+ @for (link of item?.links; track link) {
192
+ <li
193
+ class="list-group-item"
194
+ [ngClass]="link.class ?? ''"
195
+ [style]="link.style ?? ''"
196
+ >
197
+ <x-element-link
198
+ [data]="
199
+ link
200
+ | xPrepend: { class: 'card-link text-decoration-none' }
201
+ "
202
+ ></x-element-link>
203
+ </li>
204
+ }
205
+ </ul>
206
+ }
207
+ </div>
208
+ </div>
209
+ }
210
+ </div>
211
+ }
212
+ <!-- media -->
213
+ @if (data.media?.length) {
214
+ <div
215
+ class="d-flex flex-column justify-content-center"
216
+ [ngClass]="data.align ?? ''"
217
+ >
218
+ <div class="card w-100 border-0">
219
+ <ul class="list-group list-group-flush">
220
+ @for (item of data.media; track item; let f = $first; let l = $last) {
221
+ <li
222
+ class="list-group-item border-0 p-0 mx-0 my-3"
223
+ [ngClass]="{ 'pb-5': f, 'pt-5': l, 'py-5': !f && !l }"
224
+ [ngClass]="item.class ?? ''"
225
+ [style]="item.style ?? ''"
226
+ >
227
+ <div class="d-flex">
228
+ <div class="flex-shrink-0">
229
+ @if (item.icon && isUrl(item.icon)) {
230
+ <img
231
+ [src]="item.icon"
232
+ width="72"
233
+ height="72"
234
+ />
235
+ }
236
+ @if (item.icon && !isUrl(item.icon)) {
237
+ <i
238
+ [ngClass]="item.icon"
239
+ class="fa-2x"
240
+ ></i>
241
+ }
242
+ </div>
243
+ <div class="flex-grow-1 ms-3">
244
+ @if (item?.title) {
245
+ <h5 class="p-0 m-0">
246
+ {{ item.title }}
247
+ </h5>
248
+ }
249
+ @if (item?.desc) {
250
+ <p
251
+ class="p-0 m-0"
252
+ [innerHTML]="item.desc"
253
+ ></p>
254
+ }
255
+ @if (item?.links?.length) {
256
+ <ul class="nav">
257
+ @for (link of item.links; track link) {
258
+ <li
259
+ class="nav-item"
260
+ [ngClass]="link.class ?? ''"
261
+ [style]="link.style ?? ''"
262
+ >
263
+ <x-element-link
264
+ [data]="
265
+ link
266
+ | xPrepend
267
+ : {
268
+ class:
269
+ 'btn btn-primary btn-link text-decoration-none p-0 m-0',
270
+ }
271
+ "
272
+ ></x-element-link>
273
+ </li>
274
+ }
275
+ </ul>
276
+ }
277
+ </div>
278
+ </div>
279
+ </li>
280
+ }
281
+ </ul>
282
+ </div>
283
+ </div>
284
+ }
285
+ <!-- cards -->
286
+ @if (data.cards?.length) {
287
+ <div
288
+ class="row my-3 row-cols-1 row-cols-sm-2 row-cols-md-3"
289
+ [ngClass]="data.align ?? ''"
290
+ >
291
+ @for (item of data.cards; track item) {
292
+ <div
293
+ class="col"
294
+ [ngClass]="item.class ?? ''"
295
+ [style]="item.style ?? ''"
296
+ >
297
+ <div
298
+ class="card card-body text-bg-light"
299
+ [ngClass]="data.bgClass ?? ''"
300
+ [style]="data.bgStyle ?? ''"
301
+ >
302
+ <div class="text-start">
303
+ @if (item.icon && isUrl(item.icon)) {
304
+ <img
305
+ [src]="item.icon"
306
+ class=""
307
+ width="72"
308
+ height="72"
309
+ />
310
+ }
311
+ @if (item.icon && !isUrl(item.icon)) {
312
+ <i
313
+ [ngClass]="item.icon"
314
+ class="fa-2x"
315
+ ></i>
316
+ }
317
+ </div>
318
+ @if (item?.title) {
319
+ <h3>
320
+ {{ item.title }}
321
+ </h3>
322
+ }
323
+ @if (item?.desc) {
324
+ <p [innerHTML]="item.desc"></p>
325
+ }
326
+ @if (item?.links?.length) {
327
+ <div>
328
+ @for (link of item?.links; track link) {
329
+ <div
330
+ [ngClass]="link.class ?? ''"
331
+ [style]="link.style ?? ''"
332
+ >
333
+ <x-element-link
334
+ [data]="
335
+ link | xPrepend: { class: 'btn btn-primary btn-link' }
336
+ "
337
+ ></x-element-link>
338
+ </div>
339
+ }
340
+ </div>
341
+ }
342
+ </div>
343
+ </div>
344
+ }
345
+ </div>
346
+ }
347
+ <!-- doubles -->
348
+ @if (data.doubles?.length) {
349
+ <div
350
+ class="row"
351
+ [ngClass]="data.align ?? ''"
352
+ >
353
+ @for (item of data.doubles; track item; let e = $even) {
354
+ <div
355
+ class="d-flex justify-content-between"
356
+ [ngClass]="item.class ?? ''"
357
+ [style]="item.style ?? ''"
358
+ >
359
+ <div class="" [ngClass]="{ 'order-first': e, 'order-last': !e }">
360
+ @if (item?.title) {
361
+ <h3>
362
+ {{ item.title }}
363
+ </h3>
364
+ }
365
+ @if (item?.desc) {
366
+ <p
367
+ class="text-start py-3"
368
+ [innerHTML]="item.desc"
369
+ ></p>
370
+ }
371
+ @if (item?.links?.length) {
372
+ <div class="">
373
+ @for (link of item?.links; track link) {
374
+ <div
375
+ [ngClass]="link.class ?? ''"
376
+ [style]="link.style ?? ''"
377
+ >
378
+ <x-element-link
379
+ [data]="
380
+ link
381
+ | xPrepend
382
+ : {
383
+ class:
384
+ 'btn btn-primary btn-link d-flex flex-column-reverse',
385
+ }
386
+ "
387
+ ></x-element-link>
388
+ </div>
389
+ }
390
+ </div>
391
+ }
392
+ </div>
393
+ @if (item?.icon) {
394
+ <div
395
+ class=""
396
+ [ngClass]="{ 'order-first': !e, 'order-last': e }"
397
+ >
398
+ <div class="text-start">
399
+ <i class="fa-5x" [ngClass]="item.icon"></i>
400
+ </div>
401
+ </div>
402
+ }
403
+ </div>
404
+ }
405
+ </div>
406
+ }
407
+ <!-- image clouds -->
408
+ @if (data.cloud?.length) {
409
+ <div
410
+ class="row py-5 justify-content-center w-100"
411
+ >
412
+ @for (item of data.cloud; track item; let e = $even) {
413
+ <div
414
+ class="d-flex justify-content-between"
415
+ [ngClass]="item.class ?? ''"
416
+ [style]="item.style ?? ''"
417
+ >
418
+ <div class="">
419
+ @if (item.icon && isUrl(item.icon)) {
420
+ <img
421
+ [src]="item.icon"
422
+ class=""
423
+ width="72"
424
+ height="72"
425
+ />
426
+ }
427
+ @if (item.icon && !isUrl(item.icon)) {
428
+ <i
429
+ [ngClass]="item.icon"
430
+ class="fa-2x"
431
+ ></i>
432
+ }
433
+ </div>
434
+ </div>
435
+ }
436
+ </div>
437
+ }
438
+ <!-- lines -->
439
+ @if (data.lines?.length) {
440
+ <div class="row col-12 container">
441
+ @for (item of data.lines; track item) {
442
+ <div
443
+ class="pt-3 px-0 border-bottom"
444
+ [ngClass]="item.class ?? ''"
445
+ [style]="item.style ?? ''"
446
+ >
447
+ @if (item.title) {
448
+ <h5 class="text-start">
449
+ @if (!item.url) {
450
+ <span>{{ item.title }}</span>
451
+ }
452
+ @if (item.url) {
453
+ <x-element-link
454
+ [data]="item | xPrepend: { class: 'btn btn-link p-0' }"
455
+ ></x-element-link>
456
+ }
457
+ </h5>
458
+ }
459
+ </div>
460
+ }
461
+ </div>
462
+ }
463
+ </div>
464
+ }
465
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.LinkComponent, selector: "x-element-link", inputs: ["data"] }, { kind: "pipe", type: i4.PrependPipe, name: "xPrepend" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
466
+ }
467
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: CardComponent, decorators: [{
468
+ type: Component,
469
+ args: [{ standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, selector: 'x-card', template: `
470
+ @if (data) {
471
+ <div
472
+ [ngClass]="[
473
+ data.class ?? '',
474
+ data.align ?? '',
475
+ data.bgClass ?? '',
476
+ data.fgClass ?? '',
477
+ ]"
478
+ [style]="
479
+ combinedStyle(
480
+ data.style ?? '',
481
+ data.bgStyle ?? '',
482
+ data.fgStyle ?? ''
483
+ )
484
+ "
485
+ [ngStyle]="
486
+ data.bgImage
487
+ ? {
488
+ 'background-image': 'url(' + data.bgImage + ')',
489
+ 'background-size': data.bgSize ?? '50%',
490
+ 'background-repeat': data.bgRepeat ?? 'no-repeat',
491
+ 'background-position': data.bgPosition ?? 'right top',
492
+ }
493
+ : {}
494
+ "
495
+ >
496
+ <!-- header -->
497
+ @if (
498
+ data.icon ||
499
+ data.title ||
500
+ data.desc ||
501
+ data.links?.length ||
502
+ data.fgImage
503
+ ) {
504
+ <div
505
+ class="row"
506
+ >
507
+ <div [ngClass]="data.fgImage ? 'col-6' : 'col-12'">
508
+ @if (data.icon || data.title) {
509
+ <h1
510
+ [ngClass]="[data.titleClass ?? 'display-1 fw-bold']"
511
+ >
512
+ @if (data.icon && isUrl(data.icon)) {
513
+ <img
514
+ [src]="data.icon"
515
+ height="27"
516
+ width="27"
517
+ />
518
+ }
519
+ @if (data.icon && !isUrl(data.icon)) {
520
+ <i
521
+ class="fa-2x"
522
+ [ngClass]="data.icon"
523
+ ></i>
524
+ }
525
+ @if (data.title) {
526
+ <span class="">{{ data.title }}</span>
527
+ }
528
+ </h1>
529
+ }
530
+ @if (data.desc) {
531
+ <h6
532
+ class="display-6"
533
+ [innerHTML]="data.desc"
534
+ ></h6>
535
+ }
536
+ @if (data.links?.length) {
537
+ <ul
538
+ class="nav my-3"
539
+ [ngClass]="data.align ?? ''"
540
+ >
541
+ @for (link of data.links; track link) {
542
+ <li
543
+ class="nav-item"
544
+ [ngClass]="link.class ?? ''"
545
+ [style]="link.style ?? ''"
546
+ >
547
+ <x-element-link
548
+ [data]="link | xPrepend: { class: 'btn btn-primary px-5' }"
549
+ ></x-element-link>
550
+ </li>
551
+ }
552
+ </ul>
553
+ }
554
+ </div>
555
+ @if (data.fgImage) {
556
+ <div
557
+ class="d-none d-sm-flex d-md-flex col-6"
558
+ [ngClass]="[data.fgClass ?? '']"
559
+ [style]="data.fgStyle ?? ''"
560
+ >
561
+ <img [src]="data.fgImage" height="200" width="auto" />
562
+ </div>
563
+ }
564
+ </div>
565
+ }
566
+ <!-- search -->
567
+ @if (data.placeholder) {
568
+ <div class="row col-12 col-sm-9 col-6 mx-auto">
569
+ <div class="input-group input-group-lg">
570
+ <input
571
+ type="text"
572
+ class="form-control"
573
+ [placeholder]="data.placeholder"
574
+ />
575
+ </div>
576
+ </div>
577
+ }
578
+ <!-- list -->
579
+ @if (data.list?.length) {
580
+ <div
581
+ class="row py-5 justify-content-center w-100"
582
+ >
583
+ <dl class="col-12">
584
+ @for (item of data.list; track item) {
585
+ <div
586
+ [ngClass]="item.class ?? ''"
587
+ [style]="item.style ?? ''"
588
+ >
589
+ @if (data.title) {
590
+ <dt class="">{{ data.title }}</dt>
591
+ }
592
+ @if (data.desc) {
593
+ <dd class="" [innerHTML]="data.desc"></dd>
594
+ }
595
+ </div>
596
+ }
597
+ </dl>
598
+ </div>
599
+ }
600
+ <!-- grids -->
601
+ @if (data.grids?.length) {
602
+ <div
603
+ class="row row-cols-1 row-cols-sm-2 row-cols-md-3"
604
+ [ngClass]="data.align ?? ''"
605
+ >
606
+ @for (item of data.grids; track item) {
607
+ <div
608
+ class="col"
609
+ [ngClass]="item.class ?? ''"
610
+ [style]="item.style ?? ''"
611
+ >
612
+ <div class="card">
613
+ @if (item.icon && isUrl(item.icon)) {
614
+ <img
615
+ [src]="item.icon"
616
+ width="72"
617
+ height="72"
618
+ />
619
+ }
620
+ @if (item.icon && !isUrl(item.icon)) {
621
+ <i
622
+ [ngClass]="item.icon"
623
+ class="fa-2x"
624
+ ></i>
625
+ }
626
+ <div class="card-body">
627
+ @if (item?.title) {
628
+ <h5 class="card-title">{{ item.title }}</h5>
629
+ }
630
+ @if (item?.desc) {
631
+ <p
632
+ class="card-text"
633
+ [innerHTML]="item.desc"
634
+ ></p>
635
+ }
636
+ </div>
637
+ @if (item?.links?.length) {
638
+ <ul
639
+ class="list-group list-group-flush"
640
+ >
641
+ @for (link of item?.links; track link) {
642
+ <li
643
+ class="list-group-item"
644
+ [ngClass]="link.class ?? ''"
645
+ [style]="link.style ?? ''"
646
+ >
647
+ <x-element-link
648
+ [data]="
649
+ link
650
+ | xPrepend: { class: 'card-link text-decoration-none' }
651
+ "
652
+ ></x-element-link>
653
+ </li>
654
+ }
655
+ </ul>
656
+ }
657
+ </div>
658
+ </div>
659
+ }
660
+ </div>
661
+ }
662
+ <!-- media -->
663
+ @if (data.media?.length) {
664
+ <div
665
+ class="d-flex flex-column justify-content-center"
666
+ [ngClass]="data.align ?? ''"
667
+ >
668
+ <div class="card w-100 border-0">
669
+ <ul class="list-group list-group-flush">
670
+ @for (item of data.media; track item; let f = $first; let l = $last) {
671
+ <li
672
+ class="list-group-item border-0 p-0 mx-0 my-3"
673
+ [ngClass]="{ 'pb-5': f, 'pt-5': l, 'py-5': !f && !l }"
674
+ [ngClass]="item.class ?? ''"
675
+ [style]="item.style ?? ''"
676
+ >
677
+ <div class="d-flex">
678
+ <div class="flex-shrink-0">
679
+ @if (item.icon && isUrl(item.icon)) {
680
+ <img
681
+ [src]="item.icon"
682
+ width="72"
683
+ height="72"
684
+ />
685
+ }
686
+ @if (item.icon && !isUrl(item.icon)) {
687
+ <i
688
+ [ngClass]="item.icon"
689
+ class="fa-2x"
690
+ ></i>
691
+ }
692
+ </div>
693
+ <div class="flex-grow-1 ms-3">
694
+ @if (item?.title) {
695
+ <h5 class="p-0 m-0">
696
+ {{ item.title }}
697
+ </h5>
698
+ }
699
+ @if (item?.desc) {
700
+ <p
701
+ class="p-0 m-0"
702
+ [innerHTML]="item.desc"
703
+ ></p>
704
+ }
705
+ @if (item?.links?.length) {
706
+ <ul class="nav">
707
+ @for (link of item.links; track link) {
708
+ <li
709
+ class="nav-item"
710
+ [ngClass]="link.class ?? ''"
711
+ [style]="link.style ?? ''"
712
+ >
713
+ <x-element-link
714
+ [data]="
715
+ link
716
+ | xPrepend
717
+ : {
718
+ class:
719
+ 'btn btn-primary btn-link text-decoration-none p-0 m-0',
720
+ }
721
+ "
722
+ ></x-element-link>
723
+ </li>
724
+ }
725
+ </ul>
726
+ }
727
+ </div>
728
+ </div>
729
+ </li>
730
+ }
731
+ </ul>
732
+ </div>
733
+ </div>
734
+ }
735
+ <!-- cards -->
736
+ @if (data.cards?.length) {
737
+ <div
738
+ class="row my-3 row-cols-1 row-cols-sm-2 row-cols-md-3"
739
+ [ngClass]="data.align ?? ''"
740
+ >
741
+ @for (item of data.cards; track item) {
742
+ <div
743
+ class="col"
744
+ [ngClass]="item.class ?? ''"
745
+ [style]="item.style ?? ''"
746
+ >
747
+ <div
748
+ class="card card-body text-bg-light"
749
+ [ngClass]="data.bgClass ?? ''"
750
+ [style]="data.bgStyle ?? ''"
751
+ >
752
+ <div class="text-start">
753
+ @if (item.icon && isUrl(item.icon)) {
754
+ <img
755
+ [src]="item.icon"
756
+ class=""
757
+ width="72"
758
+ height="72"
759
+ />
760
+ }
761
+ @if (item.icon && !isUrl(item.icon)) {
762
+ <i
763
+ [ngClass]="item.icon"
764
+ class="fa-2x"
765
+ ></i>
766
+ }
767
+ </div>
768
+ @if (item?.title) {
769
+ <h3>
770
+ {{ item.title }}
771
+ </h3>
772
+ }
773
+ @if (item?.desc) {
774
+ <p [innerHTML]="item.desc"></p>
775
+ }
776
+ @if (item?.links?.length) {
777
+ <div>
778
+ @for (link of item?.links; track link) {
779
+ <div
780
+ [ngClass]="link.class ?? ''"
781
+ [style]="link.style ?? ''"
782
+ >
783
+ <x-element-link
784
+ [data]="
785
+ link | xPrepend: { class: 'btn btn-primary btn-link' }
786
+ "
787
+ ></x-element-link>
788
+ </div>
789
+ }
790
+ </div>
791
+ }
792
+ </div>
793
+ </div>
794
+ }
795
+ </div>
796
+ }
797
+ <!-- doubles -->
798
+ @if (data.doubles?.length) {
799
+ <div
800
+ class="row"
801
+ [ngClass]="data.align ?? ''"
802
+ >
803
+ @for (item of data.doubles; track item; let e = $even) {
804
+ <div
805
+ class="d-flex justify-content-between"
806
+ [ngClass]="item.class ?? ''"
807
+ [style]="item.style ?? ''"
808
+ >
809
+ <div class="" [ngClass]="{ 'order-first': e, 'order-last': !e }">
810
+ @if (item?.title) {
811
+ <h3>
812
+ {{ item.title }}
813
+ </h3>
814
+ }
815
+ @if (item?.desc) {
816
+ <p
817
+ class="text-start py-3"
818
+ [innerHTML]="item.desc"
819
+ ></p>
820
+ }
821
+ @if (item?.links?.length) {
822
+ <div class="">
823
+ @for (link of item?.links; track link) {
824
+ <div
825
+ [ngClass]="link.class ?? ''"
826
+ [style]="link.style ?? ''"
827
+ >
828
+ <x-element-link
829
+ [data]="
830
+ link
831
+ | xPrepend
832
+ : {
833
+ class:
834
+ 'btn btn-primary btn-link d-flex flex-column-reverse',
835
+ }
836
+ "
837
+ ></x-element-link>
838
+ </div>
839
+ }
840
+ </div>
841
+ }
842
+ </div>
843
+ @if (item?.icon) {
844
+ <div
845
+ class=""
846
+ [ngClass]="{ 'order-first': !e, 'order-last': e }"
847
+ >
848
+ <div class="text-start">
849
+ <i class="fa-5x" [ngClass]="item.icon"></i>
850
+ </div>
851
+ </div>
852
+ }
853
+ </div>
854
+ }
855
+ </div>
856
+ }
857
+ <!-- image clouds -->
858
+ @if (data.cloud?.length) {
859
+ <div
860
+ class="row py-5 justify-content-center w-100"
861
+ >
862
+ @for (item of data.cloud; track item; let e = $even) {
863
+ <div
864
+ class="d-flex justify-content-between"
865
+ [ngClass]="item.class ?? ''"
866
+ [style]="item.style ?? ''"
867
+ >
868
+ <div class="">
869
+ @if (item.icon && isUrl(item.icon)) {
870
+ <img
871
+ [src]="item.icon"
872
+ class=""
873
+ width="72"
874
+ height="72"
875
+ />
876
+ }
877
+ @if (item.icon && !isUrl(item.icon)) {
878
+ <i
879
+ [ngClass]="item.icon"
880
+ class="fa-2x"
881
+ ></i>
882
+ }
883
+ </div>
884
+ </div>
885
+ }
886
+ </div>
887
+ }
888
+ <!-- lines -->
889
+ @if (data.lines?.length) {
890
+ <div class="row col-12 container">
891
+ @for (item of data.lines; track item) {
892
+ <div
893
+ class="pt-3 px-0 border-bottom"
894
+ [ngClass]="item.class ?? ''"
895
+ [style]="item.style ?? ''"
896
+ >
897
+ @if (item.title) {
898
+ <h5 class="text-start">
899
+ @if (!item.url) {
900
+ <span>{{ item.title }}</span>
901
+ }
902
+ @if (item.url) {
903
+ <x-element-link
904
+ [data]="item | xPrepend: { class: 'btn btn-link p-0' }"
905
+ ></x-element-link>
906
+ }
907
+ </h5>
908
+ }
909
+ </div>
910
+ }
911
+ </div>
912
+ }
913
+ </div>
914
+ }
915
+ ` }]
916
+ }], propDecorators: { data: [{
917
+ type: Input
918
+ }] } });
919
+
920
+ class CardsComponent {
921
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: CardsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
922
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: CardsComponent, isStandalone: false, selector: "x-cards", inputs: { data: "data" }, ngImport: i0, template: `
923
+ @if (data?.length) {
924
+ @for (card of data; track card) {
925
+ <x-card [data]="card"></x-card>
926
+ }
927
+ }
928
+ `, isInline: true, dependencies: [{ kind: "component", type: CardComponent, selector: "x-card", inputs: ["data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
929
+ }
930
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: CardsComponent, decorators: [{
931
+ type: Component,
932
+ args: [{ standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, selector: 'x-cards', template: `
933
+ @if (data?.length) {
934
+ @for (card of data; track card) {
935
+ <x-card [data]="card"></x-card>
936
+ }
937
+ }
938
+ ` }]
939
+ }], propDecorators: { data: [{
940
+ type: Input
941
+ }] } });
942
+
943
+ class CardsModule {
944
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: CardsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
945
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.4", ngImport: i0, type: CardsModule, declarations: [CardsComponent, CardComponent], imports: [SharedModule, i2.FormModule, ElementsModule], exports: [CardsComponent, CardComponent] }); }
946
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: CardsModule, imports: [SharedModule, FormModule.forChild(), ElementsModule] }); }
947
+ }
948
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: CardsModule, decorators: [{
949
+ type: NgModule,
950
+ args: [{
951
+ declarations: [CardsComponent, CardComponent],
952
+ exports: [CardsComponent, CardComponent],
953
+ imports: [SharedModule, FormModule.forChild(), ElementsModule],
954
+ }]
955
+ }] });
956
+
957
+ class HomeComponent {
958
+ constructor() {
959
+ this.appDataSelector = CommonActionType.APP_CONFIG;
960
+ }
961
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: HomeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
962
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: HomeComponent, isStandalone: false, selector: "x-home", ngImport: i0, template: `
963
+ @if (appDataSelector | xSelect | async; as appData) {
964
+ <x-cards
965
+ [data]="appData.cards"
966
+ >
967
+ </x-cards>
968
+ } @else {
969
+ <x-element-loader></x-element-loader>
970
+ }
971
+
972
+ <!-- misc -->
973
+
974
+ <ng-template #empty>
975
+ <x-element-blank></x-element-blank>
976
+ </ng-template>
977
+ `, isInline: true, dependencies: [{ kind: "component", type: i2.BlankComponent, selector: "x-element-blank", inputs: ["image", "icon", "type"] }, { kind: "component", type: i2.LoaderComponent, selector: "x-element-loader", inputs: ["data"] }, { kind: "component", type: CardsComponent, selector: "x-cards", inputs: ["data"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SelectPipe, name: "xSelect" }] }); }
978
+ }
979
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: HomeComponent, decorators: [{
980
+ type: Component,
981
+ args: [{ standalone: false, selector: 'x-home', template: `
982
+ @if (appDataSelector | xSelect | async; as appData) {
983
+ <x-cards
984
+ [data]="appData.cards"
985
+ >
986
+ </x-cards>
987
+ } @else {
988
+ <x-element-loader></x-element-loader>
989
+ }
990
+
991
+ <!-- misc -->
992
+
993
+ <ng-template #empty>
994
+ <x-element-blank></x-element-blank>
995
+ </ng-template>
996
+ ` }]
997
+ }] });
998
+
999
+ class HomeModule {
1000
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: HomeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1001
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.4", ngImport: i0, type: HomeModule, declarations: [HomeComponent], imports: [SharedModule, i1$1.RouterModule, LayoutsModule,
1002
+ WebgetsModule,
1003
+ ElementsModule,
1004
+ CardsModule] }); }
1005
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: HomeModule, imports: [SharedModule,
1006
+ RouterModule.forChild([{ path: '', component: HomeComponent }]),
1007
+ LayoutsModule,
1008
+ WebgetsModule,
1009
+ ElementsModule,
1010
+ CardsModule] }); }
1011
+ }
1012
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: HomeModule, decorators: [{
1013
+ type: NgModule,
1014
+ args: [{
1015
+ declarations: [HomeComponent],
1016
+ imports: [
1017
+ SharedModule,
1018
+ RouterModule.forChild([{ path: '', component: HomeComponent }]),
1019
+ LayoutsModule,
1020
+ WebgetsModule,
1021
+ ElementsModule,
1022
+ CardsModule,
1023
+ ],
1024
+ }]
1025
+ }] });
1026
+
1027
+ export { HomeModule };
1028
+ //# sourceMappingURL=thescaffold-ngx-apps-blog-home.module-LXerbHw9.mjs.map