@spicainternational/ngx-sds-components 8.0.0 → 8.3.0-beta.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 (196) hide show
  1. package/README.md +16 -16
  2. package/esm2022/public-api.mjs +2 -1
  3. package/esm2022/src/lib/app-switcher/app-switcher.component.mjs +3 -3
  4. package/esm2022/src/lib/app-switcher/app-switcher.model.mjs +1 -1
  5. package/esm2022/src/lib/app-switcher/public-api.mjs +1 -1
  6. package/esm2022/src/lib/avatar/avatar-group.component.mjs +3 -3
  7. package/esm2022/src/lib/avatar/avatar-group.model.mjs +1 -1
  8. package/esm2022/src/lib/avatar/avatar.component.mjs +20 -6
  9. package/esm2022/src/lib/avatar/public-api.mjs +1 -1
  10. package/esm2022/src/lib/badge/badge.directive.mjs +1 -1
  11. package/esm2022/src/lib/badge/badge.types.mjs +1 -1
  12. package/esm2022/src/lib/badge/components/badge.component.mjs +3 -3
  13. package/esm2022/src/lib/badge/public-api.mjs +1 -1
  14. package/esm2022/src/lib/callout/callout.component.mjs +3 -3
  15. package/esm2022/src/lib/callout/public-api.mjs +1 -1
  16. package/esm2022/src/lib/color-picker/color-picker.component.mjs +3 -3
  17. package/esm2022/src/lib/color-picker/public-api.mjs +1 -1
  18. package/esm2022/src/lib/date-picker/date-picker.component.mjs +3 -3
  19. package/esm2022/src/lib/date-picker/date-picker.model.mjs +1 -1
  20. package/esm2022/src/lib/date-picker/public-api.mjs +1 -1
  21. package/esm2022/src/lib/date-picker/sds-date-picker.service.mjs +1 -1
  22. package/esm2022/src/lib/date-pipes/date-compare.pipe.mjs +1 -1
  23. package/esm2022/src/lib/date-pipes/date-format.pipe.mjs +1 -1
  24. package/esm2022/src/lib/date-pipes/date-period-format.pipe.mjs +1 -1
  25. package/esm2022/src/lib/date-pipes/date-time-formats.constants.mjs +1 -1
  26. package/esm2022/src/lib/date-pipes/date-time-range-duration.pipe.mjs +1 -1
  27. package/esm2022/src/lib/date-pipes/date-time-range-format.pipe.mjs +1 -1
  28. package/esm2022/src/lib/date-pipes/public-api.mjs +1 -1
  29. package/esm2022/src/lib/drawer/drawer.component.mjs +4 -4
  30. package/esm2022/src/lib/drawer/public-api.mjs +1 -1
  31. package/esm2022/src/lib/duration-box/duration-box.component.mjs +3 -3
  32. package/esm2022/src/lib/duration-box/duration.service.mjs +1 -1
  33. package/esm2022/src/lib/duration-box/public-api.mjs +1 -1
  34. package/esm2022/src/lib/duration-pipe/duration-format.pipe.mjs +1 -1
  35. package/esm2022/src/lib/duration-pipe/public-api.mjs +1 -1
  36. package/esm2022/src/lib/ellipsis/directives/ellipsis.directive.mjs +1 -1
  37. package/esm2022/src/lib/ellipsis/public-api.mjs +1 -1
  38. package/esm2022/src/lib/expansion-panel/expansion-panel.component.mjs +3 -3
  39. package/esm2022/src/lib/expansion-panel/expansion-panel.types.mjs +1 -1
  40. package/esm2022/src/lib/expansion-panel/public-api.mjs +1 -1
  41. package/esm2022/src/lib/highlight-text/directives/highlight-text.directive.mjs +1 -1
  42. package/esm2022/src/lib/highlight-text/directives/index.mjs +1 -1
  43. package/esm2022/src/lib/highlight-text/pipes/highlight-text.pipe.mjs +1 -1
  44. package/esm2022/src/lib/highlight-text/pipes/index.mjs +1 -1
  45. package/esm2022/src/lib/highlight-text/public-api.mjs +1 -1
  46. package/esm2022/src/lib/highlight-text/utils/highlight-text.utils.mjs +1 -1
  47. package/esm2022/src/lib/highlight-text/utils/index.mjs +1 -1
  48. package/esm2022/src/lib/intersection/directives/index.mjs +1 -1
  49. package/esm2022/src/lib/intersection/directives/intersection.directive.mjs +1 -1
  50. package/esm2022/src/lib/intersection/public-api.mjs +1 -1
  51. package/esm2022/src/lib/intersection/services/index.mjs +1 -1
  52. package/esm2022/src/lib/intersection/services/intersection.service.mjs +1 -1
  53. package/esm2022/src/lib/keyboard-shortcut/directives/index.mjs +1 -1
  54. package/esm2022/src/lib/keyboard-shortcut/directives/keyboard-shortcut.directive.mjs +19 -29
  55. package/esm2022/src/lib/keyboard-shortcut/public-api.mjs +1 -1
  56. package/esm2022/src/lib/layout/default-layout/default-layout.component.mjs +3 -3
  57. package/esm2022/src/lib/layout/extra-large-layout/extra-large-layout.component.mjs +3 -3
  58. package/esm2022/src/lib/layout/fluid-layout/fluid-layout.component.mjs +3 -3
  59. package/esm2022/src/lib/layout/medium-layout/medium-layout.component.mjs +3 -3
  60. package/esm2022/src/lib/layout/public-api.mjs +1 -1
  61. package/esm2022/src/lib/layout/small-layout/small-layout.component.mjs +3 -3
  62. package/esm2022/src/lib/message/message.component.mjs +3 -3
  63. package/esm2022/src/lib/message/public-api.mjs +1 -1
  64. package/esm2022/src/lib/modal/dialog/dialog.component.mjs +5 -5
  65. package/esm2022/src/lib/modal/modal.component.mjs +5 -5
  66. package/esm2022/src/lib/modal/modal.model.mjs +1 -1
  67. package/esm2022/src/lib/modal/public-api.mjs +1 -1
  68. package/esm2022/src/lib/navigation/models/navigation-models.mjs +1 -1
  69. package/esm2022/src/lib/navigation/navigation-collapsible-frame/navigation-collapsible-frame.component.mjs +3 -3
  70. package/esm2022/src/lib/navigation/navigation-container/navigation-container.component.mjs +5 -8
  71. package/esm2022/src/lib/navigation/navigation-external-link/navigation-external-link.component.mjs +3 -3
  72. package/esm2022/src/lib/navigation/navigation-group/navigation-group.component.mjs +123 -14
  73. package/esm2022/src/lib/navigation/navigation-header/navigation-header.component.mjs +3 -3
  74. package/esm2022/src/lib/navigation/navigation-route-link/navigation-route-link.component.mjs +61 -23
  75. package/esm2022/src/lib/navigation/navigation-separator/navigation-separator.component.mjs +3 -3
  76. package/esm2022/src/lib/navigation/navigation-user-profile/components/user-profile-action-button/user-profile-action-button.component.mjs +3 -3
  77. package/esm2022/src/lib/navigation/navigation-user-profile/components/user-profile-selector/user-profile-selector.component.mjs +3 -3
  78. package/esm2022/src/lib/navigation/navigation-user-profile/components/user-profile-tile/user-profile-tile.component.mjs +3 -3
  79. package/esm2022/src/lib/navigation/navigation-user-profile/navigation-profile.model.mjs +1 -1
  80. package/esm2022/src/lib/navigation/navigation-user-profile/navigation-user-profile.component.mjs +3 -3
  81. package/esm2022/src/lib/navigation/product-home/product-home.component.mjs +5 -5
  82. package/esm2022/src/lib/navigation/public-api.mjs +1 -1
  83. package/esm2022/src/lib/navigation/utils/navigation.utils.mjs +1 -1
  84. package/esm2022/src/lib/number-box/number-box.component.mjs +3 -3
  85. package/esm2022/src/lib/number-box/public-api.mjs +1 -1
  86. package/esm2022/src/lib/page-header/page-header.component.mjs +3 -3
  87. package/esm2022/src/lib/page-header/public-api.mjs +1 -1
  88. package/esm2022/src/lib/pane/pane.component.mjs +3 -3
  89. package/esm2022/src/lib/pane/pane.model.mjs +1 -1
  90. package/esm2022/src/lib/pane/public-api.mjs +1 -1
  91. package/esm2022/src/lib/quick-info/quick-info.component.mjs +3 -3
  92. package/esm2022/src/lib/quick-info/quick-info.model.mjs +1 -1
  93. package/esm2022/src/lib/ripple/public-api.mjs +2 -0
  94. package/esm2022/src/lib/ripple/ripple.directive.mjs +103 -0
  95. package/esm2022/src/lib/ripple/spicainternational-ngx-sds-components-src-lib-ripple.mjs +5 -0
  96. package/esm2022/src/lib/segmented-control/public-api.mjs +1 -1
  97. package/esm2022/src/lib/segmented-control/segmented-control.component.mjs +56 -7
  98. package/esm2022/src/lib/side-bar/side-bar.component.mjs +22 -16
  99. package/esm2022/src/lib/static-value/public-api.mjs +1 -1
  100. package/esm2022/src/lib/static-value/static-value.component.mjs +3 -3
  101. package/esm2022/src/lib/table-actions/public-api.mjs +1 -1
  102. package/esm2022/src/lib/table-actions/table-actions.component.mjs +3 -3
  103. package/esm2022/src/lib/timeline/components/timeline.component.mjs +13 -3
  104. package/esm2022/src/lib/timeline/models/timeline.model.mjs +1 -1
  105. package/esm2022/src/lib/timeline/public-api.mjs +1 -1
  106. package/esm2022/src/lib/timeline/services/timeline.service.mjs +1 -1
  107. package/esm2022/src/lib/timeline/types/timeline.types.mjs +1 -1
  108. package/esm2022/src/lib/timer/public-api.mjs +1 -1
  109. package/esm2022/src/lib/timer/services/index.mjs +1 -1
  110. package/esm2022/src/lib/timer/services/timer.service.mjs +1 -1
  111. package/esm2022/src/lib/timer/utils/index.mjs +1 -1
  112. package/esm2022/src/lib/timer/utils/timer.utils.mjs +1 -1
  113. package/esm2022/src/lib/tooltip/components/tooltip.component.mjs +3 -3
  114. package/esm2022/src/lib/tooltip/public-api.mjs +1 -1
  115. package/esm2022/src/lib/tooltip/tooltip.directive.mjs +1 -1
  116. package/esm2022/src/lib/tooltip/tooltip.types.mjs +1 -1
  117. package/esm2022/src/lib/tooltip/utils/tooltip.utils.mjs +1 -1
  118. package/esm2022/src/lib/utils/date-time/date-time-format.function.mjs +1 -1
  119. package/esm2022/src/lib/utils/date-time/intl-date-time-format-options-presets.mjs +1 -1
  120. package/esm2022/src/lib/utils/date-time/public-api.mjs +1 -1
  121. package/esm2022/src/lib/utils/public-api.mjs +1 -1
  122. package/fesm2022/spicainternational-ngx-sds-components-src-lib-app-switcher.mjs +2 -2
  123. package/fesm2022/spicainternational-ngx-sds-components-src-lib-app-switcher.mjs.map +1 -1
  124. package/fesm2022/spicainternational-ngx-sds-components-src-lib-avatar.mjs +21 -7
  125. package/fesm2022/spicainternational-ngx-sds-components-src-lib-avatar.mjs.map +1 -1
  126. package/fesm2022/spicainternational-ngx-sds-components-src-lib-badge.mjs +2 -2
  127. package/fesm2022/spicainternational-ngx-sds-components-src-lib-badge.mjs.map +1 -1
  128. package/fesm2022/spicainternational-ngx-sds-components-src-lib-callout.mjs +2 -2
  129. package/fesm2022/spicainternational-ngx-sds-components-src-lib-callout.mjs.map +1 -1
  130. package/fesm2022/spicainternational-ngx-sds-components-src-lib-color-picker.mjs +2 -2
  131. package/fesm2022/spicainternational-ngx-sds-components-src-lib-color-picker.mjs.map +1 -1
  132. package/fesm2022/spicainternational-ngx-sds-components-src-lib-date-picker.mjs +2 -2
  133. package/fesm2022/spicainternational-ngx-sds-components-src-lib-date-picker.mjs.map +1 -1
  134. package/fesm2022/spicainternational-ngx-sds-components-src-lib-date-pipes.mjs.map +1 -1
  135. package/fesm2022/spicainternational-ngx-sds-components-src-lib-drawer.mjs +3 -3
  136. package/fesm2022/spicainternational-ngx-sds-components-src-lib-drawer.mjs.map +1 -1
  137. package/fesm2022/spicainternational-ngx-sds-components-src-lib-duration-box.mjs +2 -2
  138. package/fesm2022/spicainternational-ngx-sds-components-src-lib-duration-box.mjs.map +1 -1
  139. package/fesm2022/spicainternational-ngx-sds-components-src-lib-duration-pipe.mjs.map +1 -1
  140. package/fesm2022/spicainternational-ngx-sds-components-src-lib-ellipsis.mjs.map +1 -1
  141. package/fesm2022/spicainternational-ngx-sds-components-src-lib-expansion-panel.mjs +2 -2
  142. package/fesm2022/spicainternational-ngx-sds-components-src-lib-expansion-panel.mjs.map +1 -1
  143. package/fesm2022/spicainternational-ngx-sds-components-src-lib-highlight-text.mjs.map +1 -1
  144. package/fesm2022/spicainternational-ngx-sds-components-src-lib-intersection.mjs.map +1 -1
  145. package/fesm2022/spicainternational-ngx-sds-components-src-lib-keyboard-shortcut.mjs +18 -28
  146. package/fesm2022/spicainternational-ngx-sds-components-src-lib-keyboard-shortcut.mjs.map +1 -1
  147. package/fesm2022/spicainternational-ngx-sds-components-src-lib-layout.mjs +10 -10
  148. package/fesm2022/spicainternational-ngx-sds-components-src-lib-layout.mjs.map +1 -1
  149. package/fesm2022/spicainternational-ngx-sds-components-src-lib-message.mjs +2 -2
  150. package/fesm2022/spicainternational-ngx-sds-components-src-lib-message.mjs.map +1 -1
  151. package/fesm2022/spicainternational-ngx-sds-components-src-lib-modal.mjs +8 -8
  152. package/fesm2022/spicainternational-ngx-sds-components-src-lib-modal.mjs.map +1 -1
  153. package/fesm2022/spicainternational-ngx-sds-components-src-lib-navigation.mjs +217 -75
  154. package/fesm2022/spicainternational-ngx-sds-components-src-lib-navigation.mjs.map +1 -1
  155. package/fesm2022/spicainternational-ngx-sds-components-src-lib-number-box.mjs +2 -2
  156. package/fesm2022/spicainternational-ngx-sds-components-src-lib-number-box.mjs.map +1 -1
  157. package/fesm2022/spicainternational-ngx-sds-components-src-lib-page-header.mjs +2 -2
  158. package/fesm2022/spicainternational-ngx-sds-components-src-lib-page-header.mjs.map +1 -1
  159. package/fesm2022/spicainternational-ngx-sds-components-src-lib-pane.mjs +2 -2
  160. package/fesm2022/spicainternational-ngx-sds-components-src-lib-pane.mjs.map +1 -1
  161. package/fesm2022/spicainternational-ngx-sds-components-src-lib-quick-info.mjs +2 -2
  162. package/fesm2022/spicainternational-ngx-sds-components-src-lib-quick-info.mjs.map +1 -1
  163. package/fesm2022/spicainternational-ngx-sds-components-src-lib-ripple.mjs +110 -0
  164. package/fesm2022/spicainternational-ngx-sds-components-src-lib-ripple.mjs.map +1 -0
  165. package/fesm2022/spicainternational-ngx-sds-components-src-lib-segmented-control.mjs +55 -6
  166. package/fesm2022/spicainternational-ngx-sds-components-src-lib-segmented-control.mjs.map +1 -1
  167. package/fesm2022/spicainternational-ngx-sds-components-src-lib-side-bar.mjs +21 -15
  168. package/fesm2022/spicainternational-ngx-sds-components-src-lib-side-bar.mjs.map +1 -1
  169. package/fesm2022/spicainternational-ngx-sds-components-src-lib-static-value.mjs +2 -2
  170. package/fesm2022/spicainternational-ngx-sds-components-src-lib-static-value.mjs.map +1 -1
  171. package/fesm2022/spicainternational-ngx-sds-components-src-lib-table-actions.mjs +2 -2
  172. package/fesm2022/spicainternational-ngx-sds-components-src-lib-table-actions.mjs.map +1 -1
  173. package/fesm2022/spicainternational-ngx-sds-components-src-lib-timeline.mjs +12 -2
  174. package/fesm2022/spicainternational-ngx-sds-components-src-lib-timeline.mjs.map +1 -1
  175. package/fesm2022/spicainternational-ngx-sds-components-src-lib-timer.mjs.map +1 -1
  176. package/fesm2022/spicainternational-ngx-sds-components-src-lib-tooltip.mjs +2 -2
  177. package/fesm2022/spicainternational-ngx-sds-components-src-lib-tooltip.mjs.map +1 -1
  178. package/fesm2022/spicainternational-ngx-sds-components-src-lib-utils-date-time.mjs.map +1 -1
  179. package/fesm2022/spicainternational-ngx-sds-components-src-lib-utils.mjs.map +1 -1
  180. package/fesm2022/spicainternational-ngx-sds-components.mjs +1 -0
  181. package/fesm2022/spicainternational-ngx-sds-components.mjs.map +1 -1
  182. package/package.json +13 -7
  183. package/public-api.d.ts +1 -0
  184. package/src/lib/avatar/avatar.component.d.ts +7 -4
  185. package/src/lib/keyboard-shortcut/directives/keyboard-shortcut.directive.d.ts +5 -10
  186. package/src/lib/modal/modal.component.d.ts +1 -1
  187. package/src/lib/navigation/navigation-container/navigation-container.component.d.ts +1 -2
  188. package/src/lib/navigation/navigation-group/navigation-group.component.d.ts +23 -3
  189. package/src/lib/navigation/navigation-route-link/navigation-route-link.component.d.ts +22 -9
  190. package/src/lib/ripple/index.d.ts +5 -0
  191. package/src/lib/ripple/public-api.d.ts +1 -0
  192. package/src/lib/ripple/ripple.directive.d.ts +21 -0
  193. package/src/lib/ripple/sds-ripple.css +20 -0
  194. package/src/lib/segmented-control/segmented-control.component.d.ts +10 -4
  195. package/src/lib/side-bar/side-bar.component.d.ts +13 -7
  196. package/src/lib/timeline/components/timeline.component.d.ts +9 -1
