@ngxs/store 3.7.3 → 3.7.4

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 (121) hide show
  1. package/bundles/ngxs-store-internals-testing.umd.js +114 -11
  2. package/bundles/ngxs-store-internals-testing.umd.js.map +1 -1
  3. package/bundles/ngxs-store-internals-testing.umd.min.js +1 -1
  4. package/bundles/ngxs-store-internals-testing.umd.min.js.map +1 -1
  5. package/bundles/ngxs-store-internals.umd.js +278 -91
  6. package/bundles/ngxs-store-internals.umd.js.map +1 -1
  7. package/bundles/ngxs-store-internals.umd.min.js +1 -1
  8. package/bundles/ngxs-store-internals.umd.min.js.map +1 -1
  9. package/bundles/ngxs-store.umd.js +457 -484
  10. package/bundles/ngxs-store.umd.js.map +1 -1
  11. package/bundles/ngxs-store.umd.min.js +1 -1
  12. package/bundles/ngxs-store.umd.min.js.map +1 -1
  13. package/esm2015/internals/angular.js +12 -32
  14. package/esm2015/internals/decorator-injector-adapter.js +204 -0
  15. package/esm2015/internals/index.js +2 -1
  16. package/esm2015/internals/ngxs-store-internals.js +2 -2
  17. package/esm2015/internals/testing/fresh-platform.js +46 -7
  18. package/esm2015/internals/testing/index.js +2 -1
  19. package/esm2015/internals/testing/ngxs-store-internals-testing.js +2 -2
  20. package/esm2015/internals/testing/skip-console-logging.js +62 -0
  21. package/esm2015/internals/testing/symbol.js +1 -1
  22. package/esm2015/ngxs-store.js +14 -18
  23. package/esm2015/src/configs/messages.config.js +74 -82
  24. package/esm2015/src/decorators/action.js +10 -6
  25. package/esm2015/src/decorators/select/select-factory.js +8 -5
  26. package/esm2015/src/decorators/select/select.js +39 -3
  27. package/esm2015/src/decorators/select/symbols.js +56 -12
  28. package/esm2015/src/decorators/selector/selector.js +10 -6
  29. package/esm2015/src/decorators/state.js +12 -4
  30. package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +25 -18
  31. package/esm2015/src/execution/noop-ngxs-execution-strategy.js +4 -2
  32. package/esm2015/src/execution/symbols.js +26 -3
  33. package/esm2015/src/internal/internals.js +8 -4
  34. package/esm2015/src/internal/state-factory.js +46 -26
  35. package/esm2015/src/internal/state-operations.js +47 -39
  36. package/esm2015/src/internal/state-operators.js +4 -4
  37. package/esm2015/src/internal/state-stream.js +10 -1
  38. package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +18 -30
  39. package/esm2015/src/module.js +7 -22
  40. package/esm2015/src/modules/ngxs-root.module.js +8 -8
  41. package/esm2015/src/store.js +20 -4
  42. package/esm2015/src/symbols.js +4 -5
  43. package/esm2015/src/utils/store-validators.js +24 -29
  44. package/esm5/internals/angular.js +12 -32
  45. package/esm5/internals/decorator-injector-adapter.js +204 -0
  46. package/esm5/internals/index.js +2 -1
  47. package/esm5/internals/ngxs-store-internals.js +2 -2
  48. package/esm5/internals/testing/fresh-platform.js +53 -13
  49. package/esm5/internals/testing/index.js +2 -1
  50. package/esm5/internals/testing/ngxs-store-internals-testing.js +2 -2
  51. package/esm5/internals/testing/skip-console-logging.js +62 -0
  52. package/esm5/internals/testing/symbol.js +1 -1
  53. package/esm5/ngxs-store.js +14 -18
  54. package/esm5/src/configs/messages.config.js +75 -100
  55. package/esm5/src/decorators/action.js +10 -6
  56. package/esm5/src/decorators/select/select-factory.js +8 -5
  57. package/esm5/src/decorators/select/select.js +40 -3
  58. package/esm5/src/decorators/select/symbols.js +56 -12
  59. package/esm5/src/decorators/selector/selector.js +10 -6
  60. package/esm5/src/decorators/state.js +12 -4
  61. package/esm5/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +25 -23
  62. package/esm5/src/execution/noop-ngxs-execution-strategy.js +4 -2
  63. package/esm5/src/execution/symbols.js +26 -3
  64. package/esm5/src/internal/internals.js +8 -4
  65. package/esm5/src/internal/state-factory.js +39 -27
  66. package/esm5/src/internal/state-operations.js +47 -43
  67. package/esm5/src/internal/state-operators.js +4 -4
  68. package/esm5/src/internal/state-stream.js +13 -1
  69. package/esm5/src/ivy/ivy-enabled-in-dev-mode.js +18 -30
  70. package/esm5/src/module.js +7 -22
  71. package/esm5/src/modules/ngxs-root.module.js +7 -7
  72. package/esm5/src/store.js +20 -4
  73. package/esm5/src/symbols.js +4 -5
  74. package/esm5/src/utils/store-validators.js +28 -36
  75. package/fesm2015/ngxs-store-internals-testing.js +108 -7
  76. package/fesm2015/ngxs-store-internals-testing.js.map +1 -1
  77. package/fesm2015/ngxs-store-internals.js +263 -79
  78. package/fesm2015/ngxs-store-internals.js.map +1 -1
  79. package/fesm2015/ngxs-store.js +429 -413
  80. package/fesm2015/ngxs-store.js.map +1 -1
  81. package/fesm5/ngxs-store-internals-testing.js +115 -13
  82. package/fesm5/ngxs-store-internals-testing.js.map +1 -1
  83. package/fesm5/ngxs-store-internals.js +277 -93
  84. package/fesm5/ngxs-store-internals.js.map +1 -1
  85. package/fesm5/ngxs-store.js +443 -465
  86. package/fesm5/ngxs-store.js.map +1 -1
  87. package/internals/angular.d.ts +1 -3
  88. package/internals/decorator-injector-adapter.d.ts +15 -0
  89. package/internals/index.d.ts +1 -0
  90. package/internals/ngxs-store-internals.metadata.json +1 -1
  91. package/internals/testing/fresh-platform.d.ts +1 -1
  92. package/internals/testing/index.d.ts +1 -0
  93. package/internals/testing/ngxs-store-internals-testing.metadata.json +1 -1
  94. package/internals/testing/skip-console-logging.d.ts +1 -0
  95. package/internals/testing/symbol.d.ts +1 -1
  96. package/ngxs-store.d.ts +14 -18
  97. package/ngxs-store.metadata.json +1 -1
  98. package/package.json +2 -2
  99. package/src/configs/messages.config.d.ts +11 -30
  100. package/src/decorators/select/select-factory.d.ts +2 -3
  101. package/src/decorators/select/symbols.d.ts +6 -2
  102. package/src/execution/dispatch-outside-zone-ngxs-execution-strategy.d.ts +0 -1
  103. package/src/execution/symbols.d.ts +5 -1
  104. package/src/internal/internals.d.ts +0 -1
  105. package/src/internal/state-factory.d.ts +2 -3
  106. package/src/internal/state-operations.d.ts +1 -3
  107. package/src/internal/state-stream.d.ts +3 -1
  108. package/src/ivy/ivy-enabled-in-dev-mode.d.ts +4 -12
  109. package/src/modules/ngxs-root.module.d.ts +2 -2
  110. package/src/store.d.ts +6 -0
  111. package/src/symbols.d.ts +4 -3
  112. package/src/utils/store-validators.d.ts +5 -6
  113. package/esm2015/src/host-environment/host-environment.js +0 -31
  114. package/esm2015/src/internal/config-validator.js +0 -67
  115. package/esm2015/src/ivy/ensure-state-class-is-injectable.js +0 -34
  116. package/esm5/src/host-environment/host-environment.js +0 -29
  117. package/esm5/src/internal/config-validator.js +0 -76
  118. package/esm5/src/ivy/ensure-state-class-is-injectable.js +0 -34
  119. package/src/host-environment/host-environment.d.ts +0 -6
  120. package/src/internal/config-validator.d.ts +0 -10
  121. package/src/ivy/ensure-state-class-is-injectable.d.ts +0 -6
