@decaf-ts/for-angular 0.0.100 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +15 -86
- package/.editorconfig +0 -31
- package/.gitlab-ci.yml +0 -197
- package/.hintrc +0 -19
- package/.prettierrc +0 -49
- package/.snyk +0 -13
- package/LICENSE.md +0 -260
- package/angular.json +0 -274
- package/bs-config.json +0 -5
- package/cli-module.js.map +0 -1
- package/dist/for-angular/cli/cli-module.d.ts +0 -22
- package/dist/for-angular/cli/cli-module.d.ts.map +0 -1
- package/dist/for-angular/cli/cli-module.js +0 -131
- package/dist/for-angular/cli/cli-module.js.map +0 -1
- package/dist/lib/README.md +0 -117
- package/eslint.config.mjs +0 -101
- package/ionic.config.json +0 -14
- package/jest.config.ts +0 -52
- package/jest.setup.ts +0 -50
- package/karma.conf.js +0 -50
- package/ng-package.json +0 -17
- package/ngsw-config.json +0 -30
- package/playwright.config.ts +0 -80
- package/resources/favicon.png +0 -0
- package/resources/favicon.svg +0 -29
- package/resources/icon-background.png +0 -0
- package/resources/icon-foreground.png +0 -0
- package/resources/icon-only.png +0 -0
- package/resources/icon-only.svg +0 -29
- package/resources/splash-dark.png +0 -0
- package/resources/splash-dark2.png +0 -0
- package/resources/splash.png +0 -0
- package/resources/splash2.png +0 -0
- package/resources/touch-icon.svg +0 -29
- package/schematics/README.md +0 -28
- package/schematics/collection.json +0 -20
- package/schematics/package-lock.json +0 -1501
- package/schematics/package.json +0 -37
- package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.__style__.template +0 -0
- package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.html.template +0 -3
- package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.spec.ts.template +0 -40
- package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.ts.template +0 -37
- package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.module.ts.template +0 -14
- package/schematics/src/component/index.js +0 -146
- package/schematics/src/component/schema.js +0 -2
- package/schematics/src/component/schema.json +0 -101
- package/schematics/src/page/files/__name@dasherize__.page.html.template +0 -15
- package/schematics/src/page/files/__name@dasherize__.page.scss.template +0 -0
- package/schematics/src/page/files/__name@dasherize__.page.ts.template +0 -19
- package/schematics/src/page/index.js +0 -71
- package/schematics/src/page/schema.json +0 -87
- package/schematics/src/schematics/index.js +0 -11
- package/schematics/src/schematics/index_spec.js +0 -13
- package/schematics/src/util/ast-util.js +0 -517
- package/schematics/src/util/change.js +0 -96
- package/schematics/src/util/index.js +0 -14
- package/settings.json +0 -112
- package/tsconfig.app.json +0 -22
- package/tsconfig.cli.json +0 -82
- package/tsconfig.lib.json +0 -14
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -22
- package/webpack.config.js +0 -10
- package/workdocs/1-Header.md +0 -5
- package/workdocs/2-Badges.md +0 -30
- package/workdocs/4-Description.md +0 -4
- package/workdocs/5-HowToUse.md +0 -27
- package/workdocs/6-Related.md +0 -7
- package/workdocs/7-Social.md +0 -5
- package/workdocs/99-Footer.md +0 -28
- package/workdocs/Readme.md +0 -12
- package/workdocs/assets/apple-touch-icon.png +0 -0
- package/workdocs/assets/decaf-logo.svg +0 -54
- package/workdocs/assets/favicon.png +0 -0
- package/workdocs/assets/slogans.json +0 -182
- package/workdocs/confluence/.markdown-confluence.template.json +0 -6
- package/workdocs/confluence/Angular Module.md +0 -5
- package/workdocs/drawings/diagram.drawio +0 -24
- package/workdocs/prompts/bulk.md +0 -122
- package/workdocs/prompts/code.md +0 -47
- package/workdocs/prompts/documentation.md +0 -146
- package/workdocs/prompts/uml.md +0 -11
- package/workdocs/readme-md.json +0 -6
- package/workdocs/reports/CHANGELOG.md +0 -12
- package/workdocs/reports/DEPENDENCIES.md +0 -213
- package/workdocs/reports/RELEASE_NOTES.md +0 -24
- package/workdocs/reports/coverage/.gitkeep +0 -0
- package/workdocs/reports/coverage/clover.xml +0 -4107
- package/workdocs/reports/coverage/coverage-final.json +0 -76
- package/workdocs/reports/coverage/lcov-report/base.css +0 -224
- package/workdocs/reports/coverage/lcov-report/block-navigation.js +0 -87
- package/workdocs/reports/coverage/lcov-report/favicon.png +0 -0
- package/workdocs/reports/coverage/lcov-report/index.html +0 -551
- package/workdocs/reports/coverage/lcov-report/prettify.css +0 -1
- package/workdocs/reports/coverage/lcov-report/prettify.js +0 -2
- package/workdocs/reports/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/workdocs/reports/coverage/lcov-report/sorter.js +0 -210
- package/workdocs/reports/coverage/lcov-report/src/app/models/CategoryModel.ts.html +0 -277
- package/workdocs/reports/coverage/lcov-report/src/app/models/DemoModel.ts.html +0 -427
- package/workdocs/reports/coverage/lcov-report/src/app/models/UserModel.ts.html +0 -226
- package/workdocs/reports/coverage/lcov-report/src/app/models/index.html +0 -146
- package/workdocs/reports/coverage/lcov-report/src/cli-module.ts.html +0 -502
- package/workdocs/reports/coverage/lcov-report/src/environments/environment.ts.html +0 -166
- package/workdocs/reports/coverage/lcov-report/src/environments/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/index.html +0 -191
- package/workdocs/reports/coverage/lcov-report/src/karma-test.ts.html +0 -121
- package/workdocs/reports/coverage/lcov-report/src/lib/components/card/card.component.ts.html +0 -625
- package/workdocs/reports/coverage/lcov-report/src/lib/components/card/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/component-renderer/component-renderer.component.ts.html +0 -772
- package/workdocs/reports/coverage/lcov-report/src/lib/components/component-renderer/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-field/crud-field.component.ts.html +0 -2698
- package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-field/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/constants.ts.html +0 -133
- package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/crud-form.component.ts.html +0 -346
- package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/empty-state/empty-state.component.ts.html +0 -1264
- package/workdocs/reports/coverage/lcov-report/src/lib/components/empty-state/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/fieldset/fieldset.component.ts.html +0 -2965
- package/workdocs/reports/coverage/lcov-report/src/lib/components/fieldset/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/file-upload/file-upload.component.ts.html +0 -2263
- package/workdocs/reports/coverage/lcov-report/src/lib/components/file-upload/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/filter/filter.component.ts.html +0 -2485
- package/workdocs/reports/coverage/lcov-report/src/lib/components/filter/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/for-angular-components.module.ts.html +0 -259
- package/workdocs/reports/coverage/lcov-report/src/lib/components/icon/icon.component.ts.html +0 -358
- package/workdocs/reports/coverage/lcov-report/src/lib/components/icon/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/index.html +0 -131
- package/workdocs/reports/coverage/lcov-report/src/lib/components/index.ts.html +0 -181
- package/workdocs/reports/coverage/lcov-report/src/lib/components/layout/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/layout/layout.component.ts.html +0 -943
- package/workdocs/reports/coverage/lcov-report/src/lib/components/list/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/list/list.component.ts.html +0 -4420
- package/workdocs/reports/coverage/lcov-report/src/lib/components/list-item/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/list-item/list-item.component.ts.html +0 -1741
- package/workdocs/reports/coverage/lcov-report/src/lib/components/modal/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/modal/modal.component.ts.html +0 -1984
- package/workdocs/reports/coverage/lcov-report/src/lib/components/model-renderer/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/model-renderer/model-renderer.component.ts.html +0 -373
- package/workdocs/reports/coverage/lcov-report/src/lib/components/pagination/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/pagination/pagination.component.ts.html +0 -1165
- package/workdocs/reports/coverage/lcov-report/src/lib/components/searchbar/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/searchbar/searchbar.component.ts.html +0 -1774
- package/workdocs/reports/coverage/lcov-report/src/lib/components/stepped-form/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/stepped-form/stepped-form.component.ts.html +0 -1219
- package/workdocs/reports/coverage/lcov-report/src/lib/components/table/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/lib/components/table/table.component.ts.html +0 -1054
- package/workdocs/reports/coverage/lcov-report/src/lib/directives/NgxSvgDirective.ts.html +0 -163
- package/workdocs/reports/coverage/lcov-report/src/lib/directives/collapsable.directive.ts.html +0 -268
- package/workdocs/reports/coverage/lcov-report/src/lib/directives/index.html +0 -131
- package/workdocs/reports/coverage/lcov-report/src/lib/directives/index.ts.html +0 -91
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/DynamicModule.ts.html +0 -133
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/MediaService.ts.html +0 -142
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxBaseComponent.ts.html +0 -2194
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxComponentDirective.ts.html +0 -3430
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxCrudFormField.ts.html +0 -721
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafComponentDirective.ts.html +0 -1864
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafFormFieldDirective.ts.html +0 -952
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafFormService.ts.html +0 -3211
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxEventHandler.ts.html +0 -307
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormDirective.ts.html +0 -1366
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormFieldDirective.ts.html +0 -1960
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormService.ts.html +0 -3004
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxModelPageDirective.ts.html +0 -1672
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxPageDirective.ts.html +0 -748
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxParentComponentDirective.ts.html +0 -775
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRenderableComponentDirective.ts.html +0 -727
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRenderingEngine.ts.html +0 -2005
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRepositoryDirective.ts.html +0 -1546
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/ValidatorFactory.ts.html +0 -817
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/constants.ts.html +0 -1120
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/decorators.ts.html +0 -376
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/helpers.ts.html +0 -694
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/index.html +0 -356
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/index.ts.html +0 -160
- package/workdocs/reports/coverage/lcov-report/src/lib/engine/overrides.ts.html +0 -502
- package/workdocs/reports/coverage/lcov-report/src/lib/for-angular-common.module.ts.html +0 -298
- package/workdocs/reports/coverage/lcov-report/src/lib/helpers/index.html +0 -131
- package/workdocs/reports/coverage/lcov-report/src/lib/helpers/index.ts.html +0 -121
- package/workdocs/reports/coverage/lcov-report/src/lib/helpers/utils.ts.html +0 -1603
- package/workdocs/reports/coverage/lcov-report/src/lib/i18n/FakeLoader.ts.html +0 -157
- package/workdocs/reports/coverage/lcov-report/src/lib/i18n/Loader.ts.html +0 -826
- package/workdocs/reports/coverage/lcov-report/src/lib/i18n/index.html +0 -146
- package/workdocs/reports/coverage/lcov-report/src/lib/i18n/index.ts.html +0 -91
- package/workdocs/reports/coverage/lcov-report/src/lib/index.html +0 -131
- package/workdocs/reports/coverage/lcov-report/src/lib/public-apis.ts.html +0 -157
- package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxFormService.ts.html +0 -3460
- package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxMediaService.ts.html +0 -1420
- package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxRouterService.ts.html +0 -1243
- package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxTranslateService.ts.html +0 -214
- package/workdocs/reports/coverage/lcov-report/src/lib/services/index.html +0 -176
- package/workdocs/reports/coverage/lcov-report/src/lib/services/index.ts.html +0 -91
- package/workdocs/reports/coverage/lcov-report/src/lib/utils/DecafFakerRepository.ts.html +0 -571
- package/workdocs/reports/coverage/lcov-report/src/lib/utils/helpers.ts.html +0 -1711
- package/workdocs/reports/coverage/lcov-report/src/lib/utils/index.html +0 -146
- package/workdocs/reports/coverage/lcov-report/src/lib/utils/index.ts.html +0 -124
- package/workdocs/reports/coverage/lcov-report/src/main.ts.html +0 -100
- package/workdocs/reports/coverage/lcov-report/src/polyfills.ts.html +0 -271
- package/workdocs/reports/coverage/lcov-report/src/stories/Configure.stories.ts.html +0 -1156
- package/workdocs/reports/coverage/lcov-report/src/stories/button.component.ts.html +0 -229
- package/workdocs/reports/coverage/lcov-report/src/stories/button.stories.ts.html +0 -235
- package/workdocs/reports/coverage/lcov-report/src/stories/crud-field.stories.ts.html +0 -325
- package/workdocs/reports/coverage/lcov-report/src/stories/header.stories.ts.html +0 -181
- package/workdocs/reports/coverage/lcov-report/src/stories/index.html +0 -281
- package/workdocs/reports/coverage/lcov-report/src/stories/list.stories.ts.html +0 -289
- package/workdocs/reports/coverage/lcov-report/src/stories/login.page.stories.ts.html +0 -175
- package/workdocs/reports/coverage/lcov-report/src/stories/model-renderer.stories.ts.html +0 -259
- package/workdocs/reports/coverage/lcov-report/src/stories/page.component.ts.html +0 -331
- package/workdocs/reports/coverage/lcov-report/src/stories/page.stories.ts.html +0 -193
- package/workdocs/reports/coverage/lcov-report/src/stories/setup.ts.html +0 -127
- package/workdocs/reports/coverage/lcov-report/src/stories/utils.ts.html +0 -247
- package/workdocs/reports/coverage/lcov-report/src/tests/index.html +0 -116
- package/workdocs/reports/coverage/lcov-report/src/tests/karmaErrorParser.ts.html +0 -190
- package/workdocs/reports/coverage/lcov-report/src/typings.d.ts.html +0 -88
- package/workdocs/reports/coverage/lcov-report/src/zone-flags.ts.html +0 -103
- package/workdocs/reports/coverage/lcov.info +0 -7898
- package/workdocs/reports/data/.gitkeep +0 -1
- package/workdocs/reports/html/.gitkeep +0 -0
- package/workdocs/reports/html/jest-html-reporters-attach/test-report/index.js +0 -3
- package/workdocs/reports/html/jest-html-reporters-attach/test-report/result.js +0 -1
- package/workdocs/reports/html/test-report.html +0 -1
- package/workdocs/reports/images/.gitkeep +0 -1
- package/workdocs/reports/jest.coverage.config.ts +0 -43
- package/workdocs/reports/junit/junit-report.xml +0 -91
- package/workdocs/resources/.gitlock +0 -0
- package/workdocs/resources/diagram-Actor.png +0 -0
- package/workdocs/resources/diagram-banner.png +0 -0
- package/workdocs/resources/diagram.png +0 -0
- package/workdocs/tutorials/Contributing.md +0 -64
- package/workdocs/tutorials/Documentation.md +0 -340
- package/workdocs/tutorials/For Developers.md +0 -337
- package/workdocs/uml/diagram.puml +0 -11
- package/www/1049.10b030f0de36543b.js +0 -1
- package/www/1102.67cedfb3e29f0a05.js +0 -1
- package/www/1107.6b592a1672821270.js +0 -1
- package/www/1459.cabc18e941afa5d7.js +0 -1
- package/www/1577.5221deebe3501e43.js +0 -1
- package/www/2075.b6dc4fbb89dd6afc.js +0 -1
- package/www/2348.c4cc27dadbec70ec.js +0 -1
- package/www/2375.318d0b24ab346271.js +0 -1
- package/www/2415.618d6968ffda319c.js +0 -1
- package/www/2460.1d97c6f48b898ee2.js +0 -1
- package/www/2560.2e7000dcf80b6b2c.js +0 -1
- package/www/2585.274d59d52bafc7ed.js +0 -1
- package/www/2885.d99b86afd1ff7aa8.js +0 -1
- package/www/3162.bbc401f4a5f82460.js +0 -1
- package/www/323.f64c512be5c8d797.js +0 -1
- package/www/3238.a3e7e8004c6b6667.js +0 -1
- package/www/3506.8c03f5589b33a4a6.js +0 -1
- package/www/3511.56b7e49bb6c2c936.js +0 -1
- package/www/3519.84fbb67dc803f702.js +0 -1
- package/www/3675.7ebfdcf145052232.js +0 -1
- package/www/3814.765c1794e1be63de.js +0 -1
- package/www/3rdpartylicenses.txt +0 -1344
- package/www/4171.a974bdbf9c97e4e1.js +0 -1
- package/www/4183.41ef1def450a2cc0.js +0 -1
- package/www/4406.0b2dd3839b8c1417.js +0 -1
- package/www/441.e1031657c7e5f0ff.js +0 -1
- package/www/4463.6ad7b857e5f34009.js +0 -1
- package/www/4591.42f34534d38b9b31.js +0 -1
- package/www/4699.8df8ea9806163d4c.js +0 -1
- package/www/5100.ed6483c55a157d67.js +0 -1
- package/www/5193.15ea6938534eceb1.js +0 -1
- package/www/5197.6733853529768a45.js +0 -1
- package/www/5222.8439a641c2c4b1c1.js +0 -1
- package/www/5373.d7878f708309f038.js +0 -1
- package/www/5467.f0e21031db47308c.js +0 -1
- package/www/5712.b08cf436ee8145ce.js +0 -1
- package/www/5887.3d038f564e925abb.js +0 -1
- package/www/5949.37330f20e95dee79.js +0 -1
- package/www/6024.c10cc3d1b341c748.js +0 -1
- package/www/6433.360fcff952bde822.js +0 -1
- package/www/6499.60169da9869db697.js +0 -1
- package/www/6521.fab1f34bfe6b8200.js +0 -1
- package/www/6631.eaa711da6e0aeed9.js +0 -1
- package/www/6717.9d970c383bb0cf1c.js +0 -1
- package/www/6840.7317cd962ab23932.js +0 -1
- package/www/7030.d115d82ca7468a4e.js +0 -1
- package/www/7076.cce20ed5c79ff305.js +0 -1
- package/www/7179.c0545989ce869b3d.js +0 -1
- package/www/7240.69aeb484d78eb24d.js +0 -1
- package/www/7372.94c62459e34f7303.js +0 -1
- package/www/7402.983a5ecff61e9a5d.js +0 -1
- package/www/7428.527ac48035a2f915.js +0 -1
- package/www/7676.d7db23d350e4b096.js +0 -1
- package/www/770.80af87d5eb0075d3.js +0 -1
- package/www/7720.0701576cb9966779.js +0 -1
- package/www/7927.ee869d0dc478250a.js +0 -1
- package/www/8066.894688fbb2e5c832.js +0 -1
- package/www/8193.7f09ecd40b6d42c2.js +0 -1
- package/www/8255.158098a6302c91c2.js +0 -1
- package/www/8314.596c1ccf26b9c93a.js +0 -1
- package/www/8357.c5406b92e6933d7a.js +0 -1
- package/www/8477.a3ccc11c25a642d3.js +0 -1
- package/www/8487.93b6f7465ae1b7ac.js +0 -1
- package/www/8584.b77ad478a5a7ac2a.js +0 -1
- package/www/8805.a87413652185ff8f.js +0 -1
- package/www/8814.b489a78ae8e926c4.js +0 -1
- package/www/8970.234b3db1f97528fe.js +0 -1
- package/www/9013.c2e6ba17a915bdd6.js +0 -1
- package/www/9073.16c4e42482d55a3c.js +0 -1
- package/www/9344.7d2d24b194b794e2.js +0 -1
- package/www/9364.9a028036dd89e3e7.js +0 -1
- package/www/944.7e4317348c48d4f4.js +0 -1
- package/www/964.9a979e1c1aad0f5b.js +0 -1
- package/www/9657.fbb680ad1064e91a.js +0 -1
- package/www/9956.2d00a2153e9a7799.js +0 -1
- package/www/9977.068cd5561462bc99.js +0 -1
- package/www/assets/i18n/en.json +0 -210
- package/www/assets/i18n/ew/en.json +0 -346
- package/www/assets/i18n/pt.json +0 -186
- package/www/assets/icons/icon-128.webp +0 -0
- package/www/assets/icons/icon-192.webp +0 -0
- package/www/assets/icons/icon-256.webp +0 -0
- package/www/assets/icons/icon-48.webp +0 -0
- package/www/assets/icons/icon-512.webp +0 -0
- package/www/assets/icons/icon-72.webp +0 -0
- package/www/assets/icons/icon-96.webp +0 -0
- package/www/assets/images/angular-logo.svg +0 -45
- package/www/assets/images/apple-touch-icon.png +0 -0
- package/www/assets/images/decaf-logo-black.svg +0 -22
- package/www/assets/images/decaf-logo-contrast.svg +0 -54
- package/www/assets/images/decaf-logo-white.svg +0 -22
- package/www/assets/images/decaf-logo.svg +0 -54
- package/www/assets/images/ew/product.txt +0 -1
- package/www/assets/images/favicon-contrast.svg +0 -7
- package/www/assets/images/favicon.png +0 -0
- package/www/assets/images/favicon.svg +0 -29
- package/www/assets/images/icons/document.svg +0 -7
- package/www/assets/images/icons/edit.svg +0 -1
- package/www/assets/images/icons/logout.svg +0 -4
- package/www/assets/images/icons/menu-collapse.svg +0 -5
- package/www/assets/images/icons/menu.svg +0 -3
- package/www/assets/images/icons/moon-stars.svg +0 -5
- package/www/assets/images/icons/trash.svg +0 -1
- package/www/cli-module.ts +0 -139
- package/www/common.e50b5f8708aca9a5.js +0 -1
- package/www/index.html +0 -29
- package/www/main.7814262e404641fd.js +0 -1
- package/www/polyfills.4c1e087fffe784e8.js +0 -1
- package/www/runtime.e81aa7ecff7177cd.js +0 -1
- package/www/styles.5a3cd83eba16afc9.css +0 -4
- package/www/tabler-icons.bfabe54eef86ae62.woff +0 -0
- package/www/tabler-icons.d9f65ab9439b4ffc.ttf +0 -0
- package/www/tabler-icons.f17d2c3b34a5deaa.woff2 +0 -0
- /package/{dist/lib/assets → assets}/i18n/en.json +0 -0
- /package/{dist/lib/assets → assets}/i18n/ew/en.json +0 -0
- /package/{dist/lib/assets → assets}/i18n/pt.json +0 -0
- /package/{dist/lib/assets → assets}/icons/icon-128.webp +0 -0
- /package/{dist/lib/assets → assets}/icons/icon-192.webp +0 -0
- /package/{dist/lib/assets → assets}/icons/icon-256.webp +0 -0
- /package/{dist/lib/assets → assets}/icons/icon-48.webp +0 -0
- /package/{dist/lib/assets → assets}/icons/icon-512.webp +0 -0
- /package/{dist/lib/assets → assets}/icons/icon-72.webp +0 -0
- /package/{dist/lib/assets → assets}/icons/icon-96.webp +0 -0
- /package/{dist/lib/assets → assets}/images/angular-logo.svg +0 -0
- /package/{dist/lib/assets → assets}/images/apple-touch-icon.png +0 -0
- /package/{dist/lib/assets → assets}/images/decaf-logo-black.svg +0 -0
- /package/{dist/lib/assets → assets}/images/decaf-logo-contrast.svg +0 -0
- /package/{dist/lib/assets → assets}/images/decaf-logo-white.svg +0 -0
- /package/{dist/lib/assets → assets}/images/decaf-logo.svg +0 -0
- /package/{dist/lib/assets → assets}/images/ew/product.txt +0 -0
- /package/{dist/lib/assets → assets}/images/favicon-contrast.svg +0 -0
- /package/{dist/lib/assets → assets}/images/favicon.png +0 -0
- /package/{dist/lib/assets → assets}/images/favicon.svg +0 -0
- /package/{dist/lib/assets → assets}/images/icons/document.svg +0 -0
- /package/{dist/lib/assets → assets}/images/icons/edit.svg +0 -0
- /package/{dist/lib/assets → assets}/images/icons/logout.svg +0 -0
- /package/{dist/lib/assets → assets}/images/icons/menu-collapse.svg +0 -0
- /package/{dist/lib/assets → assets}/images/icons/menu.svg +0 -0
- /package/{dist/lib/assets → assets}/images/icons/moon-stars.svg +0 -0
- /package/{dist/lib/assets → assets}/images/icons/trash.svg +0 -0
- /package/{dist/lib/fesm2022 → fesm2022}/decaf-ts-for-angular.mjs +0 -0
- /package/{dist/lib/fesm2022 → fesm2022}/decaf-ts-for-angular.mjs.map +0 -0
- /package/{dist/lib/index.d.ts → index.d.ts} +0 -0
|
@@ -1,817 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for src/lib/engine/ValidatorFactory.ts</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../../index.html">All files</a> / <a href="index.html">src/lib/engine</a> ValidatorFactory.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">75.47% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>40/53</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">58.33% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>28/48</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">83.33% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>10/12</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">76.92% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>40/52</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line high'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
-
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
-
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
-
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
-
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
-
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
-
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
-
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
-
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
-
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
-
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
-
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
-
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
-
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
-
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
-
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
-
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
-
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
-
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
-
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
-
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
-
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
-
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
-
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
-
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
-
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
-
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
-
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
-
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
-
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
-
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
-
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
-
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
-
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
-
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
-
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
-
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
-
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
-
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
-
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
-
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
-
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
-
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
-
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
-
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
-
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
-
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
-
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
-
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
-
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
-
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
-
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
-
<a name='L245'></a><a href='#L245'>245</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
311
|
-
<span class="cline-any cline-neutral"> </span>
|
|
312
|
-
<span class="cline-any cline-neutral"> </span>
|
|
313
|
-
<span class="cline-any cline-neutral"> </span>
|
|
314
|
-
<span class="cline-any cline-neutral"> </span>
|
|
315
|
-
<span class="cline-any cline-neutral"> </span>
|
|
316
|
-
<span class="cline-any cline-neutral"> </span>
|
|
317
|
-
<span class="cline-any cline-neutral"> </span>
|
|
318
|
-
<span class="cline-any cline-neutral"> </span>
|
|
319
|
-
<span class="cline-any cline-yes">12x</span>
|
|
320
|
-
<span class="cline-any cline-yes">12x</span>
|
|
321
|
-
<span class="cline-any cline-neutral"> </span>
|
|
322
|
-
<span class="cline-any cline-neutral"> </span>
|
|
323
|
-
<span class="cline-any cline-neutral"> </span>
|
|
324
|
-
<span class="cline-any cline-neutral"> </span>
|
|
325
|
-
<span class="cline-any cline-neutral"> </span>
|
|
326
|
-
<span class="cline-any cline-neutral"> </span>
|
|
327
|
-
<span class="cline-any cline-neutral"> </span>
|
|
328
|
-
<span class="cline-any cline-neutral"> </span>
|
|
329
|
-
<span class="cline-any cline-yes">12x</span>
|
|
330
|
-
<span class="cline-any cline-yes">12x</span>
|
|
331
|
-
<span class="cline-any cline-yes">12x</span>
|
|
332
|
-
<span class="cline-any cline-yes">12x</span>
|
|
333
|
-
<span class="cline-any cline-neutral"> </span>
|
|
334
|
-
<span class="cline-any cline-neutral"> </span>
|
|
335
|
-
<span class="cline-any cline-yes">12x</span>
|
|
336
|
-
<span class="cline-any cline-neutral"> </span>
|
|
337
|
-
<span class="cline-any cline-neutral"> </span>
|
|
338
|
-
<span class="cline-any cline-neutral"> </span>
|
|
339
|
-
<span class="cline-any cline-neutral"> </span>
|
|
340
|
-
<span class="cline-any cline-neutral"> </span>
|
|
341
|
-
<span class="cline-any cline-neutral"> </span>
|
|
342
|
-
<span class="cline-any cline-neutral"> </span>
|
|
343
|
-
<span class="cline-any cline-neutral"> </span>
|
|
344
|
-
<span class="cline-any cline-neutral"> </span>
|
|
345
|
-
<span class="cline-any cline-neutral"> </span>
|
|
346
|
-
<span class="cline-any cline-neutral"> </span>
|
|
347
|
-
<span class="cline-any cline-yes">42x</span>
|
|
348
|
-
<span class="cline-any cline-neutral"> </span>
|
|
349
|
-
<span class="cline-any cline-neutral"> </span>
|
|
350
|
-
<span class="cline-any cline-neutral"> </span>
|
|
351
|
-
<span class="cline-any cline-neutral"> </span>
|
|
352
|
-
<span class="cline-any cline-neutral"> </span>
|
|
353
|
-
<span class="cline-any cline-neutral"> </span>
|
|
354
|
-
<span class="cline-any cline-neutral"> </span>
|
|
355
|
-
<span class="cline-any cline-neutral"> </span>
|
|
356
|
-
<span class="cline-any cline-neutral"> </span>
|
|
357
|
-
<span class="cline-any cline-neutral"> </span>
|
|
358
|
-
<span class="cline-any cline-neutral"> </span>
|
|
359
|
-
<span class="cline-any cline-neutral"> </span>
|
|
360
|
-
<span class="cline-any cline-neutral"> </span>
|
|
361
|
-
<span class="cline-any cline-yes">42x</span>
|
|
362
|
-
<span class="cline-any cline-yes">42x</span>
|
|
363
|
-
<span class="cline-any cline-no"> </span>
|
|
364
|
-
<span class="cline-any cline-neutral"> </span>
|
|
365
|
-
<span class="cline-any cline-yes">42x</span>
|
|
366
|
-
<span class="cline-any cline-neutral"> </span>
|
|
367
|
-
<span class="cline-any cline-neutral"> </span>
|
|
368
|
-
<span class="cline-any cline-neutral"> </span>
|
|
369
|
-
<span class="cline-any cline-neutral"> </span>
|
|
370
|
-
<span class="cline-any cline-neutral"> </span>
|
|
371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
372
|
-
<span class="cline-any cline-neutral"> </span>
|
|
373
|
-
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-neutral"> </span>
|
|
375
|
-
<span class="cline-any cline-neutral"> </span>
|
|
376
|
-
<span class="cline-any cline-neutral"> </span>
|
|
377
|
-
<span class="cline-any cline-neutral"> </span>
|
|
378
|
-
<span class="cline-any cline-neutral"> </span>
|
|
379
|
-
<span class="cline-any cline-neutral"> </span>
|
|
380
|
-
<span class="cline-any cline-yes">22x</span>
|
|
381
|
-
<span class="cline-any cline-no"> </span>
|
|
382
|
-
<span class="cline-any cline-neutral"> </span>
|
|
383
|
-
<span class="cline-any cline-yes">22x</span>
|
|
384
|
-
<span class="cline-any cline-yes">42x</span>
|
|
385
|
-
<span class="cline-any cline-yes">42x</span>
|
|
386
|
-
<span class="cline-any cline-yes">42x</span>
|
|
387
|
-
<span class="cline-any cline-yes">42x</span>
|
|
388
|
-
<span class="cline-any cline-neutral"> </span>
|
|
389
|
-
<span class="cline-any cline-neutral"> </span>
|
|
390
|
-
<span class="cline-any cline-neutral"> </span>
|
|
391
|
-
<span class="cline-any cline-neutral"> </span>
|
|
392
|
-
<span class="cline-any cline-neutral"> </span>
|
|
393
|
-
<span class="cline-any cline-yes">42x</span>
|
|
394
|
-
<span class="cline-any cline-neutral"> </span>
|
|
395
|
-
<span class="cline-any cline-yes">42x</span>
|
|
396
|
-
<span class="cline-any cline-neutral"> </span>
|
|
397
|
-
<span class="cline-any cline-yes">42x</span>
|
|
398
|
-
<span class="cline-any cline-neutral"> </span>
|
|
399
|
-
<span class="cline-any cline-yes">42x</span>
|
|
400
|
-
<span class="cline-any cline-yes">42x</span>
|
|
401
|
-
<span class="cline-any cline-yes">42x</span>
|
|
402
|
-
<span class="cline-any cline-no"> </span>
|
|
403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
404
|
-
<span class="cline-any cline-yes">42x</span>
|
|
405
|
-
<span class="cline-any cline-neutral"> </span>
|
|
406
|
-
<span class="cline-any cline-no"> </span>
|
|
407
|
-
<span class="cline-any cline-no"> </span>
|
|
408
|
-
<span class="cline-any cline-neutral"> </span>
|
|
409
|
-
<span class="cline-any cline-yes">42x</span>
|
|
410
|
-
<span class="cline-any cline-neutral"> </span>
|
|
411
|
-
<span class="cline-any cline-neutral"> </span>
|
|
412
|
-
<span class="cline-any cline-yes">22x</span>
|
|
413
|
-
<span class="cline-any cline-neutral"> </span>
|
|
414
|
-
<span class="cline-any cline-neutral"> </span>
|
|
415
|
-
<span class="cline-any cline-neutral"> </span>
|
|
416
|
-
<span class="cline-any cline-yes">22x</span>
|
|
417
|
-
<span class="cline-any cline-neutral"> </span>
|
|
418
|
-
<span class="cline-any cline-neutral"> </span>
|
|
419
|
-
<span class="cline-any cline-neutral"> </span>
|
|
420
|
-
<span class="cline-any cline-neutral"> </span>
|
|
421
|
-
<span class="cline-any cline-neutral"> </span>
|
|
422
|
-
<span class="cline-any cline-neutral"> </span>
|
|
423
|
-
<span class="cline-any cline-neutral"> </span>
|
|
424
|
-
<span class="cline-any cline-neutral"> </span>
|
|
425
|
-
<span class="cline-any cline-neutral"> </span>
|
|
426
|
-
<span class="cline-any cline-neutral"> </span>
|
|
427
|
-
<span class="cline-any cline-neutral"> </span>
|
|
428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
429
|
-
<span class="cline-any cline-yes">42x</span>
|
|
430
|
-
<span class="cline-any cline-neutral"> </span>
|
|
431
|
-
<span class="cline-any cline-neutral"> </span>
|
|
432
|
-
<span class="cline-any cline-neutral"> </span>
|
|
433
|
-
<span class="cline-any cline-neutral"> </span>
|
|
434
|
-
<span class="cline-any cline-neutral"> </span>
|
|
435
|
-
<span class="cline-any cline-neutral"> </span>
|
|
436
|
-
<span class="cline-any cline-neutral"> </span>
|
|
437
|
-
<span class="cline-any cline-neutral"> </span>
|
|
438
|
-
<span class="cline-any cline-neutral"> </span>
|
|
439
|
-
<span class="cline-any cline-neutral"> </span>
|
|
440
|
-
<span class="cline-any cline-neutral"> </span>
|
|
441
|
-
<span class="cline-any cline-neutral"> </span>
|
|
442
|
-
<span class="cline-any cline-neutral"> </span>
|
|
443
|
-
<span class="cline-any cline-neutral"> </span>
|
|
444
|
-
<span class="cline-any cline-yes">42x</span>
|
|
445
|
-
<span class="cline-any cline-neutral"> </span>
|
|
446
|
-
<span class="cline-any cline-neutral"> </span>
|
|
447
|
-
<span class="cline-any cline-neutral"> </span>
|
|
448
|
-
<span class="cline-any cline-neutral"> </span>
|
|
449
|
-
<span class="cline-any cline-neutral"> </span>
|
|
450
|
-
<span class="cline-any cline-neutral"> </span>
|
|
451
|
-
<span class="cline-any cline-neutral"> </span>
|
|
452
|
-
<span class="cline-any cline-neutral"> </span>
|
|
453
|
-
<span class="cline-any cline-neutral"> </span>
|
|
454
|
-
<span class="cline-any cline-neutral"> </span>
|
|
455
|
-
<span class="cline-any cline-neutral"> </span>
|
|
456
|
-
<span class="cline-any cline-neutral"> </span>
|
|
457
|
-
<span class="cline-any cline-neutral"> </span>
|
|
458
|
-
<span class="cline-any cline-neutral"> </span>
|
|
459
|
-
<span class="cline-any cline-neutral"> </span>
|
|
460
|
-
<span class="cline-any cline-neutral"> </span>
|
|
461
|
-
<span class="cline-any cline-neutral"> </span>
|
|
462
|
-
<span class="cline-any cline-yes">42x</span>
|
|
463
|
-
<span class="cline-any cline-yes">42x</span>
|
|
464
|
-
<span class="cline-any cline-no"> </span>
|
|
465
|
-
<span class="cline-any cline-neutral"> </span>
|
|
466
|
-
<span class="cline-any cline-yes">42x</span>
|
|
467
|
-
<span class="cline-any cline-neutral"> </span>
|
|
468
|
-
<span class="cline-any cline-neutral"> </span>
|
|
469
|
-
<span class="cline-any cline-neutral"> </span>
|
|
470
|
-
<span class="cline-any cline-neutral"> </span>
|
|
471
|
-
<span class="cline-any cline-neutral"> </span>
|
|
472
|
-
<span class="cline-any cline-neutral"> </span>
|
|
473
|
-
<span class="cline-any cline-neutral"> </span>
|
|
474
|
-
<span class="cline-any cline-neutral"> </span>
|
|
475
|
-
<span class="cline-any cline-neutral"> </span>
|
|
476
|
-
<span class="cline-any cline-neutral"> </span>
|
|
477
|
-
<span class="cline-any cline-neutral"> </span>
|
|
478
|
-
<span class="cline-any cline-yes">42x</span>
|
|
479
|
-
<span class="cline-any cline-neutral"> </span>
|
|
480
|
-
<span class="cline-any cline-no"> </span>
|
|
481
|
-
<span class="cline-any cline-neutral"> </span>
|
|
482
|
-
<span class="cline-any cline-no"> </span>
|
|
483
|
-
<span class="cline-any cline-no"> </span>
|
|
484
|
-
<span class="cline-any cline-no"> </span>
|
|
485
|
-
<span class="cline-any cline-neutral"> </span>
|
|
486
|
-
<span class="cline-any cline-neutral"> </span>
|
|
487
|
-
<span class="cline-any cline-neutral"> </span>
|
|
488
|
-
<span class="cline-any cline-neutral"> </span>
|
|
489
|
-
<span class="cline-any cline-neutral"> </span>
|
|
490
|
-
<span class="cline-any cline-neutral"> </span>
|
|
491
|
-
<span class="cline-any cline-neutral"> </span>
|
|
492
|
-
<span class="cline-any cline-neutral"> </span>
|
|
493
|
-
<span class="cline-any cline-neutral"> </span>
|
|
494
|
-
<span class="cline-any cline-neutral"> </span>
|
|
495
|
-
<span class="cline-any cline-neutral"> </span>
|
|
496
|
-
<span class="cline-any cline-no"> </span>
|
|
497
|
-
<span class="cline-any cline-neutral"> </span>
|
|
498
|
-
<span class="cline-any cline-neutral"> </span>
|
|
499
|
-
<span class="cline-any cline-no"> </span>
|
|
500
|
-
<span class="cline-any cline-neutral"> </span>
|
|
501
|
-
<span class="cline-any cline-neutral"> </span>
|
|
502
|
-
<span class="cline-any cline-neutral"> </span>
|
|
503
|
-
<span class="cline-any cline-neutral"> </span>
|
|
504
|
-
<span class="cline-any cline-neutral"> </span>
|
|
505
|
-
<span class="cline-any cline-neutral"> </span>
|
|
506
|
-
<span class="cline-any cline-neutral"> </span>
|
|
507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
508
|
-
<span class="cline-any cline-neutral"> </span>
|
|
509
|
-
<span class="cline-any cline-neutral"> </span>
|
|
510
|
-
<span class="cline-any cline-neutral"> </span>
|
|
511
|
-
<span class="cline-any cline-neutral"> </span>
|
|
512
|
-
<span class="cline-any cline-neutral"> </span>
|
|
513
|
-
<span class="cline-any cline-neutral"> </span>
|
|
514
|
-
<span class="cline-any cline-neutral"> </span>
|
|
515
|
-
<span class="cline-any cline-neutral"> </span>
|
|
516
|
-
<span class="cline-any cline-neutral"> </span>
|
|
517
|
-
<span class="cline-any cline-neutral"> </span>
|
|
518
|
-
<span class="cline-any cline-neutral"> </span>
|
|
519
|
-
<span class="cline-any cline-neutral"> </span>
|
|
520
|
-
<span class="cline-any cline-yes">12x</span>
|
|
521
|
-
<span class="cline-any cline-neutral"> </span>
|
|
522
|
-
<span class="cline-any cline-neutral"> </span>
|
|
523
|
-
<span class="cline-any cline-neutral"> </span>
|
|
524
|
-
<span class="cline-any cline-neutral"> </span>
|
|
525
|
-
<span class="cline-any cline-neutral"> </span>
|
|
526
|
-
<span class="cline-any cline-yes">42x</span>
|
|
527
|
-
<span class="cline-any cline-yes">42x</span>
|
|
528
|
-
<span class="cline-any cline-yes">42x</span>
|
|
529
|
-
<span class="cline-any cline-yes">42x</span>
|
|
530
|
-
<span class="cline-any cline-yes">42x</span>
|
|
531
|
-
<span class="cline-any cline-neutral"> </span>
|
|
532
|
-
<span class="cline-any cline-neutral"> </span>
|
|
533
|
-
<span class="cline-any cline-neutral"> </span>
|
|
534
|
-
<span class="cline-any cline-neutral"> </span>
|
|
535
|
-
<span class="cline-any cline-neutral"> </span>
|
|
536
|
-
<span class="cline-any cline-neutral"> </span>
|
|
537
|
-
<span class="cline-any cline-neutral"> </span>
|
|
538
|
-
<span class="cline-any cline-neutral"> </span>
|
|
539
|
-
<span class="cline-any cline-neutral"> </span>
|
|
540
|
-
<span class="cline-any cline-neutral"> </span>
|
|
541
|
-
<span class="cline-any cline-neutral"> </span>
|
|
542
|
-
<span class="cline-any cline-neutral"> </span>
|
|
543
|
-
<span class="cline-any cline-neutral"> </span>
|
|
544
|
-
<span class="cline-any cline-yes">42x</span>
|
|
545
|
-
<span class="cline-any cline-neutral"> </span>
|
|
546
|
-
<span class="cline-any cline-neutral"> </span>
|
|
547
|
-
<span class="cline-any cline-neutral"> </span>
|
|
548
|
-
<span class="cline-any cline-neutral"> </span>
|
|
549
|
-
<span class="cline-any cline-neutral"> </span>
|
|
550
|
-
<span class="cline-any cline-neutral"> </span>
|
|
551
|
-
<span class="cline-any cline-neutral"> </span>
|
|
552
|
-
<span class="cline-any cline-neutral"> </span>
|
|
553
|
-
<span class="cline-any cline-neutral"> </span>
|
|
554
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/**
|
|
555
|
-
* @module module:lib/engine/ValidatorFactory
|
|
556
|
-
* @description Factory for generating Angular ValidatorFn from Decaf validation metadata.
|
|
557
|
-
* @summary ValidatorFactory maps validation keys defined by the Decaf validation system
|
|
558
|
-
* into Angular ValidatorFn instances. It supports type-based resolution and comparison
|
|
559
|
-
* validators and provides helpers to create proxies for nested control validation.
|
|
560
|
-
*
|
|
561
|
-
* @link {@link ValidatorFactory}
|
|
562
|
-
*/
|
|
563
|
-
import { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';
|
|
564
|
-
import {
|
|
565
|
-
ComparisonValidationKeys,
|
|
566
|
-
PathProxy,
|
|
567
|
-
PathProxyEngine,
|
|
568
|
-
Primitives,
|
|
569
|
-
Validation,
|
|
570
|
-
ValidationKeys,
|
|
571
|
-
Validator,
|
|
572
|
-
} from '@decaf-ts/decorator-validation';
|
|
573
|
-
import { FieldProperties, HTML5InputTypes, parseValueByType, UIKeys } from '@decaf-ts/ui-decorators';
|
|
574
|
-
import { patternValidators } from './constants';
|
|
575
|
-
import { getLogger } from './helpers';
|
|
576
|
-
import { NgxRenderingEngine } from './NgxRenderingEngine';
|
|
577
|
-
import { ComparisonValidationKey, KeyValue } from './types';
|
|
578
|
-
|
|
579
|
-
export class ValidatorFactory {
|
|
580
|
-
/**
|
|
581
|
-
* @summary Extracts and parses the value from an Angular control.
|
|
582
|
-
* @description Retrieves the control's value and converts it to the appropriate type based on field properties.
|
|
583
|
-
* Handles undefined values gracefully by returning undefined without parsing.
|
|
584
|
-
*
|
|
585
|
-
* @param {AbstractControl} control - The Angular form control to extract the value from.
|
|
586
|
-
* @param {string} fieldType - The declared type of the field.
|
|
587
|
-
* @param {FieldProperties} fieldProps - The field properties containing type conversion metadata.
|
|
588
|
-
* @returns {unknown} The parsed value or undefined if the control value is undefined.
|
|
589
|
-
*/
|
|
590
|
-
static getFieldValue(control: AbstractControl, fieldType: string, fieldProps: FieldProperties): unknown {
|
|
591
|
-
return typeof control.value !== 'undefined' ? parseValueByType(fieldType, control.value, fieldProps) : <span class="branch-1 cbranch-no" title="branch not covered" >undefined;</span>
|
|
592
|
-
}
|
|
593
|
-
/**
|
|
594
|
-
* @summary Resolves the effective field type from multiple possible type sources.
|
|
595
|
-
* @description Determines the field's type by checking customTypes, subType, or type in order of priority.
|
|
596
|
-
* For checkbox and array fields with options, converts the type to STRING for proper validation.
|
|
597
|
-
*
|
|
598
|
-
* @param {string} [type] - The primary field type.
|
|
599
|
-
* @param {string | string[]} [customTypes] - Custom type definition with highest priority.
|
|
600
|
-
* @param {unknown[]} [options] - Available options for the field (affects checkbox/array handling).
|
|
601
|
-
* @param {string} [subType] - Secondary type definition.
|
|
602
|
-
* @returns {string} The resolved field type.
|
|
603
|
-
*/
|
|
604
|
-
static getFieldType(type?: string, customTypes?: string | string[], options?: unknown[], subType?: string): string {
|
|
605
|
-
const fieldType = (customTypes || subType || type) as string;
|
|
606
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if ((fieldType === HTML5InputTypes.CHECKBOX || fieldType === Array.name) && <span class="branch-2 cbranch-no" title="branch not covered" >Array.isArray(options))</span> {
|
|
607
|
-
<span class="cstat-no" title="statement not covered" > return Primitives.STRING;</span>
|
|
608
|
-
}
|
|
609
|
-
return fieldType;
|
|
610
|
-
}
|
|
611
|
-
|
|
612
|
-
/**
|
|
613
|
-
* @summary Creates a ValidatorFn for a specific validation key.
|
|
614
|
-
* @description Generates an Angular ValidatorFn that applies Decaf validation logic to a form control.
|
|
615
|
-
* Resolves the appropriate validator based on field type, parses the control value, constructs validation properties,
|
|
616
|
-
* and handles comparison validators through proxy access to parent/child form values.
|
|
617
|
-
*
|
|
618
|
-
* @param {FieldProperties} fieldProps - The field properties containing type and validation metadata.
|
|
619
|
-
* @param {string} key - The validation key to create a validator for.
|
|
620
|
-
* @returns {ValidatorFn} A validator function that returns ValidationErrors or null.
|
|
621
|
-
* @throws {Error} If the validation key is not supported.
|
|
622
|
-
*/
|
|
623
|
-
static spawn(fieldProps: FieldProperties, key: string): ValidatorFn {
|
|
624
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!Validation.keys().includes(key)) {
|
|
625
|
-
<span class="cstat-no" title="statement not covered" > throw new Error('Unsupported custom validation');</span>
|
|
626
|
-
}
|
|
627
|
-
const validatorFn: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {
|
|
628
|
-
const { type, customTypes, options, subType } = fieldProps || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
629
|
-
const fieldType = ValidatorFactory.getFieldType(type, customTypes, options, subType);
|
|
630
|
-
const customValidator = key === UIKeys.TYPE && subType;
|
|
631
|
-
const { validatorKey, props } = this.resolveValidatorKeyProps(
|
|
632
|
-
key,
|
|
633
|
-
fieldType,
|
|
634
|
-
fieldProps,
|
|
635
|
-
customValidator ? (<span class="branch-0 cbranch-no" title="branch not covered" >subType as string) </span>: undefined
|
|
636
|
-
);
|
|
637
|
-
const validator = Validation.get(validatorKey) as Validator;
|
|
638
|
-
// parseValueByType does not support undefined values
|
|
639
|
-
const value = ValidatorFactory.getFieldValue(control, fieldType, fieldProps);
|
|
640
|
-
// Create a proxy to enable access to parent and child values
|
|
641
|
-
const proxy = ValidatorFactory.getValidatorProxy(control, key as ComparisonValidationKey);
|
|
642
|
-
let errs: string | undefined;
|
|
643
|
-
try {
|
|
644
|
-
const validationMessage = fieldProps?.validationMessage;
|
|
645
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (validationMessage && <span class="branch-1 cbranch-no" title="branch not covered" >customValidator)</span> {
|
|
646
|
-
<span class="cstat-no" title="statement not covered" > Object.assign(props, { message: validationMessage });</span>
|
|
647
|
-
}
|
|
648
|
-
errs = validator.hasErrors(value, props, proxy);
|
|
649
|
-
} catch (e: unknown) {
|
|
650
|
-
<span class="cstat-no" title="statement not covered" > errs = `${key} validator failed to validate: ${e}`;</span>
|
|
651
|
-
<span class="cstat-no" title="statement not covered" > getLogger(ValidatorFactory).error(errs);</span>
|
|
652
|
-
}
|
|
653
|
-
return errs ? { [validatorKey]: props?.['message'] ? <span class="branch-0 cbranch-no" title="branch not covered" >errs </span>: true } : null;
|
|
654
|
-
};
|
|
655
|
-
|
|
656
|
-
Object.defineProperty(validatorFn, 'name', {
|
|
657
|
-
value: `${key}Validator`,
|
|
658
|
-
});
|
|
659
|
-
|
|
660
|
-
return validatorFn;
|
|
661
|
-
}
|
|
662
|
-
|
|
663
|
-
/**
|
|
664
|
-
* Retrieves the validator value from field properties, with special handling for checkbox types.
|
|
665
|
-
* Returns the field property value, or the type if the field is a checkbox and the types differ.
|
|
666
|
-
*
|
|
667
|
-
* @param key - The validation key.
|
|
668
|
-
* @param type - The field's type.
|
|
669
|
-
* @param fieldProps - The field properties object.
|
|
670
|
-
* @returns The validator value to use.
|
|
671
|
-
*/
|
|
672
|
-
static getValidatorValue(key: string, type: string, fieldProps: FieldProperties): unknown {
|
|
673
|
-
return key === ValidationKeys.TYPE && HTML5InputTypes.CHECKBOX && fieldProps[key as keyof FieldProperties] !== type
|
|
674
|
-
? <span class="branch-0 cbranch-no" title="branch not covered" >type</span>
|
|
675
|
-
: fieldProps[key as keyof FieldProperties];
|
|
676
|
-
}
|
|
677
|
-
|
|
678
|
-
/**
|
|
679
|
-
* Determines whether a validation should be resolved based on the field's type.
|
|
680
|
-
* Returns true for TYPE validations with custom types or pattern-based validators.
|
|
681
|
-
*
|
|
682
|
-
* @param key - The validation key to evaluate.
|
|
683
|
-
* @param type - The field's declared type.
|
|
684
|
-
* @param customTypes - Optional custom type definition.
|
|
685
|
-
* @returns True if validation should use type-based resolution.
|
|
686
|
-
*/
|
|
687
|
-
static isTypeBasedValidation(key: string, type: string, customTypes: string | undefined): boolean {
|
|
688
|
-
return (
|
|
689
|
-
key === ValidationKeys.TYPE &&
|
|
690
|
-
((typeof customTypes === Primitives.STRING && <span class="branch-2 cbranch-no" title="branch not covered" >HTML5InputTypes.TEXT !== customTypes)</span> ||
|
|
691
|
-
Object.keys(patternValidators).includes(type))
|
|
692
|
-
);
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
/**
|
|
696
|
-
* @summary Creates or retrieves a proxy for validator access to parent/child form values.
|
|
697
|
-
* @description Returns a PathProxy configured for the given validation key.
|
|
698
|
-
* For comparison validators, creates a proxy rooted at the parent FormGroup to enable cross-field validation.
|
|
699
|
-
* For other validators, returns an empty proxy for type safety.
|
|
700
|
-
*
|
|
701
|
-
* @param {AbstractControl | FormGroup} control - The form control to create a proxy for.
|
|
702
|
-
* @param {ComparisonValidationKey} key - The validation key determining proxy scope.
|
|
703
|
-
* @returns {PathProxy<unknown>} A proxy object for form value access.
|
|
704
|
-
*/
|
|
705
|
-
static getValidatorProxy(control: AbstractControl | FormGroup, key: ComparisonValidationKey): PathProxy<unknown> {
|
|
706
|
-
const proxy = ValidatorFactory.createProxy({} as AbstractControl);
|
|
707
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (Object.values(ComparisonValidationKeys).includes(key)) {
|
|
708
|
-
<span class="cstat-no" title="statement not covered" > return ValidatorFactory.createProxy((control instanceof FormGroup ? control : control.parent) as FormGroup);</span>
|
|
709
|
-
}
|
|
710
|
-
return proxy;
|
|
711
|
-
}
|
|
712
|
-
|
|
713
|
-
/**
|
|
714
|
-
* @summary Creates a proxy wrapper for an Angular AbstractControl to assist with custom validation logic.
|
|
715
|
-
* @description Returns a structured proxy object that simulates a hierarchical tree of form values.
|
|
716
|
-
* Enables Validators handling method to access parent and child properties using consistent dot-notation in Angular forms.
|
|
717
|
-
*
|
|
718
|
-
* @param {AbstractControl} control - The control to wrap in a proxy.
|
|
719
|
-
* @returns {PathProxy<unknown>} A proxy object exposing form values and enabling recursive parent access.
|
|
720
|
-
*/
|
|
721
|
-
static createProxy(control: AbstractControl | FormGroup): PathProxy<unknown> {
|
|
722
|
-
return PathProxyEngine.create(control, {
|
|
723
|
-
<span class="fstat-no" title="function not covered" > getValue(</span>target: AbstractControl, prop: string): unknown {
|
|
724
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (target instanceof FormControl) <span class="cstat-no" title="statement not covered" >return target.value;</span></span>
|
|
725
|
-
|
|
726
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (target instanceof FormGroup) {</span>
|
|
727
|
-
const control = <span class="cstat-no" title="statement not covered" >target.controls[prop];</span>
|
|
728
|
-
<span class="cstat-no" title="statement not covered" > return control instanceof FormControl ? control.value : control;</span>
|
|
729
|
-
}
|
|
730
|
-
|
|
731
|
-
// const value = target[prop];
|
|
732
|
-
// if (value instanceof FormControl)
|
|
733
|
-
// return value.value;
|
|
734
|
-
//
|
|
735
|
-
// if (value instanceof FormGroup) {
|
|
736
|
-
// const control = value.controls[prop];
|
|
737
|
-
// return control instanceof FormControl ? control.value : control;
|
|
738
|
-
// }
|
|
739
|
-
|
|
740
|
-
<span class="cstat-no" title="statement not covered" > return (target as KeyValue)?.[prop];</span>
|
|
741
|
-
},
|
|
742
|
-
getParent: <span class="fstat-no" title="function not covered" >function (t</span>arget: AbstractControl) {
|
|
743
|
-
<span class="cstat-no" title="statement not covered" > return target?.['_parent'];</span>
|
|
744
|
-
},
|
|
745
|
-
ignoreUndefined: true,
|
|
746
|
-
ignoreNull: true,
|
|
747
|
-
});
|
|
748
|
-
}
|
|
749
|
-
|
|
750
|
-
/**
|
|
751
|
-
*
|
|
752
|
-
* Resolves the correct validator key and its associated properties based on the input key and type.
|
|
753
|
-
*
|
|
754
|
-
* When the validation key is TYPE, it's necessary to resolve the actual validator based on the
|
|
755
|
-
* field's type (e.g., 'password', 'email', 'url') instead of using the generic getValidator("type") logic.
|
|
756
|
-
* This allows directly invoking specific validators like getValidator('password'), ensuring the correct
|
|
757
|
-
* behavior for type-based validation.
|
|
758
|
-
*
|
|
759
|
-
* @param key - The validation key (e.g., 'type', 'required', etc.).
|
|
760
|
-
* @param value - The value that needs be provided to the validator.
|
|
761
|
-
* @param type - The field's declared type.
|
|
762
|
-
* @returns An object containing the resolved validator key and its corresponding props.
|
|
763
|
-
*/
|
|
764
|
-
static resolveValidatorKeyProps = (
|
|
765
|
-
key: string,
|
|
766
|
-
type: string,
|
|
767
|
-
fieldProps: FieldProperties,
|
|
768
|
-
customTypes: string | undefined = undefined
|
|
769
|
-
): { validatorKey: string; props: KeyValue } => {
|
|
770
|
-
const isTypeBased = this.isTypeBasedValidation(key, type, customTypes);
|
|
771
|
-
const validatorKey = isTypeBased ? <span class="branch-0 cbranch-no" title="branch not covered" >type </span>: key;
|
|
772
|
-
const value = this.getValidatorValue(key, type, fieldProps);
|
|
773
|
-
const props = this.getValidatorProps(validatorKey, type, isTypeBased, value);
|
|
774
|
-
return { validatorKey, props };
|
|
775
|
-
};
|
|
776
|
-
|
|
777
|
-
/**
|
|
778
|
-
* Constructs the properties object to be passed to a validator.
|
|
779
|
-
* Handles translation of string values and applies pattern validators for type-based validations.
|
|
780
|
-
*
|
|
781
|
-
* @param validatorKey - The resolved validator key.
|
|
782
|
-
* @param type - The field's type.
|
|
783
|
-
* @param isTypeBased - Whether this is a type-based validation.
|
|
784
|
-
* @param value - The value to validate.
|
|
785
|
-
* @returns An object containing validator properties.
|
|
786
|
-
*/
|
|
787
|
-
static getValidatorProps(validatorKey: string, type: string, isTypeBased: boolean, value: unknown): KeyValue {
|
|
788
|
-
return {
|
|
789
|
-
[validatorKey]:
|
|
790
|
-
!isTypeBased && validatorKey === ValidationKeys.TYPE
|
|
791
|
-
? NgxRenderingEngine.get().translate(value as string, false)
|
|
792
|
-
: value,
|
|
793
|
-
// Email, Password, and URL are validated using the "pattern" key
|
|
794
|
-
...(isTypeBased && <span class="branch-1 cbranch-no" title="branch not covered" >{ [ValidationKeys.PATTERN]: patternValidators[type] })</span>,
|
|
795
|
-
};
|
|
796
|
-
}
|
|
797
|
-
}
|
|
798
|
-
</pre></td></tr></table></pre>
|
|
799
|
-
|
|
800
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
801
|
-
</div><!-- /wrapper -->
|
|
802
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
803
|
-
Code coverage generated by
|
|
804
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
805
|
-
at 2026-02-23T18:11:57.210Z
|
|
806
|
-
</div>
|
|
807
|
-
<script src="../../../prettify.js"></script>
|
|
808
|
-
<script>
|
|
809
|
-
window.onload = function () {
|
|
810
|
-
prettyPrint();
|
|
811
|
-
};
|
|
812
|
-
</script>
|
|
813
|
-
<script src="../../../sorter.js"></script>
|
|
814
|
-
<script src="../../../block-navigation.js"></script>
|
|
815
|
-
</body>
|
|
816
|
-
</html>
|
|
817
|
-
|