@futdevpro/fsm-dynamo 1.15.23 → 1.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/build/_collections/utils/secret-mask.util.d.ts +90 -0
  2. package/build/_collections/utils/secret-mask.util.d.ts.map +1 -0
  3. package/build/_collections/utils/secret-mask.util.js +219 -0
  4. package/build/_collections/utils/secret-mask.util.js.map +1 -0
  5. package/build/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.d.ts +33 -0
  6. package/build/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.d.ts.map +1 -0
  7. package/build/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.js +32 -0
  8. package/build/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.js.map +1 -0
  9. package/build/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.d.ts +27 -0
  10. package/build/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.d.ts.map +1 -0
  11. package/build/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.js +35 -0
  12. package/build/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.js.map +1 -0
  13. package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-types.d.ts +11 -2
  14. package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-types.d.ts.map +1 -1
  15. package/build/_modules/ngx-models/_models/control-models/forms-new/index.d.ts +5 -0
  16. package/build/_modules/ngx-models/_models/control-models/forms-new/index.d.ts.map +1 -1
  17. package/build/_modules/ngx-models/_models/control-models/forms-new/index.js +5 -0
  18. package/build/_modules/ngx-models/_models/control-models/forms-new/index.js.map +1 -1
  19. package/build/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.d.ts +25 -0
  20. package/build/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.d.ts.map +1 -0
  21. package/build/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.js +35 -0
  22. package/build/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.js.map +1 -0
  23. package/build/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.d.ts +28 -0
  24. package/build/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.d.ts.map +1 -0
  25. package/build/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.js +36 -0
  26. package/build/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.js.map +1 -0
  27. package/build/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.d.ts +35 -0
  28. package/build/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.d.ts.map +1 -0
  29. package/build/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.js +33 -0
  30. package/build/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.js.map +1 -0
  31. package/build/index.d.ts +1 -0
  32. package/build/index.d.ts.map +1 -1
  33. package/build/index.js +1 -0
  34. package/build/index.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/_collections/utils/secret-mask.util.ts +258 -0
  37. package/src/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.ts +42 -0
  38. package/src/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.ts +35 -0
  39. package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-types.ts +16 -2
  40. package/src/_modules/ngx-models/_models/control-models/forms-new/index.ts +5 -0
  41. package/src/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.ts +35 -0
  42. package/src/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.ts +37 -0
  43. package/src/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.ts +45 -0
  44. package/src/index.ts +1 -0