@@ -1 +1 @@
1
- {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-highlight-text.mjs","sources":["../../../projects/ngx-sds-components/src/lib/highlight-text/utils/highlight-text.utils.ts","../../../projects/ngx-sds-components/src/lib/highlight-text/directives/highlight-text.directive.ts","../../../projects/ngx-sds-components/src/lib/highlight-text/pipes/highlight-text.pipe.ts","../../../projects/ngx-sds-components/src/lib/highlight-text/spicainternational-ngx-sds-components-src-lib-highlight-text.ts"],"sourcesContent":["import { SecurityContext } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n/**\r\n * @public @function escapeRegex\r\n * @description\r\n * Function responsible for substitution of chars that are a no-go for regex\r\n * @param { string } phrase\r\n * @returns { string }\r\n */\r\nexport const escapeRegex = (phrase: string): string => {\r\n return phrase.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\r\n};\r\n\r\n/**\r\n * @public @function highlightSearchedText\r\n * @description\r\n * Function responsible for returning html string\r\n * with included marker that contains string that matches\r\n * provided search phrase\r\n * @param { string } highlightText\r\n * @param { string } stringToBeChecked\r\n * @param { string } existingHtmlContent\r\n * @param { string } additionalClasses\r\n * @param { string } sanitizer\r\n * @returns { string }\r\n */\r\nexport const highlightSearchedText = (\r\n highlightText: string,\r\n stringToBeChecked: string,\r\n existingHtmlContent: string,\r\n sanitizer: DomSanitizer,\r\n additionalClasses?: string\r\n ): string => {\r\n // If search is empty just return current content\r\n if (highlightText === '') {\r\n return stringToBeChecked;\r\n }\r\n\r\n // Split search string into words\r\n const splittedValue = highlightText.split(' ');\r\n\r\n if (!splittedValue || splittedValue.length === 0) {\r\n return stringToBeChecked;\r\n }\r\n\r\n const splittedStringToBeChecked: string[] = stringToBeChecked\r\n ? stringToBeChecked.split(' ')\r\n : [];\r\n\r\n const searchPhrases: string[] = splittedValue.filter(\r\n phrase => phrase.length > 0\r\n );\r\n\r\n const markedWords: string[] = [];\r\n\r\n // Go through search phrases and validate each string\r\n const newContent = splittedStringToBeChecked\r\n .map((wordToBeChecked: string) => {\r\n const searchMarkRawResult = searchPhrases\r\n .map(phrase => {\r\n const safeString = escapeRegex(phrase);\r\n\r\n const searchRegEx = new RegExp(safeString, 'i');\r\n\r\n const testResult: boolean = searchRegEx.test(wordToBeChecked);\r\n\r\n if (!testResult) {\r\n return wordToBeChecked;\r\n }\r\n\r\n // Prevent text duplication when user enters same word multiple times\r\n const wordIsAlreadyMarked = markedWords.some(alreadyMarkedWord => alreadyMarkedWord === wordToBeChecked)\r\n\r\n if (wordIsAlreadyMarked) {\r\n return wordToBeChecked;\r\n }\r\n\r\n markedWords.push(wordToBeChecked);\r\n\r\n // Prepare content to be replaced with mark text\r\n const markedContent = wordToBeChecked.replace(\r\n searchRegEx,\r\n (match: string) => {\r\n return `<mark class='bg-primary text-white p-0 ${\r\n additionalClasses ?? ''\r\n }'>${match}</mark>`;\r\n }\r\n );\r\n return markedContent;\r\n })\r\n .reduce((accumulator: string[], currentItem: string) => {\r\n const itemAlreadyExists = accumulator.some(\r\n item => item === currentItem\r\n );\r\n\r\n if (!itemAlreadyExists) {\r\n accumulator.push(currentItem);\r\n }\r\n\r\n return accumulator;\r\n }, []);\r\n\r\n /**\r\n * At this point we have correctly marker content, however there can be\r\n * duplicate words in the array. E.g. we have text First Client and user\r\n * types Client First. This will give us two array. First one would be:\r\n * ['First', '<mark class='highlighted-text '>First</mark>']\r\n * Second one would be:\r\n * ['<mark class='highlighted-text '>Client</mark>', 'Client']\r\n * We have to filter out those plain values that are marked\r\n */\r\n const sanitizedMarkedContent = searchMarkRawResult.filter(\r\n markedContentItem => {\r\n const wordIsAlsoMarked = markedWords.some(\r\n word => word === markedContentItem\r\n );\r\n\r\n if (wordIsAlsoMarked) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n );\r\n\r\n return sanitizedMarkedContent;\r\n })\r\n .join(' ');\r\n\r\n /**\r\n * We want to sanitize this before pushing to DOM.\r\n * Just to be on the safe side. Fallback to existing value if\r\n * sanitize returns null\r\n */\r\n const sanitizedContent =\r\n sanitizer.sanitize(SecurityContext.HTML, newContent) ?? existingHtmlContent;\r\n\r\n return sanitizedContent;\r\n};\r\n","import { Directive, ElementRef, HostBinding, Input } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { highlightSearchedText } from '../utils';\r\n\r\n@Directive({\r\n selector: '[sdsHighlightText]',\r\n standalone: true\r\n})\r\nexport class SdsHighlightTextDirective {\r\n/**\r\n * INPUTS\r\n */\r\n /**\r\n * CSS classes to be appended to the marked text\r\n */\r\n @Input() additionalClasses: string = '';\r\n\r\n /**\r\n * Search term that should be found\r\n */\r\n private _search: string = '';\r\n @Input()\r\n get highlightText(): string {\r\n return this._search;\r\n }\r\n set highlightText(value: string) {\r\n this._search = value;\r\n\r\n // Now process the search value\r\n this.markSearchedText(value);\r\n }\r\n\r\n /**\r\n * OTHER PROPS\r\n */\r\n @HostBinding('innerHtml')\r\n content!: string;\r\n\r\n /**\r\n * For now make this case insensitive. We might change this to\r\n * input latter if needed\r\n */\r\n protected caseSensitive: boolean = false;\r\n\r\n constructor(\r\n private readonly _elementRef: ElementRef,\r\n private readonly _sanitizer: DomSanitizer\r\n ) {}\r\n\r\n protected markSearchedText(highlightText: string): void {\r\n // Make sure that native element is present\r\n if (this._elementRef?.nativeElement) {\r\n const currentHtmlContent = (this._elementRef.nativeElement as HTMLElement)\r\n .innerHTML;\r\n\r\n const text =\r\n (this._elementRef.nativeElement as HTMLElement).textContent ?? '';\r\n\r\n const highlightedText = highlightSearchedText(\r\n highlightText,\r\n text,\r\n currentHtmlContent,\r\n this._sanitizer,\r\n this.additionalClasses\r\n );\r\n\r\n this.content = highlightedText;\r\n }\r\n }\r\n}\r\n","import { ElementRef, Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { highlightSearchedText } from '../utils';\r\n\r\n@Pipe({\r\n name: 'sdsHighlightText',\r\n standalone: true\r\n})\r\nexport class SdsHighlightTextPipe implements PipeTransform {\r\n constructor(\r\n private readonly _elementRef: ElementRef,\r\n private readonly _sanitizer: DomSanitizer\r\n ) {}\r\n\r\n transform(\r\n highlightText: string,\r\n stringToBeChecked: string,\r\n additionalClasses?: string\r\n ): string {\r\n // Make sure that native element is present\r\n if (this._elementRef?.nativeElement) {\r\n const currentHtmlContent = (this._elementRef.nativeElement as HTMLElement)\r\n .innerHTML;\r\n\r\n const highlightedText = highlightSearchedText(\r\n highlightText,\r\n stringToBeChecked,\r\n currentHtmlContent,\r\n this._sanitizer,\r\n additionalClasses\r\n );\r\n\r\n return highlightedText;\r\n }\r\n\r\n return stringToBeChecked;\r\n }\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-highlight-text.mjs","sources":["../../../projects/ngx-sds-components/src/lib/highlight-text/utils/highlight-text.utils.ts","../../../projects/ngx-sds-components/src/lib/highlight-text/directives/highlight-text.directive.ts","../../../projects/ngx-sds-components/src/lib/highlight-text/pipes/highlight-text.pipe.ts","../../../projects/ngx-sds-components/src/lib/highlight-text/spicainternational-ngx-sds-components-src-lib-highlight-text.ts"],"sourcesContent":["import { SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * @public @function escapeRegex\n * @description\n * Function responsible for substitution of chars that are a no-go for regex\n * @param { string } phrase\n * @returns { string }\n */\nexport const escapeRegex = (phrase: string): string => {\n return phrase.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n};\n\n/**\n * @public @function highlightSearchedText\n * @description\n * Function responsible for returning html string\n * with included marker that contains string that matches\n * provided search phrase\n * @param { string } highlightText\n * @param { string } stringToBeChecked\n * @param { string } existingHtmlContent\n * @param { string } additionalClasses\n * @param { string } sanitizer\n * @returns { string }\n */\nexport const highlightSearchedText = (\n highlightText: string,\n stringToBeChecked: string,\n existingHtmlContent: string,\n sanitizer: DomSanitizer,\n additionalClasses?: string\n ): string => {\n // If search is empty just return current content\n if (highlightText === '') {\n return stringToBeChecked;\n }\n\n // Split search string into words\n const splittedValue = highlightText.split(' ');\n\n if (!splittedValue || splittedValue.length === 0) {\n return stringToBeChecked;\n }\n\n const splittedStringToBeChecked: string[] = stringToBeChecked\n ? stringToBeChecked.split(' ')\n : [];\n\n const searchPhrases: string[] = splittedValue.filter(\n phrase => phrase.length > 0\n );\n\n const markedWords: string[] = [];\n\n // Go through search phrases and validate each string\n const newContent = splittedStringToBeChecked\n .map((wordToBeChecked: string) => {\n const searchMarkRawResult = searchPhrases\n .map(phrase => {\n const safeString = escapeRegex(phrase);\n\n const searchRegEx = new RegExp(safeString, 'i');\n\n const testResult: boolean = searchRegEx.test(wordToBeChecked);\n\n if (!testResult) {\n return wordToBeChecked;\n }\n\n // Prevent text duplication when user enters same word multiple times\n const wordIsAlreadyMarked = markedWords.some(alreadyMarkedWord => alreadyMarkedWord === wordToBeChecked)\n\n if (wordIsAlreadyMarked) {\n return wordToBeChecked;\n }\n\n markedWords.push(wordToBeChecked);\n\n // Prepare content to be replaced with mark text\n const markedContent = wordToBeChecked.replace(\n searchRegEx,\n (match: string) => {\n return `<mark class='bg-primary text-white p-0 ${\n additionalClasses ?? ''\n }'>${match}</mark>`;\n }\n );\n return markedContent;\n })\n .reduce((accumulator: string[], currentItem: string) => {\n const itemAlreadyExists = accumulator.some(\n item => item === currentItem\n );\n\n if (!itemAlreadyExists) {\n accumulator.push(currentItem);\n }\n\n return accumulator;\n }, []);\n\n /**\n * At this point we have correctly marker content, however there can be\n * duplicate words in the array. E.g. we have text First Client and user\n * types Client First. This will give us two array. First one would be:\n * ['First', '<mark class='highlighted-text '>First</mark>']\n * Second one would be:\n * ['<mark class='highlighted-text '>Client</mark>', 'Client']\n * We have to filter out those plain values that are marked\n */\n const sanitizedMarkedContent = searchMarkRawResult.filter(\n markedContentItem => {\n const wordIsAlsoMarked = markedWords.some(\n word => word === markedContentItem\n );\n\n if (wordIsAlsoMarked) {\n return false;\n }\n return true;\n }\n );\n\n return sanitizedMarkedContent;\n })\n .join(' ');\n\n /**\n * We want to sanitize this before pushing to DOM.\n * Just to be on the safe side. Fallback to existing value if\n * sanitize returns null\n */\n const sanitizedContent =\n sanitizer.sanitize(SecurityContext.HTML, newContent) ?? existingHtmlContent;\n\n return sanitizedContent;\n};\n","import { Directive, ElementRef, HostBinding, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { highlightSearchedText } from '../utils';\n\n@Directive({\n selector: '[sdsHighlightText]',\n standalone: true\n})\nexport class SdsHighlightTextDirective {\n/**\n * INPUTS\n */\n /**\n * CSS classes to be appended to the marked text\n */\n @Input() additionalClasses: string = '';\n\n /**\n * Search term that should be found\n */\n private _search: string = '';\n @Input()\n get highlightText(): string {\n return this._search;\n }\n set highlightText(value: string) {\n this._search = value;\n\n // Now process the search value\n this.markSearchedText(value);\n }\n\n /**\n * OTHER PROPS\n */\n @HostBinding('innerHtml')\n content!: string;\n\n /**\n * For now make this case insensitive. We might change this to\n * input latter if needed\n */\n protected caseSensitive: boolean = false;\n\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _sanitizer: DomSanitizer\n ) {}\n\n protected markSearchedText(highlightText: string): void {\n // Make sure that native element is present\n if (this._elementRef?.nativeElement) {\n const currentHtmlContent = (this._elementRef.nativeElement as HTMLElement)\n .innerHTML;\n\n const text =\n (this._elementRef.nativeElement as HTMLElement).textContent ?? '';\n\n const highlightedText = highlightSearchedText(\n highlightText,\n text,\n currentHtmlContent,\n this._sanitizer,\n this.additionalClasses\n );\n\n this.content = highlightedText;\n }\n }\n}\n","import { ElementRef, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { highlightSearchedText } from '../utils';\n\n@Pipe({\n name: 'sdsHighlightText',\n standalone: true\n})\nexport class SdsHighlightTextPipe implements PipeTransform {\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _sanitizer: DomSanitizer\n ) {}\n\n transform(\n highlightText: string,\n stringToBeChecked: string,\n additionalClasses?: string\n ): string {\n // Make sure that native element is present\n if (this._elementRef?.nativeElement) {\n const currentHtmlContent = (this._elementRef.nativeElement as HTMLElement)\n .innerHTML;\n\n const highlightedText = highlightSearchedText(\n highlightText,\n stringToBeChecked,\n currentHtmlContent,\n this._sanitizer,\n additionalClasses\n );\n\n return highlightedText;\n }\n\n return stringToBeChecked;\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-intersection.mjs","sources":["../../../projects/ngx-sds-components/src/lib/intersection/services/intersection.service.ts","../../../projects/ngx-sds-components/src/lib/intersection/directives/intersection.directive.ts","../../../projects/ngx-sds-components/src/lib/intersection/spicainternational-ngx-sds-components-src-lib-intersection.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\r\nimport { ElementRef, Inject, Injectable } from '@angular/core';\r\nimport { Observable, Subscriber, combineLatest, concat, defer, fromEvent, of } from 'rxjs';\r\nimport { map, mergeMap, distinctUntilChanged } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class SdsIntersectionService {\r\n private _documentVisible$: Observable<boolean>;\r\n\r\n constructor(@Inject(DOCUMENT) document: any) {\r\n this._documentVisible$ = concat(\r\n defer(() => of(!document.hidden)),\r\n fromEvent(document, 'visibilitychange').pipe(map(e => !document.hidden))\r\n );\r\n }\r\n\r\n /**\r\n * @description\r\n * Method responsible for determining if element is visible\r\n * on screen or not. Please\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API for options meaning\r\n * @param { ElementRef } element\r\n * @param { IntersectionObserverInit } options\r\n * @returns { Observable<boolean> }\r\n */\r\n elementInSight$(\r\n element: ElementRef,\r\n options?: IntersectionObserverInit\r\n ): Observable<boolean> {\r\n const intersectionOptions: IntersectionObserverInit = {\r\n root: options?.root ?? null,\r\n rootMargin: options?.rootMargin ?? '0px 0px 0px 0px',\r\n threshold: options?.threshold ?? 0.5\r\n };\r\n\r\n const elementVisible$ = new Observable(\r\n (observer: Subscriber<IntersectionObserverEntry[]>) => {\r\n const intersectionObserver = new IntersectionObserver(entries => {\r\n observer.next(entries);\r\n }, intersectionOptions);\r\n\r\n intersectionObserver.observe(element.nativeElement);\r\n\r\n return () => {\r\n intersectionObserver.disconnect();\r\n };\r\n }\r\n ).pipe(\r\n mergeMap((entries: IntersectionObserverEntry[]) => entries),\r\n map((entry: IntersectionObserverEntry) => entry.isIntersecting),\r\n distinctUntilChanged()\r\n );\r\n\r\n const elementInSight$ = combineLatest([\r\n this._documentVisible$,\r\n elementVisible$\r\n ]).pipe(\r\n map(stream => {\r\n const pageVisible: boolean = stream[0];\r\n const elementVisible: boolean = stream[1];\r\n\r\n const isVisible = pageVisible && elementVisible;\r\n\r\n return isVisible;\r\n }),\r\n distinctUntilChanged()\r\n );\r\n\r\n return elementInSight$;\r\n }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdsIntersectionService } from '../services';\r\n\r\n@Directive({\r\n selector: '[sdsIntersection]',\r\n providers: [SdsIntersectionService],\r\n standalone: true\r\n})\r\nexport class SdsIntersectionDirective implements OnInit, OnDestroy, AfterViewInit {\r\n /**\r\n *\r\n */\r\n @Input()\r\n get intersectionOptions(): IntersectionObserverInit | undefined {\r\n return this._intersectionOptions;\r\n }\r\n set intersectionOptions(value: IntersectionObserverInit | undefined) {\r\n this._intersectionOptions = value;\r\n }\r\n\r\n /**\r\n * Emits current visibility status\r\n */\r\n @Output() elementInSight: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _intersectionOptions: IntersectionObserverInit | undefined;\r\n private _subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private readonly _element: ElementRef,\r\n private readonly _intersectionService: SdsIntersectionService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const intersetionSubscription = this._intersectionService\r\n .elementInSight$(this._element, this.intersectionOptions)\r\n .subscribe(visibilityFlag => {\r\n this.elementInSight.emit(visibilityFlag);\r\n });\r\n\r\n this._subscriptions.push(intersetionSubscription);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SdsIntersectionService"],"mappings":";;;;;;MAMa,sBAAsB,CAAA;AAG/B,IAAA,WAAA,CAA8B,QAAa,EAAA;AACzC,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAC7B,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EACjC,SAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CACzE;;AAGH;;;;;;;;AAQG;IACH,eAAe,CACb,OAAmB,EACnB,OAAkC,EAAA;AAElC,QAAA,MAAM,mBAAmB,GAA6B;AACpD,YAAA,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI;AAC3B,YAAA,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,iBAAiB;AACpD,YAAA,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI;SAClC;QAED,MAAM,eAAe,GAAG,IAAI,UAAU,CACpC,CAAC,QAAiD,KAAI;AACpD,YAAA,MAAM,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,OAAO,IAAG;AAC9D,gBAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;aACvB,EAAE,mBAAmB,CAAC;AAEvB,YAAA,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;AAEnD,YAAA,OAAO,MAAK;gBACV,oBAAoB,CAAC,UAAU,EAAE;AACnC,aAAC;AACH,SAAC,CACF,CAAC,IAAI,CACJ,QAAQ,CAAC,CAAC,OAAoC,KAAK,OAAO,CAAC,EAC3D,GAAG,CAAC,CAAC,KAAgC,KAAK,KAAK,CAAC,cAAc,CAAC,EAC/D,oBAAoB,EAAE,CACvB;QAED,MAAM,eAAe,GAAG,aAAa,CAAC;AACpC,YAAA,IAAI,CAAC,iBAAiB;YACtB;AACD,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,MAAM,IAAG;AACX,YAAA,MAAM,WAAW,GAAY,MAAM,CAAC,CAAC,CAAC;AACtC,YAAA,MAAM,cAAc,GAAY,MAAM,CAAC,CAAC,CAAC;AAEzC,YAAA,MAAM,SAAS,GAAG,WAAW,IAAI,cAAc;AAE/C,YAAA,OAAO,SAAS;AAClB,SAAC,CAAC,EACF,oBAAoB,EAAE,CACvB;AAED,QAAA,OAAO,eAAe;;AA9Df,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kBAGX,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAHnB,sBAAsB,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;0BAIgB,MAAM;2BAAC,QAAQ;;;MCAnB,wBAAwB,CAAA;AACjC;;AAEG;AACH,IAAA,IACI,mBAAmB,GAAA;QACnB,OAAO,IAAI,CAAC,oBAAoB;;IAEpC,IAAI,mBAAmB,CAAC,KAA2C,EAAA;AAC/D,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;;IAWrC,WACqB,CAAA,QAAoB,EACpB,oBAA4C,EAAA;QAD5C,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAoB,CAAA,oBAAA,GAApB,oBAAoB;AAVzC;;AAEG;AACO,QAAA,IAAA,CAAA,cAAc,GAA0B,IAAI,YAAY,EAAW;QAGrE,IAAc,CAAA,cAAA,GAAmB,EAAE;;IAO3C,QAAQ,GAAA;;IAIR,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;;IAG3E,eAAe,GAAA;AACX,QAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC;aAChC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB;aACvD,SAAS,CAAC,cAAc,IAAG;AACxB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC;AAChD,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,uBAAuB,CAAC;;+GAxC5C,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAHtB,CAAC,sBAAsB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAG1B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,SAAS,EAAE,CAAC,sBAAsB,CAAC;AACnC,oBAAA,UAAU,EAAE;AACf,iBAAA;iHAMO,mBAAmB,EAAA,CAAA;sBADtB;gBAWS,cAAc,EAAA,CAAA;sBAAvB;;;ACxBL;;AAEG;;;;"}
1
+ {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-intersection.mjs","sources":["../../../projects/ngx-sds-components/src/lib/intersection/services/intersection.service.ts","../../../projects/ngx-sds-components/src/lib/intersection/directives/intersection.directive.ts","../../../projects/ngx-sds-components/src/lib/intersection/spicainternational-ngx-sds-components-src-lib-intersection.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { ElementRef, Inject, Injectable } from '@angular/core';\nimport { Observable, Subscriber, combineLatest, concat, defer, fromEvent, of } from 'rxjs';\nimport { map, mergeMap, distinctUntilChanged } from 'rxjs/operators';\n\n@Injectable()\nexport class SdsIntersectionService {\n private _documentVisible$: Observable<boolean>;\n\n constructor(@Inject(DOCUMENT) document: any) {\n this._documentVisible$ = concat(\n defer(() => of(!document.hidden)),\n fromEvent(document, 'visibilitychange').pipe(map(e => !document.hidden))\n );\n }\n\n /**\n * @description\n * Method responsible for determining if element is visible\n * on screen or not. Please\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API for options meaning\n * @param { ElementRef } element\n * @param { IntersectionObserverInit } options\n * @returns { Observable<boolean> }\n */\n elementInSight$(\n element: ElementRef,\n options?: IntersectionObserverInit\n ): Observable<boolean> {\n const intersectionOptions: IntersectionObserverInit = {\n root: options?.root ?? null,\n rootMargin: options?.rootMargin ?? '0px 0px 0px 0px',\n threshold: options?.threshold ?? 0.5\n };\n\n const elementVisible$ = new Observable(\n (observer: Subscriber<IntersectionObserverEntry[]>) => {\n const intersectionObserver = new IntersectionObserver(entries => {\n observer.next(entries);\n }, intersectionOptions);\n\n intersectionObserver.observe(element.nativeElement);\n\n return () => {\n intersectionObserver.disconnect();\n };\n }\n ).pipe(\n mergeMap((entries: IntersectionObserverEntry[]) => entries),\n map((entry: IntersectionObserverEntry) => entry.isIntersecting),\n distinctUntilChanged()\n );\n\n const elementInSight$ = combineLatest([\n this._documentVisible$,\n elementVisible$\n ]).pipe(\n map(stream => {\n const pageVisible: boolean = stream[0];\n const elementVisible: boolean = stream[1];\n\n const isVisible = pageVisible && elementVisible;\n\n return isVisible;\n }),\n distinctUntilChanged()\n );\n\n return elementInSight$;\n }\n}\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { SdsIntersectionService } from '../services';\n\n@Directive({\n selector: '[sdsIntersection]',\n providers: [SdsIntersectionService],\n standalone: true\n})\nexport class SdsIntersectionDirective implements OnInit, OnDestroy, AfterViewInit {\n /**\n *\n */\n @Input()\n get intersectionOptions(): IntersectionObserverInit | undefined {\n return this._intersectionOptions;\n }\n set intersectionOptions(value: IntersectionObserverInit | undefined) {\n this._intersectionOptions = value;\n }\n\n /**\n * Emits current visibility status\n */\n @Output() elementInSight: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _intersectionOptions: IntersectionObserverInit | undefined;\n private _subscriptions: Subscription[] = [];\n\n constructor(\n private readonly _element: ElementRef,\n private readonly _intersectionService: SdsIntersectionService\n ) {}\n\n ngOnInit(): void {\n\n }\n\n ngOnDestroy(): void {\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n\n ngAfterViewInit(): void {\n const intersetionSubscription = this._intersectionService\n .elementInSight$(this._element, this.intersectionOptions)\n .subscribe(visibilityFlag => {\n this.elementInSight.emit(visibilityFlag);\n });\n\n this._subscriptions.push(intersetionSubscription);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SdsIntersectionService"],"mappings":"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"}
@@ -1,44 +1,41 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { EventEmitter, Output, Inject, Directive } from '@angular/core';
4
- import { fromEvent } from 'rxjs';
5
- import { groupBy, mergeAll } from 'rxjs/operators';
3
+ import { inject, DestroyRef, output, Directive } from '@angular/core';
4
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
+ import { fromEvent, groupBy, mergeAll } from 'rxjs';
6
6
 
7
7
  class SdsKeyboardShortcutDirective {
8
- constructor(_document) {
9
- this._document = _document;
10
- /**
11
- * OUTPUTS
12
- */
8
+ constructor() {
9
+ // #region Dependencies
10
+ this._document = inject(DOCUMENT);
11
+ this._destroyRef = inject(DestroyRef);
12
+ // #endregion Dependencies
13
+ // #region Outputs
13
14
  /**
14
15
  * Emitted when user presses Escape
15
16
  */
16
- this.closeShortcut = new EventEmitter();
17
+ this.closeShortcut = output();
17
18
  /**
18
19
  * Emitted when user presses ctrl+Enter or cmd+Enter
19
20
  */
20
- this.saveRecordShortcut = new EventEmitter();
21
- this._subscriptions = [];
21
+ this.saveRecordShortcut = output();
22
22
  }
23
+ // #endregion Outputs
23
24
  ngOnInit() {
24
- const keyboardEventsSubscription = fromEvent(this._document, 'keydown')
25
- .pipe(groupBy(e => e.code), mergeAll())
26
- .subscribe(keyboardEvent => {
25
+ fromEvent(this._document, 'keydown')
26
+ .pipe(groupBy(e => e.code), mergeAll(), takeUntilDestroyed(this._destroyRef))
27
+ .subscribe((keyboardEvent) => {
27
28
  // Define shortcut(s) logic here.
28
29
  if (keyboardEvent.code === 'Escape') {
29
30
  this.closeShortcut.emit();
30
31
  }
31
- if (keyboardEvent.code === 'Enter' && keyboardEvent.ctrlKey) {
32
+ if (keyboardEvent.code === 'Enter' && (keyboardEvent.ctrlKey || keyboardEvent.metaKey)) {
32
33
  // Ctrl+Enter was pressed (Cmd+Enter on Apple HW)
33
34
  this.saveRecordShortcut.emit();
34
35
  }
35
36
  });
36
- this._subscriptions.push(keyboardEventsSubscription);
37
- }
38
- ngOnDestroy() {
39
- this._subscriptions.forEach(subscription => subscription.unsubscribe());
40
37
  }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsKeyboardShortcutDirective, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsKeyboardShortcutDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
42
39
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: SdsKeyboardShortcutDirective, isStandalone: true, selector: "[sdsKeyboardShortcut]", outputs: { closeShortcut: "closeShortcut", saveRecordShortcut: "saveRecordShortcut" }, ngImport: i0 }); }
43
40
  }
44
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsKeyboardShortcutDirective, decorators: [{
@@ -47,14 +44,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
47
44
  selector: '[sdsKeyboardShortcut]',
48
45
  standalone: true
49
46
  }]
50
- }], ctorParameters: () => [{ type: undefined, decorators: [{
51
- type: Inject,
52
- args: [DOCUMENT]
53
- }] }], propDecorators: { closeShortcut: [{
54
- type: Output
55
- }], saveRecordShortcut: [{
56
- type: Output
57
- }] } });
47
+ }] });
58
48
 
