@futdevpro/fsm-dynamo 1.20.6 → 1.20.8
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/README.md +28 -28
- package/__documentations/2026-08-23-atomic-rollback-manifest-contract.md +53 -53
- package/__documentations/2026-08-23-forms-v2-color-picker-settings.md +23 -0
- package/build/_modules/ngx-models/_enums/field-type.enum.d.ts +1 -0
- package/build/_modules/ngx-models/_enums/field-type.enum.d.ts.map +1 -1
- package/build/_modules/ngx-models/_enums/field-type.enum.js +1 -0
- package/build/_modules/ngx-models/_enums/field-type.enum.js.map +1 -1
- package/build/_modules/ngx-models/_models/control-models/forms-new/color-picker-field-new-settings.control-model.d.ts +14 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/color-picker-field-new-settings.control-model.d.ts.map +1 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/color-picker-field-new-settings.control-model.js +38 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/color-picker-field-new-settings.control-model.js.map +1 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-types.d.ts +2 -1
- 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 +1 -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 +1 -0
- package/build/_modules/ngx-models/_models/control-models/forms-new/index.js.map +1 -1
- package/package.json +1 -1
- package/src/_modules/deployment/_collections/atomic-rollback-manifest.util.spec.ts +221 -221
- package/src/_modules/deployment/_collections/atomic-rollback-manifest.util.ts +455 -455
- package/src/_modules/deployment/_models/atomic-rollback-manifest.interface.ts +59 -59
- package/src/_modules/deployment/index.ts +2 -2
- package/src/_modules/ngx-models/_enums/field-type.enum.ts +5 -4
- package/src/_modules/ngx-models/_models/control-models/forms-new/color-picker-field-new-settings.control-model.ts +44 -0
- package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-types.ts +5 -3
- package/src/_modules/ngx-models/_models/control-models/forms-new/forms-new.spec.ts +36 -5
- package/src/_modules/ngx-models/_models/control-models/forms-new/index.ts +3 -2
package/README.md
CHANGED
|
@@ -401,28 +401,28 @@ const decrypted = DyFM_Crypto.decrypt(encrypted, 'my-secret-key');
|
|
|
401
401
|
For publication authenticity, `DyFM_ArtifactSignature_ControlService` signs exact caller-provided bytes with a
|
|
402
402
|
PKCS#8 private key and verifies them with a public P-256 JWK. Private material belongs in the consuming server's
|
|
403
403
|
FDP Keystore configuration and is never returned in signature evidence or sent to a browser. The verifier works
|
|
404
|
-
through Web Crypto in secure browser contexts and supported Node.js runtimes.
|
|
405
|
-
|
|
406
|
-
### Deployment Contract Module
|
|
407
|
-
|
|
408
|
-
**Import:** `@futdevpro/fsm-dynamo/deployment`
|
|
409
|
-
|
|
410
|
-
Shared, content-free deployment target contracts for FDP operational tooling.
|
|
411
|
-
|
|
412
|
-
**Key Features:**
|
|
413
|
-
- Strict `fdp-atomic-rollback-manifest/1` parsing with unknown-field rejection
|
|
414
|
-
- Canonical, order-independent target checksum generation
|
|
415
|
-
- Immutable image reference, digest and mutable promotion-target validation
|
|
416
|
-
- Configuration revision, compatibility-policy and authority-evidence validation
|
|
417
|
-
- Safe post-check endpoint validation and bounded gap-code evidence
|
|
418
|
-
|
|
419
|
-
The module validates only operational metadata. Application data, workbook content, secrets and credentials do not
|
|
420
|
-
belong in the manifest and are rejected when supplied as additional fields.
|
|
421
|
-
|
|
422
|
-
Use `DyFM_AtomicRollbackManifest_Util.validate(value)` for strict parsing and
|
|
423
|
-
`DyFM_AtomicRollbackManifest_Util.computeTargetChecksum(manifest)` for canonical target checksums.
|
|
424
|
-
|
|
425
|
-
### 9. Custom Data Module
|
|
404
|
+
through Web Crypto in secure browser contexts and supported Node.js runtimes.
|
|
405
|
+
|
|
406
|
+
### Deployment Contract Module
|
|
407
|
+
|
|
408
|
+
**Import:** `@futdevpro/fsm-dynamo/deployment`
|
|
409
|
+
|
|
410
|
+
Shared, content-free deployment target contracts for FDP operational tooling.
|
|
411
|
+
|
|
412
|
+
**Key Features:**
|
|
413
|
+
- Strict `fdp-atomic-rollback-manifest/1` parsing with unknown-field rejection
|
|
414
|
+
- Canonical, order-independent target checksum generation
|
|
415
|
+
- Immutable image reference, digest and mutable promotion-target validation
|
|
416
|
+
- Configuration revision, compatibility-policy and authority-evidence validation
|
|
417
|
+
- Safe post-check endpoint validation and bounded gap-code evidence
|
|
418
|
+
|
|
419
|
+
The module validates only operational metadata. Application data, workbook content, secrets and credentials do not
|
|
420
|
+
belong in the manifest and are rejected when supplied as additional fields.
|
|
421
|
+
|
|
422
|
+
Use `DyFM_AtomicRollbackManifest_Util.validate(value)` for strict parsing and
|
|
423
|
+
`DyFM_AtomicRollbackManifest_Util.computeTargetChecksum(manifest)` for canonical target checksums.
|
|
424
|
+
|
|
425
|
+
### 9. Custom Data Module
|
|
426
426
|
|
|
427
427
|
**Import:** `@futdevpro/fsm-dynamo/custom-data`
|
|
428
428
|
|
|
@@ -668,10 +668,10 @@ import { ... } from '@futdevpro/fsm-dynamo/data-handler';
|
|
|
668
668
|
import { ... } from '@futdevpro/fsm-dynamo/location';
|
|
669
669
|
import { ... } from '@futdevpro/fsm-dynamo/messaging';
|
|
670
670
|
import { ... } from '@futdevpro/fsm-dynamo/socket';
|
|
671
|
-
import { ... } from '@futdevpro/fsm-dynamo/pipe';
|
|
672
|
-
import { ... } from '@futdevpro/fsm-dynamo/crypto';
|
|
673
|
-
import { ... } from '@futdevpro/fsm-dynamo/deployment';
|
|
674
|
-
import { ... } from '@futdevpro/fsm-dynamo/custom-data';
|
|
671
|
+
import { ... } from '@futdevpro/fsm-dynamo/pipe';
|
|
672
|
+
import { ... } from '@futdevpro/fsm-dynamo/crypto';
|
|
673
|
+
import { ... } from '@futdevpro/fsm-dynamo/deployment';
|
|
674
|
+
import { ... } from '@futdevpro/fsm-dynamo/custom-data';
|
|
675
675
|
import { ... } from '@futdevpro/fsm-dynamo/test';
|
|
676
676
|
import { ... } from '@futdevpro/fsm-dynamo/usage';
|
|
677
677
|
import { ... } from '@futdevpro/fsm-dynamo/ci-tools';
|
|
@@ -681,10 +681,10 @@ For detailed API documentation, refer to the [Dynamo FSM Documentation](https://
|
|
|
681
681
|
|
|
682
682
|
## Requirements
|
|
683
683
|
|
|
684
|
-
- **TypeScript**: 5.9.3 or higher
|
|
684
|
+
- **TypeScript**: 5.9.3 or higher
|
|
685
685
|
- **Node.js**: Compatible with Node.js LTS versions
|
|
686
686
|
- **Peer Dependencies**:
|
|
687
|
-
- `rxjs`: 7.8.2
|
|
687
|
+
- `rxjs`: 7.8.2
|
|
688
688
|
|
|
689
689
|
## Support & Contributing
|
|
690
690
|
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
# Atomic rollback manifest contract release evidence
|
|
2
|
-
|
|
3
|
-
Date: 2026-08-23
|
|
4
|
-
Scope: `@futdevpro/fsm-dynamo/deployment` 1.20.6 for BFR-CTM-022
|
|
5
|
-
|
|
6
|
-
## Outcome
|
|
7
|
-
|
|
8
|
-
The reusable, content-free atomic rollout and rollback target contract is now owned by Dynamo FSM instead of a
|
|
9
|
-
single application or deployment host:
|
|
10
|
-
|
|
11
|
-
- `fdp-atomic-rollback-manifest/1` describes the exact environment, authority evidence, source revision,
|
|
12
|
-
configuration revision and checksum, compatibility policy, immutable image targets, mutable promotion targets,
|
|
13
|
-
expected digests and post-deployment probes;
|
|
14
|
-
- strict parsing rejects unknown fields, invalid cardinalities, duplicated services or checks, non-targeted checks,
|
|
15
|
-
unsafe endpoints and all image, configuration, authority or checksum substitutions;
|
|
16
|
-
- canonical target checksums are stable when image and post-check sets arrive in a different order;
|
|
17
|
-
- validation evidence is bounded and content-free: it never returns registry references, endpoints, arbitrary input
|
|
18
|
-
fields or their values;
|
|
19
|
-
- the feature is additive and available only through the new `@futdevpro/fsm-dynamo/deployment` secondary entry
|
|
20
|
-
point; no existing export was removed or changed.
|
|
21
|
-
|
|
22
|
-
The wire-level contract and gap-code namespace deliberately remain `FDP|ATOMIC_ROLLBACK|...` because the same
|
|
23
|
-
manifest crosses the FDP CLI, FDP DevOps and deployment-host boundaries. TypeScript symbols follow the Dynamo FSM
|
|
24
|
-
`DyFM_` prefix.
|
|
25
|
-
|
|
26
|
-
## Cross-runtime checksum evidence
|
|
27
|
-
|
|
28
|
-
The representative two-service Company Toolmaker target has this fixed SHA-256 checksum:
|
|
29
|
-
|
|
30
|
-
`2b416434a8d36c5b3305383eb1f2ecebae4057d30d2f46d986d04728225b58df`
|
|
31
|
-
|
|
32
|
-
The new CryptoJS-backed Dynamo implementation and the original Node `crypto` implementation produced the exact
|
|
33
|
-
same value. The fixed vector is asserted in the shared contract test so a future canonicalization drift fails the
|
|
34
|
-
release gate.
|
|
35
|
-
|
|
36
|
-
## Verification
|
|
37
|
-
|
|
38
|
-
- TypeScript 5.9 build completed successfully;
|
|
39
|
-
- build completeness verified: all 329 source TypeScript files have emitted JavaScript;
|
|
40
|
-
- focused Jasmine contract suite: 7 specifications, 0 failures;
|
|
41
|
-
- full Jasmine regression suite: 1570 specifications, 0 failures, 72 explicitly pending legacy specifications;
|
|
42
|
-
- deployment-module ESLint: 0 errors and 0 warnings;
|
|
43
|
-
- full regression suite also passed with the lower supported RxJS 7.8.1 peer installed;
|
|
44
|
-
- production dependency audit: no known vulnerabilities;
|
|
45
|
-
- package manifest JSON and the new secondary export resolve from the emitted build;
|
|
46
|
-
- `git diff --check` found no source or package whitespace errors.
|
|
47
|
-
|
|
48
|
-
## Consumer migration gate
|
|
49
|
-
|
|
50
|
-
FDP DevOps and FDP CLI must consume this exact secondary entry point before their local copies or partial validators
|
|
51
|
-
are removed. BFR-CTM-022 remains active until the Company Toolmaker test environment completes the required
|
|
52
|
-
preflight and induced-failure compensation rehearsal; publishing this contract alone does not claim that deployment
|
|
53
|
-
evidence.
|
|
1
|
+
# Atomic rollback manifest contract release evidence
|
|
2
|
+
|
|
3
|
+
Date: 2026-08-23
|
|
4
|
+
Scope: `@futdevpro/fsm-dynamo/deployment` 1.20.6 for BFR-CTM-022
|
|
5
|
+
|
|
6
|
+
## Outcome
|
|
7
|
+
|
|
8
|
+
The reusable, content-free atomic rollout and rollback target contract is now owned by Dynamo FSM instead of a
|
|
9
|
+
single application or deployment host:
|
|
10
|
+
|
|
11
|
+
- `fdp-atomic-rollback-manifest/1` describes the exact environment, authority evidence, source revision,
|
|
12
|
+
configuration revision and checksum, compatibility policy, immutable image targets, mutable promotion targets,
|
|
13
|
+
expected digests and post-deployment probes;
|
|
14
|
+
- strict parsing rejects unknown fields, invalid cardinalities, duplicated services or checks, non-targeted checks,
|
|
15
|
+
unsafe endpoints and all image, configuration, authority or checksum substitutions;
|
|
16
|
+
- canonical target checksums are stable when image and post-check sets arrive in a different order;
|
|
17
|
+
- validation evidence is bounded and content-free: it never returns registry references, endpoints, arbitrary input
|
|
18
|
+
fields or their values;
|
|
19
|
+
- the feature is additive and available only through the new `@futdevpro/fsm-dynamo/deployment` secondary entry
|
|
20
|
+
point; no existing export was removed or changed.
|
|
21
|
+
|
|
22
|
+
The wire-level contract and gap-code namespace deliberately remain `FDP|ATOMIC_ROLLBACK|...` because the same
|
|
23
|
+
manifest crosses the FDP CLI, FDP DevOps and deployment-host boundaries. TypeScript symbols follow the Dynamo FSM
|
|
24
|
+
`DyFM_` prefix.
|
|
25
|
+
|
|
26
|
+
## Cross-runtime checksum evidence
|
|
27
|
+
|
|
28
|
+
The representative two-service Company Toolmaker target has this fixed SHA-256 checksum:
|
|
29
|
+
|
|
30
|
+
`2b416434a8d36c5b3305383eb1f2ecebae4057d30d2f46d986d04728225b58df`
|
|
31
|
+
|
|
32
|
+
The new CryptoJS-backed Dynamo implementation and the original Node `crypto` implementation produced the exact
|
|
33
|
+
same value. The fixed vector is asserted in the shared contract test so a future canonicalization drift fails the
|
|
34
|
+
release gate.
|
|
35
|
+
|
|
36
|
+
## Verification
|
|
37
|
+
|
|
38
|
+
- TypeScript 5.9 build completed successfully;
|
|
39
|
+
- build completeness verified: all 329 source TypeScript files have emitted JavaScript;
|
|
40
|
+
- focused Jasmine contract suite: 7 specifications, 0 failures;
|
|
41
|
+
- full Jasmine regression suite: 1570 specifications, 0 failures, 72 explicitly pending legacy specifications;
|
|
42
|
+
- deployment-module ESLint: 0 errors and 0 warnings;
|
|
43
|
+
- full regression suite also passed with the lower supported RxJS 7.8.1 peer installed;
|
|
44
|
+
- production dependency audit: no known vulnerabilities;
|
|
45
|
+
- package manifest JSON and the new secondary export resolve from the emitted build;
|
|
46
|
+
- `git diff --check` found no source or package whitespace errors.
|
|
47
|
+
|
|
48
|
+
## Consumer migration gate
|
|
49
|
+
|
|
50
|
+
FDP DevOps and FDP CLI must consume this exact secondary entry point before their local copies or partial validators
|
|
51
|
+
are removed. BFR-CTM-022 remains active until the Company Toolmaker test environment completes the required
|
|
52
|
+
preflight and induced-failure compensation rehearsal; publishing this contract alone does not claim that deployment
|
|
53
|
+
evidence.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Forms v2 ColorPicker settings — 2026-08-23
|
|
2
|
+
|
|
3
|
+
## Outcome
|
|
4
|
+
|
|
5
|
+
Forms v2 now exposes `DyFM_ColorPickerFieldNew_Settings` as the serializable bedrock Settings model for a
|
|
6
|
+
color-picker field. `DyFM_Field_Type.colorPicker` uses the stable `color-picker` discriminator.
|
|
7
|
+
|
|
8
|
+
The value contract is a CSS/browser-native `#RRGGBB` string. The constructor adds that contract as a serializable
|
|
9
|
+
pattern validator while preserving consumer validators, so backend and Angular consumers share the same rule.
|
|
10
|
+
Rendering and interaction remain the responsibility of `@futdevpro/ngx-dynamo`; this package owns only the
|
|
11
|
+
framework-independent constructor and discriminated union.
|
|
12
|
+
|
|
13
|
+
## Public surface
|
|
14
|
+
|
|
15
|
+
- `DyFM_Field_Type.colorPicker`
|
|
16
|
+
- `DyFM_ColorPickerFieldNew_Settings`
|
|
17
|
+
- `DyFM_FieldNew_Settings_AnyType` includes the new settings class
|
|
18
|
+
|
|
19
|
+
## Verification
|
|
20
|
+
|
|
21
|
+
The Forms v2 settings suite verifies constructor persistence, the immutable discriminator, default hexadecimal
|
|
22
|
+
validation, and preservation of consumer validators. The complete package test and build gates must remain green
|
|
23
|
+
before publishing the patch release.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-type.enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ngx-models/_enums/field-type.enum.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,oBAAY,eAAe;IAEzB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,UAAU,eAAe,CAAE,EAAE;IAC7B,eAAe,oBAAoB,CAAE,EAAE;IACvC,WAAW,gBAAgB,CAAE,EAAE;IAC/B,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAG/B,IAAI,SAAS;IACb,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,QAAQ,aAAa;IAGrB,UAAU,eAAc;IAGxB,UAAU,eAAe;CAa1B"}
|
|
1
|
+
{"version":3,"file":"field-type.enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ngx-models/_enums/field-type.enum.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,oBAAY,eAAe;IAEzB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,UAAU,eAAe,CAAE,EAAE;IAC7B,eAAe,oBAAoB,CAAE,EAAE;IACvC,WAAW,gBAAgB,CAAE,EAAE;IAC/B,WAAW,iBAAiB;IAC5B,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAG/B,IAAI,SAAS;IACb,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,QAAQ,aAAa;IAGrB,UAAU,eAAc;IAGxB,UAAU,eAAe;CAa1B"}
|
|
@@ -24,6 +24,7 @@ var DyFM_Field_Type;
|
|
|
24
24
|
DyFM_Field_Type["chipSelect"] = "chipSelect";
|
|
25
25
|
DyFM_Field_Type["chipMultiselect"] = "chipMultiselect";
|
|
26
26
|
DyFM_Field_Type["radioSelect"] = "radioSelect";
|
|
27
|
+
DyFM_Field_Type["colorPicker"] = "color-picker";
|
|
27
28
|
DyFM_Field_Type["date"] = "date";
|
|
28
29
|
DyFM_Field_Type["dateRange"] = "dateRange";
|
|
29
30
|
DyFM_Field_Type["dateTime"] = "dateTime";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-type.enum.js","sourceRoot":"","sources":["../../../../src/_modules/ngx-models/_enums/field-type.enum.ts"],"names":[],"mappings":";;;AACA;;GAEG;AACH,IAAY,
|
|
1
|
+
{"version":3,"file":"field-type.enum.js","sourceRoot":"","sources":["../../../../src/_modules/ngx-models/_enums/field-type.enum.ts"],"names":[],"mappings":";;;AACA;;GAEG;AACH,IAAY,eAgDX;AAhDD,WAAY,eAAe;IACzB,gBAAgB;IAChB,oCAAiB,CAAA;IACjB,wCAAqB,CAAA;IACrB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;IACb,wCAAqB,CAAA;IACrB,wCAAqB,CAAA;IACrB,wCAAqB,CAAA;IACrB,gDAA6B,CAAA;IAC7B,oCAAiB,CAAA;IACjB,8CAA2B,CAAA;IAC3B,oCAAiB,CAAA;IACjB,8CAA2B,CAAA;IAC3B,oCAAiB,CAAA;IACjB,8CAA2B,CAAA;IAC3B,4CAAyB,CAAA;IACzB,sDAAmC,CAAA;IACnC,8CAA2B,CAAA;IAC3B,+CAA4B,CAAA;IAC5B,gCAAa,CAAA;IACb,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;IACrB,kDAA+B,CAAA;IAE/B,aAAa;IACb,gCAAa,CAAA;IACb,kCAAe,CAAA;IACf,sCAAmB,CAAA;IACnB,wCAAqB,CAAA;IAErB,gBAAgB;IAChB,4CAAwB,CAAA;IAExB,UAAU;IACV,4CAAyB,CAAA;IAEzB,QAAQ;IACR,qBAAqB;IACrB;;;MAGE;IACF,qBAAqB;IAErB,qBAAqB;IACrB,uEAAuE;AAEzE,CAAC,EAhDW,eAAe,+BAAf,eAAe,QAgD1B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
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 color-picker settings.
|
|
5
|
+
*
|
|
6
|
+
* The string value uses the browser-native `#RRGGBB` color contract so the same
|
|
7
|
+
* serializable Settings object can be shared by frontend and backend consumers.
|
|
8
|
+
*/
|
|
9
|
+
export declare class DyFM_ColorPickerFieldNew_Settings extends DyFM_FieldNew_Settings<string> {
|
|
10
|
+
readonly type: DyFM_Field_Type.colorPicker;
|
|
11
|
+
/** Creates serializable color-picker settings while protecting the discriminator. */
|
|
12
|
+
constructor(set: Partial<DyFM_ColorPickerFieldNew_Settings>);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=color-picker-field-new-settings.control-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-picker-field-new-settings.control-model.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/color-picker-field-new-settings.control-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EACL,sBAAsB,EAEvB,MAAM,oCAAoC,CAAC;AAI5C;;;;;GAKG;AACH,qBAAa,iCAAkC,SAAQ,sBAAsB,CAAC,MAAM,CAAC;IACnF,SAAkB,IAAI,EAAE,eAAe,CAAC,WAAW,CAA+B;IAElF,qFAAqF;gBACzE,GAAG,EAAE,OAAO,CAAC,iCAAiC,CAAC;CAwB5D"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyFM_ColorPickerFieldNew_Settings = void 0;
|
|
4
|
+
const field_type_enum_1 = require("../../../_enums/field-type.enum");
|
|
5
|
+
const field_new_validator_type_enum_1 = require("../../../_enums/forms-new/field-new-validator-type.enum");
|
|
6
|
+
const field_new_settings_control_model_1 = require("./field-new-settings.control-model");
|
|
7
|
+
const DYNAMO_COLOR_PICKER_HEX_PATTERN = '^#[0-9a-fA-F]{6}$';
|
|
8
|
+
/**
|
|
9
|
+
* Forms v2 color-picker settings.
|
|
10
|
+
*
|
|
11
|
+
* The string value uses the browser-native `#RRGGBB` color contract so the same
|
|
12
|
+
* serializable Settings object can be shared by frontend and backend consumers.
|
|
13
|
+
*/
|
|
14
|
+
class DyFM_ColorPickerFieldNew_Settings extends field_new_settings_control_model_1.DyFM_FieldNew_Settings {
|
|
15
|
+
type = field_type_enum_1.DyFM_Field_Type.colorPicker;
|
|
16
|
+
/** Creates serializable color-picker settings while protecting the discriminator. */
|
|
17
|
+
constructor(set) {
|
|
18
|
+
super(set);
|
|
19
|
+
const rest = { ...set };
|
|
20
|
+
Reflect.deleteProperty(rest, 'type');
|
|
21
|
+
Object.assign(this, rest);
|
|
22
|
+
const validators = this.validators ?? [];
|
|
23
|
+
const hasHexValidator = validators.some((validator) => validator.type === field_new_validator_type_enum_1.DyFM_FieldNew_Validator_Type.pattern
|
|
24
|
+
&& validator.value === DYNAMO_COLOR_PICKER_HEX_PATTERN);
|
|
25
|
+
if (!hasHexValidator) {
|
|
26
|
+
this.validators = [
|
|
27
|
+
...validators,
|
|
28
|
+
{
|
|
29
|
+
type: field_new_validator_type_enum_1.DyFM_FieldNew_Validator_Type.pattern,
|
|
30
|
+
value: DYNAMO_COLOR_PICKER_HEX_PATTERN,
|
|
31
|
+
message: 'Enter a color as #RRGGBB.',
|
|
32
|
+
},
|
|
33
|
+
];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.DyFM_ColorPickerFieldNew_Settings = DyFM_ColorPickerFieldNew_Settings;
|
|
38
|
+
//# sourceMappingURL=color-picker-field-new-settings.control-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-picker-field-new-settings.control-model.js","sourceRoot":"","sources":["../../../../../../src/_modules/ngx-models/_models/control-models/forms-new/color-picker-field-new-settings.control-model.ts"],"names":[],"mappings":";;;AAAA,qEAAkE;AAClE,2GAAuG;AACvG,yFAG4C;AAE5C,MAAM,+BAA+B,GAAW,mBAAmB,CAAC;AAEpE;;;;;GAKG;AACH,MAAa,iCAAkC,SAAQ,yDAA8B;IACjE,IAAI,GAAgC,iCAAe,CAAC,WAAW,CAAC;IAElF,qFAAqF;IACrF,YAAY,GAA+C;QACzD,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,MAAM,IAAI,GAA+C,EAAE,GAAG,GAAG,EAAE,CAAC;QAEpE,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE1B,MAAM,UAAU,GAAyC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;QAC/E,MAAM,eAAe,GAAY,UAAU,CAAC,IAAI,CAAC,CAAC,SAA6C,EAAW,EAAE,CAC1G,SAAS,CAAC,IAAI,KAAK,4DAA4B,CAAC,OAAO;eACpD,SAAS,CAAC,KAAK,KAAK,+BAA+B,CACvD,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG;gBAChB,GAAG,UAAU;gBACb;oBACE,IAAI,EAAE,4DAA4B,CAAC,OAAO;oBAC1C,KAAK,EAAE,+BAA+B;oBACtC,OAAO,EAAE,2BAA2B;iBACrC;aACF,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA5BD,8EA4BC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DyFM_CheckboxFieldNew_Settings } from './checkbox-field-new-settings.control-model';
|
|
2
|
+
import { DyFM_ColorPickerFieldNew_Settings } from './color-picker-field-new-settings.control-model';
|
|
2
3
|
import { DyFM_DateFieldNew_Settings } from './date-field-new-settings.control-model';
|
|
3
4
|
import { DyFM_DateRangeFieldNew_Settings } from './date-range-field-new-settings.control-model';
|
|
4
5
|
import { DyFM_DateTimeFieldNew_Settings } from './datetime-field-new-settings.control-model';
|
|
@@ -24,5 +25,5 @@ import { DyFM_TextFieldNew_Settings } from './text-field-new-settings.control-mo
|
|
|
24
25
|
*
|
|
25
26
|
* @see _specifications/forms-v2/02-architecture-spec.md (11. mátrix)
|
|
26
27
|
*/
|
|
27
|
-
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 | DyFM_DateTimeRangeFieldNew_Settings;
|
|
28
|
+
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_ColorPickerFieldNew_Settings | DyFM_SelectFieldNew_Settings<unknown> | DyFM_MultiselectFieldNew_Settings<unknown> | DyFM_RadioSelectFieldNew_Settings<unknown> | DyFM_DateFieldNew_Settings | DyFM_DateTimeFieldNew_Settings | DyFM_DateRangeFieldNew_Settings | DyFM_DateTimeRangeFieldNew_Settings;
|
|
28
29
|
//# 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,+BAA+B,EAAE,MAAM,+CAA+C,CAAC;AAChG,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,mCAAmC,EAAE,MAAM,mDAAmD,CAAC;AACxG,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,GAC/B,mCAAmC,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,iCAAiC,EAAE,MAAM,iDAAiD,CAAC;AACpG,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,mCAAmC,EAAE,MAAM,mDAAmD,CAAC;AACxG,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,iCAAiC,GACjC,4BAA4B,CAAC,OAAO,CAAC,GACrC,iCAAiC,CAAC,OAAO,CAAC,GAC1C,iCAAiC,CAAC,OAAO,CAAC,GAC1C,0BAA0B,GAC1B,8BAA8B,GAC9B,+BAA+B,GAC/B,mCAAmC,CAAC"}
|
|
@@ -6,6 +6,7 @@ export * from './password-field-new-settings.control-model';
|
|
|
6
6
|
export * from './slider-field-new-settings.control-model';
|
|
7
7
|
export * from './slider-range-field-new-settings.control-model';
|
|
8
8
|
export * from './checkbox-field-new-settings.control-model';
|
|
9
|
+
export * from './color-picker-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';
|
|
11
12
|
export * from './radio-select-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,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,mDAAmD,CAAC;AAClE,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,iDAAiD,CAAC;AAChE,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,mDAAmD,CAAC;AAClE,cAAc,mCAAmC,CAAC;AAClD,cAAc,mBAAmB,CAAC"}
|
|
@@ -11,6 +11,7 @@ tslib_1.__exportStar(require("./password-field-new-settings.control-model"), exp
|
|
|
11
11
|
tslib_1.__exportStar(require("./slider-field-new-settings.control-model"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./slider-range-field-new-settings.control-model"), exports);
|
|
13
13
|
tslib_1.__exportStar(require("./checkbox-field-new-settings.control-model"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./color-picker-field-new-settings.control-model"), exports);
|
|
14
15
|
tslib_1.__exportStar(require("./select-field-new-settings.control-model"), exports);
|
|
15
16
|
tslib_1.__exportStar(require("./multiselect-field-new-settings.control-model"), exports);
|
|
16
17
|
tslib_1.__exportStar(require("./radio-select-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,0FAAgE;AAChE,sFAA4D;AAC5D,oFAA0D;AAC1D,yFAA+D;AAC/D,0FAAgE;AAChE,kFAAwD;AACxD,sFAA4D;AAC5D,wFAA8D;AAC9D,4FAAkE;AAClE,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,0FAAgE;AAChE,oFAA0D;AAC1D,yFAA+D;AAC/D,0FAAgE;AAChE,kFAAwD;AACxD,sFAA4D;AAC5D,wFAA8D;AAC9D,4FAAkE;AAClE,4EAAkD;AAClD,4DAAkC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/fsm-dynamo",
|
|
3
|
-
"version": "1.20.
|
|
3
|
+
"version": "1.20.8",
|
|
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",
|