@futdevpro/fsm-dynamo 1.15.22 → 1.16.1
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/__documentations/2026-06-06-ngx-models-merge-completion.md +100 -0
- package/__documentations/plans/00-MASTER-ngx-models-fsm-merge.md +5 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.d.ts +33 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.d.ts.map +1 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.js +32 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.js.map +1 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.d.ts +27 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.d.ts.map +1 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.js +35 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.js.map +1 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-types.d.ts +12 -2
- package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-types.d.ts.map +1 -1
- package/build/_modules/ngx-models/_models/control-models/forms-new/index.d.ts +6 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/index.d.ts.map +1 -1
- package/build/_modules/ngx-models/_models/control-models/forms-new/index.js +6 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/index.js.map +1 -1
- package/build/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.d.ts +29 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.d.ts.map +1 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.js +37 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.js.map +1 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.d.ts +25 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.d.ts.map +1 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.js +35 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.js.map +1 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.d.ts +28 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.d.ts.map +1 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.js +36 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.js.map +1 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.d.ts +35 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.d.ts.map +1 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.js +33 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.js.map +1 -0
- package/package.json +2 -2
- package/src/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.ts +42 -0
- package/src/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.ts +35 -0
- package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-types.ts +18 -2
- package/src/_modules/ngx-models/_models/control-models/forms-new/index.ts +6 -0
- package/src/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.ts +35 -0
- package/src/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.ts +35 -0
- package/src/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.ts +37 -0
- package/src/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.ts +45 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# ✅ ngx-dynamo-models → fsm-dynamo merge — COMPLETION REPORT
|
|
2
|
+
|
|
3
|
+
> **UI-20260604-002** · Dátum: **2026-06-06** · Státusz: **KÉSZ (rollout lezárva)**
|
|
4
|
+
> Kapcsolódó tervek: [`plans/00-MASTER-ngx-models-fsm-merge.md`](./plans/00-MASTER-ngx-models-fsm-merge.md),
|
|
5
|
+
> [`plans/01-naming-convention-DyNM-to-DyFM.md`](./plans/01-naming-convention-DyNM-to-DyFM.md),
|
|
6
|
+
> [`plans/02-consumer-rollout.md`](./plans/02-consumer-rollout.md).
|
|
7
|
+
|
|
8
|
+
## Context — miért
|
|
9
|
+
|
|
10
|
+
A `@futdevpro/ngx-dynamo-models` (`DyNM_` prefix, 76 forrás + 12 spec) egy **framework-agnosztikus** model/enum/control-model
|
|
11
|
+
gyűjtemény volt (az egyetlen `@angular` import ki volt kommentezve). **Körkörös függésben** állt a `fsm-dynamo`-val
|
|
12
|
+
(peerDependency), miközben tartalmilag a fsm `DyFM_` rétegének UI-közeli kiterjesztése.
|
|
13
|
+
|
|
14
|
+
**Cél:** bemozgatni a `fsm-dynamo` egy submodulja alá (`_modules/ngx-models`), egységesíteni a névkonvenciót
|
|
15
|
+
`DyNM_`→`DyFM_`-re (user-direktíva 2026-06-06), átállítani az összes fogyasztót, deprecate-elni a régi package-et.
|
|
16
|
+
**Eredmény:** egyetlen bedrock model-package, megszűnt körkörös függés, egységes `DyFM_` névkonvenció.
|
|
17
|
+
|
|
18
|
+
## Mit csináltunk — végrehajtott állapot
|
|
19
|
+
|
|
20
|
+
### Wave 0 — modul-integráció + rename (fsm-dynamo, additív)
|
|
21
|
+
- Új submodul: `src/_modules/ngx-models/` (88 fájl: `_collections`, `_enums`, `_models`, `_utils`, `index.ts`).
|
|
22
|
+
- A 8 db `@futdevpro/fsm-dynamo` (+1 `/socket`) import → **belső relatív** importtá írva (a fsm submodul-minta szerint).
|
|
23
|
+
- Subpath export: `package.json` `exports` + `typesVersions` → `@futdevpro/fsm-dynamo/ngx-models`.
|
|
24
|
+
- **`DyNM_`→`DyFM_` rename**: 105 exportált szimbólum, identifier-only (AST-biztos) codemod.
|
|
25
|
+
- Build + jasmine: **1409 spec, 0 failure** (a 12 áthozott ngx spec is). Publikálva: **`fsm-dynamo@1.15.22`**.
|
|
26
|
+
|
|
27
|
+
### Collision-kezelés — 3 kategória (VERIFIKÁLT besorolás)
|
|
28
|
+
10 db `DyNM_X` ütközött már létező `DyFM_X`-szel. Forrás-ellenőrzéssel kiderült, hogy a settings-cluster
|
|
29
|
+
**paradigma-kötött** (signal `dependencyDataHandler` vs rxjs) → összeolvasztásuk eltörné a signal-handlert.
|
|
30
|
+
**Döntés: 0 converge, mind a 10 → distinct `DyFM_` név, a tényleges konvergencia → Phase 5.**
|
|
31
|
+
|
|
32
|
+
| Régi `DyNM_` | Új distinct `DyFM_` |
|
|
33
|
+
|---|---|
|
|
34
|
+
| `DyNM_DataHandler` | `DyFM_SignalDataHandler` |
|
|
35
|
+
| `DyNM_DataHandlerDataLoadInProgress` | `DyFM_SignalDataHandlerDataLoadInProgress` |
|
|
36
|
+
| `DyNM_DataHandlerDataLoadPostProcess` | `DyFM_SignalDataHandlerDataLoadPostProcess` |
|
|
37
|
+
| `DyNM_DataHandler_Settings` | `DyFM_SignalDataHandler_Settings` |
|
|
38
|
+
| `DyNM_DataListHandler_Settings` | `DyFM_SignalDataListHandler_Settings` |
|
|
39
|
+
| `DyNM_DataSearchHandler_Settings` | `DyFM_SignalDataSearchHandler_Settings` |
|
|
40
|
+
| `DyNM_ListCollectorDataHandler_Settings` | `DyFM_SignalListCollectorDataHandler_Settings` |
|
|
41
|
+
| `DyNM_Error_Settings` | `DyFM_ErrorDisplay_Settings` |
|
|
42
|
+
| `DyNM_Global_Settings` | `DyFM_UiGlobal_Settings` |
|
|
43
|
+
| `DyNM_global_settings` | `DyFM_uiGlobal_settings` |
|
|
44
|
+
|
|
45
|
+
A maradék **95** szimbólum tiszta `DyNM_X`→`DyFM_X`. **Kivétel:** a `DyNM_STORAGE_ENCRYPTION_KEY` **string-literál**
|
|
46
|
+
(runtime env-var kulcs) **VÁLTOZATLAN** — átnevezése a Keystore/deploy-kontraktust törné (FR-015).
|
|
47
|
+
|
|
48
|
+
### Hard cutover (NEM bridge-shim)
|
|
49
|
+
A `dynamo-ngx-models` GitHub repo **archivált (read-only)** → bridge-shim nem publikálható. Ezért **tiszta hard cutover**:
|
|
50
|
+
minden fogyasztó közvetlenül átállt, a régi `ngx-dynamo-models@1.15.14` npm-en marad fallbacknek, majd **deprecate-elve**.
|
|
51
|
+
|
|
52
|
+
## Rollout — publikált/pushed (commit-hash-ekkel)
|
|
53
|
+
|
|
54
|
+
| Réteg | Verzió / commit | Build |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| **fsm-dynamo** | `1.15.22` (`319c512`) | ✅ 1409/0 |
|
|
57
|
+
| **dynamo-ngx** | `18.15.11` (`236a82f`) | ✅ ng-packagr (DyNX_DataHandler → extends DyFM_SignalDataHandler) |
|
|
58
|
+
| **dynamo-builder-models** | `1.15.13` (`c152f2a`) | ✅ tsc + 232/0 |
|
|
59
|
+
| **ngx-fdp-templates** | `18.15.21` (`893bdfb`) | ✅ karma 48/0 (teszt-fix után) |
|
|
60
|
+
| **LIVE (10)** | art-tarot `c5548ee` · dum `3042efc` · war-factory `a611fc8` · adventor `6c2d194` · fdp-assistant `3ebcf50` · overseer `309fea3` · organizer `885430d` · warbots `062331b` · fdp-pal `3837635` · dynamo-builder `bb63b1a` | 8 lokál build-green; 2 lásd alább |
|
|
61
|
+
| **Template (2)** | dynamo-template-project `7a11c11` · fdp-template-project `bf98bd3` | codemod (client+mobile) |
|
|
62
|
+
| **OGS** | oldlight-site `f50f520` (docs/ogs-site-spec-plan branch) | codemod |
|
|
63
|
+
| **ngx-dynamo-models** | `1.15.14` — **DEPRECATED** az npm-en | fallback fury/STALE-nek |
|
|
64
|
+
|
|
65
|
+
## Megoldott akadályok + rendszerszintű tanulságok
|
|
66
|
+
|
|
67
|
+
1. **Supply-chain policy (`minimumReleaseAge`)** — a frissen publikált bedrock-verziókat blokkolta. **GLOBÁLIS SZABÁLY:**
|
|
68
|
+
`minimumReleaseAgeExclude: ['@futdevpro/*']` wildcard minden repó `pnpm-workspace.yaml`-jában.
|
|
69
|
+
2. **Semver vezető-nulla gotcha** — a dep-spec **NEM** lehet vezető-nullás (`1.15.22`, nem `01.15.22`); peer-ként nem matchel.
|
|
70
|
+
(A `version` mező marad vezető-nullás — csak a dep-spec tiszta semver.)
|
|
71
|
+
3. **`allowBuilds` placeholder** — a pnpm v11 `set this to true or false` placeholdert generál; `true`-ra kell állítani,
|
|
72
|
+
különben az esbuild/lmdb natív build kimarad és az Angular build elhal.
|
|
73
|
+
4. **FR-014 auth-interceptor teszt** (ngx-fdp-templates) — a mai auth-proxy SSOT config-drift (`/auth-api`→`/api`,
|
|
74
|
+
`/auth/refresh-pair`→`/refresh-pair`) miatt bukott; a teszt a régi URL-t drótozta. **Fix:** a teszt a
|
|
75
|
+
`FDP_authApiEnv_settings`-ből építi az auth-flow URL-t (robusztus, nem drótozott). NEM az ngx-models migráció okozta.
|
|
76
|
+
5. **check-dev-leftovers CI-step (MINDEN consumer!)** — a `dc ci-ck-dl` PACKAGE_VERSIONS ellenőrzés a
|
|
77
|
+
`.dynamo/pipeline.cicd.config.json` (template-eknél root `pipeline.cicd.config.json`) `packages` listájában elvárja
|
|
78
|
+
az ott felsorolt @futdevpro csomagokat. A dep eltávolítása után a checker "not found in package.json"-nal BUKIK,
|
|
79
|
+
és a step `fatal:true` a LIVE/template configokban → az egész CI elhal (a client-build maga zöld!). **KÖTELEZŐ záró-lépés:
|
|
80
|
+
minden migrált consumer CICD-configjából kivenni a `@futdevpro/ngx-dynamo-models`-t a PACKAGE_VERSIONS listából.**
|
|
81
|
+
Elvégezve mind a 12 consumer-en (dum 85d6064, war-factory e43a497, organizer 086d134, art-tarot 79901e9,
|
|
82
|
+
fdp-template-project ebdfbed, dynamo-builder 05f5f1e, oldlight-site b5b3f30, fdp-pal accc04f, fdp-assistant 038a45d,
|
|
83
|
+
warbots 82979d2, dynamo-template-project 1fbbafb, adventor 6219b06).
|
|
84
|
+
|
|
85
|
+
## Ismert, tudatosan hagyott elemek (follow-up)
|
|
86
|
+
|
|
87
|
+
- **fdp-pal** (`3837635`): **PRE-EXISTING** build-hiba (`NgxMaskPipe` AOT) — a migráció nélkül is reprodukálódik
|
|
88
|
+
(stash-elt pristine build is bukik). NEM az ngx-models migráció; a fdp-pal-tulaj külön javítja.
|
|
89
|
+
- **dynamo-builder** (`bb63b1a`): lokál **Windows natív postinstall crash** (esbuild/lmdb); a Linux CI-runner tisztán épít.
|
|
90
|
+
- **Phase 5** (külön feladat): a 10 distinct-re keresztelt signal/UI cluster **tényleges összevonása** a rxjs `DyFM_`
|
|
91
|
+
réteggel (signal↔observable paradigma-refaktor). Lásd a megmaradt `DyFM_Signal*` neveket.
|
|
92
|
+
- **fury** (STALE): a deprecated `ngx-dynamo-models@1.15.14`-en marad (tudatosan elengedve).
|
|
93
|
+
- **fdp-github-actions** dev-leftovers fixture-ök: szándékos teszt-adat, NEM migrálandó.
|
|
94
|
+
|
|
95
|
+
## Verifikáció
|
|
96
|
+
|
|
97
|
+
- **Workspace-sweep:** `grep -rl '@futdevpro/ngx-dynamo-models'` (node_modules/build/DISABLED/tgz nélkül) → **0 valódi találat**.
|
|
98
|
+
- **npm:** `npm view @futdevpro/ngx-dynamo-models deprecated` → a deprecation-üzenetet adja.
|
|
99
|
+
- **fsm-dynamo modul:** `grep -rE '\bDyNM_' src/_modules/ngx-models` → csak a védett `DyNM_STORAGE_ENCRYPTION_KEY` env-kulcs.
|
|
100
|
+
- Minden publikált package + 8 LIVE: build-green (lokál és/vagy CI).
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
> ✅ **KÉSZ (2026-06-06)** — rollout lezárva. Végrehajtott állapot + commit-hash-ek + tanulságok:
|
|
2
|
+
> [`../2026-06-06-ngx-models-merge-completion.md`](../2026-06-06-ngx-models-merge-completion.md).
|
|
3
|
+
> Eltérés a tervtől: 0 converge / 10 distinct (settings paradigma-kötött → Phase 5); bridge-shim helyett
|
|
4
|
+
> hard cutover (a repo archivált). Globális arch-doc: `documentations/guidelines/development/ngx-models-fsm-merge.md`.
|
|
5
|
+
|
|
1
6
|
# MASTER — `@futdevpro/ngx-dynamo-models` → `@futdevpro/fsm-dynamo` merge + `DyNM_`→`DyFM_` rename
|
|
2
7
|
|
|
3
8
|
> Koordinációs master-plan (UI-20260604-002). Dátum: 2026-06-06.
|
|
@@ -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,17 +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';
|
|
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';
|
|
5
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';
|
|
6
12
|
import { DyFM_TextAreaFieldNew_Settings } from './textarea-field-new-settings.control-model';
|
|
7
13
|
import { DyFM_TextFieldNew_Settings } from './text-field-new-settings.control-model';
|
|
8
14
|
/**
|
|
9
|
-
* Forms v2
|
|
15
|
+
* Forms v2 — Settings-szintű discriminated union.
|
|
10
16
|
*
|
|
11
17
|
* Ezen a típuson a TypeScript `field.type === DyFM_Field_Type.text` után már a
|
|
12
18
|
* `DyFM_TextFieldNew_Settings` altípust ismeri (type-narrowing).
|
|
13
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
|
+
*
|
|
14
24
|
* @see _specifications/forms-v2/02-architecture-spec.md (11. mátrix)
|
|
15
25
|
*/
|
|
16
|
-
export type DyFM_FieldNew_Settings_AnyType = DyFM_TextFieldNew_Settings | DyFM_TextAreaFieldNew_Settings | DyFM_NumberFieldNew_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;
|
|
17
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,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAErF
|
|
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"}
|
|
@@ -2,10 +2,16 @@ export * from './field-new-settings.control-model';
|
|
|
2
2
|
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
|
+
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';
|
|
5
8
|
export * from './checkbox-field-new-settings.control-model';
|
|
6
9
|
export * from './select-field-new-settings.control-model';
|
|
7
10
|
export * from './multiselect-field-new-settings.control-model';
|
|
11
|
+
export * from './radio-select-field-new-settings.control-model';
|
|
8
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';
|
|
9
15
|
export * from './form-new-settings.control-model';
|
|
10
16
|
export * from './field-new-types';
|
|
11
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,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"}
|
|
@@ -7,10 +7,16 @@ tslib_1.__exportStar(require("./field-new-settings.control-model"), exports);
|
|
|
7
7
|
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
|
+
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);
|
|
10
13
|
tslib_1.__exportStar(require("./checkbox-field-new-settings.control-model"), exports);
|
|
11
14
|
tslib_1.__exportStar(require("./select-field-new-settings.control-model"), exports);
|
|
12
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);
|
|
13
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);
|
|
14
20
|
tslib_1.__exportStar(require("./form-new-settings.control-model"), exports);
|
|
15
21
|
tslib_1.__exportStar(require("./field-new-types"), exports);
|
|
16
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,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,29 @@
|
|
|
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 — password input field settings.
|
|
5
|
+
*
|
|
6
|
+
* Single-line, masked input. Browser autocomplete-friendly (`new-password`
|
|
7
|
+
* vagy `current-password` — login/register-szerinti). Wave-1-ben szöveges
|
|
8
|
+
* tartalom, jelszó-strength-meter külön Wave-2 candidate.
|
|
9
|
+
*
|
|
10
|
+
* Login + registration flow alapozza a Password Settings-t:
|
|
11
|
+
* - Login: `autocomplete: 'current-password'`, validators=[required]
|
|
12
|
+
* - Register: `autocomplete: 'new-password'`, validators=[required, minLength]
|
|
13
|
+
*
|
|
14
|
+
* @see _specifications/forms-v2/02-architecture-spec.md (2.2)
|
|
15
|
+
*/
|
|
16
|
+
export declare class DyFM_PasswordFieldNew_Settings extends DyFM_FieldNew_Settings<string> {
|
|
17
|
+
readonly type: DyFM_Field_Type.password;
|
|
18
|
+
/** HTML autocomplete attribute — `'current-password'` (login) | `'new-password'` (register). */
|
|
19
|
+
autocomplete?: 'current-password' | 'new-password' | 'off';
|
|
20
|
+
/** Karakter-korlát (felső). */
|
|
21
|
+
maxLength?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Jelszó-show-toggle gomb a mező végén (Wave-1: csak deklaratív flag, a render-réteg
|
|
24
|
+
* dönti el hogy implementálja-e). Default: `true`.
|
|
25
|
+
*/
|
|
26
|
+
showToggle?: boolean;
|
|
27
|
+
constructor(set: Partial<DyFM_PasswordFieldNew_Settings>);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=password-field-new-settings.control-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password-field-new-settings.control-model.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/password-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;;;;;;;;;;;;GAYG;AACH,qBAAa,8BAA+B,SAAQ,sBAAsB,CAAC,MAAM,CAAC;IAChF,SAAkB,IAAI,EAAE,eAAe,CAAC,QAAQ,CAA4B;IAE5E,gGAAgG;IAChG,YAAY,CAAC,EAAE,kBAAkB,GAAG,cAAc,GAAG,KAAK,CAAC;IAC3D,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;gBAET,GAAG,EAAE,OAAO,CAAC,8BAA8B,CAAC;CAKzD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyFM_PasswordFieldNew_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 — password input field settings.
|
|
8
|
+
*
|
|
9
|
+
* Single-line, masked input. Browser autocomplete-friendly (`new-password`
|
|
10
|
+
* vagy `current-password` — login/register-szerinti). Wave-1-ben szöveges
|
|
11
|
+
* tartalom, jelszó-strength-meter külön Wave-2 candidate.
|
|
12
|
+
*
|
|
13
|
+
* Login + registration flow alapozza a Password Settings-t:
|
|
14
|
+
* - Login: `autocomplete: 'current-password'`, validators=[required]
|
|
15
|
+
* - Register: `autocomplete: 'new-password'`, validators=[required, minLength]
|
|
16
|
+
*
|
|
17
|
+
* @see _specifications/forms-v2/02-architecture-spec.md (2.2)
|
|
18
|
+
*/
|
|
19
|
+
class DyFM_PasswordFieldNew_Settings extends field_new_settings_control_model_1.DyFM_FieldNew_Settings {
|
|
20
|
+
type = field_type_enum_1.DyFM_Field_Type.password;
|
|
21
|
+
/** HTML autocomplete attribute — `'current-password'` (login) | `'new-password'` (register). */
|
|
22
|
+
autocomplete;
|
|
23
|
+
/** Karakter-korlát (felső). */
|
|
24
|
+
maxLength;
|
|
25
|
+
/**
|
|
26
|
+
* Jelszó-show-toggle gomb a mező végén (Wave-1: csak deklaratív flag, a render-réteg
|
|
27
|
+
* dönti el hogy implementálja-e). Default: `true`.
|
|
28
|
+
*/
|
|
29
|
+
showToggle;
|
|
30
|
+
constructor(set) {
|
|
31
|
+
super(set);
|
|
32
|
+
const { type: _ignoredType, ...rest } = set;
|
|
33
|
+
Object.assign(this, rest);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.DyFM_PasswordFieldNew_Settings = DyFM_PasswordFieldNew_Settings;
|
|
37
|
+
//# sourceMappingURL=password-field-new-settings.control-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password-field-new-settings.control-model.js","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.ts"],"names":[],"mappings":";;;AAAA,qEAAkE;AAClE,yFAA4E;AAE5E;;;;;;;;;;;;GAYG;AACH,MAAa,8BAA+B,SAAQ,yDAA8B;IAC9D,IAAI,GAA6B,iCAAe,CAAC,QAAQ,CAAC;IAE5E,gGAAgG;IAChG,YAAY,CAA+C;IAC3D,+BAA+B;IAC/B,SAAS,CAAU;IACnB;;;OAGG;IACH,UAAU,CAAW;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;AAlBD,wEAkBC"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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) — Slider input field settings.
|
|
5
|
+
*
|
|
6
|
+
* Egyértékű csúszka. Render-réteg: natív `<input type="range">`, Tailwind
|
|
7
|
+
* `accent-cyan-500` track/thumb-coloring + sajat value-display. Material-mentes.
|
|
8
|
+
*
|
|
9
|
+
* Multi-handle (start+end) változat: `DyFM_SliderRangeFieldNew_Settings`.
|
|
10
|
+
*
|
|
11
|
+
* @see _specifications/forms-v2/02-architecture-spec.md (2.2)
|
|
12
|
+
*/
|
|
13
|
+
export declare class DyFM_SliderFieldNew_Settings extends DyFM_FieldNew_Settings<number> {
|
|
14
|
+
readonly type: DyFM_Field_Type.slider;
|
|
15
|
+
/** Alsó határ. Kotelezo (a render `<input type="range">` `min` attr-ja). */
|
|
16
|
+
min: number;
|
|
17
|
+
/** Felso hatar. Kotelezo. */
|
|
18
|
+
max: number;
|
|
19
|
+
/** Lepes-koz (default `1`). */
|
|
20
|
+
step?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Megmutatja-e a jelenlegi erteket a slider mellett. Default `true`.
|
|
23
|
+
* Render-szinten a Component egy `<output>` element-en mutatja.
|
|
24
|
+
*/
|
|
25
|
+
showValueDisplay?: boolean;
|
|
26
|
+
constructor(set: Partial<DyFM_SliderFieldNew_Settings>);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=slider-field-new-settings.control-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-field-new-settings.control-model.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/slider-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;;;;;;;;;GASG;AACH,qBAAa,4BAA6B,SAAQ,sBAAsB,CAAC,MAAM,CAAC;IAC9E,SAAkB,IAAI,EAAE,eAAe,CAAC,MAAM,CAA0B;IAExE,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAK;IAEhB,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAO;IAElB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;gBAEf,GAAG,EAAE,OAAO,CAAC,4BAA4B,CAAC;CAKvD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyFM_SliderFieldNew_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) — Slider input field settings.
|
|
8
|
+
*
|
|
9
|
+
* Egyértékű csúszka. Render-réteg: natív `<input type="range">`, Tailwind
|
|
10
|
+
* `accent-cyan-500` track/thumb-coloring + sajat value-display. Material-mentes.
|
|
11
|
+
*
|
|
12
|
+
* Multi-handle (start+end) változat: `DyFM_SliderRangeFieldNew_Settings`.
|
|
13
|
+
*
|
|
14
|
+
* @see _specifications/forms-v2/02-architecture-spec.md (2.2)
|
|
15
|
+
*/
|
|
16
|
+
class DyFM_SliderFieldNew_Settings extends field_new_settings_control_model_1.DyFM_FieldNew_Settings {
|
|
17
|
+
type = field_type_enum_1.DyFM_Field_Type.slider;
|
|
18
|
+
/** Alsó határ. Kotelezo (a render `<input type="range">` `min` attr-ja). */
|
|
19
|
+
min = 0;
|
|
20
|
+
/** Felso hatar. Kotelezo. */
|
|
21
|
+
max = 100;
|
|
22
|
+
/** Lepes-koz (default `1`). */
|
|
23
|
+
step;
|
|
24
|
+
/**
|
|
25
|
+
* Megmutatja-e a jelenlegi erteket a slider mellett. Default `true`.
|
|
26
|
+
* Render-szinten a Component egy `<output>` element-en mutatja.
|
|
27
|
+
*/
|
|
28
|
+
showValueDisplay;
|
|
29
|
+
constructor(set) {
|
|
30
|
+
super(set);
|
|
31
|
+
const { type: _ignoredType, ...rest } = set;
|
|
32
|
+
Object.assign(this, rest);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.DyFM_SliderFieldNew_Settings = DyFM_SliderFieldNew_Settings;
|
|
36
|
+
//# sourceMappingURL=slider-field-new-settings.control-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-field-new-settings.control-model.js","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.ts"],"names":[],"mappings":";;;AAAA,qEAAkE;AAClE,yFAA4E;AAE5E;;;;;;;;;GASG;AACH,MAAa,4BAA6B,SAAQ,yDAA8B;IAC5D,IAAI,GAA2B,iCAAe,CAAC,MAAM,CAAC;IAExE,4EAA4E;IAC5E,GAAG,GAAW,CAAC,CAAC;IAEhB,6BAA6B;IAC7B,GAAG,GAAW,GAAG,CAAC;IAElB,+BAA+B;IAC/B,IAAI,CAAU;IAEd;;;OAGG;IACH,gBAAgB,CAAW;IAE3B,YAAY,GAA0C;QACpD,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;AAvBD,oEAuBC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
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) — slider-range value shape (`{ start: number, end: number }`).
|
|
5
|
+
*
|
|
6
|
+
* Object-shape (NEM tuple) — a JSON-szerializáció szelektivebb, a server-oldali
|
|
7
|
+
* fsm-dynamo modelek POJO-kent kezelhetik.
|
|
8
|
+
*/
|
|
9
|
+
export interface DyFM_SliderRangeNewValue {
|
|
10
|
+
start: number;
|
|
11
|
+
end: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Forms v2 (Wave-2a) — Slider-range input field settings.
|
|
15
|
+
*
|
|
16
|
+
* Két szinkronizált natív `<input type="range">`. Cross-field validator a Params
|
|
17
|
+
* szinten (`start <= end` invariant). Material-mentes.
|
|
18
|
+
*
|
|
19
|
+
* @see _specifications/forms-v2/02-architecture-spec.md (2.2)
|
|
20
|
+
*/
|
|
21
|
+
export declare class DyFM_SliderRangeFieldNew_Settings extends DyFM_FieldNew_Settings<DyFM_SliderRangeNewValue> {
|
|
22
|
+
readonly type: DyFM_Field_Type.sliderRange;
|
|
23
|
+
/** Alsó határ (mindkét slider-ra). */
|
|
24
|
+
min: number;
|
|
25
|
+
/** Felső határ (mindkét slider-ra). */
|
|
26
|
+
max: number;
|
|
27
|
+
/** Lépésköz (default `1`). */
|
|
28
|
+
step?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Megmutatja-e a `start..end` ertekeket a sliderek mellett. Default `true`.
|
|
31
|
+
*/
|
|
32
|
+
showValueDisplay?: boolean;
|
|
33
|
+
constructor(set: Partial<DyFM_SliderRangeFieldNew_Settings>);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=slider-range-field-new-settings.control-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-range-field-new-settings.control-model.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/slider-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;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;GAOG;AACH,qBAAa,iCAAkC,SAAQ,sBAAsB,CAAC,wBAAwB,CAAC;IACrG,SAAkB,IAAI,EAAE,eAAe,CAAC,WAAW,CAA+B;IAElF,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAK;IAEhB,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAO;IAElB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;gBAEf,GAAG,EAAE,OAAO,CAAC,iCAAiC,CAAC;CAK5D"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyFM_SliderRangeFieldNew_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) — Slider-range input field settings.
|
|
8
|
+
*
|
|
9
|
+
* Két szinkronizált natív `<input type="range">`. Cross-field validator a Params
|
|
10
|
+
* szinten (`start <= end` invariant). Material-mentes.
|
|
11
|
+
*
|
|
12
|
+
* @see _specifications/forms-v2/02-architecture-spec.md (2.2)
|
|
13
|
+
*/
|
|
14
|
+
class DyFM_SliderRangeFieldNew_Settings extends field_new_settings_control_model_1.DyFM_FieldNew_Settings {
|
|
15
|
+
type = field_type_enum_1.DyFM_Field_Type.sliderRange;
|
|
16
|
+
/** Alsó határ (mindkét slider-ra). */
|
|
17
|
+
min = 0;
|
|
18
|
+
/** Felső határ (mindkét slider-ra). */
|
|
19
|
+
max = 100;
|
|
20
|
+
/** Lépésköz (default `1`). */
|
|
21
|
+
step;
|
|
22
|
+
/**
|
|
23
|
+
* Megmutatja-e a `start..end` ertekeket a sliderek mellett. Default `true`.
|
|
24
|
+
*/
|
|
25
|
+
showValueDisplay;
|
|
26
|
+
constructor(set) {
|
|
27
|
+
super(set);
|
|
28
|
+
const { type: _ignoredType, ...rest } = set;
|
|
29
|
+
Object.assign(this, rest);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.DyFM_SliderRangeFieldNew_Settings = DyFM_SliderRangeFieldNew_Settings;
|
|
33
|
+
//# sourceMappingURL=slider-range-field-new-settings.control-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-range-field-new-settings.control-model.js","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.ts"],"names":[],"mappings":";;;AAAA,qEAAkE;AAClE,yFAA4E;AAa5E;;;;;;;GAOG;AACH,MAAa,iCAAkC,SAAQ,yDAAgD;IACnF,IAAI,GAAgC,iCAAe,CAAC,WAAW,CAAC;IAElF,sCAAsC;IACtC,GAAG,GAAW,CAAC,CAAC;IAEhB,uCAAuC;IACvC,GAAG,GAAW,GAAG,CAAC;IAElB,8BAA8B;IAC9B,IAAI,CAAU;IAEd;;OAEG;IACH,gBAAgB,CAAW;IAE3B,YAAY,GAA+C;QACzD,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;AAtBD,8EAsBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/fsm-dynamo",
|
|
3
|
-
"version": "01.
|
|
3
|
+
"version": "01.16.1",
|
|
4
4
|
"description": "Full Stack Model Collection for Dynamic (NodeJS-Typescript) Framework called Dynamo, by Future Development Ltd.",
|
|
5
5
|
"DyBu_settings": {
|
|
6
6
|
"packageType": "full-stack-package",
|
|
@@ -265,7 +265,7 @@
|
|
|
265
265
|
"uuid": "11.1.0"
|
|
266
266
|
},
|
|
267
267
|
"devDependencies": {
|
|
268
|
-
"@futdevpro/dynamo-eslint": "1.15.
|
|
268
|
+
"@futdevpro/dynamo-eslint": "1.15.12",
|
|
269
269
|
"@types/jasmine": "~4.3.5",
|
|
270
270
|
"@typescript-eslint/eslint-plugin": "^8.41.0",
|
|
271
271
|
"@typescript-eslint/parser": "^8.41.0",
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { DyFM_Field_Type } from '../../../_enums/field-type.enum';
|
|
2
|
+
import { DyFM_FieldNew_Settings } from './field-new-settings.control-model';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Forms v2 (Wave-2a) — date-range value shape (`{ start: string, end: string }`).
|
|
6
|
+
*
|
|
7
|
+
* Mindketto ISO `YYYY-MM-DD` formátumban. Üres / `''` érték = nem allítva.
|
|
8
|
+
*/
|
|
9
|
+
export interface DyFM_DateRangeNewValue {
|
|
10
|
+
start: string;
|
|
11
|
+
end: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Forms v2 (Wave-2a) — date-range input field settings.
|
|
16
|
+
*
|
|
17
|
+
* Két natív `<input type="date">` egymás mellett, cross-field validator a
|
|
18
|
+
* Params-szinten (`start <= end` invariant). Material-mentes.
|
|
19
|
+
*
|
|
20
|
+
* `minDate` / `maxDate`: ISO `YYYY-MM-DD` — mindkét input-ra alkalmazva.
|
|
21
|
+
* `allowSameDay` (default `true`) — ha `false`, `start === end` érvénytelen.
|
|
22
|
+
*
|
|
23
|
+
* @see _specifications/forms-v2/02-architecture-spec.md (2.2)
|
|
24
|
+
*/
|
|
25
|
+
export class DyFM_DateRangeFieldNew_Settings extends DyFM_FieldNew_Settings<DyFM_DateRangeNewValue> {
|
|
26
|
+
override readonly type: DyFM_Field_Type.dateRange = DyFM_Field_Type.dateRange;
|
|
27
|
+
|
|
28
|
+
/** Alsó határ ISO `YYYY-MM-DD`. */
|
|
29
|
+
minDate?: string;
|
|
30
|
+
|
|
31
|
+
/** Felső határ ISO `YYYY-MM-DD`. */
|
|
32
|
+
maxDate?: string;
|
|
33
|
+
|
|
34
|
+
/** `start === end` engedélyezve (default `true`). */
|
|
35
|
+
allowSameDay?: boolean;
|
|
36
|
+
|
|
37
|
+
constructor(set: Partial<DyFM_DateRangeFieldNew_Settings>) {
|
|
38
|
+
super(set);
|
|
39
|
+
const { type: _ignoredType, ...rest } = set;
|
|
40
|
+
Object.assign(this, rest);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { DyFM_Field_Type } from '../../../_enums/field-type.enum';
|
|
2
|
+
import { DyFM_FieldNew_Settings } from './field-new-settings.control-model';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Forms v2 (Wave-2a) — date-time input field settings.
|
|
6
|
+
*
|
|
7
|
+
* Native `<input type="datetime-local">` (Chromium 90+, Firefox 93+ stabil).
|
|
8
|
+
* Value: ISO `YYYY-MM-DDTHH:mm` string. Material-mentes (semmi `<mat-datepicker>`).
|
|
9
|
+
*
|
|
10
|
+
* `minDateTime` / `maxDateTime`: szintén ISO `YYYY-MM-DDTHH:mm` formátum —
|
|
11
|
+
* a render `<input>`-on a `min` / `max` attr-ra megy.
|
|
12
|
+
*
|
|
13
|
+
* @see _specifications/forms-v2/02-architecture-spec.md (2.2)
|
|
14
|
+
*/
|
|
15
|
+
export class DyFM_DateTimeFieldNew_Settings extends DyFM_FieldNew_Settings<string> {
|
|
16
|
+
override readonly type: DyFM_Field_Type.dateTime = DyFM_Field_Type.dateTime;
|
|
17
|
+
|
|
18
|
+
/** Alsó határ ISO `YYYY-MM-DDTHH:mm` formátumban. */
|
|
19
|
+
minDateTime?: string;
|
|
20
|
+
|
|
21
|
+
/** Felső határ ISO `YYYY-MM-DDTHH:mm` formátumban. */
|
|
22
|
+
maxDateTime?: string;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Step (másodperc-szám) — opcionális; ha hiányzik, az input csak perc-pontosságú.
|
|
26
|
+
* Pl. `60` (perces stepek, default), `1` (másodperc-pontos), `300` (5 perces).
|
|
27
|
+
*/
|
|
28
|
+
stepSeconds?: number;
|
|
29
|
+
|
|
30
|
+
constructor(set: Partial<DyFM_DateTimeFieldNew_Settings>) {
|
|
31
|
+
super(set);
|
|
32
|
+
const { type: _ignoredType, ...rest } = set;
|
|
33
|
+
Object.assign(this, rest);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -1,24 +1,40 @@
|
|
|
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';
|
|
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';
|
|
5
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';
|
|
6
12
|
import { DyFM_TextAreaFieldNew_Settings } from './textarea-field-new-settings.control-model';
|
|
7
13
|
import { DyFM_TextFieldNew_Settings } from './text-field-new-settings.control-model';
|
|
8
14
|
|
|
9
15
|
/**
|
|
10
|
-
* Forms v2
|
|
16
|
+
* Forms v2 — Settings-szintű discriminated union.
|
|
11
17
|
*
|
|
12
18
|
* Ezen a típuson a TypeScript `field.type === DyFM_Field_Type.text` után már a
|
|
13
19
|
* `DyFM_TextFieldNew_Settings` altípust ismeri (type-narrowing).
|
|
14
20
|
*
|
|
21
|
+
* Wave-1A: text, textarea, number, checkbox, select, multiselect, date.
|
|
22
|
+
* Wave-1+ Login: password.
|
|
23
|
+
* Wave-2a: slider, sliderRange, radioSelect, dateTime, dateRange.
|
|
24
|
+
*
|
|
15
25
|
* @see _specifications/forms-v2/02-architecture-spec.md (11. mátrix)
|
|
16
26
|
*/
|
|
17
27
|
export type DyFM_FieldNew_Settings_AnyType =
|
|
18
28
|
| DyFM_TextFieldNew_Settings
|
|
19
29
|
| DyFM_TextAreaFieldNew_Settings
|
|
20
30
|
| DyFM_NumberFieldNew_Settings
|
|
31
|
+
| DyFM_PasswordFieldNew_Settings
|
|
32
|
+
| DyFM_SliderFieldNew_Settings
|
|
33
|
+
| DyFM_SliderRangeFieldNew_Settings
|
|
21
34
|
| DyFM_CheckboxFieldNew_Settings
|
|
22
35
|
| DyFM_SelectFieldNew_Settings<unknown>
|
|
23
36
|
| DyFM_MultiselectFieldNew_Settings<unknown>
|
|
24
|
-
|
|
|
37
|
+
| DyFM_RadioSelectFieldNew_Settings<unknown>
|
|
38
|
+
| DyFM_DateFieldNew_Settings
|
|
39
|
+
| DyFM_DateTimeFieldNew_Settings
|
|
40
|
+
| DyFM_DateRangeFieldNew_Settings;
|
|
@@ -5,9 +5,15 @@ export * from './field-new-settings.control-model';
|
|
|
5
5
|
export * from './text-field-new-settings.control-model';
|
|
6
6
|
export * from './textarea-field-new-settings.control-model';
|
|
7
7
|
export * from './number-field-new-settings.control-model';
|
|
8
|
+
export * from './password-field-new-settings.control-model';
|
|
9
|
+
export * from './slider-field-new-settings.control-model';
|
|
10
|
+
export * from './slider-range-field-new-settings.control-model';
|
|
8
11
|
export * from './checkbox-field-new-settings.control-model';
|
|
9
12
|
export * from './select-field-new-settings.control-model';
|
|
10
13
|
export * from './multiselect-field-new-settings.control-model';
|
|
14
|
+
export * from './radio-select-field-new-settings.control-model';
|
|
11
15
|
export * from './date-field-new-settings.control-model';
|
|
16
|
+
export * from './datetime-field-new-settings.control-model';
|
|
17
|
+
export * from './date-range-field-new-settings.control-model';
|
|
12
18
|
export * from './form-new-settings.control-model';
|
|
13
19
|
export * from './field-new-types';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { DyFM_Field_Type } from '../../../_enums/field-type.enum';
|
|
2
|
+
import { DyFM_FieldNew_Settings } from './field-new-settings.control-model';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Forms v2 — password input field settings.
|
|
6
|
+
*
|
|
7
|
+
* Single-line, masked input. Browser autocomplete-friendly (`new-password`
|
|
8
|
+
* vagy `current-password` — login/register-szerinti). Wave-1-ben szöveges
|
|
9
|
+
* tartalom, jelszó-strength-meter külön Wave-2 candidate.
|
|
10
|
+
*
|
|
11
|
+
* Login + registration flow alapozza a Password Settings-t:
|
|
12
|
+
* - Login: `autocomplete: 'current-password'`, validators=[required]
|
|
13
|
+
* - Register: `autocomplete: 'new-password'`, validators=[required, minLength]
|
|
14
|
+
*
|
|
15
|
+
* @see _specifications/forms-v2/02-architecture-spec.md (2.2)
|
|
16
|
+
*/
|
|
17
|
+
export class DyFM_PasswordFieldNew_Settings extends DyFM_FieldNew_Settings<string> {
|
|
18
|
+
override readonly type: DyFM_Field_Type.password = DyFM_Field_Type.password;
|
|
19
|
+
|
|
20
|
+
/** HTML autocomplete attribute — `'current-password'` (login) | `'new-password'` (register). */
|
|
21
|
+
autocomplete?: 'current-password' | 'new-password' | 'off';
|
|
22
|
+
/** Karakter-korlát (felső). */
|
|
23
|
+
maxLength?: number;
|
|
24
|
+
/**
|
|
25
|
+
* Jelszó-show-toggle gomb a mező végén (Wave-1: csak deklaratív flag, a render-réteg
|
|
26
|
+
* dönti el hogy implementálja-e). Default: `true`.
|
|
27
|
+
*/
|
|
28
|
+
showToggle?: boolean;
|
|
29
|
+
|
|
30
|
+
constructor(set: Partial<DyFM_PasswordFieldNew_Settings>) {
|
|
31
|
+
super(set);
|
|
32
|
+
const { type: _ignoredType, ...rest } = set;
|
|
33
|
+
Object.assign(this, rest);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
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
|
+
/**
|
|
6
|
+
* Forms v2 (Wave-2a) — radio-group field settings.
|
|
7
|
+
*
|
|
8
|
+
* Native `<input type="radio">`-list, `<fieldset>+<legend>` keret-tel.
|
|
9
|
+
* Egy aktív választás (`T`), `options` ugyanaz a shape mint a `Select`-en.
|
|
10
|
+
* Material-mentes (semmi `<mat-radio-group>`).
|
|
11
|
+
*
|
|
12
|
+
* Layout:
|
|
13
|
+
* - `'vertical'` (default) — minden opció külön sorba
|
|
14
|
+
* - `'horizontal'` — egy sorba, flex-wrap-pel
|
|
15
|
+
*
|
|
16
|
+
* @see _specifications/forms-v2/02-architecture-spec.md (2.2)
|
|
17
|
+
*/
|
|
18
|
+
export class DyFM_RadioSelectFieldNew_Settings<T = string> extends DyFM_FieldNew_Settings<T> {
|
|
19
|
+
override readonly type: DyFM_Field_Type.radioSelect = DyFM_Field_Type.radioSelect;
|
|
20
|
+
|
|
21
|
+
/** Választási opciók — ugyanaz a shape mint a `Select`-en. */
|
|
22
|
+
options: DyFM_SelectNewOption<T>[] = [];
|
|
23
|
+
|
|
24
|
+
/** Layout (default `'vertical'`). */
|
|
25
|
+
layout?: 'vertical' | 'horizontal';
|
|
26
|
+
|
|
27
|
+
constructor(set: Partial<DyFM_RadioSelectFieldNew_Settings<T>>) {
|
|
28
|
+
super(set);
|
|
29
|
+
const { type: _ignoredType, ...rest } = set;
|
|
30
|
+
Object.assign(this, rest);
|
|
31
|
+
if (!this.options) {
|
|
32
|
+
this.options = [];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { DyFM_Field_Type } from '../../../_enums/field-type.enum';
|
|
2
|
+
import { DyFM_FieldNew_Settings } from './field-new-settings.control-model';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Forms v2 (Wave-2a) — Slider input field settings.
|
|
6
|
+
*
|
|
7
|
+
* Egyértékű csúszka. Render-réteg: natív `<input type="range">`, Tailwind
|
|
8
|
+
* `accent-cyan-500` track/thumb-coloring + sajat value-display. Material-mentes.
|
|
9
|
+
*
|
|
10
|
+
* Multi-handle (start+end) változat: `DyFM_SliderRangeFieldNew_Settings`.
|
|
11
|
+
*
|
|
12
|
+
* @see _specifications/forms-v2/02-architecture-spec.md (2.2)
|
|
13
|
+
*/
|
|
14
|
+
export class DyFM_SliderFieldNew_Settings extends DyFM_FieldNew_Settings<number> {
|
|
15
|
+
override readonly type: DyFM_Field_Type.slider = DyFM_Field_Type.slider;
|
|
16
|
+
|
|
17
|
+
/** Alsó határ. Kotelezo (a render `<input type="range">` `min` attr-ja). */
|
|
18
|
+
min: number = 0;
|
|
19
|
+
|
|
20
|
+
/** Felso hatar. Kotelezo. */
|
|
21
|
+
max: number = 100;
|
|
22
|
+
|
|
23
|
+
/** Lepes-koz (default `1`). */
|
|
24
|
+
step?: number;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Megmutatja-e a jelenlegi erteket a slider mellett. Default `true`.
|
|
28
|
+
* Render-szinten a Component egy `<output>` element-en mutatja.
|
|
29
|
+
*/
|
|
30
|
+
showValueDisplay?: boolean;
|
|
31
|
+
|
|
32
|
+
constructor(set: Partial<DyFM_SliderFieldNew_Settings>) {
|
|
33
|
+
super(set);
|
|
34
|
+
const { type: _ignoredType, ...rest } = set;
|
|
35
|
+
Object.assign(this, rest);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { DyFM_Field_Type } from '../../../_enums/field-type.enum';
|
|
2
|
+
import { DyFM_FieldNew_Settings } from './field-new-settings.control-model';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Forms v2 (Wave-2a) — slider-range value shape (`{ start: number, end: number }`).
|
|
6
|
+
*
|
|
7
|
+
* Object-shape (NEM tuple) — a JSON-szerializáció szelektivebb, a server-oldali
|
|
8
|
+
* fsm-dynamo modelek POJO-kent kezelhetik.
|
|
9
|
+
*/
|
|
10
|
+
export interface DyFM_SliderRangeNewValue {
|
|
11
|
+
start: number;
|
|
12
|
+
end: number;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Forms v2 (Wave-2a) — Slider-range input field settings.
|
|
17
|
+
*
|
|
18
|
+
* Két szinkronizált natív `<input type="range">`. Cross-field validator a Params
|
|
19
|
+
* szinten (`start <= end` invariant). Material-mentes.
|
|
20
|
+
*
|
|
21
|
+
* @see _specifications/forms-v2/02-architecture-spec.md (2.2)
|
|
22
|
+
*/
|
|
23
|
+
export class DyFM_SliderRangeFieldNew_Settings extends DyFM_FieldNew_Settings<DyFM_SliderRangeNewValue> {
|
|
24
|
+
override readonly type: DyFM_Field_Type.sliderRange = DyFM_Field_Type.sliderRange;
|
|
25
|
+
|
|
26
|
+
/** Alsó határ (mindkét slider-ra). */
|
|
27
|
+
min: number = 0;
|
|
28
|
+
|
|
29
|
+
/** Felső határ (mindkét slider-ra). */
|
|
30
|
+
max: number = 100;
|
|
31
|
+
|
|
32
|
+
/** Lépésköz (default `1`). */
|
|
33
|
+
step?: number;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Megmutatja-e a `start..end` ertekeket a sliderek mellett. Default `true`.
|
|
37
|
+
*/
|
|
38
|
+
showValueDisplay?: boolean;
|
|
39
|
+
|
|
40
|
+
constructor(set: Partial<DyFM_SliderRangeFieldNew_Settings>) {
|
|
41
|
+
super(set);
|
|
42
|
+
const { type: _ignoredType, ...rest } = set;
|
|
43
|
+
Object.assign(this, rest);
|
|
44
|
+
}
|
|
45
|
+
}
|