59
49
  /**
60
50
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-keyboard-shortcut.mjs","sources":["../../../projects/ngx-sds-components/src/lib/keyboard-shortcut/directives/keyboard-shortcut.directive.ts","../../../projects/ngx-sds-components/src/lib/keyboard-shortcut/spicainternational-ngx-sds-components-src-lib-keyboard-shortcut.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\r\nimport { Directive, EventEmitter, Inject, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { Subscription, fromEvent } from 'rxjs';\r\nimport { groupBy, mergeAll } from 'rxjs/operators';\r\n\r\n@Directive({\r\n selector: '[sdsKeyboardShortcut]',\r\n standalone: true\r\n})\r\nexport class SdsKeyboardShortcutDirective implements OnInit, OnDestroy {\r\n/**\r\n * OUTPUTS\r\n */\r\n /**\r\n * Emitted when user presses Escape\r\n */\r\n @Output() closeShortcut: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n /**\r\n * Emitted when user presses ctrl+Enter or cmd+Enter\r\n */\r\n @Output() saveRecordShortcut: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n private _subscriptions: Subscription[] = [];\r\n constructor(@Inject(DOCUMENT) private readonly _document: any) {}\r\n\r\n ngOnInit(): void {\r\n const keyboardEventsSubscription = fromEvent<KeyboardEvent>(\r\n this._document,\r\n 'keydown'\r\n )\r\n .pipe(\r\n groupBy(e => e.code),\r\n mergeAll()\r\n )\r\n .subscribe(keyboardEvent => {\r\n // Define shortcut(s) logic here.\r\n\r\n if (keyboardEvent.code === 'Escape') {\r\n this.closeShortcut.emit();\r\n }\r\n\r\n if (keyboardEvent.code === 'Enter' && keyboardEvent.ctrlKey) {\r\n // Ctrl+Enter was pressed (Cmd+Enter on Apple HW)\r\n this.saveRecordShortcut.emit();\r\n }\r\n });\r\n\r\n this._subscriptions.push(keyboardEventsSubscription);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MASa,4BAA4B,CAAA;AAevC,IAAA,WAAA,CAA+C,SAAc,EAAA;QAAd,IAAS,CAAA,SAAA,GAAT,SAAS;AAd1D;;AAEK;AACH;;AAEG;AACO,QAAA,IAAA,CAAA,aAAa,GAAuB,IAAI,YAAY,EAAQ;AAEtE;;AAEG;AACO,QAAA,IAAA,CAAA,kBAAkB,GAAuB,IAAI,YAAY,EAAQ;QAEnE,IAAc,CAAA,cAAA,GAAmB,EAAE;;IAG3C,QAAQ,GAAA;QACN,MAAM,0BAA0B,GAAG,SAAS,CAC1C,IAAI,CAAC,SAAS,EACd,SAAS;AAER,aAAA,IAAI,CACH,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EACpB,QAAQ,EAAE;aAEX,SAAS,CAAC,aAAa,IAAG;;AAGzB,YAAA,IAAI,aAAa,CAAC,IAAI,KAAK,QAAQ,EAAE;AACnC,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;;YAG3B,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE;;AAE3D,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;;AAElC,SAAC,CAAC;AAEJ,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,0BAA0B,CAAC;;IAGtD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;;AA3C9D,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,kBAenB,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAfjB,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE;AACf,iBAAA;;0BAgBc,MAAM;2BAAC,QAAQ;yCARlB,aAAa,EAAA,CAAA;sBAAtB;gBAKS,kBAAkB,EAAA,CAAA;sBAA3B;;;ACrBH;;AAEG;;;;"}
1
+ {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-keyboard-shortcut.mjs","sources":["../../../projects/ngx-sds-components/src/lib/keyboard-shortcut/directives/keyboard-shortcut.directive.ts","../../../projects/ngx-sds-components/src/lib/keyboard-shortcut/spicainternational-ngx-sds-components-src-lib-keyboard-shortcut.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { DestroyRef, Directive, inject, OnInit, output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, groupBy, mergeAll } from 'rxjs';\n\n@Directive({\n selector: '[sdsKeyboardShortcut]',\n standalone: true\n})\nexport class SdsKeyboardShortcutDirective implements OnInit {\n // #region Dependencies\n private readonly _document = inject(DOCUMENT);\n private readonly _destroyRef = inject(DestroyRef);\n // #endregion Dependencies\n\n // #region Outputs\n /**\n * Emitted when user presses Escape\n */\n public closeShortcut = output<void>();\n\n /**\n * Emitted when user presses ctrl+Enter or cmd+Enter\n */\n public saveRecordShortcut = output<void>();\n // #endregion Outputs\n\n ngOnInit(): void {\n fromEvent<KeyboardEvent>(\n this._document,\n 'keydown'\n )\n .pipe(\n groupBy(e => e.code),\n mergeAll(),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((keyboardEvent) => {\n // Define shortcut(s) logic here.\n\n if (keyboardEvent.code === 'Escape') {\n this.closeShortcut.emit();\n }\n\n if (keyboardEvent.code === 'Enter' && (keyboardEvent.ctrlKey || keyboardEvent.metaKey)) {\n // Ctrl+Enter was pressed (Cmd+Enter on Apple HW)\n this.saveRecordShortcut.emit();\n }\n });\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MASa,4BAA4B,CAAA;AAJzC,IAAA,WAAA,GAAA;;AAMqB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;;;AAIjD;;AAEG;QACI,IAAa,CAAA,aAAA,GAAG,MAAM,EAAQ;AAErC;;AAEG;QACI,IAAkB,CAAA,kBAAA,GAAG,MAAM,EAAQ;AA0B7C;;IAvBG,QAAQ,GAAA;AACJ,QAAA,SAAS,CACL,IAAI,CAAC,SAAS,EACd,SAAS;aAER,IAAI,CACD,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EACpB,QAAQ,EAAE,EACV,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AAEvC,aAAA,SAAS,CAAC,CAAC,aAAa,KAAI;;AAGzB,YAAA,IAAI,aAAa,CAAC,IAAI,KAAK,QAAQ,EAAE;AACjC,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;;AAG7B,YAAA,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO,KAAK,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;;AAEpF,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;;AAEtC,SAAC,CAAC;;+GAvCD,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACRD;;AAEG;;;;"}
@@ -7,11 +7,11 @@ class SdsDefaultLayoutComponent {
7
7
  ngOnInit() {
8
8
  }
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsDefaultLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsDefaultLayoutComponent, isStandalone: true, selector: "sds-default-layout", ngImport: i0, template: "<div class=\"container\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsDefaultLayoutComponent, isStandalone: true, selector: "sds-default-layout", ngImport: i0, template: "<div class=\"container\">\n <router-outlet></router-outlet>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsDefaultLayoutComponent, decorators: [{
13
13
  type: Component,
14
- args: [{ selector: 'sds-default-layout', standalone: true, imports: [RouterOutlet], template: "<div class=\"container\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n" }]
14
+ args: [{ selector: 'sds-default-layout', standalone: true, imports: [RouterOutlet], template: "<div class=\"container\">\n <router-outlet></router-outlet>\n</div>\n" }]
15
15
  }], ctorParameters: () => [] });
16
16
 
17
17
  class SdsFluidLayoutComponent {
@@ -19,11 +19,11 @@ class SdsFluidLayoutComponent {
19
19
  ngOnInit() {
20
20
  }
21
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsFluidLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsFluidLayoutComponent, isStandalone: true, selector: "sds-fluid-layout", ngImport: i0, template: "<div class=\"container-fluid\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsFluidLayoutComponent, isStandalone: true, selector: "sds-fluid-layout", ngImport: i0, template: "<div class=\"container-fluid\">\n <router-outlet></router-outlet>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
23
23
  }
24
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsFluidLayoutComponent, decorators: [{
25
25
  type: Component,
26
- args: [{ selector: 'sds-fluid-layout', standalone: true, imports: [RouterOutlet], template: "<div class=\"container-fluid\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n" }]
26
+ args: [{ selector: 'sds-fluid-layout', standalone: true, imports: [RouterOutlet], template: "<div class=\"container-fluid\">\n <router-outlet></router-outlet>\n</div>\n" }]
27
27
  }], ctorParameters: () => [] });
28
28
 
29
29
  class SdsSmallLayoutComponent {
@@ -31,11 +31,11 @@ class SdsSmallLayoutComponent {
31
31
  ngOnInit() {
32
32
  }
33
33
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsSmallLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsSmallLayoutComponent, isStandalone: true, selector: "sds-small-layout", ngImport: i0, template: "<div class=\"container container-sm\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsSmallLayoutComponent, isStandalone: true, selector: "sds-small-layout", ngImport: i0, template: "<div class=\"container container-sm\">\n <router-outlet></router-outlet>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
35
35
  }
36
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsSmallLayoutComponent, decorators: [{
37
37
  type: Component,
38
- args: [{ selector: 'sds-small-layout', standalone: true, imports: [RouterOutlet], template: "<div class=\"container container-sm\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n" }]
38
+ args: [{ selector: 'sds-small-layout', standalone: true, imports: [RouterOutlet], template: "<div class=\"container container-sm\">\n <router-outlet></router-outlet>\n</div>\n" }]
39
39
  }], ctorParameters: () => [] });
