// Selection definitions:
//
// Anchor index: the point from which a range selection starts.
// Focus index: the point from which layout movement originates from.
//
// These two can differ. Tests:
//
// If you start at index 5
// Shift click to index 10
//    The focus is 10, the anchor is 5.
// If you shift click at index 0
//    The anchor remains at 5, the items between 0 and 5 are selected and everything else is cleared.
// If you click index 8
//    The anchor and focus are set to 8.
import { css } from '@uifabric-vue/utilities';
import Vue from 'vue';
import { SelectionMode } from './interfaces';
var SELECTION_DISABLED_ATTRIBUTE_NAME = 'data-selection-disabled';
var SELECTION_INDEX_ATTRIBUTE_NAME = 'data-selection-index';
var SELECTION_TOGGLE_ATTRIBUTE_NAME = 'data-selection-toggle';
var SELECTION_INVOKE_ATTRIBUTE_NAME = 'data-selection-invoke';
var SELECTION_INVOKE_TOUCH_ATTRIBUTE_NAME = 'data-selection-touch-invoke';
var SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME = 'data-selection-all-toggle';
var SELECTION_SELECT_ATTRIBUTE_NAME = 'data-selection-select';
export var SelectionZone = Vue.extend({
    props: {
        selection: { type: Object, required: true },
        selectionMode: { type: Number, default: SelectionMode.multiple },
        selectionPreservedOnEmptyClick: { type: Boolean, default: false },
        disableAutoSelectOnInputElements: { type: Boolean, default: false },
    },
    data: function () {
        return {
            isModal: false,
        };
    },
    methods: {
        onKeyDown: function () {
        },
        onMouseDown: function () {
        },
        onClick: function () {
        },
    },
    render: function (h) {
        return h('div', {
            ref: 'root',
            class: css('ms-SelectionZone', this.$attrs.class, {
                'ms-SelectionZone--modal': !!this.isModal,
            }),
            on: {
                keydown: this.onKeyDown,
                mousedown: this.onMouseDown,
                click: this.onClick,
            },
        }, [
            this.$slots.default,
        ]);
    },
});
//# sourceMappingURL=SelectionZone.js.map