ngx-cho-components 1.0.0 → 3.3.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 (41) hide show
  1. package/README.md +35 -119
  2. package/fesm2022/ngx-cho-components.mjs +736 -279
  3. package/fesm2022/ngx-cho-components.mjs.map +1 -1
  4. package/lib/cho-address-info.component.d.ts +2 -2
  5. package/lib/cho-card-header.component.d.ts +4 -2
  6. package/lib/cho-card-tabs.component.d.ts +1 -1
  7. package/lib/cho-card.component.d.ts +14 -16
  8. package/lib/cho-component.types.d.ts +2 -0
  9. package/lib/cho-detail-page.component.d.ts +26 -0
  10. package/lib/cho-details-card.component.d.ts +4 -4
  11. package/lib/cho-email-info.component.d.ts +2 -6
  12. package/lib/cho-pager.component.d.ts +23 -0
  13. package/lib/cho-phone-info.component.d.ts +2 -2
  14. package/lib/cho-radio-group.component.d.ts +13 -12
  15. package/lib/cho-review-status-alert.component.d.ts +3 -3
  16. package/lib/cho-search-card.component.d.ts +41 -0
  17. package/lib/index.d.ts +5 -5
  18. package/package.json +15 -10
  19. package/styles/_cards.scss +116 -0
  20. package/styles/_contact-info.scss +9 -0
  21. package/styles/_detail-page.scss +31 -0
  22. package/styles/_forms.scss +33 -0
  23. package/styles/_index.scss +8 -0
  24. package/styles/_pager.scss +45 -0
  25. package/styles/_responsive.scss +26 -0
  26. package/styles/_search-card.scss +44 -0
  27. package/styles/_status.scss +9 -0
  28. package/esm2022/lib/cho-address-info.component.mjs +0 -37
  29. package/esm2022/lib/cho-card-filters.component.mjs +0 -18
  30. package/esm2022/lib/cho-card-header.component.mjs +0 -55
  31. package/esm2022/lib/cho-card-tabs.component.mjs +0 -63
  32. package/esm2022/lib/cho-card-toolbar.component.mjs +0 -18
  33. package/esm2022/lib/cho-card.component.mjs +0 -123
  34. package/esm2022/lib/cho-details-card.component.mjs +0 -52
  35. package/esm2022/lib/cho-email-info.component.mjs +0 -36
  36. package/esm2022/lib/cho-phone-info.component.mjs +0 -29
  37. package/esm2022/lib/cho-radio-group.component.mjs +0 -70
  38. package/esm2022/lib/cho-review-status-alert.component.mjs +0 -31
  39. package/esm2022/lib/index.mjs +0 -12
  40. package/esm2022/ngx-cho-components.mjs +0 -5
  41. package/esm2022/public-api.mjs +0 -5
