diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 3c3629e6..00000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 78563e61..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "root": true, - "ignorePatterns": ["**/*"], - "plugins": ["@nx"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": { - "@nx/enforce-module-boundaries": [ - "error", - { - "enforceBuildableLibDependency": true, - "allow": [], - "depConstraints": [ - { - "sourceTag": "*", - "onlyDependOnLibsWithTags": ["*"] - } - ] - } - ] - } - }, - { - "files": ["*.ts", "*.tsx"], - "extends": ["plugin:@nx/typescript"], - "rules": { - "@typescript-eslint/no-extra-semi": "error", - "no-extra-semi": "off" - } - }, - { - "files": ["*.js", "*.jsx"], - "extends": ["plugin:@nx/javascript"], - "rules": { - "@typescript-eslint/no-extra-semi": "error", - "no-extra-semi": "off" - } - }, - { - "files": ["*.spec.ts", "*.spec.tsx", "*.spec.js", "*.spec.jsx"], - "env": { - "jest": true - }, - "rules": {} - }, - { - "files": "*.json", - "parser": "jsonc-eslint-parser", - "rules": {} - } - ] -} diff --git a/.gitignore b/.gitignore index 3ba476b0..9bc7b66c 100644 --- a/.gitignore +++ b/.gitignore @@ -42,4 +42,7 @@ Thumbs.db .env .nx/cache -.nx/workspace-data \ No newline at end of file +.nx/workspace-data + +vite.config.*.timestamp* +vitest.config.*.timestamp* \ No newline at end of file diff --git a/.prettierrc b/.prettierrc index 938b61cd..e8c9c5a4 100644 --- a/.prettierrc +++ b/.prettierrc @@ -5,12 +5,12 @@ "printWidth": 120, "plugins": ["prettier-plugin-organize-imports"], "htmlWhitespaceSensitivity": "ignore", - "overrides": [ - { - "files": "*.analog", - "options": { - "parser": "angular" - } - } - ] + "overrides": [ + { + "files": "*.analog", + "options": { + "parser": "angular" + } + } + ] } diff --git a/.release-it.json b/.release-it.json deleted file mode 100644 index 6ba0a3b0..00000000 --- a/.release-it.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "plugins": { - "@release-it/conventional-changelog": { - "preset": { - "name": "conventionalcommits", - "types": [ - { - "type": "feat", - "section": "Features" - }, - { - "type": "fix", - "section": "Bug Fixes" - }, - { - "type": "cleanup", - "section": "Cleanup" - }, - { - "type": "docs", - "section": "Documentations" - } - ] - }, - "infile": "CHANGELOG.md" - }, - "@release-it/bumper": { - "in": "libs/core/version.json", - "out": ["libs/core/version.json", "dist/libs/**/package.json"] - } - }, - "git": { - "commitMessage": "chore: release ${version}" - }, - "npm": { - "publish": false - }, - "github": { - "release": true, - "releaseName": "Release ${version}" - }, - "hooks": { - "before:bump": "pnpm exec nx package core", - "after:bump": "git checkout -- package.json" - } -} diff --git a/.vscode/settings.json b/.vscode/settings.json index d9bc3106..f7504d53 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,4 @@ { "eslint.validate": ["json"], - "html.customData": [ - "./node_modules/angular-three/metadata.json", - "./node_modules/angular-three-soba/metadata.json" - ] + "html.customData": ["./node_modules/angular-three/metadata.json", "./node_modules/angular-three-soba/metadata.json"] } diff --git a/.ws-context b/.ws-context index 6d4035d9..ae16dc48 100644 --- a/.ws-context +++ b/.ws-context @@ -1,9 +1,9 @@ { "framework": "angular", - "angular-template-syntax": "V_17", + "angular-template-syntax": "V_18_1", "apps/**/*.analog": { "framework": "angular", - "angular-template-syntax": "V_17" + "angular-template-syntax": "V_18_1" } } diff --git a/CHANGELOG.md b/CHANGELOG.md index 478798fd..3dab0f78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,663 @@ +## 3.7.2 (2025-02-01) + +### 🩹 Fixes + +- **core:** make sure getAttribute is configurable ([48e64797](https://github.com/angular-threejs/angular-three/commit/48e64797)) + +### ❤️ Thank You + +- nartc + +## 3.7.1 (2025-01-26) + +This was a version bump only, there were no code changes. + +## 3.7.0 (2025-01-18) + +### 🚀 Features + +- **core:** expose rendered output with the component ref ([f4bc584](https://github.com/angular-threejs/angular-three/commit/f4bc584)) + +### ❤️ Thank You + +- nartc + +## 3.6.1 (2025-01-18) + +### 🩹 Fixes + +- **core:** add dummy getAttribute fn to rendererNode for ssr ([1a37c1a](https://github.com/angular-threejs/angular-three/commit/1a37c1a)) + +### ❤️ Thank You + +- nartc + +## 3.6.0 (2025-01-11) + +### 🚀 Features + +- **cannon:** bump three 172 ([126b126](https://github.com/angular-threejs/angular-three/commit/126b126)) +- **core:** bump three 172 ([fbb1531](https://github.com/angular-threejs/angular-three/commit/fbb1531)) +- **postprocessing:** bump three 172 ([28de882](https://github.com/angular-threejs/angular-three/commit/28de882)) +- **rapier:** bump three 172 ([580972f](https://github.com/angular-threejs/angular-three/commit/580972f)) +- **soba:** bump three 172 ([ef5655a](https://github.com/angular-threejs/angular-three/commit/ef5655a)) + +### 🩹 Fixes + +- **core:** loosen instanceof check ([b7650b2](https://github.com/angular-threejs/angular-three/commit/b7650b2)) +- **core:** null check first before isTexture ([ebd3c3a](https://github.com/angular-threejs/angular-three/commit/ebd3c3a)) +- **soba:** dispose texture on environment cube destroyed ([4a23c73](https://github.com/angular-threejs/angular-three/commit/4a23c73)) + +### ❤️ Thank You + +- nartc + +## 3.5.0 (2025-01-11) + +### 🚀 Features + +- **soba:** add isReady getter for animation api to help with type-narrow ([3ca940d](https://github.com/angular-threejs/angular-three/commit/3ca940d)) + +### ❤️ Thank You + +- nartc + +## 3.4.1 (2025-01-08) + +### 🩹 Fixes + +- **postprocessing:** ngtp tone mapping selector ([e816059](https://github.com/angular-threejs/angular-three/commit/e816059)) + +### ❤️ Thank You + +- nartc + +## 3.4.0 (2025-01-08) + +### 🚀 Features + +- **core:** add parent directive for special attach case ([7f78a4c](https://github.com/angular-threejs/angular-three/commit/7f78a4c)) + +### 🩹 Fixes + +- **core:** make sure previousAttach exists before invoking ([b5d3ae6](https://github.com/angular-threejs/angular-three/commit/b5d3ae6)) +- **core:** adjust NgtRouterOutlet to make a new env injector with parent ([ae16c92](https://github.com/angular-threejs/angular-three/commit/ae16c92)) +- **core:** move resolve parent to the directive itself ([0ec724a](https://github.com/angular-threejs/angular-three/commit/0ec724a)) +- **postprocessing:** update tonemapping to not use CONVOLUTION ([a6a7567](https://github.com/angular-threejs/angular-three/commit/a6a7567)) +- **postprocessing:** export name for tone mapping ([abe0100](https://github.com/angular-threejs/angular-three/commit/abe0100)) + +### ❤️ Thank You + +- nartc + +## 3.3.0 (2025-01-07) + +### 🩹 Fixes + +- **soba:** adjust injectGLTF generics ([41b95c4](https://github.com/angular-threejs/angular-three/commit/41b95c4)) + +### ❤️ Thank You + +- nartc + +## 3.2.4 (2025-01-07) + +### 🩹 Fixes + +- **core:** get parent in removeChild from parentNode; do not remove children if oldChild is scene ([2807f68](https://github.com/angular-threejs/angular-three/commit/2807f68)) +- **soba:** move makeDefault up for controls ([9d05d0c](https://github.com/angular-threejs/angular-three/commit/9d05d0c)) + +### ❤️ Thank You + +- nartc + +## 3.2.3 (2025-01-06) + +### 🩹 Fixes + +- **core:** check against previous args and do nothing if they're the same references ([d24c136](https://github.com/angular-threejs/angular-three/commit/d24c136)) +- **core:** use custom equality fn for parameters ([3c0cdfe](https://github.com/angular-threejs/angular-three/commit/3c0cdfe)) + +### ❤️ Thank You + +- nartc + +## 3.2.2 (2025-01-05) + +### 🩹 Fixes + +- **core:** null check remove call ([065efff](https://github.com/angular-threejs/angular-three/commit/065efff)) + +### ❤️ Thank You + +- nartc + +## 3.2.1 (2025-01-05) + +### 🩹 Fixes + +- **core:** check for lS.parent before calling untracked on it ([b4bf14d](https://github.com/angular-threejs/angular-three/commit/b4bf14d)) +- **soba:** setPoints should receive optional mid in quadratic bezier line ([909b27c](https://github.com/angular-threejs/angular-three/commit/909b27c)) +- **soba:** bind offset to position on pivot controls instead of effect ([c4128ed](https://github.com/angular-threejs/angular-three/commit/c4128ed)) + +### ❤️ Thank You + +- nartc + +## 3.2.0 (2025-01-05) + +### 🩹 Fixes + +- **cannon:** remove standalone: true ([b5e56e7](https://github.com/angular-threejs/angular-three/commit/b5e56e7)) +- **cannon:** remove unnecessary untracked ([de8a3e9](https://github.com/angular-threejs/angular-three/commit/de8a3e9)) +- **core:** remove standalone true ([0a38f33](https://github.com/angular-threejs/angular-three/commit/0a38f33)) +- **core:** remove unnecessary untracked ([a837583](https://github.com/angular-threejs/angular-three/commit/a837583)) +- **postprocessing:** remove standalone true ([195ea58](https://github.com/angular-threejs/angular-three/commit/195ea58)) +- **rapier:** remove standalone true ([fa304b9](https://github.com/angular-threejs/angular-three/commit/fa304b9)) +- **rapier:** remove unnecessary untracked ([f994937](https://github.com/angular-threejs/angular-three/commit/f994937)) +- **soba:** remove standalone true ([f894178](https://github.com/angular-threejs/angular-three/commit/f894178)) +- **soba:** remove unnecessary untracked ([5a976ef](https://github.com/angular-threejs/angular-three/commit/5a976ef)) + +### ❤️ Thank You + +- nartc + +## 3.1.0 (2025-01-05) + +### 🩹 Fixes + +- **core:** adjust versions for generator ([746039b](https://github.com/angular-threejs/angular-three/commit/746039b)) + +### ❤️ Thank You + +- nartc + +# 3.0.0 (2025-01-05) + +### 🚀 Features + +- ⚠️ **core:** remove NgtObjectEventsHostDirective short-cut ([0ab2a6e](https://github.com/angular-threejs/angular-three/commit/0ab2a6e)) +- **core:** promote core/testing to stable ([d6c5421](https://github.com/angular-threejs/angular-three/commit/d6c5421)) +- ⚠️ **rapier:** remove deprecated properties ([be09add](https://github.com/angular-threejs/angular-three/commit/be09add)) +- **repo:** migrate nx and angular ([f91595c](https://github.com/angular-threejs/angular-three/commit/f91595c)) +- **repo:** bump peer deps ([21a5f61](https://github.com/angular-threejs/angular-three/commit/21a5f61)) +- ⚠️ **soba:** remove ngtspivotcontrols export from controls entry point ([0db0b1e](https://github.com/angular-threejs/angular-three/commit/0db0b1e)) + +### 🩹 Fixes + +- **core:** routed scene should work ([6e76304](https://github.com/angular-threejs/angular-three/commit/6e76304)) +- **soba:** set up an effect for setting position of gizmo instead ([05ad6dc](https://github.com/angular-threejs/angular-three/commit/05ad6dc)) + +### ⚠️ Breaking Changes + +- **rapier:** remove `erp` from physics options +- **core:** use host directive `NgtObjectEvents` explicitly +- **soba:** use `NgtsPivotControls` from `gizmos` entry point + +### ❤️ Thank You + +- nartc + +## 2.14.0 (2025-01-02) + +### 🚀 Features + +- **repo:** bump peer deps on angular ([4027049](https://github.com/angular-threejs/angular-three/commit/4027049)) + +### 🩹 Fixes + +- **core:** make sure camera and dpr is set correctly initially ([ae5ec13](https://github.com/angular-threejs/angular-three/commit/ae5ec13)) + +### ❤️ Thank You + +- nartc + +## 2.13.0 (2025-01-02) + +### 🚀 Features + +- **cannon:** clean up cannon usages ([23f00ca](https://github.com/angular-threejs/angular-three/commit/23f00ca)) +- **postprocessing:** adjust postprocessing usages ([da5de36](https://github.com/angular-threejs/angular-three/commit/da5de36)) +- **postprocessing:** make sure effect w/ ngt-primitive are disposed ([e8510b9](https://github.com/angular-threejs/angular-three/commit/e8510b9)) +- **rapier:** adjust rapier effect usages ([3fcd150](https://github.com/angular-threejs/angular-three/commit/3fcd150)) +- **soba:** adjust abstractions ([5aa1b0c](https://github.com/angular-threejs/angular-three/commit/5aa1b0c)) +- **soba:** adjust cameras ([6b61706](https://github.com/angular-threejs/angular-three/commit/6b61706)) +- **soba:** controls ([a88606b](https://github.com/angular-threejs/angular-three/commit/a88606b)) +- **soba:** gizmos ([03dcfb8](https://github.com/angular-threejs/angular-three/commit/03dcfb8)) +- **soba:** loaders ([b4690fc](https://github.com/angular-threejs/angular-three/commit/b4690fc)) +- **soba:** materials ([affed6c](https://github.com/angular-threejs/angular-three/commit/affed6c)) +- **soba:** misc ([bf543ca](https://github.com/angular-threejs/angular-three/commit/bf543ca)) +- **soba:** staging ([3c18936](https://github.com/angular-threejs/angular-three/commit/3c18936)) + +### 🩹 Fixes + +- **core:** warn about 'routed' scenegraph ([59db3ae](https://github.com/angular-threejs/angular-three/commit/59db3ae)) +- **core:** adjust effect usage in core canvas ([5e45354](https://github.com/angular-threejs/angular-three/commit/5e45354)) + +### ❤️ Thank You + +- nartc + +## 2.12.0 (2024-12-02) + +### 🚀 Features + +- **core:** deprecate outputs and inputs shortcut for ObjectEvents. Never worked ([576eeaa](https://github.com/angular-threejs/angular-three/commit/576eeaa)) + +### 🩹 Fixes + +- **soba:** explicit outputs for object events on rounded box ([81ac40c](https://github.com/angular-threejs/angular-three/commit/81ac40c)) + +### ❤️ Thank You + +- nartc + +## 2.11.0 (2024-12-02) + +### 🚀 Features + +- **soba:** apply objectEvents as host directive to RoundedBox ([8cffded](https://github.com/angular-threejs/angular-three/commit/8cffded)) + +### ❤️ Thank You + +- nartc + +## 2.10.7 (2024-12-02) + +### 🩹 Fixes + +- **soba:** restart portal before render when priority changes in MeshPortalMaterial ([55b3258](https://github.com/angular-threejs/angular-three/commit/55b3258)) + +### ❤️ Thank You + +- nartc + +## 2.10.6 (2024-12-02) + +### 🩹 Fixes + +- **cannon:** dummy commit ([942547e](https://github.com/angular-threejs/angular-three/commit/942547e)) +- **rapier:** dummy commit ([1d7ea92](https://github.com/angular-threejs/angular-three/commit/1d7ea92)) + +### ❤️ Thank You + +- nartc + +## 2.10.5 (2024-12-02) + +### 🩹 Fixes + +- **soba:** dummy ([ed2fb54](https://github.com/angular-threejs/angular-three/commit/ed2fb54)) + +### ❤️ Thank You + +- nartc + +## 2.10.4 (2024-12-02) + +### 🩹 Fixes + +- **soba:** dummy ([232d772](https://github.com/angular-threejs/angular-three/commit/232d772)) +- **soba:** dummy again ([c518a2f](https://github.com/angular-threejs/angular-three/commit/c518a2f)) +- **soba:** revert the dummy commits ([1b18d30](https://github.com/angular-threejs/angular-three/commit/1b18d30)) + +### ❤️ Thank You + +- nartc + +## 2.10.3 (2024-12-02) + +### 🩹 Fixes + +- **soba:** default blend to 0 for MeshPortalMaterial ([daa64e4](https://github.com/angular-threejs/angular-three/commit/daa64e4)) + +### ❤️ Thank You + +- nartc + +## 2.10.2 (2024-12-02) + +### 🩹 Fixes + +- **soba:** export new animations types as public api ([00dd7db](https://github.com/angular-threejs/angular-three/commit/00dd7db)) + +### ❤️ Thank You + +- nartc + +## 2.10.1 (2024-12-02) + +### 🩹 Fixes + +- **soba:** adjust injectAnimations to be more relaxed with animation clip typing ([cca8a12](https://github.com/angular-threejs/angular-three/commit/cca8a12)) + +### ❤️ Thank You + +- nartc + +## 2.10.0 (2024-12-01) + +### 🚀 Features + +- **soba:** add NgtsMeshPortalMaterial (use pmndrs/vanilla) ([2baa76a](https://github.com/angular-threejs/angular-three/commit/2baa76a)) + +### 🩹 Fixes + +- **core:** adjust NgtAttachable type to accept string | number array (for index) ([447c3e1](https://github.com/angular-threejs/angular-three/commit/447c3e1)) +- **soba:** add default params for injectFBO ([2f2a551](https://github.com/angular-threejs/angular-three/commit/2f2a551)) + +### ❤️ Thank You + +- nartc + +## 2.9.0 (2024-11-30) + +### 🚀 Features + +- **cannon:** bump peer dep to three 170 ([3a09692](https://github.com/angular-threejs/angular-three/commit/3a09692)) +- **core:** bump peer dependency to three 170 ([7493d8c](https://github.com/angular-threejs/angular-three/commit/7493d8c)) +- **postprocessing:** bump peer dep to three 170 ([694ca85](https://github.com/angular-threejs/angular-three/commit/694ca85)) +- **rapier:** bump peer dep to three 170 ([b41385a](https://github.com/angular-threejs/angular-three/commit/b41385a)) +- **soba:** bump peer dep to three 170 and three csm to <6.3.0 ([52b81f6](https://github.com/angular-threejs/angular-three/commit/52b81f6)) + +### ❤️ Thank You + +- nartc + +## 2.8.1 (2024-11-22) + +### 🩹 Fixes + +- **soba:** address peer deps on three csm ([0f155ad](https://github.com/angular-threejs/angular-three/commit/0f155ad)) + +### ❤️ Thank You + +- nartc + +## 2.8.0 (2024-11-14) + +### 🚀 Features + +- **postprocessing:** bump peer deps ([04f39dd](https://github.com/angular-threejs/angular-three/commit/04f39dd)) +- **soba:** bump peer deps ([d203556](https://github.com/angular-threejs/angular-three/commit/d203556)) + +### ❤️ Thank You + +- nartc + +## 2.7.0 (2024-11-01) + +### 🚀 Features + +- **core:** upgrade ngxtension (with changes to resize) ([07f1f1e](https://github.com/angular-threejs/angular-three/commit/07f1f1e)) + +### ❤️ Thank You + +- nartc + +## 2.6.1 (2024-10-30) + +### 🩹 Fixes + +- **core:** remove as const from object events inputs/outputs ([f539c80](https://github.com/angular-threejs/angular-three/commit/f539c80)) + +### ❤️ Thank You + +- nartc + +## 2.6.0 (2024-10-30) + +### 🚀 Features + +- **core:** adjust internal types ([dae630f](https://github.com/angular-threejs/angular-three/commit/dae630f)) +- **rapier:** deprecate erp; add contactNaturalFrequency ([189be32](https://github.com/angular-threejs/angular-three/commit/189be32)) +- **soba:** add injectFBX ([8a6c79a](https://github.com/angular-threejs/angular-three/commit/8a6c79a)) + +### 🩹 Fixes + +- **core:** expose inputs and outputs array for NgtObjectEvents ([6d3e0ed](https://github.com/angular-threejs/angular-three/commit/6d3e0ed)) + +### ❤️ Thank You + +- nartc + +## 2.5.2 (2024-10-26) + +### 🩹 Fixes + +- **core:** check for uuid before comparing uuid in instance store ([8e1617a](https://github.com/angular-threejs/angular-three/commit/8e1617a)) + +### 💅 Refactors + +- **core:** use DOM_PARENT constant for __ngt_dom_parent__ ([800bc6d](https://github.com/angular-threejs/angular-three/commit/800bc6d)) + +### ❤️ Thank You + +- nartc + +## 2.5.1 (2024-09-30) + + +### 🩹 Fixes + +- **plugin:** bump generators versions ([572477d](https://github.com/angular-threejs/angular-three/commit/572477d)) +- **rapier:** do not track entire options object in rigid body colliders options ([8c7915a](https://github.com/angular-threejs/angular-three/commit/8c7915a)) +- **soba:** bump dependencies version ([1c9b7cb](https://github.com/angular-threejs/angular-three/commit/1c9b7cb)) + +### ❤️ Thank You + +- nartc + +## 2.5.0 (2024-09-30) + + +### 🚀 Features + +- **soba:** add preload ([8387f21](https://github.com/angular-threejs/angular-three/commit/8387f21)) + +### 🩹 Fixes + +- **core:** use findIndex instead of indexOf in instance add new object ([0ae843f](https://github.com/angular-threejs/angular-three/commit/0ae843f)) +- **soba:** use textGeometry in effect for text3d ([eaa2d17](https://github.com/angular-threejs/angular-three/commit/eaa2d17)) + +### ❤️ Thank You + +- nartc + +## 2.4.0 (2024-09-29) + + +### 🚀 Features + +- use ngxtension ([f785e1d](https://github.com/angular-threejs/angular-three/commit/f785e1d)) +- add select to storeApi ([9d5da39](https://github.com/angular-threejs/angular-three/commit/9d5da39)) +- adjust migration ([04d2924](https://github.com/angular-threejs/angular-three/commit/04d2924)) +- **core:** generate core ([e1cf6c7](https://github.com/angular-threejs/angular-three/commit/e1cf6c7)) +- **core:** upgrade nx ([c3bbc46](https://github.com/angular-threejs/angular-three/commit/c3bbc46)) +- **core:** add experience generation (beta) ([650eb26](https://github.com/angular-threejs/angular-three/commit/650eb26)) +- **core:** update nx ([27ca571](https://github.com/angular-threejs/angular-three/commit/27ca571)) +- **core:** bump three 0.156 ([3f847ef](https://github.com/angular-threejs/angular-three/commit/3f847ef)) +- **core:** update nx ([3e55988](https://github.com/angular-threejs/angular-three/commit/3e55988)) +- **core:** update ngxtension ([f3bbd0c](https://github.com/angular-threejs/angular-three/commit/f3bbd0c)) +- **core:** add selection api (NgtSelection and NgtSelect) ([b3c2071](https://github.com/angular-threejs/angular-three/commit/b3c2071)) +- **core:** add hexify pipe to convert various color values to hex-number (0xRRGGBBAA format) ([0f2c63a](https://github.com/angular-threejs/angular-three/commit/0f2c63a)) +- **core:** add NgtObjectEvents directive to pass-through pointer event system ([e0b575f](https://github.com/angular-threejs/angular-three/commit/e0b575f)) +- **core:** add injectNonNullish$ ([2eec63b](https://github.com/angular-threejs/angular-three/commit/2eec63b)) +- **core:** allow raycast to accept null and assign () => null for null raycasting ([44b24e8](https://github.com/angular-threejs/angular-three/commit/44b24e8)) +- **core:** init nativescript entry point ([413a60c](https://github.com/angular-threejs/angular-three/commit/413a60c)) +- **core:** first nativescript entry point release ([8864e0b](https://github.com/angular-threejs/angular-three/commit/8864e0b)) +- **plugin:** update init-soba generator to add metadata.json ([6009ca0](https://github.com/angular-threejs/angular-three/commit/6009ca0)) +- **plugin:** update plugin to the latest ([b13ef25](https://github.com/angular-threejs/angular-three/commit/b13ef25)) +- **plugin:** add soba generator ([591e95a](https://github.com/angular-threejs/angular-three/commit/591e95a)) +- **plugin:** wip gltf generator ([08a7baa](https://github.com/angular-threejs/angular-three/commit/08a7baa)) +- **postprocessing:** add outline effect and demo ([30f70ba](https://github.com/angular-threejs/angular-three/commit/30f70ba)) +- **postprocessing:** add n8ao as an entry point; add tonemapping ([7c73755](https://github.com/angular-threejs/angular-three/commit/7c73755)) +- **rapier:** add rapier ([ff76de7](https://github.com/angular-threejs/angular-three/commit/ff76de7)) +- **rapier:** add rapier ([#54](https://github.com/angular-threejs/angular-three/pull/54)) +- ⚠️ **rapier:** support fallback content when physics fails to load RAPIER wasm ([8f336df](https://github.com/angular-threejs/angular-three/commit/8f336df)) +- **soba:** add instances ([e118791](https://github.com/angular-threejs/angular-three/commit/e118791)) +- **soba:** gizmo ([8ac565c](https://github.com/angular-threejs/angular-three/commit/8ac565c)) +- **soba:** allow set global decoder path ([cbe0cc4](https://github.com/angular-threejs/angular-three/commit/cbe0cc4)) +- **soba:** point material ([c57dcea](https://github.com/angular-threejs/angular-three/commit/c57dcea)) +- **soba:** add scale factor calculation for pivot controls ([1d00903](https://github.com/angular-threejs/angular-three/commit/1d00903)) +- **soba:** add pivot controls ([2729b57](https://github.com/angular-threejs/angular-three/commit/2729b57)) +- **soba:** add billboard ([91c51cf](https://github.com/angular-threejs/angular-three/commit/91c51cf)) +- **soba:** add NgtsMask ([a60e3b7](https://github.com/angular-threejs/angular-three/commit/a60e3b7)) +- **soba:** add transform controls ([faf6867](https://github.com/angular-threejs/angular-three/commit/faf6867)) +- **soba:** gen gizmos entry; move PivotControls and TransformControls into gizmos ([9e82df2](https://github.com/angular-threejs/angular-three/commit/9e82df2)) +- **soba:** add gizmo helpers ([f99d043](https://github.com/angular-threejs/angular-three/commit/f99d043)) + +### 🩹 Fixes + +- migration migrates all the times ([83ca9c6](https://github.com/angular-threejs/angular-three/commit/83ca9c6)) +- make sure to install ngxtension ([6ee16a7](https://github.com/angular-threejs/angular-three/commit/6ee16a7)) +- adjust version of ngxtension ([7c5b54a](https://github.com/angular-threejs/angular-three/commit/7c5b54a)) +- only get state if it's available ([33aa00f](https://github.com/angular-threejs/angular-three/commit/33aa00f)) +- ⚠️ **cannon:** unwrap `afterNextRender` from `injectBody` and `injectConstraint` ([676aa16](https://github.com/angular-threejs/angular-three/commit/676aa16)) +- **cannon:** update peer deps ([fc7ab35](https://github.com/angular-threejs/angular-three/commit/fc7ab35)) +- **cannon:** remove autoEffect in physics ([7ecfb3f](https://github.com/angular-threejs/angular-three/commit/7ecfb3f)) +- **cannon:** clean up physics ([f8973c4](https://github.com/angular-threejs/angular-three/commit/f8973c4)) +- **core:** make sure renderer work correctly for two DOMs elements that might contain THREE children ([b1987ba](https://github.com/angular-threejs/angular-three/commit/b1987ba)) +- **core:** only proceed with append logic for DOMs if render state is available ([5a56e6d](https://github.com/angular-threejs/angular-three/commit/5a56e6d)) +- **core:** adjust createAttachFn positional type arguments ([b65fe57](https://github.com/angular-threejs/angular-three/commit/b65fe57)) +- **core:** adjust experience generator ([fad08f6](https://github.com/angular-threejs/angular-three/commit/fad08f6)) +- **core:** adjust generator sourceRoot ([701b7c9](https://github.com/angular-threejs/angular-three/commit/701b7c9)) +- **core:** adjust tsqueyr usage for generator ([2d16772](https://github.com/angular-threejs/angular-three/commit/2d16772)) +- **core:** make sure escape template tag for generation ([6a702d6](https://github.com/angular-threejs/angular-three/commit/6a702d6)) +- **core:** use correct syntax for substitution generate files ([4194370](https://github.com/angular-threejs/angular-three/commit/4194370)) +- **core:** adjust template for experience component to include angular-three imports ([1249f0f](https://github.com/angular-threejs/angular-three/commit/1249f0f)) +- **core:** force standalone for experience generation ([2b4c9fa](https://github.com/angular-threejs/angular-three/commit/2b4c9fa)) +- **core:** rename assertInjectionContext to assertInjector ([79c68aa](https://github.com/angular-threejs/angular-three/commit/79c68aa)) +- **core:** update type for afterAttach ([3b01ce5](https://github.com/angular-threejs/angular-three/commit/3b01ce5)) +- **core:** clean up ngt ref ([1125c86](https://github.com/angular-threejs/angular-three/commit/1125c86)) +- **core:** fix core type for loader ([9c741ea](https://github.com/angular-threejs/angular-three/commit/9c741ea)) +- **core:** adjust nested effects ([59f0dda](https://github.com/angular-threejs/angular-three/commit/59f0dda)) +- **core:** update package target to build plugin last ([1bf5884](https://github.com/angular-threejs/angular-three/commit/1bf5884)) +- **core:** adjust import for selection ([b118e47](https://github.com/angular-threejs/angular-three/commit/b118e47)) +- **core:** change the way NgtSelect works ([50f0cea](https://github.com/angular-threejs/angular-three/commit/50f0cea)) +- **core:** simplify NgtSelection API with exposing single method update ([9fce320](https://github.com/angular-threejs/angular-three/commit/9fce320)) +- **core:** return early if there is namespace during createElement ([610d56f](https://github.com/angular-threejs/angular-three/commit/610d56f)) +- **core:** comment out update matrix automatically ([2f813fa](https://github.com/angular-threejs/angular-three/commit/2f813fa)) +- **core:** use noinfer for TData on loader's onLoad ([536aa05](https://github.com/angular-threejs/angular-three/commit/536aa05)) +- **core:** account for when parent is null in removeChild ([08c27e5](https://github.com/angular-threejs/angular-three/commit/08c27e5)) +- **core:** double check for falsy parent in removeChild ([5f1a36d](https://github.com/angular-threejs/angular-three/commit/5f1a36d)) +- **core:** adjust removeChild logic to get THREE parent first before getting renderer parent ([d97d48d](https://github.com/angular-threejs/angular-three/commit/d97d48d)) +- **core:** bail if parent is null in removeChild but do clean up if there's internal child ([2691fd0](https://github.com/angular-threejs/angular-three/commit/2691fd0)) +- **core:** call signal for parent() in remove child ([ca711d7](https://github.com/angular-threejs/angular-three/commit/ca711d7)) +- **core:** handle NgtAttachFunction for ngt-value as well ([b1d1006](https://github.com/angular-threejs/angular-three/commit/b1d1006)) +- **core:** adjust onLoad parameter type ([fd37f28](https://github.com/angular-threejs/angular-three/commit/fd37f28)) +- **core:** use optional chaining for localState parent since it can be null ([5eff54a](https://github.com/angular-threejs/angular-three/commit/5eff54a)) +- **core:** assert any for $event ([7b54fae](https://github.com/angular-threejs/angular-three/commit/7b54fae)) +- **core:** use onReady event from Canvas NS ([93dafef](https://github.com/angular-threejs/angular-three/commit/93dafef)) +- **core:** set size for gl in native ([a560270](https://github.com/angular-threejs/angular-three/commit/a560270)) +- **core:** optional chaining on renderer state as it can be null during nullifying state of previous object downstream ([f42a9fe](https://github.com/angular-threejs/angular-three/commit/f42a9fe)) +- **core:** clean up NgtObjectEvents; do not use afterNextRender in injectObjectEvents ([1fcf43a](https://github.com/angular-threejs/angular-three/commit/1fcf43a)) +- ⚠️ **core:** unwrap `afterNextRender` in `injectLoader` ([d57d1cc](https://github.com/angular-threejs/angular-three/commit/d57d1cc)) +- **core:** adjust add soba generator to remove dup three mesh bvh peerdep ([c3b68e2](https://github.com/angular-threejs/angular-three/commit/c3b68e2)) +- **core:** adjust loader to bail on only falsy url when multiple urls are passed in ([67a6d2c](https://github.com/angular-threejs/angular-three/commit/67a6d2c)) +- **core:** update peer deps ([ef92608](https://github.com/angular-threejs/angular-three/commit/ef92608)) +- **core:** ensure three native events (w/ EventDispatcher) work properly ([2a0edd6](https://github.com/angular-threejs/angular-three/commit/2a0edd6)) +- **core:** assign intermediate ref to the parent store for non-three instance during applyProps ([6fb9294](https://github.com/angular-threejs/angular-three/commit/6fb9294)) +- **core:** add output emitter ref utilities ([1457ce7](https://github.com/angular-threejs/angular-three/commit/1457ce7)) +- **core:** make sure add method is available before calling ([92af0e9](https://github.com/angular-threejs/angular-three/commit/92af0e9)) +- **core:** use effect directly for selection ([19cd21e](https://github.com/angular-threejs/angular-three/commit/19cd21e)) +- **core:** clean up loader; remove allowSignalWrites in injectLoader ([3c074c5](https://github.com/angular-threejs/angular-three/commit/3c074c5)) +- **core:** clean up args; ([86d31aa](https://github.com/angular-threejs/angular-three/commit/86d31aa)) +- **core:** add geometryStamp to ngt instance ([2cf9113](https://github.com/angular-threejs/angular-three/commit/2cf9113)) +- **core:** adjust object events; remove afterNextRender ([63d6e74](https://github.com/angular-threejs/angular-three/commit/63d6e74)) +- **core:** remove autoEffect in canvas ([94834a6](https://github.com/angular-threejs/angular-three/commit/94834a6)) +- **core:** clean up portal; remove autoEffect ([6ad06e1](https://github.com/angular-threejs/angular-three/commit/6ad06e1)) +- **core:** add geometryStamp and updateGeometryStamp to types ([4c730bb](https://github.com/angular-threejs/angular-three/commit/4c730bb)) +- **core:** check setClearAlpha before calling ([33ba160](https://github.com/angular-threejs/angular-three/commit/33ba160)) +- **plugin:** change init logic for geenrating experience ([8a14c89](https://github.com/angular-threejs/angular-three/commit/8a14c89)) +- **plugin:** miss a typo ([994eb99](https://github.com/angular-threejs/angular-three/commit/994eb99)) +- **plugin:** trim the template when in append experience mode ([2fccad0](https://github.com/angular-threejs/angular-three/commit/2fccad0)) +- **plugin:** fix peer dependencies prompt for add-soba ([07eca89](https://github.com/angular-threejs/angular-three/commit/07eca89)) +- **plugin:** only add metadata json path to vscode settings if it's not there ([cafcf51](https://github.com/angular-threejs/angular-three/commit/cafcf51)) +- **plugin:** try using esnext ([2600c9e](https://github.com/angular-threejs/angular-three/commit/2600c9e)) +- **plugin:** adjust add-soba generator to make sure all peer deps are installed properly ([caf58a6](https://github.com/angular-threejs/angular-three/commit/caf58a6)) +- **plugin:** add missing peer dep to collection ([3d6362c](https://github.com/angular-threejs/angular-three/commit/3d6362c)) +- **plugin:** bump threejs version ([18b9a9e](https://github.com/angular-threejs/angular-three/commit/18b9a9e)) +- **postprocessing:** update peer deps ([4d5ee21](https://github.com/angular-threejs/angular-three/commit/4d5ee21)) +- **postprocessing:** remove afterNextRender and autoEffect ([4d0918d](https://github.com/angular-threejs/angular-three/commit/4d0918d)) +- **rapier:** clean up framestepper; remove afterNextRender and autoEffect ([0e27857](https://github.com/angular-threejs/angular-three/commit/0e27857)) +- **rapier:** auto colliders should still work if physicsColliders is false BUT colliders is set ([07ecec0](https://github.com/angular-threejs/angular-three/commit/07ecec0)) +- **rapier:** clean up rapier ([9cda37b](https://github.com/angular-threejs/angular-three/commit/9cda37b)) +- **repo:** align peer dependencies ranges to better control them ([bcebf76](https://github.com/angular-threejs/angular-three/commit/bcebf76)) +- **soba:** extend InstancedBufferAttribute ([e39cdb2](https://github.com/angular-threejs/angular-three/commit/e39cdb2)) +- **soba:** attempt to use args for instanced buffer attribute ([6862a07](https://github.com/angular-threejs/angular-three/commit/6862a07)) +- **soba:** reverse occlusion logic in HTML ([17c5123](https://github.com/angular-threejs/angular-three/commit/17c5123)) +- **soba:** use texture params for progressive light maps ([72fef8c](https://github.com/angular-threejs/angular-three/commit/72fef8c)) +- **soba:** ensure default intensity for accumulative shadows is taking legacy lights into account ([89f060f](https://github.com/angular-threejs/angular-three/commit/89f060f)) +- **soba:** add content projection for orbit controls ([8a6526c](https://github.com/angular-threejs/angular-three/commit/8a6526c)) +- **soba:** clean up cube camera ([ce60420](https://github.com/angular-threejs/angular-three/commit/ce60420)) +- **soba:** make fbo return a Signal instead of NgtInjectedRef ([6160a2e](https://github.com/angular-threejs/angular-three/commit/6160a2e)) +- **soba:** clean up trail texture ([e8a94c2](https://github.com/angular-threejs/angular-three/commit/e8a94c2)) +- **soba:** make ngtsTrail return a Signal instead of NgtInjectedRef ([5d30c3a](https://github.com/angular-threejs/angular-three/commit/5d30c3a)) +- **soba:** match MeshTransmissionMaterial with Drei ([0d09a28](https://github.com/angular-threejs/angular-three/commit/0d09a28)) +- **soba:** clean up animations ([90545c6](https://github.com/angular-threejs/angular-three/commit/90545c6)) +- **soba:** clean up sampler ([d7426b7](https://github.com/angular-threejs/angular-three/commit/d7426b7)) +- **soba:** use valid angular for caustics ([70f4f32](https://github.com/angular-threejs/angular-three/commit/70f4f32)) +- **soba:** adjust type for all attach input to NgtAttachable ([02bbc13](https://github.com/angular-threejs/angular-three/commit/02bbc13)) +- **soba:** rename directive selectors to camel case instead of kebab ([ce1d543](https://github.com/angular-threejs/angular-three/commit/ce1d543)) +- **soba:** adjust contact shadows ([aa3d022](https://github.com/angular-threejs/angular-three/commit/aa3d022)) +- **soba:** fix options type for helper ([f8f93a5](https://github.com/angular-threejs/angular-three/commit/f8f93a5)) +- **soba:** adjust type for gltfloader onLoad and allows preLoad to pass in onLoad ([7d0ad62](https://github.com/angular-threejs/angular-three/commit/7d0ad62)) +- **soba:** attempt to use commonjs with loadEsmModule ([78060c0](https://github.com/angular-threejs/angular-three/commit/78060c0)) +- **soba:** another attempt to load injectGLTF ([02ccc26](https://github.com/angular-threejs/angular-three/commit/02ccc26)) +- **soba:** test gltf generator ([8d4c75d](https://github.com/angular-threejs/angular-three/commit/8d4c75d)) +- **soba:** remove gltf generator (gonna make a separate CLI instead) ([ab1603a](https://github.com/angular-threejs/angular-three/commit/ab1603a)) +- **soba:** another attempt with gltf generator using node-three-gltf ([5095308](https://github.com/angular-threejs/angular-three/commit/5095308)) +- **soba:** remove gltf generator again ([08dbc31](https://github.com/angular-threejs/angular-three/commit/08dbc31)) +- ⚠️ **soba:** unwrap `afterNextRender` in `injectHelper` ([537be01](https://github.com/angular-threejs/angular-three/commit/537be01)) +- ⚠️ **soba:** unwrap `afterNextRender` in `injectFBO`, `injectIntersect`, and `injectSurfaceSampler` ([0599c1a](https://github.com/angular-threejs/angular-three/commit/0599c1a)) +- ⚠️ **soba:** unwrap `afterNextRender` in `injectEnvironment` and `injectNormalTexture` ([47dba57](https://github.com/angular-threejs/angular-three/commit/47dba57)) +- **soba:** clean up `injectAnimations` ([c52b925](https://github.com/angular-threejs/angular-three/commit/c52b925)) +- ⚠️ **soba:** unwrap `afterNextRender` in `injectAnimations` ([c325c92](https://github.com/angular-threejs/angular-three/commit/c325c92)) +- **soba:** update peer deps ([92e0e05](https://github.com/angular-threejs/angular-three/commit/92e0e05)) +- **soba:** adjust orbit controls event type ([877d006](https://github.com/angular-threejs/angular-three/commit/877d006)) +- **soba:** add attach input to prism geometry ([dc83f8b](https://github.com/angular-threejs/angular-three/commit/dc83f8b)) +- **soba:** bump pmndrs/vanilla version ([2599568](https://github.com/angular-threejs/angular-three/commit/2599568)) +- **soba:** add preload and clear to injectEnvironment ([395d6bf](https://github.com/angular-threejs/angular-three/commit/395d6bf)) +- **soba:** track parent nonObjects before creating decal ([0091a6f](https://github.com/angular-threejs/angular-three/commit/0091a6f)) +- **soba:** clean up sampler; use computed instead of setting signals in effect ([f5262bc](https://github.com/angular-threejs/angular-three/commit/f5262bc)) +- **soba:** also register nonObjects() for center (so geometries can be taken into account) ([71d4c2c](https://github.com/angular-threejs/angular-three/commit/71d4c2c)) +- **soba:** clean up environment; use effect more effectively (no pun) ([a8e2966](https://github.com/angular-threejs/angular-three/commit/a8e2966)) +- **soba:** clean up sampler even more ([88fbae4](https://github.com/angular-threejs/angular-three/commit/88fbae4)) +- **soba:** clean up a lot of afterNextRender / autoEffect ([d41fc91](https://github.com/angular-threejs/angular-three/commit/d41fc91)) +- **soba:** clean up sampler returning the computed directly ([f33136c](https://github.com/angular-threejs/angular-three/commit/f33136c)) +- **soba:** fix type for viewcube ([749b97b](https://github.com/angular-threejs/angular-three/commit/749b97b)) + +### 💅 Refactors + +- **cannon:** adjust injectBody ([be14df8](https://github.com/angular-threejs/angular-three/commit/be14df8)) +- **core:** use VCR from canvas element instead of host ([f739b89](https://github.com/angular-threejs/angular-three/commit/f739b89)) +- **core:** nullify the __ngt_dom_parent__ for HTML component ([57c0568](https://github.com/angular-threejs/angular-three/commit/57c0568)) +- **core:** use DebugNode instead of getDebugNode ([7f39e5c](https://github.com/angular-threejs/angular-three/commit/7f39e5c)) +- **core:** remove unnecessary untracked in noZoneRender ([af5e8c6](https://github.com/angular-threejs/angular-three/commit/af5e8c6)) +- **core:** clean up canvas and portal ([709d259](https://github.com/angular-threejs/angular-three/commit/709d259)) +- **core:** improve hexify performance with internal instance cache ([8290542](https://github.com/angular-threejs/angular-three/commit/8290542)) +- **soba:** adjust shader material to not spread on uniforms ([bbd747f](https://github.com/angular-threejs/angular-three/commit/bbd747f)) +- **soba:** extract THREE.REVISION to a constant ([c6a253c](https://github.com/angular-threejs/angular-three/commit/c6a253c)) +- **soba:** simplify contact shadows; multiply frames to workaround race cond ([224ef16](https://github.com/angular-threejs/angular-three/commit/224ef16)) +- **soba:** simplify render texture template ([7a9c2be](https://github.com/angular-threejs/angular-three/commit/7a9c2be)) +- **soba:** use raycast=null instead of nullRaycast ([c92c021](https://github.com/angular-threejs/angular-three/commit/c92c021)) + +### ⚠️ Breaking Changes + +- **rapier:** in order to support fallback content, physics content +- **cannon:** This is considered a breaking change because of change +- **core:** this is considered a breaking change because of timing +- **soba:** this is considered a breaking change because of timing +- **soba:** this is considered a breaking change because of timing +- **soba:** this is considered a breaking change because of timing +- ⚠️ **soba:** unwrap `afterNextRender` in `injectAnimations` ([c325c92](https://github.com/angular-threejs/angular-three/commit/c325c92)) + +### ❤️ Thank You + +- Chau Tran +- nartc + ## [2.0.0-beta.41](https://github.com/angular-threejs/angular-three/compare/2.0.0-beta.40...2.0.0-beta.41) (2023-10-04) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..3f51f141 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +- Demonstrating empathy and kindness toward other people +- Being respectful of differing opinions, viewpoints, and experiences +- Giving and gracefully accepting constructive feedback +- Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +- Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +- The use of sexualized language or imagery, and sexual attention or + advances of any kind +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email + address, without their explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +ngrx[.]team[@]gmail.com. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..e3ba2892 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,297 @@ +# Contributing to Angular Three + +We would love for you to contribute to Angular Three and help make it even better than it is today! +As a contributor, here are the guidelines we would like you to follow: + +- [Code of Conduct](#coc) +- [Question or Problem?](#question) +- [Issues and Bugs](#issue) +- [Feature Requests](#feature) +- [Submission Guidelines](#submit) +- [Coding Rules](#rules) +- [Commit Message Guidelines](#commit) + +## Code of Conduct + +Help us keep Angular Three open and inclusive. +Please read and follow our [Code of Conduct][coc]. + +## Got a Question or Problem? + +Use [GitHub Discussions](https://github.com/angular-threejs/angular-three/discussions) to ask questions about Angular Three. + +Please keep the issue tracker for bug reports and feature requests. + +## Found a Bug? + +If you find a bug in the source code, you can help us by [submitting an issue](#submit-issue) to our [GitHub Repository][github]. +Even better, you can [submit a Pull Request](#submit-pr) with a fix. + +## Missing a Feature? + +You can _request_ a new feature by [submitting an issue](#submit-issue) to our GitHub Repository. +If you would like to _implement_ a new feature, please consider the size of the change in order to determine the right steps to proceed: + +- For a **Major Feature**, first open an issue and outline your proposal so that it can be discussed. + This process allows us to better coordinate our efforts, prevent duplication of work, and help you to craft the change so that it is successfully accepted into the project. + + **Note**: Adding a new topic to the documentation, or significantly re-writing a topic, counts as a major feature. + +- **Small Features** can be crafted and directly [submitted as a Pull Request](#submit-pr). + +## Submission Guidelines + +### Submitting an Issue + +Before you submit an issue, please search the issue tracker. An issue for your problem might already exist and the discussion might inform you of workarounds readily available. + +We want to fix all the issues as soon as possible, but before fixing a bug, we need to reproduce and confirm it. +In order to reproduce bugs, we require that you provide a **minimal reproduction**. +Having a minimal reproducible scenario gives us a wealth of important information without going back and forth to you with additional questions. + +A minimal reproduction allows us to quickly confirm a bug (or point out a coding problem) as well as confirm that we are fixing the right problem. + +We require a minimal reproduction to save maintainers' time and ultimately be able to fix more bugs. +Often, developers find coding problems themselves while preparing a minimal reproduction. +We understand that sometimes it might be hard to extract essential bits of code from a larger codebase, but we really need to isolate the problem before we can fix it. + +Unfortunately, we are not able to investigate / fix bugs without a minimal reproduction, so if we don't hear back from you, we are going to close an issue that doesn't have enough info to be reproduced. + +### Submitting a Pull Request (PR) + +Before you submit your Pull Request (PR) consider the following guidelines: + +1. Search [GitHub](https://github.com/angular-threejs/angular-three/pulls) for an open or closed PR that relates to your submission. + You don't want to duplicate existing efforts. + +2. Be sure that an issue describes the problem you're fixing, or documents the design for the feature you'd like to add. + Discussing the design upfront helps to ensure that we're ready to accept your work. + +3. [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the angular/angular repo. + +4. In your forked repository, make your changes in a new git branch: + + ```shell + git checkout -b my-fix-branch main + ``` + +5. Create your patch, **including appropriate test cases**. + +6. Follow our [Coding Rules](#rules). + +7. Commit your changes using a descriptive commit message that follows our [commit message conventions](#commit). + Adherence to these conventions is necessary because release notes are automatically generated from these messages. + + ```shell + git commit --all + ``` + + Note: the optional commit `--all` command line option will automatically "add" and "rm" edited files. + +8. Push your branch to GitHub: + + ```shell + git push origin my-fix-branch + ``` + +9. In GitHub, send a pull request to `angular-three:main`. + +#### Addressing review feedback + +If we ask for changes via code reviews then: + +1. Make the required updates to the code. + +2. Create a fixup commit and push to your GitHub repository (this will update your Pull Request): + + ```shell + git commit --all --fixup HEAD + git push + ``` + + For more info on working with fixup commits see [here](./contributing-docs/using-fixup-commits.md). + +That's it! Thank you for your contribution! + +##### Updating the commit message + +A reviewer might often suggest changes to a commit message (for example, to add more context for a change or adhere to our [commit message guidelines](#commit)). +In order to update the commit message of the last commit on your branch: + +1. Check out your branch: + + ```shell + git checkout my-fix-branch + ``` + +2. Amend the last commit and modify the commit message: + + ```shell + git commit --amend + ``` + +3. Push to your GitHub repository: + + ```shell + git push --force-with-lease + ``` + +> NOTE:
+> If you need to update the commit message of an earlier commit, you can use `git rebase` in interactive mode. +> See the [git docs](https://git-scm.com/docs/git-rebase#_interactive_mode) for more details. + +#### After your pull request is merged + +After your pull request is merged, you can safely delete your branch and pull the changes from the main (upstream) repository: + +- Delete the remote branch on GitHub either through the GitHub web UI or your local shell as follows: + + ```shell + git push origin --delete my-fix-branch + ``` + +- Check out the main branch: + + ```shell + git checkout main -f + ``` + +- Delete the local branch: + + ```shell + git branch -D my-fix-branch + ``` + +- Update your local `main` with the latest upstream version: + + ```shell + git pull --ff upstream main + ``` + +## Coding Rules + +To ensure consistency throughout the source code, keep these rules in mind as you are working: + +- All features or bug fixes **must be tested** by one or more specs (unit-tests). +- All public API methods **must be documented**. + +## Commit Message Format + +We have very precise rules over how our Git commit messages must be formatted. +This format leads to **easier to read commit history**. + +Each commit message consists of a **header**, a **body**, and a **footer**. + +``` +
+ + + +