@@ -0,0 +1,90 @@
1
+ /**
2
+ * FR-093 (2026-06-09) — Universal secret/key masking utility (bedrock level).
3
+ *
4
+ * Lehetove teszi az ALL-FDP-systems-szintu secret-szivargas-detection +
5
+ * maszkolas-t egy bedrock-szinten. A korabban Overseer / runner-worker
6
+ * helyi util-jai (FR-092) most ezt importaljak — egy SOR konfiguracio +
7
+ * find-and-replace.
8
+ *
9
+ * User feedback ('az osszes rendszerunknek a lenyege az univerzalizalt,
10
+ * mindenhol hasznalhato, egysegesített megoldások'): every secret-pattern
11
+ * ennek a egyetlen DyFM_SecretMask_Util-nak a felelossege.
12
+ *
13
+ * Strategy — KETTOS:
14
+ * 1. **PATTERN-based**: ismert secret-formatumokra automatikus felismeres.
15
+ * 2. **VALUE-based**: a process.env-jenek secret-erteket overlay-eli minden szovegben.
16
+ *
17
+ * Identifiability config (`DyFM_SecretMask_Settings.partialReveal`):
18
+ * - DEFAULT: `{ prefix: 4, suffix: 4 }` — a kulcsok elso 4 + utolso 4 char-ja
19
+ * megorzodik, kozeppe `[redacted-<KIND>]` keruln, pl.:
20
+ * `ghp_abcdefghij1234567890abcdefghij12345678` → `ghp_abcd...5678 [redacted-github-pat]`
21
+ * - User-extensible: csokkentett vagy 0-os reveal a tobb-biztonsagos
22
+ * deploymentekhez (`{ prefix: 0, suffix: 0 }` → tisztan opaque).
23
+ *
24
+ * Per memory `[[feedback_rich_error_handling]]`: a maszkolt token jelzes ne
25
+ * legyen `***` opaque; legyen `[redacted-<KIND>]` hogy ranezessel lassuk MILYEN
26
+ * tipusu szivargast szuntunk meg.
27
+ *
28
+ * Pattern-mapping per memory `[[feedback_individual_plans]]` — single source of
29
+ * truth: minden uj secret-format hozzaadando a `DyFM_SECRET_PATTERNS` array-hez;
30
+ * a tobbi rendszerben (Overseer/runner/bedrock packages) automatikusan
31
+ * megjelenik a fsm-bump utan.
32
+ */
33
+ export interface DyFM_SecretMask_PartialReveal_Interface {
34
+ /** Megorzendo elso karakter-szam (0 = teljesen elrejt). */
35
+ prefix: number;
36
+ /** Megorzendo utolso karakter-szam (0 = teljesen elrejt). */
37
+ suffix: number;
38
+ }
39
+ export interface DyFM_SecretMask_Settings_Interface {
40
+ /**
41
+ * Identifiability-controls. Default `{ prefix: 4, suffix: 4 }`. Beallitva
42
+ * pl. `{ prefix: 0, suffix: 0 }` opaque maszkolas-hoz.
43
+ */
44
+ partialReveal: DyFM_SecretMask_PartialReveal_Interface;
45
+ /**
46
+ * Min karakter-hossz amire az env-overlay alkalmaz. Rovid ertekek false
47
+ * positivot adnak (pl. `KEY=foo` ahol foo a project-name). Default: 8.
48
+ */
49
+ minEnvValueLength: number;
50
+ /**
51
+ * `process.env`-bol kulcsneveket szuro regex. Default match: minden olyan
52
+ * env-var ahol a NEV titkos-jellegu (TOKEN/SECRET/KEY/PASSWORD/PAT/HMAC stb.).
53
+ */
54
+ envNameSecretRx: RegExp;
55
+ }
56
+ export declare const DyFM_DEFAULT_SECRET_MASK_SETTINGS: DyFM_SecretMask_Settings_Interface;
57
+ interface SecretPattern_Interface {
58
+ /** Diagnosztikai cimke a `[redacted-<KIND>]` markerben. */
59
+ kind: string;
60
+ /** Detekcios regex (global flag is REQUIRED — a global flow minden match-et kezel). */
61
+ regex: RegExp;
62
+ /**
63
+ * `redactWith` — meghivva minden match-re a "matched" stringgel + settings-szel.
64
+ * Visszaad a csere-string-et. Default: partial-reveal-szel `<prefix>...<suffix> [redacted-<KIND>]`.
65
+ */
66
+ redactWith?: (matched: string, settings: DyFM_SecretMask_Settings_Interface) => string;
67
+ /**
68
+ * `wrapPrefix` — ha a regex captures (`$1` group-ja stb.) a literal-prefixet jelzi
69
+ * (pl. `Bearer ` a Bearer-token-nel), akkor a redact-result `[$1][reveal][marker]`-rel
70
+ * kerul ossze; a regex group az `wrapPrefix` index-en mutatott group. Default 0 = no wrap.
71
+ */
72
+ wrapPrefix?: number;
73
+ }
74
+ export declare const DyFM_SECRET_PATTERNS: SecretPattern_Interface[];
75
+ /**
76
+ * `DyFM_maskSecrets` — universal pre-Discord-send + pre-log-persist masking.
77
+ *
78
+ * @param text bemenet (ha nem string, JSON-szerializalaskor maskoljuk)
79
+ * @param settings konfiguracio (default a DyFM_DEFAULT_SECRET_MASK_SETTINGS)
80
+ * @returns maszkolt szoveg
81
+ */
82
+ export declare function DyFM_maskSecrets(text: unknown, settings?: DyFM_SecretMask_Settings_Interface): string;
83
+ /**
84
+ * Recursive object-masker — JSON-szeru struktura minden string-ertekeben alkalmazza
85
+ * a DyFM_maskSecrets-t. Pl. errors-table additionalContent / logTail tomb / cdpReport
86
+ * objektum elotti masking-hez.
87
+ */
88
+ export declare function DyFM_maskSecretsDeep<T = unknown>(input: T, settings?: DyFM_SecretMask_Settings_Interface): T;
89
+ export {};
90
+ //# sourceMappingURL=secret-mask.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-mask.util.d.ts","sourceRoot":"","sources":["../../../src/_collections/utils/secret-mask.util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,MAAM,WAAW,uCAAuC;IACtD,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kCAAkC;IACjD;;;OAGG;IACH,aAAa,EAAE,uCAAuC,CAAC;IAEvD;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,iCAAiC,EAAE,kCAO/C,CAAC;AAEF,UAAU,uBAAuB;IAC/B,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,kCAAkC,KAAK,MAAM,CAAC;IACvF;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAsBD,eAAO,MAAM,oBAAoB,EAAE,uBAAuB,EA4DzD,CAAC;AAuBF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,OAAO,EACb,QAAQ,GAAE,kCAAsE,GAC/E,MAAM,CAiCR;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,GAAG,OAAO,EAC9C,KAAK,EAAE,CAAC,EACR,QAAQ,GAAE,kCAAsE,GAC/E,CAAC,CAcH"}
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ /**
3
+ * FR-093 (2026-06-09) — Universal secret/key masking utility (bedrock level).
4
+ *
5
+ * Lehetove teszi az ALL-FDP-systems-szintu secret-szivargas-detection +
6
+ * maszkolas-t egy bedrock-szinten. A korabban Overseer / runner-worker
7
+ * helyi util-jai (FR-092) most ezt importaljak — egy SOR konfiguracio +
8
+ * find-and-replace.
9
+ *
10
+ * User feedback ('az osszes rendszerunknek a lenyege az univerzalizalt,
11
+ * mindenhol hasznalhato, egysegesített megoldások'): every secret-pattern
12
+ * ennek a egyetlen DyFM_SecretMask_Util-nak a felelossege.
13
+ *
14
+ * Strategy — KETTOS:
15
+ * 1. **PATTERN-based**: ismert secret-formatumokra automatikus felismeres.
16
+ * 2. **VALUE-based**: a process.env-jenek secret-erteket overlay-eli minden szovegben.
17
+ *
18
+ * Identifiability config (`DyFM_SecretMask_Settings.partialReveal`):
19
+ * - DEFAULT: `{ prefix: 4, suffix: 4 }` — a kulcsok elso 4 + utolso 4 char-ja
20
+ * megorzodik, kozeppe `[redacted-<KIND>]` keruln, pl.:
21
+ * `ghp_abcdefghij1234567890abcdefghij12345678` → `ghp_abcd...5678 [redacted-github-pat]`
22
+ * - User-extensible: csokkentett vagy 0-os reveal a tobb-biztonsagos
23
+ * deploymentekhez (`{ prefix: 0, suffix: 0 }` → tisztan opaque).
24
+ *
25
+ * Per memory `[[feedback_rich_error_handling]]`: a maszkolt token jelzes ne
26
+ * legyen `***` opaque; legyen `[redacted-<KIND>]` hogy ranezessel lassuk MILYEN
27
+ * tipusu szivargast szuntunk meg.
28
+ *
29
+ * Pattern-mapping per memory `[[feedback_individual_plans]]` — single source of
30
+ * truth: minden uj secret-format hozzaadando a `DyFM_SECRET_PATTERNS` array-hez;
31
+ * a tobbi rendszerben (Overseer/runner/bedrock packages) automatikusan
32
+ * megjelenik a fsm-bump utan.
33
+ */
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.DyFM_SECRET_PATTERNS = exports.DyFM_DEFAULT_SECRET_MASK_SETTINGS = void 0;
36
+ exports.DyFM_maskSecrets = DyFM_maskSecrets;
37
+ exports.DyFM_maskSecretsDeep = DyFM_maskSecretsDeep;
38
+ exports.DyFM_DEFAULT_SECRET_MASK_SETTINGS = {
39
+ partialReveal: {
40
+ prefix: 4,
41
+ suffix: 4,
42
+ },
43
+ minEnvValueLength: 8,
44
+ envNameSecretRx: /(?:TOKEN|SECRET|KEY|PASSWORD|PASSWD|PAT|HMAC|AUTH|PRIVATE|CREDENTIAL|API_KEY|WEBHOOK)/i,
45
+ };
46
+ const defaultRevealReplacement = (matched, kind, settings) => {
47
+ const p = Math.max(0, settings.partialReveal.prefix);
48
+ const s = Math.max(0, settings.partialReveal.suffix);
49
+ // Ha a kulcs tul rovid az osszes reveal-osszeghez kepest, ne reveal-juk
50
+ // (kulonben az egesz secret elerhetonek osszetapadna).
51
+ if (matched.length <= p + s + 4) {
52
+ return `[redacted-${kind}]`;
53
+ }
54
+ if (p === 0 && s === 0) {
55
+ return `[redacted-${kind}]`;
56
+ }
57
+ const head = matched.slice(0, p);
58
+ const tail = matched.slice(matched.length - s);
59
+ return `${head}...${tail} [redacted-${kind}]`;
60
+ };
61
+ exports.DyFM_SECRET_PATTERNS = [
62
+ // URL-embedded basic auth — sajat replace-pattern megorzi a scheme-et + host-ot.
63
+ {
64
+ kind: 'url-cred',
65
+ regex: /\b(https?:\/\/)([^/\s:@]+):([^\s@]+)@/g,
66
+ redactWith: (_m) => '$1[redacted-url-cred]@',
67
+ },
68
+ // GitHub PATs
69
+ { kind: 'github-pat', regex: /\bgh[ps]_[A-Za-z0-9]{36,}\b/g },
70
+ { kind: 'github-pat-fine', regex: /\bgithub_pat_[A-Za-z0-9_]{82,}\b/g },
71
+ { kind: 'github-oauth', regex: /\bgho_[A-Za-z0-9]{36,}\b/g },
72
+ { kind: 'github-refresh', regex: /\bghr_[A-Za-z0-9]{36,}\b/g },
73
+ // NPM token
74
+ { kind: 'npm-token', regex: /\bnpm_[A-Za-z0-9]{36,}\b/g },
75
+ // Docker Hub PAT
76
+ { kind: 'docker-pat', regex: /\bdckr_pat_[A-Za-z0-9_\-]{20,}\b/g },
77
+ // Slack token
78
+ { kind: 'slack-token', regex: /\bxox[abprs]-[A-Za-z0-9-]{10,}\b/g },
79
+ // Anthropic key (BEFORE OpenAI — `sk-ant-*` more specific than `sk-*`)
80
+ { kind: 'anthropic-key', regex: /\bsk-ant-[A-Za-z0-9\-_]{32,}\b/g },
81
+ // OpenAI / generic `sk-*` key
82
+ { kind: 'openai-key', regex: /\bsk-[A-Za-z0-9]{32,}\b/g },
83
+ // Google API key
84
+ { kind: 'google-api-key', regex: /\bAIza[0-9A-Za-z\-_]{35}\b/g },
85
+ // Discord webhook URL (id + token in URL)
86
+ {
87
+ kind: 'discord-webhook',
88
+ regex: /\bhttps?:\/\/(?:discord(?:app)?\.com|discordapp\.com)\/api\/webhooks\/\d+\/[A-Za-z0-9_\-]+/g,
89
+ redactWith: (_m) => '[redacted-discord-webhook]',
90
+ },
91
+ // Bearer token in HTTP header style — megorizzuk a 'Bearer ' prefixet (literally), a token-t pedig reveal-eljuk.
92
+ {
93
+ kind: 'bearer-token',
94
+ regex: /\b(Bearer)\s+([A-Za-z0-9\-._~+/=]{20,})/gi,
95
+ redactWith: (matched, settings) => {
96
+ const tokenStart = matched.search(/\s+/);
97
+ const prefix = matched.slice(0, tokenStart + 1); // 'Bearer '
98
+ const token = matched.slice(tokenStart + 1);
99
+ return prefix + defaultRevealReplacement(token, 'token', settings);
100
+ },
101
+ },
102
+ // JWT (eyJ + .* + .*)
103
+ { kind: 'jwt', regex: /\beyJ[A-Za-z0-9_\-]{10,}\.[A-Za-z0-9_\-]{10,}\.[A-Za-z0-9_\-]{10,}\b/g },
104
+ // AWS Access Key
105
+ { kind: 'aws-access-key', regex: /\bAKIA[0-9A-Z]{16}\b/g },
106
+ // Env-style secret-name = value
107
+ {
108
+ kind: 'env-style-secret',
109
+ regex: /\b([A-Z][A-Z0-9_]*(?:TOKEN|SECRET|KEY|PASSWORD|PASSWD|PAT|HMAC|AUTH|PRIVATE)[A-Z0-9_]*)\s*[:=]\s*['"]?([^\s'"]+)['"]?/g,
110
+ redactWith: (matched, settings) => {
111
+ // Pull out the key name + value via re-match (avoids capturing groups in redactWith signature)
112
+ const m = matched.match(/\b([A-Z][A-Z0-9_]*(?:TOKEN|SECRET|KEY|PASSWORD|PASSWD|PAT|HMAC|AUTH|PRIVATE)[A-Z0-9_]*)\s*[:=]\s*['"]?([^\s'"]+)/);
113
+ if (!m) {
114
+ return matched;
115
+ }
116
+ const keyName = m[1];
117
+ const value = m[2];
118
+ const sep = matched.includes(': ') ? '=' : '=';
119
+ const revealed = defaultRevealReplacement(value, 'env-value', settings);
120
+ return `${keyName}${sep}${revealed}`;
121
+ },
122
+ },
123
+ ];
124
+ /**
125
+ * `process.env`-bol kigyujti azokat a kulcsokat ahol a NEV titkos-jellegu
126
+ * ÉS a value >= minEnvValueLength. Visszaad egy listat — ezeket szovegben
127
+ * minden elofordulasban partial-reveal-el felulrak-juk.
128
+ */
129
+ const collectEnvSecretValues = (settings) => {
130
+ const out = [];
131
+ for (const [key, raw] of Object.entries(process.env)) {
132
+ if (!raw || raw.length < settings.minEnvValueLength) {
133
+ continue;
134
+ }
135
+ if (!settings.envNameSecretRx.test(key)) {
136
+ continue;
137
+ }
138
+ if (/^(true|false|0|1)$/i.test(raw)) {
139
+ continue;
140
+ }
141
+ out.push({ value: raw, key: key });
142
+ }
143
+ // Sort by value length DESC — hosszabb ertekekkel kezdjuk, igy egy rovid
144
+ // prefix nem sealeze el a hosszabb kornyezetet.
145
+ out.sort((a, b) => b.value.length - a.value.length);
146
+ return out;
147
+ };
148
+ /**
149
+ * `DyFM_maskSecrets` — universal pre-Discord-send + pre-log-persist masking.
150
+ *
151
+ * @param text bemenet (ha nem string, JSON-szerializalaskor maskoljuk)
152
+ * @param settings konfiguracio (default a DyFM_DEFAULT_SECRET_MASK_SETTINGS)
153
+ * @returns maszkolt szoveg
154
+ */
155
+ function DyFM_maskSecrets(text, settings = exports.DyFM_DEFAULT_SECRET_MASK_SETTINGS) {
156
+ if (text === null || text === undefined) {
157
+ return '';
158
+ }
159
+ let str;
160
+ if (typeof text === 'string') {
161
+ str = text;
162
+ }
163
+ else {
164
+ try {
165
+ str = JSON.stringify(text);
166
+ }
167
+ catch {
168
+ str = String(text);
169
+ }
170
+ }
171
+ // 1. PATTERN-based maszkolas
172
+ for (const p of exports.DyFM_SECRET_PATTERNS) {
173
+ str = str.replace(p.regex, (matched, ...groups) => {
174
+ // Drop the `offset` + `wholeString` args at the end of `groups`
175
+ if (p.redactWith) {
176
+ return p.redactWith(matched, settings)
177
+ .replace(/\$1/g, groups[0] ?? '')
178
+ .replace(/\$2/g, groups[1] ?? '');
179
+ }
180
+ // Default: partial-reveal with kind
181
+ return defaultRevealReplacement(matched, p.kind, settings);
182
+ });
183
+ }
184
+ // 2. ENV-secret value-alapu overlay
185
+ const envSecrets = collectEnvSecretValues(settings);
186
+ for (const { value, key } of envSecrets) {
187
+ if (!str.includes(value)) {
188
+ continue;
189
+ }
190
+ const revealed = defaultRevealReplacement(value, `env-${key}`, settings);
191
+ str = str.split(value).join(revealed);
192
+ }
193
+ return str;
194
+ }
195
+ /**
196
+ * Recursive object-masker — JSON-szeru struktura minden string-ertekeben alkalmazza
197
+ * a DyFM_maskSecrets-t. Pl. errors-table additionalContent / logTail tomb / cdpReport
198
+ * objektum elotti masking-hez.
199
+ */
200
+ function DyFM_maskSecretsDeep(input, settings = exports.DyFM_DEFAULT_SECRET_MASK_SETTINGS) {
201
+ if (input === null || input === undefined) {
202
+ return input;
203
+ }
204
+ if (typeof input === 'string') {
205
+ return DyFM_maskSecrets(input, settings);
206
+ }
207
+ if (typeof input !== 'object') {
208
+ return input;
209
+ }
210
+ if (Array.isArray(input)) {
211
+ return input.map((it) => DyFM_maskSecretsDeep(it, settings));
212
+ }
213
+ const out = {};
214
+ for (const [k, v] of Object.entries(input)) {
215
+ out[k] = DyFM_maskSecretsDeep(v, settings);
216
+ }
217
+ return out;
218
+ }
219
+ //# sourceMappingURL=secret-mask.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-mask.util.js","sourceRoot":"","sources":["../../../src/_collections/utils/secret-mask.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { DyFM_Field_Type } from '../../../_enums/field-type.enum';
2
+ import { DyFM_FieldNew_Settings } from './field-new-settings.control-model';
3
+ /**
4
+ * Forms v2 (Wave-2a) — date-range value shape (`{ start: string, end: string }`).
5
+ *
6
+ * Mindketto ISO `YYYY-MM-DD` formátumban. Üres / `''` érték = nem allítva.
7
+ */
8
+ export interface DyFM_DateRangeNewValue {
9
+ start: string;
10
+ end: string;
11
+ }
12
+ /**
13
+ * Forms v2 (Wave-2a) — date-range input field settings.
14
+ *
15
+ * Két natív `<input type="date">` egymás mellett, cross-field validator a
16
+ * Params-szinten (`start <= end` invariant). Material-mentes.
17
+ *
18
+ * `minDate` / `maxDate`: ISO `YYYY-MM-DD` — mindkét input-ra alkalmazva.
19
+ * `allowSameDay` (default `true`) — ha `false`, `start === end` érvénytelen.
20
+ *
21
+ * @see _specifications/forms-v2/02-architecture-spec.md (2.2)
22
+ */
23
+ export declare class DyFM_DateRangeFieldNew_Settings extends DyFM_FieldNew_Settings<DyFM_DateRangeNewValue> {
24
+ readonly type: DyFM_Field_Type.dateRange;
25
+ /** Alsó határ ISO `YYYY-MM-DD`. */
26
+ minDate?: string;
27
+ /** Felső határ ISO `YYYY-MM-DD`. */
28
+ maxDate?: string;
29
+ /** `start === end` engedélyezve (default `true`). */
30
+ allowSameDay?: boolean;
31
+ constructor(set: Partial<DyFM_DateRangeFieldNew_Settings>);
32
+ }
33
+ //# sourceMappingURL=date-range-field-new-settings.control-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-field-new-settings.control-model.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;GAUG;AACH,qBAAa,+BAAgC,SAAQ,sBAAsB,CAAC,sBAAsB,CAAC;IACjG,SAAkB,IAAI,EAAE,eAAe,CAAC,SAAS,CAA6B;IAE9E,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;gBAEX,GAAG,EAAE,OAAO,CAAC,+BAA+B,CAAC;CAK1D"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyFM_DateRangeFieldNew_Settings = void 0;
4
+ const field_type_enum_1 = require("../../../_enums/field-type.enum");
5
+ const field_new_settings_control_model_1 = require("./field-new-settings.control-model");
6
+ /**
7
+ * Forms v2 (Wave-2a) — date-range input field settings.
8
+ *
9
+ * Két natív `<input type="date">` egymás mellett, cross-field validator a
10
+ * Params-szinten (`start <= end` invariant). Material-mentes.
11
+ *
12
+ * `minDate` / `maxDate`: ISO `YYYY-MM-DD` — mindkét input-ra alkalmazva.
13
+ * `allowSameDay` (default `true`) — ha `false`, `start === end` érvénytelen.
14
+ *
15
+ * @see _specifications/forms-v2/02-architecture-spec.md (2.2)
16
+ */
17
+ class DyFM_DateRangeFieldNew_Settings extends field_new_settings_control_model_1.DyFM_FieldNew_Settings {
18
+ type = field_type_enum_1.DyFM_Field_Type.dateRange;
19
+ /** Alsó határ ISO `YYYY-MM-DD`. */
20
+ minDate;
21
+ /** Felső határ ISO `YYYY-MM-DD`. */
22
+ maxDate;
23
+ /** `start === end` engedélyezve (default `true`). */
24
+ allowSameDay;
25
+ constructor(set) {
26
+ super(set);
27
+ const { type: _ignoredType, ...rest } = set;
28
+ Object.assign(this, rest);
29
+ }
30
+ }
31
+ exports.DyFM_DateRangeFieldNew_Settings = DyFM_DateRangeFieldNew_Settings;
32
+ //# sourceMappingURL=date-range-field-new-settings.control-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-field-new-settings.control-model.js","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.ts"],"names":[],"mappings":";;;AAAA,qEAAkE;AAClE,yFAA4E;AAY5E;;;;;;;;;;GAUG;AACH,MAAa,+BAAgC,SAAQ,yDAA8C;IAC/E,IAAI,GAA8B,iCAAe,CAAC,SAAS,CAAC;IAE9E,mCAAmC;IACnC,OAAO,CAAU;IAEjB,oCAAoC;IACpC,OAAO,CAAU;IAEjB,qDAAqD;IACrD,YAAY,CAAW;IAEvB,YAAY,GAA6C;QACvD,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF;AAjBD,0EAiBC"}
@@ -0,0 +1,27 @@
1
+ import { DyFM_Field_Type } from '../../../_enums/field-type.enum';
2
+ import { DyFM_FieldNew_Settings } from './field-new-settings.control-model';
3
+ /**
4
+ * Forms v2 (Wave-2a) — date-time input field settings.
5
+ *
6
+ * Native `<input type="datetime-local">` (Chromium 90+, Firefox 93+ stabil).
7
+ * Value: ISO `YYYY-MM-DDTHH:mm` string. Material-mentes (semmi `<mat-datepicker>`).
8
+ *
9
+ * `minDateTime` / `maxDateTime`: szintén ISO `YYYY-MM-DDTHH:mm` formátum —
10
+ * a render `<input>`-on a `min` / `max` attr-ra megy.
11
+ *
12
+ * @see _specifications/forms-v2/02-architecture-spec.md (2.2)
13
+ */
14
+ export declare class DyFM_DateTimeFieldNew_Settings extends DyFM_FieldNew_Settings<string> {
15
+ readonly type: DyFM_Field_Type.dateTime;
16
+ /** Alsó határ ISO `YYYY-MM-DDTHH:mm` formátumban. */
17
+ minDateTime?: string;
18
+ /** Felső határ ISO `YYYY-MM-DDTHH:mm` formátumban. */
19
+ maxDateTime?: string;
20
+ /**
21
+ * Step (másodperc-szám) — opcionális; ha hiányzik, az input csak perc-pontosságú.
22
+ * Pl. `60` (perces stepek, default), `1` (másodperc-pontos), `300` (5 perces).
23
+ */
24
+ stepSeconds?: number;
25
+ constructor(set: Partial<DyFM_DateTimeFieldNew_Settings>);
26
+ }
27
+ //# sourceMappingURL=datetime-field-new-settings.control-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime-field-new-settings.control-model.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E;;;;;;;;;;GAUG;AACH,qBAAa,8BAA+B,SAAQ,sBAAsB,CAAC,MAAM,CAAC;IAChF,SAAkB,IAAI,EAAE,eAAe,CAAC,QAAQ,CAA4B;IAE5E,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;gBAET,GAAG,EAAE,OAAO,CAAC,8BAA8B,CAAC;CAKzD"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyFM_DateTimeFieldNew_Settings = void 0;
4
+ const field_type_enum_1 = require("../../../_enums/field-type.enum");
5
+ const field_new_settings_control_model_1 = require("./field-new-settings.control-model");
6
+ /**
7
+ * Forms v2 (Wave-2a) — date-time input field settings.
8
+ *
9
+ * Native `<input type="datetime-local">` (Chromium 90+, Firefox 93+ stabil).
10
+ * Value: ISO `YYYY-MM-DDTHH:mm` string. Material-mentes (semmi `<mat-datepicker>`).
11
+ *
12
+ * `minDateTime` / `maxDateTime`: szintén ISO `YYYY-MM-DDTHH:mm` formátum —
13
+ * a render `<input>`-on a `min` / `max` attr-ra megy.
14
+ *
15
+ * @see _specifications/forms-v2/02-architecture-spec.md (2.2)
16
+ */
17
+ class DyFM_DateTimeFieldNew_Settings extends field_new_settings_control_model_1.DyFM_FieldNew_Settings {
18
+ type = field_type_enum_1.DyFM_Field_Type.dateTime;
19
+ /** Alsó határ ISO `YYYY-MM-DDTHH:mm` formátumban. */
20
+ minDateTime;
21
+ /** Felső határ ISO `YYYY-MM-DDTHH:mm` formátumban. */
22
+ maxDateTime;
23
+ /**
24
+ * Step (másodperc-szám) — opcionális; ha hiányzik, az input csak perc-pontosságú.
25
+ * Pl. `60` (perces stepek, default), `1` (másodperc-pontos), `300` (5 perces).
26
+ */
27
+ stepSeconds;
28
+ constructor(set) {
29
+ super(set);
30
+ const { type: _ignoredType, ...rest } = set;
31
+ Object.assign(this, rest);
32
+ }
33
+ }
34
+ exports.DyFM_DateTimeFieldNew_Settings = DyFM_DateTimeFieldNew_Settings;
35
+ //# sourceMappingURL=datetime-field-new-settings.control-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime-field-new-settings.control-model.js","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.ts"],"names":[],"mappings":";;;AAAA,qEAAkE;AAClE,yFAA4E;AAE5E;;;;;;;;;;GAUG;AACH,MAAa,8BAA+B,SAAQ,yDAA8B;IAC9D,IAAI,GAA6B,iCAAe,CAAC,QAAQ,CAAC;IAE5E,qDAAqD;IACrD,WAAW,CAAU;IAErB,sDAAsD;IACtD,WAAW,CAAU;IAErB;;;OAGG;IACH,WAAW,CAAU;IAErB,YAAY,GAA4C;QACtD,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF;AApBD,wEAoBC"}
@@ -1,18 +1,27 @@
1
1
  import { DyFM_CheckboxFieldNew_Settings } from './checkbox-field-new-settings.control-model';
2
2
  import { DyFM_DateFieldNew_Settings } from './date-field-new-settings.control-model';
3
+ import { DyFM_DateRangeFieldNew_Settings } from './date-range-field-new-settings.control-model';
4
+ import { DyFM_DateTimeFieldNew_Settings } from './datetime-field-new-settings.control-model';
3
5
  import { DyFM_MultiselectFieldNew_Settings } from './multiselect-field-new-settings.control-model';
4
6
  import { DyFM_NumberFieldNew_Settings } from './number-field-new-settings.control-model';
5
7
  import { DyFM_PasswordFieldNew_Settings } from './password-field-new-settings.control-model';
8
+ import { DyFM_RadioSelectFieldNew_Settings } from './radio-select-field-new-settings.control-model';
6
9
  import { DyFM_SelectFieldNew_Settings } from './select-field-new-settings.control-model';
10
+ import { DyFM_SliderFieldNew_Settings } from './slider-field-new-settings.control-model';
11
+ import { DyFM_SliderRangeFieldNew_Settings } from './slider-range-field-new-settings.control-model';
7
12
  import { DyFM_TextAreaFieldNew_Settings } from './textarea-field-new-settings.control-model';
8
13
  import { DyFM_TextFieldNew_Settings } from './text-field-new-settings.control-model';
9
14
  /**
10
- * Forms v2 (Wave-1A) — Settings-szintű discriminated union.
15
+ * Forms v2 — Settings-szintű discriminated union.
11
16
  *
12
17
  * Ezen a típuson a TypeScript `field.type === DyFM_Field_Type.text` után már a
13
18
  * `DyFM_TextFieldNew_Settings` altípust ismeri (type-narrowing).
14
19
  *
20
+ * Wave-1A: text, textarea, number, checkbox, select, multiselect, date.
21
+ * Wave-1+ Login: password.
22
+ * Wave-2a: slider, sliderRange, radioSelect, dateTime, dateRange.
23
+ *
15
24
  * @see _specifications/forms-v2/02-architecture-spec.md (11. mátrix)
16
25
  */
17
- export type DyFM_FieldNew_Settings_AnyType = DyFM_TextFieldNew_Settings | DyFM_TextAreaFieldNew_Settings | DyFM_NumberFieldNew_Settings | DyFM_PasswordFieldNew_Settings | DyFM_CheckboxFieldNew_Settings | DyFM_SelectFieldNew_Settings<unknown> | DyFM_MultiselectFieldNew_Settings<unknown> | DyFM_DateFieldNew_Settings;
26
+ export type DyFM_FieldNew_Settings_AnyType = DyFM_TextFieldNew_Settings | DyFM_TextAreaFieldNew_Settings | DyFM_NumberFieldNew_Settings | DyFM_PasswordFieldNew_Settings | DyFM_SliderFieldNew_Settings | DyFM_SliderRangeFieldNew_Settings | DyFM_CheckboxFieldNew_Settings | DyFM_SelectFieldNew_Settings<unknown> | DyFM_MultiselectFieldNew_Settings<unknown> | DyFM_RadioSelectFieldNew_Settings<unknown> | DyFM_DateFieldNew_Settings | DyFM_DateTimeFieldNew_Settings | DyFM_DateRangeFieldNew_Settings;
18
27
  //# sourceMappingURL=field-new-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-new-types.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/field-new-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,iCAAiC,EAAE,MAAM,gDAAgD,CAAC;AACnG,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAErF;;;;;;;GAOG;AACH,MAAM,MAAM,8BAA8B,GACtC,0BAA0B,GAC1B,8BAA8B,GAC9B,4BAA4B,GAC5B,8BAA8B,GAC9B,8BAA8B,GAC9B,4BAA4B,CAAC,OAAO,CAAC,GACrC,iCAAiC,CAAC,OAAO,CAAC,GAC1C,0BAA0B,CAAC"}
1
+ {"version":3,"file":"field-new-types.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/field-new-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,+CAA+C,CAAC;AAChG,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,iCAAiC,EAAE,MAAM,gDAAgD,CAAC;AACnG,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,iCAAiC,EAAE,MAAM,iDAAiD,CAAC;AACpG,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,iCAAiC,EAAE,MAAM,iDAAiD,CAAC;AACpG,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAErF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,8BAA8B,GACtC,0BAA0B,GAC1B,8BAA8B,GAC9B,4BAA4B,GAC5B,8BAA8B,GAC9B,4BAA4B,GAC5B,iCAAiC,GACjC,8BAA8B,GAC9B,4BAA4B,CAAC,OAAO,CAAC,GACrC,iCAAiC,CAAC,OAAO,CAAC,GAC1C,iCAAiC,CAAC,OAAO,CAAC,GAC1C,0BAA0B,GAC1B,8BAA8B,GAC9B,+BAA+B,CAAC"}
@@ -3,10 +3,15 @@ export * from './text-field-new-settings.control-model';
3
3
  export * from './textarea-field-new-settings.control-model';
4
4
  export * from './number-field-new-settings.control-model';
5
5
  export * from './password-field-new-settings.control-model';
6
+ export * from './slider-field-new-settings.control-model';
7
+ export * from './slider-range-field-new-settings.control-model';
6
8
  export * from './checkbox-field-new-settings.control-model';
7
9
  export * from './select-field-new-settings.control-model';
8
10
  export * from './multiselect-field-new-settings.control-model';
11
+ export * from './radio-select-field-new-settings.control-model';
9
12
  export * from './date-field-new-settings.control-model';
13
+ export * from './datetime-field-new-settings.control-model';
14
+ export * from './date-range-field-new-settings.control-model';
10
15
  export * from './form-new-settings.control-model';
11
16
  export * from './field-new-types';
12
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/index.ts"],"names":[],"mappings":"AAGA,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/index.ts"],"names":[],"mappings":"AAGA,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iDAAiD,CAAC;AAChE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mCAAmC,CAAC;AAClD,cAAc,mBAAmB,CAAC"}
@@ -8,10 +8,15 @@ tslib_1.__exportStar(require("./text-field-new-settings.control-model"), exports
8
8
  tslib_1.__exportStar(require("./textarea-field-new-settings.control-model"), exports);
9
9
  tslib_1.__exportStar(require("./number-field-new-settings.control-model"), exports);
10
10
  tslib_1.__exportStar(require("./password-field-new-settings.control-model"), exports);
11
+ tslib_1.__exportStar(require("./slider-field-new-settings.control-model"), exports);
12
+ tslib_1.__exportStar(require("./slider-range-field-new-settings.control-model"), exports);
11
13
  tslib_1.__exportStar(require("./checkbox-field-new-settings.control-model"), exports);
12
14
  tslib_1.__exportStar(require("./select-field-new-settings.control-model"), exports);
13
15
  tslib_1.__exportStar(require("./multiselect-field-new-settings.control-model"), exports);
16
+ tslib_1.__exportStar(require("./radio-select-field-new-settings.control-model"), exports);
14
17
  tslib_1.__exportStar(require("./date-field-new-settings.control-model"), exports);
18
+ tslib_1.__exportStar(require("./datetime-field-new-settings.control-model"), exports);
19
+ tslib_1.__exportStar(require("./date-range-field-new-settings.control-model"), exports);
15
20
  tslib_1.__exportStar(require("./form-new-settings.control-model"), exports);
16
21
  tslib_1.__exportStar(require("./field-new-types"), exports);
17
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/index.ts"],"names":[],"mappings":";AAAA,iEAAiE;AACjE,kCAAkC;;;AAElC,6EAAmD;AACnD,kFAAwD;AACxD,sFAA4D;AAC5D,oFAA0D;AAC1D,sFAA4D;AAC5D,sFAA4D;AAC5D,oFAA0D;AAC1D,yFAA+D;AAC/D,kFAAwD;AACxD,4EAAkD;AAClD,4DAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/index.ts"],"names":[],"mappings":";AAAA,iEAAiE;AACjE,kCAAkC;;;AAElC,6EAAmD;AACnD,kFAAwD;AACxD,sFAA4D;AAC5D,oFAA0D;AAC1D,sFAA4D;AAC5D,oFAA0D;AAC1D,0FAAgE;AAChE,sFAA4D;AAC5D,oFAA0D;AAC1D,yFAA+D;AAC/D,0FAAgE;AAChE,kFAAwD;AACxD,sFAA4D;AAC5D,wFAA8D;AAC9D,4EAAkD;AAClD,4DAAkC"}
@@ -0,0 +1,25 @@
1
+ import { DyFM_Field_Type } from '../../../_enums/field-type.enum';
2
+ import { DyFM_FieldNew_Settings } from './field-new-settings.control-model';
3
+ import { DyFM_SelectNewOption } from './select-field-new-settings.control-model';
4
+ /**
5
+ * Forms v2 (Wave-2a) — radio-group field settings.
6
+ *
7
+ * Native `<input type="radio">`-list, `<fieldset>+<legend>` keret-tel.
8
+ * Egy aktív választás (`T`), `options` ugyanaz a shape mint a `Select`-en.
9
+ * Material-mentes (semmi `<mat-radio-group>`).
10
+ *
11
+ * Layout:
12
+ * - `'vertical'` (default) — minden opció külön sorba
13
+ * - `'horizontal'` — egy sorba, flex-wrap-pel
14
+ *
15
+ * @see _specifications/forms-v2/02-architecture-spec.md (2.2)
16
+ */
17
+ export declare class DyFM_RadioSelectFieldNew_Settings<T = string> extends DyFM_FieldNew_Settings<T> {
18
+ readonly type: DyFM_Field_Type.radioSelect;
19
+ /** Választási opciók — ugyanaz a shape mint a `Select`-en. */
20
+ options: DyFM_SelectNewOption<T>[];
21
+ /** Layout (default `'vertical'`). */
22
+ layout?: 'vertical' | 'horizontal';
23
+ constructor(set: Partial<DyFM_RadioSelectFieldNew_Settings<T>>);
24
+ }
25
+ //# sourceMappingURL=radio-select-field-new-settings.control-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-select-field-new-settings.control-model.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF;;;;;;;;;;;;GAYG;AACH,qBAAa,iCAAiC,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,sBAAsB,CAAC,CAAC,CAAC;IAC1F,SAAkB,IAAI,EAAE,eAAe,CAAC,WAAW,CAA+B;IAElF,8DAA8D;IAC9D,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAM;IAExC,qCAAqC;IACrC,MAAM,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;gBAEvB,GAAG,EAAE,OAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC;CAQ/D"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyFM_RadioSelectFieldNew_Settings = void 0;
4
+ const field_type_enum_1 = require("../../../_enums/field-type.enum");
5
+ const field_new_settings_control_model_1 = require("./field-new-settings.control-model");
6
+ /**
7
+ * Forms v2 (Wave-2a) — radio-group field settings.
8
+ *
9
+ * Native `<input type="radio">`-list, `<fieldset>+<legend>` keret-tel.
10
+ * Egy aktív választás (`T`), `options` ugyanaz a shape mint a `Select`-en.
11
+ * Material-mentes (semmi `<mat-radio-group>`).
12
+ *
13
+ * Layout:
14
+ * - `'vertical'` (default) — minden opció külön sorba
15
+ * - `'horizontal'` — egy sorba, flex-wrap-pel
16
+ *
17
+ * @see _specifications/forms-v2/02-architecture-spec.md (2.2)
18
+ */
19
+ class DyFM_RadioSelectFieldNew_Settings extends field_new_settings_control_model_1.DyFM_FieldNew_Settings {
20
+ type = field_type_enum_1.DyFM_Field_Type.radioSelect;
21
+ /** Választási opciók — ugyanaz a shape mint a `Select`-en. */
22
+ options = [];
23
+ /** Layout (default `'vertical'`). */
24
+ layout;
25
+ constructor(set) {
26
+ super(set);
27
+ const { type: _ignoredType, ...rest } = set;
28
+ Object.assign(this, rest);
29
+ if (!this.options) {
30
+ this.options = [];
31
+ }
32
+ }
33
+ }
34
+ exports.DyFM_RadioSelectFieldNew_Settings = DyFM_RadioSelectFieldNew_Settings;
35
+ //# sourceMappingURL=radio-select-field-new-settings.control-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-select-field-new-settings.control-model.js","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.ts"],"names":[],"mappings":";;;AAAA,qEAAkE;AAClE,yFAA4E;AAG5E;;;;;;;;;;;;GAYG;AACH,MAAa,iCAA8C,SAAQ,yDAAyB;IACxE,IAAI,GAAgC,iCAAe,CAAC,WAAW,CAAC;IAElF,8DAA8D;IAC9D,OAAO,GAA8B,EAAE,CAAC;IAExC,qCAAqC;IACrC,MAAM,CAA6B;IAEnC,YAAY,GAAkD;QAC5D,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;CACF;AAjBD,8EAiBC"}