@yamato-daiwa/frontend-vue 0.0.1

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 (183) hide show
  1. package/.idea/.name +1 -0
  2. package/.idea/Main.iml +12 -0
  3. package/.idea/file.template.settings.xml +8 -0
  4. package/.idea/fileTemplates/SVG Icon component.vue +16 -0
  5. package/.idea/icon.svg +1 -0
  6. package/.idea/inspectionProfiles/Project_Default.xml +12 -0
  7. package/.idea/misc.xml +5 -0
  8. package/.idea/modules.xml +8 -0
  9. package/.idea/runConfigurations/Generate_TypeScript_Types.xml +12 -0
  10. package/.idea/runConfigurations/Lint.xml +12 -0
  11. package/.idea/runConfigurations/Rebuild_Distributable.xml +12 -0
  12. package/.idea/runConfigurations/Start_Workbenches.xml +12 -0
  13. package/.idea/vcs.xml +6 -0
  14. package/.pug-lintrc +4 -0
  15. package/LICENSE +21 -0
  16. package/Project.d.ts +10 -0
  17. package/README.md +21 -0
  18. package/Source/Functions/Routing/extractVueRouteQueryParameterAsArray.ts +65 -0
  19. package/Source/Functions/getElementByVueReference.ts +30 -0
  20. package/Source/GUI_Components/AdmonitionBlock/AdmonitionBlock.vue.pug +43 -0
  21. package/Source/GUI_Components/AdmonitionBlock/AdmonitionBlock.vue.ts +230 -0
  22. package/Source/GUI_Components/Badge/Badge.vue.pug +12 -0
  23. package/Source/GUI_Components/Badge/Badge.vue.ts +205 -0
  24. package/Source/GUI_Components/Badge/LoadingPlaceholder/Badge-LoadingPlaceholder.vue.pug +3 -0
  25. package/Source/GUI_Components/Badge/LoadingPlaceholder/Badge-LoadingPlaceholder.vue.ts +74 -0
  26. package/Source/GUI_Components/ComponentsAuxiliaries.ts +124 -0
  27. package/Source/GUI_Components/Controls/Buttons/Plain/Button.vue.pug +72 -0
  28. package/Source/GUI_Components/Controls/Buttons/Plain/Button.vue.ts +323 -0
  29. package/Source/GUI_Components/Controls/Buttons/Plain/LoadingPlaceholder/Button-LoadingPlaceholder.vue.pug +3 -0
  30. package/Source/GUI_Components/Controls/Buttons/Plain/LoadingPlaceholder/Button-LoadingPlaceholder.vue.ts +73 -0
  31. package/Source/GUI_Components/Controls/InputtableControl.ts +97 -0
  32. package/Source/GUI_Components/Controls/ValidatableControl.ts +259 -0
  33. package/Source/GUI_Components/OverflowSafeSingleLineLabel.vue +25 -0
  34. package/Source/GUI_Components/ThemesShowcase.vue +118 -0
  35. package/Source/GUI_Components/_Errors/InvalidVuePropertiesCombination/InvalidVuePropertiesCombinationError.ts +40 -0
  36. package/Source/GUI_Components/_Errors/InvalidVuePropertiesCombination/InvalidVuePropertiesCombinationErrorLocalization.english.ts +15 -0
  37. package/Source/GUI_Components/_Errors/VueComponentImplementationHasNotBeenSet/VueComponentImplementationHasNotBeenSet.ts +39 -0
  38. package/Source/GUI_Components/_Errors/VueComponentImplementationHasNotBeenSet/VueComponentImplementationHasNotBeenSetErrorLocalization.english.ts +17 -0
  39. package/Source/GUI_Components/_Errors/VueComponentNotFound/VueComponentNotFoundError.ts +46 -0
  40. package/Source/GUI_Components/_Errors/VueComponentNotFound/VueComponentNotFoundErrorLocalization.english.ts +22 -0
  41. package/Source/SVG_Icons/Achievement/AchievementIcon__Filled.vue +16 -0
  42. package/Source/SVG_Icons/Achievement/AchievementIcon__Outlined.vue +16 -0
  43. package/Source/SVG_Icons/Bell/BellIcon__Filled.vue +16 -0
  44. package/Source/SVG_Icons/Bracket/CurlyBracketIcon__Closing.vue +16 -0
  45. package/Source/SVG_Icons/Bracket/CurlyBracketIcon__Opening.vue +16 -0
  46. package/Source/SVG_Icons/Bracket/RoundBracketIcon__Closing.vue +16 -0
  47. package/Source/SVG_Icons/Bracket/RoundBracketIcon__Opening.vue +16 -0
  48. package/Source/SVG_Icons/Bracket/SquareBracketIcon__Closing.vue +16 -0
  49. package/Source/SVG_Icons/Bracket/SquareBracketIcon__Opening.vue +16 -0
  50. package/Source/SVG_Icons/Calendar/CalendarIcon.vue +16 -0
  51. package/Source/SVG_Icons/Calendar/CalendarIcon__Date.vue +16 -0
  52. package/Source/SVG_Icons/Calendar/CalendarIcon__Repeat.vue +16 -0
  53. package/Source/SVG_Icons/Calendar/CalendarIcon__Time.vue +16 -0
  54. package/Source/SVG_Icons/Checkmark/CheckboxIcon__Checked.vue +16 -0
  55. package/Source/SVG_Icons/Checkmark/CheckboxIcon__Unchecked.vue +16 -0
  56. package/Source/SVG_Icons/Checkmark/CheckmarkIcon__Circled__Filled.vue +16 -0
  57. package/Source/SVG_Icons/Checkmark/CheckmarkIcon__Circled__Outlined.vue +16 -0
  58. package/Source/SVG_Icons/Chevron/ChevronIcon__Downward.vue +16 -0
  59. package/Source/SVG_Icons/Chevron/ChevronIcon__Leftward.vue +16 -0
  60. package/Source/SVG_Icons/Chevron/ChevronIcon__Rightward.vue +16 -0
  61. package/Source/SVG_Icons/Chevron/ChevronIcon__Upward.vue +16 -0
  62. package/Source/SVG_Icons/Comment/CommentIcon__Dots__Filled.vue +16 -0
  63. package/Source/SVG_Icons/Comment/CommentIcon__Dots__Outlined.vue +16 -0
  64. package/Source/SVG_Icons/Comment/CommentIcon__Lines__Filled.vue +16 -0
  65. package/Source/SVG_Icons/Comment/CommentIcon__Lines__Outlined.vue +16 -0
  66. package/Source/SVG_Icons/Comment/CommentIcon__Minus__Filled.vue +16 -0
  67. package/Source/SVG_Icons/Comment/CommentIcon__Minus__Outlined.vue +16 -0
  68. package/Source/SVG_Icons/Comment/CommentIcon__Pen__Filled.vue +16 -0
  69. package/Source/SVG_Icons/Comment/CommentIcon__Pen__Outlined.vue +16 -0
  70. package/Source/SVG_Icons/Comment/CommentIcon__Plus__Filled.vue +16 -0
  71. package/Source/SVG_Icons/Comment/CommentIcon__Plus__Outlined.vue +16 -0
  72. package/Source/SVG_Icons/Comment/CommentIcon__Qotemark__Filled.vue +16 -0
  73. package/Source/SVG_Icons/Comment/CommentIcon__Qotemark__Outlined.vue +16 -0
  74. package/Source/SVG_Icons/ExclamationMark/ExclamationMarkIcon__Circled__Filled.vue +16 -0
  75. package/Source/SVG_Icons/ExclamationMark/ExclamationMarkIcon__Circled__Outlined.vue +16 -0
  76. package/Source/SVG_Icons/ExclamationMark/ExclamationMarkIcon__Octagoned__Filled.vue +16 -0
  77. package/Source/SVG_Icons/ExclamationMark/ExclamationMarkIcon__Octagoned__Outlined.vue +16 -0
  78. package/Source/SVG_Icons/ExclamationMark/ExclamationMarkIcon__Rectangled__Filled.vue +16 -0
  79. package/Source/SVG_Icons/ExclamationMark/ExclamationMarkIcon__Rectangled__Outlined.vue +16 -0
  80. package/Source/SVG_Icons/ExclamationMark/ExclamationMarkIcon__Triangled__Filled.vue +16 -0
  81. package/Source/SVG_Icons/ExclamationMark/ExclamationMarkIcon__Triangled__Outlined.vue +16 -0
  82. package/Source/SVG_Icons/Filtering/FilteringIcon__Outlined.vue +16 -0
  83. package/Source/SVG_Icons/Folder/FolderIcon__ExclamationMark__Filled.vue +16 -0
  84. package/Source/SVG_Icons/Folder/FolderIcon__Filled.vue +16 -0
  85. package/Source/SVG_Icons/Folder/FolderIcon__MultiplicationSign__Filled.vue +16 -0
  86. package/Source/SVG_Icons/Folder/FolderIcon__Person__Filled.vue +16 -0
  87. package/Source/SVG_Icons/Folder/FolderIcon__Plus__Filled.vue +16 -0
  88. package/Source/SVG_Icons/Folder/FolderIcon__Stationery.vue +16 -0
  89. package/Source/SVG_Icons/HamburgerMenu/HamburgerMenuIcon.vue +7 -0
  90. package/Source/SVG_Icons/Heart/HeartIcon__Broken__Filled.vue +16 -0
  91. package/Source/SVG_Icons/Heart/HeartIcon__Broken__Outlined.vue +16 -0
  92. package/Source/SVG_Icons/Heart/HeartIcon__Filled.vue +16 -0
  93. package/Source/SVG_Icons/Heart/HeartIcon__Half.vue +16 -0
  94. package/Source/SVG_Icons/Heart/HeartIcon__Outlined.vue +16 -0
  95. package/Source/SVG_Icons/Inbox/InboxIcon.vue +16 -0
  96. package/Source/SVG_Icons/Inbox/InboxIcon__DownwardArrow.vue +16 -0
  97. package/Source/SVG_Icons/InfoSign/InfoSignIcon__Circled__Filled.vue +16 -0
  98. package/Source/SVG_Icons/InfoSign/InfoSignIcon__Circled__Outlined.vue +16 -0
  99. package/Source/SVG_Icons/Like/LikeIcon__Filled.vue +16 -0
  100. package/Source/SVG_Icons/Like/LikeIcon__Outlined.vue +16 -0
  101. package/Source/SVG_Icons/Like/UnlikeIcon__Filled.vue +16 -0
  102. package/Source/SVG_Icons/Like/UnlikeIcon__Outlined.vue +16 -0
  103. package/Source/SVG_Icons/List/ChecklistIcon.vue +16 -0
  104. package/Source/SVG_Icons/MagnifyingGlass/MagnifyingGlassIcon.vue +16 -0
  105. package/Source/SVG_Icons/MagnifyingGlass/ZoomInIcon__Filled.vue +16 -0
  106. package/Source/SVG_Icons/MagnifyingGlass/ZoomInIcon__Outlined.vue +16 -0
  107. package/Source/SVG_Icons/MagnifyingGlass/ZoomingInIcon__Outlined.vue +16 -0
  108. package/Source/SVG_Icons/MagnifyingGlass/ZoomingOutIcon__Filled.vue +16 -0
  109. package/Source/SVG_Icons/Mail/MailIcon__Filled.vue +16 -0
  110. package/Source/SVG_Icons/Mail/MailIcon__Outlined.vue +16 -0
  111. package/Source/SVG_Icons/MapAndLocation/LocationIcon.vue +16 -0
  112. package/Source/SVG_Icons/MapAndLocation/LocationIcon__BottomCircle.vue +16 -0
  113. package/Source/SVG_Icons/MapAndLocation/MapIcon__Clock.vue +16 -0
  114. package/Source/SVG_Icons/Menu/MenuIcon__ThreeDots__Horizontal.vue +16 -0
  115. package/Source/SVG_Icons/Menu/MenuIcon__ThreeDots__Horizontal__Circled__Filled.vue +16 -0
  116. package/Source/SVG_Icons/Menu/MenuIcon__ThreeDots__Horizontal__Circled__Outlined.vue +16 -0
  117. package/Source/SVG_Icons/Menu/MenuIcon__ThreeDots__Vertical.vue +16 -0
  118. package/Source/SVG_Icons/Menu/MenuIcon__ThreeDots__Vertical__Circled__Filled.vue +16 -0
  119. package/Source/SVG_Icons/Menu/MenuIcon__ThreeDots__Vertical__Circled__Outlined.vue +16 -0
  120. package/Source/SVG_Icons/MultiplicationSign/MultiplicationSignIcon.vue +16 -0
  121. package/Source/SVG_Icons/MultiplicationSign/MultiplicationSignIcon__Bold.vue +16 -0
  122. package/Source/SVG_Icons/MultiplicationSign/MultiplicationSignIcon__Boxed__Filled.vue +16 -0
  123. package/Source/SVG_Icons/MultiplicationSign/MultiplicationSignIcon__Boxed__Outlined.vue +16 -0
  124. package/Source/SVG_Icons/MultiplicationSign/MultiplicationSignIcon__Octagoned__Filled.vue +16 -0
  125. package/Source/SVG_Icons/MultiplicationSign/MultiplicationSignIcon__Octagoned__Outlined.vue +16 -0
  126. package/Source/SVG_Icons/Pencil/PencilIcon__Boxed__Filled.vue +16 -0
  127. package/Source/SVG_Icons/Pencil/PencilIcon__Boxed__Outlined.vue +16 -0
  128. package/Source/SVG_Icons/Pencil/PencilIcon__Circled__Filled.vue +16 -0
  129. package/Source/SVG_Icons/Pencil/PencilIcon__Circled__Outlined.vue +16 -0
  130. package/Source/SVG_Icons/Pencil/PencilIcon__Filled.vue +16 -0
  131. package/Source/SVG_Icons/Pencil/PencilIcon__Outlined.vue +16 -0
  132. package/Source/SVG_Icons/Pencil/PencilWithLockIcon__Filled.vue +16 -0
  133. package/Source/SVG_Icons/Pencil/PencilWithLockIcon__Outlined.vue +16 -0
  134. package/Source/SVG_Icons/Pencil/PencilWithPlusSignIcon__Filled.vue +16 -0
  135. package/Source/SVG_Icons/Pencil/PencilWithPlusSignIcon__Outlined.vue +16 -0
  136. package/Source/SVG_Icons/Person/PersonIcon__Clock__Rectangled__Filled.vue +16 -0
  137. package/Source/SVG_Icons/Phone/PhoneIcon__Filled.vue +16 -0
  138. package/Source/SVG_Icons/Phone/PhoneIcon__Outlined.vue +16 -0
  139. package/Source/SVG_Icons/Phone/TelephoneIcon__Filled.vue +16 -0
  140. package/Source/SVG_Icons/QuestionMark/QuestionMarkIcon__Circled__Filled.vue +16 -0
  141. package/Source/SVG_Icons/QuestionMark/QuestionMarkIcon__Circled__Outlined.vue +16 -0
  142. package/Source/SVG_Icons/QuoteMark/QuoteMarkIcon_Upward__Outlined.vue +16 -0
  143. package/Source/SVG_Icons/QuoteMark/QuoteMarkIcon__Downward__Filled.vue +16 -0
  144. package/Source/SVG_Icons/QuoteMark/QuoteMarkIcon__Downward__Outlined.vue +16 -0
  145. package/Source/SVG_Icons/QuoteMark/QuoteMarkIcon__Upward__Filled.vue +16 -0
  146. package/Source/SVG_Icons/SocialNetworks/FacebookIcon.vue +16 -0
  147. package/Source/SVG_Icons/SocialNetworks/GoogleIcon.vue +16 -0
  148. package/Source/SVG_Icons/SocialNetworks/InstagramIcon.vue +16 -0
  149. package/Source/SVG_Icons/SocialNetworks/LinkedInIcon.vue +16 -0
  150. package/Source/SVG_Icons/SocialNetworks/RSS_Icon.vue +16 -0
  151. package/Source/SVG_Icons/SocialNetworks/RedditIcon.vue +16 -0
  152. package/Source/SVG_Icons/SocialNetworks/SkypeIcon.vue +16 -0
  153. package/Source/SVG_Icons/SocialNetworks/TwitterIcon.vue +16 -0
  154. package/Source/SVG_Icons/SocialNetworks/YouTubeIcon.vue +16 -0
  155. package/Source/SVG_Icons/Star/StarIcon__Filled.vue +16 -0
  156. package/Source/SVG_Icons/Star/StarIcon__Half.vue +16 -0
  157. package/Source/SVG_Icons/Star/StarIcon__Outlined.vue +16 -0
  158. package/Source/SVG_Icons/Star/StarIcon__Plus__Filled.vue +16 -0
  159. package/Source/SVG_Icons/Star/StarIcon__Plus__Outlined.vue +16 -0
  160. package/Source/SVG_Icons/Timeline/TimelineIcon.vue +16 -0
  161. package/Source/SVG_Icons/TrashCan/TrashCanIcon__Filled.vue +16 -0
  162. package/Source/SVG_Icons/TrashCan/TrashCanIcon__Outlined.vue +16 -0
  163. package/Source/SVG_Icons/Triangle/TriangleIcon__Downward__Circled__Filled.vue +16 -0
  164. package/Source/SVG_Icons/Triangle/TriangleIcon__Downward__Filled.vue +16 -0
  165. package/Source/SVG_Icons/Triangle/TriangleIcon__Leftward__Circled__Filled.vue +16 -0
  166. package/Source/SVG_Icons/Triangle/TriangleIcon__Leftward__Filled.vue +16 -0
  167. package/Source/SVG_Icons/Triangle/TriangleIcon__Rightward__Circled__Filled.vue +16 -0
  168. package/Source/SVG_Icons/Triangle/TriangleIcon__Rightward__Filled.vue +16 -0
  169. package/Source/SVG_Icons/Triangle/TriangleIcon__Upward__Circled__Filled.vue +16 -0
  170. package/Source/SVG_Icons/Triangle/TriangleIcon__Upward__Filled.vue +16 -0
  171. package/Source/index.ts +210 -0
  172. package/Workbenches/Source/GUI_Components/AdmonitionBlock/AdmonitionBlock.workbench.pug +20 -0
  173. package/Workbenches/Source/GUI_Components/AdmonitionBlock/AdmonitionBlock.workbench.ts +5 -0
  174. package/Workbenches/Source/GUI_Components/AdmonitionBlock/AdmonitionBlockComponentTestSite.vue +22 -0
  175. package/Workbenches/Source/GUI_Components/OverflowSafeSingleLineLabel/OverflowSafeSingleLineLabel.workbench.pug +20 -0
  176. package/Workbenches/Source/GUI_Components/OverflowSafeSingleLineLabel/OverflowSafeSingleLineLabel.workbench.ts +5 -0
  177. package/Workbenches/Source/GUI_Components/OverflowSafeSingleLineLabel/OverflowSafeSingleLineLabelComponentTestSite.vue +93 -0
  178. package/Workbenches/Source/Workbenches.pug +41 -0
  179. package/eslint.config.js +29 -0
  180. package/package.json +50 -0
  181. package/tsconfig.declarations.json +4 -0
  182. package/tsconfig.json +24 -0
  183. package/yda.config.yaml +120 -0
