@pbkware/fielded-text-web 0.1.0

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 (482) hide show
  1. package/dist/api/ft-reader.js +59 -0
  2. package/dist/api/ft-reader.js.map +1 -0
  3. package/dist/api/ft-serialization.js +147 -0
  4. package/dist/api/ft-serialization.js.map +1 -0
  5. package/dist/api/ft-writer-settings.js +31 -0
  6. package/dist/api/ft-writer-settings.js.map +1 -0
  7. package/dist/api/ft-writer.js +22 -0
  8. package/dist/api/ft-writer.js.map +1 -0
  9. package/dist/factory/ft-field-factory.js +86 -0
  10. package/dist/factory/ft-field-factory.js.map +1 -0
  11. package/dist/factory/ft-meta-constructor.js +16 -0
  12. package/dist/factory/ft-meta-constructor.js.map +1 -0
  13. package/dist/factory/ft-meta-factory.js +30 -0
  14. package/dist/factory/ft-meta-factory.js.map +1 -0
  15. package/dist/factory/ft-sequence-constructor.js +11 -0
  16. package/dist/factory/ft-sequence-constructor.js.map +1 -0
  17. package/dist/factory/ft-sequence-factory.js +18 -0
  18. package/dist/factory/ft-sequence-factory.js.map +1 -0
  19. package/dist/factory/ft-sequence-item-constructor.js +11 -0
  20. package/dist/factory/ft-sequence-item-constructor.js.map +1 -0
  21. package/dist/factory/ft-sequence-item-factory.js +18 -0
  22. package/dist/factory/ft-sequence-item-factory.js.map +1 -0
  23. package/dist/factory/ft-sequence-redirect-constructor.js +13 -0
  24. package/dist/factory/ft-sequence-redirect-constructor.js.map +1 -0
  25. package/dist/factory/ft-sequence-redirect-factory.js +176 -0
  26. package/dist/factory/ft-sequence-redirect-factory.js.map +1 -0
  27. package/dist/factory/ft-substitution-constructor.js +23 -0
  28. package/dist/factory/ft-substitution-constructor.js.map +1 -0
  29. package/dist/factory/ft-substitution-factory.js +37 -0
  30. package/dist/factory/ft-substitution-factory.js.map +1 -0
  31. package/dist/fields/definitions/ft-boolean-field-definition.js +36 -0
  32. package/dist/fields/definitions/ft-boolean-field-definition.js.map +1 -0
  33. package/dist/fields/definitions/ft-date-time-field-definition.js +39 -0
  34. package/dist/fields/definitions/ft-date-time-field-definition.js.map +1 -0
  35. package/dist/fields/definitions/ft-decimal-field-definition.js +32 -0
  36. package/dist/fields/definitions/ft-decimal-field-definition.js.map +1 -0
  37. package/dist/fields/definitions/ft-field-definition-list.js +26 -0
  38. package/dist/fields/definitions/ft-field-definition-list.js.map +1 -0
  39. package/dist/fields/definitions/ft-field-definition.js +245 -0
  40. package/dist/fields/definitions/ft-field-definition.js.map +1 -0
  41. package/dist/fields/definitions/ft-float-field-definition.js +32 -0
  42. package/dist/fields/definitions/ft-float-field-definition.js.map +1 -0
  43. package/dist/fields/definitions/ft-generic-field-definition.js +30 -0
  44. package/dist/fields/definitions/ft-generic-field-definition.js.map +1 -0
  45. package/dist/fields/definitions/ft-integer-field-definition.js +33 -0
  46. package/dist/fields/definitions/ft-integer-field-definition.js.map +1 -0
  47. package/dist/fields/definitions/ft-string-field-definition.js +21 -0
  48. package/dist/fields/definitions/ft-string-field-definition.js.map +1 -0
  49. package/dist/fields/instances/ft-boolean-field.js +38 -0
  50. package/dist/fields/instances/ft-boolean-field.js.map +1 -0
  51. package/dist/fields/instances/ft-date-time-field.js +35 -0
  52. package/dist/fields/instances/ft-date-time-field.js.map +1 -0
  53. package/dist/fields/instances/ft-decimal-field.js +35 -0
  54. package/dist/fields/instances/ft-decimal-field.js.map +1 -0
  55. package/dist/fields/instances/ft-field-list.js +56 -0
  56. package/dist/fields/instances/ft-field-list.js.map +1 -0
  57. package/dist/fields/instances/ft-field.js +561 -0
  58. package/dist/fields/instances/ft-field.js.map +1 -0
  59. package/dist/fields/instances/ft-float-field.js +35 -0
  60. package/dist/fields/instances/ft-float-field.js.map +1 -0
  61. package/dist/fields/instances/ft-generic-field.js +173 -0
  62. package/dist/fields/instances/ft-generic-field.js.map +1 -0
  63. package/dist/fields/instances/ft-integer-field.js +35 -0
  64. package/dist/fields/instances/ft-integer-field.js.map +1 -0
  65. package/dist/fields/instances/ft-string-field.js +34 -0
  66. package/dist/fields/instances/ft-string-field.js.map +1 -0
  67. package/dist/index.d.ts +3483 -0
  68. package/dist/index.js +133 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/meta/fields/ft-boolean-meta-field.js +65 -0
  71. package/dist/meta/fields/ft-boolean-meta-field.js.map +1 -0
  72. package/dist/meta/fields/ft-date-time-meta-field.js +55 -0
  73. package/dist/meta/fields/ft-date-time-meta-field.js.map +1 -0
  74. package/dist/meta/fields/ft-decimal-meta-field.js +55 -0
  75. package/dist/meta/fields/ft-decimal-meta-field.js.map +1 -0
  76. package/dist/meta/fields/ft-float-meta-field.js +55 -0
  77. package/dist/meta/fields/ft-float-meta-field.js.map +1 -0
  78. package/dist/meta/fields/ft-generic-meta-field.js +32 -0
  79. package/dist/meta/fields/ft-generic-meta-field.js.map +1 -0
  80. package/dist/meta/fields/ft-integer-meta-field.js +55 -0
  81. package/dist/meta/fields/ft-integer-meta-field.js.map +1 -0
  82. package/dist/meta/fields/ft-meta-field-list.js +183 -0
  83. package/dist/meta/fields/ft-meta-field-list.js.map +1 -0
  84. package/dist/meta/fields/ft-meta-field.js +351 -0
  85. package/dist/meta/fields/ft-meta-field.js.map +1 -0
  86. package/dist/meta/fields/ft-string-meta-field.js +27 -0
  87. package/dist/meta/fields/ft-string-meta-field.js.map +1 -0
  88. package/dist/meta/ft-meta-defaults.js +152 -0
  89. package/dist/meta/ft-meta-defaults.js.map +1 -0
  90. package/dist/meta/ft-meta.js +391 -0
  91. package/dist/meta/ft-meta.js.map +1 -0
  92. package/dist/meta/sequences/core/ft-meta-sequence-item-list.js +82 -0
  93. package/dist/meta/sequences/core/ft-meta-sequence-item-list.js.map +1 -0
  94. package/dist/meta/sequences/core/ft-meta-sequence-item.js +62 -0
  95. package/dist/meta/sequences/core/ft-meta-sequence-item.js.map +1 -0
  96. package/dist/meta/sequences/core/ft-meta-sequence-list.js +164 -0
  97. package/dist/meta/sequences/core/ft-meta-sequence-list.js.map +1 -0
  98. package/dist/meta/sequences/core/ft-meta-sequence.js +96 -0
  99. package/dist/meta/sequences/core/ft-meta-sequence.js.map +1 -0
  100. package/dist/meta/sequences/redirects/ft-boolean-meta-sequence-redirect.js +40 -0
  101. package/dist/meta/sequences/redirects/ft-boolean-meta-sequence-redirect.js.map +1 -0
  102. package/dist/meta/sequences/redirects/ft-case-insensitive-string-meta-sequence-redirect.js +40 -0
  103. package/dist/meta/sequences/redirects/ft-case-insensitive-string-meta-sequence-redirect.js.map +1 -0
  104. package/dist/meta/sequences/redirects/ft-date-meta-sequence-redirect.js +45 -0
  105. package/dist/meta/sequences/redirects/ft-date-meta-sequence-redirect.js.map +1 -0
  106. package/dist/meta/sequences/redirects/ft-exact-date-time-meta-sequence-redirect.js +40 -0
  107. package/dist/meta/sequences/redirects/ft-exact-date-time-meta-sequence-redirect.js.map +1 -0
  108. package/dist/meta/sequences/redirects/ft-exact-decimal-meta-sequence-redirect.js +40 -0
  109. package/dist/meta/sequences/redirects/ft-exact-decimal-meta-sequence-redirect.js.map +1 -0
  110. package/dist/meta/sequences/redirects/ft-exact-float-meta-sequence-redirect.js +40 -0
  111. package/dist/meta/sequences/redirects/ft-exact-float-meta-sequence-redirect.js.map +1 -0
  112. package/dist/meta/sequences/redirects/ft-exact-integer-meta-sequence-redirect.js +40 -0
  113. package/dist/meta/sequences/redirects/ft-exact-integer-meta-sequence-redirect.js.map +1 -0
  114. package/dist/meta/sequences/redirects/ft-exact-string-meta-sequence-redirect.js +40 -0
  115. package/dist/meta/sequences/redirects/ft-exact-string-meta-sequence-redirect.js.map +1 -0
  116. package/dist/meta/sequences/redirects/ft-meta-sequence-redirect-list.js +85 -0
  117. package/dist/meta/sequences/redirects/ft-meta-sequence-redirect-list.js.map +1 -0
  118. package/dist/meta/sequences/redirects/ft-meta-sequence-redirect.js +68 -0
  119. package/dist/meta/sequences/redirects/ft-meta-sequence-redirect.js.map +1 -0
  120. package/dist/meta/sequences/redirects/ft-null-meta-sequence-redirect.js +21 -0
  121. package/dist/meta/sequences/redirects/ft-null-meta-sequence-redirect.js.map +1 -0
  122. package/dist/meta/substitutions/ft-meta-substitution-list.js +51 -0
  123. package/dist/meta/substitutions/ft-meta-substitution-list.js.map +1 -0
  124. package/dist/meta-serialization/format/ft-json-meta-serialization.js +283 -0
  125. package/dist/meta-serialization/format/ft-json-meta-serialization.js.map +1 -0
  126. package/dist/meta-serialization/format/ft-xml-meta-serialization.js +706 -0
  127. package/dist/meta-serialization/format/ft-xml-meta-serialization.js.map +1 -0
  128. package/dist/meta-serialization/format/meta-serializer-options.js +12 -0
  129. package/dist/meta-serialization/format/meta-serializer-options.js.map +1 -0
  130. package/dist/meta-serialization/ft-meta-serialization.js +59 -0
  131. package/dist/meta-serialization/ft-meta-serialization.js.map +1 -0
  132. package/dist/meta-serialization/styles/ft-boolean-styles-meta-serialization.js +83 -0
  133. package/dist/meta-serialization/styles/ft-boolean-styles-meta-serialization.js.map +1 -0
  134. package/dist/meta-serialization/styles/ft-date-time-styles-meta-serialization.js +54 -0
  135. package/dist/meta-serialization/styles/ft-date-time-styles-meta-serialization.js.map +1 -0
  136. package/dist/meta-serialization/styles/ft-number-styles-meta-serialization.js +199 -0
  137. package/dist/meta-serialization/styles/ft-number-styles-meta-serialization.js.map +1 -0
  138. package/dist/meta-serialization/types/boolean-meta-serialization.js +39 -0
  139. package/dist/meta-serialization/types/boolean-meta-serialization.js.map +1 -0
  140. package/dist/meta-serialization/types/char-meta-serialization.js +32 -0
  141. package/dist/meta-serialization/types/char-meta-serialization.js.map +1 -0
  142. package/dist/meta-serialization/types/date-time-meta-serialization.js +227 -0
  143. package/dist/meta-serialization/types/date-time-meta-serialization.js.map +1 -0
  144. package/dist/meta-serialization/types/decimal-meta-serialization.js +12 -0
  145. package/dist/meta-serialization/types/decimal-meta-serialization.js.map +1 -0
  146. package/dist/meta-serialization/types/enums/data-type-meta-serialisation.js +55 -0
  147. package/dist/meta-serialization/types/enums/data-type-meta-serialisation.js.map +1 -0
  148. package/dist/meta-serialization/types/enums/end-of-line-auto-write-type-meta-serialization.js +50 -0
  149. package/dist/meta-serialization/types/enums/end-of-line-auto-write-type-meta-serialization.js.map +1 -0
  150. package/dist/meta-serialization/types/enums/end-of-line-type-meta-serialization.js +49 -0
  151. package/dist/meta-serialization/types/enums/end-of-line-type-meta-serialization.js.map +1 -0
  152. package/dist/meta-serialization/types/enums/heading-constraint-meta-serialization.js +55 -0
  153. package/dist/meta-serialization/types/enums/heading-constraint-meta-serialization.js.map +1 -0
  154. package/dist/meta-serialization/types/enums/last-line-ended-type-meta-serialization.js +48 -0
  155. package/dist/meta-serialization/types/enums/last-line-ended-type-meta-serialization.js.map +1 -0
  156. package/dist/meta-serialization/types/enums/pad-alignment-meta-serialization.js +52 -0
  157. package/dist/meta-serialization/types/enums/pad-alignment-meta-serialization.js.map +1 -0
  158. package/dist/meta-serialization/types/enums/pad-char-type-meta-serialization.js +52 -0
  159. package/dist/meta-serialization/types/enums/pad-char-type-meta-serialization.js.map +1 -0
  160. package/dist/meta-serialization/types/enums/quoted-type-meta-serialization.js +52 -0
  161. package/dist/meta-serialization/types/enums/quoted-type-meta-serialization.js.map +1 -0
  162. package/dist/meta-serialization/types/enums/sequence-invokation-delay-meta-serialization.js +47 -0
  163. package/dist/meta-serialization/types/enums/sequence-invokation-delay-meta-serialization.js.map +1 -0
  164. package/dist/meta-serialization/types/enums/sequence-redirect-type-meta-serialisation.js +88 -0
  165. package/dist/meta-serialization/types/enums/sequence-redirect-type-meta-serialisation.js.map +1 -0
  166. package/dist/meta-serialization/types/enums/substitution-type-meta-serialization.js +47 -0
  167. package/dist/meta-serialization/types/enums/substitution-type-meta-serialization.js.map +1 -0
  168. package/dist/meta-serialization/types/enums/truncate-type-meta-serialization.js +56 -0
  169. package/dist/meta-serialization/types/enums/truncate-type-meta-serialization.js.map +1 -0
  170. package/dist/meta-serialization/types/float-meta-serialization.js +99 -0
  171. package/dist/meta-serialization/types/float-meta-serialization.js.map +1 -0
  172. package/dist/meta-serialization/types/integer-float-meta-serialization.js +52 -0
  173. package/dist/meta-serialization/types/integer-float-meta-serialization.js.map +1 -0
  174. package/dist/meta-serialization/types/integer-meta-serialization.js +50 -0
  175. package/dist/meta-serialization/types/integer-meta-serialization.js.map +1 -0
  176. package/dist/meta-serialization/types/string-meta-serialization.js +35 -0
  177. package/dist/meta-serialization/types/string-meta-serialization.js.map +1 -0
  178. package/dist/meta-serialization/utils/implicit-explicit-index-sorter.js +57 -0
  179. package/dist/meta-serialization/utils/implicit-explicit-index-sorter.js.map +1 -0
  180. package/dist/meta-serialization/utils/meta-serialization-redirect-sequence-resolver.js +33 -0
  181. package/dist/meta-serialization/utils/meta-serialization-redirect-sequence-resolver.js.map +1 -0
  182. package/dist/meta-serialization/utils/meta-serialization-sequence-name-resolver.js +67 -0
  183. package/dist/meta-serialization/utils/meta-serialization-sequence-name-resolver.js.map +1 -0
  184. package/dist/meta-serialization/utils/sequence-item-field-indices.js +70 -0
  185. package/dist/meta-serialization/utils/sequence-item-field-indices.js.map +1 -0
  186. package/dist/sequences/core/ft-sequence-invokation-list.js +91 -0
  187. package/dist/sequences/core/ft-sequence-invokation-list.js.map +1 -0
  188. package/dist/sequences/core/ft-sequence-invokation.js +143 -0
  189. package/dist/sequences/core/ft-sequence-invokation.js.map +1 -0
  190. package/dist/sequences/core/ft-sequence-item-list.js +34 -0
  191. package/dist/sequences/core/ft-sequence-item-list.js.map +1 -0
  192. package/dist/sequences/core/ft-sequence-item.js +46 -0
  193. package/dist/sequences/core/ft-sequence-item.js.map +1 -0
  194. package/dist/sequences/core/ft-sequence-list.js +62 -0
  195. package/dist/sequences/core/ft-sequence-list.js.map +1 -0
  196. package/dist/sequences/core/ft-sequence.js +59 -0
  197. package/dist/sequences/core/ft-sequence.js.map +1 -0
  198. package/dist/sequences/redirects/ft-boolean-sequence-redirect.js +33 -0
  199. package/dist/sequences/redirects/ft-boolean-sequence-redirect.js.map +1 -0
  200. package/dist/sequences/redirects/ft-case-insensitive-string-sequence-redirect.js +33 -0
  201. package/dist/sequences/redirects/ft-case-insensitive-string-sequence-redirect.js.map +1 -0
  202. package/dist/sequences/redirects/ft-date-sequence-redirect.js +37 -0
  203. package/dist/sequences/redirects/ft-date-sequence-redirect.js.map +1 -0
  204. package/dist/sequences/redirects/ft-exact-date-time-sequence-redirect.js +33 -0
  205. package/dist/sequences/redirects/ft-exact-date-time-sequence-redirect.js.map +1 -0
  206. package/dist/sequences/redirects/ft-exact-decimal-sequence-redirect.js +33 -0
  207. package/dist/sequences/redirects/ft-exact-decimal-sequence-redirect.js.map +1 -0
  208. package/dist/sequences/redirects/ft-exact-float-sequence-redirect.js +33 -0
  209. package/dist/sequences/redirects/ft-exact-float-sequence-redirect.js.map +1 -0
  210. package/dist/sequences/redirects/ft-exact-integer-sequence-redirect.js +33 -0
  211. package/dist/sequences/redirects/ft-exact-integer-sequence-redirect.js.map +1 -0
  212. package/dist/sequences/redirects/ft-exact-string-sequence-redirect.js +33 -0
  213. package/dist/sequences/redirects/ft-exact-string-sequence-redirect.js.map +1 -0
  214. package/dist/sequences/redirects/ft-null-sequence-redirect.js +20 -0
  215. package/dist/sequences/redirects/ft-null-sequence-redirect.js.map +1 -0
  216. package/dist/sequences/redirects/ft-sequence-redirect-list.js +35 -0
  217. package/dist/sequences/redirects/ft-sequence-redirect-list.js.map +1 -0
  218. package/dist/sequences/redirects/ft-sequence-redirect.js +47 -0
  219. package/dist/sequences/redirects/ft-sequence-redirect.js.map +1 -0
  220. package/dist/serialization/char-reader.js +178 -0
  221. package/dist/serialization/char-reader.js.map +1 -0
  222. package/dist/serialization/declaration-parser.js +176 -0
  223. package/dist/serialization/declaration-parser.js.map +1 -0
  224. package/dist/serialization/delimited-field-parser.js +278 -0
  225. package/dist/serialization/delimited-field-parser.js.map +1 -0
  226. package/dist/serialization/embedded-meta-parser.js +129 -0
  227. package/dist/serialization/embedded-meta-parser.js.map +1 -0
  228. package/dist/serialization/fixed-width-field-parser.js +196 -0
  229. package/dist/serialization/fixed-width-field-parser.js.map +1 -0
  230. package/dist/serialization/formatting/ft-boolean-field-formatter.js +113 -0
  231. package/dist/serialization/formatting/ft-boolean-field-formatter.js.map +1 -0
  232. package/dist/serialization/formatting/ft-date-time-field-formatter.js +54 -0
  233. package/dist/serialization/formatting/ft-date-time-field-formatter.js.map +1 -0
  234. package/dist/serialization/formatting/ft-decimal-field-formatter.js +46 -0
  235. package/dist/serialization/formatting/ft-decimal-field-formatter.js.map +1 -0
  236. package/dist/serialization/formatting/ft-declared-parameters-formatter.js +52 -0
  237. package/dist/serialization/formatting/ft-declared-parameters-formatter.js.map +1 -0
  238. package/dist/serialization/formatting/ft-field-formatter.js +15 -0
  239. package/dist/serialization/formatting/ft-field-formatter.js.map +1 -0
  240. package/dist/serialization/formatting/ft-float-field-formatter.js +46 -0
  241. package/dist/serialization/formatting/ft-float-field-formatter.js.map +1 -0
  242. package/dist/serialization/formatting/ft-integer-field-formatter.js +47 -0
  243. package/dist/serialization/formatting/ft-integer-field-formatter.js.map +1 -0
  244. package/dist/serialization/formatting/ft-string-field-formatter.js +14 -0
  245. package/dist/serialization/formatting/ft-string-field-formatter.js.map +1 -0
  246. package/dist/serialization/ft-declared-parameters.js +199 -0
  247. package/dist/serialization/ft-declared-parameters.js.map +1 -0
  248. package/dist/serialization/ft-serialization-reader.js +865 -0
  249. package/dist/serialization/ft-serialization-reader.js.map +1 -0
  250. package/dist/serialization/ft-serialization-writer.js +633 -0
  251. package/dist/serialization/ft-serialization-writer.js.map +1 -0
  252. package/dist/serialization/ft-text-reader.js +48 -0
  253. package/dist/serialization/ft-text-reader.js.map +1 -0
  254. package/dist/serialization/ft-text-writer.js +46 -0
  255. package/dist/serialization/ft-text-writer.js.map +1 -0
  256. package/dist/serialization/heading-line-record-parser.js +253 -0
  257. package/dist/serialization/heading-line-record-parser.js.map +1 -0
  258. package/dist/serialization/line-parser.js +205 -0
  259. package/dist/serialization/line-parser.js.map +1 -0
  260. package/dist/serialization/serialization-core.js +551 -0
  261. package/dist/serialization/serialization-core.js.map +1 -0
  262. package/dist/substitutions/ft-substitution-list.js +54 -0
  263. package/dist/substitutions/ft-substitution-list.js.map +1 -0
  264. package/dist/tsdoc-metadata.json +11 -0
  265. package/dist/types/enums/ft-boolean-styles.js +12 -0
  266. package/dist/types/enums/ft-boolean-styles.js.map +1 -0
  267. package/dist/types/enums/ft-data-type.js +12 -0
  268. package/dist/types/enums/ft-data-type.js.map +1 -0
  269. package/dist/types/enums/ft-end-of-line-auto-write-type.js +10 -0
  270. package/dist/types/enums/ft-end-of-line-auto-write-type.js.map +1 -0
  271. package/dist/types/enums/ft-end-of-line-type.js +9 -0
  272. package/dist/types/enums/ft-end-of-line-type.js.map +1 -0
  273. package/dist/types/enums/ft-heading-constraint.js +11 -0
  274. package/dist/types/enums/ft-heading-constraint.js.map +1 -0
  275. package/dist/types/enums/ft-last-line-ended-type.js +9 -0
  276. package/dist/types/enums/ft-last-line-ended-type.js.map +1 -0
  277. package/dist/types/enums/ft-line-type.js +13 -0
  278. package/dist/types/enums/ft-line-type.js.map +1 -0
  279. package/dist/types/enums/ft-meta-element-type.js +12 -0
  280. package/dist/types/enums/ft-meta-element-type.js.map +1 -0
  281. package/dist/types/enums/ft-meta-reference-type.js +10 -0
  282. package/dist/types/enums/ft-meta-reference-type.js.map +1 -0
  283. package/dist/types/enums/ft-meta-serialization-format.js +15 -0
  284. package/dist/types/enums/ft-meta-serialization-format.js.map +1 -0
  285. package/dist/types/enums/ft-pad-alignment.js +9 -0
  286. package/dist/types/enums/ft-pad-alignment.js.map +1 -0
  287. package/dist/types/enums/ft-pad-char-type.js +9 -0
  288. package/dist/types/enums/ft-pad-char-type.js.map +1 -0
  289. package/dist/types/enums/ft-quoted-type.js +9 -0
  290. package/dist/types/enums/ft-quoted-type.js.map +1 -0
  291. package/dist/types/enums/ft-read-record-result.js +9 -0
  292. package/dist/types/enums/ft-read-record-result.js.map +1 -0
  293. package/dist/types/enums/ft-sequence-invokation-delay.js +8 -0
  294. package/dist/types/enums/ft-sequence-invokation-delay.js.map +1 -0
  295. package/dist/types/enums/ft-sequence-redirect-type.js +15 -0
  296. package/dist/types/enums/ft-sequence-redirect-type.js.map +1 -0
  297. package/dist/types/enums/ft-substitution-type.js +12 -0
  298. package/dist/types/enums/ft-substitution-type.js.map +1 -0
  299. package/dist/types/enums/ft-truncate-type.js +11 -0
  300. package/dist/types/enums/ft-truncate-type.js.map +1 -0
  301. package/dist/types/errors/ft-internal-error.js +14 -0
  302. package/dist/types/errors/ft-internal-error.js.map +1 -0
  303. package/dist/types/errors/ft-serialization-error.js +49 -0
  304. package/dist/types/errors/ft-serialization-error.js.map +1 -0
  305. package/dist/types/errors/ft-serialization-exception.js +78 -0
  306. package/dist/types/errors/ft-serialization-exception.js.map +1 -0
  307. package/dist/types/events/ft-field-heading-ready-event-args.js +2 -0
  308. package/dist/types/events/ft-field-heading-ready-event-args.js.map +1 -0
  309. package/dist/types/events/ft-field-value-ready-event-args.js +2 -0
  310. package/dist/types/events/ft-field-value-ready-event-args.js.map +1 -0
  311. package/dist/types/events/ft-heading-line-finished-event-args.js +2 -0
  312. package/dist/types/events/ft-heading-line-finished-event-args.js.map +1 -0
  313. package/dist/types/events/ft-heading-line-started-event-args.js +2 -0
  314. package/dist/types/events/ft-heading-line-started-event-args.js.map +1 -0
  315. package/dist/types/events/ft-record-finished-event-args.js +2 -0
  316. package/dist/types/events/ft-record-finished-event-args.js.map +1 -0
  317. package/dist/types/events/ft-record-started-event-args.js +2 -0
  318. package/dist/types/events/ft-record-started-event-args.js.map +1 -0
  319. package/dist/types/events/ft-sequence-redirected-event-args.js +2 -0
  320. package/dist/types/events/ft-sequence-redirected-event-args.js.map +1 -0
  321. package/package.json +84 -0
  322. package/src/api/ft-reader.ts +106 -0
  323. package/src/api/ft-serialization.ts +216 -0
  324. package/src/api/ft-writer-settings.ts +76 -0
  325. package/src/api/ft-writer.ts +26 -0
  326. package/src/factory/ft-field-factory.ts +94 -0
  327. package/src/factory/ft-meta-constructor.ts +16 -0
  328. package/src/factory/ft-meta-factory.ts +34 -0
  329. package/src/factory/ft-sequence-constructor.ts +11 -0
  330. package/src/factory/ft-sequence-factory.ts +22 -0
  331. package/src/factory/ft-sequence-item-constructor.ts +11 -0
  332. package/src/factory/ft-sequence-item-factory.ts +22 -0
  333. package/src/factory/ft-sequence-redirect-constructor.ts +19 -0
  334. package/src/factory/ft-sequence-redirect-factory.ts +197 -0
  335. package/src/factory/ft-substitution-constructor.ts +24 -0
  336. package/src/factory/ft-substitution-factory.ts +43 -0
  337. package/src/fields/definitions/ft-boolean-field-definition.ts +49 -0
  338. package/src/fields/definitions/ft-date-time-field-definition.ts +52 -0
  339. package/src/fields/definitions/ft-decimal-field-definition.ts +43 -0
  340. package/src/fields/definitions/ft-field-definition-list.ts +33 -0
  341. package/src/fields/definitions/ft-field-definition.ts +276 -0
  342. package/src/fields/definitions/ft-float-field-definition.ts +43 -0
  343. package/src/fields/definitions/ft-generic-field-definition.ts +49 -0
  344. package/src/fields/definitions/ft-integer-field-definition.ts +44 -0
  345. package/src/fields/definitions/ft-string-field-definition.ts +26 -0
  346. package/src/fields/instances/ft-boolean-field.ts +49 -0
  347. package/src/fields/instances/ft-date-time-field.ts +44 -0
  348. package/src/fields/instances/ft-decimal-field.ts +44 -0
  349. package/src/fields/instances/ft-field-list.ts +68 -0
  350. package/src/fields/instances/ft-field.ts +691 -0
  351. package/src/fields/instances/ft-float-field.ts +44 -0
  352. package/src/fields/instances/ft-generic-field.ts +219 -0
  353. package/src/fields/instances/ft-integer-field.ts +44 -0
  354. package/src/fields/instances/ft-string-field.ts +40 -0
  355. package/src/index.ts +185 -0
  356. package/src/meta/fields/ft-boolean-meta-field.ts +79 -0
  357. package/src/meta/fields/ft-date-time-meta-field.ts +68 -0
  358. package/src/meta/fields/ft-decimal-meta-field.ts +68 -0
  359. package/src/meta/fields/ft-float-meta-field.ts +68 -0
  360. package/src/meta/fields/ft-generic-meta-field.ts +38 -0
  361. package/src/meta/fields/ft-integer-meta-field.ts +68 -0
  362. package/src/meta/fields/ft-meta-field-list.ts +208 -0
  363. package/src/meta/fields/ft-meta-field.ts +399 -0
  364. package/src/meta/fields/ft-string-meta-field.ts +34 -0
  365. package/src/meta/ft-meta-defaults.ts +151 -0
  366. package/src/meta/ft-meta.ts +453 -0
  367. package/src/meta/sequences/core/ft-meta-sequence-item-list.ts +97 -0
  368. package/src/meta/sequences/core/ft-meta-sequence-item.ts +78 -0
  369. package/src/meta/sequences/core/ft-meta-sequence-list.ts +203 -0
  370. package/src/meta/sequences/core/ft-meta-sequence.ts +127 -0
  371. package/src/meta/sequences/redirects/ft-boolean-meta-sequence-redirect.ts +49 -0
  372. package/src/meta/sequences/redirects/ft-case-insensitive-string-meta-sequence-redirect.ts +49 -0
  373. package/src/meta/sequences/redirects/ft-date-meta-sequence-redirect.ts +54 -0
  374. package/src/meta/sequences/redirects/ft-exact-date-time-meta-sequence-redirect.ts +49 -0
  375. package/src/meta/sequences/redirects/ft-exact-decimal-meta-sequence-redirect.ts +49 -0
  376. package/src/meta/sequences/redirects/ft-exact-float-meta-sequence-redirect.ts +49 -0
  377. package/src/meta/sequences/redirects/ft-exact-integer-meta-sequence-redirect.ts +49 -0
  378. package/src/meta/sequences/redirects/ft-exact-string-meta-sequence-redirect.ts +49 -0
  379. package/src/meta/sequences/redirects/ft-meta-sequence-redirect-list.ts +99 -0
  380. package/src/meta/sequences/redirects/ft-meta-sequence-redirect.ts +89 -0
  381. package/src/meta/sequences/redirects/ft-null-meta-sequence-redirect.ts +25 -0
  382. package/src/meta/substitutions/ft-meta-substitution-list.ts +54 -0
  383. package/src/meta-serialization/format/ft-json-meta-serialization.ts +288 -0
  384. package/src/meta-serialization/format/ft-xml-meta-serialization.ts +885 -0
  385. package/src/meta-serialization/format/meta-serializer-options.ts +21 -0
  386. package/src/meta-serialization/ft-meta-serialization.ts +60 -0
  387. package/src/meta-serialization/styles/ft-boolean-styles-meta-serialization.ts +88 -0
  388. package/src/meta-serialization/styles/ft-date-time-styles-meta-serialization.ts +50 -0
  389. package/src/meta-serialization/styles/ft-number-styles-meta-serialization.ts +212 -0
  390. package/src/meta-serialization/types/boolean-meta-serialization.ts +36 -0
  391. package/src/meta-serialization/types/char-meta-serialization.ts +28 -0
  392. package/src/meta-serialization/types/date-time-meta-serialization.ts +220 -0
  393. package/src/meta-serialization/types/decimal-meta-serialization.ts +13 -0
  394. package/src/meta-serialization/types/enums/data-type-meta-serialisation.ts +52 -0
  395. package/src/meta-serialization/types/enums/end-of-line-auto-write-type-meta-serialization.ts +47 -0
  396. package/src/meta-serialization/types/enums/end-of-line-type-meta-serialization.ts +46 -0
  397. package/src/meta-serialization/types/enums/heading-constraint-meta-serialization.ts +52 -0
  398. package/src/meta-serialization/types/enums/last-line-ended-type-meta-serialization.ts +45 -0
  399. package/src/meta-serialization/types/enums/meta-element-type-meta-serialization.ts +36 -0
  400. package/src/meta-serialization/types/enums/pad-alignment-meta-serialization.ts +54 -0
  401. package/src/meta-serialization/types/enums/pad-char-type-meta-serialization.ts +54 -0
  402. package/src/meta-serialization/types/enums/quoted-type-meta-serialization.ts +54 -0
  403. package/src/meta-serialization/types/enums/sequence-invokation-delay-meta-serialization.ts +44 -0
  404. package/src/meta-serialization/types/enums/sequence-redirect-type-meta-serialisation.ts +86 -0
  405. package/src/meta-serialization/types/enums/substitution-type-meta-serialization.ts +44 -0
  406. package/src/meta-serialization/types/enums/truncate-type-meta-serialization.ts +58 -0
  407. package/src/meta-serialization/types/float-meta-serialization.ts +96 -0
  408. package/src/meta-serialization/types/integer-float-meta-serialization.ts +46 -0
  409. package/src/meta-serialization/types/integer-meta-serialization.ts +44 -0
  410. package/src/meta-serialization/types/string-meta-serialization.ts +32 -0
  411. package/src/meta-serialization/utils/implicit-explicit-index-sorter.ts +61 -0
  412. package/src/meta-serialization/utils/meta-serialization-redirect-sequence-resolver.ts +43 -0
  413. package/src/meta-serialization/utils/meta-serialization-sequence-name-resolver.ts +85 -0
  414. package/src/meta-serialization/utils/sequence-item-field-indices.ts +76 -0
  415. package/src/sequences/core/ft-sequence-invokation-list.ts +109 -0
  416. package/src/sequences/core/ft-sequence-invokation.ts +166 -0
  417. package/src/sequences/core/ft-sequence-item-list.ts +40 -0
  418. package/src/sequences/core/ft-sequence-item.ts +59 -0
  419. package/src/sequences/core/ft-sequence-list.ts +73 -0
  420. package/src/sequences/core/ft-sequence.ts +75 -0
  421. package/src/sequences/redirects/ft-boolean-sequence-redirect.ts +42 -0
  422. package/src/sequences/redirects/ft-case-insensitive-string-sequence-redirect.ts +46 -0
  423. package/src/sequences/redirects/ft-date-sequence-redirect.ts +48 -0
  424. package/src/sequences/redirects/ft-exact-date-time-sequence-redirect.ts +46 -0
  425. package/src/sequences/redirects/ft-exact-decimal-sequence-redirect.ts +46 -0
  426. package/src/sequences/redirects/ft-exact-float-sequence-redirect.ts +46 -0
  427. package/src/sequences/redirects/ft-exact-integer-sequence-redirect.ts +46 -0
  428. package/src/sequences/redirects/ft-exact-string-sequence-redirect.ts +46 -0
  429. package/src/sequences/redirects/ft-null-sequence-redirect.ts +27 -0
  430. package/src/sequences/redirects/ft-sequence-redirect-list.ts +42 -0
  431. package/src/sequences/redirects/ft-sequence-redirect.ts +68 -0
  432. package/src/serialization/char-reader.ts +203 -0
  433. package/src/serialization/declaration-parser.ts +203 -0
  434. package/src/serialization/delimited-field-parser.ts +296 -0
  435. package/src/serialization/embedded-meta-parser.ts +147 -0
  436. package/src/serialization/fixed-width-field-parser.ts +220 -0
  437. package/src/serialization/formatting/ft-boolean-field-formatter.ts +114 -0
  438. package/src/serialization/formatting/ft-date-time-field-formatter.ts +61 -0
  439. package/src/serialization/formatting/ft-decimal-field-formatter.ts +52 -0
  440. package/src/serialization/formatting/ft-declared-parameters-formatter.ts +60 -0
  441. package/src/serialization/formatting/ft-field-formatter.ts +18 -0
  442. package/src/serialization/formatting/ft-float-field-formatter.ts +52 -0
  443. package/src/serialization/formatting/ft-integer-field-formatter.ts +53 -0
  444. package/src/serialization/formatting/ft-string-field-formatter.ts +15 -0
  445. package/src/serialization/formatting/index.ts +7 -0
  446. package/src/serialization/ft-declared-parameters.ts +232 -0
  447. package/src/serialization/ft-serialization-reader.ts +953 -0
  448. package/src/serialization/ft-serialization-writer.ts +760 -0
  449. package/src/serialization/ft-text-reader.ts +64 -0
  450. package/src/serialization/ft-text-writer.ts +61 -0
  451. package/src/serialization/heading-line-record-parser.ts +285 -0
  452. package/src/serialization/line-parser.ts +231 -0
  453. package/src/serialization/serialization-core.ts +632 -0
  454. package/src/substitutions/ft-substitution-list.ts +60 -0
  455. package/src/types/enums/ft-boolean-styles.ts +17 -0
  456. package/src/types/enums/ft-data-type.ts +21 -0
  457. package/src/types/enums/ft-end-of-line-auto-write-type.ts +14 -0
  458. package/src/types/enums/ft-end-of-line-type.ts +13 -0
  459. package/src/types/enums/ft-heading-constraint.ts +15 -0
  460. package/src/types/enums/ft-last-line-ended-type.ts +13 -0
  461. package/src/types/enums/ft-line-type.ts +17 -0
  462. package/src/types/enums/ft-meta-element-type.ts +16 -0
  463. package/src/types/enums/ft-meta-reference-type.ts +14 -0
  464. package/src/types/enums/ft-meta-serialization-format.ts +19 -0
  465. package/src/types/enums/ft-pad-alignment.ts +13 -0
  466. package/src/types/enums/ft-pad-char-type.ts +13 -0
  467. package/src/types/enums/ft-quoted-type.ts +13 -0
  468. package/src/types/enums/ft-read-record-result.ts +13 -0
  469. package/src/types/enums/ft-sequence-invokation-delay.ts +12 -0
  470. package/src/types/enums/ft-sequence-redirect-type.ts +19 -0
  471. package/src/types/enums/ft-substitution-type.ts +16 -0
  472. package/src/types/enums/ft-truncate-type.ts +15 -0
  473. package/src/types/errors/ft-internal-error.ts +15 -0
  474. package/src/types/errors/ft-serialization-error.ts +53 -0
  475. package/src/types/errors/ft-serialization-exception.ts +86 -0
  476. package/src/types/events/ft-field-heading-ready-event-args.ts +9 -0
  477. package/src/types/events/ft-field-value-ready-event-args.ts +9 -0
  478. package/src/types/events/ft-heading-line-finished-event-args.ts +6 -0
  479. package/src/types/events/ft-heading-line-started-event-args.ts +6 -0
  480. package/src/types/events/ft-record-finished-event-args.ts +6 -0
  481. package/src/types/events/ft-record-started-event-args.ts +6 -0
  482. package/src/types/events/ft-sequence-redirected-event-args.ts +9 -0
