var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name2 in all) __defProp(target, name2, { get: all[name2], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var stdin_exports = {}; __export(stdin_exports, { assignDefaultFields: () => assignDefaultFields, bem: () => bem, findIndexOfEnabledOption: () => findIndexOfEnabledOption, findOptionByValue: () => findOptionByValue, formatCascadeColumns: () => formatCascadeColumns, getColumnsType: () => getColumnsType, getElementTranslateY: () => getElementTranslateY, getFirstEnabledOption: () => getFirstEnabledOption, isOptionExist: () => isOptionExist, name: () => name, t: () => t }); module.exports = __toCommonJS(stdin_exports); var import_utils = require("../utils"); const [name, bem, t] = (0, import_utils.createNamespace)("picker"); const getFirstEnabledOption = (options) => options.find((option) => !option.disabled) || options[0]; function getColumnsType(columns, fields) { const firstColumn = columns[0]; if (firstColumn) { if (Array.isArray(firstColumn)) { return "multiple"; } if (fields.children in firstColumn) { return "cascade"; } } return "default"; } function findIndexOfEnabledOption(options, index) { index = (0, import_utils.clamp)(index, 0, options.length); for (let i = index; i < options.length; i++) { if (!options[i].disabled) return i; } for (let i = index - 1; i >= 0; i--) { if (!options[i].disabled) return i; } return 0; } const isOptionExist = (options, value, fields) => value !== void 0 && !!options.find((option) => option[fields.value] === value); function findOptionByValue(options, value, fields) { const index = options.findIndex((option) => option[fields.value] === value); const enabledIndex = findIndexOfEnabledOption(options, index); return options[enabledIndex]; } function formatCascadeColumns(columns, fields, selectedValues) { const formatted = []; let cursor = { [fields.children]: columns }; let columnIndex = 0; while (cursor && cursor[fields.children]) { const options = cursor[fields.children]; const value = selectedValues.value[columnIndex]; cursor = (0, import_utils.isDef)(value) ? findOptionByValue(options, value, fields) : void 0; if (!cursor && options.length) { const firstValue = getFirstEnabledOption(options)[fields.value]; cursor = findOptionByValue(options, firstValue, fields); } columnIndex++; formatted.push(options); } return formatted; } function getElementTranslateY(element) { const { transform } = window.getComputedStyle(element); const translateY = transform.slice(7, transform.length - 1).split(", ")[5]; return Number(translateY); } function assignDefaultFields(fields) { return (0, import_utils.extend)( { text: "text", value: "value", children: "children" }, fields ); }