40
40
 
41
41
  class SdsMediumLayoutComponent {
@@ -43,11 +43,11 @@ class SdsMediumLayoutComponent {
43
43
  ngOnInit() {
44
44
  }
45
45
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsMediumLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsMediumLayoutComponent, isStandalone: true, selector: "sds-medium-layout", ngImport: i0, template: "<div class=\"container container-md\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsMediumLayoutComponent, isStandalone: true, selector: "sds-medium-layout", ngImport: i0, template: "<div class=\"container container-md\">\n <router-outlet></router-outlet>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
47
47
  }
48
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsMediumLayoutComponent, decorators: [{
49
49
  type: Component,
50
- args: [{ selector: 'sds-medium-layout', standalone: true, imports: [RouterOutlet], template: "<div class=\"container container-md\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n" }]
50
+ args: [{ selector: 'sds-medium-layout', standalone: true, imports: [RouterOutlet], template: "<div class=\"container container-md\">\n <router-outlet></router-outlet>\n</div>\n" }]
51
51
  }], ctorParameters: () => [] });
52
52
 
53
53
  class SdsExtraLargeLayoutComponent {
@@ -55,11 +55,11 @@ class SdsExtraLargeLayoutComponent {
55
55
  ngOnInit() {
56
56
  }
57
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsExtraLargeLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsExtraLargeLayoutComponent, isStandalone: true, selector: "sds-extra-large-layout", ngImport: i0, template: "<div class=\"container container-xl\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsExtraLargeLayoutComponent, isStandalone: true, selector: "sds-extra-large-layout", ngImport: i0, template: "<div class=\"container container-xl\">\n <router-outlet></router-outlet>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
59
59
  }
60
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsExtraLargeLayoutComponent, decorators: [{
61
61
  type: Component,
62
- args: [{ selector: 'sds-extra-large-layout', standalone: true, imports: [RouterOutlet], template: "<div class=\"container container-xl\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n" }]
62
+ args: [{ selector: 'sds-extra-large-layout', standalone: true, imports: [RouterOutlet], template: "<div class=\"container container-xl\">\n <router-outlet></router-outlet>\n</div>\n" }]
63
63
  }], ctorParameters: () => [] });
