UNPKG

custom-consent-popup

Version:

A customizable modal window for managing user consent, with various configuration options.

89 lines (78 loc) 4.22 kB
# CustomConsentPopup ## Overview The `CustomConsentPopup` class is designed for creating and managing a customizable confirmation modal window. This modal window can be used for various purposes, such as user consent for cookies, terms of service, or other custom notifications. ## Features - **Customizable Appearance**: The modal window's position and text can be customized. - **Flexible Consent Management**: Offers various ways to manage user consent, including once per session, once per lifetime, or never showing the modal again. - **Interactive Options**: Includes functionalities for positive and negative responses, with customizable callback functions. ## Configuration Options The modal window's behavior and appearance can be configured with the following properties: - `show`: Determines if the modal window is initially visible (true) or hidden (false). - `backgroundBlock`: If true, the modal window overlay is non-interactive; if false, it allows interaction. - `backgroundBlockColor`: Sets the color of the background overlay when `backgroundBlock` is true. - `position`: A predefined stylesheet value ("center", "bottom", or "top") determining the modal window's position and size. - `consentExpirationTime`: Manages the display of the consent modal based on user interactions. - If a number, represents the time in seconds to reappear after consent. - If false, shown only once per lifetime. - If true, shown once per browser session. - `modalWindowHeaderHTML`: HTML content for the modal window's header. - `modalWindowBodyHTML`: HTML content for the main body of the modal window. - `positiveButtonText`: Text for the positive (confirmation) button. - `negativeButtonText`: Text for the negative (decline) button. - `hidemodalWindowOnNegativeClick`: Whether to hide the modal window on clicking the negative button. - `localStorageObjectName`: Name for the local storage object to store consent date. - `blockScroll`: Blocks page scrolling when the modal window is displayed if set to true. - `removeAllContentOnNegativeClick`: If true, removes all content from the document body on a negative button click. - `onlyPositiveButtonOnModalWindow`: If true, removes negative button from the modal window. False is default. - `onPositiveButtonClickcallback`: Callback function for when the positive button is clicked. - `onNegativeButtonClickCallback`: Callback function for when the negative button is clicked. - `onPreviousConsentFoundCallback`: Callback function for when previous consent is found. - `onmodalWindowRenderedCallback`: Callback function for when the modal window is rendered. ## Usage You can find demonstrational sample in examples/main.js To use `CustomConsentPopup`, create an instance with your custom settings and initialize it when the DOM is fully loaded. This can be done using the `DOMContentLoaded` event: ```javascript document.addEventListener('DOMContentLoaded', (event) => { // Define your custom settings const options = { // Your options here position: 'center', consentExpirationTime: true, // ... other options ... }; // Initialize the CustomConsentPopup with your options CustomConsentPopup.init(options); }) ``` ## Example ```javascript examples/main.js const options = { consentExpirationTime: 5, position: 'top', backgroundBlock: true, backgroundBlockColor:'rgba(125, 125, 125, 0.5)', blockScroll: false, onPositiveButtonClickCallback: function() { console.log('hey-hey'); } }; myConsentPopup.init(options); ``` ## Installation ### Step 1: Install the Package Open your terminal or command prompt and install `CustomConsentPopup` by running: ```bash npm install custom-consent-popup@0.9.0 ``` ### Step 2: Importing in Your Project Import `CustomConsentPopup` in your JavaScript or TypeScript project after installation. #### JavaScript: ``` import CustomConsentPopup from 'custom-consent-popup'; ``` ### Step 3: Implement in HTML To use ES6 modules like the import statement in a browser, ensure your HTML script tag includes type="module": ``` <script type="module" src="path/to/your/script.js"></script> ```