@origostudio/origo-design 0.0.37 → 0.0.39
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/CHANGELOG.md +3 -2
- package/dist/packages/angular-renderer/CHANGELOG.md +21 -0
- package/dist/packages/angular-renderer/package.json +7 -6
- package/dist/packages/angular-renderer/src/adapters/web/experience-adapter.service.d.ts +2 -0
- package/dist/packages/angular-renderer/src/adapters/web/experience-adapter.service.js +11 -0
- package/dist/packages/angular-renderer/src/adapters/web/experience-adapter.service.js.map +1 -1
- package/dist/packages/angular-renderer/src/components/primitives/breadcrumbs/breadcrumbs.component.js.map +1 -1
- package/dist/packages/angular-renderer/src/components/primitives/chip/chip.component.js.map +1 -1
- package/dist/packages/angular-renderer/src/components/primitives/switch/switch.component.js.map +1 -1
- package/dist/packages/angular-renderer/src/devtools/devtools-bridge.js +2 -0
- package/dist/packages/angular-renderer/src/devtools/devtools-bridge.js.map +1 -1
- package/dist/packages/angular-renderer/src/index.d.ts +1 -0
- package/dist/packages/angular-renderer/src/index.js +1 -0
- package/dist/packages/angular-renderer/src/index.js.map +1 -1
- package/dist/packages/angular-renderer/src/lib/primitives.provider.js +26 -20
- package/dist/packages/angular-renderer/src/lib/primitives.provider.js.map +1 -1
- package/dist/packages/cli/CHANGELOG.md +8 -0
- package/dist/packages/cli/package.json +2 -2
- package/dist/packages/cli/package.json.bak +2 -2
- package/dist/packages/core/CHANGELOG.md +14 -0
- package/dist/packages/core/package.json +2 -2
- package/dist/packages/core/package.json.bak +2 -2
- package/dist/packages/design-tokens/CHANGELOG.md +8 -0
- package/dist/packages/design-tokens/package.json +1 -1
- package/dist/packages/playground/browser/{chunk-iSLqhP12.js → chunk-B1z-uVFi.js} +1 -1
- package/dist/packages/playground/browser/{chunk-BxusNwwt.js → chunk-BGZXpmBQ.js} +1 -1
- package/dist/packages/playground/browser/{chunk-B0HlAWSR.js → chunk-ByrswSrM.js} +1 -1
- package/dist/packages/playground/browser/{chunk-rK1aqCb7.js → chunk-CFbPXTNr.js} +1 -1
- package/dist/packages/playground/browser/{chunk-Dd9ht4SU.js → chunk-CSecAR9q.js} +1 -1
- package/dist/packages/playground/browser/{chunk-BkTn1FbH.js → chunk-D-8Zr5zg.js} +1 -1
- package/dist/packages/playground/browser/{chunk-DbylCYBP.js → chunk-D2kcCG-o.js} +1 -1
- package/dist/packages/playground/browser/{chunk-zg5PqW0l.js → chunk-DQx5lQqG.js} +1 -1
- package/dist/packages/playground/browser/{chunk-DXxUFvGw.js → chunk-Dac2dp5T.js} +1 -1
- package/dist/packages/playground/browser/{chunk-CXHFI87Z.js → chunk-DiZkmwKl.js} +1 -1
- package/dist/packages/playground/browser/{chunk-BI1AmKI_.js → chunk-DwU-a89u.js} +1 -1
- package/dist/packages/playground/browser/{chunk-D2bm1B8y.js → chunk-JF8ksHJn.js} +1 -1
- package/dist/packages/playground/browser/{chunk-ZeGfaGFy.js → chunk-_TRKH8kG.js} +1 -1
- package/dist/packages/playground/browser/{chunk-DT7GQcHj.js → chunk-e5kB8V0v.js} +1 -1
- package/dist/packages/playground/browser/{chunk-94bHXqp1.js → chunk-zJLityDb.js} +1 -1
- package/dist/packages/playground/browser/index.html +1 -1
- package/dist/packages/playground/browser/main-33XWGVNC.js +731 -0
- package/eslint.config.js +2 -1
- package/generate_prompts.ps1 +10 -0
- package/package.json +3 -2
- package/packages/angular-renderer/CHANGELOG.md +21 -0
- package/packages/angular-renderer/package.json +7 -6
- package/packages/angular-renderer/playwright/.cache/assets/adapter-iYml3Kk6.js +121 -0
- package/packages/angular-renderer/playwright/.cache/assets/adapter-iYml3Kk6.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/breadcrumbs.component-DqZwZwH1.js +200 -0
- package/packages/angular-renderer/playwright/.cache/assets/breadcrumbs.component-DqZwZwH1.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/button.component-Dnc1mP3D.js +112 -0
- package/packages/angular-renderer/playwright/.cache/assets/button.component-Dnc1mP3D.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/card.component-0WWaDbUV.js +180 -0
- package/packages/angular-renderer/playwright/.cache/assets/card.component-0WWaDbUV.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/checkbox.component-JGpevUFG.js +150 -0
- package/packages/angular-renderer/playwright/.cache/assets/checkbox.component-JGpevUFG.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/chip.component-DHGk3h8k.js +121 -0
- package/packages/angular-renderer/playwright/.cache/assets/chip.component-DHGk3h8k.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/data-grid.component-DDZZ4enP.js +352 -0
- package/packages/angular-renderer/playwright/.cache/assets/data-grid.component-DDZZ4enP.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/experience-adapter.service-CJxHLpWN.js +38 -0
- package/packages/angular-renderer/playwright/.cache/assets/experience-adapter.service-CJxHLpWN.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/form-field.component-DZA0NfB7.js +184 -0
- package/packages/angular-renderer/playwright/.cache/assets/form-field.component-DZA0NfB7.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/hbox.component-D5YHn6Vu.js +125 -0
- package/packages/angular-renderer/playwright/.cache/assets/hbox.component-D5YHn6Vu.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/index-DRoHZv2r.js +92806 -0
- package/packages/angular-renderer/playwright/.cache/assets/index-DRoHZv2r.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/label.component-DDKtYvrS.js +105 -0
- package/packages/angular-renderer/playwright/.cache/assets/label.component-DDKtYvrS.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/list.component-DSP5wzI4.js +195 -0
- package/packages/angular-renderer/playwright/.cache/assets/list.component-DSP5wzI4.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/radio-group.component-BzVciXZu.js +171 -0
- package/packages/angular-renderer/playwright/.cache/assets/radio-group.component-BzVciXZu.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/select.component-BC_aoLNt.js +180 -0
- package/packages/angular-renderer/playwright/.cache/assets/select.component-BC_aoLNt.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/sidebar.component-CY_vKSCu.js +217 -0
- package/packages/angular-renderer/playwright/.cache/assets/sidebar.component-CY_vKSCu.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/switch.component-BtfhJxLp.js +144 -0
- package/packages/angular-renderer/playwright/.cache/assets/switch.component-BtfhJxLp.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/tabs.component-DGcKkhH_.js +218 -0
- package/packages/angular-renderer/playwright/.cache/assets/tabs.component-DGcKkhH_.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/text-input.component-IyHHKpW-.js +121 -0
- package/packages/angular-renderer/playwright/.cache/assets/text-input.component-IyHHKpW-.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/textarea.component-Bpvh81yV.js +141 -0
- package/packages/angular-renderer/playwright/.cache/assets/textarea.component-Bpvh81yV.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/assets/vbox.component-DRe59FUF.js +127 -0
- package/packages/angular-renderer/playwright/.cache/assets/vbox.component-DRe59FUF.js.map +1 -0
- package/packages/angular-renderer/playwright/.cache/index.html +11 -0
- package/packages/angular-renderer/playwright/.cache/metainfo.json +5416 -0
- package/packages/angular-renderer/playwright/index.html +11 -0
- package/packages/angular-renderer/playwright/index.ts +1 -0
- package/packages/angular-renderer/playwright-ct.config.ts +13 -3
- package/packages/angular-renderer/src/adapters/web/experience-adapter.service.ts +15 -1
- package/packages/angular-renderer/src/components/primitives/breadcrumbs/breadcrumbs.component.pw.ts +37 -0
- package/packages/angular-renderer/src/components/primitives/breadcrumbs/breadcrumbs.component.ts +0 -1
- package/packages/angular-renderer/src/components/primitives/button/button.component.pw.ts +17 -4
- package/packages/angular-renderer/src/components/primitives/card/card.component.pw.ts +32 -0
- package/packages/angular-renderer/src/components/primitives/checkbox/checkbox.component.pw.ts +38 -0
- package/packages/angular-renderer/src/components/primitives/chip/chip.component.pw.ts +56 -0
- package/packages/angular-renderer/src/components/primitives/chip/chip.component.ts +1 -1
- package/packages/angular-renderer/src/components/primitives/data-grid/data-grid.component.pw.ts +37 -0
- package/packages/angular-renderer/src/components/primitives/form-field/form-field.component.pw.ts +38 -0
- package/packages/angular-renderer/src/components/primitives/hbox/hbox.component.pw.ts +32 -0
- package/packages/angular-renderer/src/components/primitives/label/label.component.pw.ts +32 -0
- package/packages/angular-renderer/src/components/primitives/list/list.component.pw.ts +37 -0
- package/packages/angular-renderer/src/components/primitives/radio-group/radio-group.component.pw.ts +38 -0
- package/packages/angular-renderer/src/components/primitives/select/select.component.pw.ts +32 -0
- package/packages/angular-renderer/src/components/primitives/sidebar/sidebar.component.pw.ts +37 -0
- package/packages/angular-renderer/src/components/primitives/switch/switch.component.pw.ts +62 -0
- package/packages/angular-renderer/src/components/primitives/switch/switch.component.ts +1 -1
- package/packages/angular-renderer/src/components/primitives/tabs/tabs.component.pw.ts +37 -0
- package/packages/angular-renderer/src/components/primitives/text-input/text-input.component.pw.ts +16 -7
- package/packages/angular-renderer/src/components/primitives/textarea/textarea.component.pw.ts +38 -0
- package/packages/angular-renderer/src/components/primitives/vbox/vbox.component.pw.ts +17 -4
- package/packages/angular-renderer/src/devtools/devtools-bridge.ts +2 -0
- package/packages/angular-renderer/src/index.ts +1 -0
- package/packages/angular-renderer/src/lib/primitives.provider.ts +29 -21
- package/packages/cli/CHANGELOG.md +8 -0
- package/packages/cli/package.json +2 -2
- package/packages/core/CHANGELOG.md +14 -0
- package/packages/core/package.json +2 -2
- package/packages/design-tokens/CHANGELOG.md +8 -0
- package/packages/design-tokens/package.json +1 -1
- package/packages/devtools/CHANGELOG.md +8 -0
- package/packages/devtools/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/deps___vitest_vm__/_metadata.json +3 -3
- package/packages/devtools/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/packages/devtools/package.json +1 -1
- package/packages/playground/CHANGELOG.md +14 -0
- package/packages/playground/netlify.toml +6 -0
- package/packages/playground/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/deps___vitest_vm__/_metadata.json +3 -3
- package/packages/playground/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/packages/playground/package.json +3 -3
- package/packages/playground/src/app/app.config.ts +6 -1
- package/packages/playground/src/preview/preview-root.component.ts +173 -12
- package/dist/packages/playground/browser/main-BBGOLU74.js +0 -711
- package/packages/angular-renderer/src/components/primitives/primitives.a11y.pw.ts +0 -382
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ɵ as __getCurrentView,
|
|
3
|
+
a as __domElementStart,
|
|
4
|
+
b as __domListener,
|
|
5
|
+
c as __restoreView,
|
|
6
|
+
d as __nextContext,
|
|
7
|
+
e as __resetView,
|
|
8
|
+
f as __text,
|
|
9
|
+
g as __domElementEnd,
|
|
10
|
+
j as __classProp,
|
|
11
|
+
k as __attribute,
|
|
12
|
+
h as __advance,
|
|
13
|
+
w as __textInterpolate1,
|
|
14
|
+
C as __pipe,
|
|
15
|
+
i as __textInterpolate,
|
|
16
|
+
E as __pipeBind1,
|
|
17
|
+
r as __repeaterCreate,
|
|
18
|
+
t as __repeater,
|
|
19
|
+
v as __domProperty,
|
|
20
|
+
F as __textInterpolate2,
|
|
21
|
+
n as input,
|
|
22
|
+
o as inject,
|
|
23
|
+
D as DomSanitizer,
|
|
24
|
+
G as signal,
|
|
25
|
+
p as computed,
|
|
26
|
+
S as SecurityContext,
|
|
27
|
+
q as __defineComponent,
|
|
28
|
+
J as JsonPipe,
|
|
29
|
+
l as __conditionalCreate,
|
|
30
|
+
m as __conditional,
|
|
31
|
+
} from './index-DRoHZv2r.js';
|
|
32
|
+
import { W as WebExperienceAdapterService } from './experience-adapter.service-CJxHLpWN.js';
|
|
33
|
+
|
|
34
|
+
const _forTrack0 = ($index, $item) => $item.key;
|
|
35
|
+
const _forTrack1 = ($index, $item) => $item['id'] ?? $index;
|
|
36
|
+
function DataGridComponent_For_5_Template(rf, ctx) {
|
|
37
|
+
if (rf & 1) {
|
|
38
|
+
const _r1 = __getCurrentView();
|
|
39
|
+
__domElementStart(0, 'th', 4);
|
|
40
|
+
__domListener('click', function DataGridComponent_For_5_Template_th_click_0_listener() {
|
|
41
|
+
const col_r2 = __restoreView(_r1).$implicit;
|
|
42
|
+
const ctx_r2 = __nextContext();
|
|
43
|
+
return __resetView(col_r2.sortable ? ctx_r2.onSort(col_r2.key) : null);
|
|
44
|
+
})('keydown.enter', function DataGridComponent_For_5_Template_th_keydown_enter_0_listener() {
|
|
45
|
+
const col_r2 = __restoreView(_r1).$implicit;
|
|
46
|
+
const ctx_r2 = __nextContext();
|
|
47
|
+
return __resetView(col_r2.sortable ? ctx_r2.onSort(col_r2.key) : null);
|
|
48
|
+
})('keydown.space', function DataGridComponent_For_5_Template_th_keydown_space_0_listener() {
|
|
49
|
+
const col_r2 = __restoreView(_r1).$implicit;
|
|
50
|
+
const ctx_r2 = __nextContext();
|
|
51
|
+
return __resetView(col_r2.sortable ? ctx_r2.onSort(col_r2.key) : null);
|
|
52
|
+
});
|
|
53
|
+
__text(1);
|
|
54
|
+
__domElementEnd();
|
|
55
|
+
}
|
|
56
|
+
if (rf & 2) {
|
|
57
|
+
const col_r2 = ctx.$implicit;
|
|
58
|
+
const ctx_r2 = __nextContext();
|
|
59
|
+
__classProp('sortable', col_r2.sortable);
|
|
60
|
+
__attribute(
|
|
61
|
+
'aria-sort',
|
|
62
|
+
col_r2.sortable && ctx_r2.currentSortKey() === col_r2.key
|
|
63
|
+
? ctx_r2.sortDir() === 'asc'
|
|
64
|
+
? 'ascending'
|
|
65
|
+
: 'descending'
|
|
66
|
+
: null
|
|
67
|
+
)('tabindex', col_r2.sortable ? 0 : null)('role', col_r2.sortable ? 'button' : null);
|
|
68
|
+
__advance();
|
|
69
|
+
__textInterpolate1(' ', col_r2.label, ' ');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function DataGridComponent_For_8_For_2_Template(rf, ctx) {
|
|
73
|
+
if (rf & 1) {
|
|
74
|
+
__domElementStart(0, 'td');
|
|
75
|
+
__text(1);
|
|
76
|
+
__pipe(2, 'json');
|
|
77
|
+
__domElementEnd();
|
|
78
|
+
}
|
|
79
|
+
if (rf & 2) {
|
|
80
|
+
const col_r10 = ctx.$implicit;
|
|
81
|
+
const row_r6 = __nextContext().$implicit;
|
|
82
|
+
const ctx_r2 = __nextContext();
|
|
83
|
+
__advance();
|
|
84
|
+
__textInterpolate(
|
|
85
|
+
ctx_r2.isObject(row_r6[col_r10.key])
|
|
86
|
+
? __pipeBind1(2, 1, row_r6[col_r10.key])
|
|
87
|
+
: row_r6[col_r10.key]
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function DataGridComponent_For_8_Template(rf, ctx) {
|
|
92
|
+
if (rf & 1) {
|
|
93
|
+
const _r4 = __getCurrentView();
|
|
94
|
+
__domElementStart(0, 'tr', 5);
|
|
95
|
+
__domListener('click', function DataGridComponent_For_8_Template_tr_click_0_listener() {
|
|
96
|
+
const ctx_r4 = __restoreView(_r4);
|
|
97
|
+
const row_r6 = ctx_r4.$implicit;
|
|
98
|
+
const $index_r7 = ctx_r4.$index;
|
|
99
|
+
const ctx_r2 = __nextContext();
|
|
100
|
+
return __resetView(
|
|
101
|
+
ctx_r2.onRowSelect(row_r6['id'] ?? row_r6['key'] ?? row_r6['_id'] ?? $index_r7)
|
|
102
|
+
);
|
|
103
|
+
})('keydown.enter', function DataGridComponent_For_8_Template_tr_keydown_enter_0_listener() {
|
|
104
|
+
const ctx_r7 = __restoreView(_r4);
|
|
105
|
+
const row_r6 = ctx_r7.$implicit;
|
|
106
|
+
const $index_r7 = ctx_r7.$index;
|
|
107
|
+
const ctx_r2 = __nextContext();
|
|
108
|
+
return __resetView(
|
|
109
|
+
ctx_r2.onRowSelect(row_r6['id'] ?? row_r6['key'] ?? row_r6['_id'] ?? $index_r7)
|
|
110
|
+
);
|
|
111
|
+
})('keydown.space', function DataGridComponent_For_8_Template_tr_keydown_space_0_listener() {
|
|
112
|
+
const ctx_r8 = __restoreView(_r4);
|
|
113
|
+
const row_r6 = ctx_r8.$implicit;
|
|
114
|
+
const $index_r7 = ctx_r8.$index;
|
|
115
|
+
const ctx_r2 = __nextContext();
|
|
116
|
+
return __resetView(
|
|
117
|
+
ctx_r2.onRowSelect(row_r6['id'] ?? row_r6['key'] ?? row_r6['_id'] ?? $index_r7)
|
|
118
|
+
);
|
|
119
|
+
});
|
|
120
|
+
__repeaterCreate(1, DataGridComponent_For_8_For_2_Template, 3, 3, 'td', null, _forTrack0);
|
|
121
|
+
__domElementEnd();
|
|
122
|
+
}
|
|
123
|
+
if (rf & 2) {
|
|
124
|
+
const ctx_r2 = __nextContext();
|
|
125
|
+
__advance();
|
|
126
|
+
__repeater(ctx_r2.computedColumns());
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
function DataGridComponent_Conditional_9_Template(rf, ctx) {
|
|
130
|
+
if (rf & 1) {
|
|
131
|
+
const _r11 = __getCurrentView();
|
|
132
|
+
__domElementStart(0, 'div', 3)(1, 'button', 6);
|
|
133
|
+
__domListener(
|
|
134
|
+
'click',
|
|
135
|
+
function DataGridComponent_Conditional_9_Template_button_click_1_listener() {
|
|
136
|
+
__restoreView(_r11);
|
|
137
|
+
const ctx_r2 = __nextContext();
|
|
138
|
+
return __resetView(ctx_r2.onPageChange(ctx_r2.computedCurrentPage() - 1));
|
|
139
|
+
}
|
|
140
|
+
);
|
|
141
|
+
__text(2, ' Previous ');
|
|
142
|
+
__domElementEnd();
|
|
143
|
+
__domElementStart(3, 'span', 7);
|
|
144
|
+
__text(4);
|
|
145
|
+
__domElementEnd();
|
|
146
|
+
__domElementStart(5, 'button', 8);
|
|
147
|
+
__domListener(
|
|
148
|
+
'click',
|
|
149
|
+
function DataGridComponent_Conditional_9_Template_button_click_5_listener() {
|
|
150
|
+
__restoreView(_r11);
|
|
151
|
+
const ctx_r2 = __nextContext();
|
|
152
|
+
return __resetView(ctx_r2.onPageChange(ctx_r2.computedCurrentPage() + 1));
|
|
153
|
+
}
|
|
154
|
+
);
|
|
155
|
+
__text(6, ' Next ');
|
|
156
|
+
__domElementEnd()();
|
|
157
|
+
}
|
|
158
|
+
if (rf & 2) {
|
|
159
|
+
const ctx_r2 = __nextContext();
|
|
160
|
+
__advance();
|
|
161
|
+
__domProperty('disabled', ctx_r2.computedCurrentPage() <= 1 || ctx_r2.computedDisabled());
|
|
162
|
+
__advance(3);
|
|
163
|
+
__textInterpolate2(
|
|
164
|
+
' Page ',
|
|
165
|
+
ctx_r2.computedCurrentPage(),
|
|
166
|
+
' of ',
|
|
167
|
+
ctx_r2.computedTotalPages(),
|
|
168
|
+
' '
|
|
169
|
+
);
|
|
170
|
+
__advance();
|
|
171
|
+
__domProperty(
|
|
172
|
+
'disabled',
|
|
173
|
+
ctx_r2.computedCurrentPage() >= ctx_r2.computedTotalPages() || ctx_r2.computedDisabled()
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
class DataGridComponent {
|
|
178
|
+
static contractSchema = {
|
|
179
|
+
columns: 'array',
|
|
180
|
+
rows: 'array',
|
|
181
|
+
pageSize: 'number',
|
|
182
|
+
currentPage: 'number',
|
|
183
|
+
totalRows: 'number',
|
|
184
|
+
disabled: 'boolean',
|
|
185
|
+
};
|
|
186
|
+
static strictContract = false;
|
|
187
|
+
contract = input.required(
|
|
188
|
+
...(false ? [{ debugName: 'contract' }] : /* istanbul ignore next */ [])
|
|
189
|
+
);
|
|
190
|
+
experienceAdapter = inject(WebExperienceAdapterService);
|
|
191
|
+
sanitizer = inject(DomSanitizer);
|
|
192
|
+
// Track sort direction locally for toggling
|
|
193
|
+
sortDir = signal('asc', ...(false ? [{ debugName: 'sortDir' }] : /* istanbul ignore next */ []));
|
|
194
|
+
currentSortKey = signal(
|
|
195
|
+
null,
|
|
196
|
+
...(false ? [{ debugName: 'currentSortKey' }] : /* istanbul ignore next */ [])
|
|
197
|
+
);
|
|
198
|
+
computedColumns = computed(
|
|
199
|
+
() => {
|
|
200
|
+
const cols = this.contract().props?.columns;
|
|
201
|
+
return Array.isArray(cols)
|
|
202
|
+
? cols.filter(c => c != null && c.key != null && c.label != null)
|
|
203
|
+
: [];
|
|
204
|
+
},
|
|
205
|
+
...(false ? [{ debugName: 'computedColumns' }] : /* istanbul ignore next */ [])
|
|
206
|
+
);
|
|
207
|
+
computedRows = computed(
|
|
208
|
+
() => {
|
|
209
|
+
const rows = this.contract().props?.rows;
|
|
210
|
+
if (!Array.isArray(rows)) return [];
|
|
211
|
+
const validRows = rows.filter(r => r != null);
|
|
212
|
+
const pageSize = this.contract().props?.pageSize;
|
|
213
|
+
let currentPage = this.contract().props?.currentPage;
|
|
214
|
+
if (typeof pageSize !== 'number' || pageSize <= 0) {
|
|
215
|
+
return validRows.slice(0, 100);
|
|
216
|
+
}
|
|
217
|
+
if (typeof currentPage !== 'number' || currentPage < 1) {
|
|
218
|
+
currentPage = 1;
|
|
219
|
+
}
|
|
220
|
+
const startIndex = (currentPage - 1) * pageSize;
|
|
221
|
+
return validRows.slice(startIndex, startIndex + pageSize);
|
|
222
|
+
},
|
|
223
|
+
...(false ? [{ debugName: 'computedRows' }] : /* istanbul ignore next */ [])
|
|
224
|
+
);
|
|
225
|
+
computedTotalRows = computed(
|
|
226
|
+
() => {
|
|
227
|
+
const totalRows = this.contract().props?.totalRows;
|
|
228
|
+
if (typeof totalRows === 'number' && totalRows >= 0) return totalRows;
|
|
229
|
+
const rows = this.contract().props?.rows;
|
|
230
|
+
return Array.isArray(rows) ? rows.length : 0;
|
|
231
|
+
},
|
|
232
|
+
...(false ? [{ debugName: 'computedTotalRows' }] : /* istanbul ignore next */ [])
|
|
233
|
+
);
|
|
234
|
+
computedCurrentPage = computed(
|
|
235
|
+
() => {
|
|
236
|
+
const cp = this.contract().props?.currentPage;
|
|
237
|
+
return typeof cp === 'number' && cp >= 1 ? cp : 1;
|
|
238
|
+
},
|
|
239
|
+
...(false ? [{ debugName: 'computedCurrentPage' }] : /* istanbul ignore next */ [])
|
|
240
|
+
);
|
|
241
|
+
computedTotalPages = computed(
|
|
242
|
+
() => {
|
|
243
|
+
const pageSize = this.contract().props?.pageSize;
|
|
244
|
+
if (typeof pageSize !== 'number' || pageSize <= 0) return 1;
|
|
245
|
+
return Math.max(1, Math.ceil(this.computedTotalRows() / pageSize));
|
|
246
|
+
},
|
|
247
|
+
...(false ? [{ debugName: 'computedTotalPages' }] : /* istanbul ignore next */ [])
|
|
248
|
+
);
|
|
249
|
+
computedDisabled = computed(
|
|
250
|
+
() => !!this.contract().props?.disabled,
|
|
251
|
+
...(false ? [{ debugName: 'computedDisabled' }] : /* istanbul ignore next */ [])
|
|
252
|
+
);
|
|
253
|
+
computedAriaLabel = computed(
|
|
254
|
+
() => {
|
|
255
|
+
const label = this.contract().props?.['aria-label'];
|
|
256
|
+
return label !== void 0 && label !== null ? String(label) : void 0;
|
|
257
|
+
},
|
|
258
|
+
...(false ? [{ debugName: 'computedAriaLabel' }] : /* istanbul ignore next */ [])
|
|
259
|
+
);
|
|
260
|
+
computedAriaDescribedBy = computed(
|
|
261
|
+
() => {
|
|
262
|
+
const desc = this.contract().props?.['aria-describedby'];
|
|
263
|
+
return desc !== void 0 && desc !== null ? String(desc) : void 0;
|
|
264
|
+
},
|
|
265
|
+
...(false ? [{ debugName: 'computedAriaDescribedBy' }] : /* istanbul ignore next */ [])
|
|
266
|
+
);
|
|
267
|
+
onSort(key) {
|
|
268
|
+
if (this.computedDisabled()) return;
|
|
269
|
+
if (this.currentSortKey() === key) {
|
|
270
|
+
this.sortDir.update(d => (d === 'asc' ? 'desc' : 'asc'));
|
|
271
|
+
} else {
|
|
272
|
+
this.currentSortKey.set(key);
|
|
273
|
+
this.sortDir.set('desc');
|
|
274
|
+
}
|
|
275
|
+
this.experienceAdapter.updateState(this.contract().id, 'sortKey', key);
|
|
276
|
+
this.experienceAdapter.updateState(this.contract().id, 'sortDir', this.sortDir());
|
|
277
|
+
}
|
|
278
|
+
onPageChange(page) {
|
|
279
|
+
if (this.computedDisabled() || !Number.isInteger(page) || page < 1) return;
|
|
280
|
+
this.experienceAdapter.updateState(this.contract().id, 'currentPage', page);
|
|
281
|
+
}
|
|
282
|
+
onRowSelect(rowId) {
|
|
283
|
+
if (this.computedDisabled() || rowId == null) return;
|
|
284
|
+
const rawValue = String(rowId);
|
|
285
|
+
const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, rawValue);
|
|
286
|
+
const sanitizedValue =
|
|
287
|
+
sanitized != null && sanitized !== '' ? sanitized : rawValue.replace(/[<>]/g, '');
|
|
288
|
+
this.experienceAdapter.updateState(this.contract().id, 'selectedRow', sanitizedValue);
|
|
289
|
+
}
|
|
290
|
+
isObject(val) {
|
|
291
|
+
return typeof val === 'object' && val !== null;
|
|
292
|
+
}
|
|
293
|
+
static ɵfac = function DataGridComponent_Factory(__ngFactoryType__) {
|
|
294
|
+
return new (__ngFactoryType__ || DataGridComponent)();
|
|
295
|
+
};
|
|
296
|
+
static ɵcmp = /* @__PURE__ */ __defineComponent({
|
|
297
|
+
type: DataGridComponent,
|
|
298
|
+
selectors: [['origo-data-grid']],
|
|
299
|
+
hostVars: 5,
|
|
300
|
+
hostBindings: function DataGridComponent_HostBindings(rf, ctx) {
|
|
301
|
+
if (rf & 2) {
|
|
302
|
+
__attribute('data-testid', ctx.contract().id)('aria-label', ctx.computedAriaLabel())(
|
|
303
|
+
'aria-describedby',
|
|
304
|
+
ctx.computedAriaDescribedBy()
|
|
305
|
+
);
|
|
306
|
+
__classProp('origo-data-grid', true);
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
inputs: { contract: [1, 'contract'] },
|
|
310
|
+
decls: 10,
|
|
311
|
+
vars: 4,
|
|
312
|
+
consts: [
|
|
313
|
+
[1, 'origo-data-grid-container'],
|
|
314
|
+
[3, 'sortable'],
|
|
315
|
+
['tabindex', '0', 'role', 'button'],
|
|
316
|
+
[1, 'origo-data-grid-pagination'],
|
|
317
|
+
[3, 'click', 'keydown.enter', 'keydown.space'],
|
|
318
|
+
['tabindex', '0', 'role', 'button', 3, 'click', 'keydown.enter', 'keydown.space'],
|
|
319
|
+
['aria-label', 'Previous Page', 3, 'click', 'disabled'],
|
|
320
|
+
[1, 'page-info'],
|
|
321
|
+
['aria-label', 'Next Page', 3, 'click', 'disabled'],
|
|
322
|
+
],
|
|
323
|
+
template: function DataGridComponent_Template(rf, ctx) {
|
|
324
|
+
if (rf & 1) {
|
|
325
|
+
__domElementStart(0, 'div', 0)(1, 'table')(2, 'thead')(3, 'tr');
|
|
326
|
+
__repeaterCreate(4, DataGridComponent_For_5_Template, 2, 6, 'th', 1, _forTrack0);
|
|
327
|
+
__domElementEnd()();
|
|
328
|
+
__domElementStart(6, 'tbody');
|
|
329
|
+
__repeaterCreate(7, DataGridComponent_For_8_Template, 3, 0, 'tr', 2, _forTrack1);
|
|
330
|
+
__domElementEnd()();
|
|
331
|
+
__conditionalCreate(9, DataGridComponent_Conditional_9_Template, 7, 4, 'div', 3);
|
|
332
|
+
__domElementEnd();
|
|
333
|
+
}
|
|
334
|
+
if (rf & 2) {
|
|
335
|
+
__classProp('disabled', ctx.computedDisabled());
|
|
336
|
+
__attribute('aria-describedby', ctx.computedAriaDescribedBy());
|
|
337
|
+
__advance(4);
|
|
338
|
+
__repeater(ctx.computedColumns());
|
|
339
|
+
__advance(3);
|
|
340
|
+
__repeater(ctx.computedRows());
|
|
341
|
+
__advance(2);
|
|
342
|
+
__conditional(ctx.computedTotalRows() > 0 ? 9 : -1);
|
|
343
|
+
}
|
|
344
|
+
},
|
|
345
|
+
dependencies: [JsonPipe],
|
|
346
|
+
encapsulation: 3,
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
/* @__PURE__ */ (() => {})();
|
|
350
|
+
|
|
351
|
+
export { DataGridComponent };
|
|
352
|
+
//# sourceMappingURL=data-grid.component-DDZZ4enP.js.map
|
package/packages/angular-renderer/playwright/.cache/assets/data-grid.component-DDZZ4enP.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-grid.component-DDZZ4enP.js","sources":["../../../src/components/primitives/data-grid/data-grid.component.ts"],"sourcesContent":["import {\n Component,\n input,\n ChangeDetectionStrategy,\n computed,\n ViewEncapsulation,\n inject,\n SecurityContext,\n signal,\n} from '@angular/core';\nimport { JsonPipe } from '@angular/common';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { InteractionContract } from '@origo/core';\nimport { OrigoAdapter } from '../../../adapters/web/adapter';\nimport { WebExperienceAdapterService } from '../../../adapters/web/experience-adapter.service';\n\nexport interface DataGridProps {\n columns?: Array<{ key: string; label: string; sortable?: boolean }>;\n rows?: Array<Record<string, unknown>>;\n pageSize?: number;\n currentPage?: number;\n totalRows?: number;\n disabled?: boolean;\n 'aria-label'?: string;\n 'aria-describedby'?: string;\n}\n\n@Component({\n selector: 'origo-data-grid',\n standalone: true,\n imports: [JsonPipe],\n templateUrl: './data-grid.component.html',\n styleUrls: ['./data-grid.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.ShadowDom,\n host: {\n '[class.origo-data-grid]': 'true',\n '[attr.data-testid]': 'contract().id',\n '[attr.aria-label]': 'computedAriaLabel()',\n '[attr.aria-describedby]': 'computedAriaDescribedBy()',\n },\n})\nexport class DataGridComponent implements OrigoAdapter<DataGridProps> {\n static readonly contractSchema = {\n columns: 'array',\n rows: 'array',\n pageSize: 'number',\n currentPage: 'number',\n totalRows: 'number',\n disabled: 'boolean',\n };\n static readonly strictContract = false;\n\n contract = input.required<InteractionContract<DataGridProps>>();\n\n private experienceAdapter = inject(WebExperienceAdapterService);\n private sanitizer = inject(DomSanitizer);\n\n // Track sort direction locally for toggling\n sortDir = signal<'asc' | 'desc'>('asc');\n currentSortKey = signal<string | null>(null);\n\n computedColumns = computed(() => {\n const cols = this.contract().props?.columns;\n return Array.isArray(cols)\n ? cols.filter(c => c != null && c.key != null && c.label != null)\n : [];\n });\n\n computedRows = computed(() => {\n const rows = this.contract().props?.rows;\n if (!Array.isArray(rows)) return [];\n const validRows = rows.filter(r => r != null);\n\n const pageSize = this.contract().props?.pageSize;\n let currentPage = this.contract().props?.currentPage;\n\n if (typeof pageSize !== 'number' || pageSize <= 0) {\n return validRows.slice(0, 100); // no pagination cap if pageSize is invalid, but cap at 100 to prevent huge rendering\n }\n\n if (typeof currentPage !== 'number' || currentPage < 1) {\n currentPage = 1;\n }\n\n const startIndex = (currentPage - 1) * pageSize;\n return validRows.slice(startIndex, startIndex + pageSize);\n });\n\n computedTotalRows = computed(() => {\n const totalRows = this.contract().props?.totalRows;\n if (typeof totalRows === 'number' && totalRows >= 0) return totalRows;\n const rows = this.contract().props?.rows;\n return Array.isArray(rows) ? rows.length : 0;\n });\n\n computedCurrentPage = computed(() => {\n const cp = this.contract().props?.currentPage;\n return typeof cp === 'number' && cp >= 1 ? cp : 1;\n });\n\n computedTotalPages = computed(() => {\n const pageSize = this.contract().props?.pageSize;\n if (typeof pageSize !== 'number' || pageSize <= 0) return 1;\n return Math.max(1, Math.ceil(this.computedTotalRows() / pageSize));\n });\n\n computedDisabled = computed(() => !!this.contract().props?.disabled);\n\n computedAriaLabel = computed(() => {\n const label = this.contract().props?.['aria-label'];\n return label !== undefined && label !== null ? String(label) : undefined;\n });\n\n computedAriaDescribedBy = computed(() => {\n const desc = this.contract().props?.['aria-describedby'];\n return desc !== undefined && desc !== null ? String(desc) : undefined;\n });\n\n onSort(key: string) {\n if (this.computedDisabled()) return;\n\n if (this.currentSortKey() === key) {\n this.sortDir.update(d => (d === 'asc' ? 'desc' : 'asc'));\n } else {\n this.currentSortKey.set(key);\n this.sortDir.set('desc');\n }\n\n this.experienceAdapter.updateState(this.contract().id, 'sortKey', key);\n this.experienceAdapter.updateState(this.contract().id, 'sortDir', this.sortDir());\n }\n\n onPageChange(page: number) {\n if (this.computedDisabled() || !Number.isInteger(page) || page < 1) return;\n this.experienceAdapter.updateState(this.contract().id, 'currentPage', page);\n }\n\n onRowSelect(rowId: unknown) {\n if (this.computedDisabled() || rowId == null) return;\n\n const rawValue = String(rowId);\n const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, rawValue);\n const sanitizedValue =\n sanitized != null && sanitized !== '' ? sanitized : rawValue.replace(/[<>]/g, '');\n\n this.experienceAdapter.updateState(this.contract().id, 'selectedRow', sanitizedValue);\n }\n\n isObject(val: unknown): boolean {\n return typeof val === 'object' && val !== null;\n }\n}\n"],"names":["i0.ɵɵgetCurrentView","i0.ɵɵdomElementStart","i0.ɵɵdomListener","i0.ɵɵrestoreView","i0.ɵɵnextContext","i0.ɵɵresetView","i0.ɵɵtext","i0.ɵɵdomElementEnd","i0.ɵɵclassProp","i0.ɵɵattribute","i0.ɵɵadvance","i0.ɵɵpipe","i0.ɵɵtextInterpolate","i0.ɵɵpipeBind1","i0.ɵɵrepeater","i0.ɵɵdomProperty","i0.ɵɵtextInterpolate2"],"mappings":"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"}
|
package/packages/angular-renderer/playwright/.cache/assets/experience-adapter.service-CJxHLpWN.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { G as signal, U as __defineInjectable } from './index-DRoHZv2r.js';
|
|
2
|
+
|
|
3
|
+
class WebExperienceAdapterService {
|
|
4
|
+
_state = signal({}, ...(false ? [{ debugName: '_state' }] : /* istanbul ignore next */ []));
|
|
5
|
+
getState(nodeId, property) {
|
|
6
|
+
return this._state()[nodeId]?.[property];
|
|
7
|
+
}
|
|
8
|
+
dispatchCapability(nodeId, actionName, payload) {
|
|
9
|
+
console.debug(
|
|
10
|
+
`[ExperienceAdapter] Dispatched capability '${actionName}' for node '${nodeId}'`,
|
|
11
|
+
payload
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
updateState(nodeId, property, value) {
|
|
15
|
+
console.debug(
|
|
16
|
+
`[ExperienceAdapter] Updated state for node '${nodeId}', property '${property}'`,
|
|
17
|
+
value
|
|
18
|
+
);
|
|
19
|
+
this._state.update(state => ({
|
|
20
|
+
...state,
|
|
21
|
+
[nodeId]: {
|
|
22
|
+
...state[nodeId],
|
|
23
|
+
[property]: value,
|
|
24
|
+
},
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
static ɵfac = function WebExperienceAdapterService_Factory(__ngFactoryType__) {
|
|
28
|
+
return new (__ngFactoryType__ || WebExperienceAdapterService)();
|
|
29
|
+
};
|
|
30
|
+
static ɵprov = /* @__PURE__ */ __defineInjectable({
|
|
31
|
+
token: WebExperienceAdapterService,
|
|
32
|
+
factory: WebExperienceAdapterService.ɵfac,
|
|
33
|
+
providedIn: 'root',
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { WebExperienceAdapterService as W };
|
|
38
|
+
//# sourceMappingURL=experience-adapter.service-CJxHLpWN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"experience-adapter.service-CJxHLpWN.js","sources":["../../../src/adapters/web/experience-adapter.service.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class WebExperienceAdapterService {\n private _state = signal<Record<string, Record<string, unknown>>>({});\n\n getState(nodeId: string, property: string): unknown {\n return this._state()[nodeId]?.[property];\n }\n\n dispatchCapability(nodeId: string, actionName: string, payload?: unknown): void {\n // In Phase 1, this provides the stateless translation boundary (AD-15).\n // Real dispatching logic to the core BADL engine would be wired here.\n console.debug(\n `[ExperienceAdapter] Dispatched capability '${actionName}' for node '${nodeId}'`,\n payload\n );\n }\n\n updateState(nodeId: string, property: string, value: unknown): void {\n // In Phase 1, this provides the stateless translation boundary (AD-15).\n console.debug(\n `[ExperienceAdapter] Updated state for node '${nodeId}', property '${property}'`,\n value\n );\n\n this._state.update(state => ({\n ...state,\n [nodeId]: {\n ...state[nodeId],\n [property]: value,\n },\n }));\n }\n}\n"],"names":["i0.ɵɵdefineInjectable"],"mappings":";;AAGO,MAAM,2BAAA,CAA4B;AAAA,EAC/B,MAAA,GAAS,MAAA;AAAA,IAAkD,EAAA;AAAA,IAEnE,GAAA,KAAA,GAAyB,CAAA,EAAA,SAAA,EAA2B,UAAA,CAAA;AAAA;AAAA,MAAA;AAAA;AAAA,GAAA;AAAA,EAClD,QAAA,CAAO,QAAK,QAAA,EAAe;AAC7B,IAAA,OAAA,IAAA,CAAA,MAAA,EAAA,CAAA,MAAA,IAAA,QAAA,CAAA;AAAA,EAEA;AAAA,EAGE,kBAAA,CAAQ,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA;AAGR,IAAA,OAAA,CAAA,MAAA,CAAA,2CAAA,EAAA,UAAA,CAAA,YAAA,EAAA,MAAA,KAAA,OAAA,CAAA;AAAA,EACF;AAAA,EAEA,WAAA,CAAY,MAAA,EAAgB,QAAA,EAAkB,KAAA,EAAsB;AAGhE,IAAA,OAAA,CAAA,MAAA,CAAA,4CAAA,EAAqD,MAAgB,CAAA,aAAA,EAAQ,QAAA,KAAA,KAAA,CAAA;AAC7E,IAAA,IAAA,CAAA,MAAA,CAAA,OAAA,CAAA,KAAA,MAAA;AAAA,MACF,GAAA,KAAA;AAAA,MAEK,CAAA;QACA,GAAA,MAAA,MAAA,CAAA;AAAA,QACO,CAAA,QAAA,GAAA;AAAA;KAER;EAAY;AAAA,EAEhB,OAAE,IAAA,GAAA,SAAA,mCAAA,CAAA,iBAAA,EAAA;AAAA,IAAA,OAAA,KAAA,qBAAA,2BAAA,GAAA;AAAA,EAAA,CAAA;AAAA,EACJ,OAAA,KAAA,mBAAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,2BAAA,EAAA,OAAA,EAAA,2BAAA,CAAA,IAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA;AACF;;"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import {
|
|
2
|
+
H as __element,
|
|
3
|
+
d as __nextContext,
|
|
4
|
+
I as __property,
|
|
5
|
+
K as __elementStart,
|
|
6
|
+
f as __text,
|
|
7
|
+
L as __elementEnd,
|
|
8
|
+
h as __advance,
|
|
9
|
+
i as __textInterpolate,
|
|
10
|
+
n as input,
|
|
11
|
+
M as viewChild,
|
|
12
|
+
V as ViewContainerRef,
|
|
13
|
+
p as computed,
|
|
14
|
+
q as __defineComponent,
|
|
15
|
+
l as __conditionalCreate,
|
|
16
|
+
N as __elementContainer,
|
|
17
|
+
m as __conditional,
|
|
18
|
+
k as __attribute,
|
|
19
|
+
j as __classProp,
|
|
20
|
+
O as __viewQuerySignal,
|
|
21
|
+
P as __queryAdvance,
|
|
22
|
+
} from './index-DRoHZv2r.js';
|
|
23
|
+
import { LabelComponent } from './label.component-DDKtYvrS.js';
|
|
24
|
+
|
|
25
|
+
const _c0 = ['vc'];
|
|
26
|
+
function FormFieldComponent_Conditional_0_Template(rf, ctx) {
|
|
27
|
+
if (rf & 1) {
|
|
28
|
+
__element(0, 'origo-label', 1);
|
|
29
|
+
}
|
|
30
|
+
if (rf & 2) {
|
|
31
|
+
const ctx_r0 = __nextContext();
|
|
32
|
+
__property('contract', ctx_r0.labelContract());
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function FormFieldComponent_Conditional_4_Template(rf, ctx) {
|
|
36
|
+
if (rf & 1) {
|
|
37
|
+
__elementStart(0, 'div', 3);
|
|
38
|
+
__text(1);
|
|
39
|
+
__elementEnd();
|
|
40
|
+
}
|
|
41
|
+
if (rf & 2) {
|
|
42
|
+
const ctx_r0 = __nextContext();
|
|
43
|
+
__advance();
|
|
44
|
+
__textInterpolate(ctx_r0.computedError());
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function FormFieldComponent_Conditional_5_Template(rf, ctx) {
|
|
48
|
+
if (rf & 1) {
|
|
49
|
+
__elementStart(0, 'div', 4);
|
|
50
|
+
__text(1);
|
|
51
|
+
__elementEnd();
|
|
52
|
+
}
|
|
53
|
+
if (rf & 2) {
|
|
54
|
+
const ctx_r0 = __nextContext();
|
|
55
|
+
__advance();
|
|
56
|
+
__textInterpolate(ctx_r0.computedHint());
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
class FormFieldComponent {
|
|
60
|
+
static contractSchema = {
|
|
61
|
+
label: 'string',
|
|
62
|
+
error: 'string',
|
|
63
|
+
hint: 'string',
|
|
64
|
+
required: 'boolean',
|
|
65
|
+
};
|
|
66
|
+
static strictContract = false;
|
|
67
|
+
contract = input.required(
|
|
68
|
+
...(false ? [{ debugName: 'contract' }] : /* istanbul ignore next */ [])
|
|
69
|
+
);
|
|
70
|
+
vc = viewChild.required('vc', {
|
|
71
|
+
...(false ? { debugName: 'vc' } : /* istanbul ignore next */ {}),
|
|
72
|
+
read: ViewContainerRef,
|
|
73
|
+
});
|
|
74
|
+
computedLabel = computed(
|
|
75
|
+
() => this.contract().props?.label,
|
|
76
|
+
...(false ? [{ debugName: 'computedLabel' }] : /* istanbul ignore next */ [])
|
|
77
|
+
);
|
|
78
|
+
computedError = computed(
|
|
79
|
+
() => this.contract().props?.error,
|
|
80
|
+
...(false ? [{ debugName: 'computedError' }] : /* istanbul ignore next */ [])
|
|
81
|
+
);
|
|
82
|
+
computedHint = computed(
|
|
83
|
+
() => this.contract().props?.hint,
|
|
84
|
+
...(false ? [{ debugName: 'computedHint' }] : /* istanbul ignore next */ [])
|
|
85
|
+
);
|
|
86
|
+
computedRequired = computed(
|
|
87
|
+
() => !!this.contract().props?.required,
|
|
88
|
+
...(false ? [{ debugName: 'computedRequired' }] : /* istanbul ignore next */ [])
|
|
89
|
+
);
|
|
90
|
+
computedAriaLabel = computed(
|
|
91
|
+
() => {
|
|
92
|
+
const label = this.contract().props?.['aria-label'];
|
|
93
|
+
return label !== void 0 && label !== null && String(label).trim() !== ''
|
|
94
|
+
? String(label)
|
|
95
|
+
: void 0;
|
|
96
|
+
},
|
|
97
|
+
...(false ? [{ debugName: 'computedAriaLabel' }] : /* istanbul ignore next */ [])
|
|
98
|
+
);
|
|
99
|
+
computedAriaDescribedBy = computed(
|
|
100
|
+
() => {
|
|
101
|
+
const desc = this.contract().props?.['aria-describedby'];
|
|
102
|
+
return desc !== void 0 && desc !== null && String(desc).trim() !== '' ? String(desc) : void 0;
|
|
103
|
+
},
|
|
104
|
+
...(false ? [{ debugName: 'computedAriaDescribedBy' }] : /* istanbul ignore next */ [])
|
|
105
|
+
);
|
|
106
|
+
labelContract = computed(
|
|
107
|
+
() => {
|
|
108
|
+
const parentId = this.contract().id;
|
|
109
|
+
const childId = this.contract().children?.[0]?.id;
|
|
110
|
+
return {
|
|
111
|
+
id: `${parentId}-label`,
|
|
112
|
+
type: 'Label',
|
|
113
|
+
props: {
|
|
114
|
+
text: this.computedLabel(),
|
|
115
|
+
required: this.computedRequired(),
|
|
116
|
+
for: childId,
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
},
|
|
120
|
+
...(false ? [{ debugName: 'labelContract' }] : /* istanbul ignore next */ [])
|
|
121
|
+
);
|
|
122
|
+
static ɵfac = function FormFieldComponent_Factory(__ngFactoryType__) {
|
|
123
|
+
return new (__ngFactoryType__ || FormFieldComponent)();
|
|
124
|
+
};
|
|
125
|
+
static ɵcmp = /* @__PURE__ */ __defineComponent({
|
|
126
|
+
type: FormFieldComponent,
|
|
127
|
+
selectors: [['origo-form-field']],
|
|
128
|
+
viewQuery: function FormFieldComponent_Query(rf, ctx) {
|
|
129
|
+
if (rf & 1) {
|
|
130
|
+
__viewQuerySignal(ctx.vc, _c0, 5, ViewContainerRef);
|
|
131
|
+
}
|
|
132
|
+
if (rf & 2) {
|
|
133
|
+
__queryAdvance();
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
hostVars: 8,
|
|
137
|
+
hostBindings: function FormFieldComponent_HostBindings(rf, ctx) {
|
|
138
|
+
if (rf & 2) {
|
|
139
|
+
__attribute('data-testid', ctx.contract().id ?? '')(
|
|
140
|
+
'role',
|
|
141
|
+
ctx.computedAriaLabel() ? 'group' : null
|
|
142
|
+
)('aria-label', ctx.computedAriaLabel())('aria-describedby', ctx.computedAriaDescribedBy());
|
|
143
|
+
__classProp('origo-form-field', true)('has-error', !!ctx.computedError());
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
inputs: { contract: [1, 'contract'] },
|
|
147
|
+
decls: 6,
|
|
148
|
+
vars: 2,
|
|
149
|
+
consts: [
|
|
150
|
+
['vc', ''],
|
|
151
|
+
[3, 'contract'],
|
|
152
|
+
[1, 'form-field-control'],
|
|
153
|
+
['role', 'alert', 1, 'form-field-error'],
|
|
154
|
+
[1, 'form-field-hint'],
|
|
155
|
+
],
|
|
156
|
+
template: function FormFieldComponent_Template(rf, ctx) {
|
|
157
|
+
if (rf & 1) {
|
|
158
|
+
__conditionalCreate(0, FormFieldComponent_Conditional_0_Template, 1, 1, 'origo-label', 1);
|
|
159
|
+
__elementStart(1, 'div', 2);
|
|
160
|
+
__elementContainer(2, null, 0);
|
|
161
|
+
__elementEnd();
|
|
162
|
+
__conditionalCreate(4, FormFieldComponent_Conditional_4_Template, 2, 1, 'div', 3)(
|
|
163
|
+
5,
|
|
164
|
+
FormFieldComponent_Conditional_5_Template,
|
|
165
|
+
2,
|
|
166
|
+
1,
|
|
167
|
+
'div',
|
|
168
|
+
4
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
if (rf & 2) {
|
|
172
|
+
__conditional(ctx.computedLabel() ? 0 : -1);
|
|
173
|
+
__advance(4);
|
|
174
|
+
__conditional(ctx.computedError() ? 4 : ctx.computedHint() ? 5 : -1);
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
dependencies: [LabelComponent],
|
|
178
|
+
encapsulation: 3,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
/* @__PURE__ */ (() => {})();
|
|
182
|
+
|
|
183
|
+
export { FormFieldComponent };
|
|
184
|
+
//# sourceMappingURL=form-field.component-DZA0NfB7.js.map
|
package/packages/angular-renderer/playwright/.cache/assets/form-field.component-DZA0NfB7.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-field.component-DZA0NfB7.js","sources":["../../../src/components/primitives/form-field/form-field.component.ts"],"sourcesContent":["import {\n Component,\n input,\n viewChild,\n ViewContainerRef,\n ChangeDetectionStrategy,\n computed,\n ViewEncapsulation,\n} from '@angular/core';\nimport { InteractionContract } from '@origo/core';\nimport { OrigoAdapter, ContainerComponent } from '../../../adapters/web/adapter';\nimport { LabelComponent, LabelProps } from '../label/label.component';\n\nexport interface FormFieldProps {\n label?: string;\n error?: string;\n hint?: string;\n required?: boolean;\n 'aria-label'?: string;\n 'aria-describedby'?: string;\n}\n\n@Component({\n selector: 'origo-form-field',\n standalone: true,\n imports: [LabelComponent],\n templateUrl: './form-field.component.html',\n styleUrls: ['./form-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.ShadowDom,\n host: {\n '[class.origo-form-field]': 'true',\n '[class.has-error]': '!!computedError()',\n '[attr.data-testid]': 'contract().id ?? \"\"',\n '[attr.role]': 'computedAriaLabel() ? \"group\" : null',\n '[attr.aria-label]': 'computedAriaLabel()',\n '[attr.aria-describedby]': 'computedAriaDescribedBy()',\n },\n})\nexport class FormFieldComponent implements OrigoAdapter<FormFieldProps>, ContainerComponent {\n static readonly contractSchema = {\n label: 'string',\n error: 'string',\n hint: 'string',\n required: 'boolean',\n };\n static readonly strictContract = false;\n\n contract = input.required<InteractionContract<FormFieldProps>>();\n\n vc = viewChild.required('vc', { read: ViewContainerRef });\n\n computedLabel = computed(() => this.contract().props?.label);\n computedError = computed(() => this.contract().props?.error);\n computedHint = computed(() => this.contract().props?.hint);\n computedRequired = computed(() => !!this.contract().props?.required);\n computedAriaLabel = computed(() => {\n const label = this.contract().props?.['aria-label'];\n return label !== undefined && label !== null && String(label).trim() !== ''\n ? String(label)\n : undefined;\n });\n computedAriaDescribedBy = computed(() => {\n const desc = this.contract().props?.['aria-describedby'];\n return desc !== undefined && desc !== null && String(desc).trim() !== ''\n ? String(desc)\n : undefined;\n });\n\n labelContract = computed<InteractionContract<LabelProps>>(() => {\n const parentId = this.contract().id;\n const childId = this.contract().children?.[0]?.id;\n return {\n id: `${parentId}-label`,\n type: 'Label',\n props: {\n text: this.computedLabel(),\n required: this.computedRequired(),\n for: childId,\n },\n };\n });\n}\n"],"names":["i0.ɵɵelement","i0.ɵɵnextContext","i0.ɵɵproperty","i0.ɵɵelementStart","i0.ɵɵtext","i0.ɵɵelementEnd","i0.ɵɵadvance","i0.ɵɵtextInterpolate"],"mappings":"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"}
|