@@ -2,86 +2,78 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
- /** @enum {string} */
6
- const VALIDATION_CODE = {
7
- STATE_NAME: 'STATE_NAME',
8
- STATE_UNIQUE: 'STATE_UNIQUE',
9
- STATE_NAME_PROPERTY: 'STATE_NAME_PROPERTY',
10
- STATE_DECORATOR: 'STATE_DECORATOR',
11
- INCORRECT_PRODUCTION: 'INCORRECT_PRODUCTION',
12
- INCORRECT_DEVELOPMENT: 'INCORRECT_DEVELOPMENT',
13
- SELECT_FACTORY_NOT_CONNECTED: 'SELECT_FACTORY_NOT_CONNECTED',
14
- ACTION_DECORATOR: 'ACTION_DECORATOR',
15
- SELECTOR_DECORATOR: 'SELECTOR_DECORATOR',
16
- ZONE_WARNING: 'ZONE_WARNING',
17
- PATCHING_ARRAY: 'PATCHING_ARRAY',
18
- PATCHING_PRIMITIVE: 'PATCHING_PRIMITIVE',
19
- UNDECORATED_STATE_IN_IVY: 'UNDECORATED_STATE_IN_IVY',
20
- };
21
- export { VALIDATION_CODE };
22
- /** @type {?} */
23
- export const CONFIG_MESSAGES = {
24
- [VALIDATION_CODE.STATE_NAME]: (/**
25
- * @param {?} name
26
- * @return {?}
27
- */
28
- (name) => `${name} is not a valid state name. It needs to be a valid object property name.`),
29
- [VALIDATION_CODE.STATE_NAME_PROPERTY]: (/**
30
- * @return {?}
31
- */
32
- () => `States must register a 'name' property`),
33
- [VALIDATION_CODE.STATE_UNIQUE]: (/**
34
- * @param {?} current
35
- * @param {?} newName
36
- * @param {?} oldName
37
- * @return {?}
38
- */
39
- (current, newName, oldName) => `State name '${current}' from ${newName} already exists in ${oldName}`),
40
- [VALIDATION_CODE.STATE_DECORATOR]: (/**
41
- * @return {?}
42
- */
43
- () => 'States must be decorated with @State() decorator'),
44
- [VALIDATION_CODE.INCORRECT_PRODUCTION]: (/**
45
- * @return {?}
46
- */
47
- () => 'Angular is running in production mode but NGXS is still running in the development mode!\n' +
48
- 'Please set developmentMode to false on the NgxsModule options when in production mode.\n' +
49
- 'NgxsModule.forRoot(states, { developmentMode: !environment.production })'),
50
- [VALIDATION_CODE.INCORRECT_DEVELOPMENT]: (/**
51
- * @return {?}
52
- */
53
- () => 'RECOMMENDATION: Set developmentMode to true on the NgxsModule when Angular is running in development mode.\n' +
54
- 'NgxsModule.forRoot(states, { developmentMode: !environment.production })'),
55
- [VALIDATION_CODE.SELECT_FACTORY_NOT_CONNECTED]: (/**
56
- * @return {?}
57
- */
58
- () => 'You have forgotten to import the NGXS module!'),
59
- [VALIDATION_CODE.ACTION_DECORATOR]: (/**
60
- * @return {?}
61
- */
62
- () => '@Action() decorator cannot be used with static methods'),
63
- [VALIDATION_CODE.SELECTOR_DECORATOR]: (/**
64
- * @return {?}
65
- */
66
- () => 'Selectors only work on methods'),
67
- [VALIDATION_CODE.ZONE_WARNING]: (/**
68
- * @return {?}
69
- */
70
- () => 'Your application was bootstrapped with nooped zone and your execution strategy requires an actual NgZone!\n' +
5
+ /**
6
+ * @param {?} name
7
+ * @return {?}
8
+ */
9
+ export function throwStateNameError(name) {
10
+ throw new Error(`${name} is not a valid state name. It needs to be a valid object property name.`);
11
+ }
12
+ /**
13
+ * @return {?}
14
+ */
15
+ export function throwStateNamePropertyError() {
16
+ throw new Error(`States must register a 'name' property.`);
17
+ }
18
+ /**
19
+ * @param {?} current
20
+ * @param {?} newName
21
+ * @param {?} oldName
22
+ * @return {?}
23
+ */
24
+ export function throwStateUniqueError(current, newName, oldName) {
25
+ throw new Error(`State name '${current}' from ${newName} already exists in ${oldName}.`);
26
+ }
27
+ /**
28
+ * @param {?} name
29
+ * @return {?}
30
+ */
31
+ export function throwStateDecoratorError(name) {
32
+ throw new Error(`States must be decorated with @State() decorator, but "${name}" isn't.`);
33
+ }
34
+ /**
35
+ * @return {?}
36
+ */
37
+ export function throwActionDecoratorError() {
38
+ throw new Error('@Action() decorator cannot be used with static methods.');
39
+ }
40
+ /**
41
+ * @return {?}
42
+ */
43
+ export function throwSelectorDecoratorError() {
44
+ throw new Error('Selectors only work on methods.');
45
+ }
46
+ /**
47
+ * @return {?}
48
+ */
49
+ export function getZoneWarningMessage() {
50
+ return ('Your application was bootstrapped with nooped zone and your execution strategy requires an actual NgZone!\n' +
71
51
  'Please set the value of the executionStrategy property to NoopNgxsExecutionStrategy.\n' +
72
- 'NgxsModule.forRoot(states, { executionStrategy: NoopNgxsExecutionStrategy })'),
73
- [VALIDATION_CODE.PATCHING_ARRAY]: (/**
74
- * @return {?}
75
- */
76
- () => 'Patching arrays is not supported.'),
77
- [VALIDATION_CODE.PATCHING_PRIMITIVE]: (/**
78
- * @return {?}
79
- */
80
- () => 'Patching primitives is not supported.'),
81
- [VALIDATION_CODE.UNDECORATED_STATE_IN_IVY]: (/**
82
- * @param {?} name
83
- * @return {?}
84
- */
85
- (name) => `'${name}' class should be decorated with @Injectable() right after the @State() decorator`)
86
- };
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvY29uZmlncy9tZXNzYWdlcy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0lBQ0UsWUFBYSxZQUFZO0lBQ3pCLGNBQWUsY0FBYztJQUM3QixxQkFBc0IscUJBQXFCO0lBQzNDLGlCQUFrQixpQkFBaUI7SUFDbkMsc0JBQXVCLHNCQUFzQjtJQUM3Qyx1QkFBd0IsdUJBQXVCO0lBQy9DLDhCQUErQiw4QkFBOEI7SUFDN0Qsa0JBQW1CLGtCQUFrQjtJQUNyQyxvQkFBcUIsb0JBQW9CO0lBQ3pDLGNBQWUsY0FBYztJQUM3QixnQkFBaUIsZ0JBQWdCO0lBQ2pDLG9CQUFxQixvQkFBb0I7SUFDekMsMEJBQTJCLDBCQUEwQjs7OztBQUd2RCxNQUFNLE9BQU8sZUFBZSxHQUFHO0lBQzdCLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQzs7OztJQUFFLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FDN0MsR0FBRyxJQUFJLDBFQUEwRSxDQUFBO0lBQ25GLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDOzs7SUFBRSxHQUFHLEVBQUUsQ0FBQyx3Q0FBd0MsQ0FBQTtJQUNyRixDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUM7Ozs7OztJQUFFLENBQUMsT0FBZSxFQUFFLE9BQWUsRUFBRSxPQUFlLEVBQUUsRUFBRSxDQUNwRixlQUFlLE9BQU8sVUFBVSxPQUFPLHNCQUFzQixPQUFPLEVBQUUsQ0FBQTtJQUN4RSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUM7OztJQUFFLEdBQUcsRUFBRSxDQUFDLGtEQUFrRCxDQUFBO0lBQzNGLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDOzs7SUFBRSxHQUFHLEVBQUUsQ0FDM0MsNEZBQTRGO1FBQzVGLDBGQUEwRjtRQUMxRiwwRUFBMEUsQ0FBQTtJQUM1RSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQzs7O0lBQUUsR0FBRyxFQUFFLENBQzVDLDhHQUE4RztRQUM5RywwRUFBMEUsQ0FBQTtJQUM1RSxDQUFDLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBQzs7O0lBQUUsR0FBRyxFQUFFLENBQ25ELCtDQUErQyxDQUFBO0lBQ2pELENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDOzs7SUFBRSxHQUFHLEVBQUUsQ0FDdkMsd0RBQXdELENBQUE7SUFDMUQsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUM7OztJQUFFLEdBQUcsRUFBRSxDQUFDLGdDQUFnQyxDQUFBO0lBQzVFLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQzs7O0lBQUUsR0FBRyxFQUFFLENBQ25DLDZHQUE2RztRQUM3Ryx3RkFBd0Y7UUFDeEYsOEVBQThFLENBQUE7SUFDaEYsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDOzs7SUFBRSxHQUFHLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQTtJQUMzRSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQzs7O0lBQUUsR0FBRyxFQUFFLENBQUMsdUNBQXVDLENBQUE7SUFDbkYsQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUM7Ozs7SUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQzNELElBQUksSUFBSSxtRkFBbUYsQ0FBQTtDQUM5RiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFZBTElEQVRJT05fQ09ERSB7XHJcbiAgU1RBVEVfTkFNRSA9ICdTVEFURV9OQU1FJyxcclxuICBTVEFURV9VTklRVUUgPSAnU1RBVEVfVU5JUVVFJyxcclxuICBTVEFURV9OQU1FX1BST1BFUlRZID0gJ1NUQVRFX05BTUVfUFJPUEVSVFknLFxyXG4gIFNUQVRFX0RFQ09SQVRPUiA9ICdTVEFURV9ERUNPUkFUT1InLFxyXG4gIElOQ09SUkVDVF9QUk9EVUNUSU9OID0gJ0lOQ09SUkVDVF9QUk9EVUNUSU9OJyxcclxuICBJTkNPUlJFQ1RfREVWRUxPUE1FTlQgPSAnSU5DT1JSRUNUX0RFVkVMT1BNRU5UJyxcclxuICBTRUxFQ1RfRkFDVE9SWV9OT1RfQ09OTkVDVEVEID0gJ1NFTEVDVF9GQUNUT1JZX05PVF9DT05ORUNURUQnLFxyXG4gIEFDVElPTl9ERUNPUkFUT1IgPSAnQUNUSU9OX0RFQ09SQVRPUicsXHJcbiAgU0VMRUNUT1JfREVDT1JBVE9SID0gJ1NFTEVDVE9SX0RFQ09SQVRPUicsXHJcbiAgWk9ORV9XQVJOSU5HID0gJ1pPTkVfV0FSTklORycsXHJcbiAgUEFUQ0hJTkdfQVJSQVkgPSAnUEFUQ0hJTkdfQVJSQVknLFxyXG4gIFBBVENISU5HX1BSSU1JVElWRSA9ICdQQVRDSElOR19QUklNSVRJVkUnLFxyXG4gIFVOREVDT1JBVEVEX1NUQVRFX0lOX0lWWSA9ICdVTkRFQ09SQVRFRF9TVEFURV9JTl9JVlknXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBDT05GSUdfTUVTU0FHRVMgPSB7XHJcbiAgW1ZBTElEQVRJT05fQ09ERS5TVEFURV9OQU1FXTogKG5hbWU6IHN0cmluZykgPT5cclxuICAgIGAke25hbWV9IGlzIG5vdCBhIHZhbGlkIHN0YXRlIG5hbWUuIEl0IG5lZWRzIHRvIGJlIGEgdmFsaWQgb2JqZWN0IHByb3BlcnR5IG5hbWUuYCxcclxuICBbVkFMSURBVElPTl9DT0RFLlNUQVRFX05BTUVfUFJPUEVSVFldOiAoKSA9PiBgU3RhdGVzIG11c3QgcmVnaXN0ZXIgYSAnbmFtZScgcHJvcGVydHlgLFxyXG4gIFtWQUxJREFUSU9OX0NPREUuU1RBVEVfVU5JUVVFXTogKGN1cnJlbnQ6IHN0cmluZywgbmV3TmFtZTogc3RyaW5nLCBvbGROYW1lOiBzdHJpbmcpID0+XHJcbiAgICBgU3RhdGUgbmFtZSAnJHtjdXJyZW50fScgZnJvbSAke25ld05hbWV9IGFscmVhZHkgZXhpc3RzIGluICR7b2xkTmFtZX1gLFxyXG4gIFtWQUxJREFUSU9OX0NPREUuU1RBVEVfREVDT1JBVE9SXTogKCkgPT4gJ1N0YXRlcyBtdXN0IGJlIGRlY29yYXRlZCB3aXRoIEBTdGF0ZSgpIGRlY29yYXRvcicsXHJcbiAgW1ZBTElEQVRJT05fQ09ERS5JTkNPUlJFQ1RfUFJPRFVDVElPTl06ICgpID0+XHJcbiAgICAnQW5ndWxhciBpcyBydW5uaW5nIGluIHByb2R1Y3Rpb24gbW9kZSBidXQgTkdYUyBpcyBzdGlsbCBydW5uaW5nIGluIHRoZSBkZXZlbG9wbWVudCBtb2RlIVxcbicgK1xyXG4gICAgJ1BsZWFzZSBzZXQgZGV2ZWxvcG1lbnRNb2RlIHRvIGZhbHNlIG9uIHRoZSBOZ3hzTW9kdWxlIG9wdGlvbnMgd2hlbiBpbiBwcm9kdWN0aW9uIG1vZGUuXFxuJyArXHJcbiAgICAnTmd4c01vZHVsZS5mb3JSb290KHN0YXRlcywgeyBkZXZlbG9wbWVudE1vZGU6ICFlbnZpcm9ubWVudC5wcm9kdWN0aW9uIH0pJyxcclxuICBbVkFMSURBVElPTl9DT0RFLklOQ09SUkVDVF9ERVZFTE9QTUVOVF06ICgpID0+XHJcbiAgICAnUkVDT01NRU5EQVRJT046IFNldCBkZXZlbG9wbWVudE1vZGUgdG8gdHJ1ZSBvbiB0aGUgTmd4c01vZHVsZSB3aGVuIEFuZ3VsYXIgaXMgcnVubmluZyBpbiBkZXZlbG9wbWVudCBtb2RlLlxcbicgK1xyXG4gICAgJ05neHNNb2R1bGUuZm9yUm9vdChzdGF0ZXMsIHsgZGV2ZWxvcG1lbnRNb2RlOiAhZW52aXJvbm1lbnQucHJvZHVjdGlvbiB9KScsXHJcbiAgW1ZBTElEQVRJT05fQ09ERS5TRUxFQ1RfRkFDVE9SWV9OT1RfQ09OTkVDVEVEXTogKCkgPT5cclxuICAgICdZb3UgaGF2ZSBmb3Jnb3R0ZW4gdG8gaW1wb3J0IHRoZSBOR1hTIG1vZHVsZSEnLFxyXG4gIFtWQUxJREFUSU9OX0NPREUuQUNUSU9OX0RFQ09SQVRPUl06ICgpID0+XHJcbiAgICAnQEFjdGlvbigpIGRlY29yYXRvciBjYW5ub3QgYmUgdXNlZCB3aXRoIHN0YXRpYyBtZXRob2RzJyxcclxuICBbVkFMSURBVElPTl9DT0RFLlNFTEVDVE9SX0RFQ09SQVRPUl06ICgpID0+ICdTZWxlY3RvcnMgb25seSB3b3JrIG9uIG1ldGhvZHMnLFxyXG4gIFtWQUxJREFUSU9OX0NPREUuWk9ORV9XQVJOSU5HXTogKCkgPT5cclxuICAgICdZb3VyIGFwcGxpY2F0aW9uIHdhcyBib290c3RyYXBwZWQgd2l0aCBub29wZWQgem9uZSBhbmQgeW91ciBleGVjdXRpb24gc3RyYXRlZ3kgcmVxdWlyZXMgYW4gYWN0dWFsIE5nWm9uZSFcXG4nICtcclxuICAgICdQbGVhc2Ugc2V0IHRoZSB2YWx1ZSBvZiB0aGUgZXhlY3V0aW9uU3RyYXRlZ3kgcHJvcGVydHkgdG8gTm9vcE5neHNFeGVjdXRpb25TdHJhdGVneS5cXG4nICtcclxuICAgICdOZ3hzTW9kdWxlLmZvclJvb3Qoc3RhdGVzLCB7IGV4ZWN1dGlvblN0cmF0ZWd5OiBOb29wTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0pJyxcclxuICBbVkFMSURBVElPTl9DT0RFLlBBVENISU5HX0FSUkFZXTogKCkgPT4gJ1BhdGNoaW5nIGFycmF5cyBpcyBub3Qgc3VwcG9ydGVkLicsXHJcbiAgW1ZBTElEQVRJT05fQ09ERS5QQVRDSElOR19QUklNSVRJVkVdOiAoKSA9PiAnUGF0Y2hpbmcgcHJpbWl0aXZlcyBpcyBub3Qgc3VwcG9ydGVkLicsXHJcbiAgW1ZBTElEQVRJT05fQ09ERS5VTkRFQ09SQVRFRF9TVEFURV9JTl9JVlldOiAobmFtZTogc3RyaW5nKSA9PlxyXG4gICAgYCcke25hbWV9JyBjbGFzcyBzaG91bGQgYmUgZGVjb3JhdGVkIHdpdGggQEluamVjdGFibGUoKSByaWdodCBhZnRlciB0aGUgQFN0YXRlKCkgZGVjb3JhdG9yYFxyXG59O1xyXG4iXX0=
52
+ 'NgxsModule.forRoot(states, { executionStrategy: NoopNgxsExecutionStrategy })');
53
+ }
54
+ /**
55
+ * @param {?} name
56
+ * @return {?}
57
+ */
58
+ export function getUndecoratedStateInIvyWarningMessage(name) {
59
+ return `'${name}' class should be decorated with @Injectable() right after the @State() decorator`;
60
+ }
61
+ /**
62
+ * @return {?}
63
+ */
64
+ export function throwSelectFactoryNotConnectedError() {
65
+ throw new Error('You have forgotten to import the NGXS module!');
66
+ }
67
+ /**
68
+ * @return {?}
69
+ */
70
+ export function throwPatchingArrayError() {
71
+ throw new Error('Patching arrays is not supported.');
72
+ }
73
+ /**
74
+ * @return {?}
75
+ */
76
+ export function throwPatchingPrimitiveError() {
77
+ throw new Error('Patching primitives is not supported.');
78
+ }
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvY29uZmlncy9tZXNzYWdlcy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBWTtJQUM5QyxNQUFNLElBQUksS0FBSyxDQUNiLEdBQUcsSUFBSSwwRUFBMEUsQ0FDbEYsQ0FBQztBQUNKLENBQUM7Ozs7QUFFRCxNQUFNLFVBQVUsMkJBQTJCO0lBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztBQUM3RCxDQUFDOzs7Ozs7O0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxPQUFlLEVBQ2YsT0FBZSxFQUNmLE9BQWU7SUFFZixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsT0FBTyxVQUFVLE9BQU8sc0JBQXNCLE9BQU8sR0FBRyxDQUFDLENBQUM7QUFDM0YsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsSUFBWTtJQUNuRCxNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxJQUFJLFVBQVUsQ0FBQyxDQUFDO0FBQzVGLENBQUM7Ozs7QUFFRCxNQUFNLFVBQVUseUJBQXlCO0lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztBQUM3RSxDQUFDOzs7O0FBRUQsTUFBTSxVQUFVLDJCQUEyQjtJQUN6QyxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7QUFDckQsQ0FBQzs7OztBQUVELE1BQU0sVUFBVSxxQkFBcUI7SUFDbkMsT0FBTyxDQUNMLDZHQUE2RztRQUM3Ryx3RkFBd0Y7UUFDeEYsOEVBQThFLENBQy9FLENBQUM7QUFDSixDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxzQ0FBc0MsQ0FBQyxJQUFZO0lBQ2pFLE9BQU8sSUFBSSxJQUFJLG1GQUFtRixDQUFDO0FBQ3JHLENBQUM7Ozs7QUFFRCxNQUFNLFVBQVUsbUNBQW1DO0lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztBQUNuRSxDQUFDOzs7O0FBRUQsTUFBTSxVQUFVLHVCQUF1QjtJQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7QUFDdkQsQ0FBQzs7OztBQUVELE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gdGhyb3dTdGF0ZU5hbWVFcnJvcihuYW1lOiBzdHJpbmcpOiBuZXZlciB7XHJcbiAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgYCR7bmFtZX0gaXMgbm90IGEgdmFsaWQgc3RhdGUgbmFtZS4gSXQgbmVlZHMgdG8gYmUgYSB2YWxpZCBvYmplY3QgcHJvcGVydHkgbmFtZS5gXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRocm93U3RhdGVOYW1lUHJvcGVydHlFcnJvcigpOiBuZXZlciB7XHJcbiAgdGhyb3cgbmV3IEVycm9yKGBTdGF0ZXMgbXVzdCByZWdpc3RlciBhICduYW1lJyBwcm9wZXJ0eS5gKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRocm93U3RhdGVVbmlxdWVFcnJvcihcclxuICBjdXJyZW50OiBzdHJpbmcsXHJcbiAgbmV3TmFtZTogc3RyaW5nLFxyXG4gIG9sZE5hbWU6IHN0cmluZ1xyXG4pOiBuZXZlciB7XHJcbiAgdGhyb3cgbmV3IEVycm9yKGBTdGF0ZSBuYW1lICcke2N1cnJlbnR9JyBmcm9tICR7bmV3TmFtZX0gYWxyZWFkeSBleGlzdHMgaW4gJHtvbGROYW1lfS5gKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRocm93U3RhdGVEZWNvcmF0b3JFcnJvcihuYW1lOiBzdHJpbmcpOiBuZXZlciB7XHJcbiAgdGhyb3cgbmV3IEVycm9yKGBTdGF0ZXMgbXVzdCBiZSBkZWNvcmF0ZWQgd2l0aCBAU3RhdGUoKSBkZWNvcmF0b3IsIGJ1dCBcIiR7bmFtZX1cIiBpc24ndC5gKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRocm93QWN0aW9uRGVjb3JhdG9yRXJyb3IoKTogbmV2ZXIge1xyXG4gIHRocm93IG5ldyBFcnJvcignQEFjdGlvbigpIGRlY29yYXRvciBjYW5ub3QgYmUgdXNlZCB3aXRoIHN0YXRpYyBtZXRob2RzLicpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dTZWxlY3RvckRlY29yYXRvckVycm9yKCk6IG5ldmVyIHtcclxuICB0aHJvdyBuZXcgRXJyb3IoJ1NlbGVjdG9ycyBvbmx5IHdvcmsgb24gbWV0aG9kcy4nKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFpvbmVXYXJuaW5nTWVzc2FnZSgpOiBzdHJpbmcge1xyXG4gIHJldHVybiAoXHJcbiAgICAnWW91ciBhcHBsaWNhdGlvbiB3YXMgYm9vdHN0cmFwcGVkIHdpdGggbm9vcGVkIHpvbmUgYW5kIHlvdXIgZXhlY3V0aW9uIHN0cmF0ZWd5IHJlcXVpcmVzIGFuIGFjdHVhbCBOZ1pvbmUhXFxuJyArXHJcbiAgICAnUGxlYXNlIHNldCB0aGUgdmFsdWUgb2YgdGhlIGV4ZWN1dGlvblN0cmF0ZWd5IHByb3BlcnR5IHRvIE5vb3BOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kuXFxuJyArXHJcbiAgICAnTmd4c01vZHVsZS5mb3JSb290KHN0YXRlcywgeyBleGVjdXRpb25TdHJhdGVneTogTm9vcE5neHNFeGVjdXRpb25TdHJhdGVneSB9KSdcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5kZWNvcmF0ZWRTdGF0ZUluSXZ5V2FybmluZ01lc3NhZ2UobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICByZXR1cm4gYCcke25hbWV9JyBjbGFzcyBzaG91bGQgYmUgZGVjb3JhdGVkIHdpdGggQEluamVjdGFibGUoKSByaWdodCBhZnRlciB0aGUgQFN0YXRlKCkgZGVjb3JhdG9yYDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRocm93U2VsZWN0RmFjdG9yeU5vdENvbm5lY3RlZEVycm9yKCk6IG5ldmVyIHtcclxuICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBoYXZlIGZvcmdvdHRlbiB0byBpbXBvcnQgdGhlIE5HWFMgbW9kdWxlIScpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dQYXRjaGluZ0FycmF5RXJyb3IoKTogbmV2ZXIge1xyXG4gIHRocm93IG5ldyBFcnJvcignUGF0Y2hpbmcgYXJyYXlzIGlzIG5vdCBzdXBwb3J0ZWQuJyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1BhdGNoaW5nUHJpbWl0aXZlRXJyb3IoKTogbmV2ZXIge1xyXG4gIHRocm93IG5ldyBFcnJvcignUGF0Y2hpbmcgcHJpbWl0aXZlcyBpcyBub3Qgc3VwcG9ydGVkLicpO1xyXG59XHJcbiJdfQ==
@@ -3,7 +3,7 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import { ensureStoreMetadata } from '../internal/internals';
6
- import { CONFIG_MESSAGES, VALIDATION_CODE } from '../configs/messages.config';
6
+ import { throwActionDecoratorError } from '../configs/messages.config';
7
7
  /**
8
8
  * Decorates a method with a action information.
9
9
  * @param {?} actions
@@ -17,10 +17,14 @@ export function Action(actions, options) {
17
17
  * @return {?}
18
18
  */