64
64
 
65
65
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-layout.mjs","sources":["../../../projects/ngx-sds-components/src/lib/layout/default-layout/default-layout.component.ts","../../../projects/ngx-sds-components/src/lib/layout/default-layout/default-layout.component.html","../../../projects/ngx-sds-components/src/lib/layout/fluid-layout/fluid-layout.component.ts","../../../projects/ngx-sds-components/src/lib/layout/fluid-layout/fluid-layout.component.html","../../../projects/ngx-sds-components/src/lib/layout/small-layout/small-layout.component.ts","../../../projects/ngx-sds-components/src/lib/layout/small-layout/small-layout.component.html","../../../projects/ngx-sds-components/src/lib/layout/medium-layout/medium-layout.component.ts","../../../projects/ngx-sds-components/src/lib/layout/medium-layout/medium-layout.component.html","../../../projects/ngx-sds-components/src/lib/layout/extra-large-layout/extra-large-layout.component.ts","../../../projects/ngx-sds-components/src/lib/layout/extra-large-layout/extra-large-layout.component.html","../../../projects/ngx-sds-components/src/lib/layout/spicainternational-ngx-sds-components-src-lib-layout.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'sds-default-layout',\r\n templateUrl: './default-layout.component.html',\r\n styleUrls: ['./default-layout.component.scss'],\r\n standalone: true,\r\n imports: [RouterOutlet]\r\n})\r\nexport class SdsDefaultLayoutComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"container\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'sds-fluid-layout',\r\n templateUrl: './fluid-layout.component.html',\r\n styleUrls: ['./fluid-layout.component.scss'],\r\n standalone: true,\r\n imports: [RouterOutlet]\r\n})\r\nexport class SdsFluidLayoutComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"container-fluid\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'sds-small-layout',\r\n templateUrl: './small-layout.component.html',\r\n styleUrls: ['./small-layout.component.scss'],\r\n standalone: true,\r\n imports: [RouterOutlet]\r\n})\r\nexport class SdsSmallLayoutComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"container container-sm\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'sds-medium-layout',\r\n templateUrl: './medium-layout.component.html',\r\n styleUrls: ['./medium-layout.component.scss'],\r\n standalone: true,\r\n imports: [RouterOutlet]\r\n})\r\nexport class SdsMediumLayoutComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"container container-md\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'sds-extra-large-layout',\r\n templateUrl: './extra-large-layout.component.html',\r\n styleUrls: ['./extra-large-layout.component.scss'],\r\n standalone: true,\r\n imports: [RouterOutlet]\r\n})\r\nexport class SdsExtraLargeLayoutComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"container container-xl\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-layout.mjs","sources":["../../../projects/ngx-sds-components/src/lib/layout/default-layout/default-layout.component.ts","../../../projects/ngx-sds-components/src/lib/layout/default-layout/default-layout.component.html","../../../projects/ngx-sds-components/src/lib/layout/fluid-layout/fluid-layout.component.ts","../../../projects/ngx-sds-components/src/lib/layout/fluid-layout/fluid-layout.component.html","../../../projects/ngx-sds-components/src/lib/layout/small-layout/small-layout.component.ts","../../../projects/ngx-sds-components/src/lib/layout/small-layout/small-layout.component.html","../../../projects/ngx-sds-components/src/lib/layout/medium-layout/medium-layout.component.ts","../../../projects/ngx-sds-components/src/lib/layout/medium-layout/medium-layout.component.html","../../../projects/ngx-sds-components/src/lib/layout/extra-large-layout/extra-large-layout.component.ts","../../../projects/ngx-sds-components/src/lib/layout/extra-large-layout/extra-large-layout.component.html","../../../projects/ngx-sds-components/src/lib/layout/spicainternational-ngx-sds-components-src-lib-layout.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'sds-default-layout',\n templateUrl: './default-layout.component.html',\n styleUrls: ['./default-layout.component.scss'],\n standalone: true,\n imports: [RouterOutlet]\n})\nexport class SdsDefaultLayoutComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"container\">\n <router-outlet></router-outlet>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'sds-fluid-layout',\n templateUrl: './fluid-layout.component.html',\n styleUrls: ['./fluid-layout.component.scss'],\n standalone: true,\n imports: [RouterOutlet]\n})\nexport class SdsFluidLayoutComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"container-fluid\">\n <router-outlet></router-outlet>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'sds-small-layout',\n templateUrl: './small-layout.component.html',\n styleUrls: ['./small-layout.component.scss'],\n standalone: true,\n imports: [RouterOutlet]\n})\nexport class SdsSmallLayoutComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"container container-sm\">\n <router-outlet></router-outlet>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'sds-medium-layout',\n templateUrl: './medium-layout.component.html',\n styleUrls: ['./medium-layout.component.scss'],\n standalone: true,\n imports: [RouterOutlet]\n})\nexport class SdsMediumLayoutComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"container container-md\">\n <router-outlet></router-outlet>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'sds-extra-large-layout',\n templateUrl: './extra-large-layout.component.html',\n styleUrls: ['./extra-large-layout.component.scss'],\n standalone: true,\n imports: [RouterOutlet]\n})\nexport class SdsExtraLargeLayoutComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"container container-xl\">\n <router-outlet></router-outlet>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -27,11 +27,11 @@ class SdsMessageComponent {
27
27
  this.actionClick.emit();
28
28
  }
