@futdevpro/fsm-dynamo 1.16.38 → 1.16.40
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/.c8rc.json +26 -26
- package/.cursor/rules/__assistant_guide.mdc +30 -30
- package/.cursor/rules/__main.mdc +64 -64
- package/.cursor/rules/_ag_backend-structure.mdc +85 -85
- package/.cursor/rules/_ag_backend.mdc +16 -16
- package/.cursor/rules/_ag_debug.mdc +7 -7
- package/.cursor/rules/_ag_documentation_writing_rules.mdc +372 -372
- package/.cursor/rules/_ag_file-refactoring.mdc +113 -113
- package/.cursor/rules/_ag_fixes_rules.mdc +5 -5
- package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
- package/.cursor/rules/_ag_frontend.mdc +39 -39
- package/.cursor/rules/_ag_import-rules.mdc +44 -44
- package/.cursor/rules/_ag_naming.mdc +115 -115
- package/.cursor/rules/_ag_running_commands.mdc +4 -4
- package/.cursor/rules/_ag_server-controller.mdc +5 -5
- package/.cursor/rules/_ag_should-be.mdc +6 -6
- package/.cursor/rules/_ag_swearing.mdc +47 -47
- package/.cursor/rules/ai_development_guide.md +60 -60
- package/.cursor/rules/ai_directives.md +114 -114
- package/.cursor/rules/cursor-rules.md +160 -160
- package/.cursor/rules/default-command.mdc +464 -464
- package/.cursor/rules/error_code_pattern.md +39 -39
- package/.cursor/rules/saved rule mcp server use.md +15 -15
- package/.dynamo/pipeline.cicd.config.json +157 -157
- package/.dynamo/version-bump.config.json +5 -5
- package/.github/workflows/main.yml +439 -439
- package/.husky/pre-commit +2 -2
- package/.vscode/settings.json +11 -11
- package/LICENSE +21 -21
- package/README.md +701 -693
- package/__documentations/2026-05-17-oai-compatible-providers-howto.md +282 -282
- package/__documentations/2026-06-01-fr047-fc-foundation.md +48 -48
- package/__documentations/2026-06-01-fr047-fr048-code-review.md +153 -153
- package/__documentations/2026-06-01-fr047-p1-function-calling-vocabulary.md +75 -75
- package/__documentations/2026-06-05-secret-mask-url-cred-any-scheme.md +37 -37
- package/__documentations/2026-06-06-ngx-models-merge-completion.md +100 -100
- package/__documentations/2026-06-22-dyfm-error-extends-error.md +109 -109
- package/__documentations/plans/00-MASTER-ngx-models-fsm-merge.md +75 -75
- package/__documentations/plans/01-naming-convention-DyNM-to-DyFM.md +103 -103
- package/__documentations/plans/02-consumer-rollout.md +84 -84
- package/_specifications/BACKLOG.md +43 -43
- package/build/_modules/crypto/_models/artifact-signature.interface.d.ts +37 -0
- package/build/_modules/crypto/_models/artifact-signature.interface.d.ts.map +1 -0
- package/build/_modules/crypto/_models/artifact-signature.interface.js +3 -0
- package/build/_modules/crypto/_models/artifact-signature.interface.js.map +1 -0
- package/build/_modules/crypto/_services/artifact-signature.control-service.d.ts +24 -0
- package/build/_modules/crypto/_services/artifact-signature.control-service.d.ts.map +1 -0
- package/build/_modules/crypto/_services/artifact-signature.control-service.js +281 -0
- package/build/_modules/crypto/_services/artifact-signature.control-service.js.map +1 -0
- package/build/_modules/crypto/index.d.ts +2 -0
- package/build/_modules/crypto/index.d.ts.map +1 -1
- package/build/_modules/crypto/index.js +2 -0
- package/build/_modules/crypto/index.js.map +1 -1
- package/build/_modules/socket/_models/sck-socket-event.control-model.d.ts +4 -6
- package/build/_modules/socket/_models/sck-socket-event.control-model.d.ts.map +1 -1
- package/build/_modules/socket/_models/sck-socket-event.control-model.js +9 -7
- package/build/_modules/socket/_models/sck-socket-event.control-model.js.map +1 -1
- package/eslint.config.js +4 -4
- package/nodemon.json +22 -22
- package/package.json +306 -306
- package/pnpm-workspace.yaml +2 -2
- package/scripts/_capture-out/ai-error-capture.json +398 -398
- package/scripts/ai-error-capture.js +171 -171
- package/scripts/ai-model-registry-check.js +132 -132
- package/scripts/crypto/CRYPTO-STABILITY-SOLUTION.md +196 -196
- package/scripts/crypto/README.md +113 -113
- package/scripts/crypto/demo-crypto-stability.js +120 -120
- package/scripts/crypto/stress-test-crypto.js +379 -379
- package/scripts/run-coverage-tests.js +24 -24
- package/scripts/verify-build-completeness.js +62 -62
- package/spec/support/helpers/ts-node-helper.js +9 -9
- package/spec/support/jasmine.coverage.json +23 -23
- package/spec/support/jasmine.json +24 -24
- package/src/_collections/constants/data-sizes.const.ts +40 -40
- package/src/_collections/constants/error-defaults.const.ts +20 -20
- package/src/_collections/constants/global-settings.const.spec.ts +32 -32
- package/src/_collections/constants/global-settings.const.ts +29 -29
- package/src/_collections/constants/numbers.const.ts +40 -40
- package/src/_collections/constants/times.const.ts +45 -45
- package/src/_collections/utils/array.util.spec.ts +306 -306
- package/src/_collections/utils/array.util.ts +813 -813
- package/src/_collections/utils/async.util.spec.ts +398 -398
- package/src/_collections/utils/async.util.ts +208 -208
- package/src/_collections/utils/data.util.spec.ts +345 -345
- package/src/_collections/utils/data.util.ts +226 -226
- package/src/_collections/utils/extract-error-message.util.spec.ts +204 -204
- package/src/_collections/utils/extract-error-message.util.ts +223 -223
- package/src/_collections/utils/json-error-helper.util.spec.ts +521 -521
- package/src/_collections/utils/json-error-helper.util.ts +301 -301
- package/src/_collections/utils/log.util.spec.ts +975 -975
- package/src/_collections/utils/log.util.ts +667 -667
- package/src/_collections/utils/math/box-bounds.spec.ts +73 -73
- package/src/_collections/utils/math/box-bounds.util.ts +183 -183
- package/src/_collections/utils/math/math.util.spec.ts +94 -94
- package/src/_collections/utils/math/math.util.ts +141 -141
- package/src/_collections/utils/math/random.util.spec.ts +82 -82
- package/src/_collections/utils/math/random.util.ts +139 -139
- package/src/_collections/utils/math/trigonometry.util.spec.ts +57 -57
- package/src/_collections/utils/math/trigonometry.util.ts +102 -102
- package/src/_collections/utils/math/vector2.util.spec.ts +94 -94
- package/src/_collections/utils/math/vector2.util.ts +653 -653
- package/src/_collections/utils/object.util.spec.ts +646 -646
- package/src/_collections/utils/object.util.ts +739 -739
- package/src/_collections/utils/regex/password-regex.util.spec.ts +51 -51
- package/src/_collections/utils/regex/password-regex.util.ts +65 -65
- package/src/_collections/utils/regex/regex.util.spec.ts +42 -42
- package/src/_collections/utils/regex/regex.util.ts +6 -6
- package/src/_collections/utils/regex/username-regex.util.spec.ts +61 -61
- package/src/_collections/utils/regex/username-regex.util.ts +35 -35
- package/src/_collections/utils/require-env.util.spec.ts +231 -231
- package/src/_collections/utils/require-env.util.ts +138 -138
- package/src/_collections/utils/round-list.util.spec.ts +79 -79
- package/src/_collections/utils/round-list.util.ts +162 -162
- package/src/_collections/utils/secret-mask.util.spec.ts +66 -66
- package/src/_collections/utils/secret-mask.util.ts +262 -262
- package/src/_collections/utils/stack.util.spec.ts +372 -372
- package/src/_collections/utils/stack.util.ts +164 -164
- package/src/_collections/utils/string-case.util.spec.ts +441 -441
- package/src/_collections/utils/string-case.util.ts +362 -362
- package/src/_collections/utils/string.util.spec.ts +975 -975
- package/src/_collections/utils/string.util.ts +449 -449
- package/src/_collections/utils/time.util.spec.ts +50 -50
- package/src/_collections/utils/time.util.ts +481 -481
- package/src/_collections/utils/type-cloning-facility.util.spec.ts +51 -51
- package/src/_collections/utils/type-cloning-facility.util.ts +168 -168
- package/src/_collections/utils/utilities.util.spec.ts +201 -201
- package/src/_collections/utils/utilities.util.ts +68 -68
- package/src/_collections/utils/uuid.util.spec.ts +30 -30
- package/src/_collections/utils/uuid.util.ts +50 -50
- package/src/_enums/basic-property-type.enum.ts +20 -20
- package/src/_enums/data-model-type.enum.ts +29 -29
- package/src/_enums/environment-flag.enum.ts +28 -28
- package/src/_enums/error-level.enum.ts +43 -43
- package/src/_enums/error-status.enum.ts +30 -30
- package/src/_enums/http/http-call-type.enum.ts +43 -43
- package/src/_enums/http/http-event-type.enum.ts +40 -40
- package/src/_enums/http/http-response-type.enum.ts +18 -18
- package/src/_enums/log-style.enum.ts +44 -44
- package/src/_enums/server-connection-status.enum.ts +6 -6
- package/src/_enums/time/day-of-week.enum.ts +55 -55
- package/src/_enums/time/month.enum.ts +25 -25
- package/src/_enums/time/relative-date.enum.ts +24 -24
- package/src/_models/control-models/data-model-params.control-model.spec.ts +156 -156
- package/src/_models/control-models/data-model-params.control-model.ts +362 -362
- package/src/_models/control-models/data-property-params.control-model.spec.ts +93 -93
- package/src/_models/control-models/data-property-params.control-model.ts +210 -210
- package/src/_models/control-models/error.control-model.spec.ts +975 -975
- package/src/_models/control-models/error.control-model.ts +1280 -1280
- package/src/_models/control-models/http/http-error-response.control-model.spec.ts +116 -116
- package/src/_models/control-models/http/http-error-response.control-model.ts +52 -52
- package/src/_models/control-models/http/http-headers.control-model.spec.ts +25 -25
- package/src/_models/control-models/http/http-headers.control-model.ts +124 -124
- package/src/_models/control-models/http/http-response.model-base.spec.ts +46 -46
- package/src/_models/control-models/http/http-response.model-base.ts +57 -57
- package/src/_models/control-models/poll.control-model.spec.ts +63 -63
- package/src/_models/control-models/poll.control-model.ts +151 -151
- package/src/_models/control-models/range-value.control-model.spec.ts +187 -187
- package/src/_models/control-models/range-value.control-model.ts +289 -289
- package/src/_models/control-models/server-status.control-model.spec.ts +66 -66
- package/src/_models/control-models/server-status.control-model.ts +94 -94
- package/src/_models/control-models/service-endpoint-settings-base.control-model.spec.ts +145 -145
- package/src/_models/control-models/service-endpoint-settings-base.control-model.ts +186 -186
- package/src/_models/data-models/errors.data-model.spec.ts +71 -71
- package/src/_models/data-models/errors.data-model.ts +200 -200
- package/src/_models/data-models/metadata.data-model.spec.ts +184 -184
- package/src/_models/data-models/metadata.data-model.ts +153 -153
- package/src/_models/interfaces/box-bounds.interface.ts +7 -7
- package/src/_models/interfaces/environment/global-log-settings.interface.ts +86 -86
- package/src/_models/interfaces/environment/global-settings.interface.ts +69 -69
- package/src/_models/interfaces/error-defaults.interface.ts +18 -18
- package/src/_models/interfaces/paged.interface.ts +12 -12
- package/src/_models/interfaces/random-weight.interface.ts +7 -7
- package/src/_models/interfaces/route-settings.interface.ts +15 -15
- package/src/_models/interfaces/search-query.interface.ts +23 -23
- package/src/_models/interfaces/search-result.interface.ts +5 -5
- package/src/_models/interfaces/server-error-statistics.interface.ts +24 -24
- package/src/_models/interfaces/vector2.interface.ts +20 -20
- package/src/_models/types/db-filter.type.ts +110 -110
- package/src/_models/types/db-sort.type.ts +4 -4
- package/src/_models/types/ds-filter.type.ts +68 -68
- package/src/_models/types/ds-sort.type.ts +21 -21
- package/src/_modules/ai/_collections/ai-model-ref.util.ts +88 -88
- package/src/_modules/ai/_collections/ai-model-registry.util.spec.ts +37 -37
- package/src/_modules/ai/_collections/ai-model-registry.util.ts +30 -30
- package/src/_modules/ai/_enums/ai-message-role.enum.ts +7 -7
- package/src/_modules/ai/_enums/ai-model-type.enum.ts +7 -7
- package/src/_modules/ai/_enums/ai-provider.enum.ts +7 -7
- package/src/_modules/ai/_models/ai-call-settings.interface.ts +84 -84
- package/src/_modules/ai/_models/ai-config.interface.ts +14 -14
- package/src/_modules/ai/_models/ai-embedding-request.interface.ts +20 -20
- package/src/_modules/ai/_models/ai-embedding-response.interface.ts +26 -26
- package/src/_modules/ai/_models/ai-llm-request.interface.ts +24 -24
- package/src/_modules/ai/_models/ai-llm-response.interface.ts +30 -30
- package/src/_modules/ai/_models/ai-message.interface.ts +12 -12
- package/src/_modules/ai/_models/ai-model-capabilities.interface.ts +35 -35
- package/src/_modules/ai/_models/ai-model-info.interface.ts +63 -63
- package/src/_modules/ai/_models/ai-model-settings-schema.interface.ts +52 -52
- package/src/_modules/ai/_models/ai-provider-capabilities.interface.ts +28 -28
- package/src/_modules/ai/_models/ai-settings.interface.ts +17 -17
- package/src/_modules/ai/_models/ai-tool-call.interface.ts +18 -18
- package/src/_modules/ai/_models/ai-tool-handler.type.ts +11 -11
- package/src/_modules/ai/_models/ai-tool-result.interface.ts +16 -16
- package/src/_modules/ai/_models/ai-tool.interface.ts +16 -16
- package/src/_modules/ai/_models/ai-user-provider-config.control-model.ts +29 -29
- package/src/_modules/ai/_modules/anthropic/_collections/aai-models.const.ts +135 -135
- package/src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts +19 -19
- package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.spec.ts +28 -28
- package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.ts +23 -23
- package/src/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.ts +10 -10
- package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.spec.ts +22 -22
- package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.ts +27 -27
- package/src/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.ts +20 -20
- package/src/_modules/ai/_modules/anthropic/index.ts +14 -14
- package/src/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.ts +12 -12
- package/src/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.ts +22 -22
- package/src/_modules/ai/_modules/document-ai/index.ts +4 -4
- package/src/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.ts +40 -40
- package/src/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.ts +6 -6
- package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.ts +19 -19
- package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.ts +11 -11
- package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.ts +24 -24
- package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.ts +20 -20
- package/src/_modules/ai/_modules/fdp-ai/index.ts +11 -11
- package/src/_modules/ai/_modules/google-ai/_collections/gai-models.const.ts +161 -161
- package/src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts +16 -16
- package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.spec.ts +28 -28
- package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.ts +21 -21
- package/src/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.ts +8 -8
- package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.spec.ts +22 -22
- package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.ts +25 -25
- package/src/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.ts +20 -20
- package/src/_modules/ai/_modules/google-ai/index.ts +14 -14
- package/src/_modules/ai/_modules/local-ai/_collections/lai-models.const.ts +59 -59
- package/src/_modules/ai/_modules/local-ai/_enums/lai-model.enum.ts +6 -6
- package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.spec.ts +28 -28
- package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.ts +18 -18
- package/src/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.ts +9 -9
- package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.spec.ts +22 -22
- package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.ts +23 -23
- package/src/_modules/ai/_modules/local-ai/index.ts +14 -14
- package/src/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.ts +7 -7
- package/src/_modules/ai/_modules/open-ai/_collections/oai-models.const.ts +404 -404
- package/src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts +179 -179
- package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.spec.ts +28 -28
- package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.ts +21 -21
- package/src/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.ts +81 -81
- package/src/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.ts +13 -13
- package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.spec.ts +22 -22
- package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.ts +25 -25
- package/src/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.ts +21 -21
- package/src/_modules/ai/_modules/open-ai/index.ts +28 -28
- package/src/_modules/ai/index.ts +27 -27
- package/src/_modules/ci-tools/_enums/cit-ci-result-code.enum.ts +11 -11
- package/src/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.ts +9 -9
- package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.spec.ts +58 -58
- package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.ts +77 -77
- package/src/_modules/ci-tools/_models/cit-ci-step-result.interface.ts +12 -12
- package/src/_modules/ci-tools/index.ts +8 -8
- package/src/_modules/crypto/_collections/crypto-v1.util.ts +225 -225
- package/src/_modules/crypto/_collections/crypto-v2.util.ts +331 -331
- package/src/_modules/crypto/_collections/crypto-v4.util.ts +702 -702
- package/src/_modules/crypto/_collections/crypto.util.db-envelope.spec.ts +51 -51
- package/src/_modules/crypto/_collections/crypto.util.edge.spec.ts +605 -605
- package/src/_modules/crypto/_collections/crypto.util.extra.spec.ts +642 -642
- package/src/_modules/crypto/_collections/crypto.util.simple.spec.ts +512 -512
- package/src/_modules/crypto/_collections/crypto.util.ts +748 -748
- package/src/_modules/crypto/_models/artifact-signature.interface.ts +39 -0
- package/src/_modules/crypto/_services/artifact-signature.control-service.spec.ts +223 -0
- package/src/_modules/crypto/_services/artifact-signature.control-service.ts +395 -0
- package/src/_modules/crypto/index.ts +16 -14
- package/src/_modules/custom-data/_collections/cud-module-settings.const.ts +21 -21
- package/src/_modules/custom-data/_models/cud.data-model.spec.ts +38 -38
- package/src/_modules/custom-data/_models/cud.data-model.ts +39 -39
- package/src/_modules/custom-data/index.ts +10 -10
- package/src/_modules/data-handler/_models/data-handler-settings.control-model.spec.ts +110 -110
- package/src/_modules/data-handler/_models/data-handler-settings.control-model.ts +110 -110
- package/src/_modules/data-handler/_models/data-handler.control-model.spec.ts +473 -473
- package/src/_modules/data-handler/_models/data-handler.control-model.ts +486 -486
- package/src/_modules/data-handler/_models/data-list-handler.control-model.spec.ts +263 -263
- package/src/_modules/data-handler/_models/data-list-handler.control-model.ts +252 -252
- package/src/_modules/data-handler/_models/data-search-handler.control-model.spec.ts +417 -417
- package/src/_modules/data-handler/_models/data-search-handler.control-model.ts +390 -390
- package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.spec.ts +374 -374
- package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.ts +274 -274
- package/src/_modules/data-handler/index.ts +6 -6
- package/src/_modules/game/_collections/audio-mixer.util.spec.ts +198 -198
- package/src/_modules/game/_collections/audio-mixer.util.ts +143 -143
- package/src/_modules/game/_collections/audio-scale.util.spec.ts +140 -140
- package/src/_modules/game/_collections/audio-scale.util.ts +129 -129
- package/src/_modules/game/_enums/audio-channel.enum.ts +22 -22
- package/src/_modules/game/_models/audio-mixer-config.interface.ts +53 -53
- package/src/_modules/game/_models/audio-mixer-settings.interface.ts +38 -38
- package/src/_modules/game/_models/audio-mixer-state.interface.ts +36 -36
- package/src/_modules/game/_models/audio-mixer.control-model.spec.ts +376 -376
- package/src/_modules/game/_models/audio-mixer.control-model.ts +419 -419
- package/src/_modules/game/_models/audio-scale.interface.ts +21 -21
- package/src/_modules/game/_models/seeded-random-state.interface.ts +21 -21
- package/src/_modules/game/_models/seeded-random.control-model.spec.ts +290 -290
- package/src/_modules/game/_models/seeded-random.control-model.ts +311 -311
- package/src/_modules/game/index.ts +15 -15
- package/src/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -3239
- package/src/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19035 -19035
- package/src/_modules/location/_collections/assets/country-divisions-ISO-3166.json +4993 -4993
- package/src/_modules/location/_collections/assets/country-phone-codes.json +1203 -1203
- package/src/_modules/location/_collections/assets/country-subdivisions/afghanistan.json +137 -137
- package/src/_modules/location/_collections/assets/country-subdivisions/albania.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/algeria.json +193 -193
- package/src/_modules/location/_collections/assets/country-subdivisions/andorra.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/angola.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/antigua-and-barbuda.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/argentina.json +97 -97
- package/src/_modules/location/_collections/assets/country-subdivisions/armenia.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/australia.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/austria.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/azerbaijan.json +5 -5
- package/src/_modules/location/_collections/assets/country-subdivisions/bahamas.json +125 -125
- package/src/_modules/location/_collections/assets/country-subdivisions/bahrain.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/bangladesh.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/barbados.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/belarus.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/belgium.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/belize.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/benin.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/bhutan.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/bolivia.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/bosnia-and-herzegovina.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/botswana.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/brazil.json +109 -109
- package/src/_modules/location/_collections/assets/country-subdivisions/brunei-darussalam.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/bulgaria.json +113 -113
- package/src/_modules/location/_collections/assets/country-subdivisions/burkina-faso.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/burundi.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/cambodia.json +97 -97
- package/src/_modules/location/_collections/assets/country-subdivisions/cameroon.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/canada.json +79 -79
- package/src/_modules/location/_collections/assets/country-subdivisions/cape-verde.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/central-african-republic.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/chad.json +89 -89
- package/src/_modules/location/_collections/assets/country-subdivisions/chile.json +61 -61
- package/src/_modules/location/_collections/assets/country-subdivisions/china.json +205 -205
- package/src/_modules/location/_collections/assets/country-subdivisions/colombia.json +133 -133
- package/src/_modules/location/_collections/assets/country-subdivisions/comoros.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/congo-the-democratic-republic-of-the.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/congo.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/costa-rica.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/cote-d-ivoire-republic-of.json +77 -77
- package/src/_modules/location/_collections/assets/country-subdivisions/croatia.json +85 -85
- package/src/_modules/location/_collections/assets/country-subdivisions/cuba.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/cyprus.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/czech-republic.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/denmark.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/djibouti.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/dominica.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/dominican-republic.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/ecuador.json +97 -97
- package/src/_modules/location/_collections/assets/country-subdivisions/egypt.json +117 -117
- package/src/_modules/location/_collections/assets/country-subdivisions/el-salvador.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/equatorial-guinea.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/eritrea.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/estonia.json +61 -61
- package/src/_modules/location/_collections/assets/country-subdivisions/ethiopia.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/fiji.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/finland.json +77 -77
- package/src/_modules/location/_collections/assets/country-subdivisions/france.json +133 -133
- package/src/_modules/location/_collections/assets/country-subdivisions/gabon.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/gambia.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/georgia.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/germany.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/ghana.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/greece.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/greenland.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/grenada.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/guatemala.json +89 -89
- package/src/_modules/location/_collections/assets/country-subdivisions/guinea-bissau.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/guinea.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/guyana.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/haiti.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/honduras.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/hong-kong.json +4 -4
- package/src/_modules/location/_collections/assets/country-subdivisions/hungary.json +173 -173
- package/src/_modules/location/_collections/assets/country-subdivisions/iceland.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/india.json +181 -181
- package/src/_modules/location/_collections/assets/country-subdivisions/indonesia.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/iran-islamic-republic-of.json +125 -125
- package/src/_modules/location/_collections/assets/country-subdivisions/iraq.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/ireland.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/israel.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/italy.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/jamaica.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/japan.json +189 -189
- package/src/_modules/location/_collections/assets/country-subdivisions/jordan.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/kazakhstan.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/kenya.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/kiribati.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/korea-democratic-people-s-republic-of.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/korea-republic-of.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/kuwait.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/kyrgyzstan.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/lao-people-s-democratic-republic.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/latvia.json +477 -477
- package/src/_modules/location/_collections/assets/country-subdivisions/lebanon.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/lesotho.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/liberia.json +61 -61
- package/src/_modules/location/_collections/assets/country-subdivisions/libyan-arab-jamahiriya.json +89 -89
- package/src/_modules/location/_collections/assets/country-subdivisions/liechtenstein.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/lithuania.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/luxembourg.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/macedonia-the-former-yugoslav-republic-of.json +337 -337
- package/src/_modules/location/_collections/assets/country-subdivisions/madagascar.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/malawi.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/malaysia.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/maldives.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/mali.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/malta.json +273 -273
- package/src/_modules/location/_collections/assets/country-subdivisions/marshall-islands.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/mauritania.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/mauritius.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/mexico.json +161 -161
- package/src/_modules/location/_collections/assets/country-subdivisions/micronesia-federated-states-of.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/moldova-republic-of.json +149 -149
- package/src/_modules/location/_collections/assets/country-subdivisions/monaco.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/mongolia.json +89 -89
- package/src/_modules/location/_collections/assets/country-subdivisions/montenegro.json +93 -93
- package/src/_modules/location/_collections/assets/country-subdivisions/morocco.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/mozambique.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/myanmar.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/namibia.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/nauru.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/nepal.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/netherlands.json +91 -91
- package/src/_modules/location/_collections/assets/country-subdivisions/new-zealand.json +111 -111
- package/src/_modules/location/_collections/assets/country-subdivisions/nicaragua.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/niger.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/nigeria.json +149 -149
- package/src/_modules/location/_collections/assets/country-subdivisions/norway.json +85 -85
- package/src/_modules/location/_collections/assets/country-subdivisions/oman.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/pakistan.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/palau.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/palestinian-territory-occupied.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/panama.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/papua-new-guinea.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/paraguay.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/peru.json +105 -105
- package/src/_modules/location/_collections/assets/country-subdivisions/philippines.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/poland.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/portugal.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/qatar.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/romania.json +169 -169
- package/src/_modules/location/_collections/assets/country-subdivisions/russian-federation.json +499 -499
- package/src/_modules/location/_collections/assets/country-subdivisions/rwanda.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/saint-helena-ascension-and-tristan-da-cunha.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/saint-kitts-and-nevis.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/saint-lucia.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/saint-vincent-and-the-grenadines.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/samoa.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/san-marino.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/sao-tome-and-principe.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/saudi-arabia.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/senegal.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/serbia.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/seychelles.json +101 -101
- package/src/_modules/location/_collections/assets/country-subdivisions/sierra-leone.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/singapore.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/slovakia.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/slovenia.json +841 -841
- package/src/_modules/location/_collections/assets/country-subdivisions/solomon-islands.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/somalia.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/south-africa.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/south-sudan.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/spain.json +346 -346
- package/src/_modules/location/_collections/assets/country-subdivisions/sri-lanka.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/sudan.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/suriname.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/swaziland.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/sweden.json +85 -85
- package/src/_modules/location/_collections/assets/country-subdivisions/switzerland.json +105 -105
- package/src/_modules/location/_collections/assets/country-subdivisions/syrian-arab-republic.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/taiwan-province-of-china.json +93 -93
- package/src/_modules/location/_collections/assets/country-subdivisions/tajikistan.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/tanzania-united-republic-of.json +105 -105
- package/src/_modules/location/_collections/assets/country-subdivisions/thailand.json +313 -313
- package/src/_modules/location/_collections/assets/country-subdivisions/timor-leste.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/togo.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/tonga.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/trinidad-and-tobago.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/tunisia.json +97 -97
- package/src/_modules/location/_collections/assets/country-subdivisions/turkey.json +325 -325
- package/src/_modules/location/_collections/assets/country-subdivisions/turkmenistan.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/tuvalu.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/uganda.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/ukraine.json +109 -109
- package/src/_modules/location/_collections/assets/country-subdivisions/united-arab-emirates.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/united-kingdom.json +1196 -1196
- package/src/_modules/location/_collections/assets/country-subdivisions/united-states-minor-outlying-islands.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/united-states.json +286 -286
- package/src/_modules/location/_collections/assets/country-subdivisions/uruguay.json +77 -77
- package/src/_modules/location/_collections/assets/country-subdivisions/uzbekistan.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/vanuatu.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/venezuela.json +101 -101
- package/src/_modules/location/_collections/assets/country-subdivisions/viet-nam.json +257 -257
- package/src/_modules/location/_collections/assets/country-subdivisions/yemen.json +85 -85
- package/src/_modules/location/_collections/assets/country-subdivisions/zambia.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/zimbabwe.json +41 -41
- package/src/_modules/location/_collections/loc-country-divisions.const.ts +10 -10
- package/src/_modules/location/_collections/loc-country-isos.const.ts +8 -8
- package/src/_modules/location/_collections/loc-regions.util.spec.ts +61 -61
- package/src/_modules/location/_collections/loc-regions.util.ts +137 -137
- package/src/_modules/location/_collections/loc.util.spec.ts +52 -52
- package/src/_modules/location/_collections/loc.util.ts +74 -74
- package/src/_modules/location/_enums/loc-region.enum.ts +14 -14
- package/src/_modules/location/_enums/loc-sub-region.enum.ts +31 -31
- package/src/_modules/location/_enums/loc-subdivision-region-type.enum.ts +47 -47
- package/src/_modules/location/_models/loc-coordinates.interface.ts +7 -7
- package/src/_modules/location/_models/loc-country-division.interface.ts +8 -8
- package/src/_modules/location/_models/loc-country-iso.interface.ts +23 -23
- package/src/_modules/location/_models/loc-country-phone-code.interface.ts +9 -9
- package/src/_modules/location/_models/loc-division-collection.interface.ts +12 -12
- package/src/_modules/location/_models/loc-division-region-data.interface.ts +9 -9
- package/src/_modules/location/_models/loc-geo-ip-location.interface.ts +27 -27
- package/src/_modules/location/index.ts +22 -22
- package/src/_modules/messaging/README.md +279 -279
- package/src/_modules/messaging/_collections/msg-module-settings.const.ts +46 -46
- package/src/_modules/messaging/_enums/msg-attachment-type.enum.ts +26 -26
- package/src/_modules/messaging/_enums/msg-conversation-type.enum.ts +20 -20
- package/src/_modules/messaging/_enums/msg-delivery-status.enum.ts +17 -17
- package/src/_modules/messaging/_enums/msg-event-key.enum.ts +31 -31
- package/src/_modules/messaging/_enums/msg-participant-role.enum.ts +20 -20
- package/src/_modules/messaging/_enums/msg-provider-type.enum.ts +7 -7
- package/src/_modules/messaging/_enums/msg-status.enum.ts +26 -26
- package/src/_modules/messaging/_enums/msg-type.enum.ts +23 -23
- package/src/_modules/messaging/_models/msg-attachment.interface.ts +46 -46
- package/src/_modules/messaging/_models/msg-conversation.data-model.spec.ts +69 -69
- package/src/_modules/messaging/_models/msg-conversation.data-model.ts +96 -96
- package/src/_modules/messaging/_models/msg-mention.interface.ts +29 -29
- package/src/_modules/messaging/_models/msg-message.data-model.spec.ts +79 -79
- package/src/_modules/messaging/_models/msg-message.data-model.ts +127 -127
- package/src/_modules/messaging/_models/msg-participant.interface.ts +46 -46
- package/src/_modules/messaging/_models/msg-reaction.interface.ts +20 -20
- package/src/_modules/messaging/_models/msg-thread-info.interface.ts +35 -35
- package/src/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.ts +35 -35
- package/src/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.ts +23 -23
- package/src/_modules/messaging/_modules/agent/_models/agt-process-step.interface.ts +55 -55
- package/src/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.ts +26 -26
- package/src/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.ts +37 -37
- package/src/_modules/messaging/_modules/agent/index.ts +8 -8
- package/src/_modules/messaging/index.ts +28 -28
- package/src/_modules/ngx-models/_collections/angular-placeholders.ts +34 -34
- package/src/_modules/ngx-models/_collections/button-new-style-settings-presets.const.ts +181 -181
- package/src/_modules/ngx-models/_collections/dynamo-global.settings.spec.ts +74 -74
- package/src/_modules/ngx-models/_collections/dynamo-global.settings.ts +103 -103
- package/src/_modules/ngx-models/_enums/button-new/button-new-border-radius.enum.ts +16 -16
- package/src/_modules/ngx-models/_enums/button-new/button-new-icon-style-type.enum.ts +14 -14
- package/src/_modules/ngx-models/_enums/button-new/button-new-size.enum.ts +16 -16
- package/src/_modules/ngx-models/_enums/button-new/button-new-style-type.enum.ts +18 -18
- package/src/_modules/ngx-models/_enums/button-type.enum.ts +36 -36
- package/src/_modules/ngx-models/_enums/checkbox-label-position.enum.ts +8 -8
- package/src/_modules/ngx-models/_enums/container-type.enum.ts +11 -11
- package/src/_modules/ngx-models/_enums/errors/error-level.enum.ts +13 -13
- package/src/_modules/ngx-models/_enums/errors/error-notification-color.enum.ts +13 -13
- package/src/_modules/ngx-models/_enums/errors/error-ui-mode.enum.ts +13 -13
- package/src/_modules/ngx-models/_enums/field-appearance.enum.ts +14 -14
- package/src/_modules/ngx-models/_enums/field-type.enum.ts +52 -52
- package/src/_modules/ngx-models/_enums/file-type.enum.ts +12 -12
- package/src/_modules/ngx-models/_enums/flex/flex-layout-align.enum.ts +21 -21
- package/src/_modules/ngx-models/_enums/flex/flex-layout.enum.ts +5 -5
- package/src/_modules/ngx-models/_enums/form-access.enum.ts +9 -9
- package/src/_modules/ngx-models/_enums/form-reset-data.enum.ts +12 -12
- package/src/_modules/ngx-models/_enums/form-store-on.enum.ts +9 -9
- package/src/_modules/ngx-models/_enums/forms-new/field-new-validator-type.enum.ts +20 -20
- package/src/_modules/ngx-models/_enums/frames/header-item-type.enum.ts +15 -15
- package/src/_modules/ngx-models/_enums/frames/header-position.enum.ts +10 -10
- package/src/_modules/ngx-models/_enums/frames/side-nav-badge-color.enum.ts +13 -13
- package/src/_modules/ngx-models/_enums/html/input-types.enum.ts +27 -27
- package/src/_modules/ngx-models/_enums/material-color.enum.ts +16 -16
- package/src/_modules/ngx-models/_enums/material-tooltip-position.enum.ts +16 -16
- package/src/_modules/ngx-models/_enums/preconfigured-field-type.enum.ts +8 -8
- package/src/_modules/ngx-models/_enums/storage-type.enum.ts +15 -15
- package/src/_modules/ngx-models/_enums/validator-type.enum.ts +9 -9
- package/src/_modules/ngx-models/_enums/voice/audio-mime-type.enum.ts +14 -14
- package/src/_modules/ngx-models/_enums/voice/voice-provider-type.enum.ts +26 -26
- package/src/_modules/ngx-models/_enums/voice/voice-recorder-state.enum.ts +20 -20
- package/src/_modules/ngx-models/_models/control-models/button-new-style-settings.control-model.ts +37 -37
- package/src/_modules/ngx-models/_models/control-models/button-params.control-model.spec.ts +70 -70
- package/src/_modules/ngx-models/_models/control-models/button-params.control-model.ts +332 -332
- package/src/_modules/ngx-models/_models/control-models/chat/chat-column-layout-settings.control-model.ts +28 -28
- package/src/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.spec.ts +90 -90
- package/src/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.ts +134 -134
- package/src/_modules/ngx-models/_models/control-models/data-handler.control-model.ts +529 -529
- package/src/_modules/ngx-models/_models/control-models/errors/error-notification.control-model.ts +52 -52
- package/src/_modules/ngx-models/_models/control-models/errors/error-settings.control-model.ts +34 -34
- package/src/_modules/ngx-models/_models/control-models/errors/errors-pojo.spec.ts +86 -86
- package/src/_modules/ngx-models/_models/control-models/errors/errors-settings.control-model.ts +52 -52
- package/src/_modules/ngx-models/_models/control-models/field-settings.control-model.spec.ts +109 -109
- package/src/_modules/ngx-models/_models/control-models/field-settings.control-model.ts +133 -133
- package/src/_modules/ngx-models/_models/control-models/form-settings.control-model.spec.ts +109 -109
- package/src/_modules/ngx-models/_models/control-models/form-settings.control-model.ts +160 -160
- package/src/_modules/ngx-models/_models/control-models/forms-new/checkbox-field-new-settings.control-model.ts +25 -25
- package/src/_modules/ngx-models/_models/control-models/forms-new/date-field-new-settings.control-model.ts +26 -26
- package/src/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.ts +42 -42
- package/src/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.ts +35 -35
- package/src/_modules/ngx-models/_models/control-models/forms-new/datetime-range-field-new-settings.control-model.ts +35 -35
- package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-settings.control-model.ts +85 -85
- package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-types.ts +42 -42
- package/src/_modules/ngx-models/_models/control-models/forms-new/form-new-settings.control-model.ts +40 -40
- package/src/_modules/ngx-models/_models/control-models/forms-new/forms-new.spec.ts +179 -179
- package/src/_modules/ngx-models/_models/control-models/forms-new/index.ts +20 -20
- package/src/_modules/ngx-models/_models/control-models/forms-new/multiselect-field-new-settings.control-model.ts +27 -27
- package/src/_modules/ngx-models/_models/control-models/forms-new/number-field-new-settings.control-model.ts +24 -24
- package/src/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.ts +35 -35
- package/src/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.ts +35 -35
- package/src/_modules/ngx-models/_models/control-models/forms-new/select-field-new-settings.control-model.ts +46 -46
- package/src/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.ts +37 -37
- package/src/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.ts +45 -45
- package/src/_modules/ngx-models/_models/control-models/forms-new/text-field-new-settings.control-model.ts +30 -30
- package/src/_modules/ngx-models/_models/control-models/forms-new/textarea-field-new-settings.control-model.ts +22 -22
- package/src/_modules/ngx-models/_models/control-models/frames/frames-pojo.spec.ts +108 -108
- package/src/_modules/ngx-models/_models/control-models/frames/header-item-settings.control-model.ts +52 -52
- package/src/_modules/ngx-models/_models/control-models/frames/main-frame-settings.control-model.ts +40 -40
- package/src/_modules/ngx-models/_models/control-models/frames/side-nav-item-settings.control-model.ts +55 -55
- package/src/_modules/ngx-models/_models/control-models/frames/side-nav-settings.control-model.ts +30 -30
- package/src/_modules/ngx-models/_models/control-models/select.control-model.spec.ts +45 -45
- package/src/_modules/ngx-models/_models/control-models/select.control-model.ts +28 -28
- package/src/_modules/ngx-models/_models/control-models/voice/voice-pojo.spec.ts +111 -111
- package/src/_modules/ngx-models/_models/control-models/voice/voice-providers-settings.control-model.ts +74 -74
- package/src/_modules/ngx-models/_models/control-models/voice/voice-record-button-settings.control-model.ts +42 -42
- package/src/_modules/ngx-models/_models/control-models/voice/voice-recorder-settings.control-model.ts +37 -37
- package/src/_modules/ngx-models/_models/interfaces/button-new-settings.interface.ts +74 -74
- package/src/_modules/ngx-models/_models/interfaces/confirm-settings.interface.ts +20 -20
- package/src/_modules/ngx-models/_models/interfaces/global-settings.interface.ts +67 -67
- package/src/_modules/ngx-models/_models/interfaces/select-options-custom-constructor.interface.ts +40 -40
- package/src/_modules/ngx-models/_models/interfaces/storage.service.spec.ts +18 -18
- package/src/_modules/ngx-models/_models/interfaces/storage.service.ts +40 -40
- package/src/_modules/ngx-models/_models/interfaces/voice/speak-options.interface.ts +19 -19
- package/src/_modules/ngx-models/_models/interfaces/voice/speak-result.interface.ts +14 -14
- package/src/_modules/ngx-models/_models/interfaces/voice/transcribe-options.interface.ts +14 -14
- package/src/_modules/ngx-models/_models/interfaces/voice/transcribe-result.interface.ts +15 -15
- package/src/_modules/ngx-models/_models/interfaces/voice/voice-profile.interface.ts +18 -18
- package/src/_modules/ngx-models/_models/interfaces/voice/voice-provider-init.interface.ts +21 -21
- package/src/_modules/ngx-models/_utils/shared.service.spec.ts +7 -7
- package/src/_modules/ngx-models/_utils/shared.service.ts +541 -541
- package/src/_modules/ngx-models/index.ts +110 -110
- package/src/_modules/pipe/_collections/pip-transforms.const.ts +42 -42
- package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.ts +47 -47
- package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.ts +41 -41
- package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.ts +39 -39
- package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.ts +30 -30
- package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.ts +41 -41
- package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.ts +36 -36
- package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.spec.ts +62 -62
- package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.ts +17 -17
- package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.ts +34 -34
- package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.ts +25 -25
- package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.ts +67 -67
- package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.ts +226 -226
- package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.ts +28 -28
- package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.ts +21 -21
- package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.ts +59 -59
- package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.ts +106 -106
- package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.ts +31 -31
- package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.ts +35 -35
- package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.ts +44 -44
- package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.ts +23 -23
- package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.ts +21 -21
- package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.ts +33 -33
- package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.ts +62 -62
- package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.ts +80 -80
- package/src/_modules/pipe/_enums/pip-range-pipe-setting.enum.ts +15 -15
- package/src/_modules/pipe/_enums/pip.enum.ts +65 -65
- package/src/_modules/pipe/_models/pip-multi-pipe-settings.type.ts +8 -8
- package/src/_modules/pipe/_models/pip-transforms.interface.ts +30 -30
- package/src/_modules/pipe/index.ts +30 -30
- package/src/_modules/security/_collections/stored-secret.util.spec.ts +81 -81
- package/src/_modules/security/_collections/stored-secret.util.ts +96 -96
- package/src/_modules/security/_models/stored-secret.control-model.ts +55 -55
- package/src/_modules/security/index.ts +9 -9
- package/src/_modules/socket/_enums/sck-event-key.enum.ts +21 -21
- package/src/_modules/socket/_models/sck-client-params.control-model.spec.ts +67 -67
- package/src/_modules/socket/_models/sck-client-params.control-model.ts +50 -50
- package/src/_modules/socket/_models/sck-socket-event.control-model.spec.ts +89 -66
- package/src/_modules/socket/_models/sck-socket-event.control-model.ts +185 -172
- package/src/_modules/socket/_services/sck-client.service-base.spec.ts +99 -99
- package/src/_modules/socket/_services/sck-client.service-base.ts +353 -353
- package/src/_modules/socket/index.ts +14 -14
- package/src/_modules/state-machine/_models/state-machine-config.interface.ts +19 -19
- package/src/_modules/state-machine/_models/state-machine-event.interface.ts +25 -25
- package/src/_modules/state-machine/_models/state-machine.control-model.spec.ts +314 -314
- package/src/_modules/state-machine/_models/state-machine.control-model.ts +298 -298
- package/src/_modules/state-machine/_models/state-transition-result.interface.ts +53 -53
- package/src/_modules/state-machine/_models/state-transition.interface.ts +30 -30
- package/src/_modules/state-machine/index.ts +6 -6
- package/src/_modules/test/_collections/tst-module-settings.const.ts +67 -67
- package/src/_modules/test/index.ts +5 -5
- package/src/_modules/usage/_collections/usg-module-settings.const.ts +33 -33
- package/src/_modules/usage/_models/usg-action.control-model.spec.ts +27 -27
- package/src/_modules/usage/_models/usg-action.control-model.ts +28 -28
- package/src/_modules/usage/_models/usg-daily-usage-data.control-model.spec.ts +36 -36
- package/src/_modules/usage/_models/usg-daily-usage-data.control-model.ts +35 -35
- package/src/_modules/usage/_models/usg-data.control-model.spec.ts +41 -41
- package/src/_modules/usage/_models/usg-data.control-model.ts +35 -35
- package/src/_modules/usage/_models/usg-session.data-model.spec.ts +97 -97
- package/src/_modules/usage/_models/usg-session.data-model.ts +72 -72
- package/src/_modules/usage/index.ts +11 -11
- package/src/index.ts +104 -104
- package/tsconfig.app.json +12 -12
- package/tsconfig.json +31 -31
- package/tsconfig.test.json +16 -16
- package/tslint.json +153 -153
|
@@ -1,541 +1,541 @@
|
|
|
1
|
-
|
|
2
|
-
import { DyFM_Select } from '../_models/control-models/select.control-model';
|
|
3
|
-
import { DyFM_SelectOptionsCustomConstructor } from '../_models/interfaces/select-options-custom-constructor.interface';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Copies properties from `setTo` to `setOn` when a value exists on
|
|
7
|
-
* the source and is not already defined on the destination.
|
|
8
|
-
*/
|
|
9
|
-
export function DyFM_setExisitngNonSetValuesOnly<T>(setOn: T, setTo: T): void {
|
|
10
|
-
for (const key in setTo) {
|
|
11
|
-
if (setTo[key] !== undefined && !setOn[key]) {
|
|
12
|
-
setOn[key] = setTo[key];
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
*
|
|
19
|
-
* @param objA
|
|
20
|
-
* @param objB
|
|
21
|
-
* @returns
|
|
22
|
-
*/
|
|
23
|
-
/**
|
|
24
|
-
* Compares two objects by value using JSON stringification.
|
|
25
|
-
*/
|
|
26
|
-
export function DyFM_sameObjects<T>(objA: T, objB: T): boolean {
|
|
27
|
-
return JSON.stringify(objA) === JSON.stringify(objB);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Checks if `objA` equals each object in `objBs` by value.
|
|
32
|
-
*/
|
|
33
|
-
export function DyFM_sameObjectsMultipleComparasion<T>(objA: T, ...objBs: T[]): boolean {
|
|
34
|
-
let same = true;
|
|
35
|
-
const strObjA = JSON.stringify(objA);
|
|
36
|
-
|
|
37
|
-
for (let i = 0; i < objBs.length && same; i++) {
|
|
38
|
-
if (strObjA !== JSON.stringify(objBs[i])) {
|
|
39
|
-
same = false;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return same;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Collection of helper utilities used across the library.
|
|
48
|
-
*/
|
|
49
|
-
export class DyFM_SharedService {
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* enum key will be the value, and the value will be the label
|
|
53
|
-
* @param enumObject
|
|
54
|
-
* @param withNull
|
|
55
|
-
* @returns
|
|
56
|
-
*/
|
|
57
|
-
static getSelectOptionsByEnumKeys<EnumObj_T>(
|
|
58
|
-
enumObject: EnumObj_T,
|
|
59
|
-
withNull?: string
|
|
60
|
-
): DyFM_Select<string>[] {
|
|
61
|
-
const selectOptions: DyFM_Select<string>[] = [];
|
|
62
|
-
const keys = Object.keys(enumObject);
|
|
63
|
-
|
|
64
|
-
if (withNull) {
|
|
65
|
-
selectOptions.push(new DyFM_Select<string>(withNull, null));
|
|
66
|
-
}
|
|
67
|
-
keys.forEach((key): void => {
|
|
68
|
-
selectOptions.push(
|
|
69
|
-
new DyFM_Select<string>(enumObject[<keyof EnumObj_T>key] as string, key)
|
|
70
|
-
);
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
return selectOptions;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* enum value will be the label AND the value
|
|
78
|
-
* @param enumObject
|
|
79
|
-
* @param withNull
|
|
80
|
-
* @returns
|
|
81
|
-
*/
|
|
82
|
-
static getSelectOptionsByEnumValues<EnumObj_T, Enum_T>(
|
|
83
|
-
enumObject: EnumObj_T,
|
|
84
|
-
withNull?: string
|
|
85
|
-
): DyFM_Select<Enum_T>[] {
|
|
86
|
-
const selectOptions: DyFM_Select<Enum_T>[] = [];
|
|
87
|
-
const keys = Object.keys(enumObject);
|
|
88
|
-
|
|
89
|
-
if (withNull) {
|
|
90
|
-
selectOptions.push(new DyFM_Select<Enum_T>(withNull, null));
|
|
91
|
-
}
|
|
92
|
-
keys.forEach((key): void => {
|
|
93
|
-
selectOptions.push(
|
|
94
|
-
new DyFM_Select<Enum_T>(
|
|
95
|
-
enumObject[<keyof EnumObj_T>key] as string,
|
|
96
|
-
enumObject[<keyof EnumObj_T>key] as Enum_T
|
|
97
|
-
)
|
|
98
|
-
);
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
return selectOptions;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* this object is used by DynamoSharedService.getSelectOptionsByCustomObjectList()
|
|
107
|
-
* this will help you create select options from any object list
|
|
108
|
-
*
|
|
109
|
-
* if withNull is setted, the first element will be a selectoption with the given label and with a null as value
|
|
110
|
-
*
|
|
111
|
-
* the priority rule is by:
|
|
112
|
-
*
|
|
113
|
-
* if objList & objListLabelKey setted:
|
|
114
|
-
* these will be used,
|
|
115
|
-
* if objListValueKey is setted it will be used,
|
|
116
|
-
* otherwise the full object will be used as value
|
|
117
|
-
* keys can be defined as sub-objects as well like 'main.person.face.eyeColor' or ['main','person','face','eyeColor']
|
|
118
|
-
*
|
|
119
|
-
* if obj is given:
|
|
120
|
-
* objects all key will be label, and every value will be value
|
|
121
|
-
*
|
|
122
|
-
* if list is given:
|
|
123
|
-
* all labels and values will be a string setted in by the string list
|
|
124
|
-
*
|
|
125
|
-
* @example
|
|
126
|
-
* DynamoSharedService.getSelectOptionsByCustomObjectList({
|
|
127
|
-
* objListLabelKey: `name`,
|
|
128
|
-
* objListValueKey: '_id',
|
|
129
|
-
* objList: customObjectList,
|
|
130
|
-
* withNull: true
|
|
131
|
-
* })
|
|
132
|
-
*/
|
|
133
|
-
static getSelectOptionsByCustomObjectList<Select_T, Constructor_T>(
|
|
134
|
-
params: DyFM_SelectOptionsCustomConstructor<Constructor_T>
|
|
135
|
-
): DyFM_Select<Select_T>[] {
|
|
136
|
-
if (params.objListLabelKey?.includes('.')) {
|
|
137
|
-
params.objListLabelKey = (params.objListLabelKey as string).split('.');
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
if (params.objListLabelKey?.includes('.')) {
|
|
141
|
-
params.objListValueKey = (params.objListValueKey as string).split('.');
|
|
142
|
-
}
|
|
143
|
-
const labelNested = Array.isArray(params.objListLabelKey);
|
|
144
|
-
const valueNested = Array.isArray(params.objListValueKey);
|
|
145
|
-
|
|
146
|
-
if (params.objList && (labelNested || valueNested)) {
|
|
147
|
-
if (!labelNested) {
|
|
148
|
-
params.objListLabelKey = [ params.objListLabelKey as string ];
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
if (!valueNested) {
|
|
152
|
-
params.objListValueKey = [ params.objListValueKey as string ];
|
|
153
|
-
}
|
|
154
|
-
params.objList = this.mapObjList(
|
|
155
|
-
params.objList,
|
|
156
|
-
[ params.objListLabelKey, params.objListValueKey ] as string[][]
|
|
157
|
-
);
|
|
158
|
-
params.objListLabelKey = params.objListLabelKey[params.objListLabelKey.length - 1];
|
|
159
|
-
params.objListValueKey = params.objListValueKey[params.objListValueKey.length - 1];
|
|
160
|
-
console.log('obj reduced', params);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
const dropdown: DyFM_Select<Select_T>[] = [];
|
|
164
|
-
|
|
165
|
-
if (params.withNull) {
|
|
166
|
-
dropdown.push(new DyFM_Select<Select_T>(params.withNull, null));
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
if (params.objList && params.objListLabelKey) {
|
|
170
|
-
if (params.objListValueKey) {
|
|
171
|
-
params.objList.forEach((item): void => {
|
|
172
|
-
if (item[params.objListLabelKey as string] && item[params.objListValueKey as string]) {
|
|
173
|
-
dropdown.push(
|
|
174
|
-
new DyFM_Select<Select_T>(
|
|
175
|
-
item[params.objListLabelKey as string],
|
|
176
|
-
item[params.objListValueKey as string] as Select_T
|
|
177
|
-
)
|
|
178
|
-
);
|
|
179
|
-
} else {
|
|
180
|
-
console.error(
|
|
181
|
-
`DYNAMO ERROR: `,
|
|
182
|
-
`\n missing property! '${params.objListLabelKey}' OR `,
|
|
183
|
-
`'${params.objListValueKey}' from`, item,
|
|
184
|
-
);
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
|
|
188
|
-
return dropdown;
|
|
189
|
-
} else {
|
|
190
|
-
params.objList.forEach((item): void => {
|
|
191
|
-
if (item[params.objListLabelKey as string]) {
|
|
192
|
-
dropdown.push(new DyFM_Select<any>(item[params.objListLabelKey as string], item));
|
|
193
|
-
} else {
|
|
194
|
-
console.error(
|
|
195
|
-
'DYNAMO ERROR: ',
|
|
196
|
-
'\n missing property!',
|
|
197
|
-
params.objListLabelKey,
|
|
198
|
-
item,
|
|
199
|
-
);
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
|
|
203
|
-
return dropdown;
|
|
204
|
-
}
|
|
205
|
-
} else if (params.obj) {
|
|
206
|
-
// tslint:disable-next-line: forin
|
|
207
|
-
for (const key in params.obj) {
|
|
208
|
-
dropdown.push(
|
|
209
|
-
new DyFM_Select<Select_T>(key, params.obj[<keyof Constructor_T>key] as Select_T)
|
|
210
|
-
);
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
return dropdown;
|
|
214
|
-
} else if (params.list) {
|
|
215
|
-
params.list.forEach((item: string): void => {
|
|
216
|
-
dropdown.push(new DyFM_Select<Select_T>(item, item as Select_T));
|
|
217
|
-
});
|
|
218
|
-
|
|
219
|
-
return dropdown;
|
|
220
|
-
} else {
|
|
221
|
-
console.error(
|
|
222
|
-
'DYNAMO ERROR: ',
|
|
223
|
-
'\n no list or object was provided!',
|
|
224
|
-
);
|
|
225
|
-
|
|
226
|
-
return dropdown;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* returns remapped object list by path list
|
|
232
|
-
* @param objList object list to map
|
|
233
|
-
* @param paths string list of path etc.:
|
|
234
|
-
* [ [ 'first', 'sub', 'label' ], [ 'first', 'dif', 'name' ]] will be...
|
|
235
|
-
* from
|
|
236
|
-
* {
|
|
237
|
-
* first: {
|
|
238
|
-
* sub: {
|
|
239
|
-
* label: 'vlmi'
|
|
240
|
-
* },
|
|
241
|
-
* dif: {
|
|
242
|
-
* name: 'asd'
|
|
243
|
-
* }
|
|
244
|
-
* }
|
|
245
|
-
* }[]
|
|
246
|
-
* to
|
|
247
|
-
* { label: 'vlmi', name: 'asd' }[]
|
|
248
|
-
* @returns remapped object list (the final obj will use the deepest keys)
|
|
249
|
-
*/
|
|
250
|
-
static mapObjList<SourceObj_T, ResultObj_T>(
|
|
251
|
-
objList: SourceObj_T[],
|
|
252
|
-
paths: string[][]
|
|
253
|
-
): ResultObj_T[] {
|
|
254
|
-
const resultObjList: ResultObj_T[] = [];
|
|
255
|
-
|
|
256
|
-
objList.forEach((obj: SourceObj_T): void => {
|
|
257
|
-
const newObj: ResultObj_T = {} as ResultObj_T;
|
|
258
|
-
|
|
259
|
-
paths.forEach((path: string[]): void => {
|
|
260
|
-
newObj[<keyof ResultObj_T>path[path.length - 1]] = this.getNestedData(obj, path);
|
|
261
|
-
});
|
|
262
|
-
|
|
263
|
-
/* return newObj; */
|
|
264
|
-
});
|
|
265
|
-
|
|
266
|
-
return resultObjList;
|
|
267
|
-
}
|
|
268
|
-
/* OLD
|
|
269
|
-
static mapObjList(objList: object[], paths: string[][]): object[] {
|
|
270
|
-
let newObjList = [ ...objList ];
|
|
271
|
-
|
|
272
|
-
newObjList = newObjList.map(obj => {
|
|
273
|
-
const newObj = {};
|
|
274
|
-
|
|
275
|
-
paths.forEach((path: string[]) => {
|
|
276
|
-
newObj[path[path.length - 1]] = this.getNestedData(obj, path);
|
|
277
|
-
});
|
|
278
|
-
|
|
279
|
-
return newObj;
|
|
280
|
-
});
|
|
281
|
-
|
|
282
|
-
return newObjList;
|
|
283
|
-
} */
|
|
284
|
-
|
|
285
|
-
/**
|
|
286
|
-
* returns nested value from object
|
|
287
|
-
* @param parentObj data source object
|
|
288
|
-
* @param nestedDataKeys path of value as string list
|
|
289
|
-
* etc.: ['nestLvl1', 'nestLvl2', 'nestLvl3'] as parentObj.nestLvl1.nestLvl2.nestLvl3
|
|
290
|
-
* @returns data from object by path
|
|
291
|
-
*/
|
|
292
|
-
static getNestedData(parentObj: any, nestedDataKeys: string[]): any {
|
|
293
|
-
if (!parentObj) {
|
|
294
|
-
console.error(
|
|
295
|
-
'DYNAMO ERROR: ',
|
|
296
|
-
`\nDyFM_SharedService.getNestedData failed; missing parent object`,
|
|
297
|
-
`\nfor: ${nestedDataKeys[0]}`,
|
|
298
|
-
);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
let data = parentObj;
|
|
302
|
-
|
|
303
|
-
for(const element of nestedDataKeys) {
|
|
304
|
-
if (data) {
|
|
305
|
-
data = data[element];
|
|
306
|
-
} else {
|
|
307
|
-
console.error(
|
|
308
|
-
'DYNAMO ERROR: ',
|
|
309
|
-
`\nDyFM_SharedService.getNestedData failed; missing parent for: ${element}`,
|
|
310
|
-
`\nfromKeys: ${nestedDataKeys}`,
|
|
311
|
-
);
|
|
312
|
-
break;
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
/* nestedDataKeys.forEach((dk: string): void => {
|
|
316
|
-
if (data) {
|
|
317
|
-
data = data[dk];
|
|
318
|
-
} else {
|
|
319
|
-
console.error(
|
|
320
|
-
'DYNAMO ERROR: ' +
|
|
321
|
-
`\nDyFM_SharedService.getNestedData failed; missing parent for: ${dk}`,
|
|
322
|
-
`\nfromKeys: ${nestedDataKeys[0]}`,
|
|
323
|
-
'\n\n', new Error()
|
|
324
|
-
);
|
|
325
|
-
}
|
|
326
|
-
}); */
|
|
327
|
-
|
|
328
|
-
return data;
|
|
329
|
-
}
|
|
330
|
-
/* OLD
|
|
331
|
-
static getNestedData(parentObj: any, nestedDataKeys: string[]): any {
|
|
332
|
-
let data = { ...parentObj };
|
|
333
|
-
|
|
334
|
-
nestedDataKeys.forEach((dk: string) => {
|
|
335
|
-
if (data) {
|
|
336
|
-
data = data[dk];
|
|
337
|
-
}
|
|
338
|
-
});
|
|
339
|
-
|
|
340
|
-
return data;
|
|
341
|
-
} */
|
|
342
|
-
|
|
343
|
-
/**
|
|
344
|
-
* recursive function that nests data
|
|
345
|
-
* @param newData the object that that is needed to be updated
|
|
346
|
-
* @param nestKeys the path where the data should be updated
|
|
347
|
-
* @param dataToSet the actual value that will be setted
|
|
348
|
-
* @returns modified data
|
|
349
|
-
*/
|
|
350
|
-
static nestData<T>(
|
|
351
|
-
parentObj: T,
|
|
352
|
-
nestKeys: string[],
|
|
353
|
-
dataToSet: any,
|
|
354
|
-
createMissingObjs?: boolean
|
|
355
|
-
): void {
|
|
356
|
-
if (!parentObj) {
|
|
357
|
-
if (createMissingObjs) {
|
|
358
|
-
parentObj = {} as T;
|
|
359
|
-
} else {
|
|
360
|
-
console.error(
|
|
361
|
-
'DYNAMO ERROR: ',
|
|
362
|
-
`\nDyFM_SharedService.nestData failed; missing parent object for: ${nestKeys[0]}`,
|
|
363
|
-
`\nturn on createMissingObjs to create missing objects`,
|
|
364
|
-
);
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
if (nestKeys.length > 1) {
|
|
369
|
-
const keys = [ ...nestKeys ];
|
|
370
|
-
const nextNestKey = keys.shift();
|
|
371
|
-
|
|
372
|
-
this.nestData(parentObj[<keyof T>nextNestKey], keys, dataToSet, createMissingObjs);
|
|
373
|
-
} else {
|
|
374
|
-
parentObj[<keyof T>nestKeys[0]] = dataToSet;
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
/* OLD
|
|
378
|
-
static nestData<T>(parentObj: T, nestKeys: string[], dataToSet: any): T {
|
|
379
|
-
const newData = DyFM_Object.clone(parentObj); // {...parentObj};
|
|
380
|
-
|
|
381
|
-
if (nestKeys.length > 1) {
|
|
382
|
-
const keys = [ ...nestKeys ];
|
|
383
|
-
const nextNestKey = keys.shift();
|
|
384
|
-
|
|
385
|
-
newData[nextNestKey] = this.nestData(newData[nextNestKey], keys, dataToSet);
|
|
386
|
-
} else {
|
|
387
|
-
newData[nestKeys[0]] = dataToSet;
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
return newData;
|
|
391
|
-
} */
|
|
392
|
-
|
|
393
|
-
/**
|
|
394
|
-
* recursive function that adds to nested data
|
|
395
|
-
* @param newData the object that that is needed to be updated
|
|
396
|
-
* @param nestKeys the path where the data should be updated
|
|
397
|
-
* @param dataToAdd the actual value that will be setted
|
|
398
|
-
* @returns modified data
|
|
399
|
-
*/
|
|
400
|
-
static addToNestedData<T>(
|
|
401
|
-
parentObj: T,
|
|
402
|
-
nestKeys: string[],
|
|
403
|
-
dataToAdd: any,
|
|
404
|
-
createMissingObjs?: boolean
|
|
405
|
-
): void {
|
|
406
|
-
if (!parentObj) {
|
|
407
|
-
if (createMissingObjs) {
|
|
408
|
-
parentObj = {} as T;
|
|
409
|
-
} else {
|
|
410
|
-
console.error(
|
|
411
|
-
'DYNAMO ERROR: ',
|
|
412
|
-
`\nDyFM_SharedService.addToNestedData failed; missing parent object for: ${nestKeys[0]}`,
|
|
413
|
-
`\nturn on createMissingObjs to create missing objects`,
|
|
414
|
-
);
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
if (nestKeys.length > 1) {
|
|
419
|
-
const keys = [ ...nestKeys ];
|
|
420
|
-
const nextNestKey = keys.shift();
|
|
421
|
-
|
|
422
|
-
this.addToNestedData(parentObj[<keyof T>nextNestKey], keys, dataToAdd);
|
|
423
|
-
} else {
|
|
424
|
-
parentObj[<keyof T>(nestKeys[0])] += dataToAdd;
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
// TODO
|
|
429
|
-
/*
|
|
430
|
-
static addToNestedData<T>(parentObj: T, nestKeys: string[], dataToAdd: any): T {
|
|
431
|
-
const newData: T = DyFM_Object.clone(parentObj); // {...parentObj};
|
|
432
|
-
|
|
433
|
-
if (nestKeys.length > 1) {
|
|
434
|
-
const keys = [ ...nestKeys ];
|
|
435
|
-
const nextNestKey = keys.shift();
|
|
436
|
-
|
|
437
|
-
newData[<keyof T>nextNestKey] = this.addToNestedData(newData[<keyof T>nextNestKey], keys, dataToAdd);
|
|
438
|
-
} else {
|
|
439
|
-
newData[<keyof T>(nestKeys[0])] += dataToAdd;
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
return newData;
|
|
443
|
-
} */
|
|
444
|
-
|
|
445
|
-
/**
|
|
446
|
-
* recursive function that pushes to nested data
|
|
447
|
-
* @param newData the object that that is needed to be updated
|
|
448
|
-
* @param nestKeys the path where the data should be updated
|
|
449
|
-
* @param dataToPush the actual value that will be setted
|
|
450
|
-
* @returns modified data
|
|
451
|
-
*/
|
|
452
|
-
static pushToNestedData<Obj_T, Data_T>(
|
|
453
|
-
parentObj: Obj_T,
|
|
454
|
-
nestKeys: string[],
|
|
455
|
-
dataToPush: Data_T
|
|
456
|
-
): void {
|
|
457
|
-
if (1 < nestKeys.length) {
|
|
458
|
-
const keys = [ ...nestKeys ];
|
|
459
|
-
const nextNestKey = keys.shift();
|
|
460
|
-
|
|
461
|
-
this.pushToNestedData(parentObj[nextNestKey], keys, dataToPush);
|
|
462
|
-
} else {
|
|
463
|
-
if (Array.isArray(parentObj[nestKeys[0]])) {
|
|
464
|
-
parentObj[nestKeys[0]].push(dataToPush);
|
|
465
|
-
} else {
|
|
466
|
-
parentObj[nestKeys[0]] = [ dataToPush ];
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
// TODO
|
|
472
|
-
/*
|
|
473
|
-
static pushToNestedData(parentObj: any, nestKeys: string[], dataToPush: any): any {
|
|
474
|
-
const newData = { ...parentObj };
|
|
475
|
-
|
|
476
|
-
if (1 < nestKeys.length) {
|
|
477
|
-
const keys = [ ...nestKeys ];
|
|
478
|
-
const nextNestKey = keys.shift();
|
|
479
|
-
|
|
480
|
-
newData[nextNestKey] = this.pushToNestedData(newData[nextNestKey], keys, dataToPush);
|
|
481
|
-
} else {
|
|
482
|
-
if (Array.isArray(newData[nestKeys[0]])) {
|
|
483
|
-
newData[nestKeys[0]].push(dataToPush);
|
|
484
|
-
} else {
|
|
485
|
-
newData[nestKeys[0]] = [dataToPush];
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
return newData;
|
|
490
|
-
} */
|
|
491
|
-
|
|
492
|
-
/**
|
|
493
|
-
* recursive function that nests data on recursive data structure etc.: xData: { ..., 'nestedListKey': xData[] }
|
|
494
|
-
* @param newData the object that that is needed to be updated
|
|
495
|
-
* @param nestedListKey the location of nested dataList
|
|
496
|
-
* @param nestIndexes path to the subject ect.: xData.listKey[1].listKey[4].listKey[0] will be [1, 4, 0]
|
|
497
|
-
* @param dataToSet the actual value that will be setted on location
|
|
498
|
-
* @returns modified data
|
|
499
|
-
*/
|
|
500
|
-
static nestRecursiveListedData<T, List_T>(
|
|
501
|
-
parentObj: T,
|
|
502
|
-
nestedListKey: string,
|
|
503
|
-
nestIndexes: number[],
|
|
504
|
-
dataToSet: List_T
|
|
505
|
-
): void {
|
|
506
|
-
const nestedList: List_T[] = parentObj[<keyof T>nestedListKey] as List_T[];
|
|
507
|
-
|
|
508
|
-
if (1 < nestIndexes.length) {
|
|
509
|
-
const indexes: number[] = [ ...nestIndexes ];
|
|
510
|
-
const nextLevelKey: number = indexes.shift();
|
|
511
|
-
|
|
512
|
-
this.nestRecursiveListedData(
|
|
513
|
-
nestedList[nextLevelKey], nestedListKey, indexes, dataToSet
|
|
514
|
-
);
|
|
515
|
-
} else {
|
|
516
|
-
nestedList[nestIndexes[0]] = dataToSet;
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
/* OLD
|
|
520
|
-
static nestRecursiveListedData<T>(
|
|
521
|
-
parentObj: T,
|
|
522
|
-
nestedListKey: string,
|
|
523
|
-
nestIndexes: number[],
|
|
524
|
-
dataToSet: unknown
|
|
525
|
-
): T {
|
|
526
|
-
const newData: T = { ...parentObj };
|
|
527
|
-
|
|
528
|
-
if (1 < nestIndexes.length) {
|
|
529
|
-
const indexes: number[] = [ ...nestIndexes ];
|
|
530
|
-
const nextLevelKey: number = indexes.shift();
|
|
531
|
-
|
|
532
|
-
newData[nestedListKey][nextLevelKey] = this.nestRecursiveListedData(
|
|
533
|
-
newData[nestedListKey][nextLevelKey], nestedListKey, indexes, dataToSet
|
|
534
|
-
);
|
|
535
|
-
} else {
|
|
536
|
-
newData[nestedListKey][nestIndexes[0]] = dataToSet;
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
return newData;
|
|
540
|
-
} */
|
|
541
|
-
}
|
|
1
|
+
|
|
2
|
+
import { DyFM_Select } from '../_models/control-models/select.control-model';
|
|
3
|
+
import { DyFM_SelectOptionsCustomConstructor } from '../_models/interfaces/select-options-custom-constructor.interface';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Copies properties from `setTo` to `setOn` when a value exists on
|
|
7
|
+
* the source and is not already defined on the destination.
|
|
8
|
+
*/
|
|
9
|
+
export function DyFM_setExisitngNonSetValuesOnly<T>(setOn: T, setTo: T): void {
|
|
10
|
+
for (const key in setTo) {
|
|
11
|
+
if (setTo[key] !== undefined && !setOn[key]) {
|
|
12
|
+
setOn[key] = setTo[key];
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
* @param objA
|
|
20
|
+
* @param objB
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Compares two objects by value using JSON stringification.
|
|
25
|
+
*/
|
|
26
|
+
export function DyFM_sameObjects<T>(objA: T, objB: T): boolean {
|
|
27
|
+
return JSON.stringify(objA) === JSON.stringify(objB);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Checks if `objA` equals each object in `objBs` by value.
|
|
32
|
+
*/
|
|
33
|
+
export function DyFM_sameObjectsMultipleComparasion<T>(objA: T, ...objBs: T[]): boolean {
|
|
34
|
+
let same = true;
|
|
35
|
+
const strObjA = JSON.stringify(objA);
|
|
36
|
+
|
|
37
|
+
for (let i = 0; i < objBs.length && same; i++) {
|
|
38
|
+
if (strObjA !== JSON.stringify(objBs[i])) {
|
|
39
|
+
same = false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return same;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Collection of helper utilities used across the library.
|
|
48
|
+
*/
|
|
49
|
+
export class DyFM_SharedService {
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* enum key will be the value, and the value will be the label
|
|
53
|
+
* @param enumObject
|
|
54
|
+
* @param withNull
|
|
55
|
+
* @returns
|
|
56
|
+
*/
|
|
57
|
+
static getSelectOptionsByEnumKeys<EnumObj_T>(
|
|
58
|
+
enumObject: EnumObj_T,
|
|
59
|
+
withNull?: string
|
|
60
|
+
): DyFM_Select<string>[] {
|
|
61
|
+
const selectOptions: DyFM_Select<string>[] = [];
|
|
62
|
+
const keys = Object.keys(enumObject);
|
|
63
|
+
|
|
64
|
+
if (withNull) {
|
|
65
|
+
selectOptions.push(new DyFM_Select<string>(withNull, null));
|
|
66
|
+
}
|
|
67
|
+
keys.forEach((key): void => {
|
|
68
|
+
selectOptions.push(
|
|
69
|
+
new DyFM_Select<string>(enumObject[<keyof EnumObj_T>key] as string, key)
|
|
70
|
+
);
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
return selectOptions;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* enum value will be the label AND the value
|
|
78
|
+
* @param enumObject
|
|
79
|
+
* @param withNull
|
|
80
|
+
* @returns
|
|
81
|
+
*/
|
|
82
|
+
static getSelectOptionsByEnumValues<EnumObj_T, Enum_T>(
|
|
83
|
+
enumObject: EnumObj_T,
|
|
84
|
+
withNull?: string
|
|
85
|
+
): DyFM_Select<Enum_T>[] {
|
|
86
|
+
const selectOptions: DyFM_Select<Enum_T>[] = [];
|
|
87
|
+
const keys = Object.keys(enumObject);
|
|
88
|
+
|
|
89
|
+
if (withNull) {
|
|
90
|
+
selectOptions.push(new DyFM_Select<Enum_T>(withNull, null));
|
|
91
|
+
}
|
|
92
|
+
keys.forEach((key): void => {
|
|
93
|
+
selectOptions.push(
|
|
94
|
+
new DyFM_Select<Enum_T>(
|
|
95
|
+
enumObject[<keyof EnumObj_T>key] as string,
|
|
96
|
+
enumObject[<keyof EnumObj_T>key] as Enum_T
|
|
97
|
+
)
|
|
98
|
+
);
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
return selectOptions;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* this object is used by DynamoSharedService.getSelectOptionsByCustomObjectList()
|
|
107
|
+
* this will help you create select options from any object list
|
|
108
|
+
*
|
|
109
|
+
* if withNull is setted, the first element will be a selectoption with the given label and with a null as value
|
|
110
|
+
*
|
|
111
|
+
* the priority rule is by:
|
|
112
|
+
*
|
|
113
|
+
* if objList & objListLabelKey setted:
|
|
114
|
+
* these will be used,
|
|
115
|
+
* if objListValueKey is setted it will be used,
|
|
116
|
+
* otherwise the full object will be used as value
|
|
117
|
+
* keys can be defined as sub-objects as well like 'main.person.face.eyeColor' or ['main','person','face','eyeColor']
|
|
118
|
+
*
|
|
119
|
+
* if obj is given:
|
|
120
|
+
* objects all key will be label, and every value will be value
|
|
121
|
+
*
|
|
122
|
+
* if list is given:
|
|
123
|
+
* all labels and values will be a string setted in by the string list
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* DynamoSharedService.getSelectOptionsByCustomObjectList({
|
|
127
|
+
* objListLabelKey: `name`,
|
|
128
|
+
* objListValueKey: '_id',
|
|
129
|
+
* objList: customObjectList,
|
|
130
|
+
* withNull: true
|
|
131
|
+
* })
|
|
132
|
+
*/
|
|
133
|
+
static getSelectOptionsByCustomObjectList<Select_T, Constructor_T>(
|
|
134
|
+
params: DyFM_SelectOptionsCustomConstructor<Constructor_T>
|
|
135
|
+
): DyFM_Select<Select_T>[] {
|
|
136
|
+
if (params.objListLabelKey?.includes('.')) {
|
|
137
|
+
params.objListLabelKey = (params.objListLabelKey as string).split('.');
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (params.objListLabelKey?.includes('.')) {
|
|
141
|
+
params.objListValueKey = (params.objListValueKey as string).split('.');
|
|
142
|
+
}
|
|
143
|
+
const labelNested = Array.isArray(params.objListLabelKey);
|
|
144
|
+
const valueNested = Array.isArray(params.objListValueKey);
|
|
145
|
+
|
|
146
|
+
if (params.objList && (labelNested || valueNested)) {
|
|
147
|
+
if (!labelNested) {
|
|
148
|
+
params.objListLabelKey = [ params.objListLabelKey as string ];
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
if (!valueNested) {
|
|
152
|
+
params.objListValueKey = [ params.objListValueKey as string ];
|
|
153
|
+
}
|
|
154
|
+
params.objList = this.mapObjList(
|
|
155
|
+
params.objList,
|
|
156
|
+
[ params.objListLabelKey, params.objListValueKey ] as string[][]
|
|
157
|
+
);
|
|
158
|
+
params.objListLabelKey = params.objListLabelKey[params.objListLabelKey.length - 1];
|
|
159
|
+
params.objListValueKey = params.objListValueKey[params.objListValueKey.length - 1];
|
|
160
|
+
console.log('obj reduced', params);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
const dropdown: DyFM_Select<Select_T>[] = [];
|
|
164
|
+
|
|
165
|
+
if (params.withNull) {
|
|
166
|
+
dropdown.push(new DyFM_Select<Select_T>(params.withNull, null));
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (params.objList && params.objListLabelKey) {
|
|
170
|
+
if (params.objListValueKey) {
|
|
171
|
+
params.objList.forEach((item): void => {
|
|
172
|
+
if (item[params.objListLabelKey as string] && item[params.objListValueKey as string]) {
|
|
173
|
+
dropdown.push(
|
|
174
|
+
new DyFM_Select<Select_T>(
|
|
175
|
+
item[params.objListLabelKey as string],
|
|
176
|
+
item[params.objListValueKey as string] as Select_T
|
|
177
|
+
)
|
|
178
|
+
);
|
|
179
|
+
} else {
|
|
180
|
+
console.error(
|
|
181
|
+
`DYNAMO ERROR: `,
|
|
182
|
+
`\n missing property! '${params.objListLabelKey}' OR `,
|
|
183
|
+
`'${params.objListValueKey}' from`, item,
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
return dropdown;
|
|
189
|
+
} else {
|
|
190
|
+
params.objList.forEach((item): void => {
|
|
191
|
+
if (item[params.objListLabelKey as string]) {
|
|
192
|
+
dropdown.push(new DyFM_Select<any>(item[params.objListLabelKey as string], item));
|
|
193
|
+
} else {
|
|
194
|
+
console.error(
|
|
195
|
+
'DYNAMO ERROR: ',
|
|
196
|
+
'\n missing property!',
|
|
197
|
+
params.objListLabelKey,
|
|
198
|
+
item,
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
return dropdown;
|
|
204
|
+
}
|
|
205
|
+
} else if (params.obj) {
|
|
206
|
+
// tslint:disable-next-line: forin
|
|
207
|
+
for (const key in params.obj) {
|
|
208
|
+
dropdown.push(
|
|
209
|
+
new DyFM_Select<Select_T>(key, params.obj[<keyof Constructor_T>key] as Select_T)
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
return dropdown;
|
|
214
|
+
} else if (params.list) {
|
|
215
|
+
params.list.forEach((item: string): void => {
|
|
216
|
+
dropdown.push(new DyFM_Select<Select_T>(item, item as Select_T));
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
return dropdown;
|
|
220
|
+
} else {
|
|
221
|
+
console.error(
|
|
222
|
+
'DYNAMO ERROR: ',
|
|
223
|
+
'\n no list or object was provided!',
|
|
224
|
+
);
|
|
225
|
+
|
|
226
|
+
return dropdown;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* returns remapped object list by path list
|
|
232
|
+
* @param objList object list to map
|
|
233
|
+
* @param paths string list of path etc.:
|
|
234
|
+
* [ [ 'first', 'sub', 'label' ], [ 'first', 'dif', 'name' ]] will be...
|
|
235
|
+
* from
|
|
236
|
+
* {
|
|
237
|
+
* first: {
|
|
238
|
+
* sub: {
|
|
239
|
+
* label: 'vlmi'
|
|
240
|
+
* },
|
|
241
|
+
* dif: {
|
|
242
|
+
* name: 'asd'
|
|
243
|
+
* }
|
|
244
|
+
* }
|
|
245
|
+
* }[]
|
|
246
|
+
* to
|
|
247
|
+
* { label: 'vlmi', name: 'asd' }[]
|
|
248
|
+
* @returns remapped object list (the final obj will use the deepest keys)
|
|
249
|
+
*/
|
|
250
|
+
static mapObjList<SourceObj_T, ResultObj_T>(
|
|
251
|
+
objList: SourceObj_T[],
|
|
252
|
+
paths: string[][]
|
|
253
|
+
): ResultObj_T[] {
|
|
254
|
+
const resultObjList: ResultObj_T[] = [];
|
|
255
|
+
|
|
256
|
+
objList.forEach((obj: SourceObj_T): void => {
|
|
257
|
+
const newObj: ResultObj_T = {} as ResultObj_T;
|
|
258
|
+
|
|
259
|
+
paths.forEach((path: string[]): void => {
|
|
260
|
+
newObj[<keyof ResultObj_T>path[path.length - 1]] = this.getNestedData(obj, path);
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
/* return newObj; */
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
return resultObjList;
|
|
267
|
+
}
|
|
268
|
+
/* OLD
|
|
269
|
+
static mapObjList(objList: object[], paths: string[][]): object[] {
|
|
270
|
+
let newObjList = [ ...objList ];
|
|
271
|
+
|
|
272
|
+
newObjList = newObjList.map(obj => {
|
|
273
|
+
const newObj = {};
|
|
274
|
+
|
|
275
|
+
paths.forEach((path: string[]) => {
|
|
276
|
+
newObj[path[path.length - 1]] = this.getNestedData(obj, path);
|
|
277
|
+
});
|
|
278
|
+
|
|
279
|
+
return newObj;
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
return newObjList;
|
|
283
|
+
} */
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* returns nested value from object
|
|
287
|
+
* @param parentObj data source object
|
|
288
|
+
* @param nestedDataKeys path of value as string list
|
|
289
|
+
* etc.: ['nestLvl1', 'nestLvl2', 'nestLvl3'] as parentObj.nestLvl1.nestLvl2.nestLvl3
|
|
290
|
+
* @returns data from object by path
|
|
291
|
+
*/
|
|
292
|
+
static getNestedData(parentObj: any, nestedDataKeys: string[]): any {
|
|
293
|
+
if (!parentObj) {
|
|
294
|
+
console.error(
|
|
295
|
+
'DYNAMO ERROR: ',
|
|
296
|
+
`\nDyFM_SharedService.getNestedData failed; missing parent object`,
|
|
297
|
+
`\nfor: ${nestedDataKeys[0]}`,
|
|
298
|
+
);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
let data = parentObj;
|
|
302
|
+
|
|
303
|
+
for(const element of nestedDataKeys) {
|
|
304
|
+
if (data) {
|
|
305
|
+
data = data[element];
|
|
306
|
+
} else {
|
|
307
|
+
console.error(
|
|
308
|
+
'DYNAMO ERROR: ',
|
|
309
|
+
`\nDyFM_SharedService.getNestedData failed; missing parent for: ${element}`,
|
|
310
|
+
`\nfromKeys: ${nestedDataKeys}`,
|
|
311
|
+
);
|
|
312
|
+
break;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
/* nestedDataKeys.forEach((dk: string): void => {
|
|
316
|
+
if (data) {
|
|
317
|
+
data = data[dk];
|
|
318
|
+
} else {
|
|
319
|
+
console.error(
|
|
320
|
+
'DYNAMO ERROR: ' +
|
|
321
|
+
`\nDyFM_SharedService.getNestedData failed; missing parent for: ${dk}`,
|
|
322
|
+
`\nfromKeys: ${nestedDataKeys[0]}`,
|
|
323
|
+
'\n\n', new Error()
|
|
324
|
+
);
|
|
325
|
+
}
|
|
326
|
+
}); */
|
|
327
|
+
|
|
328
|
+
return data;
|
|
329
|
+
}
|
|
330
|
+
/* OLD
|
|
331
|
+
static getNestedData(parentObj: any, nestedDataKeys: string[]): any {
|
|
332
|
+
let data = { ...parentObj };
|
|
333
|
+
|
|
334
|
+
nestedDataKeys.forEach((dk: string) => {
|
|
335
|
+
if (data) {
|
|
336
|
+
data = data[dk];
|
|
337
|
+
}
|
|
338
|
+
});
|
|
339
|
+
|
|
340
|
+
return data;
|
|
341
|
+
} */
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* recursive function that nests data
|
|
345
|
+
* @param newData the object that that is needed to be updated
|
|
346
|
+
* @param nestKeys the path where the data should be updated
|
|
347
|
+
* @param dataToSet the actual value that will be setted
|
|
348
|
+
* @returns modified data
|
|
349
|
+
*/
|
|
350
|
+
static nestData<T>(
|
|
351
|
+
parentObj: T,
|
|
352
|
+
nestKeys: string[],
|
|
353
|
+
dataToSet: any,
|
|
354
|
+
createMissingObjs?: boolean
|
|
355
|
+
): void {
|
|
356
|
+
if (!parentObj) {
|
|
357
|
+
if (createMissingObjs) {
|
|
358
|
+
parentObj = {} as T;
|
|
359
|
+
} else {
|
|
360
|
+
console.error(
|
|
361
|
+
'DYNAMO ERROR: ',
|
|
362
|
+
`\nDyFM_SharedService.nestData failed; missing parent object for: ${nestKeys[0]}`,
|
|
363
|
+
`\nturn on createMissingObjs to create missing objects`,
|
|
364
|
+
);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
if (nestKeys.length > 1) {
|
|
369
|
+
const keys = [ ...nestKeys ];
|
|
370
|
+
const nextNestKey = keys.shift();
|
|
371
|
+
|
|
372
|
+
this.nestData(parentObj[<keyof T>nextNestKey], keys, dataToSet, createMissingObjs);
|
|
373
|
+
} else {
|
|
374
|
+
parentObj[<keyof T>nestKeys[0]] = dataToSet;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
/* OLD
|
|
378
|
+
static nestData<T>(parentObj: T, nestKeys: string[], dataToSet: any): T {
|
|
379
|
+
const newData = DyFM_Object.clone(parentObj); // {...parentObj};
|
|
380
|
+
|
|
381
|
+
if (nestKeys.length > 1) {
|
|
382
|
+
const keys = [ ...nestKeys ];
|
|
383
|
+
const nextNestKey = keys.shift();
|
|
384
|
+
|
|
385
|
+
newData[nextNestKey] = this.nestData(newData[nextNestKey], keys, dataToSet);
|
|
386
|
+
} else {
|
|
387
|
+
newData[nestKeys[0]] = dataToSet;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
return newData;
|
|
391
|
+
} */
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* recursive function that adds to nested data
|
|
395
|
+
* @param newData the object that that is needed to be updated
|
|
396
|
+
* @param nestKeys the path where the data should be updated
|
|
397
|
+
* @param dataToAdd the actual value that will be setted
|
|
398
|
+
* @returns modified data
|
|
399
|
+
*/
|
|
400
|
+
static addToNestedData<T>(
|
|
401
|
+
parentObj: T,
|
|
402
|
+
nestKeys: string[],
|
|
403
|
+
dataToAdd: any,
|
|
404
|
+
createMissingObjs?: boolean
|
|
405
|
+
): void {
|
|
406
|
+
if (!parentObj) {
|
|
407
|
+
if (createMissingObjs) {
|
|
408
|
+
parentObj = {} as T;
|
|
409
|
+
} else {
|
|
410
|
+
console.error(
|
|
411
|
+
'DYNAMO ERROR: ',
|
|
412
|
+
`\nDyFM_SharedService.addToNestedData failed; missing parent object for: ${nestKeys[0]}`,
|
|
413
|
+
`\nturn on createMissingObjs to create missing objects`,
|
|
414
|
+
);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
if (nestKeys.length > 1) {
|
|
419
|
+
const keys = [ ...nestKeys ];
|
|
420
|
+
const nextNestKey = keys.shift();
|
|
421
|
+
|
|
422
|
+
this.addToNestedData(parentObj[<keyof T>nextNestKey], keys, dataToAdd);
|
|
423
|
+
} else {
|
|
424
|
+
parentObj[<keyof T>(nestKeys[0])] += dataToAdd;
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
// TODO
|
|
429
|
+
/*
|
|
430
|
+
static addToNestedData<T>(parentObj: T, nestKeys: string[], dataToAdd: any): T {
|
|
431
|
+
const newData: T = DyFM_Object.clone(parentObj); // {...parentObj};
|
|
432
|
+
|
|
433
|
+
if (nestKeys.length > 1) {
|
|
434
|
+
const keys = [ ...nestKeys ];
|
|
435
|
+
const nextNestKey = keys.shift();
|
|
436
|
+
|
|
437
|
+
newData[<keyof T>nextNestKey] = this.addToNestedData(newData[<keyof T>nextNestKey], keys, dataToAdd);
|
|
438
|
+
} else {
|
|
439
|
+
newData[<keyof T>(nestKeys[0])] += dataToAdd;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
return newData;
|
|
443
|
+
} */
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
* recursive function that pushes to nested data
|
|
447
|
+
* @param newData the object that that is needed to be updated
|
|
448
|
+
* @param nestKeys the path where the data should be updated
|
|
449
|
+
* @param dataToPush the actual value that will be setted
|
|
450
|
+
* @returns modified data
|
|
451
|
+
*/
|
|
452
|
+
static pushToNestedData<Obj_T, Data_T>(
|
|
453
|
+
parentObj: Obj_T,
|
|
454
|
+
nestKeys: string[],
|
|
455
|
+
dataToPush: Data_T
|
|
456
|
+
): void {
|
|
457
|
+
if (1 < nestKeys.length) {
|
|
458
|
+
const keys = [ ...nestKeys ];
|
|
459
|
+
const nextNestKey = keys.shift();
|
|
460
|
+
|
|
461
|
+
this.pushToNestedData(parentObj[nextNestKey], keys, dataToPush);
|
|
462
|
+
} else {
|
|
463
|
+
if (Array.isArray(parentObj[nestKeys[0]])) {
|
|
464
|
+
parentObj[nestKeys[0]].push(dataToPush);
|
|
465
|
+
} else {
|
|
466
|
+
parentObj[nestKeys[0]] = [ dataToPush ];
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
// TODO
|
|
472
|
+
/*
|
|
473
|
+
static pushToNestedData(parentObj: any, nestKeys: string[], dataToPush: any): any {
|
|
474
|
+
const newData = { ...parentObj };
|
|
475
|
+
|
|
476
|
+
if (1 < nestKeys.length) {
|
|
477
|
+
const keys = [ ...nestKeys ];
|
|
478
|
+
const nextNestKey = keys.shift();
|
|
479
|
+
|
|
480
|
+
newData[nextNestKey] = this.pushToNestedData(newData[nextNestKey], keys, dataToPush);
|
|
481
|
+
} else {
|
|
482
|
+
if (Array.isArray(newData[nestKeys[0]])) {
|
|
483
|
+
newData[nestKeys[0]].push(dataToPush);
|
|
484
|
+
} else {
|
|
485
|
+
newData[nestKeys[0]] = [dataToPush];
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
return newData;
|
|
490
|
+
} */
|
|
491
|
+
|
|
492
|
+
/**
|
|
493
|
+
* recursive function that nests data on recursive data structure etc.: xData: { ..., 'nestedListKey': xData[] }
|
|
494
|
+
* @param newData the object that that is needed to be updated
|
|
495
|
+
* @param nestedListKey the location of nested dataList
|
|
496
|
+
* @param nestIndexes path to the subject ect.: xData.listKey[1].listKey[4].listKey[0] will be [1, 4, 0]
|
|
497
|
+
* @param dataToSet the actual value that will be setted on location
|
|
498
|
+
* @returns modified data
|
|
499
|
+
*/
|
|
500
|
+
static nestRecursiveListedData<T, List_T>(
|
|
501
|
+
parentObj: T,
|
|
502
|
+
nestedListKey: string,
|
|
503
|
+
nestIndexes: number[],
|
|
504
|
+
dataToSet: List_T
|
|
505
|
+
): void {
|
|
506
|
+
const nestedList: List_T[] = parentObj[<keyof T>nestedListKey] as List_T[];
|
|
507
|
+
|
|
508
|
+
if (1 < nestIndexes.length) {
|
|
509
|
+
const indexes: number[] = [ ...nestIndexes ];
|
|
510
|
+
const nextLevelKey: number = indexes.shift();
|
|
511
|
+
|
|
512
|
+
this.nestRecursiveListedData(
|
|
513
|
+
nestedList[nextLevelKey], nestedListKey, indexes, dataToSet
|
|
514
|
+
);
|
|
515
|
+
} else {
|
|
516
|
+
nestedList[nestIndexes[0]] = dataToSet;
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
/* OLD
|
|
520
|
+
static nestRecursiveListedData<T>(
|
|
521
|
+
parentObj: T,
|
|
522
|
+
nestedListKey: string,
|
|
523
|
+
nestIndexes: number[],
|
|
524
|
+
dataToSet: unknown
|
|
525
|
+
): T {
|
|
526
|
+
const newData: T = { ...parentObj };
|
|
527
|
+
|
|
528
|
+
if (1 < nestIndexes.length) {
|
|
529
|
+
const indexes: number[] = [ ...nestIndexes ];
|
|
530
|
+
const nextLevelKey: number = indexes.shift();
|
|
531
|
+
|
|
532
|
+
newData[nestedListKey][nextLevelKey] = this.nestRecursiveListedData(
|
|
533
|
+
newData[nestedListKey][nextLevelKey], nestedListKey, indexes, dataToSet
|
|
534
|
+
);
|
|
535
|
+
} else {
|
|
536
|
+
newData[nestedListKey][nestIndexes[0]] = dataToSet;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
return newData;
|
|
540
|
+
} */
|
|
541
|
+
}
|