one
Version:
One is a React framework for web, iOS, and Android apps.
85 lines (84 loc) • 3.3 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all) __defProp(target, name, {
get: all[name],
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 gridTypes_exports = {};
__export(gridTypes_exports, {
gridAlignments: () => gridAlignments,
gridHorizontalAlignments: () => gridHorizontalAlignments,
gridItems: () => gridItems,
gridSpacing: () => gridSpacing,
gridVerticalAlignments: () => gridVerticalAlignments
});
module.exports = __toCommonJS(gridTypes_exports);
const gridAlignments = [
"topLeading",
"top",
"topTrailing",
"leading",
"center",
"trailing",
"bottomLeading",
"bottom",
"bottomTrailing"
];
const gridHorizontalAlignments = [
"leading",
"center",
"trailing"
];
const gridVerticalAlignments = [
"top",
"center",
"bottom",
"firstTextBaseline",
"lastTextBaseline"
];
function nonnegative(value, label, required = false) {
if (value === void 0 && !required) return;
if (typeof value !== "number" || !Number.isFinite(value) || value < 0) throw new Error(`${label} must be a non-negative finite number`);
}
function gridSpacing(value, owner) {
if (value !== void 0 && (typeof value !== "number" || !Number.isFinite(value))) throw new Error(`${owner} spacing must be a finite number`);
return value === void 0 ? "null" : String(value);
}
function gridItems(items, owner) {
if (!Array.isArray(items)) throw new Error(`${owner} items must be an array of GridItem values`);
return JSON.stringify(items.map((item, index) => {
const label = `${owner} item ${index}`;
if (!item || typeof item !== "object") throw new Error(`${label} must be a GridItem`);
if (item.alignment !== void 0 && !gridAlignments.includes(item.alignment)) throw new Error(`${label} alignment must be a SwiftUI Alignment`);
if (item.spacing !== void 0 && (typeof item.spacing !== "number" || !Number.isFinite(item.spacing))) throw new Error(`${label} spacing must be a finite number`);
if (item.size === "fixed") {
nonnegative(item.value, `${label} value`, true);
} else if (item.size === "flexible" || item.size === "adaptive") {
nonnegative(item.minimum, `${label} minimum`, item.size === "adaptive");
nonnegative(item.maximum, `${label} maximum`);
if (item.maximum !== void 0 && item.maximum < (item.minimum ?? 10)) throw new Error(`${label} maximum must be at least minimum`);
} else throw new Error(`${label} size must be fixed, flexible, or adaptive`);
return {
size: item.size,
value: item.size === "fixed" ? item.value : -1,
minimum: item.size === "fixed" ? -1 : item.minimum ?? -1,
maximum: item.size === "fixed" ? -1 : item.maximum ?? -1,
spacing: item.spacing ?? null,
alignment: item.alignment ?? ""
};
}));
}