@speleotica/frcsdata 5.0.0-beta.1 → 5.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/ParseIssue.js +4 -4
  2. package/ParseIssue.js.map +1 -1
  3. package/SourceLoc.js +5 -5
  4. package/SourceLoc.js.map +1 -1
  5. package/chunksToLines.js +29 -131
  6. package/chunksToLines.js.map +1 -1
  7. package/cli/check-survey-correspondence.d.ts +2 -0
  8. package/cli/check-survey-correspondence.d.ts.map +1 -0
  9. package/cli/check-survey-correspondence.js +44 -0
  10. package/cli/check-survey-correspondence.js.map +1 -0
  11. package/cli/check-survey.d.ts.map +1 -1
  12. package/cli/check-survey.js +14 -75
  13. package/cli/check-survey.js.map +1 -1
  14. package/cli/parse-survey.js +4 -26
  15. package/cli/parse-survey.js.map +1 -1
  16. package/cli/summarize-survey.d.ts +2 -0
  17. package/cli/summarize-survey.d.ts.map +1 -0
  18. package/cli/summarize-survey.js +33 -0
  19. package/cli/summarize-survey.js.map +1 -0
  20. package/cli.js +61 -72
  21. package/cli.js.map +1 -1
  22. package/formatFrcsTripSummaryFile.d.ts +3 -0
  23. package/formatFrcsTripSummaryFile.d.ts.map +1 -0
  24. package/formatFrcsTripSummaryFile.js +33 -0
  25. package/formatFrcsTripSummaryFile.js.map +1 -0
  26. package/formatIssues.d.ts +10 -0
  27. package/formatIssues.d.ts.map +1 -0
  28. package/formatIssues.js +52 -0
  29. package/formatIssues.js.map +1 -0
  30. package/index.js +13 -13
  31. package/node/index.d.ts +3 -1
  32. package/node/index.d.ts.map +1 -1
  33. package/node/index.js +5 -19
  34. package/node/index.js.map +1 -1
  35. package/package.json +1 -1
  36. package/parseFrcsPlotFile.js +112 -245
  37. package/parseFrcsPlotFile.js.map +1 -1
  38. package/parseFrcsTripSummaryFile.d.ts +3 -1
  39. package/parseFrcsTripSummaryFile.d.ts.map +1 -1
  40. package/parseFrcsTripSummaryFile.js +53 -119
  41. package/parseFrcsTripSummaryFile.js.map +1 -1
  42. package/src/cli/check-survey-correspondence.ts +49 -0
  43. package/src/cli/check-survey.ts +8 -69
  44. package/src/cli/summarize-survey.ts +28 -0
  45. package/src/cli.ts +33 -0
  46. package/src/formatFrcsTripSummaryFile.ts +45 -0
  47. package/src/formatIssues.ts +97 -0
  48. package/src/parseFrcsTripSummaryFile.ts +8 -2
  49. package/src/survey/FrcsSurveyFile.ts +3 -1
  50. package/src/survey/ZodFrcsSurveyFileJson.ts +15 -4
  51. package/src/survey/ZodFrcsSurveyFileToJson.ts +15 -4
  52. package/src/survey/normalizeTeamMemberName.ts +3 -6
  53. package/src/survey/parseFrcsSurveyFile.ts +9 -25
  54. package/src/survey/summarizeSurvey.ts +51 -0
  55. package/src/unwrapInvalid.ts +3 -0
  56. package/string/index.d.ts +3 -1
  57. package/string/index.d.ts.map +1 -1
  58. package/string/index.js +7 -41
  59. package/string/index.js.map +1 -1
  60. package/survey/FrcsSurveyFile.d.ts +1 -1
  61. package/survey/FrcsSurveyFile.d.ts.map +1 -1
  62. package/survey/FrcsSurveyFile.js +1 -1
  63. package/survey/FrcsSurveyFile.js.map +1 -1
  64. package/survey/ZodFrcsSurveyFileJson.d.ts +13083 -457
  65. package/survey/ZodFrcsSurveyFileJson.d.ts.map +1 -1
  66. package/survey/ZodFrcsSurveyFileJson.js +89 -87
  67. package/survey/ZodFrcsSurveyFileJson.js.map +1 -1
  68. package/survey/ZodFrcsSurveyFileToJson.d.ts +12860 -234
  69. package/survey/ZodFrcsSurveyFileToJson.d.ts.map +1 -1
  70. package/survey/ZodFrcsSurveyFileToJson.js +83 -89
  71. package/survey/ZodFrcsSurveyFileToJson.js.map +1 -1
  72. package/survey/formatFrcsShot.js +45 -43
  73. package/survey/formatFrcsShot.js.map +1 -1
  74. package/survey/formatFrcsSurveyFile.js +52 -130
  75. package/survey/formatFrcsSurveyFile.js.map +1 -1
  76. package/survey/getColumnRanges.js +11 -19
  77. package/survey/getColumnRanges.js.map +1 -1
  78. package/survey/normalizeTeamMemberName.d.ts.map +1 -1
  79. package/survey/normalizeTeamMemberName.js +1 -5
  80. package/survey/normalizeTeamMemberName.js.map +1 -1
  81. package/survey/parseFrcsSurveyFile.d.ts.map +1 -1
  82. package/survey/parseFrcsSurveyFile.js +560 -750
  83. package/survey/parseFrcsSurveyFile.js.map +1 -1
  84. package/survey/parsers.js +20 -20
  85. package/survey/parsers.js.map +1 -1
  86. package/survey/summarizeSurvey.d.ts +6 -0
  87. package/survey/summarizeSurvey.d.ts.map +1 -0
  88. package/survey/summarizeSurvey.js +58 -0
  89. package/survey/summarizeSurvey.js.map +1 -0
  90. package/underlineSource.js +9 -17
  91. package/underlineSource.js.map +1 -1
  92. package/unwrapInvalid.d.ts +4 -0
  93. package/unwrapInvalid.d.ts.map +1 -0
  94. package/unwrapInvalid.js +10 -0
  95. package/unwrapInvalid.js.map +1 -0
  96. package/web/index.js +56 -116
  97. package/web/index.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ZodFrcsSurveyFileToJson.js","names":["_unitized","require","_zod","_interopRequireDefault","_ParseIssue","ZodLengthUnit","z","Unit","transform","unit","Length","meters","kilometers","centimeters","feet","inches","yards","miles","Error","ZodAngleUnit","Angle","degrees","radians","gradians","milsNATO","percentGrade","ZodLength","UnitizedNumber","length","get","parse","ZodAngle","angle","ZodSourceLoc","strictObject","start","index","number","line","column","end","ZodFrcsShotBase","from","string","to","optional","specialKind","distance","horizontalDistance","verticalDistance","frontsightAzimuth","frontsightInclination","backsightAzimuth","backsightInclination","fromLruds","left","right","up","down","toLruds","excludeDistance","b","undefined","isSplay","comment","loc","locs","ZodFrcsUnits","distanceUnit","azimuthUnit","inclinationUnit","backsightAzimuthCorrected","backsightInclinationCorrected","hasBacksightAzimuth","hasBacksightInclination","ZodFrcsShot","extend","recorded","units","ZodDate","date","d","toISOString","substring","ZodFrcsTripHeader","name","section","team","array","ZodFrcsTrip","tripNumber","min","header","shots","ZodFrcsSurveyFileToJson","exports","cave","columns","toStation","fromStation","distanceFeet","distanceInches","kind","exclude","location","trips","issues","ParseIssue","Invalid","schema","INVALID","ZodInvalidFrcsShot","partial","ZodInvalidFrcsUnits","ZodInvalidFrcsTripHeader","ZodInvalidFrcsTrip","union","ZodInvalidFrcsSurveyFileToJson","ZodValidOrInvalidFrcsSurveyFileToJson"],"sources":["../../src/survey/ZodFrcsSurveyFileToJson.ts"],"sourcesContent":["import { Angle, Length, Unit, UnitizedNumber } from '@speleotica/unitized'\nimport z from 'zod'\nimport type { DeepMapJson, JsonAngle, JsonLength } from './FrcsSurveyFileJson'\nimport type { SourceLoc } from '../SourceLoc'\nimport type {\n FrcsShot,\n FrcsSurveyFile,\n FrcsTrip,\n FrcsTripHeader,\n FrcsUnits,\n InvalidFrcsShot,\n InvalidFrcsSurveyFile,\n InvalidFrcsTrip,\n InvalidFrcsTripHeader,\n InvalidFrcsUnits,\n} from './FrcsSurveyFile'\nimport { ParseIssue } from '../ParseIssue'\n\ntype DeepMapJsonSchema<T> = z.ZodType<DeepMapJson<T>, any, T>\n\nconst ZodLengthUnit = z\n .instanceof<typeof Unit<Length>>(Unit)\n .transform((unit) => {\n switch (unit) {\n case Length.meters:\n return 'm'\n case Length.kilometers:\n return 'km'\n case Length.centimeters:\n return 'cm'\n case Length.feet:\n return 'ft'\n case Length.inches:\n return 'in'\n case Length.yards:\n return 'yd'\n case Length.miles:\n return 'mi'\n }\n throw new Error('invalid unit')\n })\n\nZodLengthUnit satisfies DeepMapJsonSchema<Unit<Length>>\n\nconst ZodAngleUnit = z\n .instanceof<typeof Unit<Angle>>(Unit)\n .transform((unit) => {\n switch (unit) {\n case Angle.degrees:\n return 'deg'\n case Angle.radians:\n return 'rad'\n case Angle.gradians:\n return 'grad'\n case Angle.milsNATO:\n return 'mil'\n case Angle.percentGrade:\n return '%'\n }\n throw new Error('invalid unit')\n })\n\nZodAngleUnit satisfies DeepMapJsonSchema<Unit<Angle>>\n\nconst ZodLength = z\n .instanceof<typeof UnitizedNumber<Length>>(UnitizedNumber)\n .transform(\n (length) =>\n [\n length.get(length.unit),\n ZodLengthUnit.parse(length.unit),\n ] satisfies JsonLength\n )\n\nZodLength satisfies DeepMapJsonSchema<UnitizedNumber<Length>>\n\nconst ZodAngle = z\n .instanceof<typeof UnitizedNumber<Angle>>(UnitizedNumber)\n .transform(\n (angle) =>\n [\n angle.get(angle.unit),\n ZodAngleUnit.parse(angle.unit),\n ] satisfies JsonAngle\n )\n\nZodAngle satisfies DeepMapJsonSchema<UnitizedNumber<Angle>>\n\nconst ZodSourceLoc = z.strictObject({\n start: z.strictObject({\n index: z.number(),\n line: z.number(),\n column: z.number(),\n }),\n end: z.strictObject({\n index: z.number(),\n line: z.number(),\n column: z.number(),\n }),\n})\n\nZodSourceLoc satisfies DeepMapJsonSchema<SourceLoc>\n\nconst ZodFrcsShotBase = z.strictObject({\n from: z.string(),\n to: z.string().optional(),\n specialKind: z.enum(['horizontal', 'diagonal']).optional(),\n distance: ZodLength,\n horizontalDistance: ZodLength.optional(),\n verticalDistance: ZodLength.optional(),\n frontsightAzimuth: ZodAngle.optional(),\n frontsightInclination: ZodAngle.optional(),\n backsightAzimuth: ZodAngle.optional(),\n backsightInclination: ZodAngle.optional(),\n /**\n * LRUDs at from station\n */\n fromLruds: z\n .strictObject({\n left: ZodLength.optional(),\n right: ZodLength.optional(),\n up: ZodLength.optional(),\n down: ZodLength.optional(),\n })\n .optional(),\n /**\n * LRUDs at to station\n */\n toLruds: z\n .strictObject({\n left: ZodLength.optional(),\n right: ZodLength.optional(),\n up: ZodLength.optional(),\n down: ZodLength.optional(),\n })\n .optional(),\n\n excludeDistance: z\n .boolean()\n .optional()\n .transform((b) => b || undefined),\n isSplay: z\n .boolean()\n .optional()\n .transform((b) => b || undefined),\n comment: z.string().optional(),\n loc: ZodSourceLoc.optional(),\n locs: z\n .strictObject({\n comment: ZodSourceLoc.optional(),\n })\n .optional(),\n})\n\nconst ZodFrcsUnits = z.strictObject({\n distanceUnit: ZodLengthUnit,\n azimuthUnit: ZodAngleUnit,\n inclinationUnit: ZodAngleUnit,\n backsightAzimuthCorrected: z.boolean().optional(),\n backsightInclinationCorrected: z.boolean().optional(),\n hasBacksightAzimuth: z.boolean().optional(),\n hasBacksightInclination: z.boolean().optional(),\n loc: ZodSourceLoc.optional(),\n locs: z\n .strictObject({\n distanceUnit: ZodSourceLoc.optional(),\n azimuthUnit: ZodSourceLoc.optional(),\n inclinationUnit: ZodSourceLoc.optional(),\n backsightAzimuthCorrected: ZodSourceLoc.optional(),\n backsightInclinationCorrected: ZodSourceLoc.optional(),\n hasBacksightAzimuth: ZodSourceLoc.optional(),\n hasBacksightInclination: ZodSourceLoc.optional(),\n })\n .optional(),\n})\n\nZodFrcsUnits satisfies DeepMapJsonSchema<FrcsUnits>\n\nconst ZodFrcsShot = ZodFrcsShotBase.extend({\n recorded: ZodFrcsShotBase.extend({\n units: ZodFrcsUnits.optional(),\n }).optional(),\n})\n\nZodFrcsShot satisfies DeepMapJsonSchema<FrcsShot>\n\nconst ZodDate = z.date().transform((d) => d.toISOString().substring(0, 10))\n\nconst ZodFrcsTripHeader = z.strictObject({\n name: z.string(),\n comment: z.string().optional(),\n section: z.string().optional(),\n date: ZodDate.optional(),\n team: z.array(z.string()).optional(),\n loc: ZodSourceLoc.optional(),\n locs: z\n .strictObject({\n name: ZodSourceLoc,\n comment: ZodSourceLoc.optional(),\n section: ZodSourceLoc.optional(),\n date: ZodSourceLoc.optional(),\n team: z.array(ZodSourceLoc).optional(),\n })\n .optional(),\n})\n\nZodFrcsTripHeader satisfies DeepMapJsonSchema<FrcsTripHeader>\n\nconst ZodFrcsTrip = z.strictObject({\n tripNumber: z.number().int().min(1),\n header: ZodFrcsTripHeader,\n units: ZodFrcsUnits,\n shots: z.array(ZodFrcsShot),\n loc: ZodSourceLoc.optional(),\n})\n\nZodFrcsTrip satisfies DeepMapJsonSchema<FrcsTrip>\n\nexport const ZodFrcsSurveyFileToJson = z.strictObject({\n cave: z.string().optional(),\n columns: z\n .strictObject({\n toStation: z.number(),\n fromStation: z.number(),\n distance: z.number(),\n distanceFeet: z.number(),\n distanceInches: z.number(),\n kind: z.number(),\n exclude: z.number(),\n frontsightAzimuth: z.number(),\n backsightAzimuth: z.number(),\n frontsightInclination: z.number(),\n backsightInclination: z.number(),\n left: z.number(),\n right: z.number(),\n up: z.number(),\n down: z.number(),\n })\n .optional(),\n location: z.string().optional(),\n comment: z.string().optional(),\n trips: z.array(ZodFrcsTrip),\n locs: z\n .strictObject({\n cave: ZodSourceLoc.optional(),\n location: ZodSourceLoc.optional(),\n comment: ZodSourceLoc.optional(),\n })\n .optional(),\n issues: z.array(ParseIssue).optional(),\n})\n\nZodFrcsSurveyFileToJson satisfies DeepMapJsonSchema<FrcsSurveyFile>\n\nfunction Invalid<T extends z.ZodTypeAny>(schema: T) {\n return z.strictObject({\n INVALID: schema,\n issues: z.array(z.number()).optional(),\n })\n}\n\nconst ZodInvalidFrcsShot = Invalid(ZodFrcsShot.partial())\n\nZodInvalidFrcsShot satisfies DeepMapJsonSchema<InvalidFrcsShot>\n\nconst ZodInvalidFrcsUnits = Invalid(ZodFrcsUnits.partial())\n\nZodInvalidFrcsUnits satisfies DeepMapJsonSchema<InvalidFrcsUnits>\n\nconst ZodInvalidFrcsTripHeader = Invalid(ZodFrcsTripHeader.partial())\n\nZodInvalidFrcsTripHeader satisfies DeepMapJsonSchema<InvalidFrcsTripHeader>\n\nconst ZodInvalidFrcsTrip = Invalid(\n z.strictObject({\n tripNumber: z.number().int().min(1).optional(),\n header: z.union([ZodInvalidFrcsTripHeader, ZodFrcsTripHeader]),\n units: z.union([ZodInvalidFrcsUnits, ZodFrcsUnits]),\n shots: z.array(z.union([ZodInvalidFrcsShot, ZodFrcsShot])),\n })\n)\n\nZodInvalidFrcsTrip satisfies DeepMapJsonSchema<InvalidFrcsTrip>\n\nexport const ZodInvalidFrcsSurveyFileToJson = z.strictObject({\n INVALID: ZodFrcsSurveyFileToJson.extend({\n trips: z.array(z.union([ZodInvalidFrcsTrip, ZodFrcsTrip])),\n }),\n issues: z.array(ParseIssue),\n})\n\nZodInvalidFrcsSurveyFileToJson satisfies DeepMapJsonSchema<InvalidFrcsSurveyFile>\n\nexport const ZodValidOrInvalidFrcsSurveyFileToJson = z.union([\n ZodInvalidFrcsSurveyFileToJson,\n ZodFrcsSurveyFileToJson,\n])\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ZodFrcsSurveyFileToJson.js","names":["_unitized","require","_zod","_interopRequireDefault","_ParseIssue","ZodLengthUnit","z","instanceof","Unit","transform","unit","Length","meters","kilometers","centimeters","feet","inches","yards","miles","Error","ZodAngleUnit","Angle","degrees","radians","gradians","milsNATO","percentGrade","ZodLength","UnitizedNumber","length","get","parse","ZodAngle","angle","ZodSourceLoc","strictObject","start","index","number","line","column","end","ZodFrcsShotBase","from","string","to","optional","specialKind","enum","distance","horizontalDistance","verticalDistance","frontsightAzimuth","frontsightInclination","backsightAzimuth","backsightInclination","fromLruds","left","right","up","down","toLruds","excludeDistance","boolean","b","undefined","isSplay","comment","loc","locs","ZodFrcsUnits","distanceUnit","azimuthUnit","inclinationUnit","backsightAzimuthCorrected","backsightInclinationCorrected","hasBacksightAzimuth","hasBacksightInclination","ZodFrcsShot","extend","recorded","units","ZodDate","date","d","toISOString","substring","ZodFrcsTripHeader","name","section","team","array","ZodFrcsTrip","tripNumber","int","min","header","shots","ZodFrcsSurveyFileToJson","exports","cave","columns","toStation","fromStation","distanceFeet","distanceInches","kind","exclude","location","trips","issues","ParseIssue","Invalid","schema","INVALID","ZodInvalidFrcsUnits","partial","ZodInvalidFrcsShot","union","shape","ZodInvalidFrcsTripHeader","ZodInvalidFrcsTrip","ZodInvalidFrcsSurveyFileToJson","ZodValidOrInvalidFrcsSurveyFileToJson"],"sources":["../../src/survey/ZodFrcsSurveyFileToJson.ts"],"sourcesContent":["import { Angle, Length, Unit, UnitizedNumber } from '@speleotica/unitized'\nimport z from 'zod'\nimport type { DeepMapJson, JsonAngle, JsonLength } from './FrcsSurveyFileJson'\nimport type { SourceLoc } from '../SourceLoc'\nimport type {\n FrcsShot,\n FrcsSurveyFile,\n FrcsTrip,\n FrcsTripHeader,\n FrcsUnits,\n InvalidFrcsShot,\n InvalidFrcsSurveyFile,\n InvalidFrcsTrip,\n InvalidFrcsTripHeader,\n InvalidFrcsUnits,\n} from './FrcsSurveyFile'\nimport { ParseIssue } from '../ParseIssue'\n\ntype DeepMapJsonSchema<T> = z.ZodType<DeepMapJson<T>, any, T>\n\nconst ZodLengthUnit = z\n .instanceof<typeof Unit<Length>>(Unit)\n .transform((unit) => {\n switch (unit) {\n case Length.meters:\n return 'm'\n case Length.kilometers:\n return 'km'\n case Length.centimeters:\n return 'cm'\n case Length.feet:\n return 'ft'\n case Length.inches:\n return 'in'\n case Length.yards:\n return 'yd'\n case Length.miles:\n return 'mi'\n }\n throw new Error('invalid unit')\n })\n\nZodLengthUnit satisfies DeepMapJsonSchema<Unit<Length>>\n\nconst ZodAngleUnit = z\n .instanceof<typeof Unit<Angle>>(Unit)\n .transform((unit) => {\n switch (unit) {\n case Angle.degrees:\n return 'deg'\n case Angle.radians:\n return 'rad'\n case Angle.gradians:\n return 'grad'\n case Angle.milsNATO:\n return 'mil'\n case Angle.percentGrade:\n return '%'\n }\n throw new Error('invalid unit')\n })\n\nZodAngleUnit satisfies DeepMapJsonSchema<Unit<Angle>>\n\nconst ZodLength = z\n .instanceof<typeof UnitizedNumber<Length>>(UnitizedNumber)\n .transform(\n (length) =>\n [\n length.get(length.unit),\n ZodLengthUnit.parse(length.unit),\n ] satisfies JsonLength\n )\n\nZodLength satisfies DeepMapJsonSchema<UnitizedNumber<Length>>\n\nconst ZodAngle = z\n .instanceof<typeof UnitizedNumber<Angle>>(UnitizedNumber)\n .transform(\n (angle) =>\n [\n angle.get(angle.unit),\n ZodAngleUnit.parse(angle.unit),\n ] satisfies JsonAngle\n )\n\nZodAngle satisfies DeepMapJsonSchema<UnitizedNumber<Angle>>\n\nconst ZodSourceLoc = z.strictObject({\n start: z.strictObject({\n index: z.number(),\n line: z.number(),\n column: z.number(),\n }),\n end: z.strictObject({\n index: z.number(),\n line: z.number(),\n column: z.number(),\n }),\n})\n\nZodSourceLoc satisfies DeepMapJsonSchema<SourceLoc>\n\nconst ZodFrcsShotBase = z.strictObject({\n from: z.string(),\n to: z.string().optional(),\n specialKind: z.enum(['horizontal', 'diagonal']).optional(),\n distance: ZodLength,\n horizontalDistance: ZodLength.optional(),\n verticalDistance: ZodLength.optional(),\n frontsightAzimuth: ZodAngle.optional(),\n frontsightInclination: ZodAngle.optional(),\n backsightAzimuth: ZodAngle.optional(),\n backsightInclination: ZodAngle.optional(),\n /**\n * LRUDs at from station\n */\n fromLruds: z\n .strictObject({\n left: ZodLength.optional(),\n right: ZodLength.optional(),\n up: ZodLength.optional(),\n down: ZodLength.optional(),\n })\n .optional(),\n /**\n * LRUDs at to station\n */\n toLruds: z\n .strictObject({\n left: ZodLength.optional(),\n right: ZodLength.optional(),\n up: ZodLength.optional(),\n down: ZodLength.optional(),\n })\n .optional(),\n\n excludeDistance: z\n .boolean()\n .optional()\n .transform((b) => b || undefined),\n isSplay: z\n .boolean()\n .optional()\n .transform((b) => b || undefined),\n comment: z.string().optional(),\n loc: ZodSourceLoc.optional(),\n locs: z\n .strictObject({\n comment: ZodSourceLoc.optional(),\n })\n .optional(),\n})\n\nconst ZodFrcsUnits = z.strictObject({\n distanceUnit: ZodLengthUnit,\n azimuthUnit: ZodAngleUnit,\n inclinationUnit: ZodAngleUnit,\n backsightAzimuthCorrected: z.boolean().optional(),\n backsightInclinationCorrected: z.boolean().optional(),\n hasBacksightAzimuth: z.boolean().optional(),\n hasBacksightInclination: z.boolean().optional(),\n loc: ZodSourceLoc.optional(),\n locs: z\n .strictObject({\n distanceUnit: ZodSourceLoc.optional(),\n azimuthUnit: ZodSourceLoc.optional(),\n inclinationUnit: ZodSourceLoc.optional(),\n backsightAzimuthCorrected: ZodSourceLoc.optional(),\n backsightInclinationCorrected: ZodSourceLoc.optional(),\n hasBacksightAzimuth: ZodSourceLoc.optional(),\n hasBacksightInclination: ZodSourceLoc.optional(),\n })\n .optional(),\n})\n\nZodFrcsUnits satisfies DeepMapJsonSchema<FrcsUnits>\n\nconst ZodFrcsShot = ZodFrcsShotBase.extend({\n recorded: ZodFrcsShotBase.extend({\n units: ZodFrcsUnits.optional(),\n }).optional(),\n})\n\nZodFrcsShot satisfies DeepMapJsonSchema<FrcsShot>\n\nconst ZodDate = z.date().transform((d) => d.toISOString().substring(0, 10))\n\nconst ZodFrcsTripHeader = z.strictObject({\n name: z.string(),\n comment: z.string().optional(),\n section: z.string().optional(),\n date: ZodDate.optional(),\n team: z.array(z.string()).optional(),\n loc: ZodSourceLoc.optional(),\n locs: z\n .strictObject({\n name: ZodSourceLoc,\n comment: ZodSourceLoc.optional(),\n section: ZodSourceLoc.optional(),\n date: ZodSourceLoc.optional(),\n team: z.array(ZodSourceLoc).optional(),\n })\n .optional(),\n})\n\nZodFrcsTripHeader satisfies DeepMapJsonSchema<FrcsTripHeader>\n\nconst ZodFrcsTrip = z.strictObject({\n tripNumber: z.number().int().min(1),\n header: ZodFrcsTripHeader,\n units: ZodFrcsUnits,\n shots: z.array(ZodFrcsShot),\n loc: ZodSourceLoc.optional(),\n})\n\nZodFrcsTrip satisfies DeepMapJsonSchema<FrcsTrip>\n\nexport const ZodFrcsSurveyFileToJson = z.strictObject({\n cave: z.string().optional(),\n columns: z\n .strictObject({\n toStation: z.number(),\n fromStation: z.number(),\n distance: z.number(),\n distanceFeet: z.number(),\n distanceInches: z.number(),\n kind: z.number(),\n exclude: z.number(),\n frontsightAzimuth: z.number(),\n backsightAzimuth: z.number(),\n frontsightInclination: z.number(),\n backsightInclination: z.number(),\n left: z.number(),\n right: z.number(),\n up: z.number(),\n down: z.number(),\n })\n .optional(),\n location: z.string().optional(),\n comment: z.string().optional(),\n trips: z.array(ZodFrcsTrip),\n locs: z\n .strictObject({\n cave: ZodSourceLoc.optional(),\n location: ZodSourceLoc.optional(),\n comment: ZodSourceLoc.optional(),\n })\n .optional(),\n issues: z.array(ParseIssue).optional(),\n})\n\nZodFrcsSurveyFileToJson satisfies DeepMapJsonSchema<FrcsSurveyFile>\n\nfunction Invalid<T extends z.ZodTypeAny>(schema: T) {\n return z.strictObject({\n INVALID: schema,\n issues: z.array(z.number()).optional(),\n })\n}\n\nconst ZodInvalidFrcsUnits = Invalid(ZodFrcsUnits.partial())\n\nZodInvalidFrcsUnits satisfies DeepMapJsonSchema<InvalidFrcsUnits>\n\nconst ZodInvalidFrcsShot = Invalid(\n ZodFrcsShot.extend({\n recorded: z.union([\n ZodFrcsShot.shape.recorded,\n Invalid(\n ZodFrcsShotBase.extend({\n units: z.union([ZodFrcsUnits, ZodInvalidFrcsUnits]),\n }).partial()\n ),\n ]),\n }).partial()\n)\n\nZodInvalidFrcsShot satisfies DeepMapJsonSchema<InvalidFrcsShot>\n\nconst ZodInvalidFrcsTripHeader = Invalid(ZodFrcsTripHeader.partial())\n\nZodInvalidFrcsTripHeader satisfies DeepMapJsonSchema<InvalidFrcsTripHeader>\n\nconst ZodInvalidFrcsTrip = Invalid(\n z.strictObject({\n tripNumber: z.number().int().min(1).optional(),\n header: z.union([ZodInvalidFrcsTripHeader, ZodFrcsTripHeader]),\n units: z.union([ZodInvalidFrcsUnits, ZodFrcsUnits]),\n shots: z.array(z.union([ZodInvalidFrcsShot, ZodFrcsShot])),\n })\n)\n\nZodInvalidFrcsTrip satisfies DeepMapJsonSchema<InvalidFrcsTrip>\n\nexport const ZodInvalidFrcsSurveyFileToJson = z.strictObject({\n INVALID: ZodFrcsSurveyFileToJson.extend({\n trips: z.array(z.union([ZodInvalidFrcsTrip, ZodFrcsTrip])),\n }),\n issues: z.array(ParseIssue),\n})\n\nZodInvalidFrcsSurveyFileToJson satisfies DeepMapJsonSchema<InvalidFrcsSurveyFile>\n\nexport const ZodValidOrInvalidFrcsSurveyFileToJson = z.union([\n ZodInvalidFrcsSurveyFileToJson,\n ZodFrcsSurveyFileToJson,\n])\n"],"mappings":"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","ignoreList":[]}