19
19
  (target, name) => {
20
- /** @type {?} */
21
- const isStaticMethod = target.hasOwnProperty('prototype');
22
- if (isStaticMethod) {
23
- throw new Error(CONFIG_MESSAGES[VALIDATION_CODE.ACTION_DECORATOR]());
20
+ // Caretaker note: we have still left the `typeof` condition in order to avoid
21
+ // creating a breaking change for projects that still use the View Engine.
22
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
23
+ /** @type {?} */
24
+ const isStaticMethod = target.hasOwnProperty('prototype');
25
+ if (isStaticMethod) {
26
+ throwActionDecoratorError();
27
+ }
24
28
  }
25
29
  /** @type {?} */
26
30
  const meta = ensureStoreMetadata(target.constructor);
@@ -41,4 +45,4 @@ export function Action(actions, options) {
41
45
  }
42
46
  });
43
47
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvZGVjb3JhdG9ycy9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFLOUUsTUFBTSxVQUFVLE1BQU0sQ0FDcEIsT0FBa0MsRUFDbEMsT0FBdUI7SUFFdkI7Ozs7O0lBQU8sQ0FBQyxNQUFXLEVBQUUsSUFBcUIsRUFBUSxFQUFFOztjQUM1QyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7UUFFekQsSUFBSSxjQUFjLEVBQUU7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3RFOztjQUVLLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBRXBELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzNCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3JCO1FBRUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUU7O2tCQUN0QixJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUk7WUFFeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ3pCO1lBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCLEVBQUUsRUFBRSxJQUFJO2dCQUNSLE9BQU8sRUFBRSxPQUFPLElBQUksRUFBRTtnQkFDdEIsSUFBSTthQUNMLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuc3VyZVN0b3JlTWV0YWRhdGEgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xyXG5pbXBvcnQgeyBBY3Rpb25UeXBlLCBBY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy9zeW1ib2xzJztcclxuaW1wb3J0IHsgQ09ORklHX01FU1NBR0VTLCBWQUxJREFUSU9OX0NPREUgfSBmcm9tICcuLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XHJcblxyXG4vKipcclxuICogRGVjb3JhdGVzIGEgbWV0aG9kIHdpdGggYSBhY3Rpb24gaW5mb3JtYXRpb24uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gQWN0aW9uKFxyXG4gIGFjdGlvbnM6IEFjdGlvblR5cGUgfCBBY3Rpb25UeXBlW10sXHJcbiAgb3B0aW9ucz86IEFjdGlvbk9wdGlvbnNcclxuKTogTWV0aG9kRGVjb3JhdG9yIHtcclxuICByZXR1cm4gKHRhcmdldDogYW55LCBuYW1lOiBzdHJpbmcgfCBzeW1ib2wpOiB2b2lkID0+IHtcclxuICAgIGNvbnN0IGlzU3RhdGljTWV0aG9kID0gdGFyZ2V0Lmhhc093blByb3BlcnR5KCdwcm90b3R5cGUnKTtcclxuXHJcbiAgICBpZiAoaXNTdGF0aWNNZXRob2QpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKENPTkZJR19NRVNTQUdFU1tWQUxJREFUSU9OX0NPREUuQUNUSU9OX0RFQ09SQVRPUl0oKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWV0YSA9IGVuc3VyZVN0b3JlTWV0YWRhdGEodGFyZ2V0LmNvbnN0cnVjdG9yKTtcclxuXHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWN0aW9ucykpIHtcclxuICAgICAgYWN0aW9ucyA9IFthY3Rpb25zXTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiBhY3Rpb25zKSB7XHJcbiAgICAgIGNvbnN0IHR5cGUgPSBhY3Rpb24udHlwZTtcclxuXHJcbiAgICAgIGlmICghbWV0YS5hY3Rpb25zW3R5cGVdKSB7XHJcbiAgICAgICAgbWV0YS5hY3Rpb25zW3R5cGVdID0gW107XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG1ldGEuYWN0aW9uc1t0eXBlXS5wdXNoKHtcclxuICAgICAgICBmbjogbmFtZSxcclxuICAgICAgICBvcHRpb25zOiBvcHRpb25zIHx8IHt9LFxyXG4gICAgICAgIHR5cGVcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfTtcclxufVxyXG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvZGVjb3JhdG9ycy9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBS3ZFLE1BQU0sVUFBVSxNQUFNLENBQ3BCLE9BQWtDLEVBQ2xDLE9BQXVCO0lBRXZCOzs7OztJQUFPLENBQUMsTUFBVyxFQUFFLElBQXFCLEVBQVEsRUFBRTtRQUNsRCw4RUFBOEU7UUFDOUUsMEVBQTBFO1FBQzFFLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRTs7a0JBQzNDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztZQUV6RCxJQUFJLGNBQWMsRUFBRTtnQkFDbEIseUJBQXlCLEVBQUUsQ0FBQzthQUM3QjtTQUNGOztjQUVLLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBRXBELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzNCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3JCO1FBRUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUU7O2tCQUN0QixJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUk7WUFFeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ3pCO1lBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCLEVBQUUsRUFBRSxJQUFJO2dCQUNSLE9BQU8sRUFBRSxPQUFPLElBQUksRUFBRTtnQkFDdEIsSUFBSTthQUNMLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuc3VyZVN0b3JlTWV0YWRhdGEgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xyXG5pbXBvcnQgeyBBY3Rpb25UeXBlLCBBY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy9zeW1ib2xzJztcclxuaW1wb3J0IHsgdGhyb3dBY3Rpb25EZWNvcmF0b3JFcnJvciB9IGZyb20gJy4uL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnJztcclxuXHJcbi8qKlxyXG4gKiBEZWNvcmF0ZXMgYSBtZXRob2Qgd2l0aCBhIGFjdGlvbiBpbmZvcm1hdGlvbi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBBY3Rpb24oXHJcbiAgYWN0aW9uczogQWN0aW9uVHlwZSB8IEFjdGlvblR5cGVbXSxcclxuICBvcHRpb25zPzogQWN0aW9uT3B0aW9uc1xyXG4pOiBNZXRob2REZWNvcmF0b3Ige1xyXG4gIHJldHVybiAodGFyZ2V0OiBhbnksIG5hbWU6IHN0cmluZyB8IHN5bWJvbCk6IHZvaWQgPT4ge1xyXG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IHdlIGhhdmUgc3RpbGwgbGVmdCB0aGUgYHR5cGVvZmAgY29uZGl0aW9uIGluIG9yZGVyIHRvIGF2b2lkXHJcbiAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxyXG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xyXG4gICAgICBjb25zdCBpc1N0YXRpY01ldGhvZCA9IHRhcmdldC5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJyk7XHJcblxyXG4gICAgICBpZiAoaXNTdGF0aWNNZXRob2QpIHtcclxuICAgICAgICB0aHJvd0FjdGlvbkRlY29yYXRvckVycm9yKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtZXRhID0gZW5zdXJlU3RvcmVNZXRhZGF0YSh0YXJnZXQuY29uc3RydWN0b3IpO1xyXG5cclxuICAgIGlmICghQXJyYXkuaXNBcnJheShhY3Rpb25zKSkge1xyXG4gICAgICBhY3Rpb25zID0gW2FjdGlvbnNdO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIGFjdGlvbnMpIHtcclxuICAgICAgY29uc3QgdHlwZSA9IGFjdGlvbi50eXBlO1xyXG5cclxuICAgICAgaWYgKCFtZXRhLmFjdGlvbnNbdHlwZV0pIHtcclxuICAgICAgICBtZXRhLmFjdGlvbnNbdHlwZV0gPSBbXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbWV0YS5hY3Rpb25zW3R5cGVdLnB1c2goe1xyXG4gICAgICAgIGZuOiBuYW1lLFxyXG4gICAgICAgIG9wdGlvbnM6IG9wdGlvbnMgfHwge30sXHJcbiAgICAgICAgdHlwZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -5,10 +5,12 @@
5
5
  import { Injectable } from '@angular/core';
