angular-three 2.0.0-beta.6 → 2.0.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/README.md +4 -147
  2. package/esm2022/angular-three.mjs +1 -1
  3. package/esm2022/index.mjs +10 -9
  4. package/esm2022/lib/before-render.mjs +13 -0
  5. package/esm2022/lib/canvas.mjs +129 -161
  6. package/esm2022/lib/directives/args.mjs +13 -11
  7. package/esm2022/lib/directives/common.mjs +28 -27
  8. package/esm2022/lib/directives/key.mjs +29 -0
  9. package/esm2022/lib/directives/parent.mjs +13 -11
  10. package/esm2022/lib/directives/repeat.mjs +5 -6
  11. package/esm2022/lib/dom/events.mjs +6 -1
  12. package/esm2022/lib/events.mjs +75 -58
  13. package/esm2022/lib/instance.mjs +65 -0
  14. package/esm2022/lib/loader.mjs +17 -20
  15. package/esm2022/lib/loop.mjs +6 -3
  16. package/esm2022/lib/portal.mjs +103 -112
  17. package/esm2022/lib/ref.mjs +48 -0
  18. package/esm2022/lib/renderer/catalogue.mjs +7 -0
  19. package/esm2022/lib/renderer/constants.mjs +21 -0
  20. package/esm2022/lib/renderer/index.mjs +409 -0
  21. package/esm2022/lib/renderer/store.mjs +61 -38
  22. package/esm2022/lib/renderer/utils.mjs +20 -43
  23. package/esm2022/lib/roots.mjs +249 -0
  24. package/esm2022/lib/routed-scene.mjs +6 -7
  25. package/esm2022/lib/store.mjs +207 -0
  26. package/esm2022/lib/three-types.mjs +1 -1
  27. package/esm2022/lib/types.mjs +1 -1
  28. package/esm2022/lib/utils/apply-props.mjs +12 -7
  29. package/esm2022/lib/utils/assert-injection-context.mjs +14 -0
  30. package/esm2022/lib/utils/attach.mjs +2 -2
  31. package/esm2022/lib/utils/create-injection-token.mjs +47 -0
  32. package/esm2022/lib/utils/is.mjs +1 -1
  33. package/esm2022/lib/utils/make.mjs +1 -1
  34. package/esm2022/lib/utils/safe-detect-changes.mjs +15 -13
  35. package/esm2022/lib/utils/signal-store.mjs +91 -0
  36. package/esm2022/lib/utils/update.mjs +1 -1
  37. package/fesm2022/angular-three.mjs +1569 -1425
  38. package/fesm2022/angular-three.mjs.map +1 -1
  39. package/index.d.ts +10 -8
  40. package/lib/{di/before-render.d.ts → before-render.d.ts} +1 -1
  41. package/lib/canvas.d.ts +81 -11
  42. package/lib/directives/args.d.ts +2 -2
  43. package/lib/directives/common.d.ts +5 -1
  44. package/lib/directives/key.d.ts +10 -0
  45. package/lib/directives/parent.d.ts +5 -5
  46. package/lib/dom/events.d.ts +3 -2
  47. package/lib/events.d.ts +78 -2
  48. package/lib/instance.d.ts +36 -0
  49. package/lib/loader.d.ts +13 -2
  50. package/lib/loop.d.ts +64 -6
  51. package/lib/portal.d.ts +21 -12
  52. package/lib/{di/ref.d.ts → ref.d.ts} +3 -2
  53. package/lib/renderer/catalogue.d.ts +9 -0
  54. package/lib/renderer/constants.d.ts +20 -0
  55. package/lib/renderer/index.d.ts +5 -0
  56. package/lib/renderer/store.d.ts +21 -15
  57. package/lib/renderer/utils.d.ts +29 -19
  58. package/lib/roots.d.ts +11 -0
  59. package/lib/routed-scene.d.ts +1 -1
  60. package/lib/store.d.ts +143 -0
  61. package/lib/three-types.d.ts +5 -5
  62. package/lib/types.d.ts +1 -309
  63. package/lib/utils/apply-props.d.ts +4 -2
  64. package/lib/utils/attach.d.ts +4 -2
  65. package/lib/utils/create-injection-token.d.ts +27 -0
  66. package/lib/utils/is.d.ts +3 -2
  67. package/lib/utils/make.d.ts +12 -1
  68. package/lib/utils/safe-detect-changes.d.ts +2 -2
  69. package/lib/utils/signal-store.d.ts +17 -0
  70. package/lib/utils/update.d.ts +1 -1
  71. package/metadata.json +1 -0
  72. package/package.json +3 -3
  73. package/plugin/README.md +11 -0
  74. package/plugin/generators.json +39 -0
  75. package/plugin/package.json +6 -0
  76. package/plugin/src/generators/init/compat.d.ts +2 -0
  77. package/plugin/src/generators/init/compat.js +6 -0
  78. package/plugin/src/generators/init/compat.js.map +1 -0
  79. package/plugin/src/generators/init/generator.d.ts +2 -0
  80. package/plugin/src/generators/init/generator.js +48 -0
  81. package/plugin/src/generators/init/generator.js.map +1 -0
  82. package/plugin/src/generators/init/schema.json +6 -0
  83. package/plugin/src/generators/init-postprocessing/compat.d.ts +2 -0
  84. package/plugin/src/generators/init-postprocessing/compat.js +6 -0
  85. package/plugin/src/generators/init-postprocessing/compat.js.map +1 -0
  86. package/plugin/src/generators/init-postprocessing/generator.d.ts +2 -0
  87. package/plugin/src/generators/init-postprocessing/generator.js +20 -0
  88. package/plugin/src/generators/init-postprocessing/generator.js.map +1 -0
  89. package/plugin/src/generators/init-postprocessing/schema.json +6 -0
  90. package/plugin/src/generators/init-soba/compat.d.ts +2 -0
  91. package/plugin/src/generators/init-soba/compat.js +6 -0
  92. package/plugin/src/generators/init-soba/compat.js.map +1 -0
  93. package/plugin/src/generators/init-soba/generator.d.ts +2 -0
  94. package/plugin/src/generators/init-soba/generator.js +24 -0
  95. package/plugin/src/generators/init-soba/generator.js.map +1 -0
  96. package/plugin/src/generators/init-soba/schema.json +6 -0
  97. package/plugin/src/generators/versions.d.ts +9 -0
  98. package/plugin/src/generators/versions.js +13 -0
  99. package/plugin/src/generators/versions.js.map +1 -0
  100. package/plugin/src/index.d.ts +3 -0
  101. package/plugin/src/index.js +10 -0
  102. package/plugin/src/index.js.map +1 -0
  103. package/web-types.json +1 -0
  104. package/esm2022/lib/di/before-render.mjs +0 -13
  105. package/esm2022/lib/di/catalogue.mjs +0 -7
  106. package/esm2022/lib/di/ref.mjs +0 -54
  107. package/esm2022/lib/renderer/di.mjs +0 -3
  108. package/esm2022/lib/renderer/enums.mjs +0 -2
  109. package/esm2022/lib/renderer/provider.mjs +0 -18
  110. package/esm2022/lib/renderer/renderer.mjs +0 -367
  111. package/esm2022/lib/stores/signal.store.mjs +0 -78
  112. package/esm2022/lib/stores/store.mjs +0 -420
  113. package/esm2022/lib/utils/assert-in-injection-context.mjs +0 -14
  114. package/esm2022/lib/utils/instance.mjs +0 -66
  115. package/esm2022/lib/utils/timing.mjs +0 -9
  116. package/lib/di/catalogue.d.ts +0 -3
  117. package/lib/renderer/di.d.ts +0 -2
  118. package/lib/renderer/enums.d.ts +0 -26
  119. package/lib/renderer/provider.d.ts +0 -8
  120. package/lib/renderer/renderer.d.ts +0 -49
  121. package/lib/stores/signal.store.d.ts +0 -21
  122. package/lib/stores/store.d.ts +0 -13
  123. package/lib/utils/instance.d.ts +0 -4
  124. package/lib/utils/timing.d.ts +0 -2
  125. /package/lib/utils/{assert-in-injection-context.d.ts → assert-injection-context.d.ts} +0 -0
