@sitecore-jss/sitecore-jss-angular 21.7.0 → 21.7.1-canary.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/LICENSE.txt +202 -202
  2. package/README.md +7 -7
  3. package/angular.json +48 -48
  4. package/dist/README.md +7 -7
  5. package/dist/components/date.directive.d.ts +20 -20
  6. package/dist/components/editframe.component.d.ts +22 -22
  7. package/dist/components/file.directive.d.ts +17 -17
  8. package/dist/components/generic-link.directive.d.ts +20 -20
  9. package/dist/components/hidden-rendering.component.d.ts +7 -7
  10. package/dist/components/image.directive.d.ts +35 -35
  11. package/dist/components/link.directive.d.ts +26 -26
  12. package/dist/components/missing-component.component.d.ts +7 -7
  13. package/dist/components/placeholder-loading.directive.d.ts +8 -8
  14. package/dist/components/placeholder.component.d.ts +60 -60
  15. package/dist/components/raw.component.d.ts +12 -12
  16. package/dist/components/render-component.component.d.ts +33 -33
  17. package/dist/components/render-each.directive.d.ts +8 -8
  18. package/dist/components/render-empty.directive.d.ts +8 -8
  19. package/dist/components/rendering-field.d.ts +41 -41
  20. package/dist/components/rendering.d.ts +5 -5
  21. package/dist/components/rich-text.directive.d.ts +18 -18
  22. package/dist/components/router-link.directive.d.ts +19 -19
  23. package/dist/components/text.directive.d.ts +16 -16
  24. package/dist/esm2022/components/date.directive.mjs +67 -67
  25. package/dist/esm2022/components/editframe.component.mjs +70 -70
  26. package/dist/esm2022/components/file.directive.mjs +48 -48
  27. package/dist/esm2022/components/generic-link.directive.mjs +67 -67
  28. package/dist/esm2022/components/hidden-rendering.component.mjs +20 -20
  29. package/dist/esm2022/components/image.directive.mjs +150 -150
  30. package/dist/esm2022/components/link.directive.mjs +122 -122
  31. package/dist/esm2022/components/missing-component.component.mjs +16 -16
  32. package/dist/esm2022/components/placeholder-loading.directive.mjs +16 -16
  33. package/dist/esm2022/components/placeholder.component.mjs +281 -281
  34. package/dist/esm2022/components/raw.component.mjs +38 -38
  35. package/dist/esm2022/components/render-component.component.mjs +98 -98
  36. package/dist/esm2022/components/render-each.directive.mjs +16 -16
  37. package/dist/esm2022/components/render-empty.directive.mjs +16 -16
  38. package/dist/esm2022/components/rendering-field.mjs +1 -1
  39. package/dist/esm2022/components/rendering.mjs +7 -7
  40. package/dist/esm2022/components/rich-text.directive.mjs +68 -68
  41. package/dist/esm2022/components/router-link.directive.mjs +49 -49
  42. package/dist/esm2022/components/text.directive.mjs +61 -61
  43. package/dist/esm2022/lib.module.mjs +160 -160
  44. package/dist/esm2022/public_api.mjs +25 -25
  45. package/dist/esm2022/services/data-resolver-factory.mjs +58 -58
  46. package/dist/esm2022/services/guard-resolver-factory.mjs +86 -86
  47. package/dist/esm2022/services/jss-can-activate-error.mjs +14 -14
  48. package/dist/esm2022/services/jss-component-factory.service.mjs +88 -88
  49. package/dist/esm2022/services/placeholder.token.mjs +27 -27
  50. package/dist/esm2022/sitecore-jss-sitecore-jss-angular.mjs +4 -4
  51. package/dist/esm2022/utils.mjs +16 -16
  52. package/dist/fesm2022/sitecore-jss-sitecore-jss-angular.mjs +1530 -1530
  53. package/dist/index.d.ts +5 -5
  54. package/dist/lib.module.d.ts +48 -48
  55. package/dist/package.json +2 -2
  56. package/dist/public_api.d.ts +26 -26
  57. package/dist/services/data-resolver-factory.d.ts +13 -13
  58. package/dist/services/guard-resolver-factory.d.ts +11 -11
  59. package/dist/services/jss-can-activate-error.d.ts +10 -10
  60. package/dist/services/jss-component-factory.service.d.ts +26 -26
  61. package/dist/services/placeholder.token.d.ts +64 -64
  62. package/dist/utils.d.ts +6 -6
  63. package/ng-package.json +13 -13
  64. package/package.json +3 -3
  65. package/tsconfig.json +9 -9
  66. package/tsconfig.spec.json +17 -17
  67. package/typings/README.md +2 -2