6
6
  import { Store } from '../../store';
7
7
  import { NgxsConfig } from '../../symbols';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../store";
10
+ import * as i2 from "../../symbols";
8
11
  /**
9
- * Allows the select decorator to get access to the DI store.
10
- * \@internal only use in \@Select decorator
11
- * @ignore
12
+ * Allows the select decorator to get access to the DI store, this is used internally
13
+ * in `\@Select` decorator.
12
14
  */
13
15
  export class SelectFactory {
14
16
  /**
@@ -30,17 +32,18 @@ export class SelectFactory {
30
32
  SelectFactory.store = null;
31
33
  SelectFactory.config = null;
32
34
  SelectFactory.decorators = [
33
- { type: Injectable }
35
+ { type: Injectable, args: [{ providedIn: 'root' },] }
34
36
  ];
35
37
  /** @nocollapse */
36
38
  SelectFactory.ctorParameters = () => [
37
39
  { type: Store },
38
40
  { type: NgxsConfig }
39
41
  ];
42
+ /** @nocollapse */ SelectFactory.ngInjectableDef = i0.defineInjectable({ factory: function SelectFactory_Factory() { return new SelectFactory(i0.inject(i1.Store), i0.inject(i2.NgxsConfig)); }, token: SelectFactory, providedIn: "root" });
40
43
  if (false) {
41
44
  /** @type {?} */
42
45
  SelectFactory.store;
43
46
  /** @type {?} */
44
47
  SelectFactory.config;
45
48
  }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZhY3RvcnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9kZWNvcmF0b3JzL3NlbGVjdC9zZWxlY3QtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVEzQyxNQUFNLE9BQU8sYUFBYTs7Ozs7SUFJeEIsWUFBWSxLQUFZLEVBQUUsTUFBa0I7UUFDMUMsYUFBYSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDNUIsYUFBYSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDaEMsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUMzQixhQUFhLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDOztBQVhhLG1CQUFLLEdBQWlCLElBQUksQ0FBQztBQUMzQixvQkFBTSxHQUFzQixJQUFJLENBQUM7O1lBSGhELFVBQVU7Ozs7WUFSRixLQUFLO1lBQ0wsVUFBVTs7OztJQVNqQixvQkFBeUM7O0lBQ3pDLHFCQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICcuLi8uLi9zdG9yZSc7XHJcbmltcG9ydCB7IE5neHNDb25maWcgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcclxuXHJcbi8qKlxyXG4gKiBBbGxvd3MgdGhlIHNlbGVjdCBkZWNvcmF0b3IgdG8gZ2V0IGFjY2VzcyB0byB0aGUgREkgc3RvcmUuXHJcbiAqIEBpbnRlcm5hbCBvbmx5IHVzZSBpbiBAU2VsZWN0IGRlY29yYXRvclxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RGYWN0b3J5IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwdWJsaWMgc3RhdGljIHN0b3JlOiBTdG9yZSB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBzdGF0aWMgY29uZmlnOiBOZ3hzQ29uZmlnIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTdG9yZSwgY29uZmlnOiBOZ3hzQ29uZmlnKSB7XHJcbiAgICBTZWxlY3RGYWN0b3J5LnN0b3JlID0gc3RvcmU7XHJcbiAgICBTZWxlY3RGYWN0b3J5LmNvbmZpZyA9IGNvbmZpZztcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgU2VsZWN0RmFjdG9yeS5zdG9yZSA9IG51bGw7XHJcbiAgICBTZWxlY3RGYWN0b3J5LmNvbmZpZyA9IG51bGw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZhY3RvcnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9kZWNvcmF0b3JzL3NlbGVjdC9zZWxlY3QtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBTzNDLE1BQU0sT0FBTyxhQUFhOzs7OztJQUl4QixZQUFZLEtBQVksRUFBRSxNQUFrQjtRQUMxQyxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUM1QixhQUFhLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNoQyxDQUFDOzs7O0lBRUQsV0FBVztRQUNULGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQzNCLGFBQWEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7O0FBWGEsbUJBQUssR0FBaUIsSUFBSSxDQUFDO0FBQzNCLG9CQUFNLEdBQXNCLElBQUksQ0FBQzs7WUFIaEQsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7OztZQVB6QixLQUFLO1lBQ0wsVUFBVTs7Ozs7SUFRakIsb0JBQXlDOztJQUN6QyxxQkFBK0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnLi4vLi4vc3RvcmUnO1xyXG5pbXBvcnQgeyBOZ3hzQ29uZmlnIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XHJcblxyXG4vKipcclxuICogQWxsb3dzIHRoZSBzZWxlY3QgZGVjb3JhdG9yIHRvIGdldCBhY2Nlc3MgdG8gdGhlIERJIHN0b3JlLCB0aGlzIGlzIHVzZWQgaW50ZXJuYWxseVxyXG4gKiBpbiBgQFNlbGVjdGAgZGVjb3JhdG9yLlxyXG4gKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdEZhY3RvcnkgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBzdGF0aWMgc3RvcmU6IFN0b3JlIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIHN0YXRpYyBjb25maWc6IE5neHNDb25maWcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3Ioc3RvcmU6IFN0b3JlLCBjb25maWc6IE5neHNDb25maWcpIHtcclxuICAgIFNlbGVjdEZhY3Rvcnkuc3RvcmUgPSBzdG9yZTtcclxuICAgIFNlbGVjdEZhY3RvcnkuY29uZmlnID0gY29uZmlnO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBTZWxlY3RGYWN0b3J5LnN0b3JlID0gbnVsbDtcclxuICAgIFNlbGVjdEZhY3RvcnkuY29uZmlnID0gbnVsbDtcclxuICB9XHJcbn1cclxuIl19
@@ -2,6 +2,11 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
+ import { ɵivyEnabled } from '@angular/core';
6
+ import { mergeMap } from 'rxjs/operators';
7
+ import { localInject, ensureLocalInjectorCaptured, ensureInjectorNotifierIsCaptured } from '@ngxs/store/internals';
8
+ import { Store } from '../../store';
9
+ import { NgxsConfig } from '../../symbols';
5
10
  import { createSelectObservable, createSelectorFn } from './symbols';
6
11
  /**
7
12
  * Decorator for selecting a slice of state from the store.
@@ -22,7 +27,12 @@ export function Select(rawSelector, ...paths) {
22
27
  /** @type {?} */
23
28
  const selectorId = `__${name}__selector`;
24
29
  /** @type {?} */
25
- const selector = createSelectorFn(name, rawSelector, paths);
30
+ let selector = null;
31
+ /** @type {?} */
32
+ let injectorNotifier$ = null;
33
+ if (ɵivyEnabled) {
34
+ injectorNotifier$ = ensureInjectorNotifierIsCaptured(target);
35
+ }
26
36
  Object.defineProperties(target, {
27
37
  [selectorId]: {
28
38
  writable: true,
@@ -36,10 +46,36 @@ export function Select(rawSelector, ...paths) {
36
46
  * @return {?}
37
47
  */
38
48
  get() {
39
- return this[selectorId] || (this[selectorId] = createSelectObservable(selector));
49
+ if (this[selectorId]) {
50
+ return this[selectorId];
51
+ }
52
+ // The `localInject` will be tree-shaken away in apps that
53
+ // still use the View Engine.
54
+ if (ɵivyEnabled) {
55
+ this[selectorId] = (/** @type {?} */ (injectorNotifier$)).pipe(mergeMap((/**
56
+ * @return {?}
57
+ */
58
+ () => {
59
+ /** @type {?} */
60
+ const store = localInject(this, Store);
61
+ /** @type {?} */
62
+ const config = localInject(this, NgxsConfig);
63
+ selector = selector || createSelectorFn(config, name, rawSelector, paths);
64
+ return createSelectObservable(selector, store);
65
+ })));
66
+ }
67
+ else {
68
+ selector = selector || createSelectorFn(null, name, rawSelector, paths);
69
+ this[selectorId] = createSelectObservable(selector, null);
70
+ }
71
+ return this[selectorId];
40
72
  }
41
73
  }
42
74
  });
75
+ // Keep this `if` guard here so the below stuff will be tree-shaken away in apps that still use the View Engine.
76
+ if (ɵivyEnabled) {
77
+ ensureLocalInjectorCaptured(target);
78
+ }
43
79
  });