package/README.md CHANGED
@@ -1,150 +1,7 @@
1
- # Angular Renderer for THREE.js
1
+ # core
2
2
 
3
- [![From Vietnam with <3](https://raw.githubusercontent.com/webuild-community/badge/master/svg/love.svg)](https://webuild.community)
3
+ This library was generated with [Nx](https://nx.dev).
4
4
 
5
- Leverage your [Angular](https://angular.io) to build 3D applications with [THREE.js](https://threejs.org)
5
+ ## Running unit tests
6
6
 
7
- ## Installation
8
-
9
- ### Angular CLI
10
-
11
- ```shell
12
- npx ng add angular-three
13
- ```
14
-
15
- ### Nx
16
-
17
- ```shell
18
- npm i angular-three
19
- npx nx g angular-three:init
20
- ```
21
-
22
- ### Manual
23
-
24
- ```shell
25
- npm i angular-three three
26
- ```
27
-
28
- ```shell
29
- npm i -D @types/three
30
- ```
31
-
32
- - Adjust `tsconfig.json` (or `tsconfig.base.json`) to include `skipTypeCheck: false`
33
-
34
- > Typically, we'd want to keep `three` and `@types/three` on the same minor version. Eg: `0.147`, `0.148` etc..
35
-
36
- ## Type
37
-
38
- ### VSCode
39
-
40
- - If you use `ng add` or `nx generate` command, this is setup for you.
41
- - If you install `angular-three` manually, you can do the following steps to enable typings
42
- - Open `.vscode/settings.json`, or create one if you do not have it
43
- - Add `html.customData` property with the value of `["./node_modules/angular-three/metadata.json"]`. If `html.customData` exists, simply add `"./node_modules/angular-three/metadata.json"` to the array
44
-
45
- ### WebStorm/IntelliJ
46
-
47
- - You **should not** need to do anything here but if things do not work, you can add `web-types` property to `package.json` with the value of `"./node_modules/angular-three/web-types.json"`
48
-
49
- ### NeoVim
50
-
51
- Setup will vary depending on your current NeoVim configuration. However, I'd expect the **required** steps to be the same
52
-
53
- - `neovim/nvim-lspconfig` needs to be configured for `html` LSP
54
- - `init_options.dataPaths` needs to include the path to `node_modules/angular-three/metadata.json`
55
- - Setup a `html/customDataContent` handler (`handlers = {["html/customDataContent"] = function() ... end}` for Lua syntax)
56
- and return the content of the `init_options.dataPaths`
57
-
58
- Here's an example setup for [LazyVim](https://www.lazyvim.org/)
59
-
60
- ```lua
61
- return {
62
- {
63
- "neovim/nvim-lspconfig",
64
- ---@class PluginLspOpts
65
- opts = {
66
- ---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
67
- setup = {
68
- html = function(_, opts)
69
- opts.init_options = {
70
- dataPaths = {
71
- vim.fn.getcwd() .. "/node_modules/angular-three/metadata.json",
72
- },
73
- configurationSection = { "html", "css", "javascript" },
74
- embeddedLanguages = {
75
- css = true,
76
- javascript = true,
77
- },
78
- provideFormatter = true,
79
- }
80
-
81
- opts.handlers = {
82
- ["html/customDataContent"] = function(err, result, ctx, config)
83
- local function exists(name)
84
- if type(name) ~= "string" then
85
- return false
86
- end
87
- return os.execute("test -e " .. name)
88
- end
89
-
90
- if not vim.tbl_isempty(result) and #result == 1 then
91
- if not exists(result[1]) then
92
- return ""
93
- end
94
- local content = vim.fn.join(vim.fn.readfile(result[1]), "\n")
95
- return content
96
- end
97
- return ""
98
- end,
99
- }
100
-
101
- return false
102
- end,
103
- },
104
- },
105
- },
106
- }
107
- ```
108
-
109
- ## Documentations
110
-
111
- Read more about Angular Three usages in [Documentations](https://angular-three-backupjs.netlify.app)
112
-
113
- ## Simple usage
114
-
115
- 1. Create a `Scene` component as a Standalone Component
116
-
117
- ```ts
118
- import { extend } from 'angular-three';
119
- import { Mesh, BoxGeometry, MeshBasicMaterial } from 'three';
120
-
121
- extend({ Mesh, BoxGeometry, MeshBasicMaterial });
122
-
123
- @Component({
124
- standalone: true,
125
- template: `
126
- <ngt-mesh>
127
- <ngt-box-geometry />
128
- <ngt-mesh-basic-material color="darkred" />
129
- </ngt-mesh>
130
- `,
131
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
132
- })
133
- export class Scene {}
134
- ```
135
-
136
- - `extend` will add the THREE entities to `angular-three` catalogue which allows the renderer to recognize the custom tags: `ngt-mesh`, `ngt-box-geometry` etc..
137
- - Custom Element tags follow this rule: `ngt-` + THREE classes in **kebab-case**. `Mesh` -> `ngt-mesh`
138
- - `schemas: [CUSTOM_ELEMENTS_SCHEMA]` allows us to use custom tags on the template. This is Angular's limitation at the moment
139
-
140
- 2. Render `<ngt-canvas>` component, use `Scene` component above to pass into `[sceneGraph]` input on `<ngt-canvas>`
141
-
142
- ```html
143
- <ngt-canvas [sceneGraph]="Scene" />
144
- ```
145
-
146
- - `ngt-canvas` creates the basic building blocks of THREE.js: a default `WebGLRenderer`, a default `Scene`, and a default `PerspectiveCamera`
147
-
148
- ## Contributions
149
-
150
- Contributions are welcomed
7
+ Run `nx test core` to execute the unit tests.
@@ -2,4 +2,4 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS9zcmMvYW5ndWxhci10aHJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvYW5ndWxhci10aHJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
package/esm2022/index.mjs CHANGED
@@ -1,25 +1,26 @@
1
+ export * from './lib/before-render';
1
2
  export * from './lib/canvas';
2
- export * from './lib/di/before-render';
3
- export * from './lib/di/catalogue';
4
- export * from './lib/di/ref';
5
3
  export * from './lib/directives/args';
4
+ export * from './lib/directives/key';
6
5
  export * from './lib/directives/parent';
7
6
  export * from './lib/directives/repeat';
7
+ export * from './lib/instance';
8
8
  export * from './lib/loader';
9
9
  export { addAfterEffect, addEffect, addTail } from './lib/loop';
10
10
  export { NgtPortal, NgtPortalContent } from './lib/portal';
11
+ export * from './lib/ref';
12
+ export * from './lib/renderer';
11
13
  export * from './lib/routed-scene';
12
- export * from './lib/stores/signal.store';
13
- export * from './lib/stores/store';
14
+ export * from './lib/store';
14
15
  export * from './lib/three-types';
15
16
  export * from './lib/types';
16
17
  export * from './lib/utils/apply-props';
17
- export * from './lib/utils/assert-in-injection-context';
18
+ export * from './lib/utils/assert-injection-context';
18
19
  export { createAttachFunction } from './lib/utils/attach';
19
- export * from './lib/utils/instance';
20
+ export * from './lib/utils/create-injection-token';
20
21
  export * from './lib/utils/is';
21
22
  export * from './lib/utils/make';
22
23
  export * from './lib/utils/safe-detect-changes';
23
- export * from './lib/utils/timing';
24
+ export * from './lib/utils/signal-store';
24
25
  export * from './lib/utils/update';
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzRCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2NhbnZhcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaS9iZWZvcmUtcmVuZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpL2NhdGFsb2d1ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaS9yZWYnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9hcmdzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvcGFyZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvcmVwZWF0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvYWRlcic7XG5leHBvcnQgeyBhZGRBZnRlckVmZmVjdCwgYWRkRWZmZWN0LCBhZGRUYWlsIH0gZnJvbSAnLi9saWIvbG9vcCc7XG5leHBvcnQgeyBOZ3RQb3J0YWwsIE5ndFBvcnRhbENvbnRlbnQgfSBmcm9tICcuL2xpYi9wb3J0YWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcm91dGVkLXNjZW5lJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0b3Jlcy9zaWduYWwuc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvcmVzL3N0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RocmVlLXR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2FwcGx5LXByb3BzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2Fzc2VydC1pbi1pbmplY3Rpb24tY29udGV4dCc7XG5leHBvcnQgeyBjcmVhdGVBdHRhY2hGdW5jdGlvbiB9IGZyb20gJy4vbGliL3V0aWxzL2F0dGFjaCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9pbnN0YW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9pcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9tYWtlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3NhZmUtZGV0ZWN0LWNoYW5nZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvdGltaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3VwZGF0ZSc7XG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNELGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2JlZm9yZS1yZW5kZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FudmFzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYXJncyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2tleSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3BhcmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3JlcGVhdCc7XG5leHBvcnQgeyB0eXBlIE5ndENhbWVyYSwgdHlwZSBOZ3RUaHJlZUV2ZW50IH0gZnJvbSAnLi9saWIvZXZlbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2luc3RhbmNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvYWRlcic7XG5leHBvcnQgeyBhZGRBZnRlckVmZmVjdCwgYWRkRWZmZWN0LCBhZGRUYWlsIH0gZnJvbSAnLi9saWIvbG9vcCc7XG5leHBvcnQgeyBOZ3RQb3J0YWwsIE5ndFBvcnRhbENvbnRlbnQgfSBmcm9tICcuL2xpYi9wb3J0YWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVmJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlbmRlcmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JvdXRlZC1zY2VuZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdG9yZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90aHJlZS10eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9hcHBseS1wcm9wcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9hc3NlcnQtaW5qZWN0aW9uLWNvbnRleHQnO1xuZXhwb3J0IHsgY3JlYXRlQXR0YWNoRnVuY3Rpb24gfSBmcm9tICcuL2xpYi91dGlscy9hdHRhY2gnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvY3JlYXRlLWluamVjdGlvbi10b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9pcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9tYWtlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3NhZmUtZGV0ZWN0LWNoYW5nZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvc2lnbmFsLXN0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3VwZGF0ZSc7XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { DestroyRef, inject, runInInjectionContext } from '@angular/core';
2
+ import { injectNgtStore } from './store';
3
+ import { assertInjectionContext } from './utils/assert-injection-context';
4
+ export function injectBeforeRender(cb, { priority = 0, injector } = {}) {
5
+ injector = assertInjectionContext(injectBeforeRender, injector);
6
+ return runInInjectionContext(injector, () => {
7
+ const store = injectNgtStore();
8
+ const sub = store.get('internal').subscribe(cb, priority, store);
9
+ inject(DestroyRef).onDestroy(() => void sub());
10
+ return sub;
11
+ });
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLXJlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2JlZm9yZS1yZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBOEIsTUFBTSxTQUFTLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFMUUsTUFBTSxVQUFVLGtCQUFrQixDQUNqQyxFQUFxQyxFQUNyQyxFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsUUFBUSxLQUFpRCxFQUFFO0lBRTNFLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRSxPQUFPLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDM0MsTUFBTSxLQUFLLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDL0IsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMvQyxPQUFPLEdBQUcsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIEluamVjdG9yLCBpbmplY3QsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0U3RvcmUsIHR5cGUgTmd0QmVmb3JlUmVuZGVyUmVjb3JkIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnLi91dGlscy9hc3NlcnQtaW5qZWN0aW9uLWNvbnRleHQnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QmVmb3JlUmVuZGVyKFxuXHRjYjogTmd0QmVmb3JlUmVuZGVyUmVjb3JkWydjYWxsYmFjayddLFxuXHR7IHByaW9yaXR5ID0gMCwgaW5qZWN0b3IgfTogeyBwcmlvcml0eT86IG51bWJlcjsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge30sXG4pIHtcblx0aW5qZWN0b3IgPSBhc3NlcnRJbmplY3Rpb25Db250ZXh0KGluamVjdEJlZm9yZVJlbmRlciwgaW5qZWN0b3IpO1xuXHRyZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3Qgc3RvcmUgPSBpbmplY3ROZ3RTdG9yZSgpO1xuXHRcdGNvbnN0IHN1YiA9IHN0b3JlLmdldCgnaW50ZXJuYWwnKS5zdWJzY3JpYmUoY2IsIHByaW9yaXR5LCBzdG9yZSk7XG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB2b2lkIHN1YigpKTtcblx0XHRyZXR1cm4gc3ViO1xuXHR9KTtcbn1cbiJdfQ==