@@ -1,26 +1,26 @@
1
- export { FileDirective } from './components/file.directive';
2
- export { ImageDirective } from './components/image.directive';
3
- export { LinkDirective } from './components/link.directive';
4
- export { RouterLinkDirective } from './components/router-link.directive';
5
- export { GenericLinkDirective } from './components/generic-link.directive';
6
- export { PlaceholderComponent } from './components/placeholder.component';
7
- export { HiddenRenderingComponent } from './components/hidden-rendering.component';
8
- export { RenderEachDirective } from './components/render-each.directive';
9
- export { RenderEmptyDirective } from './components/render-empty.directive';
10
- export { RenderComponentComponent } from './components/render-component.component';
11
- export { DateDirective } from './components/date.directive';
12
- export { EditFrameComponent } from './components/editframe.component';
13
- export { ComponentNameAndType, DYNAMIC_COMPONENT, } from './services/placeholder.token';
14
- export { PlaceholderLoadingDirective } from './components/placeholder-loading.directive';
15
- export { isRawRendering } from './components/rendering';
16
- export { RichTextDirective } from './components/rich-text.directive';
17
- export { TextDirective } from './components/text.directive';
18
- export { JssModule } from './lib.module';
19
- export { mediaApi } from '@sitecore-jss/sitecore-jss/media';
20
- export { GraphQLDictionaryService, RestDictionaryService, } from '@sitecore-jss/sitecore-jss/i18n';
21
- export { GraphQLLayoutService, RestLayoutService, getChildPlaceholder, getFieldValue, } from '@sitecore-jss/sitecore-jss/layout';
22
- export { DefaultRetryStrategy, } from '@sitecore-jss/sitecore-jss/graphql';
23
- export { constants, enableDebug, ClientError, } from '@sitecore-jss/sitecore-jss';
24
- export { isServer, isEditorActive, resetEditorChromes, handleEditorAnchors, DefaultEditFrameButton, DefaultEditFrameButtons, } from '@sitecore-jss/sitecore-jss/utils';
25
- export { trackingApi, } from '@sitecore-jss/sitecore-jss/tracking';
1
+ export { FileDirective } from './components/file.directive';
2
+ export { ImageDirective } from './components/image.directive';
3
+ export { LinkDirective } from './components/link.directive';
4
+ export { RouterLinkDirective } from './components/router-link.directive';
5
+ export { GenericLinkDirective } from './components/generic-link.directive';
6
+ export { PlaceholderComponent } from './components/placeholder.component';
7
+ export { HiddenRenderingComponent } from './components/hidden-rendering.component';
8
+ export { RenderEachDirective } from './components/render-each.directive';
9
+ export { RenderEmptyDirective } from './components/render-empty.directive';
10
+ export { RenderComponentComponent } from './components/render-component.component';
11
+ export { DateDirective } from './components/date.directive';
12
+ export { EditFrameComponent } from './components/editframe.component';
13
+ export { ComponentNameAndType, DYNAMIC_COMPONENT, } from './services/placeholder.token';
14
+ export { PlaceholderLoadingDirective } from './components/placeholder-loading.directive';
15
+ export { isRawRendering } from './components/rendering';
16
+ export { RichTextDirective } from './components/rich-text.directive';
17
+ export { TextDirective } from './components/text.directive';
18
+ export { JssModule } from './lib.module';
19
+ export { mediaApi } from '@sitecore-jss/sitecore-jss/media';
20
+ export { GraphQLDictionaryService, RestDictionaryService, } from '@sitecore-jss/sitecore-jss/i18n';
21
+ export { GraphQLLayoutService, RestLayoutService, getChildPlaceholder, getFieldValue, } from '@sitecore-jss/sitecore-jss/layout';
22
+ export { DefaultRetryStrategy, } from '@sitecore-jss/sitecore-jss/graphql';
23
+ export { constants, enableDebug, ClientError, } from '@sitecore-jss/sitecore-jss';
24
+ export { isServer, isEditorActive, resetEditorChromes, handleEditorAnchors, DefaultEditFrameButton, DefaultEditFrameButtons, } from '@sitecore-jss/sitecore-jss/utils';
25
+ export { trackingApi, } from '@sitecore-jss/sitecore-jss/tracking';
26
26
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGlCQUFpQixHQU1sQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVd4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDNUQsT0FBTyxFQUVMLHdCQUF3QixFQUN4QixxQkFBcUIsR0FDdEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBSUwsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUtqQixtQkFBbUIsRUFDbkIsYUFBYSxHQUlkLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUVMLG9CQUFvQixHQUVyQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFDTCxTQUFTLEVBR1QsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxRQUFRLEVBQ1IsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLHVCQUF1QixHQUl4QixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFDTCxXQUFXLEdBT1osTUFBTSxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEZpbGVEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBJbWFnZURpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50cy9pbWFnZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL2xpbmsuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgUm91dGVyTGlua0RpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50cy9yb3V0ZXItbGluay5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBHZW5lcmljTGlua0RpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50cy9nZW5lcmljLWxpbmsuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgUGxhY2Vob2xkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGxhY2Vob2xkZXIuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSGlkZGVuUmVuZGVyaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hpZGRlbi1yZW5kZXJpbmcuY29tcG9uZW50JztcclxuZXhwb3J0IHsgUmVuZGVyRWFjaERpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50cy9yZW5kZXItZWFjaC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBSZW5kZXJFbXB0eURpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50cy9yZW5kZXItZW1wdHkuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgUmVuZGVyQ29tcG9uZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlbmRlci1jb21wb25lbnQuY29tcG9uZW50JztcclxuZXhwb3J0IHsgRGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRlLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IEVkaXRGcmFtZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lZGl0ZnJhbWUuY29tcG9uZW50JztcclxuZXhwb3J0IHtcclxuICBDb21wb25lbnROYW1lQW5kVHlwZSxcclxuICBEWU5BTUlDX0NPTVBPTkVOVCxcclxuICBDb21wb25lbnROYW1lQW5kTW9kdWxlLFxyXG4gIEpzc1Jlc29sdmUsXHJcbiAgSnNzQ2FuQWN0aXZhdGUsXHJcbiAgSnNzQ2FuQWN0aXZhdGVGbixcclxuICBHdWFyZElucHV0LFxyXG59IGZyb20gJy4vc2VydmljZXMvcGxhY2Vob2xkZXIudG9rZW4nO1xyXG5leHBvcnQgeyBQbGFjZWhvbGRlckxvYWRpbmdEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvcGxhY2Vob2xkZXItbG9hZGluZy5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBpc1Jhd1JlbmRlcmluZyB9IGZyb20gJy4vY29tcG9uZW50cy9yZW5kZXJpbmcnO1xyXG5leHBvcnQge1xyXG4gIEZpbGVGaWVsZCxcclxuICBJbWFnZUZpZWxkLFxyXG4gIEltYWdlRmllbGRWYWx1ZSxcclxuICBMaW5rRmllbGQsXHJcbiAgTGlua0ZpZWxkVmFsdWUsXHJcbiAgUmVuZGVyaW5nRmllbGQsXHJcbiAgUmljaFRleHRGaWVsZCxcclxuICBUZXh0RmllbGQsXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzL3JlbmRlcmluZy1maWVsZCc7XHJcbmV4cG9ydCB7IFJpY2hUZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL3JpY2gtdGV4dC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBUZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL3RleHQuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgSnNzTW9kdWxlIH0gZnJvbSAnLi9saWIubW9kdWxlJztcclxuZXhwb3J0IHsgbWVkaWFBcGkgfSBmcm9tICdAc2l0ZWNvcmUtanNzL3NpdGVjb3JlLWpzcy9tZWRpYSc7XHJcbmV4cG9ydCB7XHJcbiAgRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgR3JhcGhRTERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gIFJlc3REaWN0aW9uYXJ5U2VydmljZSxcclxufSBmcm9tICdAc2l0ZWNvcmUtanNzL3NpdGVjb3JlLWpzcy9pMThuJztcclxuZXhwb3J0IHtcclxuICBMYXlvdXRTZXJ2aWNlLFxyXG4gIExheW91dFNlcnZpY2VEYXRhLFxyXG4gIExheW91dFNlcnZpY2VDb250ZXh0RGF0YSxcclxuICBHcmFwaFFMTGF5b3V0U2VydmljZSxcclxuICBSZXN0TGF5b3V0U2VydmljZSxcclxuICBQbGFjZWhvbGRlcnNEYXRhLFxyXG4gIFJvdXRlRGF0YSxcclxuICBGaWVsZCxcclxuICBIdG1sRWxlbWVudFJlbmRlcmluZyxcclxuICBnZXRDaGlsZFBsYWNlaG9sZGVyLFxyXG4gIGdldEZpZWxkVmFsdWUsXHJcbiAgQ29tcG9uZW50UmVuZGVyaW5nLFxyXG4gIENvbXBvbmVudEZpZWxkcyxcclxuICBDb21wb25lbnRQYXJhbXMsXHJcbn0gZnJvbSAnQHNpdGVjb3JlLWpzcy9zaXRlY29yZS1qc3MvbGF5b3V0JztcclxuZXhwb3J0IHtcclxuICBSZXRyeVN0cmF0ZWd5LFxyXG4gIERlZmF1bHRSZXRyeVN0cmF0ZWd5LFxyXG4gIEdyYXBoUUxDbGllbnRFcnJvcixcclxufSBmcm9tICdAc2l0ZWNvcmUtanNzL3NpdGVjb3JlLWpzcy9ncmFwaHFsJztcclxuZXhwb3J0IHtcclxuICBjb25zdGFudHMsXHJcbiAgSHR0cERhdGFGZXRjaGVyLFxyXG4gIEh0dHBSZXNwb25zZSxcclxuICBlbmFibGVEZWJ1ZyxcclxuICBDbGllbnRFcnJvcixcclxufSBmcm9tICdAc2l0ZWNvcmUtanNzL3NpdGVjb3JlLWpzcyc7XHJcbmV4cG9ydCB7XHJcbiAgaXNTZXJ2ZXIsXHJcbiAgaXNFZGl0b3JBY3RpdmUsXHJcbiAgcmVzZXRFZGl0b3JDaHJvbWVzLFxyXG4gIGhhbmRsZUVkaXRvckFuY2hvcnMsXHJcbiAgRGVmYXVsdEVkaXRGcmFtZUJ1dHRvbixcclxuICBEZWZhdWx0RWRpdEZyYW1lQnV0dG9ucyxcclxuICBFZGl0RnJhbWVEYXRhU291cmNlLFxyXG4gIEZpZWxkRWRpdEJ1dHRvbixcclxuICBXZWJFZGl0QnV0dG9uLFxyXG59IGZyb20gJ0BzaXRlY29yZS1qc3Mvc2l0ZWNvcmUtanNzL3V0aWxzJztcclxuZXhwb3J0IHtcclxuICB0cmFja2luZ0FwaSxcclxuICBUcmFja2luZ1JlcXVlc3RPcHRpb25zLFxyXG4gIENhbXBhaWduSW5zdGFuY2UsXHJcbiAgR29hbEluc3RhbmNlLFxyXG4gIE91dGNvbWVJbnN0YW5jZSxcclxuICBFdmVudEluc3RhbmNlLFxyXG4gIFBhZ2VWaWV3SW5zdGFuY2UsXHJcbn0gZnJvbSAnQHNpdGVjb3JlLWpzcy9zaXRlY29yZS1qc3MvdHJhY2tpbmcnO1xyXG4iXX0=
@@ -1,59 +1,59 @@
1
- import { take } from 'rxjs/operators';
2
- import { wrapIntoObservable } from '../utils';
3
- import { lastValueFrom } from 'rxjs';
4
- /**
5
- * @param {Injector} injector
6
- * @param {ActivatedRoute} activatedRoute
7
- * @param {Router} router
8
- * @returns resolved data
9
- */
10
- export function dataResolverFactory(injector, activatedRoute, router) {
11
- /**
12
- * @param {JssResolve<unknown> | Type<JssResolve<unknown>>} resolver
13
- * @returns resolver instance
14
- */
15
- function getResolverInstance(resolver) {
16
- return 'resolve' in resolver ? resolver : injector.get(resolver);
17
- }
18
- /**
19
- * @param {ComponentFactoryResult} factory
20
- * @returns {Array<[string, JssResolve<unknown>]>} resolver instances
21
- */
22
- function collectResolverInstances(factory) {
23
- if (factory.resolve) {
24
- const resolve = factory.resolve;
25
- return Object.keys(factory.resolve).map((key) => [
26
- key,
27
- getResolverInstance(resolve[key]),
28
- ]);
29
- }
30
- return [];
31
- }
32
- /**
33
- * @param {JssResolve<unknown>} resolver
34
- * @param {ComponentFactoryResult} factory
35
- * @returns data
36
- */
37
- function _resolveData(resolver, factory) {
38
- const data = resolver.resolve({
39
- activatedRoute: activatedRoute.snapshot,
40
- routerState: router.routerState.snapshot,
41
- rendering: factory.componentDefinition,
42
- });
43
- const data$ = wrapIntoObservable(data);
44
- return lastValueFrom(data$.pipe(take(1)));
45
- }
46
- return function resolveData(factories) {
47
- return Promise.all(factories.map((factory) => {
48
- const resolvers = collectResolverInstances(factory);
49
- const pendingData = resolvers.map(([key, resolver]) => _resolveData(resolver, factory).then((data) => [key, data]));
50
- return Promise.all(pendingData)
51
- .then((allData) => allData.reduce((acc, [key, data]) => {
52
- acc[key] = data;
53
- return acc;
54
- }, {}))
55
- .then((data) => ({ factory, data }));
56
- }));
57
- };
58
- }
1
+ import { take } from 'rxjs/operators';
2
+ import { wrapIntoObservable } from '../utils';
3
+ import { lastValueFrom } from 'rxjs';
4
+ /**
5
+ * @param {Injector} injector
6
+ * @param {ActivatedRoute} activatedRoute
7
+ * @param {Router} router
8
+ * @returns resolved data
9
+ */
10
+ export function dataResolverFactory(injector, activatedRoute, router) {
11
+ /**
12
+ * @param {JssResolve<unknown> | Type<JssResolve<unknown>>} resolver
13
+ * @returns resolver instance
14
+ */
15
+ function getResolverInstance(resolver) {
16
+ return 'resolve' in resolver ? resolver : injector.get(resolver);
17
+ }
18
+ /**
19
+ * @param {ComponentFactoryResult} factory
20
+ * @returns {Array<[string, JssResolve<unknown>]>} resolver instances
21
+ */
22
+ function collectResolverInstances(factory) {
23
+ if (factory.resolve) {
24
+ const resolve = factory.resolve;
25
+ return Object.keys(factory.resolve).map((key) => [
26
+ key,
27
+ getResolverInstance(resolve[key]),
28
+ ]);
29
+ }
30
+ return [];
31
+ }
32
+ /**
33
+ * @param {JssResolve<unknown>} resolver
34
+ * @param {ComponentFactoryResult} factory
35
+ * @returns data
36
+ */
37
+ function _resolveData(resolver, factory) {
38
+ const data = resolver.resolve({
39
+ activatedRoute: activatedRoute.snapshot,
40
+ routerState: router.routerState.snapshot,
41
+ rendering: factory.componentDefinition,
42
+ });
43
+ const data$ = wrapIntoObservable(data);
44
+ return lastValueFrom(data$.pipe(take(1)));
45
+ }
46
+ return function resolveData(factories) {
47
+ return Promise.all(factories.map((factory) => {
48
+ const resolvers = collectResolverInstances(factory);
49
+ const pendingData = resolvers.map(([key, resolver]) => _resolveData(resolver, factory).then((data) => [key, data]));
50
+ return Promise.all(pendingData)
51
+ .then((allData) => allData.reduce((acc, [key, data]) => {
52
+ acc[key] = data;
53
+ return acc;
54
+ }, {}))
55
+ .then((data) => ({ factory, data }));
56
+ }));
57
+ };
58
+ }
59
59
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1yZXNvbHZlci1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2RhdGEtcmVzb2x2ZXItZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFckM7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLFFBQWtCLEVBQ2xCLGNBQThCLEVBQzlCLE1BQWM7SUFFZDs7O09BR0c7SUFDSCxTQUFTLG1CQUFtQixDQUFDLFFBQXlEO1FBQ3BGLE9BQU8sU0FBUyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLHdCQUF3QixDQUMvQixPQUErQjtRQUUvQixJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDbkIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNoQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBaUMsRUFBRSxDQUFDO2dCQUM5RSxHQUFHO2dCQUNILG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNsQyxDQUFDLENBQUM7U0FDSjtRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLFlBQVksQ0FBQyxRQUE2QixFQUFFLE9BQStCO1FBQ2xGLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDNUIsY0FBYyxFQUFFLGNBQWMsQ0FBQyxRQUFRO1lBQ3ZDLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVE7WUFDeEMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxtQkFBeUM7U0FDN0QsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkMsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxPQUFPLFNBQVMsV0FBVyxDQUFDLFNBQW1DO1FBQzdELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FDaEIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3hCLE1BQU0sU0FBUyxHQUFHLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQ3BELFlBQVksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFpQixFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FDM0UsQ0FBQztZQUVGLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7aUJBQzVCLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ2hCLE9BQU8sQ0FBQyxNQUFNLENBQXNCLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ2hCLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNQO2lCQUNBLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50UmVuZGVyaW5nIH0gZnJvbSAnQHNpdGVjb3JlLWpzcy9zaXRlY29yZS1qc3MvbGF5b3V0JztcclxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc3VsdCB9IGZyb20gJy4vanNzLWNvbXBvbmVudC1mYWN0b3J5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB3cmFwSW50b09ic2VydmFibGUgfSBmcm9tICcuLi91dGlscyc7XHJcbmltcG9ydCB7IEpzc1Jlc29sdmUgfSBmcm9tICcuL3BsYWNlaG9sZGVyLnRva2VuJztcclxuaW1wb3J0IHsgbGFzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5cclxuLyoqXHJcbiAqIEBwYXJhbSB7SW5qZWN0b3J9IGluamVjdG9yXHJcbiAqIEBwYXJhbSB7QWN0aXZhdGVkUm91dGV9IGFjdGl2YXRlZFJvdXRlXHJcbiAqIEBwYXJhbSB7Um91dGVyfSByb3V0ZXJcclxuICogQHJldHVybnMgcmVzb2x2ZWQgZGF0YVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRhdGFSZXNvbHZlckZhY3RvcnkoXHJcbiAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICByb3V0ZXI6IFJvdXRlclxyXG4pIHtcclxuICAvKipcclxuICAgKiBAcGFyYW0ge0pzc1Jlc29sdmU8dW5rbm93bj4gfCBUeXBlPEpzc1Jlc29sdmU8dW5rbm93bj4+fSByZXNvbHZlclxyXG4gICAqIEByZXR1cm5zIHJlc29sdmVyIGluc3RhbmNlXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gZ2V0UmVzb2x2ZXJJbnN0YW5jZShyZXNvbHZlcjogSnNzUmVzb2x2ZTx1bmtub3duPiB8IFR5cGU8SnNzUmVzb2x2ZTx1bmtub3duPj4pIHtcclxuICAgIHJldHVybiAncmVzb2x2ZScgaW4gcmVzb2x2ZXIgPyByZXNvbHZlciA6IGluamVjdG9yLmdldChyZXNvbHZlcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcGFyYW0ge0NvbXBvbmVudEZhY3RvcnlSZXN1bHR9IGZhY3RvcnlcclxuICAgKiBAcmV0dXJucyB7QXJyYXk8W3N0cmluZywgSnNzUmVzb2x2ZTx1bmtub3duPl0+fSByZXNvbHZlciBpbnN0YW5jZXNcclxuICAgKi9cclxuICBmdW5jdGlvbiBjb2xsZWN0UmVzb2x2ZXJJbnN0YW5jZXMoXHJcbiAgICBmYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5UmVzdWx0XHJcbiAgKTogQXJyYXk8W3N0cmluZywgSnNzUmVzb2x2ZTx1bmtub3duPl0+IHtcclxuICAgIGlmIChmYWN0b3J5LnJlc29sdmUpIHtcclxuICAgICAgY29uc3QgcmVzb2x2ZSA9IGZhY3RvcnkucmVzb2x2ZTtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZhY3RvcnkucmVzb2x2ZSkubWFwKChrZXkpOiBbc3RyaW5nLCBKc3NSZXNvbHZlPHVua25vd24+XSA9PiBbXHJcbiAgICAgICAga2V5LFxyXG4gICAgICAgIGdldFJlc29sdmVySW5zdGFuY2UocmVzb2x2ZVtrZXldKSxcclxuICAgICAgXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIHtKc3NSZXNvbHZlPHVua25vd24+fSByZXNvbHZlclxyXG4gICAqIEBwYXJhbSB7Q29tcG9uZW50RmFjdG9yeVJlc3VsdH0gZmFjdG9yeVxyXG4gICAqIEByZXR1cm5zIGRhdGFcclxuICAgKi9cclxuICBmdW5jdGlvbiBfcmVzb2x2ZURhdGEocmVzb2x2ZXI6IEpzc1Jlc29sdmU8dW5rbm93bj4sIGZhY3Rvcnk6IENvbXBvbmVudEZhY3RvcnlSZXN1bHQpIHtcclxuICAgIGNvbnN0IGRhdGEgPSByZXNvbHZlci5yZXNvbHZlKHtcclxuICAgICAgYWN0aXZhdGVkUm91dGU6IGFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LFxyXG4gICAgICByb3V0ZXJTdGF0ZTogcm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LFxyXG4gICAgICByZW5kZXJpbmc6IGZhY3RvcnkuY29tcG9uZW50RGVmaW5pdGlvbiBhcyBDb21wb25lbnRSZW5kZXJpbmcsXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGRhdGEkID0gd3JhcEludG9PYnNlcnZhYmxlKGRhdGEpO1xyXG5cclxuICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKGRhdGEkLnBpcGUodGFrZSgxKSkpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uIHJlc29sdmVEYXRhKGZhY3RvcmllczogQ29tcG9uZW50RmFjdG9yeVJlc3VsdFtdKSB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXHJcbiAgICAgIGZhY3Rvcmllcy5tYXAoKGZhY3RvcnkpID0+IHtcclxuICAgICAgICBjb25zdCByZXNvbHZlcnMgPSBjb2xsZWN0UmVzb2x2ZXJJbnN0YW5jZXMoZmFjdG9yeSk7XHJcbiAgICAgICAgY29uc3QgcGVuZGluZ0RhdGEgPSByZXNvbHZlcnMubWFwKChba2V5LCByZXNvbHZlcl0pID0+XHJcbiAgICAgICAgICBfcmVzb2x2ZURhdGEocmVzb2x2ZXIsIGZhY3RvcnkpLnRoZW4oKGRhdGEpOiBbc3RyaW5nLCBhbnldID0+IFtrZXksIGRhdGFdKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChwZW5kaW5nRGF0YSlcclxuICAgICAgICAgIC50aGVuKChhbGxEYXRhKSA9PlxyXG4gICAgICAgICAgICBhbGxEYXRhLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PigoYWNjLCBba2V5LCBkYXRhXSkgPT4ge1xyXG4gICAgICAgICAgICAgIGFjY1trZXldID0gZGF0YTtcclxuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICAgICAgICB9LCB7fSlcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC50aGVuKChkYXRhKSA9PiAoeyBmYWN0b3J5LCBkYXRhIH0pKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfTtcclxufVxyXG4iXX0=
@@ -1,87 +1,87 @@
1
- import { UrlTree } from '@angular/router';
2
- import { lastValueFrom, of } from 'rxjs';
3
- import { mergeMap, take } from 'rxjs/operators';
4
- import { wrapIntoObservable } from '../utils';
5
- import { JssCanActivateRedirectError } from './jss-can-activate-error';
6
- /**
7
- * @param {boolean | string | string[] | UrlTree} value
8
- * @returns instance of value
9
- */
10
- function isRedirectValue(value) {
11
- return value instanceof UrlTree || typeof value === 'string' || Array.isArray(value);
12
- }
13
- /**
14
- * Resolves components based on provided guards
15
- * @param {Injector} injector
16
- * @param {ActivatedRoute} activatedRoute
17
- * @param {Router} router
18
- * @returns {(factories: ComponentFactoryResult[]) => Promise<ComponentFactoryResult[]>} factory
19
- */
20
- export function guardResolverFactory(injector, activatedRoute, router) {
21
- /**
22
- * @param {JssCanActivate | Type<JssCanActivate> | JssCanActivateFn} guard
23
- * @returns resolved guard
24
- */
25
- function getGuardInstance(guard) {
26
- if ('canActivate' in guard) {
27
- return guard;
28
- }
29
- try {
30
- // Class is provided
31
- return injector.get(guard);
32
- }
33
- catch {
34
- // Function is provided
35
- return guard;
36
- }
37
- }
38
- /**
39
- * @param {ComponentFactoryResult} factory
40
- * @returns {(JssCanActivate | JssCanActivateFn)[]} guard instances
41
- */
42
- function collectGuardInstances(factory) {
43
- if (factory.canActivate) {
44
- return Array.isArray(factory.canActivate)
45
- ? factory.canActivate.map(getGuardInstance)
46
- : [getGuardInstance(factory.canActivate)];
47
- }
48
- return [];
49
- }
50
- /**
51
- *
52
- * @param {JssCanActivate | JssCanActivateFn} guard
53
- * @param {ComponentFactoryResult} factory
54
- * @returns canActivate
55
- */
56
- function resolveGuard(guard, factory) {
57
- const canActivate = 'canActivate' in guard ? guard.canActivate.bind(guard) : guard;
58
- const guardValue = canActivate({
59
- activatedRoute: activatedRoute.snapshot,
60
- routerState: router.routerState.snapshot,
61
- rendering: factory.componentDefinition,
62
- });
63
- const canActivate$ = wrapIntoObservable(guardValue);
64
- return lastValueFrom(canActivate$.pipe(take(1), mergeMap((value) => {
65
- if (isRedirectValue(value)) {
66
- throw new JssCanActivateRedirectError(`Value: '${value.toString()}' is a redirect value`, value);
67
- }
68
- else {
69
- return of(value);
70
- }
71
- })));
72
- }
73
- return function resolveGuards(factories) {
74
- const resolved = factories.map((factory) => {
75
- const guards = collectGuardInstances(factory);
76
- const pending = guards.map((guard) => resolveGuard(guard, factory));
77
- return Promise.all(pending)
78
- .then((canActive) => canActive.every((v) => v))
79
- .then((canActivate) => ({
80
- factory,
81
- canActivate,
82
- }));
83
- });
84
- return Promise.all(resolved).then((mapped) => mapped.filter((m) => m.canActivate).map((m) => m.factory));
85
- };
86
- }
1
+ import { UrlTree } from '@angular/router';
2
+ import { lastValueFrom, of } from 'rxjs';
3
+ import { mergeMap, take } from 'rxjs/operators';
4
+ import { wrapIntoObservable } from '../utils';
5
+ import { JssCanActivateRedirectError } from './jss-can-activate-error';
6
+ /**
7
+ * @param {boolean | string | string[] | UrlTree} value
8
+ * @returns instance of value
9
+ */
10
+ function isRedirectValue(value) {
11
+ return value instanceof UrlTree || typeof value === 'string' || Array.isArray(value);
12
+ }
13
+ /**
14
+ * Resolves components based on provided guards
15
+ * @param {Injector} injector
16
+ * @param {ActivatedRoute} activatedRoute
17
+ * @param {Router} router
18
+ * @returns {(factories: ComponentFactoryResult[]) => Promise<ComponentFactoryResult[]>} factory
19
+ */
20
+ export function guardResolverFactory(injector, activatedRoute, router) {
21
+ /**
22
+ * @param {JssCanActivate | Type<JssCanActivate> | JssCanActivateFn} guard
23
+ * @returns resolved guard
24
+ */
25
+ function getGuardInstance(guard) {
26
+ if ('canActivate' in guard) {
27
+ return guard;
28
+ }
29
+ try {
30
+ // Class is provided
31
+ return injector.get(guard);
32
+ }
33
+ catch {
34
+ // Function is provided
35
+ return guard;
36
+ }
37
+ }
38
+ /**
39
+ * @param {ComponentFactoryResult} factory
40
+ * @returns {(JssCanActivate | JssCanActivateFn)[]} guard instances
41
+ */
42
+ function collectGuardInstances(factory) {
43
+ if (factory.canActivate) {
44
+ return Array.isArray(factory.canActivate)
45
+ ? factory.canActivate.map(getGuardInstance)
46
+ : [getGuardInstance(factory.canActivate)];
47
+ }
48
+ return [];
49
+ }
50
+ /**
51
+ *
52
+ * @param {JssCanActivate | JssCanActivateFn} guard
53
+ * @param {ComponentFactoryResult} factory
54
+ * @returns canActivate
55
+ */
56
+ function resolveGuard(guard, factory) {
57
+ const canActivate = 'canActivate' in guard ? guard.canActivate.bind(guard) : guard;
58
+ const guardValue = canActivate({
59
+ activatedRoute: activatedRoute.snapshot,
60
+ routerState: router.routerState.snapshot,
61
+ rendering: factory.componentDefinition,
62
+ });
63
+ const canActivate$ = wrapIntoObservable(guardValue);
64
+ return lastValueFrom(canActivate$.pipe(take(1), mergeMap((value) => {
65
+ if (isRedirectValue(value)) {
66
+ throw new JssCanActivateRedirectError(`Value: '${value.toString()}' is a redirect value`, value);
67
+ }
68
+ else {
69
+ return of(value);
70
+ }
71
+ })));
72
+ }
73
+ return function resolveGuards(factories) {
74
+ const resolved = factories.map((factory) => {
75
+ const guards = collectGuardInstances(factory);
76
+ const pending = guards.map((guard) => resolveGuard(guard, factory));
77
+ return Promise.all(pending)
78
+ .then((canActive) => canActive.every((v) => v))
79
+ .then((canActivate) => ({
80
+ factory,
81
+ canActivate,
82
+ }));
83
+ });
84
+ return Promise.all(resolved).then((mapped) => mapped.filter((m) => m.canActivate).map((m) => m.factory));
85
+ };
86
+ }
87
87
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhcmQtcmVzb2x2ZXItZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9ndWFyZC1yZXNvbHZlci1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBMEIsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHdkU7OztHQUdHO0FBQ0gsU0FBUyxlQUFlLENBQ3RCLEtBQTRDO0lBRTVDLE9BQU8sS0FBSyxZQUFZLE9BQU8sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN2RixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxRQUFrQixFQUNsQixjQUE4QixFQUM5QixNQUFjO0lBRWQ7OztPQUdHO0lBQ0gsU0FBUyxnQkFBZ0IsQ0FDdkIsS0FBK0Q7UUFFL0QsSUFBSSxhQUFhLElBQUksS0FBSyxFQUFFO1lBQzFCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJO1lBQ0Ysb0JBQW9CO1lBQ3BCLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QjtRQUFDLE1BQU07WUFDTix1QkFBdUI7WUFDdkIsT0FBTyxLQUF5QixDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMscUJBQXFCLENBQzVCLE9BQStCO1FBRS9CLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUN2QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO2dCQUMzQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztTQUM3QztRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxZQUFZLENBQUMsS0FBd0MsRUFBRSxPQUErQjtRQUM3RixNQUFNLFdBQVcsR0FBRyxhQUFhLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ25GLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQztZQUM3QixjQUFjLEVBQUUsY0FBYyxDQUFDLFFBQVE7WUFDdkMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUTtZQUN4QyxTQUFTLEVBQUUsT0FBTyxDQUFDLG1CQUF5QztTQUM3RCxDQUFDLENBQUM7UUFFSCxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVwRCxPQUFPLGFBQWEsQ0FDbEIsWUFBWSxDQUFDLElBQUksQ0FDZixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsUUFBUSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzFCLE1BQU0sSUFBSSwyQkFBMkIsQ0FDbkMsV0FBVyxLQUFLLENBQUMsUUFBUSxFQUFFLHVCQUF1QixFQUNsRCxLQUFLLENBQ04sQ0FBQzthQUNIO2lCQUFNO2dCQUNMLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2xCO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sU0FBUyxhQUFhLENBQUMsU0FBbUM7UUFDL0QsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNwRSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO2lCQUN4QixJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM5QyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RCLE9BQU87Z0JBQ1AsV0FBVzthQUNaLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDM0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUMxRCxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21wb25lbnRSZW5kZXJpbmcgfSBmcm9tICdAc2l0ZWNvcmUtanNzL3NpdGVjb3JlLWpzcy9sYXlvdXQnO1xyXG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtZXJnZU1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc3VsdCB9IGZyb20gJy4vanNzLWNvbXBvbmVudC1mYWN0b3J5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB3cmFwSW50b09ic2VydmFibGUgfSBmcm9tICcuLi91dGlscyc7XHJcbmltcG9ydCB7IEpzc0NhbkFjdGl2YXRlUmVkaXJlY3RFcnJvciB9IGZyb20gJy4vanNzLWNhbi1hY3RpdmF0ZS1lcnJvcic7XHJcbmltcG9ydCB7IEpzc0NhbkFjdGl2YXRlLCBKc3NDYW5BY3RpdmF0ZUZuIH0gZnJvbSAnLi9wbGFjZWhvbGRlci50b2tlbic7XHJcblxyXG4vKipcclxuICogQHBhcmFtIHtib29sZWFuIHwgc3RyaW5nIHwgc3RyaW5nW10gfCBVcmxUcmVlfSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBpbnN0YW5jZSBvZiB2YWx1ZVxyXG4gKi9cclxuZnVuY3Rpb24gaXNSZWRpcmVjdFZhbHVlKFxyXG4gIHZhbHVlOiBib29sZWFuIHwgc3RyaW5nIHwgc3RyaW5nW10gfCBVcmxUcmVlXHJcbik6IHZhbHVlIGlzIHN0cmluZyB8IHN0cmluZ1tdIHwgVXJsVHJlZSB7XHJcbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgVXJsVHJlZSB8fCB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpO1xyXG59XHJcblxyXG4vKipcclxuICogUmVzb2x2ZXMgY29tcG9uZW50cyBiYXNlZCBvbiBwcm92aWRlZCBndWFyZHNcclxuICogQHBhcmFtIHtJbmplY3Rvcn0gaW5qZWN0b3JcclxuICogQHBhcmFtIHtBY3RpdmF0ZWRSb3V0ZX0gYWN0aXZhdGVkUm91dGVcclxuICogQHBhcmFtIHtSb3V0ZXJ9IHJvdXRlclxyXG4gKiBAcmV0dXJucyB7KGZhY3RvcmllczogQ29tcG9uZW50RmFjdG9yeVJlc3VsdFtdKSA9PiBQcm9taXNlPENvbXBvbmVudEZhY3RvcnlSZXN1bHRbXT59IGZhY3RvcnlcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBndWFyZFJlc29sdmVyRmFjdG9yeShcclxuICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gIHJvdXRlcjogUm91dGVyXHJcbikge1xyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSB7SnNzQ2FuQWN0aXZhdGUgfCBUeXBlPEpzc0NhbkFjdGl2YXRlPiB8IEpzc0NhbkFjdGl2YXRlRm59IGd1YXJkXHJcbiAgICogQHJldHVybnMgcmVzb2x2ZWQgZ3VhcmRcclxuICAgKi9cclxuICBmdW5jdGlvbiBnZXRHdWFyZEluc3RhbmNlKFxyXG4gICAgZ3VhcmQ6IEpzc0NhbkFjdGl2YXRlIHwgVHlwZTxKc3NDYW5BY3RpdmF0ZT4gfCBKc3NDYW5BY3RpdmF0ZUZuXHJcbiAgKTogSnNzQ2FuQWN0aXZhdGUgfCBKc3NDYW5BY3RpdmF0ZUZuIHtcclxuICAgIGlmICgnY2FuQWN0aXZhdGUnIGluIGd1YXJkKSB7XHJcbiAgICAgIHJldHVybiBndWFyZDtcclxuICAgIH1cclxuXHJcbiAgICB0cnkge1xyXG4gICAgICAvLyBDbGFzcyBpcyBwcm92aWRlZFxyXG4gICAgICByZXR1cm4gaW5qZWN0b3IuZ2V0KGd1YXJkKTtcclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICAvLyBGdW5jdGlvbiBpcyBwcm92aWRlZFxyXG4gICAgICByZXR1cm4gZ3VhcmQgYXMgSnNzQ2FuQWN0aXZhdGVGbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSB7Q29tcG9uZW50RmFjdG9yeVJlc3VsdH0gZmFjdG9yeVxyXG4gICAqIEByZXR1cm5zIHsoSnNzQ2FuQWN0aXZhdGUgfCBKc3NDYW5BY3RpdmF0ZUZuKVtdfSBndWFyZCBpbnN0YW5jZXNcclxuICAgKi9cclxuICBmdW5jdGlvbiBjb2xsZWN0R3VhcmRJbnN0YW5jZXMoXHJcbiAgICBmYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5UmVzdWx0XHJcbiAgKTogKEpzc0NhbkFjdGl2YXRlIHwgSnNzQ2FuQWN0aXZhdGVGbilbXSB7XHJcbiAgICBpZiAoZmFjdG9yeS5jYW5BY3RpdmF0ZSkge1xyXG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShmYWN0b3J5LmNhbkFjdGl2YXRlKVxyXG4gICAgICAgID8gZmFjdG9yeS5jYW5BY3RpdmF0ZS5tYXAoZ2V0R3VhcmRJbnN0YW5jZSlcclxuICAgICAgICA6IFtnZXRHdWFyZEluc3RhbmNlKGZhY3RvcnkuY2FuQWN0aXZhdGUpXTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7SnNzQ2FuQWN0aXZhdGUgfCBKc3NDYW5BY3RpdmF0ZUZufSBndWFyZFxyXG4gICAqIEBwYXJhbSB7Q29tcG9uZW50RmFjdG9yeVJlc3VsdH0gZmFjdG9yeVxyXG4gICAqIEByZXR1cm5zIGNhbkFjdGl2YXRlXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcmVzb2x2ZUd1YXJkKGd1YXJkOiBKc3NDYW5BY3RpdmF0ZSB8IEpzc0NhbkFjdGl2YXRlRm4sIGZhY3Rvcnk6IENvbXBvbmVudEZhY3RvcnlSZXN1bHQpIHtcclxuICAgIGNvbnN0IGNhbkFjdGl2YXRlID0gJ2NhbkFjdGl2YXRlJyBpbiBndWFyZCA/IGd1YXJkLmNhbkFjdGl2YXRlLmJpbmQoZ3VhcmQpIDogZ3VhcmQ7XHJcbiAgICBjb25zdCBndWFyZFZhbHVlID0gY2FuQWN0aXZhdGUoe1xyXG4gICAgICBhY3RpdmF0ZWRSb3V0ZTogYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXHJcbiAgICAgIHJvdXRlclN0YXRlOiByb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QsXHJcbiAgICAgIHJlbmRlcmluZzogZmFjdG9yeS5jb21wb25lbnREZWZpbml0aW9uIGFzIENvbXBvbmVudFJlbmRlcmluZyxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGNhbkFjdGl2YXRlJCA9IHdyYXBJbnRvT2JzZXJ2YWJsZShndWFyZFZhbHVlKTtcclxuXHJcbiAgICByZXR1cm4gbGFzdFZhbHVlRnJvbShcclxuICAgICAgY2FuQWN0aXZhdGUkLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBtZXJnZU1hcCgodmFsdWUpID0+IHtcclxuICAgICAgICAgIGlmIChpc1JlZGlyZWN0VmFsdWUodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBKc3NDYW5BY3RpdmF0ZVJlZGlyZWN0RXJyb3IoXHJcbiAgICAgICAgICAgICAgYFZhbHVlOiAnJHt2YWx1ZS50b1N0cmluZygpfScgaXMgYSByZWRpcmVjdCB2YWx1ZWAsXHJcbiAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvZih2YWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbiByZXNvbHZlR3VhcmRzKGZhY3RvcmllczogQ29tcG9uZW50RmFjdG9yeVJlc3VsdFtdKSB7XHJcbiAgICBjb25zdCByZXNvbHZlZCA9IGZhY3Rvcmllcy5tYXAoKGZhY3RvcnkpID0+IHtcclxuICAgICAgY29uc3QgZ3VhcmRzID0gY29sbGVjdEd1YXJkSW5zdGFuY2VzKGZhY3RvcnkpO1xyXG4gICAgICBjb25zdCBwZW5kaW5nID0gZ3VhcmRzLm1hcCgoZ3VhcmQpID0+IHJlc29sdmVHdWFyZChndWFyZCwgZmFjdG9yeSkpO1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwocGVuZGluZylcclxuICAgICAgICAudGhlbigoY2FuQWN0aXZlKSA9PiBjYW5BY3RpdmUuZXZlcnkoKHYpID0+IHYpKVxyXG4gICAgICAgIC50aGVuKChjYW5BY3RpdmF0ZSkgPT4gKHtcclxuICAgICAgICAgIGZhY3RvcnksXHJcbiAgICAgICAgICBjYW5BY3RpdmF0ZSxcclxuICAgICAgICB9KSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwocmVzb2x2ZWQpLnRoZW4oKG1hcHBlZCkgPT5cclxuICAgICAgbWFwcGVkLmZpbHRlcigobSkgPT4gbS5jYW5BY3RpdmF0ZSkubWFwKChtKSA9PiBtLmZhY3RvcnkpXHJcbiAgICApO1xyXG4gIH07XHJcbn1cclxuIl19
@@ -1,15 +1,15 @@
1
- /**
2
- * Error thrown when a JssCanActivate guard returns a redirect value.
3
- * The redirect value will be used to redirect the user to a different route.
4
- */
5
- export class JssCanActivateRedirectError extends Error {
6
- message;
7
- redirectValue;
8
- constructor(message, redirectValue) {
9
- super(message);
10
- this.message = message;
11
- this.redirectValue = redirectValue;
12
- this.name = 'JssCanActivateRedirectError';
13
- }
14
- }
1
+ /**
2
+ * Error thrown when a JssCanActivate guard returns a redirect value.
3
+ * The redirect value will be used to redirect the user to a different route.
4
+ */
5
+ export class JssCanActivateRedirectError extends Error {
6
+ message;
7
+ redirectValue;
8
+ constructor(message, redirectValue) {
9
+ super(message);
10
+ this.message = message;
11
+ this.redirectValue = redirectValue;
12
+ this.name = 'JssCanActivateRedirectError';
13
+ }
14
+ }
15
15
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNzLWNhbi1hY3RpdmF0ZS1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9qc3MtY2FuLWFjdGl2YXRlLWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7R0FHRztBQUNILE1BQU0sT0FBTywyQkFBNEIsU0FBUSxLQUFLO0lBQ2pDO0lBQXdCO0lBQTNDLFlBQW1CLE9BQWUsRUFBUyxhQUEwQztRQUNuRixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFERSxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQTZCO1FBRW5GLElBQUksQ0FBQyxJQUFJLEdBQUcsNkJBQTZCLENBQUM7SUFDNUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG4vKipcclxuICogRXJyb3IgdGhyb3duIHdoZW4gYSBKc3NDYW5BY3RpdmF0ZSBndWFyZCByZXR1cm5zIGEgcmVkaXJlY3QgdmFsdWUuXHJcbiAqIFRoZSByZWRpcmVjdCB2YWx1ZSB3aWxsIGJlIHVzZWQgdG8gcmVkaXJlY3QgdGhlIHVzZXIgdG8gYSBkaWZmZXJlbnQgcm91dGUuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgSnNzQ2FuQWN0aXZhdGVSZWRpcmVjdEVycm9yIGV4dGVuZHMgRXJyb3Ige1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyByZWRpcmVjdFZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSB8IFVybFRyZWUpIHtcclxuICAgIHN1cGVyKG1lc3NhZ2UpO1xyXG4gICAgdGhpcy5uYW1lID0gJ0pzc0NhbkFjdGl2YXRlUmVkaXJlY3RFcnJvcic7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,89 +1,89 @@
1
- import { createNgModule, Inject, Injectable } from '@angular/core';
2
- import { DYNAMIC_COMPONENT, PLACEHOLDER_COMPONENTS, PLACEHOLDER_LAZY_COMPONENTS, } from './placeholder.token';
3
- import { RawComponent } from '../components/raw.component';
4
- import { isRawRendering } from '../components/rendering';
5
- import * as i0 from "@angular/core";
6
- export class JssComponentFactoryService {
7
- injector;
8
- components;
9
- lazyComponents;
10
- componentMap;
11
- lazyComponentMap;
12
- constructor(injector, components, lazyComponents) {
13
- this.injector = injector;
14
- this.components = components;
15
- this.lazyComponents = lazyComponents;
16
- this.componentMap = new Map();
17
- this.lazyComponentMap = new Map();
18
- this.components.forEach((c) => this.componentMap.set(c.name, c));
19
- if (this.lazyComponents) {
20
- this.lazyComponents.forEach((c) => this.lazyComponentMap.set(c.path, c));
21
- }
22
- }
23
- getComponent(component) {
24
- const loadedComponent = this.componentMap.get(component.componentName);
25
- if (loadedComponent) {
26
- return Promise.resolve({
27
- componentDefinition: component,
28
- componentImplementation: loadedComponent.type,
29
- canActivate: loadedComponent.canActivate,
30
- resolve: loadedComponent.resolve,
31
- });
32
- }
33
- const lazyComponent = this.lazyComponentMap.get(component.componentName);
34
- if (lazyComponent) {
35
- return lazyComponent.loadChildren().then((lazyChild) => {
36
- let componentType = null;
37
- const moduleRef = createNgModule(lazyChild, this.injector);
38
- const dynamicComponentType = moduleRef.injector.get(DYNAMIC_COMPONENT);
39
- if (!dynamicComponentType) {
40
- throw new Error(`JssComponentFactoryService: Lazy load module for component "${lazyComponent.path}" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`);
41
- }
42
- if (component.componentName in dynamicComponentType) {
43
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
- componentType = dynamicComponentType[component.componentName];
45
- }
46
- else {
47
- if (typeof dynamicComponentType === 'function') {
48
- componentType = dynamicComponentType;
49
- }
50
- else {
51
- throw new Error(`JssComponentFactoryService: Lazy load module for component "${lazyComponent.path}" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`);
52
- }
53
- }
54
- return {
55
- componentDefinition: component,
56
- componentImplementation: componentType,
57
- componentModuleRef: moduleRef,
58
- canActivate: lazyComponent.canActivate,
59
- resolve: lazyComponent.resolve,
60
- };
61
- });
62
- }
63
- return Promise.resolve({
64
- componentDefinition: component,
65
- });
66
- }
67
- getComponents(components) {
68
- // acquire all components and keep them in order while handling their potential async-ness
69
- return Promise.all(components.map((component) => isRawRendering(component) ? this.getRawComponent(component) : this.getComponent(component)));
70
- }
71
- getRawComponent(component) {
72
- return Promise.resolve({
73
- componentImplementation: RawComponent,
74
- componentDefinition: component,
75
- });
76
- }
77
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JssComponentFactoryService, deps: [{ token: i0.Injector }, { token: PLACEHOLDER_COMPONENTS }, { token: PLACEHOLDER_LAZY_COMPONENTS }], target: i0.ɵɵFactoryTarget.Injectable });
78
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JssComponentFactoryService });
79
- }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JssComponentFactoryService, decorators: [{
81
- type: Injectable
82
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: undefined, decorators: [{
83
- type: Inject,
84
- args: [PLACEHOLDER_COMPONENTS]
85
- }] }, { type: undefined, decorators: [{
86
- type: Inject,
87
- args: [PLACEHOLDER_LAZY_COMPONENTS]
88
- }] }]; } });
1
+ import { createNgModule, Inject, Injectable } from '@angular/core';
2
+ import { DYNAMIC_COMPONENT, PLACEHOLDER_COMPONENTS, PLACEHOLDER_LAZY_COMPONENTS, } from './placeholder.token';
3
+ import { RawComponent } from '../components/raw.component';
4
+ import { isRawRendering } from '../components/rendering';
5
+ import * as i0 from "@angular/core";
6
+ export class JssComponentFactoryService {
7
+ injector;
8
+ components;
9
+ lazyComponents;
10
+ componentMap;
11
+ lazyComponentMap;
12
+ constructor(injector, components, lazyComponents) {
13
+ this.injector = injector;
14
+ this.components = components;
15
+ this.lazyComponents = lazyComponents;
16
+ this.componentMap = new Map();
17
+ this.lazyComponentMap = new Map();
18
+ this.components.forEach((c) => this.componentMap.set(c.name, c));
19
+ if (this.lazyComponents) {
20
+ this.lazyComponents.forEach((c) => this.lazyComponentMap.set(c.path, c));
21
+ }
22
+ }
23
+ getComponent(component) {
24
+ const loadedComponent = this.componentMap.get(component.componentName);
25
+ if (loadedComponent) {
26
+ return Promise.resolve({
27
+ componentDefinition: component,
28
+ componentImplementation: loadedComponent.type,
29
+ canActivate: loadedComponent.canActivate,
30
+ resolve: loadedComponent.resolve,
31
+ });
32
+ }
33
+ const lazyComponent = this.lazyComponentMap.get(component.componentName);
34
+ if (lazyComponent) {
35
+ return lazyComponent.loadChildren().then((lazyChild) => {
36
+ let componentType = null;
37
+ const moduleRef = createNgModule(lazyChild, this.injector);
38
+ const dynamicComponentType = moduleRef.injector.get(DYNAMIC_COMPONENT);
39
+ if (!dynamicComponentType) {
40
+ throw new Error(`JssComponentFactoryService: Lazy load module for component "${lazyComponent.path}" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`);
41
+ }
42
+ if (component.componentName in dynamicComponentType) {
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+ componentType = dynamicComponentType[component.componentName];
45
+ }
46
+ else {
47
+ if (typeof dynamicComponentType === 'function') {
48
+ componentType = dynamicComponentType;
49
+ }
50
+ else {
51
+ throw new Error(`JssComponentFactoryService: Lazy load module for component "${lazyComponent.path}" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`);
52
+ }
53
+ }
54
+ return {
55
+ componentDefinition: component,
56
+ componentImplementation: componentType,
57
+ componentModuleRef: moduleRef,
58
+ canActivate: lazyComponent.canActivate,
59
+ resolve: lazyComponent.resolve,
60
+ };
61
+ });
62
+ }
63
+ return Promise.resolve({
64
+ componentDefinition: component,
65
+ });
66
+ }
67
+ getComponents(components) {
68
+ // acquire all components and keep them in order while handling their potential async-ness
69
+ return Promise.all(components.map((component) => isRawRendering(component) ? this.getRawComponent(component) : this.getComponent(component)));
70
+ }
71
+ getRawComponent(component) {
72
+ return Promise.resolve({
73
+ componentImplementation: RawComponent,
74
+ componentDefinition: component,
75
+ });
76
+ }
77
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JssComponentFactoryService, deps: [{ token: i0.Injector }, { token: PLACEHOLDER_COMPONENTS }, { token: PLACEHOLDER_LAZY_COMPONENTS }], target: i0.ɵɵFactoryTarget.Injectable });
78
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JssComponentFactoryService });
79
+ }
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JssComponentFactoryService, decorators: [{
81
+ type: Injectable
82
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: undefined, decorators: [{
83
+ type: Inject,
84
+ args: [PLACEHOLDER_COMPONENTS]
85
+ }] }, { type: undefined, decorators: [{
86
+ type: Inject,
87
+ args: [PLACEHOLDER_LAZY_COMPONENTS]
88
+ }] }]; } });
89
89
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNzLWNvbXBvbmVudC1mYWN0b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvanNzLWNvbXBvbmVudC1mYWN0b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBR0wsaUJBQWlCLEVBSWpCLHNCQUFzQixFQUN0QiwyQkFBMkIsR0FDNUIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQWdCekQsTUFBTSxPQUFPLDBCQUEwQjtJQUszQjtJQUNnQztJQUNLO0lBTnZDLFlBQVksQ0FBb0M7SUFDaEQsZ0JBQWdCLENBQXNDO0lBRTlELFlBQ1UsUUFBa0IsRUFDYyxVQUFrQyxFQUM3QixjQUF3QztRQUY3RSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2MsZUFBVSxHQUFWLFVBQVUsQ0FBd0I7UUFDN0IsbUJBQWMsR0FBZCxjQUFjLENBQTBCO1FBRXJGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUVsQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWpFLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFB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QkFEdEMsVUFBVTs7MEJBT04sTUFBTTsyQkFBQyxzQkFBc0I7OzBCQUM3QixNQUFNOzJCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZU5nTW9kdWxlLCBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBOZ01vZHVsZVJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRSZW5kZXJpbmcsIEh0bWxFbGVtZW50UmVuZGVyaW5nIH0gZnJvbSAnQHNpdGVjb3JlLWpzcy9zaXRlY29yZS1qc3MvbGF5b3V0JztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnROYW1lQW5kTW9kdWxlLFxyXG4gIENvbXBvbmVudE5hbWVBbmRUeXBlLFxyXG4gIERZTkFNSUNfQ09NUE9ORU5ULFxyXG4gIEpzc0NhbkFjdGl2YXRlLFxyXG4gIEpzc0NhbkFjdGl2YXRlRm4sXHJcbiAgSnNzUmVzb2x2ZSxcclxuICBQTEFDRUhPTERFUl9DT01QT05FTlRTLFxyXG4gIFBMQUNFSE9MREVSX0xBWllfQ09NUE9ORU5UUyxcclxufSBmcm9tICcuL3BsYWNlaG9sZGVyLnRva2VuJztcclxuaW1wb3J0IHsgUmF3Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9yYXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgaXNSYXdSZW5kZXJpbmcgfSBmcm9tICcuLi9jb21wb25lbnRzL3JlbmRlcmluZyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudEZhY3RvcnlSZXN1bHQge1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29tcG9uZW50SW1wbGVtZW50YXRpb24/OiBUeXBlPGFueT47XHJcbiAgY29tcG9uZW50RGVmaW5pdGlvbjogQ29tcG9uZW50UmVuZGVyaW5nIHwgSHRtbEVsZW1lbnRSZW5kZXJpbmc7XHJcbiAgY29tcG9uZW50TW9kdWxlUmVmPzogTmdNb2R1bGVSZWY8dW5rbm93bj47XHJcbiAgY2FuQWN0aXZhdGU/OlxyXG4gICAgfCBKc3NDYW5BY3RpdmF0ZVxyXG4gICAgfCBUeXBlPEpzc0NhbkFjdGl2YXRlPlxyXG4gICAgfCBKc3NDYW5BY3RpdmF0ZUZuXHJcbiAgICB8IEFycmF5PEpzc0NhbkFjdGl2YXRlIHwgSnNzQ2FuQWN0aXZhdGVGbiB8IFR5cGU8SnNzQ2FuQWN0aXZhdGU+PjtcclxuICByZXNvbHZlPzogeyBba2V5OiBzdHJpbmddOiBKc3NSZXNvbHZlPGFueT4gfCBUeXBlPEpzc1Jlc29sdmU8YW55Pj4gfTtcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSnNzQ29tcG9uZW50RmFjdG9yeVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgY29tcG9uZW50TWFwOiBNYXA8c3RyaW5nLCBDb21wb25lbnROYW1lQW5kVHlwZT47XHJcbiAgcHJpdmF0ZSBsYXp5Q29tcG9uZW50TWFwOiBNYXA8c3RyaW5nLCBDb21wb25lbnROYW1lQW5kTW9kdWxlPjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIEBJbmplY3QoUExBQ0VIT0xERVJfQ09NUE9ORU5UUykgcHJpdmF0ZSBjb21wb25lbnRzOiBDb21wb25lbnROYW1lQW5kVHlwZVtdLFxyXG4gICAgQEluamVjdChQTEFDRUhPTERFUl9MQVpZX0NPTVBPTkVOVFMpIHByaXZhdGUgbGF6eUNvbXBvbmVudHM6IENvbXBvbmVudE5hbWVBbmRNb2R1bGVbXVxyXG4gICkge1xyXG4gICAgdGhpcy5jb21wb25lbnRNYXAgPSBuZXcgTWFwKCk7XHJcbiAgICB0aGlzLmxhenlDb21wb25lbnRNYXAgPSBuZXcgTWFwKCk7XHJcblxyXG4gICAgdGhpcy5jb21wb25lbnRzLmZvckVhY2goKGMpID0+IHRoaXMuY29tcG9uZW50TWFwLnNldChjLm5hbWUsIGMpKTtcclxuXHJcbiAgICBpZiAodGhpcy5sYXp5Q29tcG9uZW50cykge1xyXG4gICAgICB0aGlzLmxhenlDb21wb25lbnRzLmZvckVhY2goKGMpID0+IHRoaXMubGF6eUNvbXBvbmVudE1hcC5zZXQoYy5wYXRoLCBjKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDb21wb25lbnQoY29tcG9uZW50OiBDb21wb25lbnRSZW5kZXJpbmcpOiBQcm9taXNlPENvbXBvbmVudEZhY3RvcnlSZXN1bHQ+IHtcclxuICAgIGNvbnN0IGxvYWRlZENvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50TWFwLmdldChjb21wb25lbnQuY29tcG9uZW50TmFtZSk7XHJcblxyXG4gICAgaWYgKGxvYWRlZENvbXBvbmVudCkge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcclxuICAgICAgICBjb21wb25lbnREZWZpbml0aW9uOiBjb21wb25lbnQsXHJcbiAgICAgICAgY29tcG9uZW50SW1wbGVtZW50YXRpb246IGxvYWRlZENvbXBvbmVudC50eXBlLFxyXG4gICAgICAgIGNhbkFjdGl2YXRlOiBsb2FkZWRDb21wb25lbnQuY2FuQWN0aXZhdGUsXHJcbiAgICAgICAgcmVzb2x2ZTogbG9hZGVkQ29tcG9uZW50LnJlc29sdmUsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxhenlDb21wb25lbnQgPSB0aGlzLmxhenlDb21wb25lbnRNYXAuZ2V0KGNvbXBvbmVudC5jb21wb25lbnROYW1lKTtcclxuXHJcbiAgICBpZiAobGF6eUNvbXBvbmVudCkge1xyXG4gICAgICByZXR1cm4gbGF6eUNvbXBvbmVudC5sb2FkQ2hpbGRyZW4oKS50aGVuKChsYXp5Q2hpbGQpID0+IHtcclxuICAgICAgICBsZXQgY29tcG9uZW50VHlwZSA9IG51bGw7XHJcbiAgICAgICAgY29uc3QgbW9kdWxlUmVmID0gY3JlYXRlTmdNb2R1bGUobGF6eUNoaWxkLCB0aGlzLmluamVjdG9yKTtcclxuICAgICAgICBjb25zdCBkeW5hbWljQ29tcG9uZW50VHlwZSA9IG1vZHVsZVJlZi5pbmplY3Rvci5nZXQoRFlOQU1JQ19DT01QT05FTlQpO1xyXG4gICAgICAgIGlmICghZHluYW1pY0NvbXBvbmVudFR5cGUpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgYEpzc0NvbXBvbmVudEZhY3RvcnlTZXJ2aWNlOiBMYXp5IGxvYWQgbW9kdWxlIGZvciBjb21wb25lbnQgXCIke2xhenlDb21wb25lbnQucGF0aH1cIiBtaXNzaW5nIERZTkFNSUNfQ09NUE9ORU5UIHByb3ZpZGVyLiBNaXNzaW5nIEpzc01vZHVsZS5mb3JDaGlsZCgpP2BcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY29tcG9uZW50LmNvbXBvbmVudE5hbWUgaW4gZHluYW1pY0NvbXBvbmVudFR5cGUpIHtcclxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgICBjb21wb25lbnRUeXBlID0gKGR5bmFtaWNDb21wb25lbnRUeXBlIGFzIHsgW3M6IHN0cmluZ106IGFueSB9KVtjb21wb25lbnQuY29tcG9uZW50TmFtZV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgZHluYW1pY0NvbXBvbmVudFR5cGUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgY29tcG9uZW50VHlwZSA9IGR5bmFtaWNDb21wb25lbnRUeXBlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICAgIGBKc3NDb21wb25lbnRGYWN0b3J5U2VydmljZTogTGF6eSBsb2FkIG1vZHVsZSBmb3IgY29tcG9uZW50IFwiJHtsYXp5Q29tcG9uZW50LnBhdGh9XCIgbWlzc2luZyBEWU5BTUlDX0NPTVBPTkVOVCBwcm92aWRlci4gTWlzc2luZyBKc3NNb2R1bGUuZm9yQ2hpbGQoKT9gXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgY29tcG9uZW50RGVmaW5pdGlvbjogY29tcG9uZW50LFxyXG4gICAgICAgICAgY29tcG9uZW50SW1wbGVtZW50YXRpb246IGNvbXBvbmVudFR5cGUsXHJcbiAgICAgICAgICBjb21wb25lbnRNb2R1bGVSZWY6IG1vZHVsZVJlZixcclxuICAgICAgICAgIGNhbkFjdGl2YXRlOiBsYXp5Q29tcG9uZW50LmNhbkFjdGl2YXRlLFxyXG4gICAgICAgICAgcmVzb2x2ZTogbGF6eUNvbXBvbmVudC5yZXNvbHZlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xyXG4gICAgICBjb21wb25lbnREZWZpbml0aW9uOiBjb21wb25lbnQsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldENvbXBvbmVudHMoXHJcbiAgICBjb21wb25lbnRzOiBBcnJheTxDb21wb25lbnRSZW5kZXJpbmcgfCBIdG1sRWxlbWVudFJlbmRlcmluZz5cclxuICApOiBQcm9taXNlPENvbXBvbmVudEZhY3RvcnlSZXN1bHRbXT4ge1xyXG4gICAgLy8gYWNxdWlyZSBhbGwgY29tcG9uZW50cyBhbmQga2VlcCB0aGVtIGluIG9yZGVyIHdoaWxlIGhhbmRsaW5nIHRoZWlyIHBvdGVudGlhbCBhc3luYy1uZXNzXHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXHJcbiAgICAgIGNvbXBvbmVudHMubWFwKChjb21wb25lbnQpID0+XHJcbiAgICAgICAgaXNSYXdSZW5kZXJpbmcoY29tcG9uZW50KSA/IHRoaXMuZ2V0UmF3Q29tcG9uZW50KGNvbXBvbmVudCkgOiB0aGlzLmdldENvbXBvbmVudChjb21wb25lbnQpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJhd0NvbXBvbmVudChjb21wb25lbnQ6IEh0bWxFbGVtZW50UmVuZGVyaW5nKTogUHJvbWlzZTxDb21wb25lbnRGYWN0b3J5UmVzdWx0PiB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcclxuICAgICAgY29tcG9uZW50SW1wbGVtZW50YXRpb246IFJhd0NvbXBvbmVudCxcclxuICAgICAgY29tcG9uZW50RGVmaW5pdGlvbjogY29tcG9uZW50LFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==