metanorma-document 0.2.12 → 0.4.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 (194) hide show
  1. checksums.yaml +4 -4
  2. data/CLAUDE.md +3 -2
  3. data/README.adoc +1 -1
  4. data/Rakefile +30 -5
  5. data/frontend/dist/app.css +1 -0
  6. data/frontend/dist/app.iife.js +24 -0
  7. data/frontend/package-lock.json +7 -505
  8. data/frontend/tailwind.config.js +5 -0
  9. data/lib/metanorma/csa_document/root.rb +27 -0
  10. data/lib/metanorma/csa_document.rb +9 -0
  11. data/lib/metanorma/document/cli.rb +52 -0
  12. data/lib/metanorma/document/components/ancillary_blocks/sourcecode_body.rb +14 -0
  13. data/lib/metanorma/document/components/inline/comma_element.rb +3 -0
  14. data/lib/metanorma/document/components/inline/enum_comma_element.rb +3 -0
  15. data/lib/metanorma/document/components/inline/eref_element.rb +4 -1
  16. data/lib/metanorma/document/components/inline/fmt_termsource_element.rb +4 -2
  17. data/lib/metanorma/document/components/inline/math_element.rb +13 -7
  18. data/lib/metanorma/document/components/inline/semx_element.rb +7 -8
  19. data/lib/metanorma/document/components/inline/vocabulary.rb +4 -0
  20. data/lib/metanorma/document/components/multi_paragraph/admonition_block.rb +6 -1
  21. data/lib/metanorma/document/components/paragraphs/paragraph_block.rb +3 -0
  22. data/lib/metanorma/document/components/reference_elements/callout.rb +3 -2
  23. data/lib/metanorma/document/components/tables/table_cell.rb +3 -0
  24. data/lib/metanorma/document/elements/input.rb +44 -0
  25. data/lib/metanorma/document/elements.rb +1 -0
  26. data/lib/metanorma/document/relaton/address.rb +5 -0
  27. data/lib/metanorma/document/relaton/affiliation.rb +3 -0
  28. data/lib/metanorma/document/relaton/bib_item_size.rb +8 -9
  29. data/lib/metanorma/document/relaton/bib_item_type.rb +3 -0
  30. data/lib/metanorma/document/relaton/bibliographic_date.rb +5 -0
  31. data/lib/metanorma/document/relaton/contact_method.rb +5 -0
  32. data/lib/metanorma/document/relaton/contribution_info.rb +6 -2
  33. data/lib/metanorma/document/relaton/contributor.rb +4 -0
  34. data/lib/metanorma/document/relaton/contributor_role.rb +3 -0
  35. data/lib/metanorma/document/relaton/copyright_association.rb +3 -0
  36. data/lib/metanorma/document/relaton/copyright_owner.rb +3 -0
  37. data/lib/metanorma/document/relaton/date_time.rb +3 -0
  38. data/lib/metanorma/document/relaton/document_identifier.rb +4 -0
  39. data/lib/metanorma/document/relaton/document_relation.rb +8 -0
  40. data/lib/metanorma/document/relaton/document_status.rb +4 -0
  41. data/lib/metanorma/document/relaton/formatted_address.rb +4 -0
  42. data/lib/metanorma/document/relaton/full_name.rb +14 -3
  43. data/lib/metanorma/document/relaton/keyword_type.rb +3 -0
  44. data/lib/metanorma/document/relaton/locality_stack.rb +6 -9
  45. data/lib/metanorma/document/relaton/localized_name.rb +8 -5
  46. data/lib/metanorma/document/relaton/logo_element.rb +5 -0
  47. data/lib/metanorma/document/relaton/medium_type.rb +5 -16
  48. data/lib/metanorma/document/relaton/org_identifier.rb +2 -0
  49. data/lib/metanorma/document/relaton/org_subdivision.rb +2 -0
  50. data/lib/metanorma/document/relaton/org_subdivision_identifier.rb +2 -0
  51. data/lib/metanorma/document/relaton/organization.rb +3 -0
  52. data/lib/metanorma/document/relaton/person.rb +7 -1
  53. data/lib/metanorma/document/relaton/person_identifier.rb +3 -0
  54. data/lib/metanorma/document/relaton/place_type.rb +5 -0
  55. data/lib/metanorma/document/relaton/region_element.rb +3 -9
  56. data/lib/metanorma/document/relaton/relaton_collection.rb +2 -0
  57. data/lib/metanorma/document/relaton/series_type.rb +7 -0
  58. data/lib/metanorma/document/relaton/typed_note.rb +4 -0
  59. data/lib/metanorma/document/relaton/typed_title_string.rb +4 -0
  60. data/lib/metanorma/document/relaton/typed_uri.rb +3 -8
  61. data/lib/metanorma/document/relaton/validity_type.rb +8 -10
  62. data/lib/metanorma/document/relaton/variant_full_name.rb +3 -0
  63. data/lib/metanorma/document/relaton/variant_org_name.rb +3 -0
  64. data/lib/metanorma/document/relaton/version_info.rb +5 -0
  65. data/lib/metanorma/document/relaton/vocab_id_type.rb +6 -12
  66. data/lib/metanorma/document/relaton.rb +0 -14
  67. data/lib/metanorma/document/version.rb +1 -1
  68. data/lib/metanorma/document.rb +1 -0
  69. data/lib/metanorma/html/base_renderer.rb +133 -307
  70. data/lib/metanorma/html/component/base.rb +2 -9
  71. data/lib/metanorma/html/concerns/metadata_extraction.rb +61 -0
  72. data/lib/metanorma/html/concerns/presentation_validation.rb +61 -0
  73. data/lib/metanorma/html/concerns/svg_processing.rb +32 -0
  74. data/lib/metanorma/html/concerns/text_extraction.rb +93 -0
  75. data/lib/metanorma/html/concerns/toc_registry.rb +47 -0
  76. data/lib/metanorma/html/csa_renderer.rb +9 -0
  77. data/lib/metanorma/html/drops/figure_drop.rb +33 -10
  78. data/lib/metanorma/html/drops/sourcecode_drop.rb +3 -6
  79. data/lib/metanorma/html/flavor.rb +50 -0
  80. data/lib/metanorma/html/flavor_registry.rb +49 -0
  81. data/lib/metanorma/html/generator.rb +113 -29
  82. data/lib/metanorma/html/iso_renderer.rb +0 -142
  83. data/lib/metanorma/html/renderer_delegation.rb +21 -0
  84. data/lib/metanorma/html/renderers/block_renderer.rb +10 -0
  85. data/lib/metanorma/html/renderers/element_order_traversal.rb +48 -0
  86. data/lib/metanorma/html/renderers/inline_renderer.rb +49 -124
  87. data/lib/metanorma/html/renderers/pubid_renderer.rb +4 -26
  88. data/lib/metanorma/html/renderers.rb +2 -0
  89. data/lib/metanorma/html/standard_renderer.rb +198 -36
  90. data/lib/metanorma/html.rb +4 -51
  91. data/lib/metanorma/iso_document/sections/iso_preface.rb +27 -13
  92. data/lib/metanorma/mirror/default_registry.rb +21 -0
  93. data/lib/metanorma/mirror/handlers/inline/catalog.rb +52 -0
  94. data/lib/metanorma/mirror/handlers/inline/rich_html_renderer.rb +34 -35
  95. data/lib/metanorma/mirror/handlers/inline.rb +1 -0
  96. data/lib/metanorma/mirror/handlers/sourcecode.rb +1 -1
  97. data/lib/metanorma/mirror/model/guide.rb +3 -2
  98. data/lib/metanorma/mirror/output/formats/inline_format.rb +64 -3
  99. data/lib/metanorma/mirror/output/pipeline.rb +1 -0
  100. data/lib/metanorma/mirror/output.rb +0 -2
  101. data/lib/metanorma/mirror/rewriter.rb +3 -1
  102. data/lib/metanorma/mirror/transformer.rb +91 -3
  103. data/lib/metanorma/mirror.rb +0 -1
  104. data/lib/metanorma/registers/setup.rb +10 -0
  105. data/lib/metanorma/standard_document/annotation_container.rb +2 -0
  106. data/lib/metanorma/standard_document/elements/input.rb +4 -25
  107. data/lib/metanorma/standard_document/metadata/metanorma_extension.rb +12 -2
  108. data/lib/metanorma/standard_document/metadata/presentation_metadata.rb +107 -0
  109. data/lib/metanorma/standard_document/metadata/semantic_metadata.rb +18 -0
  110. data/lib/metanorma/standard_document/metadata/unitsml/amount_of_substance.rb +19 -0
  111. data/lib/metanorma/standard_document/metadata/unitsml/base_quantity.rb +34 -0
  112. data/lib/metanorma/standard_document/metadata/unitsml/dimension.rb +39 -0
  113. data/lib/metanorma/standard_document/metadata/unitsml/dimension_set.rb +19 -0
  114. data/lib/metanorma/standard_document/metadata/unitsml/electric_current.rb +19 -0
  115. data/lib/metanorma/standard_document/metadata/unitsml/enumerated_root_unit.rb +23 -0
  116. data/lib/metanorma/standard_document/metadata/unitsml/length.rb +19 -0
  117. data/lib/metanorma/standard_document/metadata/unitsml/luminous_intensity.rb +19 -0
  118. data/lib/metanorma/standard_document/metadata/unitsml/mass.rb +19 -0
  119. data/lib/metanorma/standard_document/metadata/unitsml/namespace.rb +17 -0
  120. data/lib/metanorma/standard_document/metadata/unitsml/plane_angle.rb +19 -0
  121. data/lib/metanorma/standard_document/metadata/unitsml/prefix.rb +30 -0
  122. data/lib/metanorma/standard_document/metadata/unitsml/prefix_name.rb +21 -0
  123. data/lib/metanorma/standard_document/metadata/unitsml/prefix_set.rb +19 -0
  124. data/lib/metanorma/standard_document/metadata/unitsml/prefix_symbol.rb +21 -0
  125. data/lib/metanorma/standard_document/metadata/unitsml/quantity.rb +28 -0
  126. data/lib/metanorma/standard_document/metadata/unitsml/quantity_name.rb +21 -0
  127. data/lib/metanorma/standard_document/metadata/unitsml/quantity_set.rb +19 -0
  128. data/lib/metanorma/standard_document/metadata/unitsml/root_units.rb +19 -0
  129. data/lib/metanorma/standard_document/metadata/unitsml/thermodynamic_temperature.rb +19 -0
  130. data/lib/metanorma/standard_document/metadata/unitsml/time.rb +19 -0
  131. data/lib/metanorma/standard_document/metadata/unitsml/unit.rb +32 -0
  132. data/lib/metanorma/standard_document/metadata/unitsml/unit_name.rb +21 -0
  133. data/lib/metanorma/standard_document/metadata/unitsml/unit_set.rb +19 -0
  134. data/lib/metanorma/standard_document/metadata/unitsml/unit_symbol.rb +36 -0
  135. data/lib/metanorma/standard_document/metadata/unitsml/unit_system.rb +23 -0
  136. data/lib/metanorma/standard_document/metadata/unitsml/unitsml_root.rb +28 -0
  137. data/lib/metanorma/standard_document/metadata/unitsml.rb +39 -0
  138. data/lib/metanorma/standard_document/metadata.rb +4 -0
  139. data/lib/metanorma/standard_document/sections/misc_container.rb +8 -6
  140. data/lib/metanorma/standard_document/sections/sections.rb +7 -0
  141. data/lib/metanorma/un_document/blocks/un_admonition_block.rb +86 -0
  142. data/lib/metanorma/un_document/blocks.rb +9 -0
  143. data/lib/metanorma/un_document/root.rb +8 -0
  144. data/lib/metanorma/un_document/sections/un_abstract_section.rb +48 -0
  145. data/lib/metanorma/un_document/sections/un_preface.rb +19 -2
  146. data/lib/metanorma/un_document/sections.rb +1 -0
  147. data/lib/metanorma/un_document/un_text_element.rb +116 -0
  148. data/lib/metanorma/un_document.rb +2 -0
  149. data/script/benchmark_render.rb +35 -0
  150. data/tasks/roundtrip_samples.rake +1 -1
  151. metadata +78 -50
  152. data/.rubocop_todo.yml +0 -327
  153. data/TODO.finalize/01-split-multi-class-files.md +0 -8
  154. data/TODO.finalize/02-remove-data-dist-iso-document-frontend.md +0 -6
  155. data/TODO.finalize/03-align-frontend-iife-and-gha-build.md +0 -11
  156. data/TODO.finalize/04-theme-per-flavor-config-driven.md +0 -9
  157. data/TODO.finalize/05-migrate-all-html-to-liquid.md +0 -16
  158. data/TODO.finalize/06-integrate-pubid-library.md +0 -16
  159. data/TODO.finalize/07-replace-relaton-models-with-relaton-bib.md +0 -39
  160. data/TODO.finalize/08-refactor-renderer-architecture.md +0 -25
  161. data/TODO.finalize/09-eliminate-code-smells.md +0 -14
  162. data/TODO.finalize/10-comprehensive-spec-coverage.md +0 -24
  163. data/TODO.finalize/11-config-driven-flavor-metadata.md +0 -20
  164. data/TODO.finalize/12-add-frozen-string-literal.md +0 -6
  165. data/TODO.finalize/13-extract-composition-from-god-class.md +0 -96
  166. data/TODO.finalize/14-config-driven-section-ordering.md +0 -31
  167. data/TODO.finalize/15-theme-directories-per-flavor.md +0 -46
  168. data/TODO.finalize/16-theme-lutaml-model-schema.md +0 -44
  169. data/docs/html-renderer.adoc +0 -261
  170. data/lib/data/dist/iso_document/frontend/assets/index-mwzbzmnK.js +0 -22
  171. data/lib/data/dist/iso_document/frontend/assets/index-pGvKTNid.css +0 -1
  172. data/lib/data/dist/iso_document/frontend/assets/iso-red.svg +0 -53
  173. data/lib/data/dist/iso_document/frontend/index.html +0 -13
  174. data/lib/metanorma/document/relaton/bib_item_size_type.rb +0 -21
  175. data/lib/metanorma/document/relaton/bibliographic_date_type.rb +0 -22
  176. data/lib/metanorma/document/relaton/document_relation_type.rb +0 -31
  177. data/lib/metanorma/document/relaton/iso4217_code.rb +0 -17
  178. data/lib/metanorma/document/relaton/iso8601_date.rb +0 -17
  179. data/lib/metanorma/document/relaton/personal_identifier_type.rb +0 -21
  180. data/lib/metanorma/document/relaton/region_type.rb +0 -20
  181. data/lib/metanorma/document/relaton/series_type_type.rb +0 -21
  182. data/lib/metanorma/document/relaton/specific_locality_type.rb +0 -25
  183. data/lib/metanorma/document/relaton/title_type.rb +0 -21
  184. data/lib/metanorma/mirror/metanorma_to_mirror.rb +0 -101
  185. data/lib/metanorma/mirror/output/html_renderer.rb +0 -95
  186. data/lib/metanorma/mirror/output/html_renderers/block_renderers.rb +0 -178
  187. data/lib/metanorma/mirror/output/html_renderers/inline_renderer.rb +0 -61
  188. data/lib/metanorma/mirror/output/html_renderers/list_renderers.rb +0 -96
  189. data/lib/metanorma/mirror/output/html_renderers/mark_renderers.rb +0 -64
  190. data/lib/metanorma/mirror/output/html_renderers/section_renderers.rb +0 -129
  191. data/lib/metanorma/mirror/output/html_renderers/structural_renderers.rb +0 -80
  192. data/lib/metanorma/mirror/output/html_renderers/table_renderers.rb +0 -87
  193. data/lib/metanorma/mirror/output/html_renderers.rb +0 -76
  194. data/lib/metanorma/standard_document/annotation.rb +0 -37