44
80
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvZGVjb3JhdG9ycy9zZWxlY3Qvc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sV0FBVyxDQUFDOzs7Ozs7OztBQUtuRixNQUFNLFVBQVUsTUFBTSxDQUFJLFdBQWUsRUFBRSxHQUFHLEtBQWU7SUFDM0Q7Ozs7O0lBQU8sVUFBUyxNQUFNLEVBQUUsR0FBRzs7Y0FDbkIsSUFBSSxHQUFXLEdBQUcsQ0FBQyxRQUFRLEVBQUU7O2NBQzdCLFVBQVUsR0FBRyxLQUFLLElBQUksWUFBWTs7Y0FDbEMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDO1FBRTNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDOUIsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDWixRQUFRLEVBQUUsSUFBSTtnQkFDZCxVQUFVLEVBQUUsS0FBSztnQkFDakIsWUFBWSxFQUFFLElBQUk7YUFDbkI7WUFDRCxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNOLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixZQUFZLEVBQUUsSUFBSTs7OztnQkFDbEIsR0FBRztvQkFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNuRixDQUFDO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlU2VsZWN0T2JzZXJ2YWJsZSwgY3JlYXRlU2VsZWN0b3JGbiwgUHJvcGVydHlUeXBlIH0gZnJvbSAnLi9zeW1ib2xzJztcclxuXHJcbi8qKlxyXG4gKiBEZWNvcmF0b3IgZm9yIHNlbGVjdGluZyBhIHNsaWNlIG9mIHN0YXRlIGZyb20gdGhlIHN0b3JlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdDxUPihyYXdTZWxlY3Rvcj86IFQsIC4uLnBhdGhzOiBzdHJpbmdbXSk6IFByb3BlcnR5RGVjb3JhdG9yIHtcclxuICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0LCBrZXkpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IGtleS50b1N0cmluZygpO1xyXG4gICAgY29uc3Qgc2VsZWN0b3JJZCA9IGBfXyR7bmFtZX1fX3NlbGVjdG9yYDtcclxuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3JGbihuYW1lLCByYXdTZWxlY3RvciwgcGF0aHMpO1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwge1xyXG4gICAgICBbc2VsZWN0b3JJZF06IHtcclxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgICAgfSxcclxuICAgICAgW25hbWVdOiB7XHJcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXHJcbiAgICAgICAgZ2V0KCk6IFByb3BlcnR5VHlwZTxUPiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpc1tzZWxlY3RvcklkXSB8fCAodGhpc1tzZWxlY3RvcklkXSA9IGNyZWF0ZVNlbGVjdE9ic2VydmFibGUoc2VsZWN0b3IpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH07XHJcbn1cclxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvZGVjb3JhdG9ycy9zZWxlY3Qvc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsV0FBVyxFQUNYLDJCQUEyQixFQUMzQixnQ0FBZ0MsRUFDakMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFjLE1BQU0sV0FBVyxDQUFDOzs7Ozs7OztBQUtqRixNQUFNLFVBQVUsTUFBTSxDQUFJLFdBQWUsRUFBRSxHQUFHLEtBQWU7SUFDM0Q7Ozs7O0lBQU8sVUFBUyxNQUFNLEVBQUUsR0FBRzs7Y0FDbkIsSUFBSSxHQUFXLEdBQUcsQ0FBQyxRQUFRLEVBQUU7O2NBQzdCLFVBQVUsR0FBRyxLQUFLLElBQUksWUFBWTs7WUFDcEMsUUFBUSxHQUFzQixJQUFJOztZQUNsQyxpQkFBaUIsR0FBa0MsSUFBSTtRQUUzRCxJQUFJLFdBQVcsRUFBRTtZQUNmLGlCQUFpQixHQUFHLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzlEO1FBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUM5QixDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNaLFFBQVEsRUFBRSxJQUFJO2dCQUNkLFVBQVUsRUFBRSxLQUFLO2dCQUNqQixZQUFZLEVBQUUsSUFBSTthQUNuQjtZQUNELENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ04sVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFlBQVksRUFBRSxJQUFJOzs7O2dCQUNsQixHQUFHO29CQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO3dCQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztxQkFDekI7b0JBQ0QsMERBQTBEO29CQUMxRCw2QkFBNkI7b0JBQzdCLElBQUksV0FBVyxFQUFFO3dCQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxtQkFBQSxpQkFBaUIsRUFBQyxDQUFDLElBQUksQ0FDeEMsUUFBUTs7O3dCQUFDLEdBQUcsRUFBRTs7a0NBQ04sS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDOztrQ0FDaEMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDOzRCQUM1QyxRQUFRLEdBQUcsUUFBUSxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDOzRCQUMxRSxPQUFPLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDakQsQ0FBQyxFQUFDLENBQ0gsQ0FBQztxQkFDSDt5QkFBTTt3QkFDTCxRQUFRLEdBQUcsUUFBUSxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO3dCQUN4RSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO3FCQUMzRDtvQkFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDMUIsQ0FBQzthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsZ0hBQWdIO1FBQ2hILElBQUksV0FBVyxFQUFFO1lBQ2YsMkJBQTJCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgybVpdnlFbmFibGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7XHJcbiAgbG9jYWxJbmplY3QsXHJcbiAgZW5zdXJlTG9jYWxJbmplY3RvckNhcHR1cmVkLFxyXG4gIGVuc3VyZUluamVjdG9yTm90aWZpZXJJc0NhcHR1cmVkXHJcbn0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcclxuXHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnLi4vLi4vc3RvcmUnO1xyXG5pbXBvcnQgeyBOZ3hzQ29uZmlnIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XHJcbmltcG9ydCB7IGNyZWF0ZVNlbGVjdE9ic2VydmFibGUsIGNyZWF0ZVNlbGVjdG9yRm4sIFNlbGVjdG9yRm4gfSBmcm9tICcuL3N5bWJvbHMnO1xyXG5cclxuLyoqXHJcbiAqIERlY29yYXRvciBmb3Igc2VsZWN0aW5nIGEgc2xpY2Ugb2Ygc3RhdGUgZnJvbSB0aGUgc3RvcmUuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0PFQ+KHJhd1NlbGVjdG9yPzogVCwgLi4ucGF0aHM6IHN0cmluZ1tdKTogUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gIHJldHVybiBmdW5jdGlvbih0YXJnZXQsIGtleSk6IHZvaWQge1xyXG4gICAgY29uc3QgbmFtZTogc3RyaW5nID0ga2V5LnRvU3RyaW5nKCk7XHJcbiAgICBjb25zdCBzZWxlY3RvcklkID0gYF9fJHtuYW1lfV9fc2VsZWN0b3JgO1xyXG4gICAgbGV0IHNlbGVjdG9yOiBTZWxlY3RvckZuIHwgbnVsbCA9IG51bGw7XHJcbiAgICBsZXQgaW5qZWN0b3JOb3RpZmllciQ6IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBpZiAoybVpdnlFbmFibGVkKSB7XHJcbiAgICAgIGluamVjdG9yTm90aWZpZXIkID0gZW5zdXJlSW5qZWN0b3JOb3RpZmllcklzQ2FwdHVyZWQodGFyZ2V0KTtcclxuICAgIH1cclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHtcclxuICAgICAgW3NlbGVjdG9ySWRdOiB7XHJcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXHJcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXHJcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXHJcbiAgICAgIH0sXHJcbiAgICAgIFtuYW1lXToge1xyXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxyXG4gICAgICAgIGdldCgpIHtcclxuICAgICAgICAgIGlmICh0aGlzW3NlbGVjdG9ySWRdKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzW3NlbGVjdG9ySWRdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gVGhlIGBsb2NhbEluamVjdGAgd2lsbCBiZSB0cmVlLXNoYWtlbiBhd2F5IGluIGFwcHMgdGhhdFxyXG4gICAgICAgICAgLy8gc3RpbGwgdXNlIHRoZSBWaWV3IEVuZ2luZS5cclxuICAgICAgICAgIGlmICjJtWl2eUVuYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpc1tzZWxlY3RvcklkXSA9IGluamVjdG9yTm90aWZpZXIkIS5waXBlKFxyXG4gICAgICAgICAgICAgIG1lcmdlTWFwKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN0b3JlID0gbG9jYWxJbmplY3QodGhpcywgU3RvcmUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gbG9jYWxJbmplY3QodGhpcywgTmd4c0NvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICBzZWxlY3RvciA9IHNlbGVjdG9yIHx8IGNyZWF0ZVNlbGVjdG9yRm4oY29uZmlnLCBuYW1lLCByYXdTZWxlY3RvciwgcGF0aHMpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVNlbGVjdE9ic2VydmFibGUoc2VsZWN0b3IsIHN0b3JlKTtcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvciB8fCBjcmVhdGVTZWxlY3RvckZuKG51bGwsIG5hbWUsIHJhd1NlbGVjdG9yLCBwYXRocyk7XHJcbiAgICAgICAgICAgIHRoaXNbc2VsZWN0b3JJZF0gPSBjcmVhdGVTZWxlY3RPYnNlcnZhYmxlKHNlbGVjdG9yLCBudWxsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB0aGlzW3NlbGVjdG9ySWRdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gS2VlcCB0aGlzIGBpZmAgZ3VhcmQgaGVyZSBzbyB0aGUgYmVsb3cgc3R1ZmYgd2lsbCBiZSB0cmVlLXNoYWtlbiBhd2F5IGluIGFwcHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxyXG4gICAgaWYgKMm1aXZ5RW5hYmxlZCkge1xyXG4gICAgICBlbnN1cmVMb2NhbEluamVjdG9yQ2FwdHVyZWQodGFyZ2V0KTtcclxuICAgIH1cclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -2,38 +2,46 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
- import { CONFIG_MESSAGES, VALIDATION_CODE } from '../../configs/messages.config';
5
+ import { ɵivyEnabled } from '@angular/core';
6
6
  import { propGetter } from '../../internal/internals';
7
7
  import { SelectFactory } from './select-factory';
8
+ import { throwSelectFactoryNotConnectedError } from '../../configs/messages.config';
8
9
  /** @type {?} */
9
10
  const DOLLAR_CHAR_CODE = 36;
10
11
  /**
11
12
  * @template T
12
13
  * @param {?} selector
14
+ * @param {?} store
13
15
  * @return {?}
14
16
  */