@@ -0,0 +1,116 @@
1
+ @use 'ngx-cho-common/styles/mixins' as cho;
2
+
3
+ @layer components {
4
+ .cho-card {
5
+ @include cho.cho-surface(var(--cho-shell-shadow, none), var(--cho-card-radius, 8px));
6
+ display: block;
7
+ margin-block-end: 1rem;
8
+
9
+ &--embedded {
10
+ background: transparent;
11
+ border: 0;
12
+ border-radius: 0;
13
+ box-shadow: none;
14
+ margin-block-end: 0;
15
+ }
16
+
17
+ &__body {
18
+ min-width: 0;
19
+
20
+ &--none {
21
+ padding: 0;
22
+ }
23
+
24
+ &--compact {
25
+ padding: 0.75rem;
26
+ }
27
+
28
+ &--comfortable {
29
+ padding: var(--cho-card-body-padding, 1rem);
30
+ }
31
+ }
32
+
33
+ &__tabs {
34
+ border-block-end: 1px solid var(--surface-border);
35
+ padding: 0.75rem 1rem;
36
+ }
37
+ }
38
+
39
+ .cho-card-header {
40
+ align-items: center;
41
+ border-block-end: 1px solid var(--surface-border);
42
+ display: flex;
43
+ flex-wrap: wrap;
44
+ gap: 1rem;
45
+ justify-content: space-between;
46
+ padding: var(--cho-card-header-padding, 0.75rem 1rem);
47
+
48
+ &__title {
49
+ @include cho.cho-title(1.25rem);
50
+ line-height: 1.25;
51
+ }
52
+
53
+ h1#{&}__title {
54
+ font-size: 1.5rem;
55
+ }
56
+
57
+ h2#{&}__title {
58
+ font-size: 1.375rem;
59
+ }
60
+
61
+ h4#{&}__title {
62
+ font-size: 1.125rem;
63
+ }
64
+
65
+ h5#{&}__title,
66
+ h6#{&}__title {
67
+ font-size: 1rem;
68
+ }
69
+ }
70
+
71
+ .cho-card-toolbar {
72
+ align-items: center;
73
+ display: flex;
74
+ flex-wrap: wrap;
75
+ gap: 0.5rem;
76
+ justify-content: flex-end;
77
+ min-width: 0;
78
+ }
79
+
80
+ .cho-card-filters {
81
+ align-items: end;
82
+ border-block-end: 1px solid var(--surface-border);
83
+ display: flex;
84
+ flex-wrap: wrap;
85
+ gap: 0.75rem;
86
+ padding: var(--cho-card-filters-padding, 0.75rem 1rem);
87
+ }
88
+
89
+ .cho-card-tabs {
90
+ border-block-end: 1px solid var(--surface-border);
91
+ padding-inline: 1rem;
92
+
93
+ ul {
94
+ display: flex;
95
+ gap: 1rem;
96
+ list-style: none;
97
+ margin: 0;
98
+ padding: 0;
99
+ }
100
+
101
+ &__link {
102
+ border-block-end: 2px solid transparent;
103
+ color: inherit;
104
+ cursor: pointer;
105
+ display: block;
106
+ padding-block: 0.75rem;
107
+ text-decoration: none;
108
+
109
+ &:hover,
110
+ &.active {
111
+ border-block-end-color: currentColor;
112
+ color: var(--p-primary-color, #211c72);
113
+ }
114
+ }
115
+ }
116
+ }
@@ -0,0 +1,9 @@
1
+ @layer components {
2
+ .cho-contact-info {
3
+ overflow-wrap: anywhere;
4
+
5
+ &__line {
6
+ margin: 0;
7
+ }
8
+ }
9
+ }
@@ -0,0 +1,31 @@
1
+ @layer components {
2
+ cho-detail-page {
3
+ display: grid;
4
+ gap: 0.75rem;
5
+ min-width: 0;
6
+ }
7
+
8
+ cho-detail-page > cho-card > .cho-card {
9
+ margin-block-end: 0;
10
+ width: 100%;
11
+ }
12
+
13
+ .cho-detail-page__body {
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: 0.75rem;
17
+ min-width: 0;
18
+
19
+ &--none {
20
+ padding: 0;
21
+ }
22
+
23
+ &--compact {
24
+ padding: 0.75rem;
25
+ }
26
+
27
+ &--comfortable {
28
+ padding: 1rem;
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,33 @@
1
+ @layer components {
2
+ .cho-radio-group {
3
+ border: 0;
4
+ display: flex;
5
+ flex-wrap: wrap;
6
+ gap: 0.5rem 1rem;
7
+ margin: 0;
8
+ min-width: 0;
9
+ padding: 0;
10
+
11
+ &__label {
12
+ flex-basis: 100%;
13
+ font-size: inherit;
14
+ font-weight: 500;
15
+ margin-block-end: 0.25rem;
16
+ padding: 0;
17
+ }
18
+
19
+ &__option {
20
+ align-items: center;
21
+ cursor: pointer;
22
+ display: inline-flex;
23
+ gap: 0.375rem;
24
+ }
25
+
26
+ &__input {
27
+ accent-color: var(--p-primary-color, #211c72);
28
+ height: 1rem;
29
+ margin: 0;
30
+ width: 1rem;
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,8 @@
1
+ @use 'cards';
2
+ @use 'search-card';
3
+ @use 'detail-page';
4
+ @use 'pager';
5
+ @use 'forms';
6
+ @use 'status';
7
+ @use 'contact-info';
8
+ @use 'responsive';
@@ -0,0 +1,45 @@
1
+ @use 'ngx-cho-common/styles/tokens' as cho;
2
+
3
+ @layer components {
4
+ .cho-pager {
5
+ border-block-start: 1px solid var(--p-content-border-color, #e5e7eb);
6
+ display: flex;
7
+ justify-content: center;
8
+ padding: 0.5rem 0 0;
9
+ width: 100%;
10
+
11
+ .p-paginator {
12
+ background: transparent;
13
+ border: 0;
14
+ gap: 0.25rem;
15
+ justify-content: center;
16
+ padding: 0.25rem 0;
17
+ width: 100%;
18
+ }
19
+
20
+ .p-paginator-current {
21
+ color: var(--p-text-color, #374151);
22
+ margin-inline-end: auto;
23
+ min-width: 7rem;
24
+ order: -1;
25
+ text-align: start;
26
+ }
27
+
28
+ .p-paginator-rpp-options {
29
+ margin-inline-start: auto;
30
+ min-width: 4.75rem;
31
+ }
32
+
33
+ :is(
34
+ .p-paginator-page,
35
+ .p-paginator-next,
36
+ .p-paginator-prev,
37
+ .p-paginator-first,
38
+ .p-paginator-last
39
+ ) {
40
+ border-radius: cho.$cho-radius-sm;
41
+ height: 2rem;
42
+ min-width: 2rem;
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,26 @@
1
+ @layer components {
2
+ @media (max-width: 767.98px) {
3
+ .cho-card-header,
4
+ .cho-card-toolbar,
5
+ .cho-card-filters {
6
+ align-items: stretch;
7
+ flex-direction: column;
8
+ }
9
+
10
+ .cho-card-toolbar {
11
+ width: 100%;
12
+ }
13
+
14
+ .cho-pager {
15
+ .p-paginator {
16
+ justify-content: flex-start;
17
+ }
18
+
19
+ .p-paginator-current,
20
+ .p-paginator-rpp-options {
21
+ margin-inline: 0;
22
+ width: 100%;
23
+ }
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,44 @@
1
+ @layer components {
2
+ cho-search-card {
3
+ display: block;
4
+ min-width: 0;
5
+ }
6
+
7
+ .cho-search-card__content {
8
+ min-width: 0;
9
+ width: 100%;
10
+
11
+ &--none {
12
+ padding: 0;
13
+ }
14
+
15
+ &--compact {
16
+ padding: 0.75rem;
17
+ }
18
+
19
+ &--comfortable {
20
+ padding: 1rem;
21
+ }
22
+ }
23
+
24
+ cho-search-card .cho-card-filters {
25
+ > * {
26
+ flex: 1 1 14rem;
27
+ min-width: min(100%, 12rem);
28
+ }
29
+
30
+ > :is(input[pInputText], p-icon-field) {
31
+ flex: 2 1 22rem;
32
+ }
33
+
34
+ > :is(button, p-button, p-checkbox) {
35
+ flex: 0 0 auto;
36
+ min-width: 0;
37
+ }
38
+
39
+ > p-icon-field input[pInputText],
40
+ > p-select .p-select {
41
+ width: 100%;
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,9 @@
1
+ @layer components {
2
+ .cho-review-status {
3
+ background: var(--p-message-info-background, var(--p-primary-50, #f0effb));
4
+ border: 1px solid var(--p-message-info-border-color, var(--p-primary-200, #d9d6f2));
5
+ border-radius: var(--cho-control-radius, 6px);
6
+ color: var(--p-message-info-color, var(--p-primary-color, #211c72));
7
+ padding: 0.75rem 1rem;
8
+ }
9
+ }
@@ -1,37 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { NgIf, TitleCasePipe } from '@angular/common';
3
- import * as i0 from "@angular/core";
4
- export class ChoAddressInfoComponent {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoAddressInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChoAddressInfoComponent, isStandalone: true, selector: "cho-address-info", inputs: { address: "address" }, ngImport: i0, template: `<p *ngIf="address.addressLine1" class="m-0">
7
- {{ address.addressLine1 | titlecase }}
8
- </p>
9
- <p *ngIf="address.addressLine2" class="m-0">
10
- {{ address.addressLine2 | titlecase }}
11
- </p>
12
- <p *ngIf="address.city" class="m-0">
13
- {{ address.city | titlecase }}, {{ address.stateProvinceCode }}
14
- {{ address.postalCode }}
15
- </p> `, isInline: true, dependencies: [{ kind: "pipe", type: TitleCasePipe, name: "titlecase" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoAddressInfoComponent, decorators: [{
18
- type: Component,
19
- args: [{
20
- selector: 'cho-address-info',
21
- template: `<p *ngIf="address.addressLine1" class="m-0">
22
- {{ address.addressLine1 | titlecase }}
23
- </p>
24
- <p *ngIf="address.addressLine2" class="m-0">
25
- {{ address.addressLine2 | titlecase }}
26
- </p>
27
- <p *ngIf="address.city" class="m-0">
28
- {{ address.city | titlecase }}, {{ address.stateProvinceCode }}
29
- {{ address.postalCode }}
30
- </p> `,
31
- standalone: true,
32
- imports: [TitleCasePipe, NgIf],
33
- }]
34
- }], propDecorators: { address: [{
35
- type: Input
36
- }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWFkZHJlc3MtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbXBvbmVudHMvc3JjL2xpYi9jaG8tYWRkcmVzcy1pbmZvLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQWlCdEQsTUFBTSxPQUFPLHVCQUF1QjsrR0FBdkIsdUJBQXVCO21HQUF2Qix1QkFBdUIsNEdBYnRCOzs7Ozs7Ozs7Y0FTQSx1REFFQSxhQUFhLGtEQUFFLElBQUk7OzRGQUVwQix1QkFBdUI7a0JBZm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Y0FTQTtvQkFDVixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQztpQkFDakM7OEJBRVksT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJQWRkcmVzcyB9IGZyb20gJ25neC1jaG8tY29tbW9uJztcclxuaW1wb3J0IHsgTmdJZiwgVGl0bGVDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY2hvLWFkZHJlc3MtaW5mbycsXHJcbiAgICB0ZW1wbGF0ZTogYDxwICpuZ0lmPVwiYWRkcmVzcy5hZGRyZXNzTGluZTFcIiBjbGFzcz1cIm0tMFwiPlxyXG4gICAgICAgICAgICB7eyBhZGRyZXNzLmFkZHJlc3NMaW5lMSB8IHRpdGxlY2FzZSB9fVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8cCAqbmdJZj1cImFkZHJlc3MuYWRkcmVzc0xpbmUyXCIgY2xhc3M9XCJtLTBcIj5cclxuICAgICAgICAgICAge3sgYWRkcmVzcy5hZGRyZXNzTGluZTIgfCB0aXRsZWNhc2UgfX1cclxuICAgICAgICA8L3A+XHJcbiAgICAgICAgPHAgKm5nSWY9XCJhZGRyZXNzLmNpdHlcIiBjbGFzcz1cIm0tMFwiPlxyXG4gICAgICAgICAgICB7eyBhZGRyZXNzLmNpdHkgfCB0aXRsZWNhc2UgfX0sIHt7IGFkZHJlc3Muc3RhdGVQcm92aW5jZUNvZGUgfX1cclxuICAgICAgICAgICAge3sgYWRkcmVzcy5wb3N0YWxDb2RlIH19XHJcbiAgICAgICAgPC9wPiBgLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtUaXRsZUNhc2VQaXBlLCBOZ0lmXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENob0FkZHJlc3NJbmZvQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIGFkZHJlc3MhOiBJQWRkcmVzcztcclxufVxyXG4iXX0=
@@ -1,18 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ChoCardFiltersComponent {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoCardFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChoCardFiltersComponent, isStandalone: true, selector: "cho-card-filters", host: { classAttribute: "card-filters" }, ngImport: i0, template: ` <ng-content /> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6
- }
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoCardFiltersComponent, decorators: [{
8
- type: Component,
9
- args: [{
10
- selector: 'cho-card-filters',
11
- standalone: true,
12
- changeDetection: ChangeDetectionStrategy.OnPush,
13
- imports: [],
14
- host: { class: 'card-filters' },
15
- template: ` <ng-content /> `,
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWNhcmQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbXBvbmVudHMvc3JjL2xpYi9jaG8tY2FyZC1maWx0ZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVVuRSxNQUFNLE9BQU8sdUJBQXVCOytHQUF2Qix1QkFBdUI7bUdBQXZCLHVCQUF1QixzSEFGdEIsa0JBQWtCOzs0RkFFbkIsdUJBQXVCO2tCQVJuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRTtvQkFDL0IsUUFBUSxFQUFFLGtCQUFrQjtpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY2hvLWNhcmQtZmlsdGVycycsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBpbXBvcnRzOiBbXSxcclxuICAgIGhvc3Q6IHsgY2xhc3M6ICdjYXJkLWZpbHRlcnMnIH0sXHJcbiAgICB0ZW1wbGF0ZTogYCA8bmctY29udGVudCAvPiBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hvQ2FyZEZpbHRlcnNDb21wb25lbnQge31cclxuIl19
@@ -1,55 +0,0 @@
1
- import { NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, input } from '@angular/core';
3
- import { ChoCardToolbarComponent } from './cho-card-toolbar.component';
4
- import * as i0 from "@angular/core";
5
- export class ChoCardHeaderComponent {
6
- constructor() {
7
- this.headerText = input();
8
- this.toolbar = input();
9
- }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoCardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ChoCardHeaderComponent, isStandalone: true, selector: "cho-card-header", inputs: { headerText: { classPropertyName: "headerText", publicName: "headerText", isSignal: true, isRequired: false, transformFunction: null }, toolbar: { classPropertyName: "toolbar", publicName: "toolbar", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
12
- <div class="card-header">
13
- <h3 class="card-title">
14
- @if (headerText()) {
15
- {{ headerText() }}
16
- } @else {
17
- <ng-content />
18
- }
19
- </h3>
20
-
21
- @if (toolbar()) {
22
- <cho-card-toolbar>
23
- <ng-container *ngTemplateOutlet="toolbar()!" />
24
- </cho-card-toolbar>
25
- }
26
- </div>
27
- `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ChoCardToolbarComponent, selector: "cho-card-toolbar" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoCardHeaderComponent, decorators: [{
30
- type: Component,
31
- args: [{
32
- selector: 'cho-card-header',
33
- standalone: true,
34
- changeDetection: ChangeDetectionStrategy.OnPush,
35
- imports: [NgTemplateOutlet, ChoCardToolbarComponent],
36
- template: `
37
- <div class="card-header">
38
- <h3 class="card-title">
39
- @if (headerText()) {
40
- {{ headerText() }}
41
- } @else {
42
- <ng-content />
43
- }
44
- </h3>
45
-
46
- @if (toolbar()) {
47
- <cho-card-toolbar>
48
- <ng-container *ngTemplateOutlet="toolbar()!" />
49
- </cho-card-toolbar>
50
- }
51
- </div>
52
- `,
53
- }]
54
- }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWNhcmQtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tcG9uZW50cy9zcmMvbGliL2Noby1jYXJkLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBeUJ2RSxNQUFNLE9BQU8sc0JBQXNCO0lBdkJuQztRQXdCSSxlQUFVLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDN0IsWUFBTyxHQUFHLEtBQUssRUFBMkIsQ0FBQztLQUM5QzsrR0FIWSxzQkFBc0I7bUdBQXRCLHNCQUFzQiw0VkFsQnJCOzs7Ozs7Ozs7Ozs7Ozs7O0tBZ0JULDREQWpCUyxnQkFBZ0Isb0pBQUUsdUJBQXVCOzs0RkFtQjFDLHNCQUFzQjtrQkF2QmxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsQ0FBQztvQkFDcEQsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0tBZ0JUO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaG9DYXJkVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vY2hvLWNhcmQtdG9vbGJhci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2Noby1jYXJkLWhlYWRlcicsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgQ2hvQ2FyZFRvb2xiYXJDb21wb25lbnRdLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgQGlmIChoZWFkZXJUZXh0KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB7eyBoZWFkZXJUZXh0KCkgfX1cclxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvaDM+XHJcblxyXG4gICAgICAgICAgICBAaWYgKHRvb2xiYXIoKSkge1xyXG4gICAgICAgICAgICAgICAgPGNoby1jYXJkLXRvb2xiYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvb2xiYXIoKSFcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9jaG8tY2FyZC10b29sYmFyPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hvQ2FyZEhlYWRlckNvbXBvbmVudCB7XHJcbiAgICBoZWFkZXJUZXh0ID0gaW5wdXQ8c3RyaW5nPigpO1xyXG4gICAgdG9vbGJhciA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPigpO1xyXG59XHJcbiJdfQ==
@@ -1,63 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject, input, output } from '@angular/core';
2
- import { ChoNavigationService, ChoRouteParamService } from 'ngx-cho-common';
3
- import * as i0 from "@angular/core";
4
- export class ChoCardTabsComponent {
5
- constructor() {
6
- this.navigationService = inject(ChoNavigationService);
7
- this.routeParamService = inject(ChoRouteParamService);
8
- this.tabs = input();
9
- this.tabSelect = output();
10
- }
11
- ngOnInit() {
12
- this.activeTab = this.routeParamService.getQueryParameterValue('vw') || '';
13
- this.tabSelect.emit(this.activeTab);
14
- }
15
- onSelect(tabValue) {
16
- this.activeTab = tabValue;
17
- this.navigationService.setQueryParams({
18
- vw: tabValue ? tabValue : null,
19
- });
20
- this.tabSelect.emit(this.activeTab);
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoCardTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ChoCardTabsComponent, isStandalone: true, selector: "cho-card-tabs", inputs: { tabs: { classPropertyName: "tabs", publicName: "tabs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tabSelect: "tabSelect" }, ngImport: i0, template: `
24
- <div class="card-tabs">
25
- <ul>
26
- @for (tab of tabs(); track tab.value) {
27
- <li (click)="onSelect(tab.value)">
28
- <a
29
- class="nav-link text-active-primary"
30
- [class.active]="activeTab === tab.value">
31
- {{ tab.label }}
32
- </a>
33
- </li>
34
- }
35
- </ul>
36
- </div>
37
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
- }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoCardTabsComponent, decorators: [{
40
- type: Component,
41
- args: [{
42
- selector: 'cho-card-tabs',
43
- standalone: true,
44
- changeDetection: ChangeDetectionStrategy.OnPush,
45
- imports: [],
46
- template: `
47
- <div class="card-tabs">
48
- <ul>
49
- @for (tab of tabs(); track tab.value) {
50
- <li (click)="onSelect(tab.value)">
51
- <a
52
- class="nav-link text-active-primary"
53
- [class.active]="activeTab === tab.value">
54
- {{ tab.label }}
55
- </a>
56
- </li>
57
- }
58
- </ul>
59
- </div>
60
- `,
61
- }]
62
- }] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWNhcmQtdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbXBvbmVudHMvc3JjL2xpYi9jaG8tY2FyZC10YWJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQXVCNUUsTUFBTSxPQUFPLG9CQUFvQjtJQXJCakM7UUFzQnFCLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2pELHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRWxFLFNBQUksR0FBRyxLQUFLLEVBQTJDLENBQUM7UUFDeEQsY0FBUyxHQUFHLE1BQU0sRUFBVSxDQUFDO0tBa0JoQztJQWRHLFFBQVE7UUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxRQUFRLENBQUMsUUFBZ0I7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFFMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQztZQUNsQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUk7U0FDakMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7K0dBdEJRLG9CQUFvQjttR0FBcEIsb0JBQW9CLCtPQWhCbkI7Ozs7Ozs7Ozs7Ozs7O0tBY1Q7OzRGQUVRLG9CQUFvQjtrQkFyQmhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7OztLQWNUO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2hvTmF2aWdhdGlvblNlcnZpY2UsIENob1JvdXRlUGFyYW1TZXJ2aWNlIH0gZnJvbSAnbmd4LWNoby1jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2Noby1jYXJkLXRhYnMnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgaW1wb3J0czogW10sXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRhYnNcIj5cclxuICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgQGZvciAodGFiIG9mIHRhYnMoKTsgdHJhY2sgdGFiLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIChjbGljayk9XCJvblNlbGVjdCh0YWIudmFsdWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT09IHRhYi52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGFiLmxhYmVsIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENob0NhcmRUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmF2aWdhdGlvblNlcnZpY2UgPSBpbmplY3QoQ2hvTmF2aWdhdGlvblNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZVBhcmFtU2VydmljZSA9IGluamVjdChDaG9Sb3V0ZVBhcmFtU2VydmljZSk7XHJcblxyXG4gICAgdGFicyA9IGlucHV0PEFycmF5PHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9Pj4oKTtcclxuICAgIHRhYlNlbGVjdCA9IG91dHB1dDxzdHJpbmc+KCk7XHJcblxyXG4gICAgYWN0aXZlVGFiOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVUYWIgPSB0aGlzLnJvdXRlUGFyYW1TZXJ2aWNlLmdldFF1ZXJ5UGFyYW1ldGVyVmFsdWUoJ3Z3JykgfHwgJyc7XHJcbiAgICAgICAgdGhpcy50YWJTZWxlY3QuZW1pdCh0aGlzLmFjdGl2ZVRhYik7XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWxlY3QodGFiVmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlVGFiID0gdGFiVmFsdWU7XHJcblxyXG4gICAgICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2Uuc2V0UXVlcnlQYXJhbXMoe1xyXG4gICAgICAgICAgICB2dzogdGFiVmFsdWUgPyB0YWJWYWx1ZSA6IG51bGwsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMudGFiU2VsZWN0LmVtaXQodGhpcy5hY3RpdmVUYWIpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,18 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ChoCardToolbarComponent {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoCardToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChoCardToolbarComponent, isStandalone: true, selector: "cho-card-toolbar", host: { classAttribute: "card-toolbar" }, ngImport: i0, template: ` <ng-content /> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6
- }
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoCardToolbarComponent, decorators: [{
8
- type: Component,
9
- args: [{
10
- selector: 'cho-card-toolbar',
11
- standalone: true,
12
- changeDetection: ChangeDetectionStrategy.OnPush,
13
- imports: [],
14
- host: { class: 'card-toolbar' },
15
- template: ` <ng-content /> `,
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWNhcmQtdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbXBvbmVudHMvc3JjL2xpYi9jaG8tY2FyZC10b29sYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVVuRSxNQUFNLE9BQU8sdUJBQXVCOytHQUF2Qix1QkFBdUI7bUdBQXZCLHVCQUF1QixzSEFGdEIsa0JBQWtCOzs0RkFFbkIsdUJBQXVCO2tCQVJuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRTtvQkFDL0IsUUFBUSxFQUFFLGtCQUFrQjtpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY2hvLWNhcmQtdG9vbGJhcicsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBpbXBvcnRzOiBbXSxcclxuICAgIGhvc3Q6IHsgY2xhc3M6ICdjYXJkLXRvb2xiYXInIH0sXHJcbiAgICB0ZW1wbGF0ZTogYCA8bmctY29udGVudCAvPiBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hvQ2FyZFRvb2xiYXJDb21wb25lbnQge31cclxuIl19