@@ -1,31 +0,0 @@
1
- # 14 — Config-driven preface and clause ordering — DONE
2
-
3
- ## What was done
4
-
5
- ### Theme config attributes added:
6
- - `preface_order` — array of section names, controls rendering order (default: `foreword introduction abstract clause acknowledgements executivesummary`)
7
- - `preface_wrap` — boolean, wraps preface content in a container div with heading (default: `false`)
8
- - `clause_order` — array of section names for clause ordering (default: `sections annex bibliography indexsect`)
9
- - `toc_filter_types` — array of clause types to exclude from preface rendering (default: `[]`)
10
-
11
- ### All 13 theme YAML files updated:
12
- - ISO, IEC, IEEE, IETF, ITU, IHO, CC, BIPM, OIML, PDFA, Ribose, ICC: default ordering
13
- - OGC: `preface_order: [clause]`, `preface_wrap: true`, `toc_filter_types: [toc]`
14
-
15
- ### Code changes:
16
- - `Theme` — added `preface_order`, `preface_wrap`, `clause_order`, `toc_filter_types` to VALID_KEYS, attr_accessor, and defaults
17
- - `SectionRenderer` — config-driven `render_preface` reads from theme, delegates to `render_ordered_preface` or `render_wrapped_preface` based on `preface_wrap`
18
- - `BaseRenderer` — added `render_preface` delegation to section_renderer
19
- - `IsoRenderer` — deleted hardcoded `render_preface` method (config-driven version replaces it)
20
- - `OgcRenderer` — deleted hardcoded `render_preface` override (now empty shell, all behavior from YAML)
21
- - Template `_ogc_preface.html.liquid` renamed to `_wrapped_preface.html.liquid` (generic name)
22
-
23
- ### Specs added:
24
- - `config_preface_spec.rb` — 8 specs covering ordered mode, wrapped mode, clause filtering, and delegation
25
- - `theme_spec.rb` — 4 specs for section ordering defaults and OGC overrides
26
-
27
- ### Key principle enforced:
28
- No flavor-specific knowledge (no "ogc", no hardcoded ordering) in generic renderer code. All behavior comes from theme YAML config.
29
-
30
- ## Code quality requirements
31
- Ensure code cleanliness and OOP and MECE and fully model-driven, semantically-driven and open/closed principle, DRY, performance. ultrathink. Always think about what can we improve here in architecture and code? Make sure we have good specs throughout. Never use private send methods (breaks encapsulation), instance_variable_set/get, and never use respond_to? (poor typing).
@@ -1,46 +0,0 @@
1
- # 15 — Theme directories per flavor with data-centric config — DONE
2
-
3
- ## What was done
4
-
5
- ### Theme class changes:
6
- - Added `theme_dir` attribute (set when loaded from directory, nil for flat file themes)
7
- - `Theme.load(flavor)` now checks for directory format first (`data/themes/{flavor}/theme.yaml`), falls back to flat file (`data/themes/{flavor}.yaml`)
8
- - Extracted `from_file`, `from_directory`, `apply_overrides` class methods for clean separation
9
- - Added `theme_templates_dir` — returns `{theme_dir}/templates/` if it exists
10
- - Added `theme_assets_dir` — returns `{theme_dir}/assets/` if it exists
11
- - Added `theme_css_path` — returns `{theme_dir}/custom.css` if it exists
12
- - Added `resolve_template(template_name)` — checks flavor templates dir first, falls back to shared templates
13
- - Added `resolve_asset(filename)` — checks flavor assets dir, returns nil if not found
14
-
15
- ### BaseRenderer changes:
16
- - `render_liquid` uses `theme.resolve_template(template_name)` instead of hardcoded `File.join(TEMPLATES_ROOT, ...)`
17
- - `load_logo_svg` checks `theme.resolve_asset(filename)` before shared `LOGO_DIR`
18
- - `build_styles` appends `theme.theme_css_path` content if present
19
-
20
- ### Directory-based theme structure (opt-in):
21
- ```
22
- data/themes/
23
- iso.yaml # flat file — still works as before
24
- ogc.yaml # flat file — still works as before
25
- {flavor}/ # directory format — new support
26
- theme.yaml # palette, fonts, layout, ordering, publisher metadata
27
- custom.css # per-flavor CSS overrides (optional)
28
- templates/ # per-flavor Liquid template overrides (optional)
29
- _cover.html.liquid
30
- assets/ # per-flavor assets: logos, images (optional)
31
- {flavor}-logo.svg
32
- ```
33
-
34
- ### Backward compatibility:
35
- - All 13 existing flat YAML theme files continue to work unchanged
36
- - `theme_dir` is nil for flat-file themes, so resolution always falls through to shared paths
37
- - No migration needed — directory format is opt-in
38
-
39
- ### Specs added:
40
- - 12 new specs in `theme_spec.rb` covering directory loading, template/asset/CSS resolution, backward compat
41
-
42
- ### Future consideration:
43
- When theme config moves to per-flavor gems, `Theme.load` can be extended to search gem data directories. The API (`theme.resolve_template`, `theme.resolve_asset`, etc.) stays the same — only the path resolution changes.
44
-
45
- ## Code quality requirements
46
- Ensure code cleanliness and OOP and MECE and fully model-driven, semantically-driven and open/closed principle, DRY, performance. ultrathink. Always think about what can we improve here in architecture and code? Make sure we have good specs throughout. Never use private send methods (breaks encapsulation), instance_variable_set/get, and never use respond_to? (poor typing).
@@ -1,44 +0,0 @@
1
- # 16 — Theme as lutaml-model with YAML schema — DONE
2
-
3
- ## What was done
4
-
5
- Converted `Theme` from a plain Ruby class with `attr_accessor` + `VALID_KEYS` + manual YAML parsing to a proper `Lutaml::Model::Serializable` with typed attributes.
6
-
7
- ### Schema definition
8
- - 65 typed attributes declared with lutaml-model `attribute` DSL
9
- - Types: `:string` (colors, fonts, CSS), `:boolean` (preface_wrap), `:hash` (logos)
10
- - Collection arrays: `:string, collection: true` (publishers, preface_order, clause_order, toc_filter_types)
11
- - All defaults declared via `default: -> { ... }` procs
12
- - Nil-by-default attributes (accent_deep, warm, dark_note_bg, etc.) have no default
13
-
14
- ### What was eliminated
15
- - `VALID_KEYS` constant — no longer needed, attribute declarations ARE the schema
16
- - `SETTERS` constant — lutaml-model handles key→setter mapping
17
- - Manual `initialize` with 60+ instance variable assignments — lutaml-model handles initialization
18
- - `apply_overrides` method — `from_yaml` handles deserialization
19
- - `require "yaml"` + `YAML.safe_load_file` — `File.read(path)` + `from_yaml` replaces it
20
-
21
- ### What was preserved
22
- - `theme_dir` as regular `attr_accessor` (not a YAML attribute, set programmatically)
23
- - `THEMES_DIR`, `TEMPLATES_ROOT` constants
24
- - All behavior methods: `to_css_root`, `to_css_extras`, `resolve_template`, `resolve_asset`, etc.
25
- - `load(flavor)`, `from_file`, `from_directory` class methods
26
- - Full backward compatibility — all 111 theme specs pass unchanged
27
-
28
- ### Schema introspection
29
- ```ruby
30
- Metanorma::Html::Theme.attributes.size # => 65
31
- Metanorma::Html::Theme.attributes[:preface_wrap].type # => Lutaml::Model::Type::Boolean
32
- Metanorma::Html::Theme.attributes[:publishers].collection? # => true
33
- Metanorma::Html::Theme.attributes[:logos].type # => Lutaml::Model::Type::Hash
34
- ```
35
-
36
- ### Why this matters
37
- - **Flavor authors** get schema-level documentation — every valid key, its type, and default value is declared in one place
38
- - **Type safety** — wrong types in YAML are caught at load time by lutaml-model
39
- - **No silent ignores** — with the old `VALID_KEYS` + `SETTERS` pattern, unknown keys were silently skipped. Now lutaml-model handles key mapping
40
- - **Round-tripping** — themes can be loaded, modified, and serialized back to YAML via `to_yaml`
41
- - **Future-proof** — when theme configs move to per-flavor gems, the model stays the same; only the load path changes
42
-
43
- ## Code quality requirements
44
- Ensure code cleanliness and OOP and MECE and fully model-driven, semantically-driven and open/closed principle, DRY, performance. ultrathink. Always think about what can we improve here in architecture and code? Make sure we have good specs throughout. Never use private send methods (breaks encapsulation), instance_variable_set/get, and never use respond_to? (poor typing).
@@ -1,261 +0,0 @@
1
- = HTML Renderer Architecture
2
-
3
- == Overview
4
-
5
- The HTML renderer converts a Metanorma document model (parsed from presentation XML) into a complete, self-contained HTML document. It produces all body content, header, footer, table of contents, CSS theming, and JavaScript interactivity.
6
-
7
- == Pipeline
8
-
9
- ....
10
- Generator.generate(doc)
11
- ├── Auto-selects renderer by document class
12
- ├── Renderer.new
13
- └── renderer.generate_full_document(doc)
14
- ├── Header (publisher logos, document title)
15
- ├── ToC sidebar
16
- ├── Body content (recursive render)
17
- ├── Footnotes
18
- ├── Footer (copyright)
19
- └── Asset pipeline (inline CSS + JS)
20
- ....
21
-
22
- == Renderer Hierarchy
23
-
24
- [source,ruby]
25
- BaseRenderer # Core HTML rendering, document assembly, CSS/JS pipeline
26
- └── StandardRenderer # Terms, definitions, annexes, bibliography
27
- ├── IsoRenderer # ISO cover page, copyright, title formatting
28
- │ ├── IccRenderer # ICC publisher styling
29
- │ └── PdfaRenderer # PDF Association publisher styling
30
- ├── IecRenderer # IEC-specific formatting
31
- ├── IeeeRenderer # IEEE-specific formatting
32
- ├── IetfRenderer # IETF-specific formatting
33
- ├── IhoRenderer # IHO-specific formatting
34
- ├── ItuRenderer # ITU-specific formatting
35
- ├── OgcRenderer # OGC-specific formatting
36
- ├── OimlRenderer # OIML-specific formatting
37
- ├── BipmRenderer # BIPM-specific formatting
38
- ├── CcRenderer # CC-specific formatting
39
- └── RiboseRenderer # Ribose-specific formatting
40
-
41
- === Renderer Selection
42
-
43
- The `Generator` uses a two-tier lookup:
44
-
45
- 1. **Taste match**: If the document's publisher matches a registered taste, use that renderer.
46
- 2. **Model class**: Walk the ancestor chain from most specific to `BaseRenderer`.
47
-
48
- [source,ruby]
49
- # ICC documents are IsoDocument::Root but use IccRenderer
50
- Metanorma::Html::Generator.register_taste(
51
- Metanorma::IsoDocument::Root,
52
- "ICC",
53
- Metanorma::Html::IccRenderer
54
- )
55
-
56
- == Class Name Ownership
57
-
58
- The HTML renderer owns its class names entirely. **No XML-originated class names appear in the HTML output.**
59
-
60
- The XML document model's `class_attr` is read as **input only** to determine semantic role. The renderer maps XML roles to HTML-specific class names via `SPAN_ROLE_CLASSES`:
61
-
62
- [source,ruby]
63
- SPAN_ROLE_CLASSES = {
64
- "boldtitle" => "title-text",
65
- "citefig" => "xref-fig",
66
- "citesec" => "xref-section",
67
- "fmt-element-name" => "element-label",
68
- "fmt-obligation" => "obligation-text",
69
- # ...
70
- }.freeze
71
-
72
- Block-level classes (`note-block`, `formula`, `figure`, etc.) are assigned by the renderer based on what it's rendering — never carried over from XML.
73
-
74
- Inline span classes go through `html_class_for_span`:
75
-
76
- [source,ruby]
77
- def html_class_for_span(xml_class)
78
- SPAN_ROLE_CLASSES[xml_class] || "span-#{xml_class}"
79
- end
80
-
81
- Raw XML content (e.g., boilerplate) passes through Nokogiri post-processing that remaps any remaining XML class names.
82
-
83
- == Drop Pattern
84
-
85
- Block elements (notes, examples, sourcecode, formulas, figures, admonitions) use the Drop pattern to separate data capture from template rendering.
86
-
87
- === How It Works
88
-
89
- . A `Drop` class captures rendered content via `RendererContext`
90
- . The Drop passes pre-rendered HTML strings to a Liquid template
91
- . The template reads Drop attributes and outputs final HTML
92
-
93
- [source,ruby]
94
- # In the renderer:
95
- def render_note(note, **_opts)
96
- drop = Drops::NoteDrop.from_model(note, renderer: renderer_context)
97
- @output << render_liquid("_note.html.liquid", { "block" => drop })
98
- end
99
-
100
- # In the Drop:
101
- class NoteDrop < BlockElementDrop
102
- def self.from_model(note, renderer:)
103
- content_html = renderer.capture_output do
104
- note.content.each { |para| renderer.render_paragraph(para) }
105
- end
106
- new(id: renderer.safe_attr(note, :id),
107
- label_html: renderer.escape_html(label),
108
- content_html: content_html,
109
- css_class: "note-block")
110
- end
111
- end
112
-
113
- === BlockElementDrop
114
-
115
- All block drops inherit from `BlockElementDrop`, which provides common attributes:
116
-
117
- `id` :: HTML element id
118
- `type` :: Block type identifier
119
- `label_html` :: Pre-rendered label (e.g., "NOTE", "EXAMPLE 1")
120
- `content_html` :: Pre-rendered inner content
121
- `css_class` :: HTML-specific class name
122
-
123
- === RendererContext
124
-
125
- `RendererContext` is a facade inside `BaseRenderer` that exposes only the rendering methods Drops need. Drops call renderer methods through this facade — the renderer's private interface stays encapsulated.
126
-
127
- [source,ruby]
128
- class RendererContext
129
- def safe_attr(obj, method_name)
130
- def escape_html(text)
131
- def extract_block_label(block, default)
132
- def extract_plain_text(node)
133
- def capture_output(&block)
134
- def render_paragraph(p)
135
- def render_mixed_inline(node)
136
- def render_inline_element(el)
137
- def render_unordered_list(ul)
138
- def render_ordered_list(ol)
139
- def render_definition_list(dl)
140
- def render_table(table)
141
- def render_figure(figure)
142
- end
143
-
144
- == Liquid Templates
145
-
146
- HTML structure is defined in `.liquid` templates under `lib/metanorma/html/templates/`.
147
-
148
- [horizontal]
149
- `document.html.liquid` :: Full document shell (`<html>`, `<head>`, `<body>`)
150
- `_header.html.liquid` :: Sticky header with publisher logos
151
- `_footer.html.liquid` :: Footer with copyright
152
- `_cover.html.liquid` :: Generic cover page layout
153
- `_iso_cover.html.liquid` :: ISO-specific cover page
154
- `_iso_doc_title.html.liquid` :: ISO document title rendering
155
- `_doc_title.html.liquid` :: Generic document title rendering
156
- `_footnotes.html.liquid` :: Footnotes section
157
- `_note.html.liquid` :: Note block
158
- `_example.html.liquid` :: Example block
159
- `_sourcecode.html.liquid` :: Source code block
160
- `_formula.html.liquid` :: Formula block
161
- `_figure.html.liquid` :: Figure block
162
- `_admonition.html.liquid` :: Admonition block
163
-
164
- Templates use `Liquid::LocalFileSystem` for partials (prefixed with `_`). The `render_liquid` method handles template caching.
165
-
166
- === Template Example
167
-
168
- `_note.html.liquid`:
169
-
170
- [source,liquid]
171
- ----
172
- <div{% if block.id %} id="{{ block.id }}"{% endif %} class="{{ block.css_class }}">
173
- {% if block.label_html %}
174
- <p class="note-label"><strong>{{ block.label_html }}</strong></p>
175
- {% endif %}
176
- <div class="note-content">
177
- {{ block.content_html }}
178
- </div>
179
- </div>
180
- ----
181
-
182
- == Theming
183
-
184
- Each renderer has a `Theme` object controlling colors, typography, and layout. Theme properties are emitted as CSS custom properties (`--mn-primary`, `--font-body`, etc.).
185
-
186
- [source,ruby]
187
- class MyRenderer < Metanorma::Html::StandardRenderer
188
- def theme
189
- @theme ||= begin
190
- t = Theme.new
191
- t.primary = "#1a5276"
192
- t.accent = "#2e86c1"
193
- t.font_body = '"Charter", serif'
194
- t
195
- end
196
- end
197
- end
198
-
199
- === Theme Properties
200
-
201
- [horizontal]
202
- `primary` :: Primary brand color
203
- `accent` :: Accent/highlight color
204
- `gradient` :: Header gradient
205
- `font_body` :: Body text font stack
206
- `font_sans` :: Sans-serif font stack
207
- `font_mono` :: Monospace font stack
208
- `font_url` :: Google Fonts URL
209
- `note_border` :: Note block border color
210
- `note_bg` :: Note block background
211
- `example_border` :: Example block border color
212
- `example_bg` :: Example block background
213
- `admonition_border` :: Admonition border color
214
- `admonition_bg` :: Admonition background
215
- `extra_css` :: Additional CSS string appended after defaults
216
-
217
- == Presentation XML
218
-
219
- The HTML renderer expects **presentation XML** (not source XML). Presentation XML contains `fmt-*` display elements alongside semantic elements:
220
-
221
- - `fmt-title` — formatted section/block titles
222
- - `fmt-xref` — formatted cross-reference text
223
- - `fmt-link` — formatted link text
224
- - `fmt-concept` — formatted concept references
225
- - `fmt-definition` — formatted term definitions
226
- - `fmt-preferred` — formatted preferred term names
227
-
228
- The renderer prioritizes `fmt-*` elements for rendering, falling back to semantic elements when display elements are absent.
229
-
230
- == Asset Pipeline
231
-
232
- The `AssetPipeline` compiles CSS and JavaScript from modular source files into inline `<style>` and `<script>` blocks for self-contained output.
233
-
234
- === CSS
235
-
236
- [horizontal]
237
- `data/stylesheets/base/` :: Reset, typography, layout, dark mode, print
238
- `data/stylesheets/components/` :: Component stylesheets (inline, tables, notes, etc.)
239
-
240
- === JavaScript
241
-
242
- [horizontal]
243
- `data/javascripts/core/` :: Reader, theme, scroll, navigation, reveal
244
- `data/javascripts/components/` :: ToC, search, lightbox, code copy, glossary, etc.
245
-
246
- == Extending
247
-
248
- To add a new flavor renderer:
249
-
250
- . Subclass the appropriate base (usually `IsoRenderer` or `StandardRenderer`)
251
- . Override `theme` with brand colors/fonts
252
- . Override `publisher_logo_map` with logo filenames
253
- . Register with the Generator:
254
-
255
- [source,ruby]
256
- Metanorma::Html::Generator.register(
257
- Metanorma::MyDocument::Root,
258
- Metanorma::Html::MyRenderer
259
- )
260
-
261
- To customize how a specific block renders, override the `render_*` method and either emit HTML directly or use the Drop pattern with a new template.
@@ -1,22 +0,0 @@
1
- (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&n(l)}).observe(document,{childList:!0,subtree:!0});function s(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(r){if(r.ep)return;r.ep=!0;const o=s(r);fetch(r.href,o)}})();/**
2
- * @vue/shared v3.5.32
3
- * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
- * @license MIT
5
- **/function zs(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const te={},gt=[],Ne=()=>{},Qn=()=>!1,us=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fs=e=>e.startsWith("onUpdate:"),fe=Object.assign,Ys=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},xo=Object.prototype.hasOwnProperty,U=(e,t)=>xo.call(e,t),$=Array.isArray,bt=e=>Vt(e)==="[object Map]",er=e=>Vt(e)==="[object Set]",_n=e=>Vt(e)==="[object Date]",F=e=>typeof e=="function",ce=e=>typeof e=="string",Ce=e=>typeof e=="symbol",z=e=>e!==null&&typeof e=="object",tr=e=>(z(e)||F(e))&&F(e.then)&&F(e.catch),sr=Object.prototype.toString,Vt=e=>sr.call(e),So=e=>Vt(e).slice(8,-1),nr=e=>Vt(e)==="[object Object]",as=e=>ce(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Pt=zs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ds=e=>{const t=Object.create(null);return s=>t[s]||(t[s]=e(s))},wo=/-\w/g,_e=ds(e=>e.replace(wo,t=>t.slice(1).toUpperCase())),ko=/\B([A-Z])/g,ft=ds(e=>e.replace(ko,"-$1").toLowerCase()),hs=ds(e=>e.charAt(0).toUpperCase()+e.slice(1)),Cs=ds(e=>e?`on${hs(e)}`:""),Le=(e,t)=>!Object.is(e,t),Ts=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},rr=(e,t,s,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},Co=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let vn;const ps=()=>vn||(vn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Xs(e){if($(e)){const t={};for(let s=0;s<e.length;s++){const n=e[s],r=ce(n)?Po(n):Xs(n);if(r)for(const o in r)t[o]=r[o]}return t}else if(ce(e)||z(e))return e}const To=/;(?![^(]*\))/g,Oo=/:([^]+)/,Eo=/\/\*[^]*?\*\//g;function Po(e){const t={};return e.replace(Eo,"").split(To).forEach(s=>{if(s){const n=s.split(Oo);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function gs(e){let t="";if(ce(e))t=e;else if($(e))for(let s=0;s<e.length;s++){const n=gs(e[s]);n&&(t+=n+" ")}else if(z(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const Ao="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Mo=zs(Ao);function or(e){return!!e||e===""}function Io(e,t){if(e.length!==t.length)return!1;let s=!0;for(let n=0;s&&n<e.length;n++)s=Zs(e[n],t[n]);return s}function Zs(e,t){if(e===t)return!0;let s=_n(e),n=_n(t);if(s||n)return s&&n?e.getTime()===t.getTime():!1;if(s=Ce(e),n=Ce(t),s||n)return e===t;if(s=$(e),n=$(t),s||n)return s&&n?Io(e,t):!1;if(s=z(e),n=z(t),s||n){if(!s||!n)return!1;const r=Object.keys(e).length,o=Object.keys(t).length;if(r!==o)return!1;for(const l in e){const i=e.hasOwnProperty(l),c=t.hasOwnProperty(l);if(i&&!c||!i&&c||!Zs(e[l],t[l]))return!1}}return String(e)===String(t)}const lr=e=>!!(e&&e.__v_isRef===!0),q=e=>ce(e)?e:e==null?"":$(e)||z(e)&&(e.toString===sr||!F(e.toString))?lr(e)?q(e.value):JSON.stringify(e,ir,2):String(e),ir=(e,t)=>lr(t)?ir(e,t.value):bt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,r],o)=>(s[Os(n,o)+" =>"]=r,s),{})}:er(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Os(s))}:Ce(t)?Os(t):z(t)&&!$(t)&&!nr(t)?String(t):t,Os=(e,t="")=>{var s;return Ce(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/**
6
- * @vue/reactivity v3.5.32
7
- * (c) 2018-present Yuxi (Evan) You and Vue contributors
8
- * @license MIT
9
- **/let de;class cr{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=de,!t&&de&&(this.index=(de.scopes||(de.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].pause();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].resume();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].resume()}}run(t){if(this._active){const s=de;try{return de=this,t()}finally{de=s}}}on(){++this._on===1&&(this.prevScope=de,de=this)}off(){this._on>0&&--this._on===0&&(de=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s<n;s++)this.effects[s].stop();for(this.effects.length=0,s=0,n=this.cleanups.length;s<n;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){for(s=0,n=this.scopes.length;s<n;s++)this.scopes[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.parent=void 0}}}function ur(e){return new cr(e)}function fr(){return de}function Ro(e,t=!1){de&&de.cleanups.push(e)}let ee;const Es=new WeakSet;class ar{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,de&&de.active&&de.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Es.has(this)&&(Es.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||hr(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,yn(this),pr(this);const t=ee,s=Oe;ee=this,Oe=!0;try{return this.fn()}finally{gr(this),ee=t,Oe=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)tn(t);this.deps=this.depsTail=void 0,yn(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Es.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Ds(this)&&this.run()}get dirty(){return Ds(this)}}let dr=0,At,Mt;function hr(e,t=!1){if(e.flags|=8,t){e.next=Mt,Mt=e;return}e.next=At,At=e}function Qs(){dr++}function en(){if(--dr>0)return;if(Mt){let t=Mt;for(Mt=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;At;){let t=At;for(At=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function pr(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function gr(e){let t,s=e.depsTail,n=s;for(;n;){const r=n.prevDep;n.version===-1?(n===s&&(s=r),tn(n),$o(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=r}e.deps=t,e.depsTail=s}function Ds(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(br(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function br(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Lt)||(e.globalVersion=Lt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ds(e))))return;e.flags|=2;const t=e.dep,s=ee,n=Oe;ee=e,Oe=!0;try{pr(e);const r=e.fn(e._value);(t.version===0||Le(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{ee=s,Oe=n,gr(e),e.flags&=-3}}function tn(e,t=!1){const{dep:s,prevSub:n,nextSub:r}=e;if(n&&(n.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let o=s.computed.deps;o;o=o.nextDep)tn(o,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function $o(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let Oe=!0;const mr=[];function Ge(){mr.push(Oe),Oe=!1}function ze(){const e=mr.pop();Oe=e===void 0?!0:e}function yn(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=ee;ee=void 0;try{t()}finally{ee=s}}}let Lt=0;class Fo{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class sn{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ee||!Oe||ee===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==ee)s=this.activeLink=new Fo(ee,this),ee.deps?(s.prevDep=ee.depsTail,ee.depsTail.nextDep=s,ee.depsTail=s):ee.deps=ee.depsTail=s,_r(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=ee.depsTail,s.nextDep=void 0,ee.depsTail.nextDep=s,ee.depsTail=s,ee.deps===s&&(ee.deps=n)}return s}trigger(t){this.version++,Lt++,this.notify(t)}notify(t){Qs();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{en()}}}function _r(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)_r(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const ss=new WeakMap,ct=Symbol(""),Ls=Symbol(""),Nt=Symbol("");function he(e,t,s){if(Oe&&ee){let n=ss.get(e);n||ss.set(e,n=new Map);let r=n.get(s);r||(n.set(s,r=new sn),r.map=n,r.key=s),r.track()}}function Ue(e,t,s,n,r,o){const l=ss.get(e);if(!l){Lt++;return}const i=c=>{c&&c.trigger()};if(Qs(),t==="clear")l.forEach(i);else{const c=$(e),d=c&&as(s);if(c&&s==="length"){const a=Number(n);l.forEach((p,b)=>{(b==="length"||b===Nt||!Ce(b)&&b>=a)&&i(p)})}else switch((s!==void 0||l.has(void 0))&&i(l.get(s)),d&&i(l.get(Nt)),t){case"add":c?d&&i(l.get("length")):(i(l.get(ct)),bt(e)&&i(l.get(Ls)));break;case"delete":c||(i(l.get(ct)),bt(e)&&i(l.get(Ls)));break;case"set":bt(e)&&i(l.get(ct));break}}en()}function jo(e,t){const s=ss.get(e);return s&&s.get(t)}function dt(e){const t=B(e);return t===e?t:(he(t,"iterate",Nt),we(e)?t:t.map(Ee))}function bs(e){return he(e=B(e),"iterate",Nt),e}function je(e,t){return Ye(e)?vt(Je(e)?Ee(t):t):Ee(t)}const Do={__proto__:null,[Symbol.iterator](){return Ps(this,Symbol.iterator,e=>je(this,e))},concat(...e){return dt(this).concat(...e.map(t=>$(t)?dt(t):t))},entries(){return Ps(this,"entries",e=>(e[1]=je(this,e[1]),e))},every(e,t){return We(this,"every",e,t,void 0,arguments)},filter(e,t){return We(this,"filter",e,t,s=>s.map(n=>je(this,n)),arguments)},find(e,t){return We(this,"find",e,t,s=>je(this,s),arguments)},findIndex(e,t){return We(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return We(this,"findLast",e,t,s=>je(this,s),arguments)},findLastIndex(e,t){return We(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return We(this,"forEach",e,t,void 0,arguments)},includes(...e){return As(this,"includes",e)},indexOf(...e){return As(this,"indexOf",e)},join(e){return dt(this).join(e)},lastIndexOf(...e){return As(this,"lastIndexOf",e)},map(e,t){return We(this,"map",e,t,void 0,arguments)},pop(){return Tt(this,"pop")},push(...e){return Tt(this,"push",e)},reduce(e,...t){return xn(this,"reduce",e,t)},reduceRight(e,...t){return xn(this,"reduceRight",e,t)},shift(){return Tt(this,"shift")},some(e,t){return We(this,"some",e,t,void 0,arguments)},splice(...e){return Tt(this,"splice",e)},toReversed(){return dt(this).toReversed()},toSorted(e){return dt(this).toSorted(e)},toSpliced(...e){return dt(this).toSpliced(...e)},unshift(...e){return Tt(this,"unshift",e)},values(){return Ps(this,"values",e=>je(this,e))}};function Ps(e,t,s){const n=bs(e),r=n[t]();return n!==e&&!we(e)&&(r._next=r.next,r.next=()=>{const o=r._next();return o.done||(o.value=s(o.value)),o}),r}const Lo=Array.prototype;function We(e,t,s,n,r,o){const l=bs(e),i=l!==e&&!we(e),c=l[t];if(c!==Lo[t]){const p=c.apply(e,o);return i?Ee(p):p}let d=s;l!==e&&(i?d=function(p,b){return s.call(this,je(e,p),b,e)}:s.length>2&&(d=function(p,b){return s.call(this,p,b,e)}));const a=c.call(l,d,n);return i&&r?r(a):a}function xn(e,t,s,n){const r=bs(e),o=r!==e&&!we(e);let l=s,i=!1;r!==e&&(o?(i=n.length===0,l=function(d,a,p){return i&&(i=!1,d=je(e,d)),s.call(this,d,je(e,a),p,e)}):s.length>3&&(l=function(d,a,p){return s.call(this,d,a,p,e)}));const c=r[t](l,...n);return i?je(e,c):c}function As(e,t,s){const n=B(e);he(n,"iterate",Nt);const r=n[t](...s);return(r===-1||r===!1)&&_s(s[0])?(s[0]=B(s[0]),n[t](...s)):r}function Tt(e,t,s=[]){Ge(),Qs();const n=B(e)[t].apply(e,s);return en(),ze(),n}const No=zs("__proto__,__v_isRef,__isVue"),vr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ce));function Ho(e){Ce(e)||(e=String(e));const t=B(this);return he(t,"has",e),t.hasOwnProperty(e)}class yr{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){if(s==="__v_skip")return t.__v_skip;const r=this._isReadonly,o=this._isShallow;if(s==="__v_isReactive")return!r;if(s==="__v_isReadonly")return r;if(s==="__v_isShallow")return o;if(s==="__v_raw")return n===(r?o?Yo:kr:o?wr:Sr).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const l=$(t);if(!r){let c;if(l&&(c=Do[s]))return c;if(s==="hasOwnProperty")return Ho}const i=Reflect.get(t,s,ne(t)?t:n);if((Ce(s)?vr.has(s):No(s))||(r||he(t,"get",s),o))return i;if(ne(i)){const c=l&&as(s)?i:i.value;return r&&z(c)?Hs(c):c}return z(i)?r?Hs(i):ms(i):i}}class xr extends yr{constructor(t=!1){super(!1,t)}set(t,s,n,r){let o=t[s];const l=$(t)&&as(s);if(!this._isShallow){const d=Ye(o);if(!we(n)&&!Ye(n)&&(o=B(o),n=B(n)),!l&&ne(o)&&!ne(n))return d||(o.value=n),!0}const i=l?Number(s)<t.length:U(t,s),c=Reflect.set(t,s,n,ne(t)?t:r);return t===B(r)&&(i?Le(n,o)&&Ue(t,"set",s,n):Ue(t,"add",s,n)),c}deleteProperty(t,s){const n=U(t,s);t[s];const r=Reflect.deleteProperty(t,s);return r&&n&&Ue(t,"delete",s,void 0),r}has(t,s){const n=Reflect.has(t,s);return(!Ce(s)||!vr.has(s))&&he(t,"has",s),n}ownKeys(t){return he(t,"iterate",$(t)?"length":ct),Reflect.ownKeys(t)}}class Bo extends yr{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const Wo=new xr,Ko=new Bo,Vo=new xr(!0);const Ns=e=>e,Yt=e=>Reflect.getPrototypeOf(e);function Uo(e,t,s){return function(...n){const r=this.__v_raw,o=B(r),l=bt(o),i=e==="entries"||e===Symbol.iterator&&l,c=e==="keys"&&l,d=r[e](...n),a=s?Ns:t?vt:Ee;return!t&&he(o,"iterate",c?Ls:ct),fe(Object.create(d),{next(){const{value:p,done:b}=d.next();return b?{value:p,done:b}:{value:i?[a(p[0]),a(p[1])]:a(p),done:b}}})}}function Xt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function qo(e,t){const s={get(r){const o=this.__v_raw,l=B(o),i=B(r);e||(Le(r,i)&&he(l,"get",r),he(l,"get",i));const{has:c}=Yt(l),d=t?Ns:e?vt:Ee;if(c.call(l,r))return d(o.get(r));if(c.call(l,i))return d(o.get(i));o!==l&&o.get(r)},get size(){const r=this.__v_raw;return!e&&he(B(r),"iterate",ct),r.size},has(r){const o=this.__v_raw,l=B(o),i=B(r);return e||(Le(r,i)&&he(l,"has",r),he(l,"has",i)),r===i?o.has(r):o.has(r)||o.has(i)},forEach(r,o){const l=this,i=l.__v_raw,c=B(i),d=t?Ns:e?vt:Ee;return!e&&he(c,"iterate",ct),i.forEach((a,p)=>r.call(o,d(a),d(p),l))}};return fe(s,e?{add:Xt("add"),set:Xt("set"),delete:Xt("delete"),clear:Xt("clear")}:{add(r){const o=B(this),l=Yt(o),i=B(r),c=!t&&!we(r)&&!Ye(r)?i:r;return l.has.call(o,c)||Le(r,c)&&l.has.call(o,r)||Le(i,c)&&l.has.call(o,i)||(o.add(c),Ue(o,"add",c,c)),this},set(r,o){!t&&!we(o)&&!Ye(o)&&(o=B(o));const l=B(this),{has:i,get:c}=Yt(l);let d=i.call(l,r);d||(r=B(r),d=i.call(l,r));const a=c.call(l,r);return l.set(r,o),d?Le(o,a)&&Ue(l,"set",r,o):Ue(l,"add",r,o),this},delete(r){const o=B(this),{has:l,get:i}=Yt(o);let c=l.call(o,r);c||(r=B(r),c=l.call(o,r)),i&&i.call(o,r);const d=o.delete(r);return c&&Ue(o,"delete",r,void 0),d},clear(){const r=B(this),o=r.size!==0,l=r.clear();return o&&Ue(r,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(r=>{s[r]=Uo(r,e,t)}),s}function nn(e,t){const s=qo(e,t);return(n,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?n:Reflect.get(U(s,r)&&r in n?s:n,r,o)}const Jo={get:nn(!1,!1)},Go={get:nn(!1,!0)},zo={get:nn(!0,!1)};const Sr=new WeakMap,wr=new WeakMap,kr=new WeakMap,Yo=new WeakMap;function Xo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Zo(e){return e.__v_skip||!Object.isExtensible(e)?0:Xo(So(e))}function ms(e){return Ye(e)?e:rn(e,!1,Wo,Jo,Sr)}function Qo(e){return rn(e,!1,Vo,Go,wr)}function Hs(e){return rn(e,!0,Ko,zo,kr)}function rn(e,t,s,n,r){if(!z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Zo(e);if(o===0)return e;const l=r.get(e);if(l)return l;const i=new Proxy(e,o===2?n:s);return r.set(e,i),i}function Je(e){return Ye(e)?Je(e.__v_raw):!!(e&&e.__v_isReactive)}function Ye(e){return!!(e&&e.__v_isReadonly)}function we(e){return!!(e&&e.__v_isShallow)}function _s(e){return e?!!e.__v_raw:!1}function B(e){const t=e&&e.__v_raw;return t?B(t):e}function on(e){return!U(e,"__v_skip")&&Object.isExtensible(e)&&rr(e,"__v_skip",!0),e}const Ee=e=>z(e)?ms(e):e,vt=e=>z(e)?Hs(e):e;function ne(e){return e?e.__v_isRef===!0:!1}function Ht(e){return el(e,!1)}function el(e,t){return ne(e)?e:new tl(e,t)}class tl{constructor(t,s){this.dep=new sn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:B(t),this._value=s?t:Ee(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||we(t)||Ye(t);t=n?t:B(t),Le(t,s)&&(this._rawValue=t,this._value=n?t:Ee(t),this.dep.trigger())}}function mt(e){return ne(e)?e.value:e}const sl={get:(e,t,s)=>t==="__v_raw"?e:mt(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const r=e[t];return ne(r)&&!ne(s)?(r.value=s,!0):Reflect.set(e,t,s,n)}};function Cr(e){return Je(e)?e:new Proxy(e,sl)}function nl(e){const t=$(e)?new Array(e.length):{};for(const s in e)t[s]=ol(e,s);return t}class rl{constructor(t,s,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Ce(s)?s:String(s),this._raw=B(t);let r=!0,o=t;if(!$(t)||Ce(this._key)||!as(this._key))do r=!_s(o)||we(o);while(r&&(o=o.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=mt(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ne(this._raw[this._key])){const s=this._object[this._key];if(ne(s)){s.value=t;return}}this._object[this._key]=t}get dep(){return jo(this._raw,this._key)}}function ol(e,t,s){return new rl(e,t,s)}class ll{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new sn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Lt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&ee!==this)return hr(this,!0),!0}get value(){const t=this.dep.track();return br(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function il(e,t,s=!1){let n,r;return F(e)?n=e:(n=e.get,r=e.set),new ll(n,r,s)}const Zt={},ns=new WeakMap;let it;function cl(e,t=!1,s=it){if(s){let n=ns.get(s);n||ns.set(s,n=[]),n.push(e)}}function ul(e,t,s=te){const{immediate:n,deep:r,once:o,scheduler:l,augmentJob:i,call:c}=s,d=M=>r?M:we(M)||r===!1||r===0?tt(M,1):tt(M);let a,p,b,h,I=!1,E=!1;if(ne(e)?(p=()=>e.value,I=we(e)):Je(e)?(p=()=>d(e),I=!0):$(e)?(E=!0,I=e.some(M=>Je(M)||we(M)),p=()=>e.map(M=>{if(ne(M))return M.value;if(Je(M))return d(M);if(F(M))return c?c(M,2):M()})):F(e)?t?p=c?()=>c(e,2):e:p=()=>{if(b){Ge();try{b()}finally{ze()}}const M=it;it=a;try{return c?c(e,3,[h]):e(h)}finally{it=M}}:p=Ne,t&&r){const M=p,V=r===!0?1/0:r;p=()=>tt(M(),V)}const K=fr(),X=()=>{a.stop(),K&&K.active&&Ys(K.effects,a)};if(o&&t){const M=t;t=(...V)=>{M(...V),X()}}let D=E?new Array(e.length).fill(Zt):Zt;const J=M=>{if(!(!(a.flags&1)||!a.dirty&&!M))if(t){const V=a.run();if(r||I||(E?V.some((Be,ae)=>Le(Be,D[ae])):Le(V,D))){b&&b();const Be=it;it=a;try{const ae=[V,D===Zt?void 0:E&&D[0]===Zt?[]:D,h];D=V,c?c(t,3,ae):t(...ae)}finally{it=Be}}}else a.run()};return i&&i(J),a=new ar(p),a.scheduler=l?()=>l(J,!1):J,h=M=>cl(M,!1,a),b=a.onStop=()=>{const M=ns.get(a);if(M){if(c)c(M,4);else for(const V of M)V();ns.delete(a)}},t?n?J(!0):D=a.run():l?l(J.bind(null,!0),!0):a.run(),X.pause=a.pause.bind(a),X.resume=a.resume.bind(a),X.stop=X,X}function tt(e,t=1/0,s){if(t<=0||!z(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,ne(e))tt(e.value,t,s);else if($(e))for(let n=0;n<e.length;n++)tt(e[n],t,s);else if(er(e)||bt(e))e.forEach(n=>{tt(n,t,s)});else if(nr(e)){for(const n in e)tt(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&tt(e[n],t,s)}return e}/**
10
- * @vue/runtime-core v3.5.32
11
- * (c) 2018-present Yuxi (Evan) You and Vue contributors
12
- * @license MIT
13
- **/function Ut(e,t,s,n){try{return n?e(...n):e()}catch(r){vs(r,t,s)}}function He(e,t,s,n){if(F(e)){const r=Ut(e,t,s,n);return r&&tr(r)&&r.catch(o=>{vs(o,t,s)}),r}if($(e)){const r=[];for(let o=0;o<e.length;o++)r.push(He(e[o],t,s,n));return r}}function vs(e,t,s,n=!0){const r=t?t.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:l}=t&&t.appContext.config||te;if(t){let i=t.parent;const c=t.proxy,d=`https://vuejs.org/error-reference/#runtime-${s}`;for(;i;){const a=i.ec;if(a){for(let p=0;p<a.length;p++)if(a[p](e,c,d)===!1)return}i=i.parent}if(o){Ge(),Ut(o,null,10,[e,c,d]),ze();return}}fl(e,s,r,n,l)}function fl(e,t,s,n=!0,r=!1){if(r)throw e;console.error(e)}const be=[];let Fe=-1;const _t=[];let et=null,pt=0;const Tr=Promise.resolve();let rs=null;function Or(e){const t=rs||Tr;return e?t.then(this?e.bind(this):e):t}function al(e){let t=Fe+1,s=be.length;for(;t<s;){const n=t+s>>>1,r=be[n],o=Bt(r);o<e||o===e&&r.flags&2?t=n+1:s=n}return t}function ln(e){if(!(e.flags&1)){const t=Bt(e),s=be[be.length-1];!s||!(e.flags&2)&&t>=Bt(s)?be.push(e):be.splice(al(t),0,e),e.flags|=1,Er()}}function Er(){rs||(rs=Tr.then(Ar))}function dl(e){$(e)?_t.push(...e):et&&e.id===-1?et.splice(pt+1,0,e):e.flags&1||(_t.push(e),e.flags|=1),Er()}function Sn(e,t,s=Fe+1){for(;s<be.length;s++){const n=be[s];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;be.splice(s,1),s--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function Pr(e){if(_t.length){const t=[...new Set(_t)].sort((s,n)=>Bt(s)-Bt(n));if(_t.length=0,et){et.push(...t);return}for(et=t,pt=0;pt<et.length;pt++){const s=et[pt];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}et=null,pt=0}}const Bt=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Ar(e){try{for(Fe=0;Fe<be.length;Fe++){const t=be[Fe];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Ut(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;Fe<be.length;Fe++){const t=be[Fe];t&&(t.flags&=-2)}Fe=-1,be.length=0,Pr(),rs=null,(be.length||_t.length)&&Ar()}}let Te=null,Mr=null;function os(e){const t=Te;return Te=e,Mr=e&&e.type.__scopeId||null,t}function hl(e,t=Te,s){if(!t||e._n)return e;const n=(...r)=>{n._d&&$n(-1);const o=os(t);let l;try{l=e(...r)}finally{os(o),n._d&&$n(1)}return l};return n._n=!0,n._c=!0,n._d=!0,n}function ot(e,t,s,n){const r=e.dirs,o=t&&t.dirs;for(let l=0;l<r.length;l++){const i=r[l];o&&(i.oldValue=o[l].value);let c=i.dir[n];c&&(Ge(),He(c,s,8,[e.el,i,e,t]),ze())}}function pl(e,t){if(pe){let s=pe.provides;const n=pe.parent&&pe.parent.provides;n===s&&(s=pe.provides=Object.create(n)),s[e]=t}}function It(e,t,s=!1){const n=lo();if(n||ut){let r=ut?ut._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(r&&e in r)return r[e];if(arguments.length>1)return s&&F(t)?t.call(n&&n.proxy):t}}function gl(){return!!(lo()||ut)}const bl=Symbol.for("v-scx"),ml=()=>It(bl);function Qt(e,t,s){return Ir(e,t,s)}function Ir(e,t,s=te){const{immediate:n,deep:r,flush:o,once:l}=s,i=fe({},s),c=t&&n||!t&&o!=="post";let d;if(Kt){if(o==="sync"){const h=ml();d=h.__watcherHandles||(h.__watcherHandles=[])}else if(!c){const h=()=>{};return h.stop=Ne,h.resume=Ne,h.pause=Ne,h}}const a=pe;i.call=(h,I,E)=>He(h,a,I,E);let p=!1;o==="post"?i.scheduler=h=>{ve(h,a&&a.suspense)}:o!=="sync"&&(p=!0,i.scheduler=(h,I)=>{I?h():ln(h)}),i.augmentJob=h=>{t&&(h.flags|=4),p&&(h.flags|=2,a&&(h.id=a.uid,h.i=a))};const b=ul(e,t,i);return Kt&&(d?d.push(b):c&&b()),b}function _l(e,t,s){const n=this.proxy,r=ce(e)?e.includes(".")?Rr(n,e):()=>n[e]:e.bind(n,n);let o;F(t)?o=t:(o=t.handler,s=t);const l=qt(this),i=Ir(r,o.bind(n),s);return l(),i}function Rr(e,t){const s=t.split(".");return()=>{let n=e;for(let r=0;r<s.length&&n;r++)n=n[s[r]];return n}}const vl=Symbol("_vte"),yl=e=>e.__isTeleport,xl=Symbol("_leaveCb");function cn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,cn(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function at(e,t){return F(e)?fe({name:e.name},t,{setup:e}):e}function $r(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function wn(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const ls=new WeakMap;function Rt(e,t,s,n,r=!1){if($(e)){e.forEach((E,K)=>Rt(E,t&&($(t)?t[K]:t),s,n,r));return}if($t(n)&&!r){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Rt(e,t,s,n.component.subTree);return}const o=n.shapeFlag&4?dn(n.component):n.el,l=r?null:o,{i,r:c}=e,d=t&&t.r,a=i.refs===te?i.refs={}:i.refs,p=i.setupState,b=B(p),h=p===te?Qn:E=>wn(a,E)?!1:U(b,E),I=(E,K)=>!(K&&wn(a,K));if(d!=null&&d!==c){if(kn(t),ce(d))a[d]=null,h(d)&&(p[d]=null);else if(ne(d)){const E=t;I(d,E.k)&&(d.value=null),E.k&&(a[E.k]=null)}}if(F(c))Ut(c,i,12,[l,a]);else{const E=ce(c),K=ne(c);if(E||K){const X=()=>{if(e.f){const D=E?h(c)?p[c]:a[c]:I()||!e.k?c.value:a[e.k];if(r)$(D)&&Ys(D,o);else if($(D))D.includes(o)||D.push(o);else if(E)a[c]=[o],h(c)&&(p[c]=a[c]);else{const J=[o];I(c,e.k)&&(c.value=J),e.k&&(a[e.k]=J)}}else E?(a[c]=l,h(c)&&(p[c]=l)):K&&(I(c,e.k)&&(c.value=l),e.k&&(a[e.k]=l))};if(l){const D=()=>{X(),ls.delete(e)};D.id=-1,ls.set(e,D),ve(D,s)}else kn(e),X()}}}function kn(e){const t=ls.get(e);t&&(t.flags|=8,ls.delete(e))}ps().requestIdleCallback;ps().cancelIdleCallback;const $t=e=>!!e.type.__asyncLoader,Fr=e=>e.type.__isKeepAlive;function Sl(e,t){jr(e,"a",t)}function wl(e,t){jr(e,"da",t)}function jr(e,t,s=pe){const n=e.__wdc||(e.__wdc=()=>{let r=s;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(ys(t,n,s),s){let r=s.parent;for(;r&&r.parent;)Fr(r.parent.vnode)&&kl(n,t,s,r),r=r.parent}}function kl(e,t,s,n){const r=ys(t,e,n,!0);Lr(()=>{Ys(n[t],r)},s)}function ys(e,t,s=pe,n=!1){if(s){const r=s[e]||(s[e]=[]),o=t.__weh||(t.__weh=(...l)=>{Ge();const i=qt(s),c=He(t,s,e,l);return i(),ze(),c});return n?r.unshift(o):r.push(o),o}}const Xe=e=>(t,s=pe)=>{(!Kt||e==="sp")&&ys(e,(...n)=>t(...n),s)},Cl=Xe("bm"),Dr=Xe("m"),Tl=Xe("bu"),Ol=Xe("u"),El=Xe("bum"),Lr=Xe("um"),Pl=Xe("sp"),Al=Xe("rtg"),Ml=Xe("rtc");function Il(e,t=pe){ys("ec",e,t)}const Rl="components";function Nr(e,t){return Fl(Rl,e,!0,t)||e}const $l=Symbol.for("v-ndc");function Fl(e,t,s=!0,n=!1){const r=Te||pe;if(r){const o=r.type;{const i=vi(o,!1);if(i&&(i===t||i===_e(t)||i===hs(_e(t))))return o}const l=Cn(r[e]||o[e],t)||Cn(r.appContext[e],t);return!l&&n?o:l}}function Cn(e,t){return e&&(e[t]||e[_e(t)]||e[hs(_e(t))])}function oe(e,t,s,n){let r;const o=s,l=$(e);if(l||ce(e)){const i=l&&Je(e);let c=!1,d=!1;i&&(c=!we(e),d=Ye(e),e=bs(e)),r=new Array(e.length);for(let a=0,p=e.length;a<p;a++)r[a]=t(c?d?vt(Ee(e[a])):Ee(e[a]):e[a],a,void 0,o)}else if(typeof e=="number"){r=new Array(e);for(let i=0;i<e;i++)r[i]=t(i+1,i,void 0,o)}else if(z(e))if(e[Symbol.iterator])r=Array.from(e,(i,c)=>t(i,c,void 0,o));else{const i=Object.keys(e);r=new Array(i.length);for(let c=0,d=i.length;c<d;c++){const a=i[c];r[c]=t(e[a],a,c,o)}}else r=[];return r}const Bs=e=>e?io(e)?dn(e):Bs(e.parent):null,Ft=fe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Bs(e.parent),$root:e=>Bs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Br(e),$forceUpdate:e=>e.f||(e.f=()=>{ln(e.update)}),$nextTick:e=>e.n||(e.n=Or.bind(e.proxy)),$watch:e=>_l.bind(e)}),Ms=(e,t)=>e!==te&&!e.__isScriptSetup&&U(e,t),jl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:r,props:o,accessCache:l,type:i,appContext:c}=e;if(t[0]!=="$"){const b=l[t];if(b!==void 0)switch(b){case 1:return n[t];case 2:return r[t];case 4:return s[t];case 3:return o[t]}else{if(Ms(n,t))return l[t]=1,n[t];if(r!==te&&U(r,t))return l[t]=2,r[t];if(U(o,t))return l[t]=3,o[t];if(s!==te&&U(s,t))return l[t]=4,s[t];Ws&&(l[t]=0)}}const d=Ft[t];let a,p;if(d)return t==="$attrs"&&he(e.attrs,"get",""),d(e);if((a=i.__cssModules)&&(a=a[t]))return a;if(s!==te&&U(s,t))return l[t]=4,s[t];if(p=c.config.globalProperties,U(p,t))return p[t]},set({_:e},t,s){const{data:n,setupState:r,ctx:o}=e;return Ms(r,t)?(r[t]=s,!0):n!==te&&U(n,t)?(n[t]=s,!0):U(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:r,props:o,type:l}},i){let c;return!!(s[i]||e!==te&&i[0]!=="$"&&U(e,i)||Ms(t,i)||U(o,i)||U(n,i)||U(Ft,i)||U(r.config.globalProperties,i)||(c=l.__cssModules)&&c[i])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:U(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function Tn(e){return $(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let Ws=!0;function Dl(e){const t=Br(e),s=e.proxy,n=e.ctx;Ws=!1,t.beforeCreate&&On(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:l,watch:i,provide:c,inject:d,created:a,beforeMount:p,mounted:b,beforeUpdate:h,updated:I,activated:E,deactivated:K,beforeDestroy:X,beforeUnmount:D,destroyed:J,unmounted:M,render:V,renderTracked:Be,renderTriggered:ae,errorCaptured:L,serverPrefetch:N,expose:le,inheritAttrs:ke,components:Pe,directives:Ze,filters:St}=t;if(d&&Ll(d,n,null),l)for(const j in l){const Z=l[j];F(Z)&&(n[j]=Z.bind(s))}if(r){const j=r.call(s,s);z(j)&&(e.data=ms(j))}if(Ws=!0,o)for(const j in o){const Z=o[j],nt=F(Z)?Z.bind(s,s):F(Z.get)?Z.get.bind(s,s):Ne,Gt=!F(Z)&&F(Z.set)?Z.set.bind(s):Ne,rt=G({get:nt,set:Gt});Object.defineProperty(n,j,{enumerable:!0,configurable:!0,get:()=>rt.value,set:Ae=>rt.value=Ae})}if(i)for(const j in i)Hr(i[j],n,s,j);if(c){const j=F(c)?c.call(s):c;Reflect.ownKeys(j).forEach(Z=>{pl(Z,j[Z])})}a&&On(a,e,"c");function re(j,Z){$(Z)?Z.forEach(nt=>j(nt.bind(s))):Z&&j(Z.bind(s))}if(re(Cl,p),re(Dr,b),re(Tl,h),re(Ol,I),re(Sl,E),re(wl,K),re(Il,L),re(Ml,Be),re(Al,ae),re(El,D),re(Lr,M),re(Pl,N),$(le))if(le.length){const j=e.exposed||(e.exposed={});le.forEach(Z=>{Object.defineProperty(j,Z,{get:()=>s[Z],set:nt=>s[Z]=nt,enumerable:!0})})}else e.exposed||(e.exposed={});V&&e.render===Ne&&(e.render=V),ke!=null&&(e.inheritAttrs=ke),Pe&&(e.components=Pe),Ze&&(e.directives=Ze),N&&$r(e)}function Ll(e,t,s=Ne){$(e)&&(e=Ks(e));for(const n in e){const r=e[n];let o;z(r)?"default"in r?o=It(r.from||n,r.default,!0):o=It(r.from||n):o=It(r),ne(o)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>o.value,set:l=>o.value=l}):t[n]=o}}function On(e,t,s){He($(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function Hr(e,t,s,n){let r=n.includes(".")?Rr(s,n):()=>s[n];if(ce(e)){const o=t[e];F(o)&&Qt(r,o)}else if(F(e))Qt(r,e.bind(s));else if(z(e))if($(e))e.forEach(o=>Hr(o,t,s,n));else{const o=F(e.handler)?e.handler.bind(s):t[e.handler];F(o)&&Qt(r,o,e)}}function Br(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:l}}=e.appContext,i=o.get(t);let c;return i?c=i:!r.length&&!s&&!n?c=t:(c={},r.length&&r.forEach(d=>is(c,d,l,!0)),is(c,t,l)),z(t)&&o.set(t,c),c}function is(e,t,s,n=!1){const{mixins:r,extends:o}=t;o&&is(e,o,s,!0),r&&r.forEach(l=>is(e,l,s,!0));for(const l in t)if(!(n&&l==="expose")){const i=Nl[l]||s&&s[l];e[l]=i?i(e[l],t[l]):t[l]}return e}const Nl={data:En,props:Pn,emits:Pn,methods:Et,computed:Et,beforeCreate:ge,created:ge,beforeMount:ge,mounted:ge,beforeUpdate:ge,updated:ge,beforeDestroy:ge,beforeUnmount:ge,destroyed:ge,unmounted:ge,activated:ge,deactivated:ge,errorCaptured:ge,serverPrefetch:ge,components:Et,directives:Et,watch:Bl,provide:En,inject:Hl};function En(e,t){return t?e?function(){return fe(F(e)?e.call(this,this):e,F(t)?t.call(this,this):t)}:t:e}function Hl(e,t){return Et(Ks(e),Ks(t))}function Ks(e){if($(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function ge(e,t){return e?[...new Set([].concat(e,t))]:t}function Et(e,t){return e?fe(Object.create(null),e,t):t}function Pn(e,t){return e?$(e)&&$(t)?[...new Set([...e,...t])]:fe(Object.create(null),Tn(e),Tn(t??{})):t}function Bl(e,t){if(!e)return t;if(!t)return e;const s=fe(Object.create(null),e);for(const n in t)s[n]=ge(e[n],t[n]);return s}function Wr(){return{app:null,config:{isNativeTag:Qn,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Wl=0;function Kl(e,t){return function(n,r=null){F(n)||(n=fe({},n)),r!=null&&!z(r)&&(r=null);const o=Wr(),l=new WeakSet,i=[];let c=!1;const d=o.app={_uid:Wl++,_component:n,_props:r,_container:null,_context:o,_instance:null,version:xi,get config(){return o.config},set config(a){},use(a,...p){return l.has(a)||(a&&F(a.install)?(l.add(a),a.install(d,...p)):F(a)&&(l.add(a),a(d,...p))),d},mixin(a){return o.mixins.includes(a)||o.mixins.push(a),d},component(a,p){return p?(o.components[a]=p,d):o.components[a]},directive(a,p){return p?(o.directives[a]=p,d):o.directives[a]},mount(a,p,b){if(!c){const h=d._ceVNode||me(n,r);return h.appContext=o,b===!0?b="svg":b===!1&&(b=void 0),e(h,a,b),c=!0,d._container=a,a.__vue_app__=d,dn(h.component)}},onUnmount(a){i.push(a)},unmount(){c&&(He(i,d._instance,16),e(null,d._container),delete d._container.__vue_app__)},provide(a,p){return o.provides[a]=p,d},runWithContext(a){const p=ut;ut=d;try{return a()}finally{ut=p}}};return d}}let ut=null;const Vl=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${_e(t)}Modifiers`]||e[`${ft(t)}Modifiers`];function Ul(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||te;let r=s;const o=t.startsWith("update:"),l=o&&Vl(n,t.slice(7));l&&(l.trim&&(r=s.map(a=>ce(a)?a.trim():a)),l.number&&(r=s.map(Co)));let i,c=n[i=Cs(t)]||n[i=Cs(_e(t))];!c&&o&&(c=n[i=Cs(ft(t))]),c&&He(c,e,6,r);const d=n[i+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,He(d,e,6,r)}}const ql=new WeakMap;function Kr(e,t,s=!1){const n=s?ql:t.emitsCache,r=n.get(e);if(r!==void 0)return r;const o=e.emits;let l={},i=!1;if(!F(e)){const c=d=>{const a=Kr(d,t,!0);a&&(i=!0,fe(l,a))};!s&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!i?(z(e)&&n.set(e,null),null):($(o)?o.forEach(c=>l[c]=null):fe(l,o),z(e)&&n.set(e,l),l)}function xs(e,t){return!e||!us(t)?!1:(t=t.slice(2).replace(/Once$/,""),U(e,t[0].toLowerCase()+t.slice(1))||U(e,ft(t))||U(e,t))}function An(e){const{type:t,vnode:s,proxy:n,withProxy:r,propsOptions:[o],slots:l,attrs:i,emit:c,render:d,renderCache:a,props:p,data:b,setupState:h,ctx:I,inheritAttrs:E}=e,K=os(e);let X,D;try{if(s.shapeFlag&4){const M=r||n,V=M;X=De(d.call(V,M,a,p,h,b,I)),D=i}else{const M=t;X=De(M.length>1?M(p,{attrs:i,slots:l,emit:c}):M(p,null)),D=t.props?i:Jl(i)}}catch(M){jt.length=0,vs(M,e,1),X=me(st)}let J=X;if(D&&E!==!1){const M=Object.keys(D),{shapeFlag:V}=J;M.length&&V&7&&(o&&M.some(fs)&&(D=Gl(D,o)),J=yt(J,D,!1,!0))}return s.dirs&&(J=yt(J,null,!1,!0),J.dirs=J.dirs?J.dirs.concat(s.dirs):s.dirs),s.transition&&cn(J,s.transition),X=J,os(K),X}const Jl=e=>{let t;for(const s in e)(s==="class"||s==="style"||us(s))&&((t||(t={}))[s]=e[s]);return t},Gl=(e,t)=>{const s={};for(const n in e)(!fs(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function zl(e,t,s){const{props:n,children:r,component:o}=e,{props:l,children:i,patchFlag:c}=t,d=o.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&c>=0){if(c&1024)return!0;if(c&16)return n?Mn(n,l,d):!!l;if(c&8){const a=t.dynamicProps;for(let p=0;p<a.length;p++){const b=a[p];if(Vr(l,n,b)&&!xs(d,b))return!0}}}else return(r||i)&&(!i||!i.$stable)?!0:n===l?!1:n?l?Mn(n,l,d):!0:!!l;return!1}function Mn(e,t,s){const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!0;for(let r=0;r<n.length;r++){const o=n[r];if(Vr(t,e,o)&&!xs(s,o))return!0}return!1}function Vr(e,t,s){const n=e[s],r=t[s];return s==="style"&&z(n)&&z(r)?!Zs(n,r):n!==r}function Yl({vnode:e,parent:t,suspense:s},n){for(;t;){const r=t.subTree;if(r.suspense&&r.suspense.activeBranch===e&&(r.suspense.vnode.el=r.el=n,e=r),r===e)(e=t.vnode).el=n,t=t.parent;else break}s&&s.activeBranch===e&&(s.vnode.el=n)}const Ur={},qr=()=>Object.create(Ur),Jr=e=>Object.getPrototypeOf(e)===Ur;function Xl(e,t,s,n=!1){const r={},o=qr();e.propsDefaults=Object.create(null),Gr(e,t,r,o);for(const l in e.propsOptions[0])l in r||(r[l]=void 0);s?e.props=n?r:Qo(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function Zl(e,t,s,n){const{props:r,attrs:o,vnode:{patchFlag:l}}=e,i=B(r),[c]=e.propsOptions;let d=!1;if((n||l>0)&&!(l&16)){if(l&8){const a=e.vnode.dynamicProps;for(let p=0;p<a.length;p++){let b=a[p];if(xs(e.emitsOptions,b))continue;const h=t[b];if(c)if(U(o,b))h!==o[b]&&(o[b]=h,d=!0);else{const I=_e(b);r[I]=Vs(c,i,I,h,e,!1)}else h!==o[b]&&(o[b]=h,d=!0)}}}else{Gr(e,t,r,o)&&(d=!0);let a;for(const p in i)(!t||!U(t,p)&&((a=ft(p))===p||!U(t,a)))&&(c?s&&(s[p]!==void 0||s[a]!==void 0)&&(r[p]=Vs(c,i,p,void 0,e,!0)):delete r[p]);if(o!==i)for(const p in o)(!t||!U(t,p))&&(delete o[p],d=!0)}d&&Ue(e.attrs,"set","")}function Gr(e,t,s,n){const[r,o]=e.propsOptions;let l=!1,i;if(t)for(let c in t){if(Pt(c))continue;const d=t[c];let a;r&&U(r,a=_e(c))?!o||!o.includes(a)?s[a]=d:(i||(i={}))[a]=d:xs(e.emitsOptions,c)||(!(c in n)||d!==n[c])&&(n[c]=d,l=!0)}if(o){const c=B(s),d=i||te;for(let a=0;a<o.length;a++){const p=o[a];s[p]=Vs(r,c,p,d[p],e,!U(d,p))}}return l}function Vs(e,t,s,n,r,o){const l=e[s];if(l!=null){const i=U(l,"default");if(i&&n===void 0){const c=l.default;if(l.type!==Function&&!l.skipFactory&&F(c)){const{propsDefaults:d}=r;if(s in d)n=d[s];else{const a=qt(r);n=d[s]=c.call(null,t),a()}}else n=c;r.ce&&r.ce._setProp(s,n)}l[0]&&(o&&!i?n=!1:l[1]&&(n===""||n===ft(s))&&(n=!0))}return n}const Ql=new WeakMap;function zr(e,t,s=!1){const n=s?Ql:t.propsCache,r=n.get(e);if(r)return r;const o=e.props,l={},i=[];let c=!1;if(!F(e)){const a=p=>{c=!0;const[b,h]=zr(p,t,!0);fe(l,b),h&&i.push(...h)};!s&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return z(e)&&n.set(e,gt),gt;if($(o))for(let a=0;a<o.length;a++){const p=_e(o[a]);In(p)&&(l[p]=te)}else if(o)for(const a in o){const p=_e(a);if(In(p)){const b=o[a],h=l[p]=$(b)||F(b)?{type:b}:fe({},b),I=h.type;let E=!1,K=!0;if($(I))for(let X=0;X<I.length;++X){const D=I[X],J=F(D)&&D.name;if(J==="Boolean"){E=!0;break}else J==="String"&&(K=!1)}else E=F(I)&&I.name==="Boolean";h[0]=E,h[1]=K,(E||U(h,"default"))&&i.push(p)}}const d=[l,i];return z(e)&&n.set(e,d),d}function In(e){return e[0]!=="$"&&!Pt(e)}const un=e=>e==="_"||e==="_ctx"||e==="$stable",fn=e=>$(e)?e.map(De):[De(e)],ei=(e,t,s)=>{if(t._n)return t;const n=hl((...r)=>fn(t(...r)),s);return n._c=!1,n},Yr=(e,t,s)=>{const n=e._ctx;for(const r in e){if(un(r))continue;const o=e[r];if(F(o))t[r]=ei(r,o,n);else if(o!=null){const l=fn(o);t[r]=()=>l}}},Xr=(e,t)=>{const s=fn(t);e.slots.default=()=>s},Zr=(e,t,s)=>{for(const n in t)(s||!un(n))&&(e[n]=t[n])},ti=(e,t,s)=>{const n=e.slots=qr();if(e.vnode.shapeFlag&32){const r=t._;r?(Zr(n,t,s),s&&rr(n,"_",r,!0)):Yr(t,n)}else t&&Xr(e,t)},si=(e,t,s)=>{const{vnode:n,slots:r}=e;let o=!0,l=te;if(n.shapeFlag&32){const i=t._;i?s&&i===1?o=!1:Zr(r,t,s):(o=!t.$stable,Yr(t,r)),l=t}else t&&(Xr(e,t),l={default:1});if(o)for(const i in r)!un(i)&&l[i]==null&&delete r[i]},ve=ii;function ni(e){return ri(e)}function ri(e,t){const s=ps();s.__VUE__=!0;const{insert:n,remove:r,patchProp:o,createElement:l,createText:i,createComment:c,setText:d,setElementText:a,parentNode:p,nextSibling:b,setScopeId:h=Ne,insertStaticContent:I}=e,E=(u,f,g,y=null,m=null,_=null,C=void 0,k=null,S=!!f.dynamicChildren)=>{if(u===f)return;u&&!Ot(u,f)&&(y=zt(u),Ae(u,m,_,!0),u=null),f.patchFlag===-2&&(S=!1,f.dynamicChildren=null);const{type:v,ref:A,shapeFlag:T}=f;switch(v){case Ss:K(u,f,g,y);break;case st:X(u,f,g,y);break;case Rs:u==null&&D(f,g,y,C);break;case W:Pe(u,f,g,y,m,_,C,k,S);break;default:T&1?V(u,f,g,y,m,_,C,k,S):T&6?Ze(u,f,g,y,m,_,C,k,S):(T&64||T&128)&&v.process(u,f,g,y,m,_,C,k,S,kt)}A!=null&&m?Rt(A,u&&u.ref,_,f||u,!f):A==null&&u&&u.ref!=null&&Rt(u.ref,null,_,u,!0)},K=(u,f,g,y)=>{if(u==null)n(f.el=i(f.children),g,y);else{const m=f.el=u.el;f.children!==u.children&&d(m,f.children)}},X=(u,f,g,y)=>{u==null?n(f.el=c(f.children||""),g,y):f.el=u.el},D=(u,f,g,y)=>{[u.el,u.anchor]=I(u.children,f,g,y,u.el,u.anchor)},J=({el:u,anchor:f},g,y)=>{let m;for(;u&&u!==f;)m=b(u),n(u,g,y),u=m;n(f,g,y)},M=({el:u,anchor:f})=>{let g;for(;u&&u!==f;)g=b(u),r(u),u=g;r(f)},V=(u,f,g,y,m,_,C,k,S)=>{if(f.type==="svg"?C="svg":f.type==="math"&&(C="mathml"),u==null)Be(f,g,y,m,_,C,k,S);else{const v=u.el&&u.el._isVueCE?u.el:null;try{v&&v._beginPatch(),N(u,f,m,_,C,k,S)}finally{v&&v._endPatch()}}},Be=(u,f,g,y,m,_,C,k)=>{let S,v;const{props:A,shapeFlag:T,transition:P,dirs:R}=u;if(S=u.el=l(u.type,_,A&&A.is,A),T&8?a(S,u.children):T&16&&L(u.children,S,null,y,m,Is(u,_),C,k),R&&ot(u,null,y,"created"),ae(S,u,u.scopeId,C,y),A){for(const Y in A)Y!=="value"&&!Pt(Y)&&o(S,Y,null,A[Y],_,y);"value"in A&&o(S,"value",null,A.value,_),(v=A.onVnodeBeforeMount)&&$e(v,y,u)}R&&ot(u,null,y,"beforeMount");const H=oi(m,P);H&&P.beforeEnter(S),n(S,f,g),((v=A&&A.onVnodeMounted)||H||R)&&ve(()=>{try{v&&$e(v,y,u),H&&P.enter(S),R&&ot(u,null,y,"mounted")}finally{}},m)},ae=(u,f,g,y,m)=>{if(g&&h(u,g),y)for(let _=0;_<y.length;_++)h(u,y[_]);if(m){let _=m.subTree;if(f===_||so(_.type)&&(_.ssContent===f||_.ssFallback===f)){const C=m.vnode;ae(u,C,C.scopeId,C.slotScopeIds,m.parent)}}},L=(u,f,g,y,m,_,C,k,S=0)=>{for(let v=S;v<u.length;v++){const A=u[v]=k?Ve(u[v]):De(u[v]);E(null,A,f,g,y,m,_,C,k)}},N=(u,f,g,y,m,_,C)=>{const k=f.el=u.el;let{patchFlag:S,dynamicChildren:v,dirs:A}=f;S|=u.patchFlag&16;const T=u.props||te,P=f.props||te;let R;if(g&&lt(g,!1),(R=P.onVnodeBeforeUpdate)&&$e(R,g,f,u),A&&ot(f,u,g,"beforeUpdate"),g&&lt(g,!0),(T.innerHTML&&P.innerHTML==null||T.textContent&&P.textContent==null)&&a(k,""),v?le(u.dynamicChildren,v,k,g,y,Is(f,m),_):C||Z(u,f,k,null,g,y,Is(f,m),_,!1),S>0){if(S&16)ke(k,T,P,g,m);else if(S&2&&T.class!==P.class&&o(k,"class",null,P.class,m),S&4&&o(k,"style",T.style,P.style,m),S&8){const H=f.dynamicProps;for(let Y=0;Y<H.length;Y++){const Q=H[Y],ie=T[Q],ue=P[Q];(ue!==ie||Q==="value")&&o(k,Q,ie,ue,m,g)}}S&1&&u.children!==f.children&&a(k,f.children)}else!C&&v==null&&ke(k,T,P,g,m);((R=P.onVnodeUpdated)||A)&&ve(()=>{R&&$e(R,g,f,u),A&&ot(f,u,g,"updated")},y)},le=(u,f,g,y,m,_,C)=>{for(let k=0;k<f.length;k++){const S=u[k],v=f[k],A=S.el&&(S.type===W||!Ot(S,v)||S.shapeFlag&198)?p(S.el):g;E(S,v,A,null,y,m,_,C,!0)}},ke=(u,f,g,y,m)=>{if(f!==g){if(f!==te)for(const _ in f)!Pt(_)&&!(_ in g)&&o(u,_,f[_],null,m,y);for(const _ in g){if(Pt(_))continue;const C=g[_],k=f[_];C!==k&&_!=="value"&&o(u,_,k,C,m,y)}"value"in g&&o(u,"value",f.value,g.value,m)}},Pe=(u,f,g,y,m,_,C,k,S)=>{const v=f.el=u?u.el:i(""),A=f.anchor=u?u.anchor:i("");let{patchFlag:T,dynamicChildren:P,slotScopeIds:R}=f;R&&(k=k?k.concat(R):R),u==null?(n(v,g,y),n(A,g,y),L(f.children||[],g,A,m,_,C,k,S)):T>0&&T&64&&P&&u.dynamicChildren&&u.dynamicChildren.length===P.length?(le(u.dynamicChildren,P,g,m,_,C,k),(f.key!=null||m&&f===m.subTree)&&Qr(u,f,!0)):Z(u,f,g,A,m,_,C,k,S)},Ze=(u,f,g,y,m,_,C,k,S)=>{f.slotScopeIds=k,u==null?f.shapeFlag&512?m.ctx.activate(f,g,y,C,S):St(f,g,y,m,_,C,S):Jt(u,f,S)},St=(u,f,g,y,m,_,C)=>{const k=u.component=pi(u,y,m);if(Fr(u)&&(k.ctx.renderer=kt),gi(k,!1,C),k.asyncDep){if(m&&m.registerDep(k,re,C),!u.el){const S=k.subTree=me(st);X(null,S,f,g),u.placeholder=S.el}}else re(k,u,f,g,m,_,C)},Jt=(u,f,g)=>{const y=f.component=u.component;if(zl(u,f,g))if(y.asyncDep&&!y.asyncResolved){j(y,f,g);return}else y.next=f,y.update();else f.el=u.el,y.vnode=f},re=(u,f,g,y,m,_,C)=>{const k=()=>{if(u.isMounted){let{next:T,bu:P,u:R,parent:H,vnode:Y}=u;{const Ie=eo(u);if(Ie){T&&(T.el=Y.el,j(u,T,C)),Ie.asyncDep.then(()=>{ve(()=>{u.isUnmounted||v()},m)});return}}let Q=T,ie;lt(u,!1),T?(T.el=Y.el,j(u,T,C)):T=Y,P&&Ts(P),(ie=T.props&&T.props.onVnodeBeforeUpdate)&&$e(ie,H,T,Y),lt(u,!0);const ue=An(u),Me=u.subTree;u.subTree=ue,E(Me,ue,p(Me.el),zt(Me),u,m,_),T.el=ue.el,Q===null&&Yl(u,ue.el),R&&ve(R,m),(ie=T.props&&T.props.onVnodeUpdated)&&ve(()=>$e(ie,H,T,Y),m)}else{let T;const{el:P,props:R}=f,{bm:H,m:Y,parent:Q,root:ie,type:ue}=u,Me=$t(f);lt(u,!1),H&&Ts(H),!Me&&(T=R&&R.onVnodeBeforeMount)&&$e(T,Q,f),lt(u,!0);{ie.ce&&ie.ce._hasShadowRoot()&&ie.ce._injectChildStyle(ue,u.parent?u.parent.type:void 0);const Ie=u.subTree=An(u);E(null,Ie,g,y,u,m,_),f.el=Ie.el}if(Y&&ve(Y,m),!Me&&(T=R&&R.onVnodeMounted)){const Ie=f;ve(()=>$e(T,Q,Ie),m)}(f.shapeFlag&256||Q&&$t(Q.vnode)&&Q.vnode.shapeFlag&256)&&u.a&&ve(u.a,m),u.isMounted=!0,f=g=y=null}};u.scope.on();const S=u.effect=new ar(k);u.scope.off();const v=u.update=S.run.bind(S),A=u.job=S.runIfDirty.bind(S);A.i=u,A.id=u.uid,S.scheduler=()=>ln(A),lt(u,!0),v()},j=(u,f,g)=>{f.component=u;const y=u.vnode.props;u.vnode=f,u.next=null,Zl(u,f.props,y,g),si(u,f.children,g),Ge(),Sn(u),ze()},Z=(u,f,g,y,m,_,C,k,S=!1)=>{const v=u&&u.children,A=u?u.shapeFlag:0,T=f.children,{patchFlag:P,shapeFlag:R}=f;if(P>0){if(P&128){Gt(v,T,g,y,m,_,C,k,S);return}else if(P&256){nt(v,T,g,y,m,_,C,k,S);return}}R&8?(A&16&&wt(v,m,_),T!==v&&a(g,T)):A&16?R&16?Gt(v,T,g,y,m,_,C,k,S):wt(v,m,_,!0):(A&8&&a(g,""),R&16&&L(T,g,y,m,_,C,k,S))},nt=(u,f,g,y,m,_,C,k,S)=>{u=u||gt,f=f||gt;const v=u.length,A=f.length,T=Math.min(v,A);let P;for(P=0;P<T;P++){const R=f[P]=S?Ve(f[P]):De(f[P]);E(u[P],R,g,null,m,_,C,k,S)}v>A?wt(u,m,_,!0,!1,T):L(f,g,y,m,_,C,k,S,T)},Gt=(u,f,g,y,m,_,C,k,S)=>{let v=0;const A=f.length;let T=u.length-1,P=A-1;for(;v<=T&&v<=P;){const R=u[v],H=f[v]=S?Ve(f[v]):De(f[v]);if(Ot(R,H))E(R,H,g,null,m,_,C,k,S);else break;v++}for(;v<=T&&v<=P;){const R=u[T],H=f[P]=S?Ve(f[P]):De(f[P]);if(Ot(R,H))E(R,H,g,null,m,_,C,k,S);else break;T--,P--}if(v>T){if(v<=P){const R=P+1,H=R<A?f[R].el:y;for(;v<=P;)E(null,f[v]=S?Ve(f[v]):De(f[v]),g,H,m,_,C,k,S),v++}}else if(v>P)for(;v<=T;)Ae(u[v],m,_,!0),v++;else{const R=v,H=v,Y=new Map;for(v=H;v<=P;v++){const ye=f[v]=S?Ve(f[v]):De(f[v]);ye.key!=null&&Y.set(ye.key,v)}let Q,ie=0;const ue=P-H+1;let Me=!1,Ie=0;const Ct=new Array(ue);for(v=0;v<ue;v++)Ct[v]=0;for(v=R;v<=T;v++){const ye=u[v];if(ie>=ue){Ae(ye,m,_,!0);continue}let Re;if(ye.key!=null)Re=Y.get(ye.key);else for(Q=H;Q<=P;Q++)if(Ct[Q-H]===0&&Ot(ye,f[Q])){Re=Q;break}Re===void 0?Ae(ye,m,_,!0):(Ct[Re-H]=v+1,Re>=Ie?Ie=Re:Me=!0,E(ye,f[Re],g,null,m,_,C,k,S),ie++)}const gn=Me?li(Ct):gt;for(Q=gn.length-1,v=ue-1;v>=0;v--){const ye=H+v,Re=f[ye],bn=f[ye+1],mn=ye+1<A?bn.el||to(bn):y;Ct[v]===0?E(null,Re,g,mn,m,_,C,k,S):Me&&(Q<0||v!==gn[Q]?rt(Re,g,mn,2):Q--)}}},rt=(u,f,g,y,m=null)=>{const{el:_,type:C,transition:k,children:S,shapeFlag:v}=u;if(v&6){rt(u.component.subTree,f,g,y);return}if(v&128){u.suspense.move(f,g,y);return}if(v&64){C.move(u,f,g,kt);return}if(C===W){n(_,f,g);for(let T=0;T<S.length;T++)rt(S[T],f,g,y);n(u.anchor,f,g);return}if(C===Rs){J(u,f,g);return}if(y!==2&&v&1&&k)if(y===0)k.beforeEnter(_),n(_,f,g),ve(()=>k.enter(_),m);else{const{leave:T,delayLeave:P,afterLeave:R}=k,H=()=>{u.ctx.isUnmounted?r(_):n(_,f,g)},Y=()=>{_._isLeaving&&_[xl](!0),T(_,()=>{H(),R&&R()})};P?P(_,H,Y):Y()}else n(_,f,g)},Ae=(u,f,g,y=!1,m=!1)=>{const{type:_,props:C,ref:k,children:S,dynamicChildren:v,shapeFlag:A,patchFlag:T,dirs:P,cacheIndex:R,memo:H}=u;if(T===-2&&(m=!1),k!=null&&(Ge(),Rt(k,null,g,u,!0),ze()),R!=null&&(f.renderCache[R]=void 0),A&256){f.ctx.deactivate(u);return}const Y=A&1&&P,Q=!$t(u);let ie;if(Q&&(ie=C&&C.onVnodeBeforeUnmount)&&$e(ie,f,u),A&6)yo(u.component,g,y);else{if(A&128){u.suspense.unmount(g,y);return}Y&&ot(u,null,f,"beforeUnmount"),A&64?u.type.remove(u,f,g,kt,y):v&&!v.hasOnce&&(_!==W||T>0&&T&64)?wt(v,f,g,!1,!0):(_===W&&T&384||!m&&A&16)&&wt(S,f,g),y&&hn(u)}const ue=H!=null&&R==null;(Q&&(ie=C&&C.onVnodeUnmounted)||Y||ue)&&ve(()=>{ie&&$e(ie,f,u),Y&&ot(u,null,f,"unmounted"),ue&&(u.el=null)},g)},hn=u=>{const{type:f,el:g,anchor:y,transition:m}=u;if(f===W){vo(g,y);return}if(f===Rs){M(u);return}const _=()=>{r(g),m&&!m.persisted&&m.afterLeave&&m.afterLeave()};if(u.shapeFlag&1&&m&&!m.persisted){const{leave:C,delayLeave:k}=m,S=()=>C(g,_);k?k(u.el,_,S):S()}else _()},vo=(u,f)=>{let g;for(;u!==f;)g=b(u),r(u),u=g;r(f)},yo=(u,f,g)=>{const{bum:y,scope:m,job:_,subTree:C,um:k,m:S,a:v}=u;Rn(S),Rn(v),y&&Ts(y),m.stop(),_&&(_.flags|=8,Ae(C,u,f,g)),k&&ve(k,f),ve(()=>{u.isUnmounted=!0},f)},wt=(u,f,g,y=!1,m=!1,_=0)=>{for(let C=_;C<u.length;C++)Ae(u[C],f,g,y,m)},zt=u=>{if(u.shapeFlag&6)return zt(u.component.subTree);if(u.shapeFlag&128)return u.suspense.next();const f=b(u.anchor||u.el),g=f&&f[vl];return g?b(g):f};let ks=!1;const pn=(u,f,g)=>{let y;u==null?f._vnode&&(Ae(f._vnode,null,null,!0),y=f._vnode.component):E(f._vnode||null,u,f,null,null,null,g),f._vnode=u,ks||(ks=!0,Sn(y),Pr(),ks=!1)},kt={p:E,um:Ae,m:rt,r:hn,mt:St,mc:L,pc:Z,pbc:le,n:zt,o:e};return{render:pn,hydrate:void 0,createApp:Kl(pn)}}function Is({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function lt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function oi(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Qr(e,t,s=!1){const n=e.children,r=t.children;if($(n)&&$(r))for(let o=0;o<n.length;o++){const l=n[o];let i=r[o];i.shapeFlag&1&&!i.dynamicChildren&&((i.patchFlag<=0||i.patchFlag===32)&&(i=r[o]=Ve(r[o]),i.el=l.el),!s&&i.patchFlag!==-2&&Qr(l,i)),i.type===Ss&&(i.patchFlag===-1&&(i=r[o]=Ve(i)),i.el=l.el),i.type===st&&!i.el&&(i.el=l.el)}}function li(e){const t=e.slice(),s=[0];let n,r,o,l,i;const c=e.length;for(n=0;n<c;n++){const d=e[n];if(d!==0){if(r=s[s.length-1],e[r]<d){t[n]=r,s.push(n);continue}for(o=0,l=s.length-1;o<l;)i=o+l>>1,e[s[i]]<d?o=i+1:l=i;d<e[s[o]]&&(o>0&&(t[n]=s[o-1]),s[o]=n)}}for(o=s.length,l=s[o-1];o-- >0;)s[o]=l,l=t[l];return s}function eo(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:eo(t)}function Rn(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function to(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?to(t.subTree):null}const so=e=>e.__isSuspense;function ii(e,t){t&&t.pendingBranch?$(e)?t.effects.push(...e):t.effects.push(e):dl(e)}const W=Symbol.for("v-fgt"),Ss=Symbol.for("v-txt"),st=Symbol.for("v-cmt"),Rs=Symbol.for("v-stc"),jt=[];let Se=null;function x(e=!1){jt.push(Se=e?null:[])}function ci(){jt.pop(),Se=jt[jt.length-1]||null}let Wt=1;function $n(e,t=!1){Wt+=e,e<0&&Se&&t&&(Se.hasOnce=!0)}function no(e){return e.dynamicChildren=Wt>0?Se||gt:null,ci(),Wt>0&&Se&&Se.push(e),e}function w(e,t,s,n,r,o){return no(O(e,t,s,n,r,o,!0))}function xe(e,t,s,n,r){return no(me(e,t,s,n,r,!0))}function ro(e){return e?e.__v_isVNode===!0:!1}function Ot(e,t){return e.type===t.type&&e.key===t.key}const oo=({key:e})=>e??null,es=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?ce(e)||ne(e)||F(e)?{i:Te,r:e,k:t,f:!!s}:e:null);function O(e,t=null,s=null,n=0,r=null,o=e===W?0:1,l=!1,i=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&oo(t),ref:t&&es(t),scopeId:Mr,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:n,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Te};return i?(an(c,s),o&128&&e.normalize(c)):s&&(c.shapeFlag|=ce(s)?8:16),Wt>0&&!l&&Se&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Se.push(c),c}const me=ui;function ui(e,t=null,s=null,n=0,r=null,o=!1){if((!e||e===$l)&&(e=st),ro(e)){const i=yt(e,t,!0);return s&&an(i,s),Wt>0&&!o&&Se&&(i.shapeFlag&6?Se[Se.indexOf(e)]=i:Se.push(i)),i.patchFlag=-2,i}if(yi(e)&&(e=e.__vccOpts),t){t=fi(t);let{class:i,style:c}=t;i&&!ce(i)&&(t.class=gs(i)),z(c)&&(_s(c)&&!$(c)&&(c=fe({},c)),t.style=Xs(c))}const l=ce(e)?1:so(e)?128:yl(e)?64:z(e)?4:F(e)?2:0;return O(e,t,s,n,r,l,o,!0)}function fi(e){return e?_s(e)||Jr(e)?fe({},e):e:null}function yt(e,t,s=!1,n=!1){const{props:r,ref:o,patchFlag:l,children:i,transition:c}=e,d=t?ai(r||{},t):r,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&oo(d),ref:t&&t.ref?s&&o?$(o)?o.concat(es(t)):[o,es(t)]:es(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==W?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&yt(e.ssContent),ssFallback:e.ssFallback&&yt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&n&&cn(a,c.clone(a)),a}function qe(e=" ",t=0){return me(Ss,null,e,t)}function se(e="",t=!1){return t?(x(),xe(st,null,e)):me(st,null,e)}function De(e){return e==null||typeof e=="boolean"?me(st):$(e)?me(W,null,e.slice()):ro(e)?Ve(e):me(Ss,null,String(e))}function Ve(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:yt(e)}function an(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if($(t))s=16;else if(typeof t=="object")if(n&65){const r=t.default;r&&(r._c&&(r._d=!1),an(e,r()),r._c&&(r._d=!0));return}else{s=32;const r=t._;!r&&!Jr(t)?t._ctx=Te:r===3&&Te&&(Te.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else F(t)?(t={default:t,_ctx:Te},s=32):(t=String(t),n&64?(s=16,t=[qe(t)]):s=8);e.children=t,e.shapeFlag|=s}function ai(...e){const t={};for(let s=0;s<e.length;s++){const n=e[s];for(const r in n)if(r==="class")t.class!==n.class&&(t.class=gs([t.class,n.class]));else if(r==="style")t.style=Xs([t.style,n.style]);else if(us(r)){const o=t[r],l=n[r];l&&o!==l&&!($(o)&&o.includes(l))?t[r]=o?[].concat(o,l):l:l==null&&o==null&&!fs(r)&&(t[r]=l)}else r!==""&&(t[r]=n[r])}return t}function $e(e,t,s,n=null){He(e,t,7,[s,n])}const di=Wr();let hi=0;function pi(e,t,s){const n=e.type,r=(t?t.appContext:e.appContext)||di,o={uid:hi++,vnode:e,type:n,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new cr(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:zr(n,r),emitsOptions:Kr(n,r),emit:null,emitted:null,propsDefaults:te,inheritAttrs:n.inheritAttrs,ctx:te,data:te,props:te,attrs:te,slots:te,refs:te,setupState:te,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return o.ctx={_:o},o.root=t?t.root:o,o.emit=Ul.bind(null,o),e.ce&&e.ce(o),o}let pe=null;const lo=()=>pe||Te;let cs,Us;{const e=ps(),t=(s,n)=>{let r;return(r=e[s])||(r=e[s]=[]),r.push(n),o=>{r.length>1?r.forEach(l=>l(o)):r[0](o)}};cs=t("__VUE_INSTANCE_SETTERS__",s=>pe=s),Us=t("__VUE_SSR_SETTERS__",s=>Kt=s)}const qt=e=>{const t=pe;return cs(e),e.scope.on(),()=>{e.scope.off(),cs(t)}},Fn=()=>{pe&&pe.scope.off(),cs(null)};function io(e){return e.vnode.shapeFlag&4}let Kt=!1;function gi(e,t=!1,s=!1){t&&Us(t);const{props:n,children:r}=e.vnode,o=io(e);Xl(e,n,o,t),ti(e,r,s||t);const l=o?bi(e,t):void 0;return t&&Us(!1),l}function bi(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,jl);const{setup:n}=s;if(n){Ge();const r=e.setupContext=n.length>1?_i(e):null,o=qt(e),l=Ut(n,e,0,[e.props,r]),i=tr(l);if(ze(),o(),(i||e.sp)&&!$t(e)&&$r(e),i){if(l.then(Fn,Fn),t)return l.then(c=>{jn(e,c)}).catch(c=>{vs(c,e,0)});e.asyncDep=l}else jn(e,l)}else co(e)}function jn(e,t,s){F(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:z(t)&&(e.setupState=Cr(t)),co(e)}function co(e,t,s){const n=e.type;e.render||(e.render=n.render||Ne);{const r=qt(e);Ge();try{Dl(e)}finally{ze(),r()}}}const mi={get(e,t){return he(e,"get",""),e[t]}};function _i(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,mi),slots:e.slots,emit:e.emit,expose:t}}function dn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Cr(on(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Ft)return Ft[s](e)},has(t,s){return s in t||s in Ft}})):e.proxy}function vi(e,t=!0){return F(e)?e.displayName||e.name:e.name||t&&e.__name}function yi(e){return F(e)&&"__vccOpts"in e}const G=(e,t)=>il(e,t,Kt),xi="3.5.32";/**
14
- * @vue/runtime-dom v3.5.32
15
- * (c) 2018-present Yuxi (Evan) You and Vue contributors
16
- * @license MIT
17
- **/let qs;const Dn=typeof window<"u"&&window.trustedTypes;if(Dn)try{qs=Dn.createPolicy("vue",{createHTML:e=>e})}catch{}const uo=qs?e=>qs.createHTML(e):e=>e,Si="http://www.w3.org/2000/svg",wi="http://www.w3.org/1998/Math/MathML",Ke=typeof document<"u"?document:null,Ln=Ke&&Ke.createElement("template"),ki={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const r=t==="svg"?Ke.createElementNS(Si,e):t==="mathml"?Ke.createElementNS(wi,e):s?Ke.createElement(e,{is:s}):Ke.createElement(e);return e==="select"&&n&&n.multiple!=null&&r.setAttribute("multiple",n.multiple),r},createText:e=>Ke.createTextNode(e),createComment:e=>Ke.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ke.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,r,o){const l=s?s.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),s),!(r===o||!(r=r.nextSibling)););else{Ln.innerHTML=uo(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const i=Ln.content;if(n==="svg"||n==="mathml"){const c=i.firstChild;for(;c.firstChild;)i.appendChild(c.firstChild);i.removeChild(c)}t.insertBefore(i,s)}return[l?l.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Ci=Symbol("_vtc");function Ti(e,t,s){const n=e[Ci];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const Nn=Symbol("_vod"),Oi=Symbol("_vsh"),Ei=Symbol(""),Pi=/(?:^|;)\s*display\s*:/;function Ai(e,t,s){const n=e.style,r=ce(s);let o=!1;if(s&&!r){if(t)if(ce(t))for(const l of t.split(";")){const i=l.slice(0,l.indexOf(":")).trim();s[i]==null&&ts(n,i,"")}else for(const l in t)s[l]==null&&ts(n,l,"");for(const l in s)l==="display"&&(o=!0),ts(n,l,s[l])}else if(r){if(t!==s){const l=n[Ei];l&&(s+=";"+l),n.cssText=s,o=Pi.test(s)}}else t&&e.removeAttribute("style");Nn in e&&(e[Nn]=o?n.display:"",e[Oi]&&(n.display="none"))}const Hn=/\s*!important$/;function ts(e,t,s){if($(s))s.forEach(n=>ts(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=Mi(e,t);Hn.test(s)?e.setProperty(ft(n),s.replace(Hn,""),"important"):e[n]=s}}const Bn=["Webkit","Moz","ms"],$s={};function Mi(e,t){const s=$s[t];if(s)return s;let n=_e(t);if(n!=="filter"&&n in e)return $s[t]=n;n=hs(n);for(let r=0;r<Bn.length;r++){const o=Bn[r]+n;if(o in e)return $s[t]=o}return t}const Wn="http://www.w3.org/1999/xlink";function Kn(e,t,s,n,r,o=Mo(t)){n&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(Wn,t.slice(6,t.length)):e.setAttributeNS(Wn,t,s):s==null||o&&!or(s)?e.removeAttribute(t):e.setAttribute(t,o?"":Ce(s)?String(s):s)}function Vn(e,t,s,n,r){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?uo(s):s);return}const o=e.tagName;if(t==="value"&&o!=="PROGRESS"&&!o.includes("-")){const i=o==="OPTION"?e.getAttribute("value")||"":e.value,c=s==null?e.type==="checkbox"?"on":"":String(s);(i!==c||!("_value"in e))&&(e.value=c),s==null&&e.removeAttribute(t),e._value=s;return}let l=!1;if(s===""||s==null){const i=typeof e[t];i==="boolean"?s=or(s):s==null&&i==="string"?(s="",l=!0):i==="number"&&(s=0,l=!0)}try{e[t]=s}catch{}l&&e.removeAttribute(r||t)}function Ii(e,t,s,n){e.addEventListener(t,s,n)}function Ri(e,t,s,n){e.removeEventListener(t,s,n)}const Un=Symbol("_vei");function $i(e,t,s,n,r=null){const o=e[Un]||(e[Un]={}),l=o[t];if(n&&l)l.value=n;else{const[i,c]=Fi(t);if(n){const d=o[t]=Li(n,r);Ii(e,i,d,c)}else l&&(Ri(e,i,l,c),o[t]=void 0)}}const qn=/(?:Once|Passive|Capture)$/;function Fi(e){let t;if(qn.test(e)){t={};let n;for(;n=e.match(qn);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):ft(e.slice(2)),t]}let Fs=0;const ji=Promise.resolve(),Di=()=>Fs||(ji.then(()=>Fs=0),Fs=Date.now());function Li(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;He(Ni(n,s.value),t,5,[n])};return s.value=e,s.attached=Di(),s}function Ni(e,t){if($(t)){const s=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{s.call(e),e._stopped=!0},t.map(n=>r=>!r._stopped&&n&&n(r))}else return t}const Jn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Hi=(e,t,s,n,r,o)=>{const l=r==="svg";t==="class"?Ti(e,n,l):t==="style"?Ai(e,s,n):us(t)?fs(t)||$i(e,t,s,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Bi(e,t,n,l))?(Vn(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Kn(e,t,n,l,o,t!=="value")):e._isVueCE&&(Wi(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ce(n)))?Vn(e,_e(t),n,o,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Kn(e,t,n,l))};function Bi(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Jn(t)&&F(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Jn(t)&&ce(s)?!1:t in e}function Wi(e,t){const s=e._def.props;if(!s)return!1;const n=_e(t);return Array.isArray(s)?s.some(r=>_e(r)===n):Object.keys(s).some(r=>_e(r)===n)}const Ki=fe({patchProp:Hi},ki);let Gn;function Vi(){return Gn||(Gn=ni(Ki))}const Ui=(...e)=>{const t=Vi().createApp(...e),{mount:s}=t;return t.mount=n=>{const r=Ji(n);if(!r)return;const o=t._component;!F(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const l=s(r,!1,qi(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t};function qi(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ji(e){return ce(e)?document.querySelector(e):e}/*!
18
- * pinia v2.3.1
19
- * (c) 2025 Eduardo San Martin Morote
20
- * @license MIT
21
- */let fo;const ws=e=>fo=e,ao=Symbol();function Js(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Dt;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Dt||(Dt={}));function Gi(){const e=ur(!0),t=e.run(()=>Ht({}));let s=[],n=[];const r=on({install(o){ws(r),r._a=o,o.provide(ao,r),o.config.globalProperties.$pinia=r,n.forEach(l=>s.push(l)),n=[]},use(o){return this._a?s.push(o):n.push(o),this},_p:s,_a:null,_e:e,_s:new Map,state:t});return r}const ho=()=>{};function zn(e,t,s,n=ho){e.push(t);const r=()=>{const o=e.indexOf(t);o>-1&&(e.splice(o,1),n())};return!s&&fr()&&Ro(r),r}function ht(e,...t){e.slice().forEach(s=>{s(...t)})}const zi=e=>e(),Yn=Symbol(),js=Symbol();function Gs(e,t){e instanceof Map&&t instanceof Map?t.forEach((s,n)=>e.set(n,s)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const s in t){if(!t.hasOwnProperty(s))continue;const n=t[s],r=e[s];Js(r)&&Js(n)&&e.hasOwnProperty(s)&&!ne(n)&&!Je(n)?e[s]=Gs(r,n):e[s]=n}return e}const Yi=Symbol();function Xi(e){return!Js(e)||!e.hasOwnProperty(Yi)}const{assign:Qe}=Object;function Zi(e){return!!(ne(e)&&e.effect)}function Qi(e,t,s,n){const{state:r,actions:o,getters:l}=t,i=s.state.value[e];let c;function d(){i||(s.state.value[e]=r?r():{});const a=nl(s.state.value[e]);return Qe(a,o,Object.keys(l||{}).reduce((p,b)=>(p[b]=on(G(()=>{ws(s);const h=s._s.get(e);return l[b].call(h,h)})),p),{}))}return c=po(e,d,t,s,n,!0),c}function po(e,t,s={},n,r,o){let l;const i=Qe({actions:{}},s),c={deep:!0};let d,a,p=[],b=[],h;const I=n.state.value[e];!o&&!I&&(n.state.value[e]={});let E;function K(L){let N;d=a=!1,typeof L=="function"?(L(n.state.value[e]),N={type:Dt.patchFunction,storeId:e,events:h}):(Gs(n.state.value[e],L),N={type:Dt.patchObject,payload:L,storeId:e,events:h});const le=E=Symbol();Or().then(()=>{E===le&&(d=!0)}),a=!0,ht(p,N,n.state.value[e])}const X=o?function(){const{state:N}=s,le=N?N():{};this.$patch(ke=>{Qe(ke,le)})}:ho;function D(){l.stop(),p=[],b=[],n._s.delete(e)}const J=(L,N="")=>{if(Yn in L)return L[js]=N,L;const le=function(){ws(n);const ke=Array.from(arguments),Pe=[],Ze=[];function St(j){Pe.push(j)}function Jt(j){Ze.push(j)}ht(b,{args:ke,name:le[js],store:V,after:St,onError:Jt});let re;try{re=L.apply(this&&this.$id===e?this:V,ke)}catch(j){throw ht(Ze,j),j}return re instanceof Promise?re.then(j=>(ht(Pe,j),j)).catch(j=>(ht(Ze,j),Promise.reject(j))):(ht(Pe,re),re)};return le[Yn]=!0,le[js]=N,le},M={_p:n,$id:e,$onAction:zn.bind(null,b),$patch:K,$reset:X,$subscribe(L,N={}){const le=zn(p,L,N.detached,()=>ke()),ke=l.run(()=>Qt(()=>n.state.value[e],Pe=>{(N.flush==="sync"?a:d)&&L({storeId:e,type:Dt.direct,events:h},Pe)},Qe({},c,N)));return le},$dispose:D},V=ms(M);n._s.set(e,V);const ae=(n._a&&n._a.runWithContext||zi)(()=>n._e.run(()=>(l=ur()).run(()=>t({action:J}))));for(const L in ae){const N=ae[L];if(ne(N)&&!Zi(N)||Je(N))o||(I&&Xi(N)&&(ne(N)?N.value=I[L]:Gs(N,I[L])),n.state.value[e][L]=N);else if(typeof N=="function"){const le=J(N,L);ae[L]=le,i.actions[L]=N}}return Qe(V,ae),Qe(B(V),ae),Object.defineProperty(V,"$state",{get:()=>n.state.value[e],set:L=>{K(N=>{Qe(N,L)})}}),n._p.forEach(L=>{Qe(V,l.run(()=>L({store:V,app:n._a,pinia:n,options:i})))}),I&&o&&s.hydrate&&s.hydrate(V.$state,I),d=!0,a=!0,V}/*! #__NO_SIDE_EFFECTS__ */function ec(e,t,s){let n,r;const o=typeof t=="function";n=e,r=o?s:t;function l(i,c){const d=gl();return i=i||(d?It(ao,null):null),i&&ws(i),i=fo,i._s.has(n)||(o?po(n,t,r,i):Qi(n,r,i)),i._s.get(n)}return l.$id=n,l}const xt=ec("document",()=>{const e=Ht(null);function t(){window.document_data&&(e.value=window.document_data)}const s=G(()=>{var h,I,E;if(!e.value)return"ISO Document";if((h=e.value.metadata)!=null&&h.title)return e.value.metadata.title;if((I=e.value.bibdata)!=null&&I.title){const K=e.value.bibdata.title;if(typeof K=="string")return K;if(K.value)return K.value;if((E=K.title_main)!=null&&E.value)return K.title_main.value}return"ISO Document"}),n=G(()=>{var h;return((h=e.value)==null?void 0:h.bibdata)||null}),r=G(()=>{var h;return((h=e.value)==null?void 0:h.preface)||null}),o=G(()=>{var h;return((h=e.value)==null?void 0:h.sections)||null}),l=G(()=>{var h;return((h=e.value)==null?void 0:h.annex)||[]}),i=G(()=>{var h;return((h=e.value)==null?void 0:h.bibliography)||[]}),c=G(()=>{var h;return((h=e.value)==null?void 0:h.toc)||null}),d=G(()=>{var h;return((h=e.value)==null?void 0:h.index)||null}),a=G(()=>{var h;return((h=e.value)==null?void 0:h.metadata)||null});function p(h){return h?typeof h=="string"?h:typeof h=="number"?String(h):h.value?h.value:h.content?Array.isArray(h.content)?h.content.map(p).join(""):p(h.content):h.text?h.text:h.title?p(h.title):"":""}function b(h){return h?p(h.title||h):""}return{documentData:e,loadFromWindow:t,title:s,bibdata:n,preface:r,sections:o,annex:l,bibliography:i,toc:c,subjectIndex:d,metadata:a,extractText:p,getElementTitle:b}}),go={name:"ISO",logo:"/assets/iso-red.svg",favicon:"/assets/favicon.ico",colors:{primary:"#1e3a5f",accent:"#c9a227",background:"#fafafa",surface:"#ffffff",text:"#374151",textSecondary:"#6b7280",border:"#e5e7eb",error:"#dc2626",warning:"#d97706",success:"#059669"},fonts:{heading:'"Crimson Pro", Georgia, serif',body:'"Source Sans 3", system-ui, sans-serif',monospace:'"JetBrains Mono", monospace'}},Xn=Ht(go);function tc(){const e=G(()=>Xn.value);function t(n){Xn.value=n,s(n)}function s(n){const r=document.documentElement;r.style.setProperty("--color-primary",n.colors.primary),r.style.setProperty("--color-accent",n.colors.accent),r.style.setProperty("--color-background",n.colors.background),r.style.setProperty("--color-surface",n.colors.surface),r.style.setProperty("--color-text",n.colors.text),r.style.setProperty("--color-text-secondary",n.colors.textSecondary),r.style.setProperty("--color-border",n.colors.border),r.style.setProperty("--color-error",n.colors.error),r.style.setProperty("--color-warning",n.colors.warning),r.style.setProperty("--color-success",n.colors.success)}return{theme:e,setTheme:t,applyThemeToCss:s,isoTheme:go}}const bo="/assets/iso-red.svg",sc={class:"bg-[var(--color-surface)] border-b border-[var(--color-border)] px-4 py-3 flex items-center justify-between no-print"},nc={class:"flex items-center gap-4"},rc={class:"font-heading text-lg font-semibold text-[var(--color-primary)] truncate max-w-md"},oc={class:"flex items-center gap-2"},lc={key:0,class:"w-5 h-5 text-[var(--color-text)]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ic={key:1,class:"w-5 h-5 text-[var(--color-text)]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},cc=at({__name:"EbookTopBar",setup(e){const t=xt(),s=Ht(!1),n=Ht(!1);function r(){s.value=!s.value,document.documentElement.classList.toggle("dark")}return(o,l)=>(x(),w("header",sc,[O("div",nc,[l[1]||(l[1]=O("img",{src:bo,alt:"ISO Logo",class:"h-6 w-auto"},null,-1)),O("h1",rc,q(mt(t).title),1)]),O("div",oc,[O("button",{onClick:r,class:"p-2 rounded-lg hover:bg-[var(--color-border)] transition-colors",title:"Toggle dark mode"},[s.value?(x(),w("svg",ic,[...l[3]||(l[3]=[O("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"},null,-1)])])):(x(),w("svg",lc,[...l[2]||(l[2]=[O("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"},null,-1)])]))]),O("button",{onClick:l[0]||(l[0]=i=>n.value=!n.value),class:"p-2 rounded-lg hover:bg-[var(--color-border)] transition-colors",title:"Settings"},[...l[4]||(l[4]=[O("svg",{class:"w-5 h-5 text-[var(--color-text)]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[O("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),O("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)])])])]))}}),uc={class:"h-full flex flex-col bg-[var(--color-surface)]"},fc={class:"flex-1 overflow-y-auto p-4"},ac={key:0,class:"space-y-1"},dc=["href"],hc={key:0,class:"font-mono text-xs text-[var(--color-text-secondary)] mr-1"},pc={key:0,class:"mt-1 space-y-1 border-l-2 border-[var(--color-border)] pl-3 ml-2"},gc=["href"],bc={key:0,class:"font-mono text-xs mr-1"},mc={key:1,class:"text-sm text-[var(--color-text-secondary)]"},_c=at({__name:"EbookSidebar",setup(e){const t=xt(),s=G(()=>t.toc),n=G(()=>s.value&&s.value.children&&s.value.children.length>0);return(r,o)=>{var l;return x(),w("aside",uc,[o[0]||(o[0]=O("div",{class:"p-4 border-b border-[var(--color-border)]"},[O("div",{class:"flex items-center gap-2"},[O("img",{src:bo,alt:"ISO Logo",class:"h-8 w-auto"}),O("span",{class:"font-heading text-lg font-semibold text-[var(--color-primary)]"}," ISO ")])],-1)),O("nav",fc,[n.value?(x(),w("ul",ac,[(x(!0),w(W,null,oe(((l=s.value)==null?void 0:l.children)||[],i=>(x(),w("li",{key:i.id,class:"border-l-2 border-[var(--color-border)] pl-3"},[O("a",{href:"#"+i.id,class:"block py-1 text-sm text-[var(--color-text)] hover:text-[var(--color-primary)] hover:underline"},[i.number?(x(),w("span",hc,q(i.number),1)):se("",!0),qe(" "+q(i.title),1)],8,dc),i.children&&i.children.length>0?(x(),w("ul",pc,[(x(!0),w(W,null,oe(i.children,c=>(x(),w("li",{key:c.id},[O("a",{href:"#"+c.id,class:"block py-1 text-sm text-[var(--color-text-secondary)] hover:text-[var(--color-primary)]"},[c.number?(x(),w("span",bc,q(c.number),1)):se("",!0),qe(" "+q(c.title),1)],8,gc)]))),128))])):se("",!0)]))),128))])):(x(),w("p",mc," No table of contents available. "))]),o[1]||(o[1]=O("div",{class:"p-4 border-t border-[var(--color-border)] text-xs text-[var(--color-text-secondary)]"},[O("p",null,"ISO Document Reader")],-1))])}}}),vc={class:"block-renderer"},yc={key:0,class:"mb-4 text-[var(--color-text)] leading-relaxed"},xc={key:1,class:"font-heading text-3xl font-bold text-[var(--color-primary)] mt-8 mb-4"},Sc={key:2,class:"font-heading text-2xl font-bold text-[var(--color-primary)] mt-6 mb-3"},wc={key:3,class:"font-heading text-xl font-semibold text-[var(--color-text)] mt-4 mb-2"},kc={key:4,class:"font-heading text-lg font-semibold text-[var(--color-text)] mt-3 mb-2"},Cc={key:5,class:"my-4 p-4 bg-gray-50 rounded-lg border border-[var(--color-border)]"},Tc=["innerHTML"],Oc={key:0,class:"text-center text-sm text-[var(--color-text-secondary)] mt-2"},Ec={key:6,class:"my-6"},Pc=["src","alt"],Ac={key:1,class:"text-center text-sm text-[var(--color-text-secondary)] mt-2"},Mc={key:7,class:"my-6 overflow-x-auto"},Ic={class:"min-w-full border border-[var(--color-border)] rounded-lg"},Rc={key:0,class:"bg-gray-50"},$c=["colspan","rowspan"],Fc=["colspan","rowspan"],jc={key:1,class:"bg-gray-50"},Dc={key:0,class:"text-center text-sm text-[var(--color-text-secondary)] mt-2"},Lc={key:8,class:"my-4 p-4 bg-gray-50 border-l-4 border-[var(--color-accent)] rounded-r"},Nc={class:"flex items-start gap-2"},Hc={key:0,class:"text-[var(--color-text-secondary)]"},Bc={class:"mt-2"},Wc={key:9,class:"my-4 p-4 bg-blue-50 border-l-4 border-blue-500 rounded-r"},Kc={class:"flex items-start gap-2"},Vc={key:0,class:"text-blue-600"},Uc={class:"mt-2 text-blue-900"},qc={key:10,class:"list-disc pl-6 mb-4 space-y-1"},Jc={key:11,class:"list-decimal pl-6 mb-4 space-y-1"},Gc={key:12,class:"mb-4 space-y-2"},zc={class:"font-semibold text-[var(--color-text)]"},Yc={class:"pl-4 text-[var(--color-text-secondary)]"},Xc={key:13,class:"my-4 p-4 bg-gray-900 text-gray-100 rounded-lg overflow-x-auto font-mono text-sm"},Zc={key:14,class:"my-4 pl-4 border-l-4 border-[var(--color-accent)] italic text-[var(--color-text-secondary)]"},Qc={key:15,class:"my-4 p-4 bg-yellow-50 border-l-4 border-yellow-500 rounded-r"},eu={class:"flex items-center gap-2 font-semibold text-yellow-800"},tu={class:"mt-2 text-yellow-900"},su={key:16,class:"text-[var(--color-text)]"},mo=at({__name:"BlockRenderer",props:{block:{}},setup(e){const t=e,s=xt(),n=G(()=>{var l;return((l=t.block)==null?void 0:l.type)||"unknown"}),r=G(()=>{var l;return((l=t.block)==null?void 0:l.children)||[]});function o(l){return s.extractText(l)}return(l,i)=>{var d,a,p;const c=Nr("BlockRenderer",!0);return x(),w("div",vc,[n.value==="paragraph"?(x(),w("p",yc,[qe(q(o(e.block))+" ",1),r.value.length>0?(x(!0),w(W,{key:0},oe(r.value,(b,h)=>(x(),w("span",{key:h},[me(c,{block:b},null,8,["block"])]))),128)):se("",!0)])):n.value==="heading1"||e.block.title?(x(),w("h1",xc,q(o(e.block)),1)):n.value==="heading2"?(x(),w("h2",Sc,q(o(e.block)),1)):n.value==="heading3"?(x(),w("h3",wc,q(o(e.block)),1)):n.value==="heading4"?(x(),w("h4",kc,q(o(e.block)),1)):n.value==="formula"?(x(),w("div",Cc,[O("div",{class:"font-mono text-center",innerHTML:((d=e.block.stem)==null?void 0:d.mathml)||((a=e.block.stem)==null?void 0:a.latex)||o(e.block)},null,8,Tc),e.block.number?(x(),w("div",Oc," ("+q(e.block.number)+") ",1)):se("",!0)])):n.value==="figure"?(x(),w("figure",Ec,[(p=e.block.image)!=null&&p.src?(x(),w("img",{key:0,src:e.block.image.src,alt:e.block.image.alt||e.block.name||"Figure",class:"w-full h-auto rounded-lg"},null,8,Pc)):se("",!0),e.block.name?(x(),w("figcaption",Ac,q(o(e.block.name)),1)):se("",!0)])):n.value==="table"?(x(),w("div",Mc,[O("table",Ic,[e.block.head?(x(),w("thead",Rc,[O("tr",null,[(x(!0),w(W,null,oe(e.block.head.th||e.block.head.td,(b,h)=>(x(),w("th",{key:h,class:"px-4 py-2 text-left text-sm font-semibold text-[var(--color-text)] border-b border-[var(--color-border)]",colspan:b.colspan,rowspan:b.rowspan},q(o(b)),9,$c))),128))])])):se("",!0),O("tbody",null,[(x(!0),w(W,null,oe(e.block.body,(b,h)=>(x(),w("tr",{key:h,class:"hover:bg-gray-50"},[(x(!0),w(W,null,oe(b.th||b.td,(I,E)=>(x(),w("td",{key:E,class:"px-4 py-2 text-sm text-[var(--color-text)] border-b border-[var(--color-border)]",colspan:I.colspan,rowspan:I.rowspan},q(o(I)),9,Fc))),128))]))),128))]),e.block.foot?(x(),w("tfoot",jc,[O("tr",null,[(x(!0),w(W,null,oe(e.block.foot.th||e.block.foot.td,(b,h)=>(x(),w("td",{key:h,class:"px-4 py-2 text-sm text-[var(--color-text-secondary)] border-b border-[var(--color-border)]"},q(o(b)),1))),128))])])):se("",!0)]),e.block.name?(x(),w("p",Dc,q(o(e.block.name)),1)):se("",!0)])):n.value==="example"?(x(),w("div",Lc,[O("div",Nc,[i[0]||(i[0]=O("span",{class:"font-semibold text-[var(--color-accent)]"},"EXAMPLE",-1)),e.block.number?(x(),w("span",Hc,"("+q(e.block.number)+")",1)):se("",!0)]),O("div",Bc,[(x(!0),w(W,null,oe(e.block.paragraphs||r.value,(b,h)=>(x(),xe(c,{key:h,block:b},null,8,["block"]))),128))])])):n.value==="note"?(x(),w("div",Wc,[O("div",Kc,[i[1]||(i[1]=O("span",{class:"font-semibold text-blue-700"},"NOTE",-1)),e.block.number?(x(),w("span",Vc,"("+q(e.block.number)+")",1)):se("",!0)]),O("div",Uc,[(x(!0),w(W,null,oe(e.block.content||r.value,(b,h)=>(x(),xe(c,{key:h,block:b},null,8,["block"]))),128))])])):n.value==="ul"||n.value==="itemized_list"?(x(),w("ul",qc,[(x(!0),w(W,null,oe(e.block.listitem||r.value,(b,h)=>(x(),w("li",{key:h,class:"text-[var(--color-text)]"},[me(c,{block:b},null,8,["block"])]))),128))])):n.value==="ol"||n.value==="ordered_list"?(x(),w("ol",Jc,[(x(!0),w(W,null,oe(e.block.listitem||r.value,(b,h)=>(x(),w("li",{key:h,class:"text-[var(--color-text)]"},[me(c,{block:b},null,8,["block"])]))),128))])):n.value==="dl"||n.value==="definition_list"?(x(),w("dl",Gc,[(x(!0),w(W,null,oe(e.block.listitem||r.value,(b,h)=>(x(),w(W,{key:h},[O("dt",zc,q(o(b.item||b)),1),O("dd",Yc,[(x(!0),w(W,null,oe(b.definition||[],(I,E)=>(x(),xe(c,{key:E,block:I},null,8,["block"]))),128))])],64))),128))])):n.value==="sourcecode"||n.value==="code"?(x(),w("pre",Xc,[i[2]||(i[2]=qe(" ",-1)),O("code",null,q(e.block.content||o(e.block)),1),i[3]||(i[3]=qe(`
22
- `,-1))])):n.value==="quote"?(x(),w("blockquote",Zc,[me(c,{block:e.block.content||e.block},null,8,["block"])])):n.value==="admonition"||n.value==="warning"||n.value==="caution"?(x(),w("div",Qc,[O("div",eu,[i[4]||(i[4]=O("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[O("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})],-1)),qe(" "+q(e.block.name||"Warning"),1)]),O("div",tu,[(x(!0),w(W,null,oe(e.block.content||e.block.paragraphs||r.value,(b,h)=>(x(),xe(c,{key:h,block:b},null,8,["block"]))),128))])])):(x(),w("div",su,[qe(q(o(e.block))+" ",1),r.value.length>0?(x(!0),w(W,{key:0},oe(r.value,(b,h)=>(x(),xe(c,{key:h,block:b},null,8,["block"]))),128)):se("",!0)]))])}}}),nu=["id"],ru={class:"font-heading text-2xl font-bold text-[var(--color-primary)] mb-4 pb-2 border-b border-[var(--color-border)]"},ou={class:"prose prose-lg max-w-none"},lu=at({__name:"ForewordBlock",setup(e){const t=xt(),s=G(()=>{var o;return(o=t.preface)==null?void 0:o.foreword});function n(o){return t.getElementTitle(o)}function r(o){return(o==null?void 0:o.blocks)||[]}return(o,l)=>s.value?(x(),w("section",{key:0,id:s.value.id||"foreword",class:"mb-12"},[O("h2",ru,q(n(s.value)||"Foreword"),1),O("div",ou,[(x(!0),w(W,null,oe(r(s.value),(i,c)=>(x(),xe(mo,{key:c,block:i},null,8,["block"]))),128))])],8,nu)):se("",!0)}}),iu={key:0,class:"clause-block mb-8"},cu={key:0,class:"font-mono mr-2"},uu={key:0,class:"prose prose-lg max-w-none"},fu={key:1,class:"pl-4 ml-2 border-l-2 border-[var(--color-border)]"},Zn=at({__name:"ClauseBlock",props:{clause:{},level:{}},setup(e){const t=e,s=G(()=>t.level||1),n=G(()=>{switch(s.value){case 1:return"font-heading text-2xl font-bold text-[var(--color-primary)] mb-4 mt-8";case 2:return"font-heading text-xl font-semibold text-[var(--color-text)] mb-3 mt-6";case 3:return"font-heading text-lg font-medium text-[var(--color-text)] mb-2 mt-4";default:return"font-heading text-base font-medium text-[var(--color-text)] mb-2 mt-3"}}),r=G(()=>{var d;return(d=t.clause)==null?void 0:d.number}),o=G(()=>{var d;return((d=t.clause)==null?void 0:d.blocks)&&t.clause.blocks.length>0}),l=G(()=>{var d;return((d=t.clause)==null?void 0:d.clause)&&t.clause.clause.length>0});function i(d){return d?typeof d=="string"?d:typeof d=="number"?String(d):d.value?d.value:d.text?d.text:d.content?Array.isArray(d.content)?d.content.map(i).join(""):i(d.content):d.title?i(d.title):"":""}function c(){return t.clause?t.clause.title?i(t.clause.title):t.clause.name?i(t.clause.name):"":""}return(d,a)=>{const p=Nr("ClauseBlock",!0);return e.clause?(x(),w("div",iu,[O("h3",{class:gs(n.value)},[r.value?(x(),w("span",cu,q(e.clause.number)+".",1)):se("",!0),qe(" "+q(c()),1)],2),o.value?(x(),w("div",uu,[(x(!0),w(W,null,oe(e.clause.blocks,(b,h)=>(x(),xe(mo,{key:h,block:b},null,8,["block"]))),128))])):se("",!0),l.value?(x(),w("div",fu,[(x(!0),w(W,null,oe(e.clause.clause,(b,h)=>(x(),xe(p,{key:h,clause:b,level:s.value+1},null,8,["clause","level"]))),128))])):se("",!0)])):se("",!0)}}}),au={class:"min-h-screen flex flex-col bg-[var(--color-background)]"},du={class:"flex flex-1 overflow-hidden"},hu={class:"flex-1 overflow-y-auto"},pu={class:"max-w-4xl mx-auto px-8 py-12"},gu={class:"mb-12 text-center"},bu={class:"font-heading text-4xl font-bold text-[var(--color-primary)] mb-4"},mu={key:0,class:"text-lg text-[var(--color-text-secondary)]"},_u={key:0,id:"terms",class:"mb-12"},vu={key:1,id:"definitions",class:"mb-12"},yu={key:2,class:"mb-12"},xu={key:3,class:"mb-12"},Su={class:"text-lg font-semibold text-[var(--color-text)] mb-4"},wu={key:1,class:"flex items-center justify-center h-64"},ku=at({__name:"EbookContainer",setup(e){const t=xt(),s=G(()=>t.documentData!==null),n=G(()=>t.sections),r=G(()=>t.annex),o=G(()=>{var c;return(c=n.value)==null?void 0:c.terms}),l=G(()=>{var c;return(c=n.value)==null?void 0:c.definitions}),i=G(()=>{var c;return((c=n.value)==null?void 0:c.clause)||[]});return(c,d)=>{var a;return x(),w("div",au,[me(cc,{class:"no-print"}),O("div",du,[s.value?(x(),xe(_c,{key:0,class:"no-print w-64 flex-shrink-0 overflow-y-auto border-r border-[var(--color-border)] bg-[var(--color-surface)]"})):se("",!0),O("main",hu,[O("div",pu,[s.value?(x(),w(W,{key:0},[O("header",gu,[O("h1",bu,q(mt(t).title),1),(a=mt(t).bibdata)!=null&&a.doc_identifier?(x(),w("p",mu,q(mt(t).bibdata.doc_identifier),1)):se("",!0)]),me(lu),o.value?(x(),w("section",_u,[...d[0]||(d[0]=[O("h2",{class:"font-heading text-2xl font-bold text-[var(--color-primary)] mb-4 pb-2 border-b border-[var(--color-border)]"}," Terms and Definitions ",-1),O("div",{class:"prose prose-lg max-w-none"},[O("p",{class:"text-[var(--color-text-secondary)]"},"Terms content rendered here.")],-1)])])):se("",!0),l.value?(x(),w("section",vu,[...d[1]||(d[1]=[O("h2",{class:"font-heading text-2xl font-bold text-[var(--color-primary)] mb-4 pb-2 border-b border-[var(--color-border)]"}," Symbols and Abbreviated Terms ",-1),O("div",{class:"prose prose-lg max-w-none"},[O("p",{class:"text-[var(--color-text-secondary)]"},"Definitions content rendered here.")],-1)])])):se("",!0),i.value.length>0?(x(),w("section",yu,[(x(!0),w(W,null,oe(i.value,(p,b)=>(x(),xe(Zn,{key:b,clause:p},null,8,["clause"]))),128))])):se("",!0),r.value&&r.value.length>0?(x(),w("section",xu,[d[2]||(d[2]=O("h2",{class:"font-heading text-2xl font-bold text-[var(--color-primary)] mb-4 pb-2 border-b border-[var(--color-border)]"}," Annexes ",-1)),(x(!0),w(W,null,oe(r.value,(p,b)=>(x(),w("div",{key:b,class:"mb-8"},[O("div",Su," Annex "+q(p.number||String.fromCharCode(65+b)),1),(x(!0),w(W,null,oe(p.appendix||[],(h,I)=>(x(),xe(Zn,{key:I,clause:h},null,8,["clause"]))),128))]))),128))])):se("",!0)],64)):(x(),w("div",wu,[...d[3]||(d[3]=[O("p",{class:"text-[var(--color-text-secondary)]"},"No document data available.",-1)])]))])])])])}}}),Cu=at({__name:"App",setup(e){const t=xt(),{applyThemeToCss:s,isoTheme:n}=tc();return Dr(()=>{t.loadFromWindow(),s(n)}),(r,o)=>(x(),xe(ku))}}),Tu=(e,t)=>{const s=e.__vccOpts||e;for(const[n,r]of t)s[n]=r;return s},Ou=Tu(Cu,[["__scopeId","data-v-26d2cf27"]]),_o=Ui(Ou),Eu=Gi();_o.use(Eu);_o.mount("#iso-document-app");