@@ -3,24 +3,23 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
6
+ exports.default = void 0;
7
7
  exports.makeFormatFrcsShot = makeFormatFrcsShot;
8
8
  var _unitized = require("@speleotica/unitized");
9
9
  var _FrcsSurveyFile = require("./FrcsSurveyFile.js");
10
- function makeFormatFrcsShot() {
11
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
12
- _ref$columns = _ref.columns,
13
- columns = _ref$columns === void 0 ? _FrcsSurveyFile.defaultFrcsShotColumnConfig : _ref$columns;
14
- var EMPTY_TO_STATION = ' '.repeat(columns.toStation);
10
+ function makeFormatFrcsShot({
11
+ columns = _FrcsSurveyFile.defaultFrcsShotColumnConfig
12
+ } = {}) {
13
+ const EMPTY_TO_STATION = ' '.repeat(columns.toStation);
15
14
  function formatFromStation(station) {
16
15
  if (station.length > columns.fromStation) {
17
- throw new Error("station is too long: ".concat(station));
16
+ throw new Error(`station is too long: ${station}`);
18
17
  }
19
18
  return station.padStart(columns.fromStation, ' ');
20
19
  }
21
20
  function formatToStation(station) {
22
21
  if (station.length > columns.toStation) {
23
- throw new Error("station is too long: ".concat(station));
22
+ throw new Error(`station is too long: ${station}`);
24
23
  }
25
24
  return station.padStart(columns.toStation, ' ');
26
25
  }
@@ -34,72 +33,75 @@ function makeFormatFrcsShot() {
34
33
  return ' ';
35
34
  }
36
35
  function trimZeroes(str) {
37
- var match = /(-?\d+)(\.[1-9]*)0+$/.exec(str);
36
+ const match = /(-?\d+)(\.[1-9]*)0+$/.exec(str);
38
37
  if (!match) return str;
39
38
  return match[2].length > 1 ? match[1] + match[2] : match[1];
40
39
  }
41
- var formatNumber = function formatNumber(width) {
40
+ const formatNumber = width => {
42
41
  function formatNum(num, unit, verbatim) {
43
42
  if (num instanceof _unitized.UnitizedNumber) {
44
43
  return formatNum(num.get(verbatim ? num.unit : unit || num.unit));
45
44
  }
46
45
  if (num == null || !Number.isFinite(num)) return ' '.repeat(width);
47
- var formatted = trimZeroes(num.toFixed(2));
46
+ const formatted = trimZeroes(num.toFixed(2));
48
47
  if (formatted.length <= width) return formatted.padStart(width, ' ');
49
48
  if (formatted.length > width + 2) return formatted.substring(0, width);
50
49
  return trimZeroes(num.toFixed(2 - formatted.length + width)).padStart(width, ' ');
51
50
  }
52
51
  return formatNum;
53
52
  };
54
- var formatLeft = formatNumber(columns.left);
55
- var formatRight = formatNumber(columns.right);
56
- var formatUp = formatNumber(columns.up);
57
- var formatDown = formatNumber(columns.down);
58
- var EMPTY_DISTANCE = ' '.repeat(columns.distance);
59
- var formatDistance = formatNumber(columns.distance);
60
- var EMPTY_FS_AZIMUTH = ' '.repeat(columns.frontsightAzimuth);
61
- var formatFsAzimuth = formatNumber(columns.frontsightAzimuth);
62
- var EMPTY_BS_AZIMUTH = ' '.repeat(columns.backsightAzimuth);
63
- var formatBsAzimuth = formatNumber(columns.backsightAzimuth);
64
- var EMPTY_FS_INCLINATION = ' '.repeat(columns.frontsightInclination);
65
- var formatFsInclination = formatNumber(columns.frontsightInclination);
66
- var EMPTY_BS_INCLINATION = ' '.repeat(columns.backsightInclination);
67
- var formatBsInclination = formatNumber(columns.backsightInclination);
68
- var formatVerticalDistance = formatNumber(columns.frontsightInclination);
69
- var EMPTY_FEET = ' '.repeat(columns.distanceFeet);
53
+ const formatLeft = formatNumber(columns.left);
54
+ const formatRight = formatNumber(columns.right);
55
+ const formatUp = formatNumber(columns.up);
56
+ const formatDown = formatNumber(columns.down);
57
+ const EMPTY_DISTANCE = ' '.repeat(columns.distance);
58
+ const formatDistance = formatNumber(columns.distance);
59
+ const EMPTY_FS_AZIMUTH = ' '.repeat(columns.frontsightAzimuth);
60
+ const formatFsAzimuth = formatNumber(columns.frontsightAzimuth);
61
+ const EMPTY_BS_AZIMUTH = ' '.repeat(columns.backsightAzimuth);
62
+ const formatBsAzimuth = formatNumber(columns.backsightAzimuth);
63
+ const EMPTY_FS_INCLINATION = ' '.repeat(columns.frontsightInclination);
64
+ const formatFsInclination = formatNumber(columns.frontsightInclination);
65
+ const EMPTY_BS_INCLINATION = ' '.repeat(columns.backsightInclination);
66
+ const formatBsInclination = formatNumber(columns.backsightInclination);
67
+ const formatVerticalDistance = formatNumber(columns.frontsightInclination);
68
+ const EMPTY_FEET = ' '.repeat(columns.distanceFeet);
70
69
  function formatFeet(distance) {
71
70
  if (!distance) return EMPTY_FEET;
72
71
  return formatNumber(columns.distanceFeet)(Math.trunc(distance.get(_unitized.Length.feet)));
73
72
  }
74
- var EMPTY_INCHES = ' '.repeat(columns.distanceInches);
73
+ const EMPTY_INCHES = ' '.repeat(columns.distanceInches);
75
74
  function formatInches(distance) {
76
75
  if (!distance) return EMPTY_INCHES;
77
76
  return formatNumber(columns.distanceInches)(Math.round(distance.get(_unitized.Length.inches) % 12));
78
77
  }
79
78
  return function formatFrcsShot(shot, header) {
80
- var _shot$toLruds, _shot$toLruds2, _shot$toLruds3, _shot$toLruds4;
81
- var azimuthUnit = header.azimuthUnit,
82
- inclinationUnit = header.inclinationUnit;
83
- var distanceUnit = header.distanceUnit;
84
- var inches = distanceUnit === _unitized.Length.inches;
79
+ const {
80
+ azimuthUnit,
81
+ inclinationUnit
82
+ } = header;
83
+ let {
84
+ distanceUnit
85
+ } = header;
86
+ const inches = distanceUnit === _unitized.Length.inches;
85
87
  if (inches) distanceUnit = _unitized.Length.feet;
86
- var isRecorded = shot.recorded !== null;
88
+ const isRecorded = shot.recorded !== null;
87
89
  if (!shot.to) {
88
- var _shot$recorded;
89
- var _ref2 = ((_shot$recorded = shot.recorded) === null || _shot$recorded === void 0 ? void 0 : _shot$recorded.fromLruds) || shot.fromLruds || {},
90
- left = _ref2.left,
91
- right = _ref2.right,
92
- up = _ref2.up,
93
- down = _ref2.down;
90
+ const {
91
+ left,
92
+ right,
93
+ up,
94
+ down
95
+ } = shot.recorded?.fromLruds || shot.fromLruds || {};
94
96
  return [EMPTY_TO_STATION, formatFromStation(shot.from), EMPTY_DISTANCE, ' ',
95
97
  // kind
96
98
  ' ',
97
99
  // exclude
98
100
  EMPTY_FS_AZIMUTH, EMPTY_BS_AZIMUTH, EMPTY_FS_INCLINATION, EMPTY_BS_INCLINATION, formatLeft(left, distanceUnit, isRecorded), formatRight(right, distanceUnit, isRecorded), formatUp(up, distanceUnit, isRecorded), formatDown(down, distanceUnit, isRecorded)].join('');
99
101
  }
100
- var distColumnValue = shot.specialKind === 'horizontal' ? shot.horizontalDistance : shot.distance;
101
- return [formatToStation(shot.to), formatFromStation(shot.from), inches ? formatFeet(distColumnValue) : formatDistance(distColumnValue, distanceUnit, isRecorded), inches ? formatInches(distColumnValue) : formatSpecialKind(shot.specialKind), inches ? formatSpecialKind(shot.specialKind) : shot.excludeDistance ? '*' : ' ', formatFsAzimuth(shot.frontsightAzimuth, azimuthUnit, isRecorded), formatBsAzimuth(shot.backsightAzimuth, azimuthUnit, isRecorded), shot.specialKind ? formatVerticalDistance(shot.verticalDistance, distanceUnit, isRecorded) : formatFsInclination(shot.frontsightInclination, inclinationUnit, isRecorded), shot.specialKind ? EMPTY_BS_INCLINATION : formatBsInclination(shot.backsightInclination, inclinationUnit, isRecorded), formatLeft((_shot$toLruds = shot.toLruds) === null || _shot$toLruds === void 0 ? void 0 : _shot$toLruds.left, distanceUnit, isRecorded), formatRight((_shot$toLruds2 = shot.toLruds) === null || _shot$toLruds2 === void 0 ? void 0 : _shot$toLruds2.right, distanceUnit, isRecorded), formatUp((_shot$toLruds3 = shot.toLruds) === null || _shot$toLruds3 === void 0 ? void 0 : _shot$toLruds3.up, distanceUnit, isRecorded), formatDown((_shot$toLruds4 = shot.toLruds) === null || _shot$toLruds4 === void 0 ? void 0 : _shot$toLruds4.down, distanceUnit, isRecorded)].join('');
102
+ const distColumnValue = shot.specialKind === 'horizontal' ? shot.horizontalDistance : shot.distance;
103
+ return [formatToStation(shot.to), formatFromStation(shot.from), inches ? formatFeet(distColumnValue) : formatDistance(distColumnValue, distanceUnit, isRecorded), inches ? formatInches(distColumnValue) : formatSpecialKind(shot.specialKind), inches ? formatSpecialKind(shot.specialKind) : shot.excludeDistance ? '*' : ' ', formatFsAzimuth(shot.frontsightAzimuth, azimuthUnit, isRecorded), formatBsAzimuth(shot.backsightAzimuth, azimuthUnit, isRecorded), shot.specialKind ? formatVerticalDistance(shot.verticalDistance, distanceUnit, isRecorded) : formatFsInclination(shot.frontsightInclination, inclinationUnit, isRecorded), shot.specialKind ? EMPTY_BS_INCLINATION : formatBsInclination(shot.backsightInclination, inclinationUnit, isRecorded), formatLeft(shot.toLruds?.left, distanceUnit, isRecorded), formatRight(shot.toLruds?.right, distanceUnit, isRecorded), formatUp(shot.toLruds?.up, distanceUnit, isRecorded), formatDown(shot.toLruds?.down, distanceUnit, isRecorded)].join('');
102
104
  };
103
105
  }
104
- var _default = exports["default"] = makeFormatFrcsShot();
106
+ var _default = exports.default = makeFormatFrcsShot();
105
107
  //# sourceMappingURL=formatFrcsShot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatFrcsShot.js","names":["_unitized","require","_FrcsSurveyFile","makeFormatFrcsShot","_ref","arguments","length","undefined","_ref$columns","columns","defaultFrcsShotColumnConfig","EMPTY_TO_STATION","repeat","toStation","formatFromStation","station","fromStation","Error","concat","padStart","formatToStation","formatSpecialKind","specialKind","trimZeroes","str","match","exec","formatNumber","width","formatNum","num","unit","verbatim","UnitizedNumber","get","Number","isFinite","formatted","toFixed","substring","formatLeft","left","formatRight","right","formatUp","up","formatDown","down","EMPTY_DISTANCE","distance","formatDistance","EMPTY_FS_AZIMUTH","frontsightAzimuth","formatFsAzimuth","EMPTY_BS_AZIMUTH","backsightAzimuth","formatBsAzimuth","EMPTY_FS_INCLINATION","frontsightInclination","formatFsInclination","EMPTY_BS_INCLINATION","backsightInclination","formatBsInclination","formatVerticalDistance","EMPTY_FEET","distanceFeet","formatFeet","Math","trunc","Length","feet","EMPTY_INCHES","distanceInches","formatInches","round","inches","formatFrcsShot","shot","header","_shot$toLruds","_shot$toLruds2","_shot$toLruds3","_shot$toLruds4","azimuthUnit","inclinationUnit","distanceUnit","isRecorded","recorded","to","_shot$recorded","_ref2","fromLruds","from","join","distColumnValue","horizontalDistance","excludeDistance","verticalDistance","toLruds","_default","exports"],"sources":["../../src/survey/formatFrcsShot.ts"],"sourcesContent":["import type { FrcsUnits, FrcsShot } from './FrcsSurveyFile'\nimport { Length, Unit, UnitType, UnitizedNumber } from '@speleotica/unitized'\nimport {\n type FrcsShotColumnConfig,\n defaultFrcsShotColumnConfig,\n} from './FrcsSurveyFile'\n\nexport function makeFormatFrcsShot({\n columns = defaultFrcsShotColumnConfig,\n}: { columns?: FrcsShotColumnConfig } = {}) {\n const EMPTY_TO_STATION = ' '.repeat(columns.toStation)\n\n function formatFromStation(station: string): string {\n if (station.length > columns.fromStation) {\n throw new Error(`station is too long: ${station}`)\n }\n return station.padStart(columns.fromStation, ' ')\n }\n function formatToStation(station: string): string {\n if (station.length > columns.toStation) {\n throw new Error(`station is too long: ${station}`)\n }\n return station.padStart(columns.toStation, ' ')\n }\n\n function formatSpecialKind(specialKind: FrcsShot['specialKind']): string {\n switch (specialKind) {\n case 'diagonal':\n return 'D'\n case 'horizontal':\n return 'H'\n }\n return ' '\n }\n\n function trimZeroes(str: string): string {\n const match = /(-?\\d+)(\\.[1-9]*)0+$/.exec(str)\n if (!match) return str\n return match[2].length > 1 ? match[1] + match[2] : match[1]\n }\n\n const formatNumber = (width: number) => {\n function formatNum(num: number | null | undefined): string\n function formatNum<T extends UnitType<T>>(\n num: UnitizedNumber<T> | null | undefined,\n unit: Unit<T>,\n verbatim?: boolean\n ): string\n function formatNum<T extends UnitType<T>>(\n num: number | UnitizedNumber<T> | null | undefined,\n unit?: Unit<T>,\n verbatim?: boolean\n ): string {\n if (num instanceof UnitizedNumber) {\n return formatNum(num.get(verbatim ? num.unit : unit || num.unit))\n }\n if (num == null || !Number.isFinite(num)) return ' '.repeat(width)\n const formatted = trimZeroes(num.toFixed(2))\n if (formatted.length <= width) return formatted.padStart(width, ' ')\n if (formatted.length > width + 2) return formatted.substring(0, width)\n return trimZeroes(num.toFixed(2 - formatted.length + width)).padStart(\n width,\n ' '\n )\n }\n return formatNum\n }\n\n const formatLeft = formatNumber(columns.left)\n const formatRight = formatNumber(columns.right)\n const formatUp = formatNumber(columns.up)\n const formatDown = formatNumber(columns.down)\n\n const EMPTY_DISTANCE = ' '.repeat(columns.distance)\n const formatDistance = formatNumber(columns.distance)\n\n const EMPTY_FS_AZIMUTH = ' '.repeat(columns.frontsightAzimuth)\n const formatFsAzimuth = formatNumber(columns.frontsightAzimuth)\n const EMPTY_BS_AZIMUTH = ' '.repeat(columns.backsightAzimuth)\n const formatBsAzimuth = formatNumber(columns.backsightAzimuth)\n\n const EMPTY_FS_INCLINATION = ' '.repeat(columns.frontsightInclination)\n const formatFsInclination = formatNumber(columns.frontsightInclination)\n const EMPTY_BS_INCLINATION = ' '.repeat(columns.backsightInclination)\n const formatBsInclination = formatNumber(columns.backsightInclination)\n\n const formatVerticalDistance = formatNumber(columns.frontsightInclination)\n\n const EMPTY_FEET = ' '.repeat(columns.distanceFeet)\n\n function formatFeet(distance: UnitizedNumber<Length> | null | void): string {\n if (!distance) return EMPTY_FEET\n return formatNumber(columns.distanceFeet)(\n Math.trunc(distance.get(Length.feet))\n )\n }\n\n const EMPTY_INCHES = ' '.repeat(columns.distanceInches)\n\n function formatInches(\n distance: UnitizedNumber<Length> | null | void\n ): string {\n if (!distance) return EMPTY_INCHES\n return formatNumber(columns.distanceInches)(\n Math.round(distance.get(Length.inches) % 12)\n )\n }\n\n return function formatFrcsShot(shot: FrcsShot, header: FrcsUnits): string {\n const { azimuthUnit, inclinationUnit } = header\n let { distanceUnit } = header\n\n const inches = distanceUnit === Length.inches\n if (inches) distanceUnit = Length.feet\n\n const isRecorded = shot.recorded !== null\n\n if (!shot.to) {\n const { left, right, up, down } =\n shot.recorded?.fromLruds || shot.fromLruds || {}\n return [\n EMPTY_TO_STATION,\n formatFromStation(shot.from),\n EMPTY_DISTANCE,\n ' ', // kind\n ' ', // exclude\n EMPTY_FS_AZIMUTH,\n EMPTY_BS_AZIMUTH,\n EMPTY_FS_INCLINATION,\n EMPTY_BS_INCLINATION,\n formatLeft(left, distanceUnit, isRecorded),\n formatRight(right, distanceUnit, isRecorded),\n formatUp(up, distanceUnit, isRecorded),\n formatDown(down, distanceUnit, isRecorded),\n ].join('')\n }\n\n const distColumnValue =\n shot.specialKind === 'horizontal'\n ? shot.horizontalDistance\n : shot.distance\n\n return [\n formatToStation(shot.to),\n formatFromStation(shot.from),\n inches\n ? formatFeet(distColumnValue)\n : formatDistance(distColumnValue, distanceUnit, isRecorded),\n inches\n ? formatInches(distColumnValue)\n : formatSpecialKind(shot.specialKind),\n inches\n ? formatSpecialKind(shot.specialKind)\n : shot.excludeDistance\n ? '*'\n : ' ',\n formatFsAzimuth(shot.frontsightAzimuth, azimuthUnit, isRecorded),\n formatBsAzimuth(shot.backsightAzimuth, azimuthUnit, isRecorded),\n shot.specialKind\n ? formatVerticalDistance(\n shot.verticalDistance,\n distanceUnit,\n isRecorded\n )\n : formatFsInclination(\n shot.frontsightInclination,\n inclinationUnit,\n isRecorded\n ),\n shot.specialKind\n ? EMPTY_BS_INCLINATION\n : formatBsInclination(\n shot.backsightInclination,\n inclinationUnit,\n isRecorded\n ),\n formatLeft(shot.toLruds?.left, distanceUnit, isRecorded),\n formatRight(shot.toLruds?.right, distanceUnit, isRecorded),\n formatUp(shot.toLruds?.up, distanceUnit, isRecorded),\n formatDown(shot.toLruds?.down, distanceUnit, isRecorded),\n ].join('')\n }\n}\n\nexport default makeFormatFrcsShot()\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"formatFrcsShot.js","names":["_unitized","require","_FrcsSurveyFile","makeFormatFrcsShot","columns","defaultFrcsShotColumnConfig","EMPTY_TO_STATION","repeat","toStation","formatFromStation","station","length","fromStation","Error","padStart","formatToStation","formatSpecialKind","specialKind","trimZeroes","str","match","exec","formatNumber","width","formatNum","num","unit","verbatim","UnitizedNumber","get","Number","isFinite","formatted","toFixed","substring","formatLeft","left","formatRight","right","formatUp","up","formatDown","down","EMPTY_DISTANCE","distance","formatDistance","EMPTY_FS_AZIMUTH","frontsightAzimuth","formatFsAzimuth","EMPTY_BS_AZIMUTH","backsightAzimuth","formatBsAzimuth","EMPTY_FS_INCLINATION","frontsightInclination","formatFsInclination","EMPTY_BS_INCLINATION","backsightInclination","formatBsInclination","formatVerticalDistance","EMPTY_FEET","distanceFeet","formatFeet","Math","trunc","Length","feet","EMPTY_INCHES","distanceInches","formatInches","round","inches","formatFrcsShot","shot","header","azimuthUnit","inclinationUnit","distanceUnit","isRecorded","recorded","to","fromLruds","from","join","distColumnValue","horizontalDistance","excludeDistance","verticalDistance","toLruds","_default","exports","default"],"sources":["../../src/survey/formatFrcsShot.ts"],"sourcesContent":["import type { FrcsUnits, FrcsShot } from './FrcsSurveyFile'\nimport { Length, Unit, UnitType, UnitizedNumber } from '@speleotica/unitized'\nimport {\n type FrcsShotColumnConfig,\n defaultFrcsShotColumnConfig,\n} from './FrcsSurveyFile'\n\nexport function makeFormatFrcsShot({\n columns = defaultFrcsShotColumnConfig,\n}: { columns?: FrcsShotColumnConfig } = {}) {\n const EMPTY_TO_STATION = ' '.repeat(columns.toStation)\n\n function formatFromStation(station: string): string {\n if (station.length > columns.fromStation) {\n throw new Error(`station is too long: ${station}`)\n }\n return station.padStart(columns.fromStation, ' ')\n }\n function formatToStation(station: string): string {\n if (station.length > columns.toStation) {\n throw new Error(`station is too long: ${station}`)\n }\n return station.padStart(columns.toStation, ' ')\n }\n\n function formatSpecialKind(specialKind: FrcsShot['specialKind']): string {\n switch (specialKind) {\n case 'diagonal':\n return 'D'\n case 'horizontal':\n return 'H'\n }\n return ' '\n }\n\n function trimZeroes(str: string): string {\n const match = /(-?\\d+)(\\.[1-9]*)0+$/.exec(str)\n if (!match) return str\n return match[2].length > 1 ? match[1] + match[2] : match[1]\n }\n\n const formatNumber = (width: number) => {\n function formatNum(num: number | null | undefined): string\n function formatNum<T extends UnitType<T>>(\n num: UnitizedNumber<T> | null | undefined,\n unit: Unit<T>,\n verbatim?: boolean\n ): string\n function formatNum<T extends UnitType<T>>(\n num: number | UnitizedNumber<T> | null | undefined,\n unit?: Unit<T>,\n verbatim?: boolean\n ): string {\n if (num instanceof UnitizedNumber) {\n return formatNum(num.get(verbatim ? num.unit : unit || num.unit))\n }\n if (num == null || !Number.isFinite(num)) return ' '.repeat(width)\n const formatted = trimZeroes(num.toFixed(2))\n if (formatted.length <= width) return formatted.padStart(width, ' ')\n if (formatted.length > width + 2) return formatted.substring(0, width)\n return trimZeroes(num.toFixed(2 - formatted.length + width)).padStart(\n width,\n ' '\n )\n }\n return formatNum\n }\n\n const formatLeft = formatNumber(columns.left)\n const formatRight = formatNumber(columns.right)\n const formatUp = formatNumber(columns.up)\n const formatDown = formatNumber(columns.down)\n\n const EMPTY_DISTANCE = ' '.repeat(columns.distance)\n const formatDistance = formatNumber(columns.distance)\n\n const EMPTY_FS_AZIMUTH = ' '.repeat(columns.frontsightAzimuth)\n const formatFsAzimuth = formatNumber(columns.frontsightAzimuth)\n const EMPTY_BS_AZIMUTH = ' '.repeat(columns.backsightAzimuth)\n const formatBsAzimuth = formatNumber(columns.backsightAzimuth)\n\n const EMPTY_FS_INCLINATION = ' '.repeat(columns.frontsightInclination)\n const formatFsInclination = formatNumber(columns.frontsightInclination)\n const EMPTY_BS_INCLINATION = ' '.repeat(columns.backsightInclination)\n const formatBsInclination = formatNumber(columns.backsightInclination)\n\n const formatVerticalDistance = formatNumber(columns.frontsightInclination)\n\n const EMPTY_FEET = ' '.repeat(columns.distanceFeet)\n\n function formatFeet(distance: UnitizedNumber<Length> | null | void): string {\n if (!distance) return EMPTY_FEET\n return formatNumber(columns.distanceFeet)(\n Math.trunc(distance.get(Length.feet))\n )\n }\n\n const EMPTY_INCHES = ' '.repeat(columns.distanceInches)\n\n function formatInches(\n distance: UnitizedNumber<Length> | null | void\n ): string {\n if (!distance) return EMPTY_INCHES\n return formatNumber(columns.distanceInches)(\n Math.round(distance.get(Length.inches) % 12)\n )\n }\n\n return function formatFrcsShot(shot: FrcsShot, header: FrcsUnits): string {\n const { azimuthUnit, inclinationUnit } = header\n let { distanceUnit } = header\n\n const inches = distanceUnit === Length.inches\n if (inches) distanceUnit = Length.feet\n\n const isRecorded = shot.recorded !== null\n\n if (!shot.to) {\n const { left, right, up, down } =\n shot.recorded?.fromLruds || shot.fromLruds || {}\n return [\n EMPTY_TO_STATION,\n formatFromStation(shot.from),\n EMPTY_DISTANCE,\n ' ', // kind\n ' ', // exclude\n EMPTY_FS_AZIMUTH,\n EMPTY_BS_AZIMUTH,\n EMPTY_FS_INCLINATION,\n EMPTY_BS_INCLINATION,\n formatLeft(left, distanceUnit, isRecorded),\n formatRight(right, distanceUnit, isRecorded),\n formatUp(up, distanceUnit, isRecorded),\n formatDown(down, distanceUnit, isRecorded),\n ].join('')\n }\n\n const distColumnValue =\n shot.specialKind === 'horizontal'\n ? shot.horizontalDistance\n : shot.distance\n\n return [\n formatToStation(shot.to),\n formatFromStation(shot.from),\n inches\n ? formatFeet(distColumnValue)\n : formatDistance(distColumnValue, distanceUnit, isRecorded),\n inches\n ? formatInches(distColumnValue)\n : formatSpecialKind(shot.specialKind),\n inches\n ? formatSpecialKind(shot.specialKind)\n : shot.excludeDistance\n ? '*'\n : ' ',\n formatFsAzimuth(shot.frontsightAzimuth, azimuthUnit, isRecorded),\n formatBsAzimuth(shot.backsightAzimuth, azimuthUnit, isRecorded),\n shot.specialKind\n ? formatVerticalDistance(\n shot.verticalDistance,\n distanceUnit,\n isRecorded\n )\n : formatFsInclination(\n shot.frontsightInclination,\n inclinationUnit,\n isRecorded\n ),\n shot.specialKind\n ? EMPTY_BS_INCLINATION\n : formatBsInclination(\n shot.backsightInclination,\n inclinationUnit,\n isRecorded\n ),\n formatLeft(shot.toLruds?.left, distanceUnit, isRecorded),\n formatRight(shot.toLruds?.right, distanceUnit, isRecorded),\n formatUp(shot.toLruds?.up, distanceUnit, isRecorded),\n formatDown(shot.toLruds?.down, distanceUnit, isRecorded),\n ].join('')\n }\n}\n\nexport default makeFormatFrcsShot()\n"],"mappings":";;;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAKO,SAASE,kBAAkBA,CAAC;EACjCC,OAAO,GAAGC;AACwB,CAAC,GAAG,CAAC,CAAC,EAAE;EAC1C,MAAMC,gBAAgB,GAAG,GAAG,CAACC,MAAM,CAACH,OAAO,CAACI,SAAS,CAAC;EAEtD,SAASC,iBAAiBA,CAACC,OAAe,EAAU;IAClD,IAAIA,OAAO,CAACC,MAAM,GAAGP,OAAO,CAACQ,WAAW,EAAE;MACxC,MAAM,IAAIC,KAAK,CAAC,wBAAwBH,OAAO,EAAE,CAAC;IACpD;IACA,OAAOA,OAAO,CAACI,QAAQ,CAACV,OAAO,CAACQ,WAAW,EAAE,GAAG,CAAC;EACnD;EACA,SAASG,eAAeA,CAACL,OAAe,EAAU;IAChD,IAAIA,OAAO,CAACC,MAAM,GAAGP,OAAO,CAACI,SAAS,EAAE;MACtC,MAAM,IAAIK,KAAK,CAAC,wBAAwBH,OAAO,EAAE,CAAC;IACpD;IACA,OAAOA,OAAO,CAACI,QAAQ,CAACV,OAAO,CAACI,SAAS,EAAE,GAAG,CAAC;EACjD;EAEA,SAASQ,iBAAiBA,CAACC,WAAoC,EAAU;IACvE,QAAQA,WAAW;MACjB,KAAK,UAAU;QACb,OAAO,GAAG;MACZ,KAAK,YAAY;QACf,OAAO,GAAG;IACd;IACA,OAAO,GAAG;EACZ;EAEA,SAASC,UAAUA,CAACC,GAAW,EAAU;IACvC,MAAMC,KAAK,GAAG,sBAAsB,CAACC,IAAI,CAACF,GAAG,CAAC;IAC9C,IAAI,CAACC,KAAK,EAAE,OAAOD,GAAG;IACtB,OAAOC,KAAK,CAAC,CAAC,CAAC,CAACT,MAAM,GAAG,CAAC,GAAGS,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC;EAC7D;EAEA,MAAME,YAAY,GAAIC,KAAa,IAAK;IAOtC,SAASC,SAASA,CAChBC,GAAkD,EAClDC,IAAc,EACdC,QAAkB,EACV;MACR,IAAIF,GAAG,YAAYG,wBAAc,EAAE;QACjC,OAAOJ,SAAS,CAACC,GAAG,CAACI,GAAG,CAACF,QAAQ,GAAGF,GAAG,CAACC,IAAI,GAAGA,IAAI,IAAID,GAAG,CAACC,IAAI,CAAC,CAAC;MACnE;MACA,IAAID,GAAG,IAAI,IAAI,IAAI,CAACK,MAAM,CAACC,QAAQ,CAACN,GAAG,CAAC,EAAE,OAAO,GAAG,CAAClB,MAAM,CAACgB,KAAK,CAAC;MAClE,MAAMS,SAAS,GAAGd,UAAU,CAACO,GAAG,CAACQ,OAAO,CAAC,CAAC,CAAC,CAAC;MAC5C,IAAID,SAAS,CAACrB,MAAM,IAAIY,KAAK,EAAE,OAAOS,SAAS,CAAClB,QAAQ,CAACS,KAAK,EAAE,GAAG,CAAC;MACpE,IAAIS,SAAS,CAACrB,MAAM,GAAGY,KAAK,GAAG,CAAC,EAAE,OAAOS,SAAS,CAACE,SAAS,CAAC,CAAC,EAAEX,KAAK,CAAC;MACtE,OAAOL,UAAU,CAACO,GAAG,CAACQ,OAAO,CAAC,CAAC,GAAGD,SAAS,CAACrB,MAAM,GAAGY,KAAK,CAAC,CAAC,CAACT,QAAQ,CACnES,KAAK,EACL,GACF,CAAC;IACH;IACA,OAAOC,SAAS;EAClB,CAAC;EAED,MAAMW,UAAU,GAAGb,YAAY,CAAClB,OAAO,CAACgC,IAAI,CAAC;EAC7C,MAAMC,WAAW,GAAGf,YAAY,CAAClB,OAAO,CAACkC,KAAK,CAAC;EAC/C,MAAMC,QAAQ,GAAGjB,YAAY,CAAClB,OAAO,CAACoC,EAAE,CAAC;EACzC,MAAMC,UAAU,GAAGnB,YAAY,CAAClB,OAAO,CAACsC,IAAI,CAAC;EAE7C,MAAMC,cAAc,GAAG,GAAG,CAACpC,MAAM,CAACH,OAAO,CAACwC,QAAQ,CAAC;EACnD,MAAMC,cAAc,GAAGvB,YAAY,CAAClB,OAAO,CAACwC,QAAQ,CAAC;EAErD,MAAME,gBAAgB,GAAG,GAAG,CAACvC,MAAM,CAACH,OAAO,CAAC2C,iBAAiB,CAAC;EAC9D,MAAMC,eAAe,GAAG1B,YAAY,CAAClB,OAAO,CAAC2C,iBAAiB,CAAC;EAC/D,MAAME,gBAAgB,GAAG,GAAG,CAAC1C,MAAM,CAACH,OAAO,CAAC8C,gBAAgB,CAAC;EAC7D,MAAMC,eAAe,GAAG7B,YAAY,CAAClB,OAAO,CAAC8C,gBAAgB,CAAC;EAE9D,MAAME,oBAAoB,GAAG,GAAG,CAAC7C,MAAM,CAACH,OAAO,CAACiD,qBAAqB,CAAC;EACtE,MAAMC,mBAAmB,GAAGhC,YAAY,CAAClB,OAAO,CAACiD,qBAAqB,CAAC;EACvE,MAAME,oBAAoB,GAAG,GAAG,CAAChD,MAAM,CAACH,OAAO,CAACoD,oBAAoB,CAAC;EACrE,MAAMC,mBAAmB,GAAGnC,YAAY,CAAClB,OAAO,CAACoD,oBAAoB,CAAC;EAEtE,MAAME,sBAAsB,GAAGpC,YAAY,CAAClB,OAAO,CAACiD,qBAAqB,CAAC;EAE1E,MAAMM,UAAU,GAAG,GAAG,CAACpD,MAAM,CAACH,OAAO,CAACwD,YAAY,CAAC;EAEnD,SAASC,UAAUA,CAACjB,QAA8C,EAAU;IAC1E,IAAI,CAACA,QAAQ,EAAE,OAAOe,UAAU;IAChC,OAAOrC,YAAY,CAAClB,OAAO,CAACwD,YAAY,CAAC,CACvCE,IAAI,CAACC,KAAK,CAACnB,QAAQ,CAACf,GAAG,CAACmC,gBAAM,CAACC,IAAI,CAAC,CACtC,CAAC;EACH;EAEA,MAAMC,YAAY,GAAG,GAAG,CAAC3D,MAAM,CAACH,OAAO,CAAC+D,cAAc,CAAC;EAEvD,SAASC,YAAYA,CACnBxB,QAA8C,EACtC;IACR,IAAI,CAACA,QAAQ,EAAE,OAAOsB,YAAY;IAClC,OAAO5C,YAAY,CAAClB,OAAO,CAAC+D,cAAc,CAAC,CACzCL,IAAI,CAACO,KAAK,CAACzB,QAAQ,CAACf,GAAG,CAACmC,gBAAM,CAACM,MAAM,CAAC,GAAG,EAAE,CAC7C,CAAC;EACH;EAEA,OAAO,SAASC,cAAcA,CAACC,IAAc,EAAEC,MAAiB,EAAU;IACxE,MAAM;MAAEC,WAAW;MAAEC;IAAgB,CAAC,GAAGF,MAAM;IAC/C,IAAI;MAAEG;IAAa,CAAC,GAAGH,MAAM;IAE7B,MAAMH,MAAM,GAAGM,YAAY,KAAKZ,gBAAM,CAACM,MAAM;IAC7C,IAAIA,MAAM,EAAEM,YAAY,GAAGZ,gBAAM,CAACC,IAAI;IAEtC,MAAMY,UAAU,GAAGL,IAAI,CAACM,QAAQ,KAAK,IAAI;IAEzC,IAAI,CAACN,IAAI,CAACO,EAAE,EAAE;MACZ,MAAM;QAAE3C,IAAI;QAAEE,KAAK;QAAEE,EAAE;QAAEE;MAAK,CAAC,GAC7B8B,IAAI,CAACM,QAAQ,EAAEE,SAAS,IAAIR,IAAI,CAACQ,SAAS,IAAI,CAAC,CAAC;MAClD,OAAO,CACL1E,gBAAgB,EAChBG,iBAAiB,CAAC+D,IAAI,CAACS,IAAI,CAAC,EAC5BtC,cAAc,EACd,GAAG;MAAE;MACL,GAAG;MAAE;MACLG,gBAAgB,EAChBG,gBAAgB,EAChBG,oBAAoB,EACpBG,oBAAoB,EACpBpB,UAAU,CAACC,IAAI,EAAEwC,YAAY,EAAEC,UAAU,CAAC,EAC1CxC,WAAW,CAACC,KAAK,EAAEsC,YAAY,EAAEC,UAAU,CAAC,EAC5CtC,QAAQ,CAACC,EAAE,EAAEoC,YAAY,EAAEC,UAAU,CAAC,EACtCpC,UAAU,CAACC,IAAI,EAAEkC,YAAY,EAAEC,UAAU,CAAC,CAC3C,CAACK,IAAI,CAAC,EAAE,CAAC;IACZ;IAEA,MAAMC,eAAe,GACnBX,IAAI,CAACvD,WAAW,KAAK,YAAY,GAC7BuD,IAAI,CAACY,kBAAkB,GACvBZ,IAAI,CAAC5B,QAAQ;IAEnB,OAAO,CACL7B,eAAe,CAACyD,IAAI,CAACO,EAAE,CAAC,EACxBtE,iBAAiB,CAAC+D,IAAI,CAACS,IAAI,CAAC,EAC5BX,MAAM,GACFT,UAAU,CAACsB,eAAe,CAAC,GAC3BtC,cAAc,CAACsC,eAAe,EAAEP,YAAY,EAAEC,UAAU,CAAC,EAC7DP,MAAM,GACFF,YAAY,CAACe,eAAe,CAAC,GAC7BnE,iBAAiB,CAACwD,IAAI,CAACvD,WAAW,CAAC,EACvCqD,MAAM,GACFtD,iBAAiB,CAACwD,IAAI,CAACvD,WAAW,CAAC,GACnCuD,IAAI,CAACa,eAAe,GACpB,GAAG,GACH,GAAG,EACPrC,eAAe,CAACwB,IAAI,CAACzB,iBAAiB,EAAE2B,WAAW,EAAEG,UAAU,CAAC,EAChE1B,eAAe,CAACqB,IAAI,CAACtB,gBAAgB,EAAEwB,WAAW,EAAEG,UAAU,CAAC,EAC/DL,IAAI,CAACvD,WAAW,GACZyC,sBAAsB,CACpBc,IAAI,CAACc,gBAAgB,EACrBV,YAAY,EACZC,UACF,CAAC,GACDvB,mBAAmB,CACjBkB,IAAI,CAACnB,qBAAqB,EAC1BsB,eAAe,EACfE,UACF,CAAC,EACLL,IAAI,CAACvD,WAAW,GACZsC,oBAAoB,GACpBE,mBAAmB,CACjBe,IAAI,CAAChB,oBAAoB,EACzBmB,eAAe,EACfE,UACF,CAAC,EACL1C,UAAU,CAACqC,IAAI,CAACe,OAAO,EAAEnD,IAAI,EAAEwC,YAAY,EAAEC,UAAU,CAAC,EACxDxC,WAAW,CAACmC,IAAI,CAACe,OAAO,EAAEjD,KAAK,EAAEsC,YAAY,EAAEC,UAAU,CAAC,EAC1DtC,QAAQ,CAACiC,IAAI,CAACe,OAAO,EAAE/C,EAAE,EAAEoC,YAAY,EAAEC,UAAU,CAAC,EACpDpC,UAAU,CAAC+B,IAAI,CAACe,OAAO,EAAE7C,IAAI,EAAEkC,YAAY,EAAEC,UAAU,CAAC,CACzD,CAACK,IAAI,CAAC,EAAE,CAAC;EACZ,CAAC;AACH;AAAC,IAAAM,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcvF,kBAAkB,CAAC,CAAC","ignoreList":[]}
@@ -1,144 +1,66 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.formatFrcsSurveyFile = formatFrcsSurveyFile;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
- var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
11
- var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
12
7
  var _unitized = require("@speleotica/unitized");
13
8
  var _formatFrcsShot = require("./formatFrcsShot.js");
14
- function formatFrcsSurveyFile(_x) {
15
- return _formatFrcsSurveyFile.apply(this, arguments);
16
- }
17
- function _formatFrcsSurveyFile() {
18
- _formatFrcsSurveyFile = (0, _wrapAsyncGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(file) {
19
- var formatFrcsShot, tripIndex, trip, shots, header, units, name, team, date, comment, line2, alternateUnits, i, _shot$recorded, shot, lines, _i;
20
- return _regenerator["default"].wrap(function _callee$(_context) {
21
- while (1) switch (_context.prev = _context.next) {
22
- case 0:
23
- formatFrcsShot = (0, _formatFrcsShot.makeFormatFrcsShot)(file);
24
- if (!file.cave) {
25
- _context.next = 4;
26
- break;
27
- }
28
- _context.next = 4;
29
- return " ".concat(file.cave).concat(file.location ? ", ".concat(file.location) : '', "\n");
30
- case 4:
31
- tripIndex = 0;
32
- case 5:
33
- if (!(tripIndex < file.trips.length)) {
34
- _context.next = 56;
35
- break;
36
- }
37
- trip = file.trips[tripIndex];
38
- shots = trip.shots, header = trip.header, units = trip.units;
39
- name = header.name, team = header.team, date = header.date, comment = header.comment;
40
- if (!(tripIndex > 0)) {
41
- _context.next = 12;
42
- break;
43
- }
44
- _context.next = 12;
45
- return ' *\n';
46
- case 12:
47
- _context.next = 14;
48
- return name.replace(/\n?$/, '\n');
49
- case 14:
50
- line2 = [].concat((0, _toConsumableArray2["default"])(team !== null && team !== void 0 && team.length ? [team.join(', ')] : []), (0, _toConsumableArray2["default"])(date ? [formatDate(date)] : [])).join('. ');
51
- if (!line2) {
52
- _context.next = 18;
53
- break;
54
- }
55
- _context.next = 18;
56
- return "".concat(line2, "\n");
57
- case 18:
58
- if (!comment) {
59
- _context.next = 21;
60
- break;
61
- }
62
- _context.next = 21;
63
- return comment.replace(/\n?$/, '\n');
64
- case 21:
65
- _context.next = 23;
66
- return ' *\n';
67
- case 23:
68
- _context.next = 25;
69
- return formatUnits(units);
70
- case 25:
71
- alternateUnits = void 0;
72
- i = 0;
73
- case 27:
74
- if (!(i < shots.length)) {
75
- _context.next = 53;
76
- break;
77
- }
78
- shot = shots[i];
79
- if (!shot.comment) {
80
- _context.next = 42;
81
- break;
82
- }
83
- lines = shot.comment.split(/\n/gm);
84
- _context.next = 33;
85
- return '*\n';
86
- case 33:
87
- _i = 0;
88
- case 34:
89
- if (!(_i < lines.length - 1)) {
90
- _context.next = 40;
91
- break;
92
- }
93
- _context.next = 37;
94
- return lines[_i].replace(/\n?$/, '\n');
95
- case 37:
96
- _i++;
97
- _context.next = 34;
98
- break;
99
- case 40:
100
- _context.next = 42;
101
- return "* ".concat(lines[lines.length - 1].replace(/\n?$/, '\n'));
102
- case 42:
103
- if (!((_shot$recorded = shot.recorded) !== null && _shot$recorded !== void 0 && _shot$recorded.units)) {
104
- _context.next = 48;
105
- break;
106
- }
107
- alternateUnits = shot.recorded.units;
108
- _context.next = 46;
109
- return "* %NC\n";
110
- case 46:
111
- _context.next = 48;
112
- return formatUnits(shot.recorded.units);
113
- case 48:
114
- _context.next = 50;
115
- return formatFrcsShot(shot.recorded || shot, alternateUnits || units).replace(/\n?$/, '\n');
116
- case 50:
117
- i++;
118
- _context.next = 27;
119
- break;
120
- case 53:
121
- tripIndex++;
122
- _context.next = 5;
123
- break;
124
- case 56:
125
- case "end":
126
- return _context.stop();
9
+ async function* formatFrcsSurveyFile(file) {
10
+ const formatFrcsShot = (0, _formatFrcsShot.makeFormatFrcsShot)(file);
11
+ if (file.cave) {
12
+ yield ` ${file.cave}${file.location ? `, ${file.location}` : ''}\n`;
13
+ }
14
+ for (let tripIndex = 0; tripIndex < file.trips.length; tripIndex++) {
15
+ const trip = file.trips[tripIndex];
16
+ const {
17
+ shots,
18
+ header,
19
+ units
20
+ } = trip;
21
+ const {
22
+ name,
23
+ team,
24
+ date,
25
+ comment
26
+ } = header;
27
+ if (tripIndex > 0) yield ' *\n';
28
+ yield name.replace(/\n?$/, '\n');
29
+ const line2 = [...(team?.length ? [team.join(', ')] : []), ...(date ? [formatDate(date)] : [])].join('. ');
30
+ if (line2) yield `${line2}\n`;
31
+ if (comment) yield comment.replace(/\n?$/, '\n');
32
+ yield ' *\n';
33
+ yield formatUnits(units);
34
+ let alternateUnits;
35
+ for (let i = 0; i < shots.length; i++) {
36
+ const shot = shots[i];
37
+ if (shot.comment) {
38
+ const lines = shot.comment.split(/\n/gm);
39
+ yield '*\n';
40
+ for (let i = 0; i < lines.length - 1; i++) {
41
+ yield lines[i].replace(/\n?$/, '\n');
42
+ }
43
+ yield `* ${lines[lines.length - 1].replace(/\n?$/, '\n')}`;
127
44
  }
128
- }, _callee);
129
- }));
130
- return _formatFrcsSurveyFile.apply(this, arguments);
45
+ if (shot.recorded?.units) {
46
+ alternateUnits = shot.recorded.units;
47
+ yield `* %NC\n`;
48
+ yield formatUnits(shot.recorded.units);
49
+ }
50
+ yield formatFrcsShot(shot.recorded || shot, alternateUnits || units).replace(/\n?$/, '\n');
51
+ }
52
+ }
131
53
  }
132
54
  function formatUnits(units) {
133
- var distUnit = formatLengthUnit(units.distanceUnit);
134
- var azmMode = units.hasBacksightAzimuth ? units.backsightAzimuthCorrected ? 'C' : 'B' : ' ';
135
- var incMode = units.hasBacksightInclination ? units.backsightInclinationCorrected ? 'C' : 'B' : ' ';
136
- var azmUnit = formatAngleUnit(units.azimuthUnit);
137
- var incUnit = formatAngleUnit(units.inclinationUnit);
138
- return "".concat(distUnit, " ").concat(azmMode).concat(incMode, " ").concat(azmUnit).concat(incUnit, "\n");
55
+ const distUnit = formatLengthUnit(units.distanceUnit);
56
+ const azmMode = units.hasBacksightAzimuth ? units.backsightAzimuthCorrected ? 'C' : 'B' : ' ';
57
+ const incMode = units.hasBacksightInclination ? units.backsightInclinationCorrected ? 'C' : 'B' : ' ';
58
+ const azmUnit = formatAngleUnit(units.azimuthUnit);
59
+ const incUnit = formatAngleUnit(units.inclinationUnit);
60
+ return `${distUnit} ${azmMode}${incMode} ${azmUnit}${incUnit}\n`;
139
61
  }
140
62
  function formatDate(date) {
141
- return "".concat(date.getMonth() + 1, "/").concat(date.getDate(), "/").concat(date.getFullYear() % 100);
63
+ return `${date.getMonth() + 1}/${date.getDate()}/${date.getFullYear() % 100}`;
142
64
  }
143
65
  function formatLengthUnit(unit) {
144
66
  switch (unit) {
@@ -149,7 +71,7 @@ function formatLengthUnit(unit) {
149
71
  case _unitized.Length.inches:
150
72
  return 'FI';
151
73
  default:
152
- throw new Error("invalid length unit: ".concat(unit));
74
+ throw new Error(`invalid length unit: ${unit}`);
153
75
  }
154
76
  }
155
77
  function formatAngleUnit(unit) {
@@ -159,7 +81,7 @@ function formatAngleUnit(unit) {
159
81
  case _unitized.Angle.gradians:
160
82
  return 'G';
161
83
  default:
162
- throw new Error("invalid angle unit: ".concat(unit));
84
+ throw new Error(`invalid angle unit: ${unit}`);
163
85
  }
164
86
  }
165
87
  //# sourceMappingURL=formatFrcsSurveyFile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatFrcsSurveyFile.js","names":["_unitized","require","_formatFrcsShot","formatFrcsSurveyFile","_x","_formatFrcsSurveyFile","apply","arguments","_wrapAsyncGenerator2","_regenerator","mark","_callee","file","formatFrcsShot","tripIndex","trip","shots","header","units","name","team","date","comment","line2","alternateUnits","i","_shot$recorded","shot","lines","_i","wrap","_callee$","_context","prev","next","makeFormatFrcsShot","cave","concat","location","trips","length","replace","_toConsumableArray2","join","formatDate","formatUnits","split","recorded","stop","distUnit","formatLengthUnit","distanceUnit","azmMode","hasBacksightAzimuth","backsightAzimuthCorrected","incMode","hasBacksightInclination","backsightInclinationCorrected","azmUnit","formatAngleUnit","azimuthUnit","incUnit","inclinationUnit","getMonth","getDate","getFullYear","unit","Length","meters","feet","inches","Error","Angle","degrees","gradians"],"sources":["../../src/survey/formatFrcsSurveyFile.ts"],"sourcesContent":["import { Angle, Length, Unit } from '@speleotica/unitized'\nimport type { FrcsSurveyFile, FrcsUnits } from './FrcsSurveyFile'\nimport { makeFormatFrcsShot } from './formatFrcsShot'\n\nexport async function* formatFrcsSurveyFile(\n file: FrcsSurveyFile\n): AsyncIterable<string> {\n const formatFrcsShot = makeFormatFrcsShot(file)\n if (file.cave) {\n yield ` ${file.cave}${file.location ? `, ${file.location}` : ''}\\n`\n }\n for (let tripIndex = 0; tripIndex < file.trips.length; tripIndex++) {\n const trip = file.trips[tripIndex]\n const { shots, header, units } = trip\n const { name, team, date, comment } = header\n if (tripIndex > 0) yield ' *\\n'\n yield name.replace(/\\n?$/, '\\n')\n const line2 = [\n ...(team?.length ? [team.join(', ')] : []),\n ...(date ? [formatDate(date)] : []),\n ].join('. ')\n if (line2) yield `${line2}\\n`\n if (comment) yield comment.replace(/\\n?$/, '\\n')\n yield ' *\\n'\n yield formatUnits(units)\n\n let alternateUnits: FrcsUnits | undefined\n\n for (let i = 0; i < shots.length; i++) {\n const shot = shots[i]\n if (shot.comment) {\n const lines = shot.comment.split(/\\n/gm)\n yield '*\\n'\n for (let i = 0; i < lines.length - 1; i++) {\n yield lines[i].replace(/\\n?$/, '\\n')\n }\n yield `* ${lines[lines.length - 1].replace(/\\n?$/, '\\n')}`\n }\n if (shot.recorded?.units) {\n alternateUnits = shot.recorded.units\n yield `* %NC\\n`\n yield formatUnits(shot.recorded.units)\n }\n yield formatFrcsShot(\n shot.recorded || shot,\n alternateUnits || units\n ).replace(/\\n?$/, '\\n')\n }\n }\n}\n\nfunction formatUnits(units: FrcsUnits): string {\n const distUnit = formatLengthUnit(units.distanceUnit)\n const azmMode = units.hasBacksightAzimuth\n ? units.backsightAzimuthCorrected\n ? 'C'\n : 'B'\n : ' '\n const incMode = units.hasBacksightInclination\n ? units.backsightInclinationCorrected\n ? 'C'\n : 'B'\n : ' '\n const azmUnit = formatAngleUnit(units.azimuthUnit)\n const incUnit = formatAngleUnit(units.inclinationUnit)\n\n return `${distUnit} ${azmMode}${incMode} ${azmUnit}${incUnit}\\n`\n}\n\nfunction formatDate(date: Date): string {\n return `${date.getMonth() + 1}/${date.getDate()}/${date.getFullYear() % 100}`\n}\n\nfunction formatLengthUnit(unit: Unit<Length>): string {\n switch (unit) {\n case Length.meters:\n return 'M '\n case Length.feet:\n return 'FT'\n case Length.inches:\n return 'FI'\n default:\n throw new Error(`invalid length unit: ${unit}`)\n }\n}\n\nfunction formatAngleUnit(unit: Unit<Angle>): string {\n switch (unit) {\n case Angle.degrees:\n return 'D'\n case Angle.gradians:\n return 'G'\n default:\n throw new Error(`invalid angle unit: ${unit}`)\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"formatFrcsSurveyFile.js","names":["_unitized","require","_formatFrcsShot","formatFrcsSurveyFile","file","formatFrcsShot","makeFormatFrcsShot","cave","location","tripIndex","trips","length","trip","shots","header","units","name","team","date","comment","replace","line2","join","formatDate","formatUnits","alternateUnits","i","shot","lines","split","recorded","distUnit","formatLengthUnit","distanceUnit","azmMode","hasBacksightAzimuth","backsightAzimuthCorrected","incMode","hasBacksightInclination","backsightInclinationCorrected","azmUnit","formatAngleUnit","azimuthUnit","incUnit","inclinationUnit","getMonth","getDate","getFullYear","unit","Length","meters","feet","inches","Error","Angle","degrees","gradians"],"sources":["../../src/survey/formatFrcsSurveyFile.ts"],"sourcesContent":["import { Angle, Length, Unit } from '@speleotica/unitized'\nimport type { FrcsSurveyFile, FrcsUnits } from './FrcsSurveyFile'\nimport { makeFormatFrcsShot } from './formatFrcsShot'\n\nexport async function* formatFrcsSurveyFile(\n file: FrcsSurveyFile\n): AsyncIterable<string> {\n const formatFrcsShot = makeFormatFrcsShot(file)\n if (file.cave) {\n yield ` ${file.cave}${file.location ? `, ${file.location}` : ''}\\n`\n }\n for (let tripIndex = 0; tripIndex < file.trips.length; tripIndex++) {\n const trip = file.trips[tripIndex]\n const { shots, header, units } = trip\n const { name, team, date, comment } = header\n if (tripIndex > 0) yield ' *\\n'\n yield name.replace(/\\n?$/, '\\n')\n const line2 = [\n ...(team?.length ? [team.join(', ')] : []),\n ...(date ? [formatDate(date)] : []),\n ].join('. ')\n if (line2) yield `${line2}\\n`\n if (comment) yield comment.replace(/\\n?$/, '\\n')\n yield ' *\\n'\n yield formatUnits(units)\n\n let alternateUnits: FrcsUnits | undefined\n\n for (let i = 0; i < shots.length; i++) {\n const shot = shots[i]\n if (shot.comment) {\n const lines = shot.comment.split(/\\n/gm)\n yield '*\\n'\n for (let i = 0; i < lines.length - 1; i++) {\n yield lines[i].replace(/\\n?$/, '\\n')\n }\n yield `* ${lines[lines.length - 1].replace(/\\n?$/, '\\n')}`\n }\n if (shot.recorded?.units) {\n alternateUnits = shot.recorded.units\n yield `* %NC\\n`\n yield formatUnits(shot.recorded.units)\n }\n yield formatFrcsShot(\n shot.recorded || shot,\n alternateUnits || units\n ).replace(/\\n?$/, '\\n')\n }\n }\n}\n\nfunction formatUnits(units: FrcsUnits): string {\n const distUnit = formatLengthUnit(units.distanceUnit)\n const azmMode = units.hasBacksightAzimuth\n ? units.backsightAzimuthCorrected\n ? 'C'\n : 'B'\n : ' '\n const incMode = units.hasBacksightInclination\n ? units.backsightInclinationCorrected\n ? 'C'\n : 'B'\n : ' '\n const azmUnit = formatAngleUnit(units.azimuthUnit)\n const incUnit = formatAngleUnit(units.inclinationUnit)\n\n return `${distUnit} ${azmMode}${incMode} ${azmUnit}${incUnit}\\n`\n}\n\nfunction formatDate(date: Date): string {\n return `${date.getMonth() + 1}/${date.getDate()}/${date.getFullYear() % 100}`\n}\n\nfunction formatLengthUnit(unit: Unit<Length>): string {\n switch (unit) {\n case Length.meters:\n return 'M '\n case Length.feet:\n return 'FT'\n case Length.inches:\n return 'FI'\n default:\n throw new Error(`invalid length unit: ${unit}`)\n }\n}\n\nfunction formatAngleUnit(unit: Unit<Angle>): string {\n switch (unit) {\n case Angle.degrees:\n return 'D'\n case Angle.gradians:\n return 'G'\n default:\n throw new Error(`invalid angle unit: ${unit}`)\n }\n}\n"],"mappings":"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","ignoreList":[]}