Source: StartStatus.js

(function() {
    // XRAY-1573
    const KEYS = ['none', 'started', 'toggle', 'navigate', 'catalogue', 'done'];

    /**
     * Managing status for controller
     * @augments Help4.jscore.Base
     */
    Help4.StartStatus = class extends Help4.jscore.Base {
        /**
         * @override
         * @param {string} status
         */
        constructor(status) {
            super({
                statics: {
                    _value: {init: new Help4.BinaryStorage(KEYS, status)}
                }
            });
        }

        static STATUS = Help4.BinaryStorage.createPublicMap(KEYS);

        /**
         * @param {string} status
         * @returns {Help4.StartStatus}
         */
        set(status) {
            this._value.set(status);
            return this;
        }

        /**
         * @param {string} status
         * @returns {Help4.StartStatus}
         */
        add(status) {
            this._value.add(status);
            return this;
        }

        /**
         * @param {string} status
         * @returns {Help4.StartStatus}
         */
        rem(status) {
            this._value.rem(status);
            return this;
        }

        /**
         * @param {string} status
         * @returns {boolean}
         */
        has(status) {
            return this._value.has(status);
        }
    }
})();