@futdevpro/fsm-dynamo 1.15.22 → 1.15.23

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 (16) hide show
  1. package/__documentations/2026-06-06-ngx-models-merge-completion.md +100 -0
  2. package/__documentations/plans/00-MASTER-ngx-models-fsm-merge.md +5 -0
  3. package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-types.d.ts +2 -1
  4. package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-types.d.ts.map +1 -1
  5. package/build/_modules/ngx-models/_models/control-models/forms-new/index.d.ts +1 -0
  6. package/build/_modules/ngx-models/_models/control-models/forms-new/index.d.ts.map +1 -1
  7. package/build/_modules/ngx-models/_models/control-models/forms-new/index.js +1 -0
  8. package/build/_modules/ngx-models/_models/control-models/forms-new/index.js.map +1 -1
  9. package/build/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.d.ts +29 -0
  10. package/build/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.d.ts.map +1 -0
  11. package/build/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.js +37 -0
  12. package/build/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.js.map +1 -0
  13. package/package.json +2 -2
  14. package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-types.ts +2 -0
  15. package/src/_modules/ngx-models/_models/control-models/forms-new/index.ts +1 -0
  16. package/src/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.ts +35 -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.
@@ -2,6 +2,7 @@ import { DyFM_CheckboxFieldNew_Settings } from './checkbox-field-new-settings.co
2
2
  import { DyFM_DateFieldNew_Settings } from './date-field-new-settings.control-model';
3
3
  import { DyFM_MultiselectFieldNew_Settings } from './multiselect-field-new-settings.control-model';
4
4
  import { DyFM_NumberFieldNew_Settings } from './number-field-new-settings.control-model';
5
+ import { DyFM_PasswordFieldNew_Settings } from './password-field-new-settings.control-model';
5
6
  import { DyFM_SelectFieldNew_Settings } from './select-field-new-settings.control-model';
6
7
  import { DyFM_TextAreaFieldNew_Settings } from './textarea-field-new-settings.control-model';
7
8
  import { DyFM_TextFieldNew_Settings } from './text-field-new-settings.control-model';
@@ -13,5 +14,5 @@ import { DyFM_TextFieldNew_Settings } from './text-field-new-settings.control-mo
13
14
  *
14
15
  * @see _specifications/forms-v2/02-architecture-spec.md (11. mátrix)
15
16
  */
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;
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;
17
18
  //# 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;;;;;;;GAOG;AACH,MAAM,MAAM,8BAA8B,GACtC,0BAA0B,GAC1B,8BAA8B,GAC9B,4BAA4B,GAC5B,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,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"}
@@ -2,6 +2,7 @@ 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';
5
6
  export * from './checkbox-field-new-settings.control-model';
6
7
  export * from './select-field-new-settings.control-model';
7
8
  export * from './multiselect-field-new-settings.control-model';
@@ -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,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mBAAmB,CAAC"}
@@ -7,6 +7,7 @@ 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);
10
11
  tslib_1.__exportStar(require("./checkbox-field-new-settings.control-model"), exports);
11
12
  tslib_1.__exportStar(require("./select-field-new-settings.control-model"), exports);
12
13
  tslib_1.__exportStar(require("./multiselect-field-new-settings.control-model"), exports);
@@ -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,sFAA4D;AAC5D,oFAA0D;AAC1D,yFAA+D;AAC/D,kFAAwD;AACxD,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/fsm-dynamo",
3
- "version": "01.15.22",
3
+ "version": "01.15.23",
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.10",
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",
@@ -2,6 +2,7 @@ import { DyFM_CheckboxFieldNew_Settings } from './checkbox-field-new-settings.co
2
2
  import { DyFM_DateFieldNew_Settings } from './date-field-new-settings.control-model';
3
3
  import { DyFM_MultiselectFieldNew_Settings } from './multiselect-field-new-settings.control-model';
4
4
  import { DyFM_NumberFieldNew_Settings } from './number-field-new-settings.control-model';
5
+ import { DyFM_PasswordFieldNew_Settings } from './password-field-new-settings.control-model';
5
6
  import { DyFM_SelectFieldNew_Settings } from './select-field-new-settings.control-model';
6
7
  import { DyFM_TextAreaFieldNew_Settings } from './textarea-field-new-settings.control-model';
7
8
  import { DyFM_TextFieldNew_Settings } from './text-field-new-settings.control-model';
@@ -18,6 +19,7 @@ export type DyFM_FieldNew_Settings_AnyType =
18
19
  | DyFM_TextFieldNew_Settings
19
20
  | DyFM_TextAreaFieldNew_Settings
20
21
  | DyFM_NumberFieldNew_Settings
22
+ | DyFM_PasswordFieldNew_Settings
21
23
  | DyFM_CheckboxFieldNew_Settings
22
24
  | DyFM_SelectFieldNew_Settings<unknown>
23
25
  | DyFM_MultiselectFieldNew_Settings<unknown>
@@ -5,6 +5,7 @@ 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';
8
9
  export * from './checkbox-field-new-settings.control-model';
9
10
  export * from './select-field-new-settings.control-model';
10
11
  export * from './multiselect-field-new-settings.control-model';
@@ -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
+ }