29
29
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsMessageComponent, isStandalone: true, selector: "sds-message", inputs: { icon: "icon", text: "text", showCloseButton: "showCloseButton", showLearnMoreLink: "showLearnMoreLink", learnMoreLinkText: "learnMoreLinkText", learnMoreLinkUrl: "learnMoreLinkUrl", showAction: "showAction", actionText: "actionText", style: "style" }, outputs: { close: "close", actionClick: "actionClick" }, queries: [{ propertyName: "customContent", first: true, predicate: ["customContent"], descendants: true }], ngImport: i0, template: "<div \r\n *ngIf=\"showMessage\"\r\n class=\"px-3 py-2 d-flex rounded\"\r\n [class.sds-message-default] = \"style == 'default'\"\r\n \r\n [class.sds-message-success] = \"style == 'success'\"\r\n [class.sds-message-success-subtle] = \"style == 'successSubtle'\"\r\n \r\n [class.sds-message-danger] = \"style == 'danger'\"\r\n [class.sds-message-danger-subtle] = \"style == 'dangerSubtle'\"\r\n \r\n [class.sds-message-warning] = \"style == 'warning'\"\r\n [class.sds-message-warning-subtle] = \"style == 'warningSubtle'\"\r\n\r\n [class.sds-message-info] = \"style == 'info'\"\r\n [class.sds-message-info-subtle] = \"style == 'infoSubtle'\"\r\n >\r\n\r\n <fa-icon \r\n *ngIf=\"icon\"\r\n [icon]=\"icon\"\r\n class=\"me-2\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"flex-grow-1\">\r\n <div *ngIf=\"!customContent\">\r\n <span>\r\n {{text}}\r\n </span>\r\n\r\n <span \r\n *ngIf=\"showAction\"\r\n >\r\n <a \r\n class=\"link-primary sds-cursor-pointer ml-2 \"\r\n (click)=\"onActionButtonClick()\"\r\n >\r\n {{actionText}}\r\n </a>\r\n </span>\r\n\r\n <span \r\n *ngIf=\"showLearnMoreLink\"\r\n >\r\n <a \r\n class=\"\"\r\n [href]=\"learnMoreLinkUrl\"\r\n target=\"_learnmore\"\r\n >\r\n {{learnMoreLinkText}}\r\n </a>\r\n </span>\r\n </div>\r\n\r\n <ng-container *ngIf=\"customContent\" >\r\n <ng-content select=\"customContent\"></ng-content>\r\n </ng-container> \r\n </div>\r\n\r\n <div *ngIf=\"showCloseButton\">\r\n <button \r\n type=\"button\" \r\n class=\"btn-close ml-2\" \r\n aria-label=\"Close\"\r\n (click)=\"onCloseButtonClick()\"\r\n >\r\n </button>\r\n </div>\r\n\r\n</div>\r\n", styles: [".sds-message-default{color:var(--bs-gray-900);background-color:var(--bs-gray-300)}.sds-message-success-subtle{color:var(--bs-gray-900);background-color:var(--bs-success-bg-subtle)}.sds-message-danger-subtle{color:var(--bs-gray-900);background-color:var(--bs-danger-bg-subtle)}.sds-message-warning-subtle{color:var(--bs-gray-900);background-color:var(--bs-warning-bg-subtle)}.sds-message-info-subtle{color:var(--bs-gray-900);background-color:var(--bs-info-bg-subtle)}.sds-message-success{color:var(--bs-gray-100);background-color:var(--bs-success)}.sds-message-danger{color:var(--bs-gray-100);background-color:var(--bs-danger)}.sds-message-warning{color:var(--bs-gray-900);background-color:var(--bs-warning)}.sds-message-info{color:var(--bs-gray-900);background-color:var(--bs-info)}.btn-close{font-size:.75em}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsMessageComponent, isStandalone: true, selector: "sds-message", inputs: { icon: "icon", text: "text", showCloseButton: "showCloseButton", showLearnMoreLink: "showLearnMoreLink", learnMoreLinkText: "learnMoreLinkText", learnMoreLinkUrl: "learnMoreLinkUrl", showAction: "showAction", actionText: "actionText", style: "style" }, outputs: { close: "close", actionClick: "actionClick" }, queries: [{ propertyName: "customContent", first: true, predicate: ["customContent"], descendants: true }], ngImport: i0, template: "<div \n *ngIf=\"showMessage\"\n class=\"px-3 py-2 d-flex rounded\"\n [class.sds-message-default] = \"style == 'default'\"\n \n [class.sds-message-success] = \"style == 'success'\"\n [class.sds-message-success-subtle] = \"style == 'successSubtle'\"\n \n [class.sds-message-danger] = \"style == 'danger'\"\n [class.sds-message-danger-subtle] = \"style == 'dangerSubtle'\"\n \n [class.sds-message-warning] = \"style == 'warning'\"\n [class.sds-message-warning-subtle] = \"style == 'warningSubtle'\"\n\n [class.sds-message-info] = \"style == 'info'\"\n [class.sds-message-info-subtle] = \"style == 'infoSubtle'\"\n >\n\n <fa-icon \n *ngIf=\"icon\"\n [icon]=\"icon\"\n class=\"me-2\"\n >\n </fa-icon>\n\n <div class=\"flex-grow-1\">\n <div *ngIf=\"!customContent\">\n <span>\n {{text}}\n </span>\n\n <span \n *ngIf=\"showAction\"\n >\n <a \n class=\"link-primary sds-cursor-pointer ml-2 \"\n (click)=\"onActionButtonClick()\"\n >\n {{actionText}}\n </a>\n </span>\n\n <span \n *ngIf=\"showLearnMoreLink\"\n >\n <a \n class=\"\"\n [href]=\"learnMoreLinkUrl\"\n target=\"_learnmore\"\n >\n {{learnMoreLinkText}}\n </a>\n </span>\n </div>\n\n <ng-container *ngIf=\"customContent\" >\n <ng-content select=\"customContent\"></ng-content>\n </ng-container> \n </div>\n\n <div *ngIf=\"showCloseButton\">\n <button \n type=\"button\" \n class=\"btn-close ml-2\" \n aria-label=\"Close\"\n (click)=\"onCloseButtonClick()\"\n >\n </button>\n </div>\n\n</div>\n", styles: [".sds-message-default{color:var(--bs-gray-900);background-color:var(--bs-gray-300)}.sds-message-success-subtle{color:var(--bs-gray-900);background-color:var(--bs-success-bg-subtle)}.sds-message-danger-subtle{color:var(--bs-gray-900);background-color:var(--bs-danger-bg-subtle)}.sds-message-warning-subtle{color:var(--bs-gray-900);background-color:var(--bs-warning-bg-subtle)}.sds-message-info-subtle{color:var(--bs-gray-900);background-color:var(--bs-info-bg-subtle)}.sds-message-success{color:var(--bs-gray-100);background-color:var(--bs-success)}.sds-message-danger{color:var(--bs-gray-100);background-color:var(--bs-danger)}.sds-message-warning{color:var(--bs-gray-900);background-color:var(--bs-warning)}.sds-message-info{color:var(--bs-gray-900);background-color:var(--bs-info)}.btn-close{font-size:.75em}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
31
31
  }
32
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsMessageComponent, decorators: [{
33
33
  type: Component,
34
- args: [{ selector: 'sds-message', standalone: true, imports: [NgIf, FaIconComponent], template: "<div \r\n *ngIf=\"showMessage\"\r\n class=\"px-3 py-2 d-flex rounded\"\r\n [class.sds-message-default] = \"style == 'default'\"\r\n \r\n [class.sds-message-success] = \"style == 'success'\"\r\n [class.sds-message-success-subtle] = \"style == 'successSubtle'\"\r\n \r\n [class.sds-message-danger] = \"style == 'danger'\"\r\n [class.sds-message-danger-subtle] = \"style == 'dangerSubtle'\"\r\n \r\n [class.sds-message-warning] = \"style == 'warning'\"\r\n [class.sds-message-warning-subtle] = \"style == 'warningSubtle'\"\r\n\r\n [class.sds-message-info] = \"style == 'info'\"\r\n [class.sds-message-info-subtle] = \"style == 'infoSubtle'\"\r\n >\r\n\r\n <fa-icon \r\n *ngIf=\"icon\"\r\n [icon]=\"icon\"\r\n class=\"me-2\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"flex-grow-1\">\r\n <div *ngIf=\"!customContent\">\r\n <span>\r\n {{text}}\r\n </span>\r\n\r\n <span \r\n *ngIf=\"showAction\"\r\n >\r\n <a \r\n class=\"link-primary sds-cursor-pointer ml-2 \"\r\n (click)=\"onActionButtonClick()\"\r\n >\r\n {{actionText}}\r\n </a>\r\n </span>\r\n\r\n <span \r\n *ngIf=\"showLearnMoreLink\"\r\n >\r\n <a \r\n class=\"\"\r\n [href]=\"learnMoreLinkUrl\"\r\n target=\"_learnmore\"\r\n >\r\n {{learnMoreLinkText}}\r\n </a>\r\n </span>\r\n </div>\r\n\r\n <ng-container *ngIf=\"customContent\" >\r\n <ng-content select=\"customContent\"></ng-content>\r\n </ng-container> \r\n </div>\r\n\r\n <div *ngIf=\"showCloseButton\">\r\n <button \r\n type=\"button\" \r\n class=\"btn-close ml-2\" \r\n aria-label=\"Close\"\r\n (click)=\"onCloseButtonClick()\"\r\n >\r\n </button>\r\n </div>\r\n\r\n</div>\r\n", styles: [".sds-message-default{color:var(--bs-gray-900);background-color:var(--bs-gray-300)}.sds-message-success-subtle{color:var(--bs-gray-900);background-color:var(--bs-success-bg-subtle)}.sds-message-danger-subtle{color:var(--bs-gray-900);background-color:var(--bs-danger-bg-subtle)}.sds-message-warning-subtle{color:var(--bs-gray-900);background-color:var(--bs-warning-bg-subtle)}.sds-message-info-subtle{color:var(--bs-gray-900);background-color:var(--bs-info-bg-subtle)}.sds-message-success{color:var(--bs-gray-100);background-color:var(--bs-success)}.sds-message-danger{color:var(--bs-gray-100);background-color:var(--bs-danger)}.sds-message-warning{color:var(--bs-gray-900);background-color:var(--bs-warning)}.sds-message-info{color:var(--bs-gray-900);background-color:var(--bs-info)}.btn-close{font-size:.75em}\n"] }]
34
+ args: [{ selector: 'sds-message', standalone: true, imports: [NgIf, FaIconComponent], template: "<div \n *ngIf=\"showMessage\"\n class=\"px-3 py-2 d-flex rounded\"\n [class.sds-message-default] = \"style == 'default'\"\n \n [class.sds-message-success] = \"style == 'success'\"\n [class.sds-message-success-subtle] = \"style == 'successSubtle'\"\n \n [class.sds-message-danger] = \"style == 'danger'\"\n [class.sds-message-danger-subtle] = \"style == 'dangerSubtle'\"\n \n [class.sds-message-warning] = \"style == 'warning'\"\n [class.sds-message-warning-subtle] = \"style == 'warningSubtle'\"\n\n [class.sds-message-info] = \"style == 'info'\"\n [class.sds-message-info-subtle] = \"style == 'infoSubtle'\"\n >\n\n <fa-icon \n *ngIf=\"icon\"\n [icon]=\"icon\"\n class=\"me-2\"\n >\n </fa-icon>\n\n <div class=\"flex-grow-1\">\n <div *ngIf=\"!customContent\">\n <span>\n {{text}}\n </span>\n\n <span \n *ngIf=\"showAction\"\n >\n <a \n class=\"link-primary sds-cursor-pointer ml-2 \"\n (click)=\"onActionButtonClick()\"\n >\n {{actionText}}\n </a>\n </span>\n\n <span \n *ngIf=\"showLearnMoreLink\"\n >\n <a \n class=\"\"\n [href]=\"learnMoreLinkUrl\"\n target=\"_learnmore\"\n >\n {{learnMoreLinkText}}\n </a>\n </span>\n </div>\n\n <ng-container *ngIf=\"customContent\" >\n <ng-content select=\"customContent\"></ng-content>\n </ng-container> \n </div>\n\n <div *ngIf=\"showCloseButton\">\n <button \n type=\"button\" \n class=\"btn-close ml-2\" \n aria-label=\"Close\"\n (click)=\"onCloseButtonClick()\"\n >\n </button>\n </div>\n\n</div>\n", styles: [".sds-message-default{color:var(--bs-gray-900);background-color:var(--bs-gray-300)}.sds-message-success-subtle{color:var(--bs-gray-900);background-color:var(--bs-success-bg-subtle)}.sds-message-danger-subtle{color:var(--bs-gray-900);background-color:var(--bs-danger-bg-subtle)}.sds-message-warning-subtle{color:var(--bs-gray-900);background-color:var(--bs-warning-bg-subtle)}.sds-message-info-subtle{color:var(--bs-gray-900);background-color:var(--bs-info-bg-subtle)}.sds-message-success{color:var(--bs-gray-100);background-color:var(--bs-success)}.sds-message-danger{color:var(--bs-gray-100);background-color:var(--bs-danger)}.sds-message-warning{color:var(--bs-gray-900);background-color:var(--bs-warning)}.sds-message-info{color:var(--bs-gray-900);background-color:var(--bs-info)}.btn-close{font-size:.75em}\n"] }]
35
35
  }], ctorParameters: () => [], propDecorators: { icon: [{
36
36
  type: Input
37
37
  }], text: [{
@@ -1 +1 @@
1
- {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-message.mjs","sources":["../../../projects/ngx-sds-components/src/lib/message/message.component.ts","../../../projects/ngx-sds-components/src/lib/message/message.component.html","../../../projects/ngx-sds-components/src/lib/message/spicainternational-ngx-sds-components-src-lib-message.ts"],"sourcesContent":["import { Component, ContentChild, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { NgIf } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'sds-message',\r\n templateUrl: './message.component.html',\r\n styleUrls: ['./message.component.scss'],\r\n standalone: true,\r\n imports: [NgIf, FaIconComponent],\r\n})\r\nexport class SdsMessageComponent implements OnInit {\r\n\r\n @Input() public icon?: IconProp;\r\n @Input() public text: string = '';\r\n @Input() public showCloseButton: boolean = false;\r\n\r\n @Output() public close: EventEmitter<void> = new EventEmitter();\r\n\r\n @Input() public showLearnMoreLink: boolean = false;\r\n @Input() public learnMoreLinkText: string = 'Learn more';\r\n @Input() public learnMoreLinkUrl: string = '';\r\n\r\n @Input() public showAction: boolean = false;\r\n @Input() public actionText: string = 'Address this'; \r\n @Output() public actionClick: EventEmitter<void> = new EventEmitter();\r\n\r\n\r\n @Input() public style: 'default' | 'danger' | 'dangerSubtle' | 'success' | 'successSubtle' | 'warning' | 'warningSubtle' | 'info' | 'infoSubtle' = 'default';\r\n\r\n @ContentChild('customContent') customContent: ElementRef = {nativeElement: undefined};\r\n\r\n public showMessage: boolean = true;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n public onCloseButtonClick(): void {\r\n this.showMessage = false;\r\n this.close.emit();\r\n }\r\n\r\n public onActionButtonClick(): void {\r\n this.actionClick.emit();\r\n }\r\n\r\n}\r\n","<div \r\n *ngIf=\"showMessage\"\r\n class=\"px-3 py-2 d-flex rounded\"\r\n [class.sds-message-default] = \"style == 'default'\"\r\n \r\n [class.sds-message-success] = \"style == 'success'\"\r\n [class.sds-message-success-subtle] = \"style == 'successSubtle'\"\r\n \r\n [class.sds-message-danger] = \"style == 'danger'\"\r\n [class.sds-message-danger-subtle] = \"style == 'dangerSubtle'\"\r\n \r\n [class.sds-message-warning] = \"style == 'warning'\"\r\n [class.sds-message-warning-subtle] = \"style == 'warningSubtle'\"\r\n\r\n [class.sds-message-info] = \"style == 'info'\"\r\n [class.sds-message-info-subtle] = \"style == 'infoSubtle'\"\r\n >\r\n\r\n <fa-icon \r\n *ngIf=\"icon\"\r\n [icon]=\"icon\"\r\n class=\"me-2\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"flex-grow-1\">\r\n <div *ngIf=\"!customContent\">\r\n <span>\r\n {{text}}\r\n </span>\r\n\r\n <span \r\n *ngIf=\"showAction\"\r\n >\r\n <a \r\n class=\"link-primary sds-cursor-pointer ml-2 \"\r\n (click)=\"onActionButtonClick()\"\r\n >\r\n {{actionText}}\r\n </a>\r\n </span>\r\n\r\n <span \r\n *ngIf=\"showLearnMoreLink\"\r\n >\r\n <a \r\n class=\"\"\r\n [href]=\"learnMoreLinkUrl\"\r\n target=\"_learnmore\"\r\n >\r\n {{learnMoreLinkText}}\r\n </a>\r\n </span>\r\n </div>\r\n\r\n <ng-container *ngIf=\"customContent\" >\r\n <ng-content select=\"customContent\"></ng-content>\r\n </ng-container> \r\n </div>\r\n\r\n <div *ngIf=\"showCloseButton\">\r\n <button \r\n type=\"button\" \r\n class=\"btn-close ml-2\" \r\n aria-label=\"Close\"\r\n (click)=\"onCloseButtonClick()\"\r\n >\r\n </button>\r\n </div>\r\n\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-message.mjs","sources":["../../../projects/ngx-sds-components/src/lib/message/message.component.ts","../../../projects/ngx-sds-components/src/lib/message/message.component.html","../../../projects/ngx-sds-components/src/lib/message/spicainternational-ngx-sds-components-src-lib-message.ts"],"sourcesContent":["import { Component, ContentChild, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { NgIf } from '@angular/common';\n\n@Component({\n selector: 'sds-message',\n templateUrl: './message.component.html',\n styleUrls: ['./message.component.scss'],\n standalone: true,\n imports: [NgIf, FaIconComponent],\n})\nexport class SdsMessageComponent implements OnInit {\n\n @Input() public icon?: IconProp;\n @Input() public text: string = '';\n @Input() public showCloseButton: boolean = false;\n\n @Output() public close: EventEmitter<void> = new EventEmitter();\n\n @Input() public showLearnMoreLink: boolean = false;\n @Input() public learnMoreLinkText: string = 'Learn more';\n @Input() public learnMoreLinkUrl: string = '';\n\n @Input() public showAction: boolean = false;\n @Input() public actionText: string = 'Address this'; \n @Output() public actionClick: EventEmitter<void> = new EventEmitter();\n\n\n @Input() public style: 'default' | 'danger' | 'dangerSubtle' | 'success' | 'successSubtle' | 'warning' | 'warningSubtle' | 'info' | 'infoSubtle' = 'default';\n\n @ContentChild('customContent') customContent: ElementRef = {nativeElement: undefined};\n\n public showMessage: boolean = true;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n public onCloseButtonClick(): void {\n this.showMessage = false;\n this.close.emit();\n }\n\n public onActionButtonClick(): void {\n this.actionClick.emit();\n }\n\n}\n","<div \n *ngIf=\"showMessage\"\n class=\"px-3 py-2 d-flex rounded\"\n [class.sds-message-default] = \"style == 'default'\"\n \n [class.sds-message-success] = \"style == 'success'\"\n [class.sds-message-success-subtle] = \"style == 'successSubtle'\"\n \n [class.sds-message-danger] = \"style == 'danger'\"\n [class.sds-message-danger-subtle] = \"style == 'dangerSubtle'\"\n \n [class.sds-message-warning] = \"style == 'warning'\"\n [class.sds-message-warning-subtle] = \"style == 'warningSubtle'\"\n\n [class.sds-message-info] = \"style == 'info'\"\n [class.sds-message-info-subtle] = \"style == 'infoSubtle'\"\n >\n\n <fa-icon \n *ngIf=\"icon\"\n [icon]=\"icon\"\n class=\"me-2\"\n >\n </fa-icon>\n\n <div class=\"flex-grow-1\">\n <div *ngIf=\"!customContent\">\n <span>\n {{text}}\n </span>\n\n <span \n *ngIf=\"showAction\"\n >\n <a \n class=\"link-primary sds-cursor-pointer ml-2 \"\n (click)=\"onActionButtonClick()\"\n >\n {{actionText}}\n </a>\n </span>\n\n <span \n *ngIf=\"showLearnMoreLink\"\n >\n <a \n class=\"\"\n [href]=\"learnMoreLinkUrl\"\n target=\"_learnmore\"\n >\n {{learnMoreLinkText}}\n </a>\n </span>\n </div>\n\n <ng-container *ngIf=\"customContent\" >\n <ng-content select=\"customContent\"></ng-content>\n </ng-container> \n </div>\n\n <div *ngIf=\"showCloseButton\">\n <button \n type=\"button\" \n class=\"btn-close ml-2\" \n aria-label=\"Close\"\n (click)=\"onCloseButtonClick()\"\n >\n </button>\n </div>\n\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -18,11 +18,11 @@ class SdsModalComponent {
18
18
  this.closeOnEscape = false;
19
19
  this.downSizing = 'discrete';
20
20
  /**
21
- * Allow the modal to be draggable by the user. Default is false.
21
+ * Allow the modal to be draggable by the user. Default is true.
22
22
  *
23
23
  * @memberof SdsModalComponent
24
24
  */
25
- this.isDraggable = false;
25
+ this.isDraggable = true;
26
26
  /**
27
27
  * Constrain modal to the viewport. Default is true.
28
28
  *
@@ -90,7 +90,7 @@ class SdsModalComponent {
90
90
  }
91
91
  }
92
92
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
93
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsModalComponent, isStandalone: true, selector: "sds-modal", inputs: { modalTitle: "modalTitle", showHeader: "showHeader", showFooter: "showFooter", size: "size", modalDialogId: "modalDialogId", showCloseButton: "showCloseButton", autoFocusCloseButton: "autoFocusCloseButton", translations: "translations", isScrollable: "isScrollable", isVerticallyCentered: "isVerticallyCentered", closeOnEscape: "closeOnEscape", downSizing: "downSizing", isDraggable: "isDraggable", isDragConstrained: "isDragConstrained", isOpen: "isOpen" }, outputs: { modalOpen: "modalOpen", modalClose: "modalClose", closeClick: "closeClick", closeEscapeKeypress: "closeEscapeKeypress", isOpenChange: "isOpenChange" }, queries: [{ propertyName: "headerContent", first: true, predicate: ["header"], descendants: true }], viewQueries: [{ propertyName: "_modal", first: true, predicate: ["modal"], descendants: true }, { propertyName: "_closeButton", first: true, predicate: ["closeButton"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div \r\n #modal \r\n class=\"modal modal-backdrop\" \r\n (keydown)=\"onKeydown($event)\" \r\n [cdkTrapFocus]=\"isOpen\" \r\n [cdkTrapFocusAutoCapture]=\"true\" \r\n >\r\n <div\r\n class=\"modal-dialog\"\r\n [class.modal-dialog-scrollable] = \"isScrollable\"\r\n [class.downsize-continuous] = \"downSizing === 'continuous'\"\r\n [class.modal-dialog-centered] = \"isVerticallyCentered\"\r\n [attr.id]=\"modalDialogId\"\r\n [ngClass]=\"'modal-' + size\"\r\n role=\"document\"\r\n >\r\n <div \r\n class=\"modal-content\" \r\n cdkDrag [cdkDragDisabled]=\"!isDraggable\" [cdkDragBoundary]=\"isDragConstrained ? '.modal-backdrop' : ''\"\r\n >\r\n\r\n <div *ngIf=\"isDraggable\" class=\"modal-drag-handle\" cdkDragHandle></div>\r\n\r\n <div \r\n *ngIf=\"showHeader && headerContent\" \r\n class=\"modal-header\" \r\n >\r\n <ng-content select='header'></ng-content>\r\n </div> \r\n\r\n <div \r\n *ngIf=\"showHeader && !headerContent\" \r\n class=\"modal-header\"\r\n >\r\n\r\n <h5 class=\"modal-title\">{{modalTitle}}</h5>\r\n <button \r\n #closeButton\r\n *ngIf=\"showCloseButton\"\r\n type=\"button\" \r\n class=\"btn-close sds-fs-75\" \r\n [title]=\"translations.close ?? ''\"\r\n (click)=\"onCloseButtonClick()\">\r\n </button>\r\n </div>\r\n\r\n <div \r\n class=\"modal-body\"\r\n [class.pt-0]=\"showHeader\"\r\n [class.pb-0]=\"showFooter\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div *ngIf=\"showFooter\" class=\"modal-footer\">\r\n <ng-content select=\"footer\"></ng-content>\r\n </div> \r\n </div>\r\n </div>\r\n</div>", styles: [".modal{background:#00000080}.modal .modal-drag-handle{cursor:move;position:absolute;width:100%;height:1rem}.modal .modal-header button.btn-close{font-size:.75em}.modal .modal-header button.btn-close:hover{background-color:var(--bs-gray-200)}.modal.in{opacity:1}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0)}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}@media (min-width: 820px){.modal-820{max-width:820px}}@media (min-width: 576px){.modal-dialog.downsize-continuous{width:calc(90vw - 2rem)}.modal-dialog.downsize-continuous.modal-md{max-width:var(--bs-breakpoint-sm)}.modal-dialog.downsize-continuous.modal-lg{max-width:var(--bs-breakpoint-md)}.modal-dialog.downsize-continuous.modal-xl{max-width:var(--bs-breakpoint-lg)}.modal-dialog.downsize-continuous.modal-xxl{max-width:var(--bs-breakpoint-xl)}}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }] }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsModalComponent, isStandalone: true, selector: "sds-modal", inputs: { modalTitle: "modalTitle", showHeader: "showHeader", showFooter: "showFooter", size: "size", modalDialogId: "modalDialogId", showCloseButton: "showCloseButton", autoFocusCloseButton: "autoFocusCloseButton", translations: "translations", isScrollable: "isScrollable", isVerticallyCentered: "isVerticallyCentered", closeOnEscape: "closeOnEscape", downSizing: "downSizing", isDraggable: "isDraggable", isDragConstrained: "isDragConstrained", isOpen: "isOpen" }, outputs: { modalOpen: "modalOpen", modalClose: "modalClose", closeClick: "closeClick", closeEscapeKeypress: "closeEscapeKeypress", isOpenChange: "isOpenChange" }, queries: [{ propertyName: "headerContent", first: true, predicate: ["header"], descendants: true }], viewQueries: [{ propertyName: "_modal", first: true, predicate: ["modal"], descendants: true }, { propertyName: "_closeButton", first: true, predicate: ["closeButton"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div \n #modal \n class=\"modal modal-backdrop\" \n (keydown)=\"onKeydown($event)\" \n [cdkTrapFocus]=\"isOpen\" \n [cdkTrapFocusAutoCapture]=\"true\" \n >\n <div\n class=\"modal-dialog\"\n [class.modal-dialog-scrollable] = \"isScrollable\"\n [class.downsize-continuous] = \"downSizing === 'continuous'\"\n [class.modal-dialog-centered] = \"isVerticallyCentered\"\n [attr.id]=\"modalDialogId\"\n [ngClass]=\"'modal-' + size\"\n role=\"document\"\n >\n <div \n class=\"modal-content\" \n cdkDrag [cdkDragDisabled]=\"!isDraggable\" [cdkDragBoundary]=\"isDragConstrained ? '.modal-backdrop' : ''\"\n >\n\n <div *ngIf=\"isDraggable\" class=\"modal-drag-handle\" cdkDragHandle></div>\n\n <div \n *ngIf=\"showHeader && headerContent\" \n class=\"modal-header\" \n >\n <ng-content select='header'></ng-content>\n </div> \n\n <div \n *ngIf=\"showHeader && !headerContent\" \n class=\"modal-header\"\n >\n\n <h5 class=\"modal-title\">{{modalTitle}}</h5>\n <button \n #closeButton\n *ngIf=\"showCloseButton\"\n type=\"button\" \n class=\"btn-close sds-fs-75\" \n [title]=\"translations.close ?? ''\"\n (click)=\"onCloseButtonClick()\">\n </button>\n </div>\n\n <div \n class=\"modal-body\"\n [class.pt-0]=\"showHeader\"\n [class.pb-0]=\"showFooter\"\n >\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"showFooter\" class=\"modal-footer\">\n <ng-content select=\"footer\"></ng-content>\n </div> \n </div>\n </div>\n</div>", styles: [".modal{background:#00000080}.modal .modal-drag-handle{cursor:move;position:absolute;width:100%;height:1rem}.modal .modal-header button.btn-close{font-size:.75em}.modal .modal-header button.btn-close:hover{background-color:var(--bs-gray-200)}.modal.in{opacity:1}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0)}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}@media (min-width: 820px){.modal-820{max-width:820px}}@media (min-width: 576px){.modal-dialog.downsize-continuous{width:calc(90vw - 2rem)}.modal-dialog.downsize-continuous.modal-md{max-width:var(--bs-breakpoint-sm)}.modal-dialog.downsize-continuous.modal-lg{max-width:var(--bs-breakpoint-md)}.modal-dialog.downsize-continuous.modal-xl{max-width:var(--bs-breakpoint-lg)}.modal-dialog.downsize-continuous.modal-xxl{max-width:var(--bs-breakpoint-xl)}}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }] }); }
94
94
  }
95
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsModalComponent, decorators: [{
96
96
  type: Component,
@@ -100,7 +100,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
100
100
  CdkDrag,
101
101
  NgIf,
102
102
  CdkDragHandle,
103
- ], template: "<div \r\n #modal \r\n class=\"modal modal-backdrop\" \r\n (keydown)=\"onKeydown($event)\" \r\n [cdkTrapFocus]=\"isOpen\" \r\n [cdkTrapFocusAutoCapture]=\"true\" \r\n >\r\n <div\r\n class=\"modal-dialog\"\r\n [class.modal-dialog-scrollable] = \"isScrollable\"\r\n [class.downsize-continuous] = \"downSizing === 'continuous'\"\r\n [class.modal-dialog-centered] = \"isVerticallyCentered\"\r\n [attr.id]=\"modalDialogId\"\r\n [ngClass]=\"'modal-' + size\"\r\n role=\"document\"\r\n >\r\n <div \r\n class=\"modal-content\" \r\n cdkDrag [cdkDragDisabled]=\"!isDraggable\" [cdkDragBoundary]=\"isDragConstrained ? '.modal-backdrop' : ''\"\r\n >\r\n\r\n <div *ngIf=\"isDraggable\" class=\"modal-drag-handle\" cdkDragHandle></div>\r\n\r\n <div \r\n *ngIf=\"showHeader && headerContent\" \r\n class=\"modal-header\" \r\n >\r\n <ng-content select='header'></ng-content>\r\n </div> \r\n\r\n <div \r\n *ngIf=\"showHeader && !headerContent\" \r\n class=\"modal-header\"\r\n >\r\n\r\n <h5 class=\"modal-title\">{{modalTitle}}</h5>\r\n <button \r\n #closeButton\r\n *ngIf=\"showCloseButton\"\r\n type=\"button\" \r\n class=\"btn-close sds-fs-75\" \r\n [title]=\"translations.close ?? ''\"\r\n (click)=\"onCloseButtonClick()\">\r\n </button>\r\n </div>\r\n\r\n <div \r\n class=\"modal-body\"\r\n [class.pt-0]=\"showHeader\"\r\n [class.pb-0]=\"showFooter\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div *ngIf=\"showFooter\" class=\"modal-footer\">\r\n <ng-content select=\"footer\"></ng-content>\r\n </div> \r\n </div>\r\n </div>\r\n</div>", styles: [".modal{background:#00000080}.modal .modal-drag-handle{cursor:move;position:absolute;width:100%;height:1rem}.modal .modal-header button.btn-close{font-size:.75em}.modal .modal-header button.btn-close:hover{background-color:var(--bs-gray-200)}.modal.in{opacity:1}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0)}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}@media (min-width: 820px){.modal-820{max-width:820px}}@media (min-width: 576px){.modal-dialog.downsize-continuous{width:calc(90vw - 2rem)}.modal-dialog.downsize-continuous.modal-md{max-width:var(--bs-breakpoint-sm)}.modal-dialog.downsize-continuous.modal-lg{max-width:var(--bs-breakpoint-md)}.modal-dialog.downsize-continuous.modal-xl{max-width:var(--bs-breakpoint-lg)}.modal-dialog.downsize-continuous.modal-xxl{max-width:var(--bs-breakpoint-xl)}}\n"] }]
103
+ ], template: "<div \n #modal \n class=\"modal modal-backdrop\" \n (keydown)=\"onKeydown($event)\" \n [cdkTrapFocus]=\"isOpen\" \n [cdkTrapFocusAutoCapture]=\"true\" \n >\n <div\n class=\"modal-dialog\"\n [class.modal-dialog-scrollable] = \"isScrollable\"\n [class.downsize-continuous] = \"downSizing === 'continuous'\"\n [class.modal-dialog-centered] = \"isVerticallyCentered\"\n [attr.id]=\"modalDialogId\"\n [ngClass]=\"'modal-' + size\"\n role=\"document\"\n >\n <div \n class=\"modal-content\" \n cdkDrag [cdkDragDisabled]=\"!isDraggable\" [cdkDragBoundary]=\"isDragConstrained ? '.modal-backdrop' : ''\"\n >\n\n <div *ngIf=\"isDraggable\" class=\"modal-drag-handle\" cdkDragHandle></div>\n\n <div \n *ngIf=\"showHeader && headerContent\" \n class=\"modal-header\" \n >\n <ng-content select='header'></ng-content>\n </div> \n\n <div \n *ngIf=\"showHeader && !headerContent\" \n class=\"modal-header\"\n >\n\n <h5 class=\"modal-title\">{{modalTitle}}</h5>\n <button \n #closeButton\n *ngIf=\"showCloseButton\"\n type=\"button\" \n class=\"btn-close sds-fs-75\" \n [title]=\"translations.close ?? ''\"\n (click)=\"onCloseButtonClick()\">\n </button>\n </div>\n\n <div \n class=\"modal-body\"\n [class.pt-0]=\"showHeader\"\n [class.pb-0]=\"showFooter\"\n >\n <ng-content></ng-content>\n </div>\n\n <div *ngIf=\"showFooter\" class=\"modal-footer\">\n <ng-content select=\"footer\"></ng-content>\n </div> \n </div>\n </div>\n</div>", styles: [".modal{background:#00000080}.modal .modal-drag-handle{cursor:move;position:absolute;width:100%;height:1rem}.modal .modal-header button.btn-close{font-size:.75em}.modal .modal-header button.btn-close:hover{background-color:var(--bs-gray-200)}.modal.in{opacity:1}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0)}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}@media (min-width: 820px){.modal-820{max-width:820px}}@media (min-width: 576px){.modal-dialog.downsize-continuous{width:calc(90vw - 2rem)}.modal-dialog.downsize-continuous.modal-md{max-width:var(--bs-breakpoint-sm)}.modal-dialog.downsize-continuous.modal-lg{max-width:var(--bs-breakpoint-md)}.modal-dialog.downsize-continuous.modal-xl{max-width:var(--bs-breakpoint-lg)}.modal-dialog.downsize-continuous.modal-xxl{max-width:var(--bs-breakpoint-xl)}}\n"] }]
104
104
  }], ctorParameters: () => [], propDecorators: { headerContent: [{
105
105
  type: ContentChild,
106
106
  args: ['header']
@@ -163,11 +163,11 @@ class SdsDialogComponent {
163
163
  this.closeText = 'close';
164
164
  this.size = 'md';
165
165
  this.primaryButtonText = 'Ok';
166
- this.primaryButtonClass = 'btn-primary';
166
+ this.primaryButtonClass = 'sds-btn-primary';
167
167
  this.primaryButtonType = 'button';
168
168
  this.primaryButtonDisabled = false;
169
169
  this.secondaryButtonText = 'Cancel';
170
- this.secondaryButtonClass = 'btn-secondary';
170
+ this.secondaryButtonClass = 'sds-btn-secondary';
171
171
  this.secondaryButtonType = 'button';
172
172
  this.secondaryButtonDisabled = false;
173
173
  this.closeOnEscape = true;
@@ -262,11 +262,11 @@ class SdsDialogComponent {
262
262
  }
263
263
  }
264
264
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
265
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsDialogComponent, isStandalone: true, selector: "sds-dialog", inputs: { title: "title", dialogTitle: "dialogTitle", closeText: "closeText", size: "size", primaryButtonText: "primaryButtonText", primaryButtonClass: "primaryButtonClass", primaryButtonType: "primaryButtonType", primaryButtonId: "primaryButtonId", primaryButtonDisabled: "primaryButtonDisabled", secondaryButtonText: "secondaryButtonText", secondaryButtonClass: "secondaryButtonClass", secondaryButtonType: "secondaryButtonType", secondaryButtonId: "secondaryButtonId", secondaryButtonDisabled: "secondaryButtonDisabled", closeOnEscape: "closeOnEscape", showHeader: "showHeader", showCloseButton: "showCloseButton", showPrimaryButton: "showPrimaryButton", showSecondaryButton: "showSecondaryButton", autofocusElement: "autofocusElement", modalDialogId: "modalDialogId", isOpen: "isOpen" }, outputs: { dialogOpen: "dialogOpen", dialogClose: "dialogClose", isOpenChange: "isOpenChange", primaryButtonClick: "primaryButtonClick", secondaryButtonClick: "secondaryButtonClick" }, viewQueries: [{ propertyName: "_modal", first: true, predicate: ["modal"], descendants: true, static: true }, { propertyName: "_content", first: true, predicate: ["content"], descendants: true, read: ElementRef, static: true }, { propertyName: "_primaryButton", first: true, predicate: ["primaryButton"], descendants: true, read: ElementRef }, { propertyName: "_secondaryButton", first: true, predicate: ["secondaryButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<sds-modal\r\n #modal\r\n [modalTitle]=\"dialogTitle || title\"\r\n [size]=\"size\"\r\n [modalDialogId]=\"modalDialogId\"\r\n [showCloseButton]=\"showCloseButton\"\r\n [showHeader]=\"showHeader\"\r\n [translations]=\"{ close: closeText}\"\r\n [autoFocusCloseButton]=\"autofocusElement === 'close'\"\r\n [closeOnEscape]=\"closeOnEscape\"\r\n (closeClick)=\"onCloseClick()\"\r\n (closeEscapeKeypress)=\"onCloseEscapeKeypress()\"\r\n (modalClose)=\"onModalClose()\"\r\n (modalOpen)=\"onModalOpen()\"\r\n [(isOpen)]=\"isOpen\"\r\n>\r\n\r\n <div #content [attr.tabindex]=\"autofocusElement === 'content' ? 0 : undefined\" >\r\n <ng-content></ng-content>\r\n </div>\r\n <ng-container #footer ngProjectAs='footer'>\r\n <button\r\n #secondaryButton\r\n *ngIf=\"showSecondaryButton\"\r\n [attr.id]=\"secondaryButtonId\"\r\n [disabled]=\"secondaryButtonDisabled\"\r\n class=\"btn\"\r\n [class]=\"secondaryButtonClass\"\r\n (click)=\"onSecondaryClick()\"\r\n >{{secondaryButtonText}}</button>\r\n <button\r\n #primaryButton\r\n *ngIf=\"showPrimaryButton\"\r\n [attr.id]=\"primaryButtonId\"\r\n [disabled]=\"primaryButtonDisabled\"\r\n class=\"btn\"\r\n [class]=\"primaryButtonClass\"\r\n (click)=\"onPrimaryClick()\"\r\n >{{primaryButtonText}}</button>\r\n </ng-container>\r\n</sds-modal>\r\n", styles: [""], dependencies: [{ kind: "component", type: SdsModalComponent, selector: "sds-modal", inputs: ["modalTitle", "showHeader", "showFooter", "size", "modalDialogId", "showCloseButton", "autoFocusCloseButton", "translations", "isScrollable", "isVerticallyCentered", "closeOnEscape", "downSizing", "isDraggable", "isDragConstrained", "isOpen"], outputs: ["modalOpen", "modalClose", "closeClick", "closeEscapeKeypress", "isOpenChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
265
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsDialogComponent, isStandalone: true, selector: "sds-dialog", inputs: { title: "title", dialogTitle: "dialogTitle", closeText: "closeText", size: "size", primaryButtonText: "primaryButtonText", primaryButtonClass: "primaryButtonClass", primaryButtonType: "primaryButtonType", primaryButtonId: "primaryButtonId", primaryButtonDisabled: "primaryButtonDisabled", secondaryButtonText: "secondaryButtonText", secondaryButtonClass: "secondaryButtonClass", secondaryButtonType: "secondaryButtonType", secondaryButtonId: "secondaryButtonId", secondaryButtonDisabled: "secondaryButtonDisabled", closeOnEscape: "closeOnEscape", showHeader: "showHeader", showCloseButton: "showCloseButton", showPrimaryButton: "showPrimaryButton", showSecondaryButton: "showSecondaryButton", autofocusElement: "autofocusElement", modalDialogId: "modalDialogId", isOpen: "isOpen" }, outputs: { dialogOpen: "dialogOpen", dialogClose: "dialogClose", isOpenChange: "isOpenChange", primaryButtonClick: "primaryButtonClick", secondaryButtonClick: "secondaryButtonClick" }, viewQueries: [{ propertyName: "_modal", first: true, predicate: ["modal"], descendants: true, static: true }, { propertyName: "_content", first: true, predicate: ["content"], descendants: true, read: ElementRef, static: true }, { propertyName: "_primaryButton", first: true, predicate: ["primaryButton"], descendants: true, read: ElementRef }, { propertyName: "_secondaryButton", first: true, predicate: ["secondaryButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<sds-modal\n #modal\n [modalTitle]=\"dialogTitle || title\"\n [size]=\"size\"\n [modalDialogId]=\"modalDialogId\"\n [showCloseButton]=\"showCloseButton\"\n [showHeader]=\"showHeader\"\n [translations]=\"{ close: closeText}\"\n [autoFocusCloseButton]=\"autofocusElement === 'close'\"\n [closeOnEscape]=\"closeOnEscape\"\n (closeClick)=\"onCloseClick()\"\n (closeEscapeKeypress)=\"onCloseEscapeKeypress()\"\n (modalClose)=\"onModalClose()\"\n (modalOpen)=\"onModalOpen()\"\n [(isOpen)]=\"isOpen\"\n>\n\n <div #content [attr.tabindex]=\"autofocusElement === 'content' ? 0 : undefined\" >\n <ng-content></ng-content>\n </div>\n <ng-container #footer ngProjectAs='footer'>\n <button\n #secondaryButton\n *ngIf=\"showSecondaryButton\"\n [attr.id]=\"secondaryButtonId\"\n [disabled]=\"secondaryButtonDisabled\"\n class=\"btn\"\n [class]=\"secondaryButtonClass\"\n (click)=\"onSecondaryClick()\"\n >{{secondaryButtonText}}</button>\n <button\n #primaryButton\n *ngIf=\"showPrimaryButton\"\n [attr.id]=\"primaryButtonId\"\n [disabled]=\"primaryButtonDisabled\"\n class=\"btn\"\n [class]=\"primaryButtonClass\"\n (click)=\"onPrimaryClick()\"\n >{{primaryButtonText}}</button>\n </ng-container>\n</sds-modal>\n", styles: [""], dependencies: [{ kind: "component", type: SdsModalComponent, selector: "sds-modal", inputs: ["modalTitle", "showHeader", "showFooter", "size", "modalDialogId", "showCloseButton", "autoFocusCloseButton", "translations", "isScrollable", "isVerticallyCentered", "closeOnEscape", "downSizing", "isDraggable", "isDragConstrained", "isOpen"], outputs: ["modalOpen", "modalClose", "closeClick", "closeEscapeKeypress", "isOpenChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
266
266
  }
267
267
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsDialogComponent, decorators: [{
268
268
  type: Component,
269
- args: [{ selector: 'sds-dialog', standalone: true, imports: [SdsModalComponent, NgIf], template: "<sds-modal\r\n #modal\r\n [modalTitle]=\"dialogTitle || title\"\r\n [size]=\"size\"\r\n [modalDialogId]=\"modalDialogId\"\r\n [showCloseButton]=\"showCloseButton\"\r\n [showHeader]=\"showHeader\"\r\n [translations]=\"{ close: closeText}\"\r\n [autoFocusCloseButton]=\"autofocusElement === 'close'\"\r\n [closeOnEscape]=\"closeOnEscape\"\r\n (closeClick)=\"onCloseClick()\"\r\n (closeEscapeKeypress)=\"onCloseEscapeKeypress()\"\r\n (modalClose)=\"onModalClose()\"\r\n (modalOpen)=\"onModalOpen()\"\r\n [(isOpen)]=\"isOpen\"\r\n>\r\n\r\n <div #content [attr.tabindex]=\"autofocusElement === 'content' ? 0 : undefined\" >\r\n <ng-content></ng-content>\r\n </div>\r\n <ng-container #footer ngProjectAs='footer'>\r\n <button\r\n #secondaryButton\r\n *ngIf=\"showSecondaryButton\"\r\n [attr.id]=\"secondaryButtonId\"\r\n [disabled]=\"secondaryButtonDisabled\"\r\n class=\"btn\"\r\n [class]=\"secondaryButtonClass\"\r\n (click)=\"onSecondaryClick()\"\r\n >{{secondaryButtonText}}</button>\r\n <button\r\n #primaryButton\r\n *ngIf=\"showPrimaryButton\"\r\n [attr.id]=\"primaryButtonId\"\r\n [disabled]=\"primaryButtonDisabled\"\r\n class=\"btn\"\r\n [class]=\"primaryButtonClass\"\r\n (click)=\"onPrimaryClick()\"\r\n >{{primaryButtonText}}</button>\r\n </ng-container>\r\n</sds-modal>\r\n" }]
269
+ args: [{ selector: 'sds-dialog', standalone: true, imports: [SdsModalComponent, NgIf], template: "<sds-modal\n #modal\n [modalTitle]=\"dialogTitle || title\"\n [size]=\"size\"\n [modalDialogId]=\"modalDialogId\"\n [showCloseButton]=\"showCloseButton\"\n [showHeader]=\"showHeader\"\n [translations]=\"{ close: closeText}\"\n [autoFocusCloseButton]=\"autofocusElement === 'close'\"\n [closeOnEscape]=\"closeOnEscape\"\n (closeClick)=\"onCloseClick()\"\n (closeEscapeKeypress)=\"onCloseEscapeKeypress()\"\n (modalClose)=\"onModalClose()\"\n (modalOpen)=\"onModalOpen()\"\n [(isOpen)]=\"isOpen\"\n>\n\n <div #content [attr.tabindex]=\"autofocusElement === 'content' ? 0 : undefined\" >\n <ng-content></ng-content>\n </div>\n <ng-container #footer ngProjectAs='footer'>\n <button\n #secondaryButton\n *ngIf=\"showSecondaryButton\"\n [attr.id]=\"secondaryButtonId\"\n [disabled]=\"secondaryButtonDisabled\"\n class=\"btn\"\n [class]=\"secondaryButtonClass\"\n (click)=\"onSecondaryClick()\"\n >{{secondaryButtonText}}</button>\n <button\n #primaryButton\n *ngIf=\"showPrimaryButton\"\n [attr.id]=\"primaryButtonId\"\n [disabled]=\"primaryButtonDisabled\"\n class=\"btn\"\n [class]=\"primaryButtonClass\"\n (click)=\"onPrimaryClick()\"\n >{{primaryButtonText}}</button>\n </ng-container>\n</sds-modal>\n" }]
270
270
  }], ctorParameters: () => [], propDecorators: { title: [{
271
271
  type: Input
272
272
  }], dialogTitle: [{