Sha256: 225527559f555fa491fd111687f75a0baaa7783145b1d100f973de00cf78f0ab

Contents?: true

Size: 1.78 KB

Versions: 60

Compression:

Stored size: 1.78 KB

Contents

import { useClickOutside } from 'stimulus-use';
import SyncedBooleanAttributesController from '../synced_boolean_attributes_controller/synced_boolean_attributes_controller';
class ToggleableController extends SyncedBooleanAttributesController {
    constructor() {
        super(...arguments);
        this.outletUpdate = this.toggle;
    }
    connect() {
        this.syncElementAttributes();
        useClickOutside(this, { dispatchEvent: this.closeOnOutsideClickValue && this.stateValue });
    }
    toggle(event, updateTo = {}) {
        var _a;
        const v = (_a = updateTo.data) !== null && _a !== void 0 ? _a : !this.stateValue;
        this.updateAttributesForElement(this.element, v);
        this.stateValue = v;
        this.sendToOutlets(event, Object.assign(Object.assign({}, updateTo), { data: v }));
    }
    on(event) {
        this.toggle(event, { data: true });
    }
    off(event) {
        this.toggle(event, { data: false });
    }
    clickOutside(event) {
        if (this.closeOnOutsideClickValue && this.stateValue) {
            this.toggle(event, { data: false });
        }
    }
    getValueForElement(element) {
        if (element !== this.element) {
            return null;
        }
        return this.stateValue;
    }
    getElementsToSync() {
        return [this.element];
    }
    getState() {
        return this.stateValue;
    }
    get event_key_postfix() {
        return this.stateValue ? 'on' : 'off';
    }
}
ToggleableController.outlets = SyncedBooleanAttributesController.outlets;
ToggleableController.values = Object.assign(Object.assign({}, SyncedBooleanAttributesController.values), { state: {
        type: Boolean,
        default: false,
    }, closeOnOutsideClick: {
        type: Boolean,
        default: false,
    } });
export default ToggleableController;

Version data entries

60 entries across 60 versions & 1 rubygems

Version Path
ariadne_view_components-0.0.59-x64-mingw-ucrt app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.59-aarch64-linux app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.59-x86_64-darwin app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.59-x86_64-linux app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.59-arm64-darwin app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.59 app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.58-x86_64-darwin app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.58-aarch64-linux app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.58-arm64-darwin app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.58-x64-mingw-ucrt app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.58 app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.58-x86_64-linux app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.57-arm64-darwin app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.57-aarch64-linux app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.57-x86_64-darwin app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.57-x86_64-linux app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.57-x64-mingw-ucrt app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.57 app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.55-x86_64-linux app/components/ariadne/toggleable_controller/toggleable_controller.js
ariadne_view_components-0.0.55-arm64-darwin app/components/ariadne/toggleable_controller/toggleable_controller.js