@lightningjs/blits 1.30.0 → 1.30.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +7 -7
- package/.eslintignore +1 -1
- package/.eslintrc.cjs +65 -65
- package/.github/workflows/comment-lint-results.yml +124 -124
- package/.github/workflows/comment-test-results.yml +108 -108
- package/.github/workflows/deploy-docs.yml +27 -27
- package/.github/workflows/run-blits-tests.yml +141 -141
- package/.github/workflows/run-lint.yml +127 -127
- package/.husky/pre-commit +1 -1
- package/.vscode/extensions.json +7 -7
- package/.vscode/settings.json +9 -9
- package/CHANGELOG.md +1019 -1005
- package/COPYING +1 -0
- package/LICENSE +202 -202
- package/NOTICE +12 -12
- package/README.md +33 -33
- package/bin/index.js +8 -8
- package/blits.d.ts +6 -6
- package/docs/README.md +19 -19
- package/docs/_sidebar.md +37 -37
- package/docs/built-in/directives.md +50 -50
- package/docs/built-in/for-loop.md +203 -203
- package/docs/built-in/layout.md +168 -168
- package/docs/components/component_state.md +90 -90
- package/docs/components/computed_properties.md +45 -45
- package/docs/components/lifecycle_events.md +42 -42
- package/docs/components/methods.md +45 -45
- package/docs/components/props.md +56 -56
- package/docs/components/user_input.md +186 -186
- package/docs/components/utility_methods.md +320 -320
- package/docs/components/watchers.md +34 -34
- package/docs/essentials/application_root.md +19 -19
- package/docs/essentials/components.md +68 -68
- package/docs/essentials/displaying_images.md +67 -67
- package/docs/essentials/displaying_text.md +135 -135
- package/docs/essentials/element_attributes.md +195 -195
- package/docs/essentials/settings.md +117 -117
- package/docs/essentials/template_syntax.md +83 -83
- package/docs/getting_started/file_structure.md +58 -58
- package/docs/getting_started/getting_started.md +45 -45
- package/docs/getting_started/intro.md +20 -20
- package/docs/index.html +47 -47
- package/docs/performance/lazy-loading.md +161 -161
- package/docs/plugins/global_app_state.md +98 -98
- package/docs/plugins/language.md +172 -172
- package/docs/plugins/text-to-speech-announcer.md +119 -119
- package/docs/plugins/theme.md +176 -176
- package/docs/router/basics.md +175 -175
- package/docs/router/hooks.md +70 -70
- package/docs/router/transitions.md +146 -146
- package/docs/sidebar.json +171 -171
- package/docs/transitions_animations/transitions.md +150 -150
- package/index.d.ts +1099 -1099
- package/index.js +28 -28
- package/jsconfig.json +12 -12
- package/package.json +56 -56
- package/public/assets/fps_sprite.base64.js +1 -1
- package/scripts/postpublish.js +59 -59
- package/scripts/prepublishOnly.js +84 -84
- package/scripts/prepush.js +78 -78
- package/src/announcer/announcer.js +162 -162
- package/src/announcer/speechSynthesis.js +107 -107
- package/src/application.js +100 -100
- package/src/component/base/announcer.js +27 -27
- package/src/component/base/events.js +69 -69
- package/src/component/base/index.js +33 -33
- package/src/component/base/methods.js +244 -244
- package/src/component/base/router.js +41 -41
- package/src/component/base/timeouts_intervals.js +99 -99
- package/src/component/base/utils.js +72 -72
- package/src/component/setup/computed.js +48 -48
- package/src/component/setup/index.js +62 -62
- package/src/component/setup/input.js +30 -30
- package/src/component/setup/methods.js +37 -37
- package/src/component/setup/props.js +62 -62
- package/src/component/setup/props.test.js +238 -238
- package/src/component/setup/routes.js +42 -42
- package/src/component/setup/state.js +59 -59
- package/src/component/setup/watch.js +35 -35
- package/src/component.js +437 -437
- package/src/component.test.js +388 -388
- package/src/components/Circle.js +73 -73
- package/src/components/Circle.orig.js +31 -31
- package/src/components/FPScounter.js +1510 -1510
- package/src/components/FPScounter.orig.js +121 -121
- package/src/components/RouterView.js +81 -81
- package/src/components/RouterView.orig.js +54 -54
- package/src/components/Sprite.js +94 -94
- package/src/components/Sprite.orig.js +58 -58
- package/src/components/index.js +28 -28
- package/src/components/index.orig.js +28 -28
- package/src/constants.js +21 -21
- package/src/engine.js +1 -1
- package/src/engines/L3/element.js +744 -744
- package/src/engines/L3/element.test.js +579 -579
- package/src/engines/L3/fontLoader.js +38 -38
- package/src/engines/L3/index.js +7 -7
- package/src/engines/L3/launch.js +123 -123
- package/src/engines/L3/shaderLoader.js +12 -12
- package/src/engines/index.js +1 -1
- package/src/focus.js +90 -90
- package/src/helpers/deepEqualArray.js +50 -50
- package/src/helpers/deepEqualArray.test.js +127 -127
- package/src/helpers/fetchJson.js +34 -34
- package/src/helpers/sequence.js +26 -26
- package/src/launch.js +123 -123
- package/src/lib/blitsfileconverter/blitsfileconverter.js +52 -52
- package/src/lib/codegenerator/generator.js +788 -788
- package/src/lib/codegenerator/generator.test.js +3801 -3801
- package/src/lib/colors/colors.js +92 -92
- package/src/lib/colors/colors.test.js +290 -290
- package/src/lib/colors/htmlColors.js +168 -168
- package/src/lib/componentId.js +49 -49
- package/src/lib/componentId.test.js +84 -84
- package/src/lib/eventListeners.js +123 -123
- package/src/lib/eventListeners.test.js +236 -236
- package/src/lib/hooks.js +59 -59
- package/src/lib/lifecycle.js +85 -85
- package/src/lib/log.js +117 -117
- package/src/lib/precompiler/precompiler.js +73 -73
- package/src/lib/reactivity/effect.js +93 -93
- package/src/lib/reactivity/effect.test.js +35 -35
- package/src/lib/reactivity/reactive.js +208 -208
- package/src/lib/reactivity/reactive.test.js +27 -27
- package/src/lib/reactivityguard/computedprops.js +218 -218
- package/src/lib/symbols.js +108 -108
- package/src/lib/templateparser/parser.js +386 -386
- package/src/lib/templateparser/parser.test.js +1411 -1411
- package/src/lib/utils.js +27 -27
- package/src/plugin.js +27 -27
- package/src/plugins/appstate.js +26 -26
- package/src/plugins/index.js +20 -20
- package/src/plugins/language.js +152 -152
- package/src/plugins/log.js +25 -25
- package/src/plugins/theme.js +94 -94
- package/src/router/router.js +514 -514
- package/src/router/router.test.js +473 -473
- package/src/router/transitions/fadeIn.js +27 -27
- package/src/router/transitions/fadeInOut.js +33 -33
- package/src/router/transitions/index.js +21 -21
- package/src/router/transitions/slideIn.js +28 -28
- package/src/router/transitions/slideInOut.js +33 -33
- package/src/settings.js +40 -40
- package/vite/blitsFileConverter.js +67 -67
- package/vite/index.js +28 -28
- package/vite/msdfGenerator.js +269 -269
- package/vite/preCompiler.js +42 -42
- package/vite/reactivityGuard.js +45 -45
- package/vscode/data/template-attributes.json +589 -589
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2024 Comcast Cable Communications Management, LLC
|
|
3
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
* you may not use this file except in compliance with the License.
|
|
5
|
-
* You may obtain a copy of the License at
|
|
6
|
-
*
|
|
7
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
*
|
|
9
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
* See the License for the specific language governing permissions and
|
|
13
|
-
* limitations under the License.
|
|
14
|
-
*
|
|
15
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import symbols from '../../lib/symbols.js'
|
|
19
|
-
|
|
20
|
-
export default {
|
|
21
|
-
$setTimeout: {
|
|
22
|
-
value: function (fn, ms, ...params) {
|
|
23
|
-
// early exit when component is marked as end of life
|
|
24
|
-
if (this.eol === true) return
|
|
25
|
-
|
|
26
|
-
const timeoutId = setTimeout(
|
|
27
|
-
() => {
|
|
28
|
-
this.$clearTimeout(timeoutId)
|
|
29
|
-
fn.apply(null, params)
|
|
30
|
-
},
|
|
31
|
-
ms,
|
|
32
|
-
params
|
|
33
|
-
)
|
|
34
|
-
this[symbols.timeouts].push(timeoutId)
|
|
35
|
-
return timeoutId
|
|
36
|
-
},
|
|
37
|
-
writable: false,
|
|
38
|
-
enumerable: true,
|
|
39
|
-
configurable: false,
|
|
40
|
-
},
|
|
41
|
-
$clearTimeout: {
|
|
42
|
-
value: function (timeoutId) {
|
|
43
|
-
const index = this[symbols.timeouts].indexOf(timeoutId)
|
|
44
|
-
if (index > -1) {
|
|
45
|
-
this[symbols.timeouts].splice(index, 1)
|
|
46
|
-
clearTimeout(timeoutId)
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
writable: false,
|
|
50
|
-
enumerable: true,
|
|
51
|
-
configurable: false,
|
|
52
|
-
},
|
|
53
|
-
$clearTimeouts: {
|
|
54
|
-
value: function () {
|
|
55
|
-
for (let i = 0; i < this[symbols.timeouts].length; i++) {
|
|
56
|
-
clearTimeout(this[symbols.timeouts][i])
|
|
57
|
-
}
|
|
58
|
-
this[symbols.timeouts] = []
|
|
59
|
-
},
|
|
60
|
-
writable: false,
|
|
61
|
-
enumerable: true,
|
|
62
|
-
configurable: false,
|
|
63
|
-
},
|
|
64
|
-
$setInterval: {
|
|
65
|
-
value: function (fn, ms, ...params) {
|
|
66
|
-
// early exit when component is marked as end of life
|
|
67
|
-
if (this.eol === true) return
|
|
68
|
-
const intervalId = setInterval(() => fn.apply(null, params), ms, params)
|
|
69
|
-
this[symbols.intervals].push(intervalId)
|
|
70
|
-
return intervalId
|
|
71
|
-
},
|
|
72
|
-
writable: false,
|
|
73
|
-
enumerable: true,
|
|
74
|
-
configurable: false,
|
|
75
|
-
},
|
|
76
|
-
$clearInterval: {
|
|
77
|
-
value: function (intervalId) {
|
|
78
|
-
const index = this[symbols.intervals].indexOf(intervalId)
|
|
79
|
-
if (index > -1) {
|
|
80
|
-
this[symbols.intervals].splice(index, 1)
|
|
81
|
-
clearTimeout(intervalId)
|
|
82
|
-
}
|
|
83
|
-
},
|
|
84
|
-
writable: false,
|
|
85
|
-
enumerable: true,
|
|
86
|
-
configurable: false,
|
|
87
|
-
},
|
|
88
|
-
$clearIntervals: {
|
|
89
|
-
value: function () {
|
|
90
|
-
for (let i = 0; i < this[symbols.intervals].length; i++) {
|
|
91
|
-
clearInterval(this[symbols.intervals][i])
|
|
92
|
-
}
|
|
93
|
-
this[symbols.intervals] = []
|
|
94
|
-
},
|
|
95
|
-
writable: false,
|
|
96
|
-
enumerable: true,
|
|
97
|
-
configurable: false,
|
|
98
|
-
},
|
|
99
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Comcast Cable Communications Management, LLC
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*
|
|
15
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import symbols from '../../lib/symbols.js'
|
|
19
|
+
|
|
20
|
+
export default {
|
|
21
|
+
$setTimeout: {
|
|
22
|
+
value: function (fn, ms, ...params) {
|
|
23
|
+
// early exit when component is marked as end of life
|
|
24
|
+
if (this.eol === true) return
|
|
25
|
+
|
|
26
|
+
const timeoutId = setTimeout(
|
|
27
|
+
() => {
|
|
28
|
+
this.$clearTimeout(timeoutId)
|
|
29
|
+
fn.apply(null, params)
|
|
30
|
+
},
|
|
31
|
+
ms,
|
|
32
|
+
params
|
|
33
|
+
)
|
|
34
|
+
this[symbols.timeouts].push(timeoutId)
|
|
35
|
+
return timeoutId
|
|
36
|
+
},
|
|
37
|
+
writable: false,
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: false,
|
|
40
|
+
},
|
|
41
|
+
$clearTimeout: {
|
|
42
|
+
value: function (timeoutId) {
|
|
43
|
+
const index = this[symbols.timeouts].indexOf(timeoutId)
|
|
44
|
+
if (index > -1) {
|
|
45
|
+
this[symbols.timeouts].splice(index, 1)
|
|
46
|
+
clearTimeout(timeoutId)
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
writable: false,
|
|
50
|
+
enumerable: true,
|
|
51
|
+
configurable: false,
|
|
52
|
+
},
|
|
53
|
+
$clearTimeouts: {
|
|
54
|
+
value: function () {
|
|
55
|
+
for (let i = 0; i < this[symbols.timeouts].length; i++) {
|
|
56
|
+
clearTimeout(this[symbols.timeouts][i])
|
|
57
|
+
}
|
|
58
|
+
this[symbols.timeouts] = []
|
|
59
|
+
},
|
|
60
|
+
writable: false,
|
|
61
|
+
enumerable: true,
|
|
62
|
+
configurable: false,
|
|
63
|
+
},
|
|
64
|
+
$setInterval: {
|
|
65
|
+
value: function (fn, ms, ...params) {
|
|
66
|
+
// early exit when component is marked as end of life
|
|
67
|
+
if (this.eol === true) return
|
|
68
|
+
const intervalId = setInterval(() => fn.apply(null, params), ms, params)
|
|
69
|
+
this[symbols.intervals].push(intervalId)
|
|
70
|
+
return intervalId
|
|
71
|
+
},
|
|
72
|
+
writable: false,
|
|
73
|
+
enumerable: true,
|
|
74
|
+
configurable: false,
|
|
75
|
+
},
|
|
76
|
+
$clearInterval: {
|
|
77
|
+
value: function (intervalId) {
|
|
78
|
+
const index = this[symbols.intervals].indexOf(intervalId)
|
|
79
|
+
if (index > -1) {
|
|
80
|
+
this[symbols.intervals].splice(index, 1)
|
|
81
|
+
clearTimeout(intervalId)
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
writable: false,
|
|
85
|
+
enumerable: true,
|
|
86
|
+
configurable: false,
|
|
87
|
+
},
|
|
88
|
+
$clearIntervals: {
|
|
89
|
+
value: function () {
|
|
90
|
+
for (let i = 0; i < this[symbols.intervals].length; i++) {
|
|
91
|
+
clearInterval(this[symbols.intervals][i])
|
|
92
|
+
}
|
|
93
|
+
this[symbols.intervals] = []
|
|
94
|
+
},
|
|
95
|
+
writable: false,
|
|
96
|
+
enumerable: true,
|
|
97
|
+
configurable: false,
|
|
98
|
+
},
|
|
99
|
+
}
|
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2024 Comcast Cable Communications Management, LLC
|
|
3
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
* you may not use this file except in compliance with the License.
|
|
5
|
-
* You may obtain a copy of the License at
|
|
6
|
-
*
|
|
7
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
*
|
|
9
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
* See the License for the specific language governing permissions and
|
|
13
|
-
* limitations under the License.
|
|
14
|
-
*
|
|
15
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import symbols from '../../lib/symbols.js'
|
|
19
|
-
|
|
20
|
-
import { renderer } from '../../launch.js'
|
|
21
|
-
|
|
22
|
-
export default {
|
|
23
|
-
$size: {
|
|
24
|
-
value: function (dimensions = { w: 0, h: 0 }) {
|
|
25
|
-
this[symbols.holder].set('w', dimensions.w || 0)
|
|
26
|
-
this[symbols.holder].set('h', dimensions.h || 0)
|
|
27
|
-
},
|
|
28
|
-
writable: false,
|
|
29
|
-
enumerable: true,
|
|
30
|
-
configurable: false,
|
|
31
|
-
},
|
|
32
|
-
[symbols.renderer]: {
|
|
33
|
-
value: () => renderer,
|
|
34
|
-
writable: false,
|
|
35
|
-
enumerable: true,
|
|
36
|
-
configurable: false,
|
|
37
|
-
},
|
|
38
|
-
[symbols.getChildren]: {
|
|
39
|
-
value() {
|
|
40
|
-
const parent = this.rootParent || this.parent
|
|
41
|
-
return (this[symbols.children] || []).concat(
|
|
42
|
-
(parent &&
|
|
43
|
-
parent[symbols.getChildren]()
|
|
44
|
-
.map((child) => {
|
|
45
|
-
if (Object.getPrototypeOf(child) === Object.prototype) {
|
|
46
|
-
return Object.values(child).map((c) => {
|
|
47
|
-
// ugly hack .. but the point is to reference the right component
|
|
48
|
-
c.forComponent =
|
|
49
|
-
c[Symbol.for('config')] && c[Symbol.for('config')].parent.component
|
|
50
|
-
return c
|
|
51
|
-
})
|
|
52
|
-
}
|
|
53
|
-
return child
|
|
54
|
-
})
|
|
55
|
-
.flat()
|
|
56
|
-
.filter((child) => {
|
|
57
|
-
// problem is that component of a forloop in a slot has component of root component
|
|
58
|
-
if (child && child.component) {
|
|
59
|
-
return (
|
|
60
|
-
(child.component && child.component.componentId === this.componentId) ||
|
|
61
|
-
(child.forComponent && child.forComponent.componentId === this.componentId)
|
|
62
|
-
)
|
|
63
|
-
}
|
|
64
|
-
})) ||
|
|
65
|
-
[]
|
|
66
|
-
)
|
|
67
|
-
},
|
|
68
|
-
writable: false,
|
|
69
|
-
enumerable: true,
|
|
70
|
-
configurable: false,
|
|
71
|
-
},
|
|
72
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Comcast Cable Communications Management, LLC
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*
|
|
15
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import symbols from '../../lib/symbols.js'
|
|
19
|
+
|
|
20
|
+
import { renderer } from '../../launch.js'
|
|
21
|
+
|
|
22
|
+
export default {
|
|
23
|
+
$size: {
|
|
24
|
+
value: function (dimensions = { w: 0, h: 0 }) {
|
|
25
|
+
this[symbols.holder].set('w', dimensions.w || 0)
|
|
26
|
+
this[symbols.holder].set('h', dimensions.h || 0)
|
|
27
|
+
},
|
|
28
|
+
writable: false,
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: false,
|
|
31
|
+
},
|
|
32
|
+
[symbols.renderer]: {
|
|
33
|
+
value: () => renderer,
|
|
34
|
+
writable: false,
|
|
35
|
+
enumerable: true,
|
|
36
|
+
configurable: false,
|
|
37
|
+
},
|
|
38
|
+
[symbols.getChildren]: {
|
|
39
|
+
value() {
|
|
40
|
+
const parent = this.rootParent || this.parent
|
|
41
|
+
return (this[symbols.children] || []).concat(
|
|
42
|
+
(parent &&
|
|
43
|
+
parent[symbols.getChildren]()
|
|
44
|
+
.map((child) => {
|
|
45
|
+
if (Object.getPrototypeOf(child) === Object.prototype) {
|
|
46
|
+
return Object.values(child).map((c) => {
|
|
47
|
+
// ugly hack .. but the point is to reference the right component
|
|
48
|
+
c.forComponent =
|
|
49
|
+
c[Symbol.for('config')] && c[Symbol.for('config')].parent.component
|
|
50
|
+
return c
|
|
51
|
+
})
|
|
52
|
+
}
|
|
53
|
+
return child
|
|
54
|
+
})
|
|
55
|
+
.flat()
|
|
56
|
+
.filter((child) => {
|
|
57
|
+
// problem is that component of a forloop in a slot has component of root component
|
|
58
|
+
if (child && child.component) {
|
|
59
|
+
return (
|
|
60
|
+
(child.component && child.component.componentId === this.componentId) ||
|
|
61
|
+
(child.forComponent && child.forComponent.componentId === this.componentId)
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
})) ||
|
|
65
|
+
[]
|
|
66
|
+
)
|
|
67
|
+
},
|
|
68
|
+
writable: false,
|
|
69
|
+
enumerable: true,
|
|
70
|
+
configurable: false,
|
|
71
|
+
},
|
|
72
|
+
}
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2023 Comcast Cable Communications Management, LLC
|
|
3
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
* you may not use this file except in compliance with the License.
|
|
5
|
-
* You may obtain a copy of the License at
|
|
6
|
-
*
|
|
7
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
*
|
|
9
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
* See the License for the specific language governing permissions and
|
|
13
|
-
* limitations under the License.
|
|
14
|
-
*
|
|
15
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import { Log } from '../../lib/log.js'
|
|
19
|
-
|
|
20
|
-
import symbols from '../../lib/symbols.js'
|
|
21
|
-
|
|
22
|
-
export default (component, computeds) => {
|
|
23
|
-
component[symbols.computedKeys] = []
|
|
24
|
-
|
|
25
|
-
for (let computed in computeds) {
|
|
26
|
-
// test for reserved keys?
|
|
27
|
-
if (component[symbols.stateKeys] && component[symbols.stateKeys].indexOf(computed) > -1) {
|
|
28
|
-
Log.error(`${computed} already exists as a state variable`)
|
|
29
|
-
} else if (component[symbols.propKeys] && component[symbols.propKeys].indexOf(computed) > -1) {
|
|
30
|
-
Log.error(`${computed} already exists as a prop`)
|
|
31
|
-
} else if (
|
|
32
|
-
component[symbols.methodKeys] &&
|
|
33
|
-
component[symbols.methodKeys].indexOf(computed) > -1
|
|
34
|
-
) {
|
|
35
|
-
Log.error(`${computed} already exists as a method`)
|
|
36
|
-
} else {
|
|
37
|
-
if (typeof computeds[computed] !== 'function') {
|
|
38
|
-
Log.warn(`${computed} is not a function`)
|
|
39
|
-
}
|
|
40
|
-
component[symbols.computedKeys].push(computed)
|
|
41
|
-
Object.defineProperty(component, computed, {
|
|
42
|
-
get() {
|
|
43
|
-
return computeds[computed].apply(this)
|
|
44
|
-
},
|
|
45
|
-
})
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Comcast Cable Communications Management, LLC
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*
|
|
15
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { Log } from '../../lib/log.js'
|
|
19
|
+
|
|
20
|
+
import symbols from '../../lib/symbols.js'
|
|
21
|
+
|
|
22
|
+
export default (component, computeds) => {
|
|
23
|
+
component[symbols.computedKeys] = []
|
|
24
|
+
|
|
25
|
+
for (let computed in computeds) {
|
|
26
|
+
// test for reserved keys?
|
|
27
|
+
if (component[symbols.stateKeys] && component[symbols.stateKeys].indexOf(computed) > -1) {
|
|
28
|
+
Log.error(`${computed} already exists as a state variable`)
|
|
29
|
+
} else if (component[symbols.propKeys] && component[symbols.propKeys].indexOf(computed) > -1) {
|
|
30
|
+
Log.error(`${computed} already exists as a prop`)
|
|
31
|
+
} else if (
|
|
32
|
+
component[symbols.methodKeys] &&
|
|
33
|
+
component[symbols.methodKeys].indexOf(computed) > -1
|
|
34
|
+
) {
|
|
35
|
+
Log.error(`${computed} already exists as a method`)
|
|
36
|
+
} else {
|
|
37
|
+
if (typeof computeds[computed] !== 'function') {
|
|
38
|
+
Log.warn(`${computed} is not a function`)
|
|
39
|
+
}
|
|
40
|
+
component[symbols.computedKeys].push(computed)
|
|
41
|
+
Object.defineProperty(component, computed, {
|
|
42
|
+
get() {
|
|
43
|
+
return computeds[computed].apply(this)
|
|
44
|
+
},
|
|
45
|
+
})
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2024 Comcast Cable Communications Management, LLC
|
|
3
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
* you may not use this file except in compliance with the License.
|
|
5
|
-
* You may obtain a copy of the License at
|
|
6
|
-
*
|
|
7
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
*
|
|
9
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
* See the License for the specific language governing permissions and
|
|
13
|
-
* limitations under the License.
|
|
14
|
-
*
|
|
15
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import setupProps from './props.js'
|
|
19
|
-
import setupMethods from './methods.js'
|
|
20
|
-
import setupState from './state.js'
|
|
21
|
-
import setupComputed from './computed.js'
|
|
22
|
-
import setupInput from './input.js'
|
|
23
|
-
import setupRouter from './routes.js'
|
|
24
|
-
import setupWatch from './watch.js'
|
|
25
|
-
|
|
26
|
-
import { registerHooks } from '../../lib/hooks.js'
|
|
27
|
-
|
|
28
|
-
import symbols from '../../lib/symbols.js'
|
|
29
|
-
|
|
30
|
-
let counter = 0
|
|
31
|
-
|
|
32
|
-
export default function (component, config) {
|
|
33
|
-
component[symbols.identifier] = ++counter
|
|
34
|
-
|
|
35
|
-
// setup hooks
|
|
36
|
-
registerHooks(config.hooks, component[symbols.identifier])
|
|
37
|
-
|
|
38
|
-
// setup props
|
|
39
|
-
// if (config.props) // because of the default props like id - might change this
|
|
40
|
-
setupProps(component, config.props)
|
|
41
|
-
|
|
42
|
-
// // setup methods
|
|
43
|
-
if (config.methods) setupMethods(component, config.methods)
|
|
44
|
-
|
|
45
|
-
// // setup state
|
|
46
|
-
setupState(component, config.state)
|
|
47
|
-
|
|
48
|
-
// // setup computed
|
|
49
|
-
if (config.computed) setupComputed(component, config.computed)
|
|
50
|
-
|
|
51
|
-
// // setup watchers
|
|
52
|
-
if (config.watch) setupWatch(component, config.watch)
|
|
53
|
-
|
|
54
|
-
// // setup router
|
|
55
|
-
const routerConfig = config.router !== undefined ? config.router : config.routes
|
|
56
|
-
if (routerConfig !== undefined) setupRouter(component, routerConfig)
|
|
57
|
-
|
|
58
|
-
// // setup input
|
|
59
|
-
if (config.input) setupInput(component, config.input)
|
|
60
|
-
|
|
61
|
-
return component
|
|
62
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Comcast Cable Communications Management, LLC
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*
|
|
15
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import setupProps from './props.js'
|
|
19
|
+
import setupMethods from './methods.js'
|
|
20
|
+
import setupState from './state.js'
|
|
21
|
+
import setupComputed from './computed.js'
|
|
22
|
+
import setupInput from './input.js'
|
|
23
|
+
import setupRouter from './routes.js'
|
|
24
|
+
import setupWatch from './watch.js'
|
|
25
|
+
|
|
26
|
+
import { registerHooks } from '../../lib/hooks.js'
|
|
27
|
+
|
|
28
|
+
import symbols from '../../lib/symbols.js'
|
|
29
|
+
|
|
30
|
+
let counter = 0
|
|
31
|
+
|
|
32
|
+
export default function (component, config) {
|
|
33
|
+
component[symbols.identifier] = ++counter
|
|
34
|
+
|
|
35
|
+
// setup hooks
|
|
36
|
+
registerHooks(config.hooks, component[symbols.identifier])
|
|
37
|
+
|
|
38
|
+
// setup props
|
|
39
|
+
// if (config.props) // because of the default props like id - might change this
|
|
40
|
+
setupProps(component, config.props)
|
|
41
|
+
|
|
42
|
+
// // setup methods
|
|
43
|
+
if (config.methods) setupMethods(component, config.methods)
|
|
44
|
+
|
|
45
|
+
// // setup state
|
|
46
|
+
setupState(component, config.state)
|
|
47
|
+
|
|
48
|
+
// // setup computed
|
|
49
|
+
if (config.computed) setupComputed(component, config.computed)
|
|
50
|
+
|
|
51
|
+
// // setup watchers
|
|
52
|
+
if (config.watch) setupWatch(component, config.watch)
|
|
53
|
+
|
|
54
|
+
// // setup router
|
|
55
|
+
const routerConfig = config.router !== undefined ? config.router : config.routes
|
|
56
|
+
if (routerConfig !== undefined) setupRouter(component, routerConfig)
|
|
57
|
+
|
|
58
|
+
// // setup input
|
|
59
|
+
if (config.input) setupInput(component, config.input)
|
|
60
|
+
|
|
61
|
+
return component
|
|
62
|
+
}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2023 Comcast Cable Communications Management, LLC
|
|
3
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
* you may not use this file except in compliance with the License.
|
|
5
|
-
* You may obtain a copy of the License at
|
|
6
|
-
*
|
|
7
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
*
|
|
9
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
* See the License for the specific language governing permissions and
|
|
13
|
-
* limitations under the License.
|
|
14
|
-
*
|
|
15
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import { Log } from '../../lib/log.js'
|
|
19
|
-
|
|
20
|
-
import symbols from '../../lib/symbols.js'
|
|
21
|
-
|
|
22
|
-
export default (component, input) => {
|
|
23
|
-
component[symbols.inputEvents] = []
|
|
24
|
-
Object.keys(input).forEach((key) => {
|
|
25
|
-
if (typeof input[key] !== 'function') {
|
|
26
|
-
Log.warn(`${input[key]} is not a function`)
|
|
27
|
-
}
|
|
28
|
-
component[symbols.inputEvents][key] = input[key]
|
|
29
|
-
})
|
|
30
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Comcast Cable Communications Management, LLC
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*
|
|
15
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { Log } from '../../lib/log.js'
|
|
19
|
+
|
|
20
|
+
import symbols from '../../lib/symbols.js'
|
|
21
|
+
|
|
22
|
+
export default (component, input) => {
|
|
23
|
+
component[symbols.inputEvents] = []
|
|
24
|
+
Object.keys(input).forEach((key) => {
|
|
25
|
+
if (typeof input[key] !== 'function') {
|
|
26
|
+
Log.warn(`${input[key]} is not a function`)
|
|
27
|
+
}
|
|
28
|
+
component[symbols.inputEvents][key] = input[key]
|
|
29
|
+
})
|
|
30
|
+
}
|