{"version":3,"file":"static/js/133.0f9660be.js","mappings":"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","sources":["webpack://portal/./tailwind.config.js","webpack://portal/./src/utils/comparators.ts","webpack://portal/./src/utils/units/coverage.ts","webpack://portal/./src/utils/units/density.ts","webpack://portal/../../../../protos/golang/generated/ts2/frontend/translation.ts","webpack://portal/../../../../protos/golang/generated/ts2/util/util.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\n/* eslint-disable unicorn/prefer-module */\n\nconst AspectRatioPlugin = require(\"@tailwindcss/aspect-ratio\");\nconst TypographyPlugin = require(\"@tailwindcss/typography\");\nconst Color = require(\"color\");\n\nconst resolveConfig = require(\"tailwindcss/resolveConfig\");\nconst defaultTheme = require(\"tailwindcss/defaultTheme\");\nconst defaultConfig = resolveConfig(defaultTheme);\n\nconst CARBON_BLUE = \"#6D8FAD\";\nconst CARBON_GRAY_DARK = \"#111518\";\nconst CARBON_GRAY_LIGHT = \"#a2aaad\";\nconst CARBON_GRAY_MEDIUM = \"#333f48\";\nconst CARBON_GREEN = \"#518C66\";\nconst CARBON_ORANGE = \"#A9431E\";\nconst CARBON_YELLOW = \"#FFBA63\";\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nconst toTailwindRange = (sourceColor) => {\n const color500 = new Color(sourceColor);\n const color100 = color500.lighten(0.5).saturate(0.5);\n const color300 = color500.mix(color100);\n const color200 = color300.mix(color100);\n const color400 = color500.mix(color300);\n const color900 = color500.darken(0.5).saturate(0.5);\n const color700 = color500.mix(color900);\n const color600 = color500.mix(color700);\n const color800 = color900.mix(color700);\n return {\n 50: color100.lighten(0.5).hex(),\n 100: color100.hex(),\n 200: color200.hex(),\n 300: color300.hex(),\n 400: color400.hex(),\n 500: color500.hex(),\n 600: color600.hex(),\n 700: color700.hex(),\n 800: color800.hex(),\n 900: color900.hex(),\n 950: color900.darken(0.5).hex(),\n };\n};\n\n/** @type {import('tailwindcss').Config} */\nmodule.exports = {\n corePlugins: {\n preflight: false,\n },\n darkMode: \"media\",\n important: true,\n content: [\"../../portal/ui/src/**/*.{html,ts,tsx}\"],\n separator: \":\",\n theme: {\n extend: {\n animation: {\n \"reverse-spin\": \"reverse-spin 1s linear infinite\",\n },\n keyframes: {\n \"reverse-spin\": {\n from: {\n transform: \"rotate(360deg)\",\n },\n },\n },\n borderRadius: {\n xs: \"0.05rem\",\n },\n leading: {\n inherit: \"inherit\",\n },\n colors: {\n carbon: {\n orange: CARBON_ORANGE,\n yellow: CARBON_YELLOW,\n gray: {\n dark: CARBON_GRAY_DARK,\n medium: CARBON_GRAY_MEDIUM,\n light: CARBON_GRAY_LIGHT,\n },\n green: CARBON_GREEN,\n blue: CARBON_BLUE,\n map: {\n draw: {\n fill: \"#95cced\",\n border: \"#1da1f2\",\n vertex: \"#1da1f2\",\n text: \"white\",\n textHalo: \"black\",\n },\n farms: {\n field: \"#98ed95\",\n obstacle: \"#a34315\",\n headland: \"#ecf16e\",\n default: \"#bbbbbb\",\n focused: \"#95cced\",\n centerPivot: \"#6ab5f7\",\n },\n },\n },\n darken: {\n 100: \"rgba(0, 0, 0, 0.1)\",\n 200: \"rgba(0, 0, 0, 0.2)\",\n 300: \"rgba(0, 0, 0, 0.3)\",\n 400: \"rgba(0, 0, 0, 0.4)\",\n 500: \"rgba(0, 0, 0, 0.5)\",\n 600: \"rgba(0, 0, 0, 0.6)\",\n 700: \"rgba(0, 0, 0, 0.7)\",\n 800: \"rgba(0, 0, 0, 0.8)\",\n 900: \"rgba(0, 0, 0, 0.9)\",\n },\n lighten: {\n 100: \"rgba(255, 255, 255, 0.1)\",\n 200: \"rgba(255, 255, 255, 0.2)\",\n 300: \"rgba(255, 255, 255, 0.3)\",\n 400: \"rgba(255, 255, 255, 0.4)\",\n 500: \"rgba(255, 255, 255, 0.5)\",\n 600: \"rgba(255, 255, 255, 0.6)\",\n 700: \"rgba(255, 255, 255, 0.7)\",\n 800: \"rgba(255, 255, 255, 0.8)\",\n 900: \"rgba(255, 255, 255, 0.9)\",\n },\n blue: toTailwindRange(CARBON_BLUE),\n orange: toTailwindRange(CARBON_ORANGE),\n yellow: toTailwindRange(CARBON_YELLOW),\n green: toTailwindRange(CARBON_GREEN),\n // for when you want colors that are a bit closer to consensus reality\n \"tailwind-orange\": defaultConfig.theme.colors.orange,\n \"tailwind-yellow\": defaultConfig.theme.colors.yellow,\n },\n height: {\n unset: \"unset\",\n },\n width: {\n \"1/10\": \"10%\",\n \"1/8\": \"calc(100%/8)\",\n },\n },\n minWidth: ({ theme }) => ({\n ...theme(\"spacing\"),\n \"1/4\": \"25%\",\n \"1/3\": \"33%\",\n \"1/2\": \"50%\",\n full: \"100%\",\n }),\n maxWidth: ({ theme }) => ({\n ...theme(\"spacing\"),\n \"1/4\": \"25%\",\n \"1/3\": \"calc(100% / 3)\",\n \"1/2\": \"50%\",\n full: \"100%\",\n }),\n minHeight: ({ theme }) => ({\n ...theme(\"spacing\"),\n \"1/4\": \"25%\",\n \"1/2\": \"50%\",\n full: \"100%\",\n }),\n maxHeight: ({ theme }) => ({\n ...theme(\"spacing\"),\n \"1/4\": \"25%\",\n \"1/2\": \"50%\",\n full: \"100%\",\n }),\n // https://www.npmjs.com/package/@tailwindcss/aspect-ratio#compatibility-with-default-aspect-ratio-utilities\n aspectRatio: {\n auto: \"auto\",\n square: \"1 / 1\",\n video: \"16 / 9\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\",\n 14: \"14\",\n 15: \"15\",\n 16: \"16\",\n },\n },\n plugins: [AspectRatioPlugin, TypographyPlugin],\n};\n","import { isNil, isUndefined } from \"./identity\";\n\n/**\n * A `Comparator` is a function that takes two arguments of type `T` and\n * returns a positive, negative, or zero number as the first argument is\n * greater than, less than, or equal to the second. If `cmp: Comparator` and\n * `ts: T[]`, then `ts.sort(cmp)` sorts `ts` according to the ordering defined\n * by `cmp`.\n */\nexport type Comparator = (a: T, b: T) => number;\n\n/**\n * A comparator that follows elements' natural ordering. Useful for comparing\n * numbers: `[8, 9, 10].sort()` is broken, but `[8, 9, 10].sort(natural)` works\n * as expected. Also useful as a \"neutral\" comparator to give to combinators.\n */\nexport const natural: Comparator = (a: any, b: any) => {\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n return 0;\n};\n\n/**\n * Creates a comparator that yields the reverse order of the given comparator.\n */\nexport function reverse(comparator: Comparator = natural): Comparator {\n return (a, b) => -comparator(a, b);\n}\n\n/**\n * Creates a comparator that passes elements through a key-extraction function\n * and compares the resulting keys. The extracted keys are compared using the\n * given comparator (or natural order if none is given).\n *\n * For instance, to sort strings by their length, leaving strings of the same\n * length in the same order relative to each other:\n *\n * const byLength = cmp.comparing((s) => s.length);\n * words.sort(byLength);\n *\n * Or, to sort people by their names, locale-sensitively:\n *\n * const byName = cmp.comparing((p) => p.name, (a, b) => a.localeCompare(b));\n * people.sort(byName);\n */\nexport function comparing(\n extractKey: (t: T) => U,\n comparator: Comparator = natural\n): Comparator {\n return (a, b) => comparator(extractKey(a), extractKey(b));\n}\n\n/**\n * Creates a comparator that tries each of the given comparators in turn,\n * honoring the first one that gives a nonzero result. For instance, to sort\n * strings by their length, breaking ties by lexicographical order:\n *\n * const byLength = cmp.comparing((s) => s.length);\n * const byValue = cmp.natural;\n * const shortlex = first([byLength, byValue]);\n * words.sort(shortlex);\n */\nexport function first(comparators: Array>): Comparator {\n return (a, b) => {\n for (const comparator of comparators) {\n const result = comparator(a, b);\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n };\n}\n\n/**\n * Creates a comparator that treats `null` and `undefined` values as equal to\n * each other but greater than all other elements, falling back to `cmp` for\n * comparisons between non-nullish values. It is therefore guaranteed that\n * `cmp` will only be called with non-nullish inputs.\n *\n * Note that `Array.prototype.sort` also specifies that `undefined` values are\n * sent to the end and not passed to the comparator function, but this is not\n * the case for `null`s and also TypeScript doesn't know about this, anyway.\n */\nexport function nullsLast(\n comparator: Comparator = natural\n): Comparator {\n return (a: T | null | undefined, b: T | null | undefined) => {\n if (isNil(a) && !isNil(b)) {\n return 1;\n }\n if (!isNil(a) && isNil(b)) {\n return -1;\n }\n if (isNil(a) || isNil(b)) {\n return 0;\n }\n return comparator(a, b);\n };\n}\n\n/**\n * Lifts an comparator of elements to a lexicographic comparator of arrays. The\n * first index at which the array elements compare unequal, if any, determines\n * the order of the arrays. If one array is a strict prefix of the other, the\n * shorter array compares smaller.\n */\nexport function array(\n comparator: Comparator = natural\n): Comparator> {\n return (a: T[], b: T[]) => {\n // Loop invariant: at the start of each iteration, `a[:index]` and `b[:index]`\n // compare equal. (Initially trivially true because `index === 0`.)\n for (const [index] of a.entries()) {\n if (index >= b.length) {\n // `a[:index]` and `b` compare equal, but `a` has more parts, so `a`\n // follows `b`.\n return 1;\n }\n const aValue = a[index];\n const bValue = b[index];\n if (isUndefined(aValue) || isUndefined(bValue)) {\n return 0;\n }\n const result = comparator(aValue, bValue);\n if (result !== 0) {\n return result;\n }\n }\n if (a.length < b.length) {\n // `a` and `b[:a.length]` compare equal, but `b` has more parts, so\n // `a` precedes `b`.\n return -1;\n }\n return 0;\n };\n}\n","import { Measure, Unit } from \"convert-units\";\n\nexport type CoverageUnits = CoverageMetricUnits | CoverageImperialUnits;\nexport type DensitySystems = \"metric\" | \"imperial\";\n\nexport type CoverageMetricUnits = \"ha/h\";\nexport type CoverageImperialUnits = \"ac/h\";\n\nconst metric: Record = {\n \"ha/h\": {\n name: {\n singular: \"\",\n plural: \"\",\n },\n to_anchor: 1,\n },\n};\n\nconst imperial: Record = {\n \"ac/h\": {\n name: {\n singular: \"\",\n plural: \"\",\n },\n to_anchor: 1,\n },\n};\n\nconst measure: Measure = {\n systems: {\n metric,\n imperial,\n },\n anchors: {\n metric: {\n imperial: {\n ratio: 2.4712,\n },\n },\n imperial: {\n metric: {\n ratio: 1 / 2.4712,\n },\n },\n },\n};\n\nexport default measure;\n","import { Measure, Unit } from \"convert-units\";\n\nexport type DensityUnits = DensityMetricUnits | DensityImperialUnits;\nexport type DensitySystems = \"metric\" | \"imperial\";\n\nexport type DensityMetricUnits = \"/m2\" | \"/ha\" | \"/km2\";\nexport type DensityImperialUnits = \"/in2\" | \"/ft2\" | \"/ac\" | \"/mi2\";\n\nconst metric: Record = {\n \"/m2\": {\n name: {\n singular: \"\",\n plural: \"\",\n },\n to_anchor: 1,\n },\n \"/ha\": {\n name: {\n singular: \"\",\n plural: \"\",\n },\n to_anchor: 1 / 10_000,\n },\n \"/km2\": {\n name: {\n singular: \"\",\n plural: \"\",\n },\n to_anchor: 1 / 1_000_000,\n },\n};\n\nconst imperial: Record = {\n \"/in2\": {\n name: {\n singular: \"\",\n plural: \"\",\n },\n to_anchor: 144,\n },\n \"/ft2\": {\n name: {\n singular: \"\",\n plural: \"\",\n },\n to_anchor: 1,\n },\n \"/ac\": {\n name: {\n singular: \"\",\n plural: \"\",\n },\n to_anchor: 1 / 43_560,\n },\n \"/mi2\": {\n name: {\n singular: \"\",\n plural: \"\",\n },\n to_anchor: 1 / 27_878_400,\n },\n};\n\nconst measure: Measure = {\n systems: {\n metric,\n imperial,\n },\n anchors: {\n metric: {\n imperial: {\n ratio: 1 / 10.7639,\n },\n },\n imperial: {\n metric: {\n ratio: 10.7639,\n },\n },\n },\n};\n\nexport default measure;\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: frontend/translation.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"carbon.frontend.translation\";\n\nexport interface IntegerValue {\n value: number;\n}\n\nexport interface DoubleValue {\n value: number;\n}\n\nexport interface StringValue {\n value: string;\n}\n\nexport interface TemperatureValue {\n celcius?: number | undefined;\n fahrenheit?: number | undefined;\n}\n\nexport interface PercentValue {\n percent: number;\n}\n\nexport interface VoltageValue {\n volts: number;\n}\n\nexport interface FrequencyValue {\n hertz: number;\n}\n\nexport interface AreaValue {\n acres?: number | undefined;\n hectares?: number | undefined;\n squareFeet?: number | undefined;\n squareMeters?: number | undefined;\n}\n\nexport interface DurationValue {\n milliseconds?: number | undefined;\n seconds?: number | undefined;\n minutes?: number | undefined;\n hours?: number | undefined;\n}\n\nexport interface DistanceValue {\n millimeters?: number | undefined;\n meters?: number | undefined;\n kilometers?: number | undefined;\n inches?: number | undefined;\n feet?: number | undefined;\n miles?: number | undefined;\n centimeters?: number | undefined;\n}\n\nexport interface SpeedValue {\n kilometersPerHour?: number | undefined;\n milesPerHour?: number | undefined;\n}\n\nexport interface TranslationParameter {\n name: string;\n intValue?: IntegerValue | undefined;\n doubleValue?: DoubleValue | undefined;\n stringValue?: StringValue | undefined;\n temperatureValue?: TemperatureValue | undefined;\n percentValue?: PercentValue | undefined;\n voltageValue?: VoltageValue | undefined;\n frequencyValue?: FrequencyValue | undefined;\n areaValue?: AreaValue | undefined;\n durationValue?: DurationValue | undefined;\n distanceValue?: DistanceValue | undefined;\n speedValue?: SpeedValue | undefined;\n}\n\nfunction createBaseIntegerValue(): IntegerValue {\n return { value: 0 };\n}\n\nexport const IntegerValue: MessageFns = {\n encode(message: IntegerValue, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.value !== 0) {\n writer.uint32(8).int64(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): IntegerValue {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIntegerValue();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n\n message.value = longToNumber(reader.int64());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): IntegerValue {\n return { value: isSet(object.value) ? globalThis.Number(object.value) : 0 };\n },\n\n toJSON(message: IntegerValue): unknown {\n const obj: any = {};\n if (message.value !== 0) {\n obj.value = Math.round(message.value);\n }\n return obj;\n },\n\n create, I>>(base?: I): IntegerValue {\n return IntegerValue.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): IntegerValue {\n const message = createBaseIntegerValue();\n message.value = object.value ?? 0;\n return message;\n },\n};\n\nfunction createBaseDoubleValue(): DoubleValue {\n return { value: 0 };\n}\n\nexport const DoubleValue: MessageFns = {\n encode(message: DoubleValue, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.value !== 0) {\n writer.uint32(9).double(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DoubleValue {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDoubleValue();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.value = reader.double();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DoubleValue {\n return { value: isSet(object.value) ? globalThis.Number(object.value) : 0 };\n },\n\n toJSON(message: DoubleValue): unknown {\n const obj: any = {};\n if (message.value !== 0) {\n obj.value = message.value;\n }\n return obj;\n },\n\n create, I>>(base?: I): DoubleValue {\n return DoubleValue.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): DoubleValue {\n const message = createBaseDoubleValue();\n message.value = object.value ?? 0;\n return message;\n },\n};\n\nfunction createBaseStringValue(): StringValue {\n return { value: \"\" };\n}\n\nexport const StringValue: MessageFns = {\n encode(message: StringValue, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.value !== \"\") {\n writer.uint32(10).string(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StringValue {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStringValue();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n\n message.value = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StringValue {\n return { value: isSet(object.value) ? globalThis.String(object.value) : \"\" };\n },\n\n toJSON(message: StringValue): unknown {\n const obj: any = {};\n if (message.value !== \"\") {\n obj.value = message.value;\n }\n return obj;\n },\n\n create, I>>(base?: I): StringValue {\n return StringValue.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): StringValue {\n const message = createBaseStringValue();\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBaseTemperatureValue(): TemperatureValue {\n return { celcius: undefined, fahrenheit: undefined };\n}\n\nexport const TemperatureValue: MessageFns = {\n encode(message: TemperatureValue, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.celcius !== undefined) {\n writer.uint32(9).double(message.celcius);\n }\n if (message.fahrenheit !== undefined) {\n writer.uint32(17).double(message.fahrenheit);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): TemperatureValue {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTemperatureValue();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.celcius = reader.double();\n continue;\n case 2:\n if (tag !== 17) {\n break;\n }\n\n message.fahrenheit = reader.double();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): TemperatureValue {\n return {\n celcius: isSet(object.celcius) ? globalThis.Number(object.celcius) : undefined,\n fahrenheit: isSet(object.fahrenheit) ? globalThis.Number(object.fahrenheit) : undefined,\n };\n },\n\n toJSON(message: TemperatureValue): unknown {\n const obj: any = {};\n if (message.celcius !== undefined) {\n obj.celcius = message.celcius;\n }\n if (message.fahrenheit !== undefined) {\n obj.fahrenheit = message.fahrenheit;\n }\n return obj;\n },\n\n create, I>>(base?: I): TemperatureValue {\n return TemperatureValue.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): TemperatureValue {\n const message = createBaseTemperatureValue();\n message.celcius = object.celcius ?? undefined;\n message.fahrenheit = object.fahrenheit ?? undefined;\n return message;\n },\n};\n\nfunction createBasePercentValue(): PercentValue {\n return { percent: 0 };\n}\n\nexport const PercentValue: MessageFns = {\n encode(message: PercentValue, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.percent !== 0) {\n writer.uint32(8).uint32(message.percent);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PercentValue {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePercentValue();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n\n message.percent = reader.uint32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PercentValue {\n return { percent: isSet(object.percent) ? globalThis.Number(object.percent) : 0 };\n },\n\n toJSON(message: PercentValue): unknown {\n const obj: any = {};\n if (message.percent !== 0) {\n obj.percent = Math.round(message.percent);\n }\n return obj;\n },\n\n create, I>>(base?: I): PercentValue {\n return PercentValue.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): PercentValue {\n const message = createBasePercentValue();\n message.percent = object.percent ?? 0;\n return message;\n },\n};\n\nfunction createBaseVoltageValue(): VoltageValue {\n return { volts: 0 };\n}\n\nexport const VoltageValue: MessageFns = {\n encode(message: VoltageValue, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.volts !== 0) {\n writer.uint32(9).double(message.volts);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): VoltageValue {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVoltageValue();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.volts = reader.double();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): VoltageValue {\n return { volts: isSet(object.volts) ? globalThis.Number(object.volts) : 0 };\n },\n\n toJSON(message: VoltageValue): unknown {\n const obj: any = {};\n if (message.volts !== 0) {\n obj.volts = message.volts;\n }\n return obj;\n },\n\n create, I>>(base?: I): VoltageValue {\n return VoltageValue.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): VoltageValue {\n const message = createBaseVoltageValue();\n message.volts = object.volts ?? 0;\n return message;\n },\n};\n\nfunction createBaseFrequencyValue(): FrequencyValue {\n return { hertz: 0 };\n}\n\nexport const FrequencyValue: MessageFns = {\n encode(message: FrequencyValue, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.hertz !== 0) {\n writer.uint32(9).double(message.hertz);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FrequencyValue {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFrequencyValue();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.hertz = reader.double();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FrequencyValue {\n return { hertz: isSet(object.hertz) ? globalThis.Number(object.hertz) : 0 };\n },\n\n toJSON(message: FrequencyValue): unknown {\n const obj: any = {};\n if (message.hertz !== 0) {\n obj.hertz = message.hertz;\n }\n return obj;\n },\n\n create, I>>(base?: I): FrequencyValue {\n return FrequencyValue.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): FrequencyValue {\n const message = createBaseFrequencyValue();\n message.hertz = object.hertz ?? 0;\n return message;\n },\n};\n\nfunction createBaseAreaValue(): AreaValue {\n return { acres: undefined, hectares: undefined, squareFeet: undefined, squareMeters: undefined };\n}\n\nexport const AreaValue: MessageFns = {\n encode(message: AreaValue, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.acres !== undefined) {\n writer.uint32(9).double(message.acres);\n }\n if (message.hectares !== undefined) {\n writer.uint32(17).double(message.hectares);\n }\n if (message.squareFeet !== undefined) {\n writer.uint32(25).double(message.squareFeet);\n }\n if (message.squareMeters !== undefined) {\n writer.uint32(33).double(message.squareMeters);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AreaValue {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAreaValue();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.acres = reader.double();\n continue;\n case 2:\n if (tag !== 17) {\n break;\n }\n\n message.hectares = reader.double();\n continue;\n case 3:\n if (tag !== 25) {\n break;\n }\n\n message.squareFeet = reader.double();\n continue;\n case 4:\n if (tag !== 33) {\n break;\n }\n\n message.squareMeters = reader.double();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AreaValue {\n return {\n acres: isSet(object.acres) ? globalThis.Number(object.acres) : undefined,\n hectares: isSet(object.hectares) ? globalThis.Number(object.hectares) : undefined,\n squareFeet: isSet(object.squareFeet) ? globalThis.Number(object.squareFeet) : undefined,\n squareMeters: isSet(object.squareMeters) ? globalThis.Number(object.squareMeters) : undefined,\n };\n },\n\n toJSON(message: AreaValue): unknown {\n const obj: any = {};\n if (message.acres !== undefined) {\n obj.acres = message.acres;\n }\n if (message.hectares !== undefined) {\n obj.hectares = message.hectares;\n }\n if (message.squareFeet !== undefined) {\n obj.squareFeet = message.squareFeet;\n }\n if (message.squareMeters !== undefined) {\n obj.squareMeters = message.squareMeters;\n }\n return obj;\n },\n\n create, I>>(base?: I): AreaValue {\n return AreaValue.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): AreaValue {\n const message = createBaseAreaValue();\n message.acres = object.acres ?? undefined;\n message.hectares = object.hectares ?? undefined;\n message.squareFeet = object.squareFeet ?? undefined;\n message.squareMeters = object.squareMeters ?? undefined;\n return message;\n },\n};\n\nfunction createBaseDurationValue(): DurationValue {\n return { milliseconds: undefined, seconds: undefined, minutes: undefined, hours: undefined };\n}\n\nexport const DurationValue: MessageFns = {\n encode(message: DurationValue, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.milliseconds !== undefined) {\n writer.uint32(8).uint64(message.milliseconds);\n }\n if (message.seconds !== undefined) {\n writer.uint32(16).uint64(message.seconds);\n }\n if (message.minutes !== undefined) {\n writer.uint32(24).uint64(message.minutes);\n }\n if (message.hours !== undefined) {\n writer.uint32(32).uint64(message.hours);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DurationValue {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDurationValue();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n\n message.milliseconds = longToNumber(reader.uint64());\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.seconds = longToNumber(reader.uint64());\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.minutes = longToNumber(reader.uint64());\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.hours = longToNumber(reader.uint64());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DurationValue {\n return {\n milliseconds: isSet(object.milliseconds) ? globalThis.Number(object.milliseconds) : undefined,\n seconds: isSet(object.seconds) ? globalThis.Number(object.seconds) : undefined,\n minutes: isSet(object.minutes) ? globalThis.Number(object.minutes) : undefined,\n hours: isSet(object.hours) ? globalThis.Number(object.hours) : undefined,\n };\n },\n\n toJSON(message: DurationValue): unknown {\n const obj: any = {};\n if (message.milliseconds !== undefined) {\n obj.milliseconds = Math.round(message.milliseconds);\n }\n if (message.seconds !== undefined) {\n obj.seconds = Math.round(message.seconds);\n }\n if (message.minutes !== undefined) {\n obj.minutes = Math.round(message.minutes);\n }\n if (message.hours !== undefined) {\n obj.hours = Math.round(message.hours);\n }\n return obj;\n },\n\n create, I>>(base?: I): DurationValue {\n return DurationValue.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): DurationValue {\n const message = createBaseDurationValue();\n message.milliseconds = object.milliseconds ?? undefined;\n message.seconds = object.seconds ?? undefined;\n message.minutes = object.minutes ?? undefined;\n message.hours = object.hours ?? undefined;\n return message;\n },\n};\n\nfunction createBaseDistanceValue(): DistanceValue {\n return {\n millimeters: undefined,\n meters: undefined,\n kilometers: undefined,\n inches: undefined,\n feet: undefined,\n miles: undefined,\n centimeters: undefined,\n };\n}\n\nexport const DistanceValue: MessageFns = {\n encode(message: DistanceValue, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.millimeters !== undefined) {\n writer.uint32(9).double(message.millimeters);\n }\n if (message.meters !== undefined) {\n writer.uint32(17).double(message.meters);\n }\n if (message.kilometers !== undefined) {\n writer.uint32(25).double(message.kilometers);\n }\n if (message.inches !== undefined) {\n writer.uint32(33).double(message.inches);\n }\n if (message.feet !== undefined) {\n writer.uint32(41).double(message.feet);\n }\n if (message.miles !== undefined) {\n writer.uint32(49).double(message.miles);\n }\n if (message.centimeters !== undefined) {\n writer.uint32(57).double(message.centimeters);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DistanceValue {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDistanceValue();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.millimeters = reader.double();\n continue;\n case 2:\n if (tag !== 17) {\n break;\n }\n\n message.meters = reader.double();\n continue;\n case 3:\n if (tag !== 25) {\n break;\n }\n\n message.kilometers = reader.double();\n continue;\n case 4:\n if (tag !== 33) {\n break;\n }\n\n message.inches = reader.double();\n continue;\n case 5:\n if (tag !== 41) {\n break;\n }\n\n message.feet = reader.double();\n continue;\n case 6:\n if (tag !== 49) {\n break;\n }\n\n message.miles = reader.double();\n continue;\n case 7:\n if (tag !== 57) {\n break;\n }\n\n message.centimeters = reader.double();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DistanceValue {\n return {\n millimeters: isSet(object.millimeters) ? globalThis.Number(object.millimeters) : undefined,\n meters: isSet(object.meters) ? globalThis.Number(object.meters) : undefined,\n kilometers: isSet(object.kilometers) ? globalThis.Number(object.kilometers) : undefined,\n inches: isSet(object.inches) ? globalThis.Number(object.inches) : undefined,\n feet: isSet(object.feet) ? globalThis.Number(object.feet) : undefined,\n miles: isSet(object.miles) ? globalThis.Number(object.miles) : undefined,\n centimeters: isSet(object.centimeters) ? globalThis.Number(object.centimeters) : undefined,\n };\n },\n\n toJSON(message: DistanceValue): unknown {\n const obj: any = {};\n if (message.millimeters !== undefined) {\n obj.millimeters = message.millimeters;\n }\n if (message.meters !== undefined) {\n obj.meters = message.meters;\n }\n if (message.kilometers !== undefined) {\n obj.kilometers = message.kilometers;\n }\n if (message.inches !== undefined) {\n obj.inches = message.inches;\n }\n if (message.feet !== undefined) {\n obj.feet = message.feet;\n }\n if (message.miles !== undefined) {\n obj.miles = message.miles;\n }\n if (message.centimeters !== undefined) {\n obj.centimeters = message.centimeters;\n }\n return obj;\n },\n\n create, I>>(base?: I): DistanceValue {\n return DistanceValue.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): DistanceValue {\n const message = createBaseDistanceValue();\n message.millimeters = object.millimeters ?? undefined;\n message.meters = object.meters ?? undefined;\n message.kilometers = object.kilometers ?? undefined;\n message.inches = object.inches ?? undefined;\n message.feet = object.feet ?? undefined;\n message.miles = object.miles ?? undefined;\n message.centimeters = object.centimeters ?? undefined;\n return message;\n },\n};\n\nfunction createBaseSpeedValue(): SpeedValue {\n return { kilometersPerHour: undefined, milesPerHour: undefined };\n}\n\nexport const SpeedValue: MessageFns = {\n encode(message: SpeedValue, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.kilometersPerHour !== undefined) {\n writer.uint32(9).double(message.kilometersPerHour);\n }\n if (message.milesPerHour !== undefined) {\n writer.uint32(17).double(message.milesPerHour);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SpeedValue {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSpeedValue();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.kilometersPerHour = reader.double();\n continue;\n case 2:\n if (tag !== 17) {\n break;\n }\n\n message.milesPerHour = reader.double();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SpeedValue {\n return {\n kilometersPerHour: isSet(object.kilometersPerHour) ? globalThis.Number(object.kilometersPerHour) : undefined,\n milesPerHour: isSet(object.milesPerHour) ? globalThis.Number(object.milesPerHour) : undefined,\n };\n },\n\n toJSON(message: SpeedValue): unknown {\n const obj: any = {};\n if (message.kilometersPerHour !== undefined) {\n obj.kilometersPerHour = message.kilometersPerHour;\n }\n if (message.milesPerHour !== undefined) {\n obj.milesPerHour = message.milesPerHour;\n }\n return obj;\n },\n\n create, I>>(base?: I): SpeedValue {\n return SpeedValue.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): SpeedValue {\n const message = createBaseSpeedValue();\n message.kilometersPerHour = object.kilometersPerHour ?? undefined;\n message.milesPerHour = object.milesPerHour ?? undefined;\n return message;\n },\n};\n\nfunction createBaseTranslationParameter(): TranslationParameter {\n return {\n name: \"\",\n intValue: undefined,\n doubleValue: undefined,\n stringValue: undefined,\n temperatureValue: undefined,\n percentValue: undefined,\n voltageValue: undefined,\n frequencyValue: undefined,\n areaValue: undefined,\n durationValue: undefined,\n distanceValue: undefined,\n speedValue: undefined,\n };\n}\n\nexport const TranslationParameter: MessageFns = {\n encode(message: TranslationParameter, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.intValue !== undefined) {\n IntegerValue.encode(message.intValue, writer.uint32(18).fork()).join();\n }\n if (message.doubleValue !== undefined) {\n DoubleValue.encode(message.doubleValue, writer.uint32(26).fork()).join();\n }\n if (message.stringValue !== undefined) {\n StringValue.encode(message.stringValue, writer.uint32(34).fork()).join();\n }\n if (message.temperatureValue !== undefined) {\n TemperatureValue.encode(message.temperatureValue, writer.uint32(42).fork()).join();\n }\n if (message.percentValue !== undefined) {\n PercentValue.encode(message.percentValue, writer.uint32(50).fork()).join();\n }\n if (message.voltageValue !== undefined) {\n VoltageValue.encode(message.voltageValue, writer.uint32(58).fork()).join();\n }\n if (message.frequencyValue !== undefined) {\n FrequencyValue.encode(message.frequencyValue, writer.uint32(66).fork()).join();\n }\n if (message.areaValue !== undefined) {\n AreaValue.encode(message.areaValue, writer.uint32(74).fork()).join();\n }\n if (message.durationValue !== undefined) {\n DurationValue.encode(message.durationValue, writer.uint32(82).fork()).join();\n }\n if (message.distanceValue !== undefined) {\n DistanceValue.encode(message.distanceValue, writer.uint32(90).fork()).join();\n }\n if (message.speedValue !== undefined) {\n SpeedValue.encode(message.speedValue, writer.uint32(98).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): TranslationParameter {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTranslationParameter();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n\n message.name = reader.string();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.intValue = IntegerValue.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.doubleValue = DoubleValue.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.stringValue = StringValue.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.temperatureValue = TemperatureValue.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.percentValue = PercentValue.decode(reader, reader.uint32());\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.voltageValue = VoltageValue.decode(reader, reader.uint32());\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.frequencyValue = FrequencyValue.decode(reader, reader.uint32());\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.areaValue = AreaValue.decode(reader, reader.uint32());\n continue;\n case 10:\n if (tag !== 82) {\n break;\n }\n\n message.durationValue = DurationValue.decode(reader, reader.uint32());\n continue;\n case 11:\n if (tag !== 90) {\n break;\n }\n\n message.distanceValue = DistanceValue.decode(reader, reader.uint32());\n continue;\n case 12:\n if (tag !== 98) {\n break;\n }\n\n message.speedValue = SpeedValue.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): TranslationParameter {\n return {\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n intValue: isSet(object.intValue) ? IntegerValue.fromJSON(object.intValue) : undefined,\n doubleValue: isSet(object.doubleValue) ? DoubleValue.fromJSON(object.doubleValue) : undefined,\n stringValue: isSet(object.stringValue) ? StringValue.fromJSON(object.stringValue) : undefined,\n temperatureValue: isSet(object.temperatureValue) ? TemperatureValue.fromJSON(object.temperatureValue) : undefined,\n percentValue: isSet(object.percentValue) ? PercentValue.fromJSON(object.percentValue) : undefined,\n voltageValue: isSet(object.voltageValue) ? VoltageValue.fromJSON(object.voltageValue) : undefined,\n frequencyValue: isSet(object.frequencyValue) ? FrequencyValue.fromJSON(object.frequencyValue) : undefined,\n areaValue: isSet(object.areaValue) ? AreaValue.fromJSON(object.areaValue) : undefined,\n durationValue: isSet(object.durationValue) ? DurationValue.fromJSON(object.durationValue) : undefined,\n distanceValue: isSet(object.distanceValue) ? DistanceValue.fromJSON(object.distanceValue) : undefined,\n speedValue: isSet(object.speedValue) ? SpeedValue.fromJSON(object.speedValue) : undefined,\n };\n },\n\n toJSON(message: TranslationParameter): unknown {\n const obj: any = {};\n if (message.name !== \"\") {\n obj.name = message.name;\n }\n if (message.intValue !== undefined) {\n obj.intValue = IntegerValue.toJSON(message.intValue);\n }\n if (message.doubleValue !== undefined) {\n obj.doubleValue = DoubleValue.toJSON(message.doubleValue);\n }\n if (message.stringValue !== undefined) {\n obj.stringValue = StringValue.toJSON(message.stringValue);\n }\n if (message.temperatureValue !== undefined) {\n obj.temperatureValue = TemperatureValue.toJSON(message.temperatureValue);\n }\n if (message.percentValue !== undefined) {\n obj.percentValue = PercentValue.toJSON(message.percentValue);\n }\n if (message.voltageValue !== undefined) {\n obj.voltageValue = VoltageValue.toJSON(message.voltageValue);\n }\n if (message.frequencyValue !== undefined) {\n obj.frequencyValue = FrequencyValue.toJSON(message.frequencyValue);\n }\n if (message.areaValue !== undefined) {\n obj.areaValue = AreaValue.toJSON(message.areaValue);\n }\n if (message.durationValue !== undefined) {\n obj.durationValue = DurationValue.toJSON(message.durationValue);\n }\n if (message.distanceValue !== undefined) {\n obj.distanceValue = DistanceValue.toJSON(message.distanceValue);\n }\n if (message.speedValue !== undefined) {\n obj.speedValue = SpeedValue.toJSON(message.speedValue);\n }\n return obj;\n },\n\n create, I>>(base?: I): TranslationParameter {\n return TranslationParameter.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): TranslationParameter {\n const message = createBaseTranslationParameter();\n message.name = object.name ?? \"\";\n message.intValue = (object.intValue !== undefined && object.intValue !== null)\n ? IntegerValue.fromPartial(object.intValue)\n : undefined;\n message.doubleValue = (object.doubleValue !== undefined && object.doubleValue !== null)\n ? DoubleValue.fromPartial(object.doubleValue)\n : undefined;\n message.stringValue = (object.stringValue !== undefined && object.stringValue !== null)\n ? StringValue.fromPartial(object.stringValue)\n : undefined;\n message.temperatureValue = (object.temperatureValue !== undefined && object.temperatureValue !== null)\n ? TemperatureValue.fromPartial(object.temperatureValue)\n : undefined;\n message.percentValue = (object.percentValue !== undefined && object.percentValue !== null)\n ? PercentValue.fromPartial(object.percentValue)\n : undefined;\n message.voltageValue = (object.voltageValue !== undefined && object.voltageValue !== null)\n ? VoltageValue.fromPartial(object.voltageValue)\n : undefined;\n message.frequencyValue = (object.frequencyValue !== undefined && object.frequencyValue !== null)\n ? FrequencyValue.fromPartial(object.frequencyValue)\n : undefined;\n message.areaValue = (object.areaValue !== undefined && object.areaValue !== null)\n ? AreaValue.fromPartial(object.areaValue)\n : undefined;\n message.durationValue = (object.durationValue !== undefined && object.durationValue !== null)\n ? DurationValue.fromPartial(object.durationValue)\n : undefined;\n message.distanceValue = (object.distanceValue !== undefined && object.distanceValue !== null)\n ? DistanceValue.fromPartial(object.distanceValue)\n : undefined;\n message.speedValue = (object.speedValue !== undefined && object.speedValue !== null)\n ? SpeedValue.fromPartial(object.speedValue)\n : undefined;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: util/util.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"carbon.util\";\n\nexport interface Empty {\n}\n\nexport interface Timestamp {\n timestampMs: number;\n}\n\nexport interface FeatureFlags {\n ts: Timestamp | undefined;\n flags: { [key: string]: boolean };\n}\n\nexport interface FeatureFlags_FlagsEntry {\n key: string;\n value: boolean;\n}\n\nfunction createBaseEmpty(): Empty {\n return {};\n}\n\nexport const Empty: MessageFns = {\n encode(_: Empty, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Empty {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEmpty();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): Empty {\n return {};\n },\n\n toJSON(_: Empty): unknown {\n const obj: any = {};\n return obj;\n },\n\n create, I>>(base?: I): Empty {\n return Empty.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(_: I): Empty {\n const message = createBaseEmpty();\n return message;\n },\n};\n\nfunction createBaseTimestamp(): Timestamp {\n return { timestampMs: 0 };\n}\n\nexport const Timestamp: MessageFns = {\n encode(message: Timestamp, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.timestampMs !== 0) {\n writer.uint32(8).int64(message.timestampMs);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Timestamp {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTimestamp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n\n message.timestampMs = longToNumber(reader.int64());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Timestamp {\n return { timestampMs: isSet(object.timestampMs) ? globalThis.Number(object.timestampMs) : 0 };\n },\n\n toJSON(message: Timestamp): unknown {\n const obj: any = {};\n if (message.timestampMs !== 0) {\n obj.timestampMs = Math.round(message.timestampMs);\n }\n return obj;\n },\n\n create, I>>(base?: I): Timestamp {\n return Timestamp.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): Timestamp {\n const message = createBaseTimestamp();\n message.timestampMs = object.timestampMs ?? 0;\n return message;\n },\n};\n\nfunction createBaseFeatureFlags(): FeatureFlags {\n return { ts: undefined, flags: {} };\n}\n\nexport const FeatureFlags: MessageFns = {\n encode(message: FeatureFlags, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ts !== undefined) {\n Timestamp.encode(message.ts, writer.uint32(10).fork()).join();\n }\n Object.entries(message.flags).forEach(([key, value]) => {\n FeatureFlags_FlagsEntry.encode({ key: key as any, value }, writer.uint32(18).fork()).join();\n });\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FeatureFlags {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFeatureFlags();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n\n message.ts = Timestamp.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n const entry2 = FeatureFlags_FlagsEntry.decode(reader, reader.uint32());\n if (entry2.value !== undefined) {\n message.flags[entry2.key] = entry2.value;\n }\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FeatureFlags {\n return {\n ts: isSet(object.ts) ? Timestamp.fromJSON(object.ts) : undefined,\n flags: isObject(object.flags)\n ? Object.entries(object.flags).reduce<{ [key: string]: boolean }>((acc, [key, value]) => {\n acc[key] = Boolean(value);\n return acc;\n }, {})\n : {},\n };\n },\n\n toJSON(message: FeatureFlags): unknown {\n const obj: any = {};\n if (message.ts !== undefined) {\n obj.ts = Timestamp.toJSON(message.ts);\n }\n if (message.flags) {\n const entries = Object.entries(message.flags);\n if (entries.length > 0) {\n obj.flags = {};\n entries.forEach(([k, v]) => {\n obj.flags[k] = v;\n });\n }\n }\n return obj;\n },\n\n create, I>>(base?: I): FeatureFlags {\n return FeatureFlags.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): FeatureFlags {\n const message = createBaseFeatureFlags();\n message.ts = (object.ts !== undefined && object.ts !== null) ? Timestamp.fromPartial(object.ts) : undefined;\n message.flags = Object.entries(object.flags ?? {}).reduce<{ [key: string]: boolean }>((acc, [key, value]) => {\n if (value !== undefined) {\n acc[key] = globalThis.Boolean(value);\n }\n return acc;\n }, {});\n return message;\n },\n};\n\nfunction createBaseFeatureFlags_FlagsEntry(): FeatureFlags_FlagsEntry {\n return { key: \"\", value: false };\n}\n\nexport const FeatureFlags_FlagsEntry: MessageFns = {\n encode(message: FeatureFlags_FlagsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== false) {\n writer.uint32(16).bool(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FeatureFlags_FlagsEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFeatureFlags_FlagsEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.value = reader.bool();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FeatureFlags_FlagsEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? globalThis.Boolean(object.value) : false,\n };\n },\n\n toJSON(message: FeatureFlags_FlagsEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== false) {\n obj.value = message.value;\n }\n return obj;\n },\n\n create, I>>(base?: I): FeatureFlags_FlagsEntry {\n return FeatureFlags_FlagsEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial, I>>(object: I): FeatureFlags_FlagsEntry {\n const message = createBaseFeatureFlags_FlagsEntry();\n message.key = object.key ?? \"\";\n message.value = object.value ?? false;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial = T extends Builtin ? T\n : T extends globalThis.Array ? globalThis.Array>\n : T extends ReadonlyArray ? ReadonlyArray>\n : T extends {} ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin ? P\n : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isObject(value: any): boolean {\n return typeof value === \"object\" && value !== null;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create, I>>(base?: I): T;\n fromPartial, I>>(object: I): T;\n}\n"],"names":["AspectRatioPlugin","TypographyPlugin","Color","defaultConfig","resolveConfig","CARBON_BLUE","CARBON_GREEN","CARBON_ORANGE","CARBON_YELLOW","toTailwindRange","sourceColor","color500","color100","lighten","saturate","color300","mix","color200","color400","color900","darken","color700","color600","color800","hex","module","exports","corePlugins","preflight","darkMode","important","content","separator","theme","extend","animation","keyframes","from","transform","borderRadius","xs","leading","inherit","colors","carbon","orange","yellow","gray","dark","medium","light","green","blue","map","draw","fill","border","vertex","text","textHalo","farms","field","obstacle","headland","default","focused","centerPivot","height","unset","width","minWidth","full","maxWidth","minHeight","maxHeight","aspectRatio","auto","square","video","plugins","natural","a","b","comparing","extractKey","comparator","first","comparators","result","nullsLast","systems","metric","name","singular","plural","to_anchor","imperial","anchors","ratio","IntegerValue","encode","message","writer","value","uint32","int64","decode","input","length","reader","end","undefined","len","pos","tag","longToNumber","skip","fromJSON","object","isSet","globalThis","Number","toJSON","obj","Math","round","create","base","fromPartial","DoubleValue","double","StringValue","string","String","TemperatureValue","celcius","fahrenheit","PercentValue","percent","VoltageValue","volts","FrequencyValue","hertz","AreaValue","acres","hectares","squareFeet","squareMeters","DurationValue","milliseconds","uint64","seconds","minutes","hours","DistanceValue","millimeters","meters","kilometers","inches","feet","miles","centimeters","SpeedValue","kilometersPerHour","milesPerHour","TranslationParameter","intValue","fork","join","doubleValue","stringValue","temperatureValue","percentValue","voltageValue","frequencyValue","areaValue","durationValue","distanceValue","speedValue","num","toString","MAX_SAFE_INTEGER","Error","MIN_SAFE_INTEGER","Timestamp","timestampMs"],"sourceRoot":""}