15
- export function createSelectObservable(selector) {
16
- if (!SelectFactory.store) {
17
- throw new Error(CONFIG_MESSAGES[VALIDATION_CODE.SELECT_FACTORY_NOT_CONNECTED]());
18
- }
19
- return SelectFactory.store.select(selector);
17
+ export function createSelectObservable(selector, store) {
18
+ // We're doing this stuff to tree-shake the `SelectFactory` when the user
19
+ // is running Ivy since NGXS will select the state from the provided `store` argument.
20
+ return ɵivyEnabled
21
+ ? createSelectObservableIvy(selector, store)
22
+ : createSelectObservableViewEngine(selector);
20
23
  }
21
24
  /**
25
+ * @param {?} config
22
26
  * @param {?} name
23
27
  * @param {?=} rawSelector
24
28
  * @param {?=} paths
25
29
  * @return {?}
26
30
  */
27
- export function createSelectorFn(name, rawSelector, paths = []) {
28
- rawSelector = !rawSelector ? removeDollarAtTheEnd(name) : rawSelector;
29
- if (typeof rawSelector === 'string') {
31
+ export function createSelectorFn(config, name, rawSelector, paths = []) {
32
+ rawSelector = rawSelector || removeDollarAtTheEnd(name);
33
+ if (typeof rawSelector !== 'string') {
34
+ return rawSelector;
35
+ }
36
+ else {
30
37
  /** @type {?} */
31
38
  const propsArray = paths.length
32
39
  ? [rawSelector, ...paths]
33
40
  : rawSelector.split('.');
34
- return propGetter(propsArray, (/** @type {?} */ (SelectFactory.config)));
41
+ return ɵivyEnabled
42
+ ? createSelectorFnIvy(propsArray, config)
43
+ : createSelectorFnViewEngine(propsArray);
35
44
  }
36
- return rawSelector;
37
45
  }
38
46
  /**
39
47
  * \@example If `foo$` => make it just `foo`
@@ -47,4 +55,40 @@ export function removeDollarAtTheEnd(name) {
47
55
  const dollarAtTheEnd = name.charCodeAt(lastCharIndex) === DOLLAR_CHAR_CODE;
48
56
  return dollarAtTheEnd ? name.slice(0, lastCharIndex) : name;
49
57
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2RlY29yYXRvcnMvc2VsZWN0L3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7TUFJM0MsZ0JBQWdCLEdBQUcsRUFBRTs7Ozs7O0FBRTNCLE1BQU0sVUFBVSxzQkFBc0IsQ0FBVSxRQUFhO0lBQzNELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNsRjtJQUVELE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDOUMsQ0FBQzs7Ozs7OztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsV0FBaUIsRUFBRSxRQUFrQixFQUFFO0lBQ3BGLFdBQVcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUV0RSxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTs7Y0FDN0IsVUFBVSxHQUFhLEtBQUssQ0FBQyxNQUFNO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQztZQUN6QixDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDMUIsT0FBTyxVQUFVLENBQUMsVUFBVSxFQUFFLG1CQUFBLGFBQWEsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO0tBQ3REO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQzs7Ozs7O0FBS0QsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQVk7O1VBQ3pDLGFBQWEsR0FBVyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7O1VBQ3ZDLGNBQWMsR0FBWSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLGdCQUFnQjtJQUNuRixPQUFPLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQ09ORklHX01FU1NBR0VTLCBWQUxJREFUSU9OX0NPREUgfSBmcm9tICcuLi8uLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XHJcbmltcG9ydCB7IHByb3BHZXR0ZXIgfSBmcm9tICcuLi8uLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xyXG5pbXBvcnQgeyBTZWxlY3RGYWN0b3J5IH0gZnJvbSAnLi9zZWxlY3QtZmFjdG9yeSc7XHJcbmltcG9ydCB7IFN0YXRlVG9rZW4gfSBmcm9tICcuLi8uLi9zdGF0ZS10b2tlbi9zdGF0ZS10b2tlbic7XHJcbmltcG9ydCB7IEV4dHJhY3RUb2tlblR5cGUgfSBmcm9tICcuLi8uLi9zdGF0ZS10b2tlbi9zeW1ib2xzJztcclxuXHJcbmNvbnN0IERPTExBUl9DSEFSX0NPREUgPSAzNjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWxlY3RPYnNlcnZhYmxlPFQgPSBhbnk+KHNlbGVjdG9yOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICBpZiAoIVNlbGVjdEZhY3Rvcnkuc3RvcmUpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihDT05GSUdfTUVTU0FHRVNbVkFMSURBVElPTl9DT0RFLlNFTEVDVF9GQUNUT1JZX05PVF9DT05ORUNURURdKCkpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIFNlbGVjdEZhY3Rvcnkuc3RvcmUuc2VsZWN0KHNlbGVjdG9yKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdG9yRm4obmFtZTogc3RyaW5nLCByYXdTZWxlY3Rvcj86IGFueSwgcGF0aHM6IHN0cmluZ1tdID0gW10pOiBhbnkge1xyXG4gIHJhd1NlbGVjdG9yID0gIXJhd1NlbGVjdG9yID8gcmVtb3ZlRG9sbGFyQXRUaGVFbmQobmFtZSkgOiByYXdTZWxlY3RvcjtcclxuXHJcbiAgaWYgKHR5cGVvZiByYXdTZWxlY3RvciA9PT0gJ3N0cmluZycpIHtcclxuICAgIGNvbnN0IHByb3BzQXJyYXk6IHN0cmluZ1tdID0gcGF0aHMubGVuZ3RoXHJcbiAgICAgID8gW3Jhd1NlbGVjdG9yLCAuLi5wYXRoc11cclxuICAgICAgOiByYXdTZWxlY3Rvci5zcGxpdCgnLicpO1xyXG4gICAgcmV0dXJuIHByb3BHZXR0ZXIocHJvcHNBcnJheSwgU2VsZWN0RmFjdG9yeS5jb25maWchKTtcclxuICB9XHJcblxyXG4gIHJldHVybiByYXdTZWxlY3RvcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBleGFtcGxlIElmIGBmb28kYCA9PiBtYWtlIGl0IGp1c3QgYGZvb2BcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVEb2xsYXJBdFRoZUVuZChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGNvbnN0IGxhc3RDaGFySW5kZXg6IG51bWJlciA9IG5hbWUubGVuZ3RoIC0gMTtcclxuICBjb25zdCBkb2xsYXJBdFRoZUVuZDogYm9vbGVhbiA9IG5hbWUuY2hhckNvZGVBdChsYXN0Q2hhckluZGV4KSA9PT0gRE9MTEFSX0NIQVJfQ09ERTtcclxuICByZXR1cm4gZG9sbGFyQXRUaGVFbmQgPyBuYW1lLnNsaWNlKDAsIGxhc3RDaGFySW5kZXgpIDogbmFtZTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJvcGVydHlUeXBlPFQ+ID0gVCBleHRlbmRzIFN0YXRlVG9rZW48YW55PlxyXG4gID8gT2JzZXJ2YWJsZTxFeHRyYWN0VG9rZW5UeXBlPFQ+PlxyXG4gIDogVCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55XHJcbiAgPyBPYnNlcnZhYmxlPFJldHVyblR5cGU8VD4+XHJcbiAgOiBhbnk7XHJcbiJdfQ==
58
+ /**
59
+ * @template T
60
+ * @param {?} selector
61
+ * @param {?} store
62
+ * @return {?}
63
+ */
64
+ function createSelectObservableIvy(selector, store) {
65
+ return ngDevMode && !store ? throwSelectFactoryNotConnectedError() : (/** @type {?} */ (store)).select(selector);
66
+ }
67
+ /**
68
+ * @template T
69
+ * @param {?} selector
70
+ * @return {?}
71
+ */
72
+ function createSelectObservableViewEngine(selector) {
73
+ return SelectFactory.store
74
+ ? SelectFactory.store.select(selector)
75
+ : throwSelectFactoryNotConnectedError();
76
+ }
77
+ /**
78
+ * @param {?} propsArray
79
+ * @param {?} config
80
+ * @return {?}
81
+ */
82
+ function createSelectorFnIvy(propsArray, config) {
83
+ return ngDevMode && !config
84
+ ? throwSelectFactoryNotConnectedError()
85
+ : propGetter(propsArray, (/** @type {?} */ (config)));
86
+ }
87
+ /**
88
+ * @param {?} propsArray
89
+ * @return {?}
90
+ */
91
+ function createSelectorFnViewEngine(propsArray) {
92
+ return propGetter(propsArray, (/** @type {?} */ (SelectFactory.config)));
93
+ }
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2RlY29yYXRvcnMvc2VsZWN0L3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBUSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdqRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7TUFFOUUsZ0JBQWdCLEdBQUcsRUFBRTs7Ozs7OztBQUUzQixNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLFFBQWEsRUFDYixLQUFtQjtJQUVuQix5RUFBeUU7SUFDekUsc0ZBQXNGO0lBQ3RGLE9BQU8sV0FBVztRQUNoQixDQUFDLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztRQUM1QyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakQsQ0FBQzs7Ozs7Ozs7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE1BQXlCLEVBQ3pCLElBQVksRUFDWixXQUFpQixFQUNqQixRQUFrQixFQUFFO0lBRXBCLFdBQVcsR0FBRyxXQUFXLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFeEQsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUU7UUFDbkMsT0FBTyxXQUFXLENBQUM7S0FDcEI7U0FBTTs7Y0FDQyxVQUFVLEdBQWEsS0FBSyxDQUFDLE1BQU07WUFDdkMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUUxQixPQUFPLFdBQVc7WUFDaEIsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUM7WUFDekMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQzVDO0FBQ0gsQ0FBQzs7Ozs7O0FBS0QsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQVk7O1VBQ3pDLGFBQWEsR0FBVyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7O1VBQ3ZDLGNBQWMsR0FBWSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLGdCQUFnQjtJQUNuRixPQUFPLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM5RCxDQUFDOzs7Ozs7O0FBY0QsU0FBUyx5QkFBeUIsQ0FDaEMsUUFBYSxFQUNiLEtBQW1CO0lBRW5CLE9BQU8sU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBQSxLQUFLLEVBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDL0YsQ0FBQzs7Ozs7O0FBRUQsU0FBUyxnQ0FBZ0MsQ0FBVSxRQUFhO0lBQzlELE9BQU8sYUFBYSxDQUFDLEtBQUs7UUFDeEIsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUN0QyxDQUFDLENBQUMsbUNBQW1DLEVBQUUsQ0FBQztBQUM1QyxDQUFDOzs7Ozs7QUFFRCxTQUFTLG1CQUFtQixDQUFDLFVBQW9CLEVBQUUsTUFBeUI7SUFDMUUsT0FBTyxTQUFTLElBQUksQ0FBQyxNQUFNO1FBQ3pCLENBQUMsQ0FBQyxtQ0FBbUMsRUFBRTtRQUN2QyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxtQkFBQSxNQUFNLEVBQUMsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7Ozs7O0FBRUQsU0FBUywwQkFBMEIsQ0FBQyxVQUFvQjtJQUN0RCxPQUFPLFVBQVUsQ0FBQyxVQUFVLEVBQUUsbUJBQUEsYUFBYSxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUsIMm1aXZ5RW5hYmxlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJy4uLy4uL3N0b3JlJztcclxuaW1wb3J0IHsgTmd4c0NvbmZpZyB9IGZyb20gJy4uLy4uL3N5bWJvbHMnO1xyXG5pbXBvcnQgeyBwcm9wR2V0dGVyIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcclxuaW1wb3J0IHsgU2VsZWN0RmFjdG9yeSB9IGZyb20gJy4vc2VsZWN0LWZhY3RvcnknO1xyXG5pbXBvcnQgeyBTdGF0ZVRva2VuIH0gZnJvbSAnLi4vLi4vc3RhdGUtdG9rZW4vc3RhdGUtdG9rZW4nO1xyXG5pbXBvcnQgeyBFeHRyYWN0VG9rZW5UeXBlIH0gZnJvbSAnLi4vLi4vc3RhdGUtdG9rZW4vc3ltYm9scyc7XHJcbmltcG9ydCB7IHRocm93U2VsZWN0RmFjdG9yeU5vdENvbm5lY3RlZEVycm9yIH0gZnJvbSAnLi4vLi4vY29uZmlncy9tZXNzYWdlcy5jb25maWcnO1xyXG5cclxuY29uc3QgRE9MTEFSX0NIQVJfQ09ERSA9IDM2O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdE9ic2VydmFibGU8VCA9IGFueT4oXHJcbiAgc2VsZWN0b3I6IGFueSxcclxuICBzdG9yZTogU3RvcmUgfCBudWxsXHJcbik6IE9ic2VydmFibGU8VD4ge1xyXG4gIC8vIFdlJ3JlIGRvaW5nIHRoaXMgc3R1ZmYgdG8gdHJlZS1zaGFrZSB0aGUgYFNlbGVjdEZhY3RvcnlgIHdoZW4gdGhlIHVzZXJcclxuICAvLyBpcyBydW5uaW5nIEl2eSBzaW5jZSBOR1hTIHdpbGwgc2VsZWN0IHRoZSBzdGF0ZSBmcm9tIHRoZSBwcm92aWRlZCBgc3RvcmVgIGFyZ3VtZW50LlxyXG4gIHJldHVybiDJtWl2eUVuYWJsZWRcclxuICAgID8gY3JlYXRlU2VsZWN0T2JzZXJ2YWJsZUl2eShzZWxlY3Rvciwgc3RvcmUpXHJcbiAgICA6IGNyZWF0ZVNlbGVjdE9ic2VydmFibGVWaWV3RW5naW5lKHNlbGVjdG9yKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdG9yRm4oXHJcbiAgY29uZmlnOiBOZ3hzQ29uZmlnIHwgbnVsbCxcclxuICBuYW1lOiBzdHJpbmcsXHJcbiAgcmF3U2VsZWN0b3I/OiBhbnksXHJcbiAgcGF0aHM6IHN0cmluZ1tdID0gW11cclxuKTogU2VsZWN0b3JGbiB7XHJcbiAgcmF3U2VsZWN0b3IgPSByYXdTZWxlY3RvciB8fCByZW1vdmVEb2xsYXJBdFRoZUVuZChuYW1lKTtcclxuXHJcbiAgaWYgKHR5cGVvZiByYXdTZWxlY3RvciAhPT0gJ3N0cmluZycpIHtcclxuICAgIHJldHVybiByYXdTZWxlY3RvcjtcclxuICB9IGVsc2Uge1xyXG4gICAgY29uc3QgcHJvcHNBcnJheTogc3RyaW5nW10gPSBwYXRocy5sZW5ndGhcclxuICAgICAgPyBbcmF3U2VsZWN0b3IsIC4uLnBhdGhzXVxyXG4gICAgICA6IHJhd1NlbGVjdG9yLnNwbGl0KCcuJyk7XHJcblxyXG4gICAgcmV0dXJuIMm1aXZ5RW5hYmxlZFxyXG4gICAgICA/IGNyZWF0ZVNlbGVjdG9yRm5JdnkocHJvcHNBcnJheSwgY29uZmlnKVxyXG4gICAgICA6IGNyZWF0ZVNlbGVjdG9yRm5WaWV3RW5naW5lKHByb3BzQXJyYXkpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEBleGFtcGxlIElmIGBmb28kYCA9PiBtYWtlIGl0IGp1c3QgYGZvb2BcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVEb2xsYXJBdFRoZUVuZChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGNvbnN0IGxhc3RDaGFySW5kZXg6IG51bWJlciA9IG5hbWUubGVuZ3RoIC0gMTtcclxuICBjb25zdCBkb2xsYXJBdFRoZUVuZDogYm9vbGVhbiA9IG5hbWUuY2hhckNvZGVBdChsYXN0Q2hhckluZGV4KSA9PT0gRE9MTEFSX0NIQVJfQ09ERTtcclxuICByZXR1cm4gZG9sbGFyQXRUaGVFbmQgPyBuYW1lLnNsaWNlKDAsIGxhc3RDaGFySW5kZXgpIDogbmFtZTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2VsZWN0b3JGbiA9XHJcbiAgfCAoKHN0YXRlOiBhbnksIC4uLnN0YXRlczogYW55W10pID0+IGFueSlcclxuICB8IHN0cmluZ1xyXG4gIHwgVHlwZTxhbnk+XHJcbiAgfCBTdGF0ZVRva2VuPGFueT47XHJcblxyXG5leHBvcnQgdHlwZSBQcm9wZXJ0eVR5cGU8VD4gPSBUIGV4dGVuZHMgU3RhdGVUb2tlbjxhbnk+XHJcbiAgPyBPYnNlcnZhYmxlPEV4dHJhY3RUb2tlblR5cGU8VD4+XHJcbiAgOiBUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnlcclxuICA/IE9ic2VydmFibGU8UmV0dXJuVHlwZTxUPj5cclxuICA6IGFueTtcclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZVNlbGVjdE9ic2VydmFibGVJdnk8VCA9IGFueT4oXHJcbiAgc2VsZWN0b3I6IGFueSxcclxuICBzdG9yZTogU3RvcmUgfCBudWxsXHJcbik6IE9ic2VydmFibGU8VD4ge1xyXG4gIHJldHVybiBuZ0Rldk1vZGUgJiYgIXN0b3JlID8gdGhyb3dTZWxlY3RGYWN0b3J5Tm90Q29ubmVjdGVkRXJyb3IoKSA6IHN0b3JlIS5zZWxlY3Qoc2VsZWN0b3IpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVTZWxlY3RPYnNlcnZhYmxlVmlld0VuZ2luZTxUID0gYW55PihzZWxlY3RvcjogYW55KTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgcmV0dXJuIFNlbGVjdEZhY3Rvcnkuc3RvcmVcclxuICAgID8gU2VsZWN0RmFjdG9yeS5zdG9yZS5zZWxlY3Qoc2VsZWN0b3IpXHJcbiAgICA6IHRocm93U2VsZWN0RmFjdG9yeU5vdENvbm5lY3RlZEVycm9yKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZVNlbGVjdG9yRm5JdnkocHJvcHNBcnJheTogc3RyaW5nW10sIGNvbmZpZzogTmd4c0NvbmZpZyB8IG51bGwpIHtcclxuICByZXR1cm4gbmdEZXZNb2RlICYmICFjb25maWdcclxuICAgID8gdGhyb3dTZWxlY3RGYWN0b3J5Tm90Q29ubmVjdGVkRXJyb3IoKVxyXG4gICAgOiBwcm9wR2V0dGVyKHByb3BzQXJyYXksIGNvbmZpZyEpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVTZWxlY3RvckZuVmlld0VuZ2luZShwcm9wc0FycmF5OiBzdHJpbmdbXSkge1xyXG4gIHJldHVybiBwcm9wR2V0dGVyKHByb3BzQXJyYXksIFNlbGVjdEZhY3RvcnkuY29uZmlnISk7XHJcbn1cclxuIl19
@@ -2,7 +2,7 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
- import { CONFIG_MESSAGES, VALIDATION_CODE } from '../../configs/messages.config';
5
+ import { throwSelectorDecoratorError } from '../../configs/messages.config';
6
6
  import { createSelector } from '../../utils/selector-utils';
7
7
  /**
8
8
  * Decorator for memoizing a state selector.
@@ -19,10 +19,14 @@ export function Selector(selectors) {
19
19
  * @return {?}
20
20
  */
21
21
  (target, key, descriptor) => {
22
- /** @type {?} */
23
- const isNotMethod = !(descriptor && descriptor.value !== null);
24
- if (isNotMethod) {
25
- throw new Error(CONFIG_MESSAGES[VALIDATION_CODE.SELECTOR_DECORATOR]());
22
+ // Caretaker note: we have still left the `typeof` condition in order to avoid
23
+ // creating a breaking change for projects that still use the View Engine.
24
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
25
+ /** @type {?} */
26
+ const isNotMethod = !(descriptor && descriptor.value !== null);
27
+ if (isNotMethod) {
28
+ throwSelectorDecoratorError();
29
+ }
26
30
  }
27
31
  /** @type {?} */
28
32
  const originalFn = descriptor.value;
@@ -52,4 +56,4 @@ export function Selector(selectors) {
52
56
  return newDescriptor;
53
57
  });
54
58
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9kZWNvcmF0b3JzL3NlbGVjdG9yL3NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQU01RCxNQUFNLFVBQVUsUUFBUSxDQUFJLFNBQWU7SUFDekM7Ozs7Ozs7SUFBTyxDQUNMLE1BQVcsRUFDWCxHQUFvQixFQUNwQixVQUF1RCxFQUNILEVBQUU7O2NBQ2hELFdBQVcsR0FBRyxDQUFDLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDO1FBRTlELElBQUksV0FBVyxFQUFFO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3hFOztjQUVLLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSzs7Y0FDN0IsVUFBVSxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsbUJBQUEsVUFBVSxFQUFPLEVBQUU7WUFDOUQsY0FBYyxFQUFFLE1BQU07WUFDdEIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUU7Ozs7WUFDNUIsa0JBQWtCO2dCQUNoQixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7U0FDRixDQUFDOztjQUNJLGFBQWEsR0FBRztZQUNwQixZQUFZLEVBQUUsSUFBSTs7OztZQUNsQixHQUFHO2dCQUNELE9BQU8sVUFBVSxDQUFDO1lBQ3BCLENBQUM7U0FDRjtRQUNELG9DQUFvQztRQUNwQyxDQUFDLG1CQUFLLGFBQWEsRUFBQSxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQ2hELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDT05GSUdfTUVTU0FHRVMsIFZBTElEQVRJT05fQ09ERSB9IGZyb20gJy4uLy4uL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnJztcclxuaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICcuLi8uLi91dGlscy9zZWxlY3Rvci11dGlscyc7XHJcbmltcG9ydCB7IFNlbGVjdG9yU3BlYywgU2VsZWN0b3JUeXBlIH0gZnJvbSAnLi9zeW1ib2xzJztcclxuXHJcbi8qKlxyXG4gKiBEZWNvcmF0b3IgZm9yIG1lbW9pemluZyBhIHN0YXRlIHNlbGVjdG9yLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdG9yPFQ+KHNlbGVjdG9ycz86IFRbXSk6IFNlbGVjdG9yVHlwZTxUPiB7XHJcbiAgcmV0dXJuIDxVPihcclxuICAgIHRhcmdldDogYW55LFxyXG4gICAga2V5OiBzdHJpbmcgfCBzeW1ib2wsXHJcbiAgICBkZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxTZWxlY3RvclNwZWM8VCwgVT4+XHJcbiAgKTogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8U2VsZWN0b3JTcGVjPFQsIFU+PiB8IHZvaWQgPT4ge1xyXG4gICAgY29uc3QgaXNOb3RNZXRob2QgPSAhKGRlc2NyaXB0b3IgJiYgZGVzY3JpcHRvci52YWx1ZSAhPT0gbnVsbCk7XHJcblxyXG4gICAgaWYgKGlzTm90TWV0aG9kKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihDT05GSUdfTUVTU0FHRVNbVkFMSURBVElPTl9DT0RFLlNFTEVDVE9SX0RFQ09SQVRPUl0oKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb3JpZ2luYWxGbiA9IGRlc2NyaXB0b3IudmFsdWU7XHJcbiAgICBjb25zdCBtZW1vaXplZEZuID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0b3JzLCBvcmlnaW5hbEZuIGFzIGFueSwge1xyXG4gICAgICBjb250YWluZXJDbGFzczogdGFyZ2V0LFxyXG4gICAgICBzZWxlY3Rvck5hbWU6IGtleS50b1N0cmluZygpLFxyXG4gICAgICBnZXRTZWxlY3Rvck9wdGlvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG5ld0Rlc2NyaXB0b3IgPSB7XHJcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcclxuICAgICAgZ2V0KCkge1xyXG4gICAgICAgIHJldHVybiBtZW1vaXplZEZuO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgLy8gQWRkIGhpZGRlbiBwcm9wZXJ0eSB0byBkZXNjcmlwdG9yXHJcbiAgICAoPGFueT5uZXdEZXNjcmlwdG9yKVsnb3JpZ2luYWxGbiddID0gb3JpZ2luYWxGbjtcclxuICAgIHJldHVybiBuZXdEZXNjcmlwdG9yO1xyXG4gIH07XHJcbn1cclxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9kZWNvcmF0b3JzL3NlbGVjdG9yL3NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFNNUQsTUFBTSxVQUFVLFFBQVEsQ0FBSSxTQUFlO0lBQ3pDOzs7Ozs7O0lBQU8sQ0FDTCxNQUFXLEVBQ1gsR0FBb0IsRUFDcEIsVUFBdUQsRUFDSCxFQUFFO1FBQ3RELDhFQUE4RTtRQUM5RSwwRUFBMEU7UUFDMUUsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFOztrQkFDM0MsV0FBVyxHQUFHLENBQUMsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUM7WUFFOUQsSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsMkJBQTJCLEVBQUUsQ0FBQzthQUMvQjtTQUNGOztjQUVLLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSzs7Y0FDN0IsVUFBVSxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsbUJBQUEsVUFBVSxFQUFPLEVBQUU7WUFDOUQsY0FBYyxFQUFFLE1BQU07WUFDdEIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUU7Ozs7WUFDNUIsa0JBQWtCO2dCQUNoQixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7U0FDRixDQUFDOztjQUNJLGFBQWEsR0FBRztZQUNwQixZQUFZLEVBQUUsSUFBSTs7OztZQUNsQixHQUFHO2dCQUNELE9BQU8sVUFBVSxDQUFDO1lBQ3BCLENBQUM7U0FDRjtRQUNELG9DQUFvQztRQUNwQyxDQUFDLG1CQUFLLGFBQWEsRUFBQSxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQ2hELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0aHJvd1NlbGVjdG9yRGVjb3JhdG9yRXJyb3IgfSBmcm9tICcuLi8uLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XHJcbmltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2VsZWN0b3ItdXRpbHMnO1xyXG5pbXBvcnQgeyBTZWxlY3RvclNwZWMsIFNlbGVjdG9yVHlwZSB9IGZyb20gJy4vc3ltYm9scyc7XHJcblxyXG4vKipcclxuICogRGVjb3JhdG9yIGZvciBtZW1vaXppbmcgYSBzdGF0ZSBzZWxlY3Rvci5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBTZWxlY3RvcjxUPihzZWxlY3RvcnM/OiBUW10pOiBTZWxlY3RvclR5cGU8VD4ge1xyXG4gIHJldHVybiA8VT4oXHJcbiAgICB0YXJnZXQ6IGFueSxcclxuICAgIGtleTogc3RyaW5nIHwgc3ltYm9sLFxyXG4gICAgZGVzY3JpcHRvcjogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8U2VsZWN0b3JTcGVjPFQsIFU+PlxyXG4gICk6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFNlbGVjdG9yU3BlYzxULCBVPj4gfCB2b2lkID0+IHtcclxuICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxyXG4gICAgLy8gY3JlYXRpbmcgYSBicmVha2luZyBjaGFuZ2UgZm9yIHByb2plY3RzIHRoYXQgc3RpbGwgdXNlIHRoZSBWaWV3IEVuZ2luZS5cclxuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcclxuICAgICAgY29uc3QgaXNOb3RNZXRob2QgPSAhKGRlc2NyaXB0b3IgJiYgZGVzY3JpcHRvci52YWx1ZSAhPT0gbnVsbCk7XHJcblxyXG4gICAgICBpZiAoaXNOb3RNZXRob2QpIHtcclxuICAgICAgICB0aHJvd1NlbGVjdG9yRGVjb3JhdG9yRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9yaWdpbmFsRm4gPSBkZXNjcmlwdG9yLnZhbHVlO1xyXG4gICAgY29uc3QgbWVtb2l6ZWRGbiA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdG9ycywgb3JpZ2luYWxGbiBhcyBhbnksIHtcclxuICAgICAgY29udGFpbmVyQ2xhc3M6IHRhcmdldCxcclxuICAgICAgc2VsZWN0b3JOYW1lOiBrZXkudG9TdHJpbmcoKSxcclxuICAgICAgZ2V0U2VsZWN0b3JPcHRpb25zKCkge1xyXG4gICAgICAgIHJldHVybiB7fTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBuZXdEZXNjcmlwdG9yID0ge1xyXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXHJcbiAgICAgIGdldCgpIHtcclxuICAgICAgICByZXR1cm4gbWVtb2l6ZWRGbjtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8vIEFkZCBoaWRkZW4gcHJvcGVydHkgdG8gZGVzY3JpcHRvclxyXG4gICAgKDxhbnk+bmV3RGVzY3JpcHRvcilbJ29yaWdpbmFsRm4nXSA9IG9yaWdpbmFsRm47XHJcbiAgICByZXR1cm4gbmV3RGVzY3JpcHRvcjtcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -5,7 +5,7 @@
5
5
  import { ensureStoreMetadata } from '../internal/internals';
6
6
  import { META_KEY, META_OPTIONS_KEY } from '../symbols';
7
7
  import { StoreValidators } from '../utils/store-validators';
8
- import { ensureStateClassIsInjectable } from '../ivy/ensure-state-class-is-injectable';
8
+ import { ensureStateClassIsInjectable } from '../ivy/ivy-enabled-in-dev-mode';
9
9
  /**
10
10
  * @record
11
11
  * @template T
@@ -44,7 +44,11 @@ export function State(options) {
44
44
  const { children, defaults, name } = optionsWithInheritance;
45
45
  /** @type {?} */
46
46
  const stateName = typeof name === 'string' ? name : (name && name.getName()) || null;
47
- StoreValidators.checkCorrectStateName(stateName);
47
+ // Caretaker note: we have still left the `typeof` condition in order to avoid
48
+ // creating a breaking change for projects that still use the View Engine.
49
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
50
+ StoreValidators.checkThatStateIsNamedCorrectly(stateName);
51
+ }
48
52
  if (inheritedStateClass.hasOwnProperty(META_KEY)) {
49
53
  /** @type {?} */
50
54
  const inheritedMeta = inheritedStateClass[META_KEY] || {};
@@ -59,7 +63,11 @@ export function State(options) {
59
63
  * @return {?}
60
64
  */
61
65
  (target) => {
62
- ensureStateClassIsInjectable(target);
66
+ // Caretaker note: we have still left the `typeof` condition in order to avoid
67
+ // creating a breaking change for projects that still use the View Engine.
68
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
69
+ ensureStateClassIsInjectable(target);
70
+ }
63
71
  /** @type {?} */
64
72
  const stateClass = target;
65
73
  /** @type {?} */
@@ -72,4 +80,4 @@ export function State(options) {
72
80
  stateClass[META_OPTIONS_KEY] = optionsWithInheritance;
73
81
  });
74
82
  }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9kZWNvcmF0b3JzL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxPQUFPLEVBQUUsbUJBQW1CLEVBQXFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBZ0IsTUFBTSxZQUFZLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7OztBQUV2RixnQ0FJQzs7O0lBSEMsaUNBQW9COztJQUNwQixnREFBd0M7O0lBQ3hDLG1EQUF3Qzs7Ozs7Ozs7QUFNMUMsTUFBTSxVQUFVLEtBQUssQ0FBSSxPQUF3Qjs7Ozs7SUFDL0MsU0FBUyxlQUFlLENBQUMsbUJBQXVDOztjQUN4RCxrQkFBa0IsR0FDdEIsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1FBQzdDLE9BQU8scUNBQUssa0JBQWtCLEVBQUssT0FBTyxHQUFxQixDQUFDO0lBQ2xFLENBQUM7Ozs7O0lBRUQsU0FBUyxjQUFjLENBQUMsTUFBNEI7Y0FDNUMsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxNQUFNO2NBQzlELEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxzQkFBc0I7O2NBQ3JELFNBQVMsR0FDYixPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksSUFBSTtRQUNwRSxlQUFlLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFakQsSUFBSSxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7O2tCQUMxQyxhQUFhLEdBQTJCLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDakYsSUFBSSxDQUFDLE9BQU8scUJBQVEsSUFBSSxDQUFDLE9BQU8sRUFBSyxhQUFhLENBQUMsT0FBTyxDQUFFLENBQUM7U0FDOUQ7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7SUFBTyxDQUFDLE1BQWtCLEVBQVEsRUFBRTtRQUNsQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7Y0FDL0IsVUFBVSxHQUF1QixNQUFNOztjQUN2QyxJQUFJLEdBQWtCLG1CQUFtQixDQUFDLFVBQVUsQ0FBQzs7Y0FDckQsbUJBQW1CLEdBQXVCLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDOztjQUMzRSxzQkFBc0IsR0FBb0IsZUFBZSxDQUFDLG1CQUFtQixDQUFDO1FBQ3BGLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxDQUFDLENBQUM7UUFDdEUsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsc0JBQXNCLENBQUM7SUFDeEQsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRlQ2xhc3MgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xyXG5cclxuaW1wb3J0IHsgZW5zdXJlU3RvcmVNZXRhZGF0YSwgTWV0YURhdGFNb2RlbCwgU3RhdGVDbGFzc0ludGVybmFsIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcclxuaW1wb3J0IHsgTUVUQV9LRVksIE1FVEFfT1BUSU9OU19LRVksIFN0b3JlT3B0aW9ucyB9IGZyb20gJy4uL3N5bWJvbHMnO1xyXG5pbXBvcnQgeyBTdG9yZVZhbGlkYXRvcnMgfSBmcm9tICcuLi91dGlscy9zdG9yZS12YWxpZGF0b3JzJztcclxuaW1wb3J0IHsgZW5zdXJlU3RhdGVDbGFzc0lzSW5qZWN0YWJsZSB9IGZyb20gJy4uL2l2eS9lbnN1cmUtc3RhdGUtY2xhc3MtaXMtaW5qZWN0YWJsZSc7XHJcblxyXG5pbnRlcmZhY2UgTXV0YXRlTWV0YU9wdGlvbnM8VD4ge1xyXG4gIG1ldGE6IE1ldGFEYXRhTW9kZWw7XHJcbiAgaW5oZXJpdGVkU3RhdGVDbGFzczogU3RhdGVDbGFzc0ludGVybmFsO1xyXG4gIG9wdGlvbnNXaXRoSW5oZXJpdGFuY2U6IFN0b3JlT3B0aW9uczxUPjtcclxufVxyXG5cclxuLyoqXHJcbiAqIERlY29yYXRlcyBhIGNsYXNzIHdpdGggbmd4cyBzdGF0ZSBpbmZvcm1hdGlvbi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBTdGF0ZTxUPihvcHRpb25zOiBTdG9yZU9wdGlvbnM8VD4pIHtcclxuICBmdW5jdGlvbiBnZXRTdGF0ZU9wdGlvbnMoaW5oZXJpdGVkU3RhdGVDbGFzczogU3RhdGVDbGFzc0ludGVybmFsKTogU3RvcmVPcHRpb25zPFQ+IHtcclxuICAgIGNvbnN0IGluaGVyaXRhbmNlT3B0aW9uczogUGFydGlhbDxTdG9yZU9wdGlvbnM8VD4+ID1cclxuICAgICAgaW5oZXJpdGVkU3RhdGVDbGFzc1tNRVRBX09QVElPTlNfS0VZXSB8fCB7fTtcclxuICAgIHJldHVybiB7IC4uLmluaGVyaXRhbmNlT3B0aW9ucywgLi4ub3B0aW9ucyB9IGFzIFN0b3JlT3B0aW9uczxUPjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG11dGF0ZU1ldGFEYXRhKHBhcmFtczogTXV0YXRlTWV0YU9wdGlvbnM8VD4pOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgbWV0YSwgaW5oZXJpdGVkU3RhdGVDbGFzcywgb3B0aW9uc1dpdGhJbmhlcml0YW5jZSB9ID0gcGFyYW1zO1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgZGVmYXVsdHMsIG5hbWUgfSA9IG9wdGlvbnNXaXRoSW5oZXJpdGFuY2U7XHJcbiAgICBjb25zdCBzdGF0ZU5hbWU6IHN0cmluZyB8IG51bGwgPVxyXG4gICAgICB0eXBlb2YgbmFtZSA9PT0gJ3N0cmluZycgPyBuYW1lIDogKG5hbWUgJiYgbmFtZS5nZXROYW1lKCkpIHx8IG51bGw7XHJcbiAgICBTdG9yZVZhbGlkYXRvcnMuY2hlY2tDb3JyZWN0U3RhdGVOYW1lKHN0YXRlTmFtZSk7XHJcblxyXG4gICAgaWYgKGluaGVyaXRlZFN0YXRlQ2xhc3MuaGFzT3duUHJvcGVydHkoTUVUQV9LRVkpKSB7XHJcbiAgICAgIGNvbnN0IGluaGVyaXRlZE1ldGE6IFBhcnRpYWw8TWV0YURhdGFNb2RlbD4gPSBpbmhlcml0ZWRTdGF0ZUNsYXNzW01FVEFfS0VZXSB8fCB7fTtcclxuICAgICAgbWV0YS5hY3Rpb25zID0geyAuLi5tZXRhLmFjdGlvbnMsIC4uLmluaGVyaXRlZE1ldGEuYWN0aW9ucyB9O1xyXG4gICAgfVxyXG5cclxuICAgIG1ldGEuY2hpbGRyZW4gPSBjaGlsZHJlbjtcclxuICAgIG1ldGEuZGVmYXVsdHMgPSBkZWZhdWx0cztcclxuICAgIG1ldGEubmFtZSA9IHN0YXRlTmFtZTtcclxuICB9XHJcblxyXG4gIHJldHVybiAodGFyZ2V0OiBTdGF0ZUNsYXNzKTogdm9pZCA9PiB7XHJcbiAgICBlbnN1cmVTdGF0ZUNsYXNzSXNJbmplY3RhYmxlKHRhcmdldCk7XHJcbiAgICBjb25zdCBzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwgPSB0YXJnZXQ7XHJcbiAgICBjb25zdCBtZXRhOiBNZXRhRGF0YU1vZGVsID0gZW5zdXJlU3RvcmVNZXRhZGF0YShzdGF0ZUNsYXNzKTtcclxuICAgIGNvbnN0IGluaGVyaXRlZFN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihzdGF0ZUNsYXNzKTtcclxuICAgIGNvbnN0IG9wdGlvbnNXaXRoSW5oZXJpdGFuY2U6IFN0b3JlT3B0aW9uczxUPiA9IGdldFN0YXRlT3B0aW9ucyhpbmhlcml0ZWRTdGF0ZUNsYXNzKTtcclxuICAgIG11dGF0ZU1ldGFEYXRhKHsgbWV0YSwgaW5oZXJpdGVkU3RhdGVDbGFzcywgb3B0aW9uc1dpdGhJbmhlcml0YW5jZSB9KTtcclxuICAgIHN0YXRlQ2xhc3NbTUVUQV9PUFRJT05TX0tFWV0gPSBvcHRpb25zV2l0aEluaGVyaXRhbmNlO1xyXG4gIH07XHJcbn1cclxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9kZWNvcmF0b3JzL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxPQUFPLEVBQUUsbUJBQW1CLEVBQXFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBZ0IsTUFBTSxZQUFZLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQUU5RSxnQ0FJQzs7O0lBSEMsaUNBQW9COztJQUNwQixnREFBd0M7O0lBQ3hDLG1EQUF3Qzs7Ozs7Ozs7QUFNMUMsTUFBTSxVQUFVLEtBQUssQ0FBSSxPQUF3Qjs7Ozs7SUFDL0MsU0FBUyxlQUFlLENBQUMsbUJBQXVDOztjQUN4RCxrQkFBa0IsR0FDdEIsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1FBQzdDLE9BQU8scUNBQUssa0JBQWtCLEVBQUssT0FBTyxHQUFxQixDQUFDO0lBQ2xFLENBQUM7Ozs7O0lBRUQsU0FBUyxjQUFjLENBQUMsTUFBNEI7Y0FDNUMsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxNQUFNO2NBQzlELEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxzQkFBc0I7O2NBQ3JELFNBQVMsR0FDYixPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksSUFBSTtRQUVwRSw4RUFBOEU7UUFDOUUsMEVBQTBFO1FBQzFFLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRTtZQUNqRCxlQUFlLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTs7a0JBQzFDLGFBQWEsR0FBMkIsbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtZQUNqRixJQUFJLENBQUMsT0FBTyxxQkFBUSxJQUFJLENBQUMsT0FBTyxFQUFLLGFBQWEsQ0FBQyxPQUFPLENBQUUsQ0FBQztTQUM5RDtRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztJQUFPLENBQUMsTUFBa0IsRUFBUSxFQUFFO1FBQ2xDLDhFQUE4RTtRQUM5RSwwRUFBMEU7UUFDMUUsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFO1lBQ2pELDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3RDOztjQUNLLFVBQVUsR0FBdUIsTUFBTTs7Y0FDdkMsSUFBSSxHQUFrQixtQkFBbUIsQ0FBQyxVQUFVLENBQUM7O2NBQ3JELG1CQUFtQixHQUF1QixNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzs7Y0FDM0Usc0JBQXNCLEdBQW9CLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQztRQUNwRixjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLHNCQUFzQixDQUFDO0lBQ3hELENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZUNsYXNzIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcclxuXHJcbmltcG9ydCB7IGVuc3VyZVN0b3JlTWV0YWRhdGEsIE1ldGFEYXRhTW9kZWwsIFN0YXRlQ2xhc3NJbnRlcm5hbCB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XHJcbmltcG9ydCB7IE1FVEFfS0VZLCBNRVRBX09QVElPTlNfS0VZLCBTdG9yZU9wdGlvbnMgfSBmcm9tICcuLi9zeW1ib2xzJztcclxuaW1wb3J0IHsgU3RvcmVWYWxpZGF0b3JzIH0gZnJvbSAnLi4vdXRpbHMvc3RvcmUtdmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IGVuc3VyZVN0YXRlQ2xhc3NJc0luamVjdGFibGUgfSBmcm9tICcuLi9pdnkvaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUnO1xyXG5cclxuaW50ZXJmYWNlIE11dGF0ZU1ldGFPcHRpb25zPFQ+IHtcclxuICBtZXRhOiBNZXRhRGF0YU1vZGVsO1xyXG4gIGluaGVyaXRlZFN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbDtcclxuICBvcHRpb25zV2l0aEluaGVyaXRhbmNlOiBTdG9yZU9wdGlvbnM8VD47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWNvcmF0ZXMgYSBjbGFzcyB3aXRoIG5neHMgc3RhdGUgaW5mb3JtYXRpb24uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gU3RhdGU8VD4ob3B0aW9uczogU3RvcmVPcHRpb25zPFQ+KSB7XHJcbiAgZnVuY3Rpb24gZ2V0U3RhdGVPcHRpb25zKGluaGVyaXRlZFN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCk6IFN0b3JlT3B0aW9uczxUPiB7XHJcbiAgICBjb25zdCBpbmhlcml0YW5jZU9wdGlvbnM6IFBhcnRpYWw8U3RvcmVPcHRpb25zPFQ+PiA9XHJcbiAgICAgIGluaGVyaXRlZFN0YXRlQ2xhc3NbTUVUQV9PUFRJT05TX0tFWV0gfHwge307XHJcbiAgICByZXR1cm4geyAuLi5pbmhlcml0YW5jZU9wdGlvbnMsIC4uLm9wdGlvbnMgfSBhcyBTdG9yZU9wdGlvbnM8VD47XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBtdXRhdGVNZXRhRGF0YShwYXJhbXM6IE11dGF0ZU1ldGFPcHRpb25zPFQ+KTogdm9pZCB7XHJcbiAgICBjb25zdCB7IG1ldGEsIGluaGVyaXRlZFN0YXRlQ2xhc3MsIG9wdGlvbnNXaXRoSW5oZXJpdGFuY2UgfSA9IHBhcmFtcztcclxuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGRlZmF1bHRzLCBuYW1lIH0gPSBvcHRpb25zV2l0aEluaGVyaXRhbmNlO1xyXG4gICAgY29uc3Qgc3RhdGVOYW1lOiBzdHJpbmcgfCBudWxsID1cclxuICAgICAgdHlwZW9mIG5hbWUgPT09ICdzdHJpbmcnID8gbmFtZSA6IChuYW1lICYmIG5hbWUuZ2V0TmFtZSgpKSB8fCBudWxsO1xyXG5cclxuICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxyXG4gICAgLy8gY3JlYXRpbmcgYSBicmVha2luZyBjaGFuZ2UgZm9yIHByb2plY3RzIHRoYXQgc3RpbGwgdXNlIHRoZSBWaWV3IEVuZ2luZS5cclxuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcclxuICAgICAgU3RvcmVWYWxpZGF0b3JzLmNoZWNrVGhhdFN0YXRlSXNOYW1lZENvcnJlY3RseShzdGF0ZU5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbmhlcml0ZWRTdGF0ZUNsYXNzLmhhc093blByb3BlcnR5KE1FVEFfS0VZKSkge1xyXG4gICAgICBjb25zdCBpbmhlcml0ZWRNZXRhOiBQYXJ0aWFsPE1ldGFEYXRhTW9kZWw+ID0gaW5oZXJpdGVkU3RhdGVDbGFzc1tNRVRBX0tFWV0gfHwge307XHJcbiAgICAgIG1ldGEuYWN0aW9ucyA9IHsgLi4ubWV0YS5hY3Rpb25zLCAuLi5pbmhlcml0ZWRNZXRhLmFjdGlvbnMgfTtcclxuICAgIH1cclxuXHJcbiAgICBtZXRhLmNoaWxkcmVuID0gY2hpbGRyZW47XHJcbiAgICBtZXRhLmRlZmF1bHRzID0gZGVmYXVsdHM7XHJcbiAgICBtZXRhLm5hbWUgPSBzdGF0ZU5hbWU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gKHRhcmdldDogU3RhdGVDbGFzcyk6IHZvaWQgPT4ge1xyXG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IHdlIGhhdmUgc3RpbGwgbGVmdCB0aGUgYHR5cGVvZmAgY29uZGl0aW9uIGluIG9yZGVyIHRvIGF2b2lkXHJcbiAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxyXG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xyXG4gICAgICBlbnN1cmVTdGF0ZUNsYXNzSXNJbmplY3RhYmxlKHRhcmdldCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwgPSB0YXJnZXQ7XHJcbiAgICBjb25zdCBtZXRhOiBNZXRhRGF0YU1vZGVsID0gZW5zdXJlU3RvcmVNZXRhZGF0YShzdGF0ZUNsYXNzKTtcclxuICAgIGNvbnN0IGluaGVyaXRlZFN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihzdGF0ZUNsYXNzKTtcclxuICAgIGNvbnN0IG9wdGlvbnNXaXRoSW5oZXJpdGFuY2U6IFN0b3JlT3B0aW9uczxUPiA9IGdldFN0YXRlT3B0aW9ucyhpbmhlcml0ZWRTdGF0ZUNsYXNzKTtcclxuICAgIG11dGF0ZU1ldGFEYXRhKHsgbWV0YSwgaW5oZXJpdGVkU3RhdGVDbGFzcywgb3B0aW9uc1dpdGhJbmhlcml0YW5jZSB9KTtcclxuICAgIHN0YXRlQ2xhc3NbTUVUQV9PUFRJT05TX0tFWV0gPSBvcHRpb25zV2l0aEluaGVyaXRhbmNlO1xyXG4gIH07XHJcbn1cclxuIl19