package/.idea/.name ADDED
@@ -0,0 +1 @@
1
+ YDF - Vue
package/.idea/Main.iml ADDED
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="WEB_MODULE" version="4">
3
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
4
+ <exclude-output />
5
+ <content url="file://$MODULE_DIR$">
6
+ <sourceFolder url="file://$MODULE_DIR$/Source" isTestSource="false" />
7
+ <excludeFolder url="file://$MODULE_DIR$/Distributable" />
8
+ <excludeFolder url="file://$MODULE_DIR$/Workbenches/Build" />
9
+ </content>
10
+ <orderEntry type="sourceFolder" forTests="false" />
11
+ </component>
12
+ </module>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ExportableFileTemplateSettings">
4
+ <default_templates>
5
+ <template name="SVG Icon component.vue" file-name="${ICON_NAME}Icon${POSTFIXES}" reformat="false" live-template-enabled="false" />
6
+ </default_templates>
7
+ </component>
8
+ </project>
@@ -0,0 +1,16 @@
1
+ <template lang="pug">
2
+
3
+ include ../../../node_modules/@yamato-daiwa/frontend/Markup/Assets/SVG_Icons/${SUBDIRECTORY_OF_YDF_SVG_ICONS}/${ICON_NAME}Icon${POSTFIXES}.pug
4
+
5
+ +${ICON_NAME}${POSTFIXES}--YDF_Icon
6
+
7
+ </template>
8
+
9
+
10
+ <script>
11
+
12
+ export default {
13
+ name: "${ICON_NAME}${POSTFIXES}--YDF_Icon"
14
+ };
15
+
16
+ </script>
package/.idea/icon.svg ADDED
@@ -0,0 +1 @@
1
+ <svg id="クレーン" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500"><defs><style>.cls-1{fill:url(#名称未設定グラデーション_21);}.cls-2{fill:none;}.cls-3{fill:#fff;}.cls-4{fill:#231815;}</style><linearGradient id="名称未設定グラデーション_21" y1="250" x2="500" y2="250" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2796a7"/><stop offset="0.52" stop-color="#28ceb4"/><stop offset="0.95" stop-color="#58d5c3"/></linearGradient></defs><rect class="cls-1" width="500" height="500" rx="50"/><polygon class="cls-2" points="199.36 216.34 184.37 231.33 214.35 231.33 199.36 216.34"/><polygon class="cls-2" points="199.36 162.78 184.37 177.77 214.35 177.77 199.36 162.78"/><polygon class="cls-2" points="184.37 187.54 199.36 202.53 214.35 187.54 184.37 187.54"/><polygon class="cls-2" points="184.37 133.98 199.36 148.97 214.35 133.98 184.37 133.98"/><polygon class="cls-2" points="183.39 200.37 183.39 218.5 192.45 209.43 183.39 200.37"/><polygon class="cls-2" points="199.36 109.23 184.37 124.22 214.35 124.22 199.36 109.23"/><polygon class="cls-2" points="183.39 146.81 183.39 164.94 192.45 155.88 183.39 146.81"/><polygon class="cls-2" points="183.39 93.26 183.39 111.39 192.45 102.33 183.39 93.26"/><rect class="cls-2" x="215.55" y="65.31" width="9.46" height="0.08"/><polygon class="cls-2" points="184.37 241.09 199.36 256.08 214.35 241.09 184.37 241.09"/><polygon class="cls-2" points="199.36 269.89 184.37 284.88 214.35 284.88 199.36 269.89"/><polygon class="cls-2" points="213.39 81.39 185.32 81.39 199.36 95.42 213.39 81.39"/><polygon class="cls-2" points="199.36 309.63 214.35 294.64 184.37 294.64 199.36 309.63"/><polygon class="cls-2" points="215.32 111.39 215.32 93.26 206.26 102.33 215.32 111.39"/><polygon class="cls-2" points="215.32 164.94 215.32 146.81 206.26 155.88 215.32 164.94"/><polygon class="cls-2" points="183.39 253.92 183.39 272.05 192.45 262.98 183.39 253.92"/><polygon class="cls-2" points="215.32 218.5 215.32 200.37 206.26 209.43 215.32 218.5"/><polygon class="cls-2" points="215.32 272.05 215.32 253.92 206.26 262.98 215.32 272.05"/><polygon class="cls-2" points="215.32 325.6 215.32 307.47 206.26 316.54 215.32 325.6"/><polygon class="cls-2" points="199.36 162.78 184.37 177.77 214.35 177.77 199.36 162.78"/><polygon class="cls-2" points="184.37 133.98 199.36 148.97 214.35 133.98 184.37 133.98"/><polygon class="cls-2" points="184.37 187.54 199.36 202.53 214.35 187.54 184.37 187.54"/><polygon class="cls-2" points="183.39 93.26 183.39 111.39 192.45 102.33 183.39 93.26"/><polygon class="cls-2" points="199.36 109.23 184.37 124.22 214.35 124.22 199.36 109.23"/><polygon class="cls-2" points="199.36 309.63 214.35 294.64 184.37 294.64 199.36 309.63"/><polygon class="cls-2" points="199.36 269.89 184.37 284.88 214.35 284.88 199.36 269.89"/><polygon class="cls-2" points="213.39 81.39 185.32 81.39 199.36 95.42 213.39 81.39"/><polygon class="cls-2" points="199.36 216.34 184.37 231.33 214.35 231.33 199.36 216.34"/><polygon class="cls-2" points="184.37 241.09 199.36 256.08 214.35 241.09 184.37 241.09"/><polygon class="cls-2" points="183.39 146.81 183.39 164.94 192.45 155.88 183.39 146.81"/><polygon class="cls-2" points="215.32 111.39 215.32 93.26 206.26 102.33 215.32 111.39"/><polygon class="cls-2" points="215.32 218.5 215.32 200.37 206.26 209.43 215.32 218.5"/><polygon class="cls-2" points="215.32 164.94 215.32 146.81 206.26 155.88 215.32 164.94"/><polygon class="cls-2" points="215.32 272.05 215.32 253.92 206.26 262.98 215.32 272.05"/><polygon class="cls-2" points="183.39 200.37 183.39 218.5 192.45 209.43 183.39 200.37"/><polygon class="cls-2" points="183.39 253.92 183.39 272.05 192.45 262.98 183.39 253.92"/><polygon class="cls-2" points="215.32 325.6 215.32 307.47 206.26 316.54 215.32 325.6"/><polygon class="cls-2" points="214.35 284.88 199.36 269.89 184.37 284.88 214.35 284.88"/><polygon class="cls-2" points="199.36 309.63 214.35 294.64 184.37 294.64 199.36 309.63"/><polygon class="cls-2" points="199.36 256.08 214.35 241.09 184.37 241.09 199.36 256.08"/><polygon class="cls-2" points="215.32 325.6 215.32 307.47 206.26 316.54 215.32 325.6"/><polygon class="cls-2" points="215.32 272.05 215.32 253.92 206.26 262.98 215.32 272.05"/><polygon class="cls-2" points="199.36 202.53 214.35 187.54 184.37 187.54 199.36 202.53"/><polygon class="cls-2" points="199.36 109.23 184.37 124.22 214.35 124.22 199.36 109.23"/><polygon class="cls-2" points="199.36 148.97 214.35 133.98 184.37 133.98 199.36 148.97"/><polygon class="cls-2" points="215.32 218.5 215.32 200.37 206.26 209.43 215.32 218.5"/><polygon class="cls-2" points="214.35 231.33 199.36 216.34 184.37 231.33 214.35 231.33"/><polygon class="cls-2" points="214.35 177.77 199.36 162.78 184.37 177.77 214.35 177.77"/><polygon class="cls-2" points="183.39 146.81 183.39 164.94 192.45 155.88 183.39 146.81"/><polygon class="cls-2" points="183.39 200.37 183.39 218.5 192.45 209.43 183.39 200.37"/><polygon class="cls-2" points="215.32 164.94 215.32 146.81 206.26 155.88 215.32 164.94"/><polygon class="cls-2" points="183.39 253.92 183.39 272.05 192.45 262.98 183.39 253.92"/><polygon class="cls-2" points="215.32 111.39 215.32 93.26 206.26 102.33 215.32 111.39"/><polygon class="cls-2" points="183.39 93.26 183.39 111.39 192.45 102.33 183.39 93.26"/><polygon class="cls-2" points="213.39 81.39 185.32 81.39 199.36 95.42 213.39 81.39"/><polygon class="cls-3" points="389.15 110.05 224.08 65.75 221.39 75.78 349.1 110.05 235.41 110.05 235.41 135.83 345.59 135.83 345.59 187.13 345.23 187.13 345.23 187.14 337.43 187.14 337.43 211.07 345.23 211.07 345.23 224.6 359.37 224.6 359.37 238.13 339.51 238.13 339.51 227.72 331.18 227.72 331.18 246.46 367.69 246.46 367.69 216.28 353.56 216.28 353.56 211.07 361.36 211.07 361.36 187.14 353.75 187.14 353.75 135.83 376.72 135.83 390.47 135.83 390.47 128.87 390.47 118.22 390.47 110.4 389.15 110.05"/><polygon class="cls-2" points="215.32 325.6 215.32 307.47 206.26 316.54 215.32 325.6"/><polygon class="cls-2" points="199.36 256.08 214.35 241.09 184.37 241.09 199.36 256.08"/><polygon class="cls-2" points="214.35 284.88 199.36 269.89 184.37 284.88 214.35 284.88"/><polygon class="cls-2" points="215.32 111.39 215.32 93.26 206.26 102.33 215.32 111.39"/><polygon class="cls-2" points="215.32 164.94 215.32 146.81 206.26 155.88 215.32 164.94"/><polygon class="cls-2" points="215.32 218.5 215.32 200.37 206.26 209.43 215.32 218.5"/><polygon class="cls-2" points="215.32 272.05 215.32 253.92 206.26 262.98 215.32 272.05"/><polygon class="cls-2" points="199.36 202.53 214.35 187.54 184.37 187.54 199.36 202.53"/><polygon class="cls-2" points="199.36 148.97 214.35 133.98 184.37 133.98 199.36 148.97"/><polygon class="cls-2" points="184.37 294.64 199.36 309.63 214.35 294.64 184.37 294.64"/><polygon class="cls-2" points="214.35 177.77 199.36 162.78 184.37 177.77 214.35 177.77"/><polygon class="cls-2" points="199.36 109.23 184.37 124.22 214.35 124.22 199.36 109.23"/><polygon class="cls-2" points="214.35 231.33 199.36 216.34 184.37 231.33 214.35 231.33"/><polygon class="cls-2" points="183.39 200.37 183.39 218.5 192.45 209.43 183.39 200.37"/><polygon class="cls-2" points="213.39 81.39 185.32 81.39 199.36 95.42 213.39 81.39"/><polygon class="cls-2" points="183.39 253.92 183.39 272.05 192.45 262.98 183.39 253.92"/><polygon class="cls-2" points="183.39 146.81 183.39 164.94 192.45 155.88 183.39 146.81"/><polygon class="cls-2" points="183.39 93.26 183.39 111.39 192.45 102.33 183.39 93.26"/><rect class="cls-2" x="173.28" y="81.39" width="0.35" height="251.39"/><polygon class="cls-2" points="190.02 332.78 208.69 332.78 199.36 323.44 190.02 332.78"/><polygon class="cls-2" points="192.45 316.54 183.39 307.47 192.45 316.54 192.45 316.54"/><polygon class="cls-2" points="183.39 307.47 183.39 325.6 192.45 316.54 183.39 307.47"/><path class="cls-3" d="M199.36,323.44l9.33,9.34H225V65.6h-51.3V332.78H190Zm-15-28.8h30l-15,15Zm30-160.66-15,15-15-15Zm-30-9.76,15-15,15,15Zm30,53.55h-30l15-15Zm0,9.77-15,15-15-15Zm0,43.79h-30l15-15Zm0,9.76-15,15-15-15Zm0,43.79h-30l15-15Zm1,40.72-9.07-9.06,9.07-9.07Zm0-53.55L206.26,263l9.07-9.06Zm0-53.55-9.07-9.07,9.07-9.06Zm0-53.56-9.07-9.06,9.07-9.07Zm0-53.55-9.07-9.06,9.07-9.07Zm-1.94-30-14,14-14-14Zm-30,11.87,9.06,9.07-9.06,9.06Zm0,53.55,9.06,9.07-9.06,9.06Zm0,53.56,9.06,9.06-9.06,9.07Zm0,53.55,9.06,9.06-9.06,9.07Zm0,71.68V307.47l9.06,9.07h0l-9.06,9.06Z"/><rect class="cls-4" x="181.51" y="321.07" width="12.82" transform="translate(-171.99 226.93) rotate(-45)"/><polygon class="cls-3" points="225.02 332.78 208.69 332.78 190.02 332.78 173.72 332.78 173.62 332.78 173.28 332.78 152.95 332.78 152.95 348.67 244.89 348.67 244.89 332.78 225.02 332.78"/><polygon class="cls-3" points="180.07 74.12 174.12 65.61 110.09 110.39 109.78 110.61 109.73 110.64 109.53 110.79 109.53 110.92 109.53 111 109.53 135.83 110.09 135.83 162.88 135.83 162.88 110.05 128.7 110.05 180.07 74.12"/><path class="cls-3" d="M151.82,371.72a4.92,4.92,0,0,1-1.1-2.94,4.59,4.59,0,0,1,4.51-4.14,4.69,4.69,0,0,1,3.59,2.12l22,32,22-32a4.69,4.69,0,0,1,3.59-2.12,4.52,4.52,0,0,1,4.51,4.14,4.87,4.87,0,0,1-1.11,2.94l-24.84,34.13v32c0,2-1.75,3.49-4.14,3.49s-4.14-1.47-4.14-3.49v-32Z"/><path class="cls-3" d="M244.56,365.74c10.49,0,18.77,2.12,25.39,6.54,9.75,6.43,15,17.2,15,30.63,0,23.73-15,37.35-41,37.35H231.68c-6.44,0-9.75-3.31-9.75-9.94V375.68c0-6.62,3.31-9.94,9.75-9.94ZM230.3,430.23a2.33,2.33,0,0,0,2.58,2.58h10.48c20.43,0,32.48-11,32.48-29.81,0-19.22-11.32-29.8-31.93-29.8h-11a2.25,2.25,0,0,0-2.58,2.57Z"/><path class="cls-3" d="M308.13,437.87c0,2-1.75,3.49-4.14,3.49s-4.23-1.47-4.23-3.49v-63.2c0-5.89,2.94-8.93,8.92-8.93h36.89a3.71,3.71,0,0,1,0,7.36H310.25a1.88,1.88,0,0,0-2.12,2V398.4H340.6a3.26,3.26,0,0,1,3.13,3.5c0,2.11-1.29,3.59-3.13,3.59H308.13Z"/></svg>
@@ -0,0 +1,12 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
+ <inspection_tool class="ImplicitTypeConversion" enabled="true" level="WARNING" enabled_by_default="true">
6
+ <option name="BITS" value="1720" />
7
+ <option name="FLAG_EXPLICIT_CONVERSION" value="true" />
8
+ <option name="IGNORE_NODESET_TO_BOOLEAN_VIA_STRING" value="true" />
9
+ </inspection_tool>
10
+ <inspection_tool class="UsePropertyAccessSyntax" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
11
+ </profile>
12
+ </component>
package/.idea/misc.xml ADDED
@@ -0,0 +1,5 @@
1
+ <project version="4">
2
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_16">
3
+ <output url="file://$PROJECT_DIR$/out" />
4
+ </component>
5
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/Main.iml" filepath="$PROJECT_DIR$/.idea/Main.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,12 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="Generate TypeScript Types" type="js.build_tools.npm" nameIsGenerated="true">
3
+ <package-json value="$PROJECT_DIR$/package.json" />
4
+ <command value="run" />
5
+ <scripts>
6
+ <script value="Generate TypeScript Types" />
7
+ </scripts>
8
+ <node-interpreter value="project" />
9
+ <envs />
10
+ <method v="2" />
11
+ </configuration>
12
+ </component>
@@ -0,0 +1,12 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="Lint" type="js.build_tools.npm" nameIsGenerated="true">
3
+ <package-json value="$PROJECT_DIR$/package.json" />
4
+ <command value="run" />
5
+ <scripts>
6
+ <script value="Lint" />
7
+ </scripts>
8
+ <node-interpreter value="project" />
9
+ <envs />
10
+ <method v="2" />
11
+ </configuration>
12
+ </component>
@@ -0,0 +1,12 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="Rebuild Distributable" type="js.build_tools.npm">
3
+ <package-json value="$PROJECT_DIR$/package.json" />
4
+ <command value="run" />
5
+ <scripts>
6
+ <script value="Rebuild Distributable" />
7
+ </scripts>
8
+ <node-interpreter value="project" />
9
+ <envs />
10
+ <method v="2" />
11
+ </configuration>
12
+ </component>
@@ -0,0 +1,12 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="Start Workbenches" type="js.build_tools.npm" nameIsGenerated="true">
3
+ <package-json value="$PROJECT_DIR$/package.json" />
4
+ <command value="run" />
5
+ <scripts>
6
+ <script value="Start Workbenches" />
7
+ </scripts>
8
+ <node-interpreter value="project" />
9
+ <envs />
10
+ <method v="2" />
11
+ </configuration>
12
+ </component>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$/../../.." vcs="Git" />
5
+ </component>
6
+ </project>
package/.pug-lintrc ADDED
@@ -0,0 +1,4 @@
1
+ {
2
+ "extends": "./node_modules/@yamato-daiwa/style_guides/Markup.js",
3
+ "excludeFiles": [ "Source/**" ]
4
+ }
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2023-present, Yamato Daiwa Co., Ltd.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
package/Project.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ declare module "*.vue" {
2
+ import type { DefineComponent } from "vue";
3
+ const component: DefineComponent<{ [key: string]: unknown; }, { [key: string]: unknown; }, unknown>;
4
+ export default component;
5
+ }
6
+
7
+ declare module "*.pug" {
8
+ const template: string;
9
+ export default template;
10
+ }
package/README.md ADDED
@@ -0,0 +1,21 @@
1
+ # Yamato Daiwa Frontend — Vue
2
+
3
+ The adaptation of [Yamato Daiwa Frontend](https://www.npmjs.com/package/@yamato-daiwa/frontend) toolkit for the frontend
4
+ development to [Vue framework](https://vuejs.org/index.html).
5
+
6
+ This adaptation package provides only Vue-specific functionality.
7
+ The [core package](https://www.npmjs.com/package/@yamato-daiwa/frontend) is still required as the peer dependency to
8
+ get the styles.
9
+
10
+
11
+ ## Installation
12
+
13
+ ```bash
14
+ npm i @yamato-daiwa/frontend-vue @yamato-daiwa/frontend@2.0.0-beta.6
15
+ ```
16
+
17
+
18
+ ## Documentation
19
+ ### GUI Components
20
+
21
+ + [AdmonitionBlock](https://frontend.yamato-daiwa.com/AdaptationsToFrameworks/Vue/GUI_Components/Children/AdmonitionBlock/AdmonitionBlock-Vue.english.html)
@@ -0,0 +1,65 @@
1
+ import type { _RouteLocationBase as VueRouterLocation, LocationQueryValue as VueRouterLocationQueryValue } from "vue-router";
2
+ import {
3
+ isString,
4
+ isUndefined,
5
+ isNotUndefined,
6
+ isEitherUndefinedOrNull
7
+ } from "@yamato-daiwa/es-extensions";
8
+
9
+
10
+ export default function extractVueRouteQueryParameterValueAsArrayOfStrings(
11
+ {
12
+ targetRoute,
13
+ targetQueryParameterKey,
14
+ arrayElementAdditionalValidator
15
+ }: Readonly<{
16
+ targetRoute: VueRouterLocation;
17
+ targetQueryParameterKey: string;
18
+ arrayElementAdditionalValidator?: (rawValue: string) => boolean;
19
+ }>
20
+ ): Array<string> {
21
+
22
+ const queryParameterPotentialValue: VueRouterLocationQueryValue | Array<VueRouterLocationQueryValue> =
23
+ targetRoute.query[targetQueryParameterKey];
24
+
25
+ if (isEitherUndefinedOrNull(queryParameterPotentialValue)) {
26
+ return [];
27
+ }
28
+
29
+
30
+ if (isString(queryParameterPotentialValue)) {
31
+
32
+ if (isNotUndefined(arrayElementAdditionalValidator)) {
33
+ return arrayElementAdditionalValidator(queryParameterPotentialValue) ? [ queryParameterPotentialValue ] : [];
34
+ }
35
+
36
+
37
+ return [ queryParameterPotentialValue ];
38
+
39
+ }
40
+
41
+
42
+ const queryParameterAccumulatingArrayedValue: Array<string> = [];
43
+
44
+ for (const oneElementOfArrayedValue of queryParameterPotentialValue) {
45
+
46
+ if (!isString(oneElementOfArrayedValue)) {
47
+ continue;
48
+ }
49
+
50
+
51
+ if (isUndefined(arrayElementAdditionalValidator)) {
52
+ queryParameterAccumulatingArrayedValue.push(oneElementOfArrayedValue);
53
+ continue;
54
+ }
55
+
56
+
57
+ if (arrayElementAdditionalValidator(oneElementOfArrayedValue)) {
58
+ queryParameterAccumulatingArrayedValue.push(oneElementOfArrayedValue);
59
+ }
60
+
61
+ }
62
+
63
+ return queryParameterAccumulatingArrayedValue;
64
+
65
+ }
@@ -0,0 +1,30 @@
1
+ import type { ComponentPublicInstance } from "vue";
2
+ import { Logger, DOM_ElementRetrievingFailedError, isUndefined } from "@yamato-daiwa/es-extensions";
3
+
4
+
5
+ export default function getElementByVueReference(
6
+ vueReferenceID: string,
7
+ parentVueComponent: ComponentPublicInstance
8
+ ): Element | null {
9
+
10
+ const referenceContent: unknown = parentVueComponent.$refs[vueReferenceID];
11
+
12
+ if (isUndefined(referenceContent)) {
13
+ return null;
14
+ }
15
+
16
+
17
+ if (!(referenceContent instanceof Element)) {
18
+ Logger.throwErrorAndLog({
19
+ errorInstance: new DOM_ElementRetrievingFailedError({
20
+ customMessage: `The Vue reference with id "${ vueReferenceID }" in not the instance of native Element.`
21
+ }),
22
+ occurrenceLocation: "getElementByVueReference(vueReferenceID, parentVueComponent)",
23
+ title: DOM_ElementRetrievingFailedError.localization.defaultTitle
24
+ });
25
+ }
26
+
27
+
28
+ return referenceContent;
29
+
30
+ }
@@ -0,0 +1,43 @@
1
+ VerticallySlidingAlwaysMountedContainer.AdmonitionBlock--YDF(
2
+ v-model="isDisplaying"
3
+ role="alert"
4
+ :class="rootElementModifierCSS_Classes"
5
+ )
6
+
7
+ slot(
8
+ v-if="$slots.CustomSVG_Icon"
9
+ name="CustomSVG_Icon"
10
+ )
11
+
12
+ component.AdmonitionBlock--YDF-SVG_Icon(
13
+ v-else-if="hasDefaultSVG_Icon"
14
+ :is="defaultSVG_IconComponentName"
15
+ )
16
+
17
+ .AdmonitionBlock--YDF-Title(
18
+ v-if="title"
19
+ id=TITLE_HTML_ID
20
+ ) {{ title }}
21
+
22
+ .AdmonitionBlock--YDF-MainContent(
23
+ :aria-labelledby="title ? TITLE_HTML_ID : null"
24
+ )
25
+
26
+ slot
27
+
28
+ template(
29
+ v-if="$slots.ActionBarContent"
30
+ )
31
+
32
+ .AdmonitionBlock--YDF-ActionBar
33
+
34
+ slot(
35
+ name="ActionBarContent"
36
+ )
37
+
38
+ button.AdmonitionBlock--YDF-DismissingButton(
39
+ v-if="dismissible"
40
+ type="button"
41
+ :aria-label="localization.dismissingButton.accessibilityGuidance"
42
+ @click="onClickDismissingButton"
43
+ ): MultiplicationSignIcon__Boxed__Filled.AdmonitionBlock--YDF-DismissingButton-Icon
@@ -0,0 +1,230 @@
1
+ /* ─── Assets ─────────────────────────────────────────────────────────────────────────────────────────────────────── */
2
+ import componentVueTemplate from "./AdmonitionBlock.vue.pug";
3
+ import PencilIcon__Circled__Filled from "../../SVG_Icons/Pencil/PencilIcon__Circled__Filled.vue";
4
+ import ExclamationMarkIcon__Circled__Filled from "./../../SVG_Icons/ExclamationMark/ExclamationMarkIcon__Circled__Filled.vue";
5
+ import ExclamationMarkIcon__Triangled__Filled from "./../../SVG_Icons/ExclamationMark/ExclamationMarkIcon__Triangled__Filled.vue";
6
+ import CheckmarkIcon__Circled__Filled from "../../SVG_Icons/Checkmark/CheckmarkIcon__Circled__Filled.vue";
7
+ import InfoSignIcon__Circled__Filled from "../../SVG_Icons/InfoSign/InfoSignIcon__Circled__Filled.vue";
8
+ import QuestionMarkIcon__Circled__Filled from "../../SVG_Icons/QuestionMark/QuestionMarkIcon__Circled__Filled.vue";
9
+ import MultiplicationSignIcon__Boxed__Filled from
10
+ "../../SVG_Icons/MultiplicationSign/MultiplicationSignIcon__Boxed__Filled.vue";
11
+ import type { AdmonitionBlockLocalization } from "@yamato-daiwa/frontend";
12
+ import { admonitionBlockYDF_ComponentLocalization__english } from "@yamato-daiwa/frontend";
13
+
14
+ /* ─── Related GUI_Components ─────────────────────────────────────────────────────────────────────────────────────── */
15
+ import { Vue3SlideUpDown as VerticallySlidingAlwaysMountedContainer } from "vue3-slide-up-down";
16
+
17
+ /* ─── Framework ──────────────────────────────────────────────────────────────────────────────────────────────────── */
18
+ import {
19
+ ComponentBase as VueComponentConfiguration,
20
+ Vue as VueComponent,
21
+ Prop as VueProperty
22
+ } from "vue-facing-decorator";
23
+
24
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
25
+ import { isStringOfLength, isElementOfEnumeration } from "@yamato-daiwa/es-extensions";
26
+ import ComponentsAuxiliaries from "../ComponentsAuxiliaries";
27
+
28
+
29
+ @VueComponentConfiguration({
30
+ name: AdmonitionBlock.CSS_NAMESPACE,
31
+ template: componentVueTemplate,
32
+ components: {
33
+ VerticallySlidingAlwaysMountedContainer,
34
+ PencilIcon__Circled__Filled,
35
+ ExclamationMarkIcon__Circled__Filled,
36
+ ExclamationMarkIcon__Triangled__Filled,
37
+ CheckmarkIcon__Circled__Filled,
38
+ InfoSignIcon__Circled__Filled,
39
+ QuestionMarkIcon__Circled__Filled,
40
+ MultiplicationSignIcon__Boxed__Filled
41
+ }
42
+ })
43
+ class AdmonitionBlock extends VueComponent {
44
+
45
+ public static CSS_NAMESPACE: string = "AdmonitionBlock--YDF";
46
+
47
+
48
+ @VueProperty({
49
+ type: String,
50
+ required: false,
51
+ validator: (rawValue: unknown): boolean => isStringOfLength(rawValue, { minimalCharactersCount: 1 })
52
+ })
53
+ protected readonly title!: string;
54
+
55
+
56
+ /* ━━━ Dismissing ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
57
+ @VueProperty({ type: Boolean, default: false })
58
+ protected readonly dismissible!: boolean;
59
+
60
+ protected isDisplaying: boolean = true;
61
+
62
+ protected onClickDismissingButton(): void {
63
+ this.isDisplaying = false;
64
+ }
65
+
66
+
67
+ /* ━━━ Theming ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
68
+ public static readonly Themes: AdmonitionBlock.Themes = { regular: "REGULAR" };
69
+
70
+ @VueProperty({
71
+ type: String,
72
+ default: AdmonitionBlock.Themes.regular,
73
+ validator: (rawValue: string): boolean => isElementOfEnumeration(rawValue, AdmonitionBlock.Themes)
74
+ })
75
+ protected readonly theme!: string;
76
+
77
+ public static defineThemes(themesNames: ReadonlyArray<string>): typeof AdmonitionBlock {
78
+ return ComponentsAuxiliaries.defineThemes(themesNames, AdmonitionBlock);
79
+ }
80
+
81
+ protected static areThemesCSS_ClassesCommon: boolean = ComponentsAuxiliaries.areThemesCSS_ClassesCommon;
82
+
83
+ public static considerThemesAsCommon(): void {
84
+ AdmonitionBlock.areThemesCSS_ClassesCommon = true;
85
+ }
86
+
87
+ @VueProperty({ type: Boolean, default: AdmonitionBlock.areThemesCSS_ClassesCommon })
88
+ protected readonly areThemesCSS_ClassesCommon!: boolean;
89
+
90
+
91
+ /* ─── Geometry ─────────────────────────────────────────────────────────────────────────────────────────────────── */
92
+ public static readonly GeometricVariations: AdmonitionBlock.GeometricVariations = {
93
+ regular: "REGULAR",
94
+ stickyNoteLike: "STICKY_NOTE_LIKE"
95
+ };
96
+
97
+ @VueProperty({
98
+ type: String,
99
+ default: AdmonitionBlock.GeometricVariations.regular,
100
+ validator: (rawValue: string): boolean => isElementOfEnumeration(rawValue, AdmonitionBlock.GeometricVariations)
101
+ })
102
+ protected readonly geometricVariation!: string;
103
+
104
+ public static defineGeometricVariations(geometricVariationsNames: ReadonlyArray<string>): typeof AdmonitionBlock {
105
+ return ComponentsAuxiliaries.defineGeometricVariations(geometricVariationsNames, AdmonitionBlock);
106
+ }
107
+
108
+
109
+ /* ─── Decoration ───────────────────────────────────────────────────────────────────────────────────────────────── */
110
+ public static readonly DecorativeVariations: AdmonitionBlock.DecorativeVariations = {
111
+ notice: "NOTICE",
112
+ error: "ERROR",
113
+ warning: "WARNING",
114
+ success: "SUCCESS",
115
+ guidance: "GUIDANCE",
116
+ question: "QUESTION"
117
+ };
118
+
119
+ @VueProperty({
120
+ type: String,
121
+ required: true,
122
+ validator: (rawValue: string): boolean => isElementOfEnumeration(rawValue, AdmonitionBlock.DecorativeVariations)
123
+ })
124
+ protected readonly decorativeVariation!: string;
125
+
126
+ public static defineDecorativeVariations(decorativeVariationsNames: ReadonlyArray<string>): typeof AdmonitionBlock {
127
+ return ComponentsAuxiliaries.defineDecorativeVariations(decorativeVariationsNames, AdmonitionBlock);
128
+ }
129
+
130
+
131
+ /* ━━━ SVG Icon ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
132
+ @VueProperty({ type: Boolean, default: false })
133
+ protected readonly hasDefaultSVG_Icon!: boolean;
134
+
135
+ protected get defaultSVG_IconComponentName(): string | null {
136
+ switch (this.decorativeVariation) {
137
+ case AdmonitionBlock.DecorativeVariations.notice: return "PencilIcon__Circled__Filled";
138
+ case AdmonitionBlock.DecorativeVariations.error: return "ExclamationMarkIcon__Circled__Filled";
139
+ case AdmonitionBlock.DecorativeVariations.warning: return "ExclamationMarkIcon__Triangled__Filled";
140
+ case AdmonitionBlock.DecorativeVariations.success: return "CheckmarkIcon__Circled__Filled";
141
+ case AdmonitionBlock.DecorativeVariations.guidance: return "InfoSignIcon__Circled__Filled";
142
+ case AdmonitionBlock.DecorativeVariations.question: return "QuestionMarkIcon__Circled__Filled";
143
+ default: return null;
144
+ }
145
+ }
146
+
147
+
148
+ /* ━━━ CSS Classes ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
149
+ protected get rootElementModifierCSS_Classes(): Array<string> {
150
+ return [
151
+
152
+ ...ComponentsAuxiliaries.addThemeCSS_ClassToArrayIfMust({
153
+ themeValue: this.theme,
154
+ allThemes: AdmonitionBlock.Themes,
155
+ areThemesCSS_ClassesCommon: this.areThemesCSS_ClassesCommon,
156
+ CSS_Namespace: AdmonitionBlock.CSS_NAMESPACE
157
+ }),
158
+
159
+ ...ComponentsAuxiliaries.addGeometricVariationCSS_ClassToArrayIfMust({
160
+ geometricVariation: this.geometricVariation,
161
+ allGeometricVariations: AdmonitionBlock.GeometricVariations,
162
+ CSS_Namespace: AdmonitionBlock.CSS_NAMESPACE
163
+ }),
164
+
165
+ ...ComponentsAuxiliaries.addDecorativeVariationCSS_ClassToArrayIfMust({
166
+ decorativeVariation: this.decorativeVariation,
167
+ allDecorativeVariations: AdmonitionBlock.DecorativeVariations,
168
+ CSS_Namespace: AdmonitionBlock.CSS_NAMESPACE
169
+ })
170
+
171
+ ];
172
+ }
173
+
174
+
175
+ /* ━━━ Localization ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
176
+ public static localization: AdmonitionBlockLocalization = admonitionBlockYDF_ComponentLocalization__english;
177
+
178
+
179
+ /* ━━━ ID Generating ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
180
+ /* ─── Instance ID ──────────────────────────────────────────────────────────────────────────────────────────────── */
181
+ protected readonly INSTANCE_ID: string = AdmonitionBlock.generateInstanceID();
182
+ protected static counterForInstanceID_Generating: number = 0;
183
+
184
+ public static generateInstanceID(): string {
185
+ AdmonitionBlock.counterForInstanceID_Generating++;
186
+ return `ADMONITION_BLOCK--YDF-${ AdmonitionBlock.counterForInstanceID_Generating }`;
187
+ }
188
+
189
+
190
+ /* ─── Title HTML ID ────────────────────────────────────────────────────────────────────────────────────────────── */
191
+ protected TITLE_HTML_ID: string = `${ this.INSTANCE_ID }-TITLE`;
192
+
193
+
194
+ /* ━━━ Non-Reactive Fields ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
195
+ protected localization!: AdmonitionBlockLocalization;
196
+
197
+ public created(): void {
198
+ this.localization = AdmonitionBlock.localization;
199
+ }
200
+
201
+ }
202
+
203
+
204
+ namespace AdmonitionBlock {
205
+
206
+ export type Themes = {
207
+ readonly regular: "REGULAR";
208
+ [themeName: string]: string;
209
+ };
210
+
211
+ export type GeometricVariations = {
212
+ readonly regular: "REGULAR";
213
+ readonly stickyNoteLike: "STICKY_NOTE_LIKE";
214
+ [variationName: string]: string;
215
+ };
216
+
217
+ export type DecorativeVariations = {
218
+ readonly notice: "NOTICE";
219
+ readonly error: "ERROR";
220
+ readonly warning: "WARNING";
221
+ readonly success: "SUCCESS";
222
+ readonly guidance: "GUIDANCE";
223
+ readonly question: "QUESTION";
224
+ [variationName: string]: string;
225
+ };
226
+
227
+ }
228
+
229
+
230
+ export default AdmonitionBlock;
@@ -0,0 +1,12 @@
1
+ component.Badge--YDF(
2
+ :is="rootElementTag"
3
+ :class="rootElementModifierCSS_Classes"
4
+ )
5
+
6
+ slot(name="SVG_Icon")
7
+
8
+ span.Badge--YDF-KeyLabel(
9
+ v-if="keyLabel"
10
+ ) {{ keyLabel }}
11
+
12
+ span.Badge--YDF-ValueLabel {{ valueLabel }}