@@ -0,0 +1,176 @@
1
+ import { Err, Ok } from '@pbkware/js-utils';
2
+ import { FtBooleanSequenceRedirect } from '../sequences/redirects/ft-boolean-sequence-redirect.js';
3
+ import { FtCaseInsensitiveStringSequenceRedirect } from '../sequences/redirects/ft-case-insensitive-string-sequence-redirect.js';
4
+ import { FtDateSequenceRedirect } from '../sequences/redirects/ft-date-sequence-redirect.js';
5
+ import { FtExactDateTimeSequenceRedirect } from '../sequences/redirects/ft-exact-date-time-sequence-redirect.js';
6
+ import { FtExactDecimalSequenceRedirect } from '../sequences/redirects/ft-exact-decimal-sequence-redirect.js';
7
+ import { FtExactFloatSequenceRedirect } from '../sequences/redirects/ft-exact-float-sequence-redirect.js';
8
+ import { FtExactIntegerSequenceRedirect } from '../sequences/redirects/ft-exact-integer-sequence-redirect.js';
9
+ import { FtExactStringSequenceRedirect } from '../sequences/redirects/ft-exact-string-sequence-redirect.js';
10
+ import { FtNullSequenceRedirect } from '../sequences/redirects/ft-null-sequence-redirect.js';
11
+ import { FtSequenceRedirectConstructor } from './ft-sequence-redirect-constructor.js';
12
+ // Concrete constructor implementations
13
+ class NullSequenceRedirectConstructor extends FtSequenceRedirectConstructor {
14
+ createSequenceRedirect(index) {
15
+ return new FtNullSequenceRedirect(index);
16
+ }
17
+ getSequenceRedirectType() {
18
+ return FtNullSequenceRedirect.TYPE;
19
+ }
20
+ }
21
+ class BooleanSequenceRedirectConstructor extends FtSequenceRedirectConstructor {
22
+ createSequenceRedirect(index) {
23
+ return new FtBooleanSequenceRedirect(index);
24
+ }
25
+ getSequenceRedirectType() {
26
+ return FtBooleanSequenceRedirect.TYPE;
27
+ }
28
+ }
29
+ class ExactStringSequenceRedirectConstructor extends FtSequenceRedirectConstructor {
30
+ createSequenceRedirect(index) {
31
+ return new FtExactStringSequenceRedirect(index);
32
+ }
33
+ getSequenceRedirectType() {
34
+ return FtExactStringSequenceRedirect.TYPE;
35
+ }
36
+ }
37
+ class CaseInsensitiveStringSequenceRedirectConstructor extends FtSequenceRedirectConstructor {
38
+ createSequenceRedirect(index) {
39
+ return new FtCaseInsensitiveStringSequenceRedirect(index);
40
+ }
41
+ getSequenceRedirectType() {
42
+ return FtCaseInsensitiveStringSequenceRedirect.TYPE;
43
+ }
44
+ }
45
+ class ExactIntegerSequenceRedirectConstructor extends FtSequenceRedirectConstructor {
46
+ createSequenceRedirect(index) {
47
+ return new FtExactIntegerSequenceRedirect(index);
48
+ }
49
+ getSequenceRedirectType() {
50
+ return FtExactIntegerSequenceRedirect.TYPE;
51
+ }
52
+ }
53
+ class ExactFloatSequenceRedirectConstructor extends FtSequenceRedirectConstructor {
54
+ createSequenceRedirect(index) {
55
+ return new FtExactFloatSequenceRedirect(index);
56
+ }
57
+ getSequenceRedirectType() {
58
+ return FtExactFloatSequenceRedirect.TYPE;
59
+ }
60
+ }
61
+ class ExactDecimalSequenceRedirectConstructor extends FtSequenceRedirectConstructor {
62
+ createSequenceRedirect(index) {
63
+ return new FtExactDecimalSequenceRedirect(index);
64
+ }
65
+ getSequenceRedirectType() {
66
+ return FtExactDecimalSequenceRedirect.TYPE;
67
+ }
68
+ }
69
+ class ExactDateTimeSequenceRedirectConstructor extends FtSequenceRedirectConstructor {
70
+ createSequenceRedirect(index) {
71
+ return new FtExactDateTimeSequenceRedirect(index);
72
+ }
73
+ getSequenceRedirectType() {
74
+ return FtExactDateTimeSequenceRedirect.TYPE;
75
+ }
76
+ }
77
+ class DateSequenceRedirectConstructor extends FtSequenceRedirectConstructor {
78
+ createSequenceRedirect(index) {
79
+ return new FtDateSequenceRedirect(index);
80
+ }
81
+ getSequenceRedirectType() {
82
+ return FtDateSequenceRedirect.TYPE;
83
+ }
84
+ }
85
+ /**
86
+ * Factory for creating sequence redirects.
87
+ * Manages a registry of redirect types and their constructors.
88
+ * @public
89
+ */
90
+ // eslint-disable-next-line @typescript-eslint/no-extraneous-class
91
+ export class FtSequenceRedirectFactory {
92
+ static constructorList = [];
93
+ // Static initializer - register standard constructors
94
+ static initialized = (() => {
95
+ FtSequenceRedirectFactory.constructorList = [];
96
+ FtSequenceRedirectFactory.constructorList.push(new NullSequenceRedirectConstructor());
97
+ FtSequenceRedirectFactory.constructorList.push(new BooleanSequenceRedirectConstructor());
98
+ FtSequenceRedirectFactory.constructorList.push(new CaseInsensitiveStringSequenceRedirectConstructor());
99
+ FtSequenceRedirectFactory.constructorList.push(new DateSequenceRedirectConstructor());
100
+ FtSequenceRedirectFactory.constructorList.push(new ExactDateTimeSequenceRedirectConstructor());
101
+ FtSequenceRedirectFactory.constructorList.push(new ExactDecimalSequenceRedirectConstructor());
102
+ FtSequenceRedirectFactory.constructorList.push(new ExactFloatSequenceRedirectConstructor());
103
+ FtSequenceRedirectFactory.constructorList.push(new ExactIntegerSequenceRedirectConstructor());
104
+ FtSequenceRedirectFactory.constructorList.push(new ExactStringSequenceRedirectConstructor());
105
+ return true;
106
+ })();
107
+ static registerConstructor(constructor) {
108
+ if (FtSequenceRedirectFactory.tryFindConstructorByType(constructor.sequenceRedirectType)) {
109
+ throw new Error(`SequenceRedirect type ${constructor.sequenceRedirectType} is already registered`);
110
+ }
111
+ if (FtSequenceRedirectFactory.tryFindConstructorByName(constructor.sequenceRedirectTypeName)) {
112
+ throw new Error(`SequenceRedirect type name "${constructor.sequenceRedirectTypeName}" is already registered`);
113
+ }
114
+ FtSequenceRedirectFactory.constructorList.push(constructor);
115
+ }
116
+ static getRegisteredConstructors() {
117
+ return [...FtSequenceRedirectFactory.constructorList];
118
+ }
119
+ static unregisterAllConstructors() {
120
+ FtSequenceRedirectFactory.constructorList = [];
121
+ }
122
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
123
+ static unregisterConstructor(constructorOrType) {
124
+ if (typeof constructorOrType === 'number') {
125
+ const idx = FtSequenceRedirectFactory.constructorList.findIndex((c) => c.sequenceRedirectType === constructorOrType);
126
+ if (idx >= 0) {
127
+ FtSequenceRedirectFactory.constructorList.splice(idx, 1);
128
+ }
129
+ }
130
+ else if (typeof constructorOrType === 'string') {
131
+ const lowerName = constructorOrType.toLowerCase();
132
+ const idx = FtSequenceRedirectFactory.constructorList.findIndex((c) => c.sequenceRedirectTypeName.toLowerCase() === lowerName);
133
+ if (idx >= 0) {
134
+ FtSequenceRedirectFactory.constructorList.splice(idx, 1);
135
+ }
136
+ }
137
+ else {
138
+ const idx = FtSequenceRedirectFactory.constructorList.indexOf(constructorOrType);
139
+ if (idx >= 0) {
140
+ FtSequenceRedirectFactory.constructorList.splice(idx, 1);
141
+ }
142
+ }
143
+ }
144
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
145
+ static createSequenceRedirect(index, typeOrName) {
146
+ const constructor = typeof typeOrName === 'number'
147
+ ? FtSequenceRedirectFactory.tryFindConstructorByType(typeOrName)
148
+ : FtSequenceRedirectFactory.tryFindConstructorByName(typeOrName);
149
+ if (!constructor) {
150
+ throw new Error(`No constructor found for sequence redirect type: ${typeOrName}`);
151
+ }
152
+ return constructor.createSequenceRedirect(index);
153
+ }
154
+ static getName(type) {
155
+ const constructor = FtSequenceRedirectFactory.tryFindConstructorByType(type);
156
+ if (!constructor) {
157
+ throw new Error(`No constructor found for type: ${type}`);
158
+ }
159
+ return constructor.sequenceRedirectTypeName;
160
+ }
161
+ static tryGetType(typeName) {
162
+ const constructor = FtSequenceRedirectFactory.tryFindConstructorByName(typeName);
163
+ if (constructor) {
164
+ return new Ok(constructor.sequenceRedirectType);
165
+ }
166
+ return new Err(false);
167
+ }
168
+ static tryFindConstructorByType(type) {
169
+ return FtSequenceRedirectFactory.constructorList.find((c) => c.sequenceRedirectType === type);
170
+ }
171
+ static tryFindConstructorByName(typeName) {
172
+ const lowerName = typeName.toLowerCase();
173
+ return FtSequenceRedirectFactory.constructorList.find((c) => c.sequenceRedirectTypeName.toLowerCase() === lowerName);
174
+ }
175
+ }
176
+ //# sourceMappingURL=ft-sequence-redirect-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ft-sequence-redirect-factory.js","sourceRoot":"","sources":["../../src/factory/ft-sequence-redirect-factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { FtMetaSubstitution } from '../meta/substitutions/ft-meta-substitution-list.js';
2
+ import { FtSubstitution } from '../substitutions/ft-substitution-list.js';
3
+ /**
4
+ * Base constructor class for creating substitution instances.
5
+ * Can be extended to provide custom substitution creation logic.
6
+ * @public
7
+ */
8
+ export class FtSubstitutionConstructor {
9
+ /**
10
+ * Create a new FtSubstitution instance for runtime use.
11
+ * @param index - The index of the substitution in the list
12
+ */
13
+ createSubstitution(index) {
14
+ return new FtSubstitution(index);
15
+ }
16
+ /**
17
+ * Create a new FtMetaSubstitution instance for metadata definition.
18
+ */
19
+ createMetaSubstitution() {
20
+ return new FtMetaSubstitution();
21
+ }
22
+ }
23
+ //# sourceMappingURL=ft-substitution-constructor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ft-substitution-constructor.js","sourceRoot":"","sources":["../../src/factory/ft-substitution-constructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IACpC;;;OAGG;IACH,kBAAkB,CAAC,KAAa;QAC9B,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,OAAO,IAAI,kBAAkB,EAAE,CAAC;IAClC,CAAC;CACF"}
@@ -0,0 +1,37 @@
1
+ import { FtSubstitutionConstructor } from './ft-substitution-constructor.js';
2
+ /**
3
+ * Factory for creating substitution instances.
4
+ * Provides a global constructor that can be replaced to customize substitution creation.
5
+ * @public
6
+ */
7
+ // eslint-disable-next-line @typescript-eslint/no-extraneous-class
8
+ export class FtSubstitutionFactory {
9
+ static _constructor = new FtSubstitutionConstructor();
10
+ /**
11
+ * Get the current substitution constructor.
12
+ */
13
+ static getConstructor() {
14
+ return FtSubstitutionFactory._constructor;
15
+ }
16
+ /**
17
+ * Set a custom substitution constructor.
18
+ * Use this to provide custom initialization logic for all substitution instances.
19
+ */
20
+ static setConstructor(value) {
21
+ FtSubstitutionFactory._constructor = value;
22
+ }
23
+ /**
24
+ * Create a new FtSubstitution instance using the current constructor.
25
+ * @param index - The index of the substitution in the list
26
+ */
27
+ static createSubstitution(index) {
28
+ return FtSubstitutionFactory._constructor.createSubstitution(index);
29
+ }
30
+ /**
31
+ * Create a new FtMetaSubstitution instance using the current constructor.
32
+ */
33
+ static createMetaSubstitution() {
34
+ return FtSubstitutionFactory._constructor.createMetaSubstitution();
35
+ }
36
+ }
37
+ //# sourceMappingURL=ft-substitution-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ft-substitution-factory.js","sourceRoot":"","sources":["../../src/factory/ft-substitution-factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E;;;;GAIG;AACH,kEAAkE;AAClE,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAAC,YAAY,GAA8B,IAAI,yBAAyB,EAAE,CAAC;IAEzF;;OAEG;IACH,MAAM,CAAC,cAAc;QACnB,OAAO,qBAAqB,CAAC,YAAY,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,KAAgC;QACpD,qBAAqB,CAAC,YAAY,GAAG,KAAK,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAa;QACrC,OAAO,qBAAqB,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,sBAAsB;QAC3B,OAAO,qBAAqB,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;IACrE,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { FtBooleanFieldFormatter } from '../../serialization/formatting/ft-boolean-field-formatter.js';
2
+ import { FtDataType } from '../../types/enums/ft-data-type.js';
3
+ import { FtGenericFieldDefinition } from './ft-generic-field-definition.js';
4
+ /**
5
+ * Field definition for boolean fields.
6
+ * @public
7
+ */
8
+ export class FtBooleanFieldDefinition extends FtGenericFieldDefinition {
9
+ static AUTO_LEFT_PAD = false;
10
+ constructor(index) {
11
+ const formatter = new FtBooleanFieldFormatter();
12
+ super(FtDataType.Boolean, 'boolean', formatter, FtBooleanFieldDefinition.AUTO_LEFT_PAD, index);
13
+ }
14
+ get falseText() {
15
+ return this.formatter.falseText;
16
+ }
17
+ get trueText() {
18
+ return this.formatter.trueText;
19
+ }
20
+ get styles() {
21
+ return this.formatter.styles;
22
+ }
23
+ loadMeta(metaField, myCulture, myMainHeadingIndex) {
24
+ super.loadMeta(metaField, myCulture, myMainHeadingIndex);
25
+ this.formatter.falseText = metaField.falseText;
26
+ this.formatter.trueText = metaField.trueText;
27
+ this.formatter.styles = metaField.styles;
28
+ }
29
+ getValueText(value) {
30
+ return this.formatter.toText(value);
31
+ }
32
+ parseValueText(text) {
33
+ return this.formatter.parse(text);
34
+ }
35
+ }
36
+ //# sourceMappingURL=ft-boolean-field-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ft-boolean-field-definition.js","sourceRoot":"","sources":["../../../src/fields/definitions/ft-boolean-field-definition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AAEvG,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E;;;GAGG;AACH,MAAM,OAAO,wBAAyB,SAAQ,wBAAiC;IAC7E,MAAM,CAAU,aAAa,GAAG,KAAK,CAAC;IAItC,YAAY,KAAa;QACvB,MAAM,SAAS,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAChD,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,wBAAwB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAEQ,QAAQ,CAAC,SAA6B,EAAE,SAA2C,EAAE,kBAA0B;QACtH,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAEzD,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAC3C,CAAC;IAED,YAAY,CAAC,KAAc;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { FtDateTimeMetaField } from '../../meta/fields/ft-date-time-meta-field.js';
2
+ import { FtDateTimeFieldFormatter } from '../../serialization/formatting/ft-date-time-field-formatter.js';
3
+ import { FtDataType } from '../../types/enums/ft-data-type.js';
4
+ import { FtGenericFieldDefinition } from './ft-generic-field-definition.js';
5
+ /**
6
+ * Field definition for DateTime fields.
7
+ * @public
8
+ */
9
+ export class FtDateTimeFieldDefinition extends FtGenericFieldDefinition {
10
+ static AUTO_LEFT_PAD = true;
11
+ _constantValue = new Date(FtDateTimeMetaField.DEFAULT_VALUE);
12
+ constructor(index) {
13
+ const formatter = new FtDateTimeFieldFormatter();
14
+ super(FtDataType.DateTime, 'Date', formatter, FtDateTimeFieldDefinition.AUTO_LEFT_PAD, index);
15
+ }
16
+ get format() {
17
+ return this.formatter.format;
18
+ }
19
+ get styles() {
20
+ return this.formatter.styles;
21
+ }
22
+ get constantValue() {
23
+ return this._constantValue;
24
+ }
25
+ loadMeta(metaField, myCulture, myMainHeadingIndex) {
26
+ super.loadMeta(metaField, myCulture, myMainHeadingIndex);
27
+ const dateTimeMetaField = metaField;
28
+ this.formatter.format = dateTimeMetaField.format;
29
+ this.formatter.styles = dateTimeMetaField.styles;
30
+ this._constantValue = dateTimeMetaField.value;
31
+ }
32
+ getValueText(value) {
33
+ return this.formatter.toText(value);
34
+ }
35
+ parseValueText(text) {
36
+ return this.formatter.parse(text);
37
+ }
38
+ }
39
+ //# sourceMappingURL=ft-date-time-field-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ft-date-time-field-definition.js","sourceRoot":"","sources":["../../../src/fields/definitions/ft-date-time-field-definition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E;;;GAGG;AACH,MAAM,OAAO,yBAA0B,SAAQ,wBAA8B;IAC3E,MAAM,CAAU,aAAa,GAAG,IAAI,CAAC;IAI7B,cAAc,GAAS,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAE3E,YAAY,KAAa;QACvB,MAAM,SAAS,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACjD,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAChG,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEQ,QAAQ,CAAC,SAAsB,EAAE,SAA2C,EAAE,kBAA0B;QAC/G,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAEzD,MAAM,iBAAiB,GAAG,SAAgC,CAAC;QAC3D,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;QACjD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC;IAChD,CAAC;IAED,YAAY,CAAC,KAAW;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { FtDecimalFieldFormatter } from '../../serialization/formatting/ft-decimal-field-formatter.js';
2
+ import { FtDataType } from '../../types/enums/ft-data-type.js';
3
+ import { FtGenericFieldDefinition } from './ft-generic-field-definition.js';
4
+ /**
5
+ * Field definition for decimal fields.
6
+ * @public
7
+ */
8
+ export class FtDecimalFieldDefinition extends FtGenericFieldDefinition {
9
+ static AUTO_LEFT_PAD = true;
10
+ constructor(index) {
11
+ const formatter = new FtDecimalFieldFormatter();
12
+ super(FtDataType.Decimal, 'number', formatter, FtDecimalFieldDefinition.AUTO_LEFT_PAD, index);
13
+ }
14
+ get format() {
15
+ return this.formatter.format;
16
+ }
17
+ get styles() {
18
+ return this.formatter.styles;
19
+ }
20
+ loadMeta(metaField, myCulture, myMainHeadingIndex) {
21
+ super.loadMeta(metaField, myCulture, myMainHeadingIndex);
22
+ this.formatter.format = metaField.format;
23
+ this.formatter.styles = metaField.styles;
24
+ }
25
+ getValueText(value) {
26
+ return this.formatter.toText(value);
27
+ }
28
+ parseValueText(text) {
29
+ return this.formatter.parse(text);
30
+ }
31
+ }
32
+ //# sourceMappingURL=ft-decimal-field-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ft-decimal-field-definition.js","sourceRoot":"","sources":["../../../src/fields/definitions/ft-decimal-field-definition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E;;;GAGG;AACH,MAAM,OAAO,wBAAyB,SAAQ,wBAAgC;IAC5E,MAAM,CAAU,aAAa,GAAG,IAAI,CAAC;IAIrC,YAAY,KAAa;QACvB,MAAM,SAAS,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAChD,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,wBAAwB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAChG,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAEQ,QAAQ,CAAC,SAA6B,EAAE,SAA2C,EAAE,kBAA0B;QACtH,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAEzD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAC3C,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { FtFieldFactory } from '../../factory/ft-field-factory.js';
2
+ /**
3
+ * List of field definitions.
4
+ * @public
5
+ */
6
+ export class FtFieldDefinitionList {
7
+ _items = [];
8
+ get count() {
9
+ return this._items.length;
10
+ }
11
+ get(index) {
12
+ return this._items[index];
13
+ }
14
+ add(definition) {
15
+ this._items.push(definition);
16
+ }
17
+ new(dataType) {
18
+ const definition = FtFieldFactory.createFieldDefinition(dataType, this.count);
19
+ this._items.push(definition);
20
+ return definition;
21
+ }
22
+ clear() {
23
+ this._items = [];
24
+ }
25
+ }
26
+ //# sourceMappingURL=ft-field-definition-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ft-field-definition-list.js","sourceRoot":"","sources":["../../../src/fields/definitions/ft-field-definition-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAInE;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACxB,MAAM,GAAwB,EAAE,CAAC;IAEzC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,KAAa;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,UAA6B;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,QAAoB;QACtB,MAAM,UAAU,GAAG,cAAc,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,245 @@
1
+ import { FtMetaDefaults } from '../../meta/ft-meta-defaults.js';
2
+ import { FtHeadingConstraint } from '../../types/enums/ft-heading-constraint.js';
3
+ import { FtPadAlignment } from '../../types/enums/ft-pad-alignment.js';
4
+ import { FtUnreachableCaseError } from '../../types/errors/ft-internal-error.js';
5
+ const InternalError = {
6
+ FtFieldFieldDefinition_LoadMeta_UnsupportedHeadingPadAlignment: 'FtFieldFieldDefinition_LoadMeta_UnsupportedHeadingPadAlignment',
7
+ FtFieldFieldDefinition_LoadMeta_UnsupportedValuePadAlignment: 'FtFieldFieldDefinition_LoadMeta_UnsupportedValuePadAlignment',
8
+ };
9
+ /**
10
+ * Abstract base class for all field definitions.
11
+ * Field definitions hold metadata and configuration for fields in fielded text.
12
+ * @public
13
+ */
14
+ export class FtFieldDefinition {
15
+ dataType;
16
+ valueType; // TypeScript doesn't have Type like C#, so we use string description
17
+ autoLeftPad;
18
+ formatter;
19
+ _index;
20
+ _id = undefined;
21
+ _metaName = FtMetaDefaults.Field.Name;
22
+ _metaHeadings = [];
23
+ _mainHeadingIndex = FtMetaDefaults.Root.MainHeadingLineIndex;
24
+ _culture = undefined;
25
+ _fixedWidth = FtMetaDefaults.Field.FixedWidth;
26
+ _width = FtMetaDefaults.Field.Width;
27
+ _constant = FtMetaDefaults.Field.Constant;
28
+ _null = FtMetaDefaults.Field.Null;
29
+ // Value formatting properties
30
+ _valueQuotedType = FtMetaDefaults.Field.ValueQuotedType;
31
+ _valueAlwaysWriteOptionalQuote = FtMetaDefaults.Field.ValueAlwaysWriteOptionalQuote;
32
+ _valueWritePrefixSpace = FtMetaDefaults.Field.ValueWritePrefixSpace;
33
+ _valuePadAlignment = FtMetaDefaults.Field.ValuePadAlignment;
34
+ _valuePadCharType = FtMetaDefaults.Field.ValuePadCharType;
35
+ _valuePadChar = FtMetaDefaults.Field.ValuePadChar;
36
+ _valueTruncateType = FtMetaDefaults.Field.ValueTruncateType;
37
+ _valueTruncateChar = FtMetaDefaults.Field.ValueTruncateChar;
38
+ _valueEndOfValueChar = FtMetaDefaults.Field.ValueEndOfValueChar;
39
+ _valueNullChar = FtMetaDefaults.Field.ValueNullChar;
40
+ // Heading formatting properties
41
+ _headingConstraint = FtMetaDefaults.Field.RootOverriding.HeadingConstraint; // Note that field cannot override heading constraint
42
+ _headingQuotedType = FtMetaDefaults.Field.RootOverriding.HeadingQuotedType;
43
+ _headingAlwaysWriteOptionalQuote = FtMetaDefaults.Field.RootOverriding.HeadingAlwaysWriteOptionalQuote;
44
+ _headingWritePrefixSpace = FtMetaDefaults.Field.RootOverriding.HeadingWritePrefixSpace;
45
+ _headingPadAlignment = FtMetaDefaults.Field.RootOverriding.HeadingPadAlignment;
46
+ _headingPadCharType = FtMetaDefaults.Field.RootOverriding.HeadingPadCharType;
47
+ _headingPadChar = FtMetaDefaults.Field.RootOverriding.HeadingPadChar;
48
+ _headingTruncateType = FtMetaDefaults.Field.RootOverriding.HeadingTruncateType;
49
+ _headingTruncateChar = FtMetaDefaults.Field.RootOverriding.HeadingTruncateChar;
50
+ _headingEndOfValueChar = FtMetaDefaults.Field.RootOverriding.HeadingEndOfValueChar;
51
+ _autoPadChar = ' ';
52
+ _headingLeftPad = false;
53
+ _valueLeftPad = false;
54
+ _fixedWidthNullValueText = '';
55
+ constructor(dataType, valueType, formatter, autoLeftPad, index) {
56
+ this.dataType = dataType;
57
+ this.valueType = valueType;
58
+ this.formatter = formatter;
59
+ this.autoLeftPad = autoLeftPad;
60
+ this._index = index;
61
+ }
62
+ // Public properties
63
+ get index() {
64
+ return this._index;
65
+ }
66
+ get id() {
67
+ return this._id;
68
+ }
69
+ get metaName() {
70
+ return this._metaName;
71
+ }
72
+ get metaHeadings() {
73
+ return this._metaHeadings;
74
+ }
75
+ get metaHeadingCount() {
76
+ return this._metaHeadings.length;
77
+ }
78
+ get mainHeadingIndex() {
79
+ return this._mainHeadingIndex;
80
+ }
81
+ get culture() {
82
+ return this._culture;
83
+ }
84
+ get fixedWidth() {
85
+ return this._fixedWidth;
86
+ }
87
+ get width() {
88
+ return this._width;
89
+ }
90
+ get constant() {
91
+ return this._constant;
92
+ }
93
+ get null() {
94
+ return this._null;
95
+ }
96
+ get valueQuotedType() {
97
+ return this._valueQuotedType;
98
+ }
99
+ get valueAlwaysWriteOptionalQuote() {
100
+ return this._valueAlwaysWriteOptionalQuote;
101
+ }
102
+ get valueWritePrefixSpace() {
103
+ return this._valueWritePrefixSpace;
104
+ }
105
+ get valuePadAlignment() {
106
+ return this._valuePadAlignment;
107
+ }
108
+ get valuePadCharType() {
109
+ return this._valuePadCharType;
110
+ }
111
+ get valuePadChar() {
112
+ return this._valuePadChar;
113
+ }
114
+ get valueTruncateType() {
115
+ return this._valueTruncateType;
116
+ }
117
+ get valueTruncateChar() {
118
+ return this._valueTruncateChar;
119
+ }
120
+ get valueEndOfValueChar() {
121
+ return this._valueEndOfValueChar;
122
+ }
123
+ get valueNullChar() {
124
+ return this._valueNullChar;
125
+ }
126
+ get headingConstraint() {
127
+ return this._headingConstraint;
128
+ }
129
+ get headingQuotedType() {
130
+ return this._headingQuotedType;
131
+ }
132
+ get headingAlwaysWriteOptionalQuote() {
133
+ return this._headingAlwaysWriteOptionalQuote;
134
+ }
135
+ get headingWritePrefixSpace() {
136
+ return this._headingWritePrefixSpace;
137
+ }
138
+ get headingPadAlignment() {
139
+ return this._headingPadAlignment;
140
+ }
141
+ get headingPadCharType() {
142
+ return this._headingPadCharType;
143
+ }
144
+ get headingPadChar() {
145
+ return this._headingPadChar;
146
+ }
147
+ get headingTruncateType() {
148
+ return this._headingTruncateType;
149
+ }
150
+ get headingTruncateChar() {
151
+ return this._headingTruncateChar;
152
+ }
153
+ get headingEndOfValueChar() {
154
+ return this._headingEndOfValueChar;
155
+ }
156
+ get autoPadChar() {
157
+ return this._autoPadChar;
158
+ }
159
+ get headingLeftPad() {
160
+ return this._headingLeftPad;
161
+ }
162
+ get valueLeftPad() {
163
+ return this._valueLeftPad;
164
+ }
165
+ get fixedWidthNullValueText() {
166
+ return this._fixedWidthNullValueText;
167
+ }
168
+ /**
169
+ * Load metadata from a meta field.
170
+ * @param metaField - The meta field containing configuration
171
+ * @param myCulture - The culture settings for formatting
172
+ * @param myMainHeadingIndex - Index of the main heading
173
+ */
174
+ loadMeta(metaField, myCulture, myMainHeadingIndex) {
175
+ this._id = metaField.id;
176
+ this._metaName = metaField.name;
177
+ this._metaHeadings = [...metaField.headings];
178
+ this._mainHeadingIndex = myMainHeadingIndex;
179
+ this._culture = myCulture;
180
+ this._fixedWidth = metaField.fixedWidth;
181
+ this._width = metaField.width;
182
+ this._constant = metaField.constant;
183
+ this._null = metaField.null;
184
+ this._valueQuotedType = metaField.valueQuotedType;
185
+ this._valueAlwaysWriteOptionalQuote = metaField.valueAlwaysWriteOptionalQuote;
186
+ this._valueWritePrefixSpace = metaField.valueWritePrefixSpace;
187
+ this._valuePadAlignment = metaField.valuePadAlignment;
188
+ this._valuePadCharType = metaField.valuePadCharType;
189
+ this._valuePadChar = metaField.valuePadChar;
190
+ this._valueTruncateType = metaField.valueTruncateType;
191
+ this._valueTruncateChar = metaField.valueTruncateChar;
192
+ this._valueEndOfValueChar = metaField.valueEndOfValueChar;
193
+ this._valueNullChar = metaField.valueNullChar;
194
+ this._headingConstraint = metaField.headingConstraint;
195
+ this._headingQuotedType = metaField.headingQuotedType;
196
+ this._headingAlwaysWriteOptionalQuote = metaField.headingAlwaysWriteOptionalQuote;
197
+ this._headingWritePrefixSpace = metaField.headingWritePrefixSpace;
198
+ this._headingPadAlignment = metaField.headingPadAlignment;
199
+ this._headingPadCharType = metaField.headingPadCharType;
200
+ this._headingPadChar = metaField.headingPadChar;
201
+ this._headingTruncateType = metaField.headingTruncateType;
202
+ this._headingTruncateChar = metaField.headingTruncateChar;
203
+ this._headingEndOfValueChar = metaField.headingEndOfValueChar;
204
+ this.formatter.culture = this._culture;
205
+ // Set meta name in headings if required
206
+ if ((this._headingConstraint === FtHeadingConstraint.NameIsMain || this._headingConstraint === FtHeadingConstraint.NameConstant) &&
207
+ myMainHeadingIndex >= 0 &&
208
+ myMainHeadingIndex < this.metaHeadingCount) {
209
+ this._metaHeadings[myMainHeadingIndex] = this._metaName;
210
+ }
211
+ // Calculate heading left pad
212
+ switch (this._headingPadAlignment) {
213
+ case FtPadAlignment.Left:
214
+ this._headingLeftPad = true;
215
+ break;
216
+ case FtPadAlignment.Right:
217
+ this._headingLeftPad = false;
218
+ break;
219
+ case FtPadAlignment.Auto:
220
+ this._headingLeftPad = this.autoLeftPad;
221
+ break;
222
+ default:
223
+ throw new FtUnreachableCaseError('FDLM30915', this._headingPadAlignment);
224
+ }
225
+ // Calculate value left pad
226
+ switch (this._valuePadAlignment) {
227
+ case FtPadAlignment.Left:
228
+ this._valueLeftPad = true;
229
+ break;
230
+ case FtPadAlignment.Right:
231
+ this._valueLeftPad = false;
232
+ break;
233
+ case FtPadAlignment.Auto:
234
+ this._valueLeftPad = this.autoLeftPad;
235
+ break;
236
+ default:
237
+ throw new FtUnreachableCaseError('FDLM30911', this._valuePadAlignment);
238
+ }
239
+ // Build fixed width null value text
240
+ if (this._fixedWidth) {
241
+ this._fixedWidthNullValueText = this._valueNullChar.repeat(this._width);
242
+ }
243
+ }
244
+ }
245
+ //# sourceMappingURL=ft-field-definition.js.map