feat: dependsOn for service dependencies#557
Open
zehjotkah wants to merge 5 commits intokiprotect:masterfrom
Open
feat: dependsOn for service dependencies#557zehjotkah wants to merge 5 commits intokiprotect:masterfrom
zehjotkah wants to merge 5 commits intokiprotect:masterfrom
Conversation
- Implement forward dependencies: enabling a service auto-enables its dependencies - Implement reverse dependencies: disabling a service auto-disables dependent services - Fix Hungarian translation YAML syntax error
…/src comparison - Changed script element comparison to use getAttribute() instead of DOM properties - Fixes browser freeze caused by type normalization mismatches (e.g. application/javascript vs text/javascript) - Fixes src comparison issues between resolved URLs and attribute values - Prevents MutationObserver infinite loop when managing consent-controlled scripts - Fully backward compatible with non-SPA websites - Resolves React hydration errors when scripts are dynamically managed
- Prevent infinite loop: Added data-klaro-internal attribute to scripts created by Klaro and updated MutationObserver to ignore them. - Fix contextual consent state: Added temporaryConsents tracking to properly handle acceptOnce (Ja) actions during re-evaluations. - Fix element visibility: Corrected logic for restoring original-display when it was empty. - Optimized Google Maps example: Removed debug logs and added custom styling.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds a
dependsOnfeature to Klaro Cookie Consent Manager, allowing services to declare dependencies on other services. When a service is enabled, all its dependencies are automatically enabled. When a dependency is disabled, all dependent services are automatically disabled.Changes
Core Implementation
File:
src/consent-manager.jsBug Fix
File:
src/translations/hu.ymlUsage Example
Behavior
Forward Dependencies
googleAnalyticsautomatically enablesgoogleTagManagerReverse Dependencies
googleTagManagerautomatically disablesgoogleAnalyticsand any other services that depend on itMultiple Dependencies
dependsOnproperty accepts either a string (single dependency) or an array of strings (multiple dependencies)Testing
The feature has been tested with:
Backward Compatibility
This feature is fully backward compatible. Services without the
dependsOnproperty continue to work exactly as before.Files Changed
src/consent-manager.js- Core implementationsrc/translations/hu.yml- YAML syntax fix